-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Fixed problems mentioned so far.
- -- Florian Pritz -- {flo,bluewi...@server-speed.net -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.12 (GNU/Linux) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org iQIcBAEBAgAGBQJKht81AAoJEG0WVcFM4cE+7a4P/jsSUrJJ1OjOLC+sRbtf87zI oU7Nb2wyLcvjXvtPdErnXUdxau1vYfgTVvjoRV6ARMqiYqgmsphtHnjgHfNfoWvC fDJpLhCiSa5vm+pSnzcAlZI4BV+xa/0QDEqAWneplbtmNS86KEnkvJPt+1qmtmDh R869YcpNTP/hzFP8PBdkcLGopdOruyy3+ldiEECxzbaI5msN5LTIWMTaRlH9Cfis +03BU2OU84lTapBn3JWXKcNktBAXurqOXEELqEjBZy7+GRZkOKRPPvj2ybfgu8zb bGdF3K6vkC3s3NvoGaX0NG7M3uOSM2NzXYH4NPeoAkFNUJvPvN1bfBefcTmrC9mt WKtZXQSzCiwcXseqvhWpWjwC5U+OyBIm/3DEycPKuq9tf2zMfQ1rStWnYzuuSu3C +A6U5QmMz+fe/NA9leSR4qPRCxHglqK05qS0ZYYGGN6jfLm8PGyEJovue/byMbhS sKMyqlPWhC7beHKi+9nVfmxJVdsgtYCzKSPj6wPWn8sxuVfvN1d6oCfpElM4Ve70 N1IW+XqG+EiYWjArnSG/LKgWuXOlAqsOT9NgyoDF/R5+SlDE3zNDaZPG4M4yYFQ6 OUDDB2v+E6+kiPvFk0bfDYmCispzT+FhPS1BO1xfPJMYbW8I806aQWpw6YFtLrRh 0r0xr22M6dK8KFfxb3JS =Ry89 -----END PGP SIGNATURE-----
>From 8525810a22eceddb6e9c14ab20ad7cc306e9d6de Mon Sep 17 00:00:00 2001 From: Florian Pritz <bluew...@xssn.at> Date: Sat, 15 Aug 2009 12:35:32 +0200 Subject: [PATCH] add support for .so dependencies Support-by: brain0 <tho...@archlinux.org> Support-by: GNU\caustic <christoph.sch...@uni-ulm.de> --- etc/makepkg.conf.in | 4 +++- scripts/makepkg.sh.in | 43 +++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 46 insertions(+), 1 deletions(-) diff --git a/etc/makepkg.conf.in b/etc/makepkg.conf.in index 3a3a415..8d91bcc 100644 --- a/etc/makepkg.conf.in +++ b/etc/makepkg.conf.in @@ -67,8 +67,10 @@ BUILDENV=(fakeroot !distcc color !ccache) #-- 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 +#-- soprovides:add .so files to provides array +#-- sodepends: add .so files to depends array # -OPTIONS=(strip docs libtool emptydirs zipman purge) +OPTIONS=(strip docs libtool emptydirs zipman purge soprovides !sodepends) #-- 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 daa9585..0e468de 100644 --- a/scripts/makepkg.sh.in +++ b/scripts/makepkg.sh.in @@ -872,6 +872,32 @@ tidy_install() { fi } +find_sodepends() +{ + find $pkgdir | while read filename + do + soarch=$(readelf -h "$filename" 2> /dev/null| sed -nr 's/.*Class:.*ELF(.*).*/\1/p') + [ -n "$soarch" ] || continue + readelf -d "$filename" 2> /dev/null | sed -nr 's/.*Shared library: \[(.*)\].*/\1/p' \ + | while read dep + do + echo sodep-${soarch}-${dep} + done + done +} + +find_soprovides() +{ + find $pkgdir -name \*.so | while read filename + do + soarch=$(readelf -h "$filename" 2> /dev/null| sed -nr 's/.*Class:.*ELF(.*).*/\1/p') + [ -n "$soarch" ] || continue + soname=$(readelf -d "$filename" 2>/dev/null | sed -nr 's/.*Library soname: \[(.*)\].*/\1/p') + [ -n "$soname" ] || continue + echo sodep-${soarch}-${soname} + done +} + write_pkginfo() { local builddate=$(date -u "+%s") if [ -n "$PACKAGER" ]; then @@ -902,6 +928,23 @@ write_pkginfo() { echo "force = true" >> .PKGINFO fi + if [ "$(check_option soprovides)" = "y" ] || [ "$(check_option sodepends)" = "y" ]; then + soprovides=$(find_soprovides) + fi + + if [ "$(check_option sodepends)" = "y" ]; then + sodepends=$(find_sodepends) + + # filter .so files provided by the package itself + sodepends=$(echo $sodepends $soprovides $soprovides | tr " " "\n" | sort | uniq -u) + + depends=($depends $sodepends) + fi + + if [ "$(check_option soprovides)" = "y" ]; then + provides=($provides $soprovides) + fi + local it for it in "${licen...@]}"; do echo "license = $it" >>.PKGINFO -- 1.6.4
0001-add-support-for-.so-dependencies.patch.sig
Description: Binary data