SOURCES: rpm.macros - introduced _autostrip* as a general solution...

qboosh qboosh at pld-linux.org
Sun Jan 6 15:14:32 CET 2008


Author: qboosh                       Date: Sun Jan  6 14:14:32 2008 GMT
Module: SOURCES                       Tag: HEAD
---- Log message:
- introduced _autostrip* as a general solution to adjust stripping options without affecting *-debuginfo packages

---- Files affected:
SOURCES:
   rpm.macros (1.410 -> 1.411) 

---- Diffs:

================================================================
Index: SOURCES/rpm.macros
diff -u SOURCES/rpm.macros:1.410 SOURCES/rpm.macros:1.411
--- SOURCES/rpm.macros:1.410	Thu Jan  3 19:24:57 2008
+++ SOURCES/rpm.macros	Sun Jan  6 15:14:27 2008
@@ -387,31 +387,50 @@
 			echo "DONE"; \
 		fi; \
 	fi; \
-	filelist=`find $RPM_BUILD_ROOT -type f ! -regex ".*ld-[0-9.]*so.*" ! -regex ".*libpthread-[0-9.]*so.*" ! -regex ".*/usr/lib[0-9]*/debug/.*\.debug" ! -regex ".*%{_docdir}/.*" ! -regex ".*%{_includedir}/.*" %{?_noautostrip:! -regex "%{_noautostrip}"}`; \
-	# vim - " \
-	if [ -z "$filelist" ]; then \
-		return; \
+	filelist=`find $RPM_BUILD_ROOT -type f ! -regex ".*/usr/lib[0-9]*/debug/.*\.debug" ! -regex ".*%{_docdir}/.*" ! -regex ".*%{_includedir}/.*" %{?_noautostrip:! -regex "%{_noautostrip}"} %{?_autostripall:! -regex "%{_autostripall}"} %{?_autostripunneeded:! -regex "%{_autostripunneeded}"} %{?_autostripdebug:! -regex "%{_autostripdebug}"}`; \
+	if [ -n "$filelist" ]; then \
+		filetypes=`echo "$filelist" | xargs -r -d'\\n' file`; \
+		elfexelist=`echo "$filetypes" | awk -F: '/ELF.*executable/ {print $1}'`; \
+		elfsharedlist=`echo "$filetypes" | awk -F: '/LF.*shared object/ {print $1}'`; \
+		archiveslist=`echo "$filetypes" | awk -F '/current ar archive/ {print $1}'`; \
+		if [ -n "$elfexelist" ]; then \
+			printf "Stripping %d ELF executables..." $(echo "$elfexelist" | wc -l); \
+			chmod u+w $elfexelist; \
+			%{__strip} --remove-section=.note --remove-section=.comment $elfexelist; \
+			echo "DONE"; \
+		fi; \
+		if [ -n "$elfsharedlist" ]; then \
+			printf "Stripping %d ELF shared libraries..." $(echo "$elfsharedlist" | wc -l); \
+			chmod u+w $elfsharedlist; \
+			%{__strip} --strip-unneeded --remove-section=.note --remove-section=.comment $elfsharedlist; \
+			echo "DONE"; \
+		fi; \
+		if [ -n "$archiveslist" ]; then \
+			printf "Stripping %d ar archives..." $(echo "$elfsharedlist" | wc -l); \
+			chmod u+w $archiveslist; \
+			%{__strip} --strip-debug --remove-section=.note --remove-section=.comment $archiveslist; \
+			echo "DONE"; \
+		fi; \
 	fi; \
-	filetypes=`echo "$filelist" | xargs -r -d'\\n' file`; \
-	elfexelist=`echo "$filetypes" | awk -F: '/ELF.*executable/ {print $1}'`; \
-	elfsharedlist=`echo "$filetypes" | awk -F: '/LF.*shared object/ {print $1}'`; \
-	archiveslist=`echo "$filetypes" | awk -F '/current ar archive/ {print $1}'`; \
-	if [ -n "$elfexelist" ]; then \
-		printf "Stripping %d ELF executables..." $(echo "$elfexelist" | wc -l); \
+    filelist_all=%{?_autostripall:`find $RPM_BUILD_ROOT -type f -regex "%{_autostripall}"} \
+    filelist_unneeded=%{?_autostripunneeded:`find $RPM_BUILD_ROOT -type f -regex "%{_autostripunneeded}"} \
+    filelist_debug=%{?_autostripdebug:`find $RPM_BUILD_ROOT -type f -regex "%{_autostripdebug}"} \
+	if [ -n "$filelist_all" ]; then \
+		printf "Stripping everything from %d additional files..." $(echo "$filelist_all" | wc -l); \
 		chmod u+w $elfexelist; \
-		%{__strip} --remove-section=.note --remove-section=.comment $elfexelist; \
+		%{__strip} --remove-section=.note --remove-section=.comment $filelist_all; \
 		echo "DONE"; \
 	fi; \
-	if [ -n "$elfsharedlist" ]; then \
-		printf "Stripping %d ELF shared libraries..." $(echo "$elfsharedlist" | wc -l); \
+	if [ -n "$filelist_unneeded" ]; then \
+		printf "Stripping unneeded from %d additional files..." $(echo "$filelist_unneeded" | wc -l); \
 		chmod u+w $elfsharedlist; \
-		%{__strip} --strip-unneeded --remove-section=.note --remove-section=.comment $elfsharedlist; \
+		%{__strip} --strip-unneeded --remove-section=.note --remove-section=.comment $filelist_unneeded; \
 		echo "DONE"; \
 	fi; \
-	if [ -n "$archiveslist" ]; then \
-		printf "Stripping %d ar archives..." $(echo "$elfsharedlist" | wc -l); \
+	if [ -n "$filelist_debug" ]; then \
+		printf "Stripping debuginfo from %d additional files..." $(echo "$filelist_debug" | wc -l); \
 		chmod u+w $archiveslist; \
-		%{__strip} --strip-debug --remove-section=.note --remove-section=.comment $archiveslist; \
+		%{__strip} --strip-debug --remove-section=.note --remove-section=.comment $filelist_debug; \
 		echo "DONE"; \
 	fi; \
 fi; }; __spec_install_post_strip } } }
================================================================

---- CVS-web:
    http://cvs.pld-linux.org/cgi-bin/cvsweb.cgi/SOURCES/rpm.macros?r1=1.410&r2=1.411&f=u



More information about the pld-cvs-commit mailing list