[pacman-dev] [PATCH 1/2] Add staticlibs option in PKGBUILD

Sébastien Luttringer seblu at seblu.net
Mon Mar 4 18:30:08 EST 2013


This option helps to removes static library files in packages.

Related to the thread:
https://mailman.archlinux.org/pipermail/arch-dev-public/2013-March/024552.html

Signed-off-by: Sébastien Luttringer <seblu at seblu.net>
---
 doc/PKGBUILD.5.txt     |  4 ++++
 doc/makepkg.conf.5.txt |  6 +++++-
 etc/makepkg.conf.in    | 21 +++++++++++----------
 scripts/makepkg.sh.in  |  9 +++++++--
 4 files changed, 27 insertions(+), 13 deletions(-)

diff --git a/doc/PKGBUILD.5.txt b/doc/PKGBUILD.5.txt
index c37477a..ea280a0 100644
--- a/doc/PKGBUILD.5.txt
+++ b/doc/PKGBUILD.5.txt
@@ -243,6 +243,10 @@ A normal sync or upgrade will not use its value.
 		Leave libtool (.la) files in packages. Specify `!libtool` to
 		remove them.
 
+	*staticlibs*;;
+		Leave static library (.a) files in packages. Specify `!staticlibs` to
+		remove them.
+
 	*emptydirs*;;
 		Leave empty directories in packages.
 
diff --git a/doc/makepkg.conf.5.txt b/doc/makepkg.conf.5.txt
index 71cfc5d..0d1cf00 100644
--- a/doc/makepkg.conf.5.txt
+++ b/doc/makepkg.conf.5.txt
@@ -138,7 +138,7 @@ Options
 	Specify a key to use for gpg signing instead of the default key in the
 	keyring. Can be overridden with makepkg's '\--key' option.
 
-**OPTIONS=(**strip docs libtool emptydirs zipman purge !upx**)**::
+**OPTIONS=(**strip docs libtool staticlibs emptydirs zipman purge !upx**)**::
 	This array contains options that affect the default packaging. They are
 	equivalent to options that can be placed in the PKGBUILD; the defaults are
 	shown here. All options should always be left in the array; to enable or
@@ -160,6 +160,10 @@ Options
 		Leave libtool (.la) files in packages. Specify `!libtool` to remove
 		them.
 
+	*staticlibs*;;
+		Leave static library (.a) files in packages. Specify `!staticlibs` to
+		remove them.
+
 	*emptydirs*;;
 		Leave empty directories in packages.
 
diff --git a/etc/makepkg.conf.in b/etc/makepkg.conf.in
index 1436042..b2bf811 100644
--- a/etc/makepkg.conf.in
+++ b/etc/makepkg.conf.in
@@ -68,16 +68,17 @@ BUILDENV=(fakeroot !distcc color !ccache check !sign)
 # Default: OPTIONS=(strip docs libtool emptydirs zipman purge !upx !debug)
 #  A negated option will do the opposite of the comments below.
 #
-#-- strip:     Strip symbols from binaries/libraries
-#-- docs:      Save doc directories specified by DOC_DIRS
-#-- libtool:   Leave libtool (.la) files in packages
-#-- emptydirs: Leave empty directories in packages
-#-- zipman:    Compress manual (man and info) pages in MAN_DIRS with gzip
-#-- purge:     Remove files specified by PURGE_TARGETS
-#-- upx:       Compress binary executable files using UPX
-#-- debug:     Add debugging flags as specified in DEBUG_* variables
-#
-OPTIONS=(strip docs libtool emptydirs zipman purge !upx !debug)
+#-- strip:      Strip symbols from binaries/libraries
+#-- docs:       Save doc directories specified by DOC_DIRS
+#-- libtool:    Leave libtool (.la) files in packages
+#-- staticlibs: Leave static library (.a) files in packages
+#-- emptydirs:  Leave empty directories in packages
+#-- zipman:     Compress manual (man and info) pages in MAN_DIRS with gzip
+#-- purge:      Remove files specified by PURGE_TARGETS
+#-- upx:        Compress binary executable files using UPX
+#-- debug:      Add debugging flags as specified in DEBUG_* variables
+#
+OPTIONS=(strip docs libtool staticlibs emptydirs zipman purge !upx !debug)
 
 #-- File integrity checks to use. Valid: md5, sha1, sha256, sha384, sha512
 INTEGRITY_CHECK=(md5)
diff --git a/scripts/makepkg.sh.in b/scripts/makepkg.sh.in
index bd29d73..a48512e 100644
--- a/scripts/makepkg.sh.in
+++ b/scripts/makepkg.sh.in
@@ -44,8 +44,8 @@ declare -r confdir='@sysconfdir@'
 declare -r BUILDSCRIPT='@BUILDSCRIPT@'
 declare -r startdir="$PWD"
 
-packaging_options=('strip' 'docs' 'libtool' 'emptydirs' 'zipman' 'purge' 'upx' \
-                   'debug')
+packaging_options=('strip' 'docs' 'libtool' 'staticlibs' 'emptydirs' 'zipman' \
+                   'purge' 'upx' 'debug')
 other_options=('ccache' 'distcc' 'buildflags' 'makeflags')
 splitpkg_overrides=('pkgver' 'pkgrel' 'epoch' 'pkgdesc' 'arch' 'url' 'license' \
                     'groups' 'depends' 'optdepends' 'provides' 'conflicts' \
@@ -1503,6 +1503,11 @@ tidy_install() {
 		find . ! -type d -name "*.la" -exec rm -f -- '{}' \;
 	fi
 
+	if check_option "staticlibs" "n"; then
+		msg2 "$(gettext "Removing "%s" files...")" "static library"
+		find . ! -type d -name "*.a" -delete
+	fi
+
 	if check_option "emptydirs" "n"; then
 		msg2 "$(gettext "Removing empty directories...")"
 		find . -depth -type d -exec rmdir '{}' + 2>/dev/null
-- 
1.8.1.5



More information about the pacman-dev mailing list