From: SoonKyu Park Date: Mon, 7 Dec 2015 01:25:50 +0000 (+0900) Subject: Modify eu-strip option to perform strip in post script of rpm package & add option... X-Git-Tag: accepted/tizen/base/20151223.052332^0 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=9cf156d6583a9f9581000bb12ff047980ebcef03;hp=e7d047a09a00b7f9789dcc2c0a3b6c49d3b4b771;p=platform%2Fupstream%2Frpm.git Modify eu-strip option to perform strip in post script of rpm package & add option add '_rpm_strip_disable' option and '_rpm_strip_option' to project config. Change-Id: I3718510670465957e7048db6ed285bd8ed09a5dd --- diff --git a/macros.in b/macros.in index e285ce1..a7cab87 100644 --- a/macros.in +++ b/macros.in @@ -179,8 +179,12 @@ # A spec file can %%define _find_debuginfo_opts to pass options to # the script. See the script for details. # + +%_find_debuginfo_opts %{?_rpm_strip_disable:--strip-disable} +%_find_debuginfo_strip_opts %{?_rpm_strip_option:\'--strip-option=%{_rpm_strip_option}\'} + %__debug_install_post \ - %{_rpmconfigdir}/find-debuginfo.sh %{?_missing_build_ids_terminate_build:--strict-build-id} %{?_find_debuginfo_opts} "%{_builddir}/%{?buildsubdir}"\ + %{_rpmconfigdir}/find-debuginfo.sh %{?_missing_build_ids_terminate_build:--strict-build-id} %{?_find_debuginfo_opts} %{?_find_debuginfo_strip_opts} "%{_builddir}/%{?buildsubdir}"\ %{nil} # Template for debug information sub-package. diff --git a/packaging/rpm-tizen_macros b/packaging/rpm-tizen_macros index c527673..d20c04d 100644 --- a/packaging/rpm-tizen_macros +++ b/packaging/rpm-tizen_macros @@ -22,10 +22,27 @@ %kernel_name %(/bin/rpm -q --queryformat '%{RPMTAG_NAME}' $(/bin/rpm -q --whatprovides kernel)) # this script calls all scripts in /usr/lib/rpm/brp-tizen.d -%__os_install_post \ - /usr/lib/rpm/brp-compress \ - /usr/lib/rpm/brp-tizen \ - %{!?disable_docs_package:/usr/lib/rpm/tizen/find-docs.sh %{buildroot}} \ +%__arch_install_post /usr/lib/rpm/check-buildroot + +%__strip_install_post \ + %{!?__debug_package:/usr/lib/rpm/brp-strip %{__strip}} \ + /usr/lib/rpm/brp-strip-static-archive %{__strip} \ +# /usr/lib/rpm/brp-strip-comment-note %{__strip} %{__objdump} \ +%{nil} + +%__os_install_post \ + /usr/lib/rpm//brp-compress \ + %{!?_rpm_strip_disable:%{__strip_install_post}}\ + /usr/lib/rpm/brp-python-hardlink \ + %{!?disable_docs_package:/usr/lib/rpm/tizen/find-docs.sh %{buildroot}} \ +%{nil} + +# /usr/lib/rpm/tizen/brp-implant-ident-static + +%__spec_install_post\ + %{?__debug_package:%{__debug_install_post}}\ + %{__arch_install_post}\ + %{__os_install_post}\ %{nil} # macro: %configure_kernel_source diff --git a/packaging/rpm.spec b/packaging/rpm.spec index 9555fca..80c82c9 100644 --- a/packaging/rpm.spec +++ b/packaging/rpm.spec @@ -195,8 +195,8 @@ mkdir -p %{buildroot}%{rpmhome}/macros.d # remove some nonsense or non-working scripts for f in rpm2cpio.sh rpm.daily rpmdiff* rpm.log rpm.xinetd freshen.sh u_pkg.sh \ magic magic.mgc magic.mime* rpmfile *.pl javadeps brp-redhat \ - brp-strip-static-archive vpkg-provides*.sh http.req sql.req tcl.req \ - rpmdb_* brp-sparc64-linux brp-strip-comment-note brp-java-gcjcompile + vpkg-provides*.sh http.req sql.req tcl.req \ + rpmdb_* brp-sparc64-linux brp-java-gcjcompile do rm -f %{buildroot}%{rpmhome}/$f done diff --git a/scripts/find-debuginfo.sh b/scripts/find-debuginfo.sh index 8b7a6c4..885b9b1 100644 --- a/scripts/find-debuginfo.sh +++ b/scripts/find-debuginfo.sh @@ -2,7 +2,7 @@ #find-debuginfo.sh - automagically generate debug info and file list #for inclusion in an rpm spec file. # -# Usage: find-debuginfo.sh [--strict-build-id] [-g] [-r] +# Usage: find-debuginfo.sh [--strict-build-id] [--strip-disable] [--strip-option] [-g] [-r] # [-o debugfiles.list] # [[-l filelist]... [-p 'pattern'] -o debuginfo.list] # [builddir] @@ -32,6 +32,12 @@ strip_r=false # Barf on missing build IDs. strict=false +# With --strip-disable arg, no strip +strip_disable=false + +# With --strip-option arg, this will be used as arg. of eu-strip +strip_option= + BUILDDIR=. out=debugfiles.list nout=0 @@ -40,6 +46,12 @@ while [ $# -gt 0 ]; do --strict-build-id) strict=true ;; + --strip-disable) + strip_disable=true + ;; + *--strip-option*) + strip_option=$(echo $1 | sed 's/--strip-option=//') + ;; -g) strip_g=true ;; @@ -95,17 +107,27 @@ debugdir="${RPM_BUILD_ROOT}/usr/lib/debug" strip_to_debug() { + local g= local r= + + if test "$strip_disable" = true ; then + exit + fi + $strip_r && r=--reloc-debug-sections + $strip_g && case "$(file -bi "$2")" in + application/x-sharedlib*) g=-g ;; + esac + case $2 in *.ko) - # don't attempt to create a minimal backtrace binary for - # kernel modules as this just causes the stripping process - # to be skipped entirely - eu-strip --remove-comment $r -f "$1" "$2" || exit - ;; + # don't attempt to create a minimal backtrace binary for + # kernel modules as this just causes the stripping process + # to be skipped entirely + eu-strip --remove-comment $r $strip_option -f "$1" "$2" || exit + ;; *) - eu-strip --remove-comment -g -f "$1" "$2" || exit + eu-strip --remove-comment $g $strip_option -f "$1" "$2" || exit esac chmod 444 "$1" || exit } @@ -317,6 +339,9 @@ while read nlinks inum f; do if test "$NO_DEBUGINFO_STRIP_DEBUG" = true ; then strip_option= fi + if test "$strip_disable" = true ; then + strip_option= + fi objcopy --add-gnu-debuglink=$debugfn -R .comment -R .GCC.command.line $strip_option $f chmod $mode $f ) || :