[pacman-dev] [PATCH] makepkg: only remove static libraries if they have a shared version
Allan McRae
allan at archlinux.org
Thu Oct 31 09:25:36 EDT 2013
It is fairly common that packages contain static libraries with no
shared counterpart. These should not be removed with !staticlibs.
Signed-off-by: Allan McRae <allan at archlinux.org>
---
doc/PKGBUILD.5.txt | 2 +-
doc/makepkg.conf.5.txt | 2 +-
scripts/makepkg.sh.in | 8 +++++++-
3 files changed, 9 insertions(+), 3 deletions(-)
diff --git a/doc/PKGBUILD.5.txt b/doc/PKGBUILD.5.txt
index 4ac7dc1..6c5ef84 100644
--- a/doc/PKGBUILD.5.txt
+++ b/doc/PKGBUILD.5.txt
@@ -250,7 +250,7 @@ A normal sync or upgrade will not use its value.
*staticlibs*;;
Leave static library (.a) files in packages. Specify `!staticlibs` to
- remove them.
+ remove them (if they have a shared counterpart).
*emptydirs*;;
Leave empty directories in packages.
diff --git a/doc/makepkg.conf.5.txt b/doc/makepkg.conf.5.txt
index be5b809..ef64d17 100644
--- a/doc/makepkg.conf.5.txt
+++ b/doc/makepkg.conf.5.txt
@@ -162,7 +162,7 @@ Options
*staticlibs*;;
Leave static library (.a) files in packages. Specify `!staticlibs` to
- remove them.
+ remove them (if they have a shared counterpart).
*emptydirs*;;
Leave empty directories in packages.
diff --git a/scripts/makepkg.sh.in b/scripts/makepkg.sh.in
index b2cc8e2..67bd7f1 100644
--- a/scripts/makepkg.sh.in
+++ b/scripts/makepkg.sh.in
@@ -1584,7 +1584,13 @@ tidy_install() {
if check_option "staticlibs" "n"; then
msg2 "$(gettext "Removing static library files...")"
- find . ! -type d -name "*.a" -exec rm -f -- '{}' +
+ local sl=($(find . ! -type d -name "*.a"))
+ local l
+ for l in "${sl[@]}"; do
+ if [[ -f "${l%.a}.so" ]]; then
+ rm -f "$l"
+ fi
+ done
fi
if check_option "emptydirs" "n"; then
--
1.8.4.2
More information about the pacman-dev
mailing list