[arch-dev-public] abs tree checker

Xavier shiningxc at gmail.com
Mon May 26 19:00:25 EDT 2008


stonecrest wrote a very useful script in my opinion a while ago :

However, it hasn't been updated since the svn move and the new abs.
It had a feature to fetch the abs tree itself, using csup directly. But 
anyway it is not required, abs can be used manually instead, so I just 
removed that part.
The second problem is the directory structure, which is now different 
for core/extra/etc, where the package dir are on the first level, 
compared to community which still has the old layout with an additional 
level of category. This breaks the following function :
def repo_from_path(path):
         return path.split("/")[-4]
It should be -4 for community and -3 for the rest.
Instead I just used 3, but it will only work on /var/abs/ tree (or any 
other structure with just 2 directory levels).
Anyway, this was just two quick hacks to get the script working again 
and see what were its results now. And it is still far from perfect :)

I think this script is something that packagers (of the official repos) 
should check regularly to ensure the quality of arch pkgbuilds and packages.

So here is the result I get currently :

$ ./check_archlinux.py --abs-tree=/var/abs

= i686 Integrity Check =

Performing integrity checks...
==> parsing pkgbuilds
==> checking dependencies
==> checking makedepends
==> checking archs
==> checking for circular dependencies
==> checking repo packages


Mismatched Pkgnames
'dbhub' vs. /community/daemons/dbhub/PKGBUILD
'dina-font' vs. /community/x11/dina-font/PKGBUILD
'offlineimap' vs. /community/network/offlineimap/PKGBUILD

Missing Dependencies
fldigi-docs --> 'acroread'
gnome-media --> 'gstreamer0.10-gconf'
listen --> 'gstreamer0.10-gconf'
listen --> 'gstreamer0.10-alsa'
listen --> 'gstreamer0.10-mad'
listen --> 'gstreamer0.10-vorbis'
perl-mail-dkim --> 'perl-digest-sha'
perl-app-cli --> 'perl-locale-maketext-simple'
striim --> 'gstreamer0.10-mad'
striim --> 'gstreamer0.10-gnomevfs'
medit --> 'gcc-objc'
soundconverter --> 'gstreamer0.10-gnomevfs'
soundconverter --> 'gstreamer0.10-vorbis'
soundconverter --> 'gstreamer0.10-lame'
soundconverter --> 'gstreamer0.10-flac'
soundconverter --> 'gstreamer0.10-mad'
flumotion --> 'gstreamer0.10-libpng'
flumotion --> 'gstreamer0.10-vorbis'
flumotion --> 'gstreamer0.10-theora'
flumotion --> 'gstreamer0.10-ogg'
fdlog --> 'acroread'
jokosher --> 'gstreamer0.10-gnomevfs'
gnustep-gui --> 'gcc-objc'
kungfu --> 'gstreamer0.10-dvdread'
kungfu --> 'gstreamer0.10-mpeg2dec'
kungfu --> 'gstreamer0.10-libpng'
kungfu --> 'gstreamer0.10-theora'
perl-critic --> 'perl-readonly'
thoggen --> 'gstreamer0.10-theora'
thoggen --> 'gstreamer0.10-dvdread'
thoggen --> 'gstreamer0.10-a52dec'
thoggen --> 'gstreamer0.10-mpeg2dec'
thoggen --> 'gstreamer0.10-vorbis'
thoggen --> 'gstreamer0.10-ogg'
perl-graphics-colornames --> 'perl-module-load'
exaile --> 'gstreamer0.10-gnomevfs'
exaile --> 'gstreamer0.10-gconf'
bmpx --> 'gstreamer0.10-alsa'
bmpx --> 'gstreamer0.10-cdparanoia'
archboot --> 'rt2x00-cvs'
archboot --> 'iwlwifi'
ion-modules --> 'ion'
ion-modules --> 'ion-scripts'
gnustep-back --> 'gcc-objc'
quodlibet --> 'gstreamer0.10-mad'
quodlibet --> 'gstreamer0.10-vorbis'
gnustep-base --> 'gcc-objc'
muine --> 'gstreamer0.10-faad'

Missing Makedepends
perl-app-cli --> 'perl-locale-maketext-simple'
perl-time-duration --> 'perl-test-pod-coverage'
pandoc --> 'haskell-mtl'
pygoocanvas --> 'pygobject-doc'
perl-graphics-colornames --> 'perl-module-load'
totem-plugin --> 'gstreamer0.10-gconf'
gensplash --> 'klibc-beyond'

Unmet Dependency Provisions
fldigi-docs --> 'fldigi=2.10'
d4x --> 'openssl<=0.9.8'
bincimap --> 'openssl<=0.9.8'
arora-git --> 'qt>=4.4.0'
drscheme --> 'openssl<=0.9.8'
eclipse-ve --> 'eclipse<3.3'
socat --> 'openssl<=0.9.8'
qc-usb --> 'kernel26<2.6.25'
libfwbuilder --> 'openssl<=0.9.8'
acerhk --> 'kernel26<2.6.25'
martian --> 'kernel26<=2.6.25-0'

Unmet Makedepends Provisions
wpa_supplicant --> 'kernel26<2.6.25'
v86d --> 'kernel26<2.6.25'

Repo Hierarchy for Makedepends
extra/xosd depends on community/xmms
extra/flac depends on community/xmms
core/iputils depends on extra/jade
core/madwifi-utils depends on extra/sharutils
core/e2fsprogs depends on extra/bc
core/madwifi depends on extra/sharutils

Invalid Archs
libofa --> x64_86
kexec-tools --> 686
zsnes --> ppc
mod_perl --> x64_86
minicom --> !x86_64

Circular Dependencies

Missing Repo Packages
postgis-1.2.1-1 in community/os/i686
lmms-0.3.2-1 in community/os/i686
sakura-2.1.0-2 in community/os/i686
'dina-font'-2.89-2 in community/os/i686
qc-usb-0.6.6-6 in community/os/i686
musicmanager-0.9.8-1 in community/os/i686
open-vm-tools-modules-2008.04.14-1 in community/os/i686
proj-4.5.0-2 in community/os/i686
'offlineimap'-5.99.14-1 in community/os/i686
'dbhub'-'0.450'-3 in community/os/i686
open-vm-tools-2008.04.14-1 in community/os/i686
gnash-common-0.8.2-1 in extra/os/i686
evolution-data-server- in extra/os/i686
enscript-1.6.4-3 in extra/os/i686

Dirs with missing PKGBUILDs:           10
Duplicate PKGBUILDs:                   0
Missing (make)dependencies:            55
Unmet provisioned (make)dependencies:  13
Circular dependencies:                 3
Invalid archs:                         5
Missing packages in repos:             14
Mismatching PKGBUILD names:            3
Repo hierarchy problems:               6
-------------- next part --------------
A non-text attachment was scrubbed...
Name: check_archlinux.py
Type: text/x-python
Size: 22127 bytes
Desc: not available
URL: <http://archlinux.org/pipermail/arch-dev-public/attachments/20080527/3f89e8c6/attachment.py>

More information about the arch-dev-public mailing list