From: Jakub Bogusz Date: Sun, 6 Jan 2008 14:14:27 +0000 (+0000) Subject: - introduced _autostrip* as a general solution to adjust stripping options without... X-Git-Tag: auto/th/rpm-build-macros-1_412-1~1 X-Git-Url: http://git.pld-linux.org/?p=packages%2Frpm.git;a=commitdiff_plain;h=d65f5d0edf38dd0aee50cea6d567bbafe25784f1 - introduced _autostrip* as a general solution to adjust stripping options without affecting *-debuginfo packages Changed files: rpm.macros -> 1.411 --- diff --git a/rpm.macros b/rpm.macros index 2a48c08..1911af6 100644 --- a/rpm.macros +++ b/rpm.macros @@ -387,31 +387,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 "$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 } } }