[arch-general] "pkgdyn" a set of scripts for analysis of ELF deps in pkgs.
Hi, This is a set of draft scripts that I use to find/extract some data of ELF files from packages. For example: * Find all packages that needed inexistent shared objects because a soname bump in libraries. * Generate a report for all packages per repo that in case of soname bump , needs to be rebuild. * Find ELF files that are outside the allowed paths (for example ELF in /usr/share) * Find RPATH in packages, with a simple "awk" can generate a report etc. * Other task with "temporary data generated", but there are no scripts at this time, are only "at command line runtime". Can be easily construct with awk, of your preferer lang. It use files in analysis so, if a ELF needed a "soname" that are symlink, this are reported (tho only case here are courier-maildrop, just ignore it) http://archlinux.djgera.com.ar/pkgdyn/ Sample data and generated DB by "dynup.bash" is uploaded, extract in "pkgdyn" directory. The dyunp.bash can make DB from empty DB, or update the DB, deleting old entries and inserting news. Is in "public domain": so use it, modify it, copy it, no problem. Sugestions, improvements, dudes, write me. PS1: Exception here: (this report as missing, but is a "optdepend in community") extra/gnome-speech-0.4.25-1:NEEDED libespeak.so.1 PS2: All missing deps I already reported and many of [community] have been fixed. Congrats TU! Cheers, -- Gerardo Exequiel Pozzi ( djgera ) http://www.djgera.com.ar KeyID: 0x1B8C330D Key fingerprint = 0CAA D5D4 CD85 4434 A219 76ED 39AB 221B 1B8C 330D
On Thu, Apr 23, 2009 at 10:45 PM, Gerardo Exequiel Pozzi <vmlinuz386@yahoo.com.ar> wrote:
Hi,
This is a set of draft scripts that I use to find/extract some data of ELF files from packages. For example:
* Find all packages that needed inexistent shared objects because a soname bump in libraries. * Generate a report for all packages per repo that in case of soname bump , needs to be rebuild. * Find ELF files that are outside the allowed paths (for example ELF in /usr/share) * Find RPATH in packages, with a simple "awk" can generate a report etc.
* Other task with "temporary data generated", but there are no scripts at this time, are only "at command line runtime". Can be easily construct with awk, of your preferer lang.
It use files in analysis so, if a ELF needed a "soname" that are symlink, this are reported (tho only case here are courier-maildrop, just ignore it)
http://archlinux.djgera.com.ar/pkgdyn/
Sample data and generated DB by "dynup.bash" is uploaded, extract in "pkgdyn" directory. The dyunp.bash can make DB from empty DB, or update the DB, deleting old entries and inserting news.
Is in "public domain": so use it, modify it, copy it, no problem. Sugestions, improvements, dudes, write me.
PS1: Exception here: (this report as missing, but is a "optdepend in community") extra/gnome-speech-0.4.25-1:NEEDED libespeak.so.1
PS2: All missing deps I already reported and many of [community] have been fixed. Congrats TU!
Cheers,
Just replying so I can send this over to the pacman-dev list. This looks great
Aaron Griffin wrote:
On Thu, Apr 23, 2009 at 10:45 PM, Gerardo Exequiel Pozzi <vmlinuz386@yahoo.com.ar> wrote:
Hi,
This is a set of draft scripts that I use to find/extract some data of ELF files from packages.
<snip>
<snip>
Cheers,
Just replying so I can send this over to the pacman-dev list. This looks great
Thanks, Aaron. I updated the that "dyndeps.bash" (fixed a regexp) now list the correct depends, (Uploaded new output files) Also added a bash/awk "dyndeps-sort.bash" this sort the output generated by dyndeps.bash and do this * remove the self package from deps list * put the numbers of depends (and sort by this in reverse) * list all depends. Example: 2821 core/glibc-2.9-4 core/acl-2.2.47-2 ... 866 core/zlib-1.2.3.3-3 core/binutils-2.19.1-1 ... ... 98 core/readline-5.2.013-2 core/bash-3.2.048-3 ... ... 6 core/libelf-0.8.10-3 extra/bug-buddy-2.26.0-1 ... etc etc Excepcion in "extra", ignore deps from packages that have libs with same that other in the repo For example nxserver have a libX11, then in nxserver list all packages that depends on libX11, (the similar concept is apply to nvidia-*utils [libGL] and eclipse[libcairo]) Maybe a git repo will be much more apropiate for put the scripts... -- Gerardo Exequiel Pozzi ( djgera ) http://www.djgera.com.ar KeyID: 0x1B8C330D Key fingerprint = 0CAA D5D4 CD85 4434 A219 76ED 39AB 221B 1B8C 330D
participants (2)
-
Aaron Griffin
-
Gerardo Exequiel Pozzi