SPECS: java-sun.spec - can't append RPATH, so just replace it; rel 6

glen glen at pld-linux.org
Wed Feb 28 02:04:50 CET 2007


Author: glen                         Date: Wed Feb 28 01:04:50 2007 GMT
Module: SPECS                         Tag: HEAD
---- Log message:
- can't append RPATH, so just replace it; rel 6

---- Files affected:
SPECS:
   java-sun.spec (1.175 -> 1.176) 

---- Diffs:

================================================================
Index: SPECS/java-sun.spec
diff -u SPECS/java-sun.spec:1.175 SPECS/java-sun.spec:1.176
--- SPECS/java-sun.spec:1.175	Wed Feb 28 01:53:44 2007
+++ SPECS/java-sun.spec	Wed Feb 28 02:04:44 2007
@@ -9,7 +9,7 @@
 Summary(pl.UTF-8):	Sun JDK - środowisko programistyczne Javy dla Linuksa
 Name:		java-sun
 Version:	1.6.0
-Release:	5
+Release:	6
 License:	restricted, distributable
 Group:		Development/Languages/Java
 Source0:	http://download.java.net/dlj/binaries/jdk-%{_src_ver}-dlj-linux-i586.bin
@@ -374,11 +374,16 @@
 ln -s %{name}-%{version} $RPM_BUILD_ROOT%{_jvmjardir}/jre
 ln -s %{name}-%{version} $RPM_BUILD_ROOT%{_jvmjardir}/jsse
 
-# modify RPATH so that javac and friends are able to work when /proc is not mounted
-# and we append to RPATH not to break previous behaviour.
+# modify RPATH so that javac and friends are able to work when /proc is not
+# mounted and we can't append to RPATH (for example to keep previous lookup
+# path) as RPATH can't be longer than original
+#
 # for example:
-# javac: RPATH=$ORIGIN/../lib/i386/jli:$ORIGIN/../jre/lib/i386/jli
-# javac: new RPATH: /usr/lib/jvm/java-sun-1.6.0/jre/lib/i386/jli
+# old javac: RPATH=$ORIGIN/../lib/i386/jli:$ORIGIN/../jre/lib/i386/jli
+# new javac: RPATH=/usr/lib/jvm/java-sun-1.6.0/jre/lib/i386/jli
+
+# silly rpath: jre/bin/unpack200: RPATH=$ORIGIN
+chrpath -d $RPM_BUILD_ROOT%{jredir}/bin/unpack200
 
 fixrpath() {
 	execlist=$(find $RPM_BUILD_ROOT%{javadir} -type f -perm +1 | xargs file | awk -F: '/ELF.*executable/{print $1}')
@@ -391,24 +396,20 @@
 		origin=${file%/*}
 
 		new=
-		# first include existing rpath
-		for a in $rpath; do
-			new=${new}${new:+:}$a
-		done
 		for a in $rpath; do
 			t=$(echo $a | sed -e "s,\$ORIGIN,$origin,g")
 			# get rid of ../../
-			t=$(t=$RPM_BUILD_ROOT${t%/*}; mkdir -p $t; cd $t; pwd)
+			t=$(set -e; t=$RPM_BUILD_ROOT$t; [ -d $t ] || exit 0; cd $t; pwd)
+			# skip inexistent paths
+			[ "$t" ] || continue
+
 			t=${t#$RPM_BUILD_ROOT}
 
 			if [[ "$new" != *$t* ]]; then
 				# append it now
-				new=${new}:$t
+				new=${new}${new:+:}$t
 			fi
 		done
-		echo "update RPATH $file:"
-		echo "OLD: $rpath"
-		echo "NEW: $new"
 		chrpath -r ${new} $f
 	done
 }
@@ -816,6 +817,9 @@
 All persons listed below can be reached at <cvs_login>@pld-linux.org
 
 $Log$
+Revision 1.176  2007/02/28 01:04:44  glen
+- can't append RPATH, so just replace it; rel 6
+
 Revision 1.175  2007/02/28 00:53:44  glen
 - modify RPATH so that java can be used without /proc mounted (builders)
 
================================================================

---- CVS-web:
    http://cvs.pld-linux.org/SPECS/java-sun.spec?r1=1.175&r2=1.176&f=u



More information about the pld-cvs-commit mailing list