From 7e8d9dfda2e80529b58cb345d359f805149fb68d Mon Sep 17 00:00:00 2001 From: Allan McRae Date: Mon, 24 Sep 2012 00:30:46 +1000 Subject: [PATCH] makepkg: create package from stripped debug symbols Signed-off-by: Allan McRae --- doc/PKGBUILD.5.txt | 2 ++ doc/makepkg.conf.5.txt | 3 ++- scripts/makepkg.sh.in | 25 +++++++++++++++++++++++++ 3 files changed, 29 insertions(+), 1 deletion(-) diff --git a/doc/PKGBUILD.5.txt b/doc/PKGBUILD.5.txt index 28c4868d..afe6b541 100644 --- a/doc/PKGBUILD.5.txt +++ b/doc/PKGBUILD.5.txt @@ -277,6 +277,8 @@ A normal sync or upgrade will not use its value. *debug*;; Add the user-specified debug flags (DEBUG_CFLAGS, DEBUG_CXXFLAGS) to their counterpart buildflags as specified in linkman:makepkg.conf[5]. + When used in combination with the `strip' option, a separate package + containing the debug symbols is created. build() Function ---------------- diff --git a/doc/makepkg.conf.5.txt b/doc/makepkg.conf.5.txt index 1a24641a..4172d219 100644 --- a/doc/makepkg.conf.5.txt +++ b/doc/makepkg.conf.5.txt @@ -177,7 +177,8 @@ Options *debug*;; Add the user-specified debug flags as specified in DEBUG_CFLAGS and - DEBUG_CXXFLAGS to their counterpart buildflags. + DEBUG_CXXFLAGS to their counterpart buildflags. Creates a separate + package containing the debug symbols with used with `strip'. **INTEGRITY_CHECK=(**check1 ...**)**:: File integrity checks to use. Multiple checks may be specified; this diff --git a/scripts/makepkg.sh.in b/scripts/makepkg.sh.in index cbc6ff2c..ba6119f5 100644 --- a/scripts/makepkg.sh.in +++ b/scripts/makepkg.sh.in @@ -1864,6 +1864,28 @@ create_package() { fi } +create_debug_package() { + # check if a debug package was requested + if ! check_option "debug" "y" || ! check_option "strip" "y"; then + return + fi + + pkgdir="${pkgdir}-debug" + + # check if we have any debug symbols to package + if dir_is_empty "$pkgdir/usr/lib/debug"; then + return + fi + + depends=("$pkgname=$(get_full_version)") + pkgdesc="Detached debugging symbols for $pkgname" + pkgname=$pkgname-debug + + unset groups optdepends provides conflicts replaces backup install changelog + + create_package +} + create_signature() { if [[ $SIGNPKG != 'y' ]]; then return @@ -2332,6 +2354,7 @@ run_split_packaging() { run_package $pkgname tidy_install create_package + create_debug_package restore_package_variables pkgdir="${pkgdir%/*}" done @@ -2756,6 +2779,7 @@ if (( INFAKEROOT )); then fi tidy_install create_package + create_debug_package pkgdir="${pkgdir%/*}" else run_split_packaging @@ -2895,6 +2919,7 @@ else fi tidy_install create_package + create_debug_package pkgdir="${pkgdir%/*}" else run_split_packaging