[pacman-dev] [PATCH 1/2] makepkg: fix extraction of soname in find_libdepends
Allan McRae
allan at archlinux.org
Fri Mar 9 20:43:46 EST 2012
On 05/03/12 06:19, Florian Pritz wrote:
> libperl.so results in soname="libperl.so.so" which is wrong.
>
> This returns the correct string: "libperl.so"
>
> Fix-by: Dave Reisner <dreisner at archlinux.org>
> Signed-off-by: Florian Pritz <bluewind at xinu.at>
> ---
> This should be applied to both master and maint.
Ugh.. I didn't review this but the patch is entirely broken on the
first file I tried it on.
> scripts/makepkg.sh.in | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/scripts/makepkg.sh.in b/scripts/makepkg.sh.in
> index 6e7a556..9301730 100644
> --- a/scripts/makepkg.sh.in
> +++ b/scripts/makepkg.sh.in
> @@ -1071,7 +1071,7 @@ find_libdepends() {
> for sofile in $(LC_ALL=C readelf -d "$filename" 2>/dev/null | sed -nr 's/.*Shared library: \[(.*)\].*/\1/p')
> do
> # extract the library name: libfoo.so
> - soname="${sofile%%\.so\.*}.so"
> + soname="${sofile%.so?(+(.+([0-9])))}".so
Broken:
> LC_ALL=C readelf -d /usr/lib/libalpm.so.7.0.2 2>/dev/null | sed -nr
's/.*Shared library: \[(.*)\].*/\1/p'
libcurl.so.4
libarchive.so.12
libcrypto.so.1.0.0
libgpgme.so.11
libc.so.6
> sofile="libcrypto.so.1.0.0"
> echo "${sofile%.so?(+(.+([0-9])))}".so
libcrypto.so.1.0.0.so
Why not just:
soname="${sofile%%\.so*}.so"
I suppose that would not correctly work for...
foo.so.bar.so.9
Allan
More information about the pacman-dev
mailing list