[arch-dev-public] bash 4.0 / readline 6.0 rebuilds

Thomas Bächler thomas at archlinux.org
Sat Feb 28 20:52:50 EST 2009


Aaron Griffin schrieb:
>>> Packages affected, according to the web interface:
>>>    * abook
>>>    * afterstep
>>>    * archboot
>>>    * bash
>>>    * bc
>>>    * cdcd
>>>    * clisp
>>>    * device-mapper
>>>    * freeciv
>>>    * fvwm
>>>    * fvwm-devel
>>>    * gftp
>>>    * gnuchess
>>>    * gnutls
>>>    * gphoto2
>>>    * gutenprint
>>>    * hugs98
>>>    * inetutils
>>>    * jack-audio-connection-kit
>>>    * lftp
>>>    * libxml2
>>>    * lua
>>>    * maxima
>>>    * mysql-clients
>>>    * ntp
>>>    * pal
>>>    * php
>>>    * pilot-link
>>>    * postgresql-libs
>>>    * python24
>>>    * r
>>>    * ratpoison
>>>    * rosegarden
>>>    * ruby
>>>    * socat
>>>    * sqlite3
>>>    * sqlite3 (testing)
>>>    * swi-prolog
>>>    * tunepimp
>>>    * uml_utilities
>>>    * unixodbc
>>>    * wvstreams

Add the new wpa_supplicant to that list (wpa_cli now uses readline).


>> #! /bin/bash
>>
>> # Run in minimal chroot to avoid false positives due to dependancies.
>> # Chroot can be built with:
>> # sudo mkarchroot <chrootdir>/root glibc coreutils findutils grep tar gzip
>>
>> # Copy script to <chrootdir>/root/tmp and packages to
>> <chrootdir>/root/tmp/pkg
>>
>> # Usage:
>> # ./rebuildlist <library>
>> # <library> does not contain ".so"
>>
>>
>> library=$1
>> if [ "x$library" == "x" ]; then
>>        echo "Usage $0 <library>"
>>        exit
>> fi
>>
>> for pkg in $(ls pkg); do
>>        echo $pkg
>>        mkdir tmp
>>        cp pkg/$pkg tmp
>>        cd tmp
>>        tar -xf $pkg
>>        rm $pkg
>>        found=$(ldd $(find .) 2>/dev/null | grep "${library}.so" | wc -l)
>>        if [ $found -ne 0 ]; then
>>                echo $pkg >> ../rebuildlist.txt
>>        fi
>>        cd ..
>>        rm -rf tmp
>> done

Don't use ldd here, as it also covers indirect dependencies. If libA 
depends on libB and libB depends on libC, then only libB needs updating 
when libC changes the SOname, as long as libA never calls libC directly.

You should parse the output of readelf -d, which only shows direct 
dependencies and thus allows you to distinguish between direct and 
indirect dependencies ... at least as far as I understand it.

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 260 bytes
Desc: OpenPGP digital signature
URL: <http://www.archlinux.org/pipermail/arch-dev-public/attachments/20090301/1f6f719f/attachment.pgp>


More information about the arch-dev-public mailing list