packages: vim/vim.spec - hack around glibc brokeness wrt static linking and...

baggins baggins at pld-linux.org
Mon Aug 16 14:28:52 CEST 2010


Author: baggins                      Date: Mon Aug 16 12:28:52 2010 GMT
Module: packages                      Tag: HEAD
---- Log message:
- hack around glibc brokeness wrt static linking and nss

---- Files affected:
packages/vim:
   vim.spec (1.515 -> 1.516) 

---- Diffs:

================================================================
Index: packages/vim/vim.spec
diff -u packages/vim/vim.spec:1.515 packages/vim/vim.spec:1.516
--- packages/vim/vim.spec:1.515	Fri Jul  9 13:25:46 2010
+++ packages/vim/vim.spec	Mon Aug 16 14:28:47 2010
@@ -2,6 +2,10 @@
 # TODO
 # - evim manuals not installed if no gui is built, move to -gui packages?
 #
+# NOTE
+# - static package is not quite static, it must be linked with shared glibc
+#   because of glibc nss brokeness wrt all static linking
+#
 # Conditional build:
 %bcond_without	static		# don't build static version
 %bcond_without	athena		# don't build Athena Widgets-based gvim
@@ -9,7 +13,7 @@
 %bcond_without	gtk		# don't build GTK+-based gvim support
 %bcond_without	gnome		# don't build GNOME-based gvim support
 %bcond_without	heavy		# don't build heavy (full-featured GNOME-based gvim/vim)
-%bcond_without	gui			# don't build any GUI
+%bcond_without	gui		# don't build any GUI
 %bcond_with	perl		# with Perl interp in vim package
 %bcond_with	python		# with Python interp in vim package
 %bcond_with	ruby		# with Ruby interp in vim package
@@ -41,7 +45,7 @@
 Summary(uk.UTF-8):	Visual editor IMproved - Єдино Вірний Редактор :)
 Name:		vim
 Version:	%{ver}.%{patchlevel}
-Release:	4
+Release:	4.1
 Epoch:		4
 License:	Charityware
 Group:		Applications/Editors/Vim
@@ -763,6 +767,7 @@
 build() {
 	set -x
 	local target=$1
+	local shlink
 	shift
 
 	%{__make} distclean
@@ -787,11 +792,24 @@
 		"$@"
 
 	%{__make} vim
+	# Hack around glibc brokeness wrt static linking and NSS (Name Service Shit)
+	if [ "$target" = "vim.static" ]; then
+		echo "s| -l\([^ ]\+\)| %{_libdir}/lib\1.a|g" >>auto/link.sed
+		rm -f vim
+		%{__make} vim
+		shlink=$(ldd ./vim | grep -v "linux-vdso\|libc.so\|ld-linux.*" || :)
+		if [ -n "$shlink" ]; then
+			echo "Looks like static link failed!"
+			echo "These libs should be linked static:"
+			echo $shlink
+			return 1
+		fi
+	fi
 	mv -f vim bin/$target
 }
 
 %if %{with static}
-LDFLAGS="%{rpmldflags} -static"
+#LDFLAGS="%{rpmldflags} -static"
 build vim.static \
 	--disable-gui \
 	--without-x \
@@ -805,7 +823,7 @@
 	--disable-multibyte \
 	--disable-nls
 
-LDFLAGS="%{rpmldflags}"
+#LDFLAGS="%{rpmldflags}"
 %endif
 
 build vim.ncurses \
@@ -1379,6 +1397,9 @@
 All persons listed below can be reached at <cvs_login>@pld-linux.org
 
 $Log$
+Revision 1.516  2010/08/16 12:28:47  baggins
+- hack around glibc brokeness wrt static linking and nss
+
 Revision 1.515  2010/07/09 11:25:46  arekm
 - release 4
 
================================================================

---- CVS-web:
    http://cvs.pld-linux.org/cgi-bin/cvsweb.cgi/packages/vim/vim.spec?r1=1.515&r2=1.516&f=u



More information about the pld-cvs-commit mailing list