summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAllan McRae <allan@archlinux.org>2012-09-24 00:30:46 +1000
committerAllan McRae <allan@archlinux.org>2012-11-27 15:16:15 +1000
commit7e8d9dfda2e80529b58cb345d359f805149fb68d (patch)
tree6a6b1f13aae34350230ddda5a577db9f5f44f447
parenta5e81f55993c1be170c73b78b4281845e127a6f3 (diff)
downloadpacman-7e8d9dfda2e80529b58cb345d359f805149fb68d.tar.xz
makepkg: create package from stripped debug symbols
Signed-off-by: Allan McRae <allan@archlinux.org>
-rw-r--r--doc/PKGBUILD.5.txt2
-rw-r--r--doc/makepkg.conf.5.txt3
-rw-r--r--scripts/makepkg.sh.in25
3 files changed, 29 insertions, 1 deletions
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