[pacman-dev] [PATCH] Make strip paths configurable
Xavier
shiningxc at gmail.com
Mon Jul 28 16:22:25 EDT 2008
On Sun, Jul 20, 2008 at 8:01 AM, Allan McRae <allan at archlinux.org> wrote:
> This patch introduces a new STRIP_DIRS makepkg.conf option
> to change makepkg's search path when stripping binaries.
>
> Original work by: Thomas Bächler <thomas at archlinux.org>
> Signed-off-by: Allan McRae <allan at archlinux.org>
> ---
> doc/makepkg.conf.5.txt | 7 +++++++
> etc/makepkg.conf.in | 2 ++
> scripts/makepkg.sh.in | 9 ++++++---
> 3 files changed, 15 insertions(+), 3 deletions(-)
>
> diff --git a/doc/makepkg.conf.5.txt b/doc/makepkg.conf.5.txt
> index b5a49ba..8b39c46 100644
> --- a/doc/makepkg.conf.5.txt
> +++ b/doc/makepkg.conf.5.txt
> @@ -134,6 +134,13 @@ Options
> that are located in opt/, you may need to add the directory to this
> array. *NOTE:* Do not add the leading slash to the directory name.
>
> +**STRIP_DIRS=(**bin lib sbin usr/{bin,lib} ...**)**::
> + If "strip" is specified in the OPTIONS array, this variable will
> + instruct makepkg where to look to for files to strip. If you build
> + packages that are located in opt/, you may need to add the directory
> + to this array. *NOTE:* Do not add the leading slash to the directory
> + name.
> +
> **PKGDEST=**"/path/to/folder"::
> If this value is not set, packages will by default be placed in the
> current directory (location of the linkman:PKGBUILD[5]). Many people
> diff --git a/etc/makepkg.conf.in b/etc/makepkg.conf.in
> index bb2018f..0241a8e 100644
> --- a/etc/makepkg.conf.in
> +++ b/etc/makepkg.conf.in
> @@ -73,6 +73,8 @@ OPTIONS=(strip docs libtool emptydirs zipman)
> INTEGRITY_CHECK=(md5)
> #-- Info and doc directories to remove (if option set correctly above)
> DOC_DIRS=(usr/{,share/}{info,doc,gtk-doc} opt/*/{info,doc,gtk-doc})
> +#-- Directories to be searched for the strip option (if option set correctly above)
> +STRIP_DIRS=(bin lib sbin usr/{bin,lib,sbin,local/{bin,lib,sbin}} opt/*/{bin,lib,sbin})
>
> #########################################################################
> # PACKAGE OUTPUT
> diff --git a/scripts/makepkg.sh.in b/scripts/makepkg.sh.in
> index 2777102..ae19983 100644
> --- a/scripts/makepkg.sh.in
> +++ b/scripts/makepkg.sh.in
> @@ -731,9 +731,12 @@ tidy_install() {
>
> if [ "$(check_option strip)" = "y" ]; then
> msg2 "$(gettext "Stripping debugging symbols from binaries and libraries...")"
> - local binary bindirs
> - bindirs="bin lib sbin usr/bin usr/lib usr/sbin usr/local/bin usr/local/lib usr/local/sbin opt/*/bin opt/*/lib opt/*/sbin"
> - find ${bindirs} -type f 2>/dev/null | while read binary ; do
> + local binary
> + if [ -z "${STRIP_DIRS[@]}" ]; then
> + # fall back to default value
> + STRIP_DIRS=(bin lib sbin usr/{bin,lib,sbin,local/{bin,lib,sbin}} opt/*/{bin,lib,sbin})
> + fi
> + find ${STRIP_DIRS[@]} -type f 2>/dev/null | while read binary ; do
> case "$(file -biz "$binary")" in
> *application/x-sharedlib*) # Libraries (.so)
> /usr/bin/strip --strip-debug "$binary";;
That line seems to break for me here :
> + if [ -z "${STRIP_DIRS[@]}" ]; then
==> Tidying install...
-> Compressing man pages...
-> Stripping debugging symbols from binaries and libraries...
/usr/bin/makepkg: line 735: [: too many arguments
Can anyone reproduce this? (just run makepkg from git on any packages).
More information about the pacman-dev
mailing list