]> git.pld-linux.org Git - packages/rpm.git/blobdiff - rpm.macros
- _autostrip* bugfixes
[packages/rpm.git] / rpm.macros
index 2a48c0805fffcd14a7701110e355faeb11edb7b1..d110183eb4a7d8cb802c220d14c6d640e02f0105 100644 (file)
@@ -373,7 +373,13 @@ unset DISPLAY ||:\
 #
 # Requires: find, awk, strip, cut, xargs
 #
-#%no_install_post_strip        1
+# Special macros which affect this process:
+#%no_install_post_strip        1               # disable stripping at all
+#%_noautostrip                 regexp  # exclude files matching (anchored!) regex from stripping
+#%_autostripall                        regexp  # strip files matching (anchored!) regex using plain strip
+#%_autostripunneeded   regexp  # strip files matching (anchored!) regex using strip --strip-unneeded
+#%_autostripdebug              regexp  # strip files matching (anchored!) regex using strip --strip-debug
+#
 %__spec_install_post_strip {%{!?debug: \
 %{!?no_install_post_strip:__spec_install_post_strip() { \
 if [ -d "$RPM_BUILD_ROOT" ]; then \
@@ -387,31 +393,50 @@ if [ -d "$RPM_BUILD_ROOT" ]; then \
                        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 "$archiveslist" | 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); \
-               chmod u+w $elfexelist; \
-               %{__strip} --remove-section=.note --remove-section=.comment $elfexelist; \
+    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 $filelist_all; \
+               %{__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); \
-               chmod u+w $elfsharedlist; \
-               %{__strip} --strip-unneeded --remove-section=.note --remove-section=.comment $elfsharedlist; \
+       if [ -n "$filelist_unneeded" ]; then \
+               printf "Stripping unneeded from %d additional files..." $(echo "$filelist_unneeded" | wc -l); \
+               chmod u+w $filelist_unneeded; \
+               %{__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); \
-               chmod u+w $archiveslist; \
-               %{__strip} --strip-debug --remove-section=.note --remove-section=.comment $archiveslist; \
+       if [ -n "$filelist_debug" ]; then \
+               printf "Stripping debuginfo from %d additional files..." $(echo "$filelist_debug" | wc -l); \
+               chmod u+w $filelist_debug; \
+               %{__strip} --strip-debug --remove-section=.note --remove-section=.comment $filelist_debug; \
                echo "DONE"; \
        fi; \
 fi; }; __spec_install_post_strip } } }
@@ -421,7 +446,10 @@ fi; }; __spec_install_post_strip } } }
 #
 # Requires: find, awk, cut, xargs, chrpath, uname
 #
-#%no_install_post_chrpath      1
+# Special macros which affect this process
+#%no_install_post_chrpath      1       # disable chrpath at all
+#%_noautochrpath       regex           # exclude files matching (anchored!) regex from chrpath
+#
 %__spec_install_post_chrpath {%{!?debug: \
 %{!?no_install_post_chrpath: __spec_install_post_chrpath() { \
 if [ -d "$RPM_BUILD_ROOT" ]; then \
This page took 0.046712 seconds and 4 git commands to generate.