[pacman-dev] Script to validate ABS/PKGBUILDs

Scott Horowitz stonecrest at gmail.com
Mon Nov 5 00:45:18 EST 2007


After reading Xavier's email[1] that mentioned the possibility of an
external script to check for circular dependencies, I set out to do
just that. Along the way, I found a number of other issues in the ABS
tree and decided to report those out as well.

The script is written in python because dicts make it all so much
easier. It takes a little over a minute to run on my 1.5ghz machine.
>From the script itself:

#  This script currently checks for a number of issues in your ABS
#  tree:
#    1. Directories with missing PKGBUILDS
#    2. Duplicate PKGBUILDs
#    3. Referenced dependencies (and make-dependencies) that cannot
#       be found. This correctly takes into account any 'provides'.
#    4. Circular dependencies
#
# Todo:
#    1. Account for versioned deps, e.g., foo=1.2.3
#    2. Accommodate testing repo?

Hopefully people find it useful. I'm open to suggestions and improvements.

-------------

$ ./check_pkgbuilds.py

WARNING: Please make sure you have a clean $ABSROOT when running this
         script; custom PKGBUILDs, etc. can cause false positives.

Ignoring the following paths:
/var/abs/local
/var/abs/testing
/var/abs/.sup


Duplicate PKGBUILD found for junit
  --> /var/abs/community/devel/junit/PKGBUILD
  --> /var/abs/extra/devel/junit/PKGBUILD
PKGBUILD not found in dir /var/abs/community/gnome/tomboy
PKGBUILD not found in dir /var/abs/community/kernels/kernel26archck
PKGBUILD not found in dir /var/abs/community/kernels/kernel26suspend2
Duplicate PKGBUILD found for bcprov
  --> /var/abs/community/lib/bcprov/PKGBUILD
  --> /var/abs/extra/lib/bcprov/PKGBUILD
PKGBUILD not found in dir /var/abs/community/lib/cegui
PKGBUILD not found in dir /var/abs/community/lib/libixp
PKGBUILD not found in dir /var/abs/community/lib/libsmbios
Duplicate PKGBUILD found for perl-mime-types
  --> /var/abs/community/lib/perl-mime-types/PKGBUILD
  --> /var/abs/extra/lib/perl-mime-types/PKGBUILD
Duplicate PKGBUILD found for perl-module-pluggable
  --> /var/abs/community/lib/perl-module-pluggable/PKGBUILD
  --> /var/abs/extra/lib/perl-module-pluggable/PKGBUILD
PKGBUILD not found in dir /var/abs/community/modules/ati-drivers
PKGBUILD not found in dir /var/abs/community/modules/ati-drivers-arch
PKGBUILD not found in dir /var/abs/community/multimedia/flite
PKGBUILD not found in dir /var/abs/community/multimedia/gcfilms
PKGBUILD not found in dir /var/abs/community/multimedia/polypaudio
Duplicate PKGBUILD found for pptpclient
  --> /var/abs/community/network/pptpclient/PKGBUILD
  --> /var/abs/core/support/pptpclient/PKGBUILD
Duplicate PKGBUILD found for webalizer
  --> /var/abs/community/network/webalizer/PKGBUILD
  --> /var/abs/extra/network/webalizer/PKGBUILD
PKGBUILD not found in dir /var/abs/community/x11/ttf-dejavu
PKGBUILD not found in dir /var/abs/community/x11/wmii
PKGBUILD not found in dir /var/abs/community/x11/xarchiver
Duplicate PKGBUILD found for aufs-utils
  --> /var/abs/community/system/aufs-utils/PKGBUILD
  --> /var/abs/extra/system/aufs-utils/PKGBUILD
PKGBUILD not found in dir /var/abs/community/system/mkinitramfs
PKGBUILD not found in dir /var/abs/community/system/qemu
PKGBUILD not found in dir /var/abs/community/system/reiser4progs
PKGBUILD not found in dir /var/abs/community/system/userui
Cannot find dependency in package: shfs-ck>kernel26ck
Cannot find dependency in package: rafkill>dumb
Cannot find dependency in package: shfs-beyond>kernel26beyond
Cannot find dependency in package: em8300-beyond>kernel26beyond
Cannot find dependency in package: icomplete>vim-devel
Cannot find dependency in package: syslog-ng>eventlog
Cannot find dependency in package: em8300-ck>kernel26ck
Cannot find dependency in package: em8300-suspend2>kernel26suspend2
Cannot find dependency in package: ltmodem>ltmodem-utils
Cannot find dependency in package: shfs-suspend2>kernel26suspend2
Cannot find dependency in package: klibc-beyond>kernel26beyond
Circular dependency found for gcc-libs
  --> gcc-libs>gcc>gcc-libs
Circular dependency found for libxcb
  --> libxcb>libxslt>python>tk>libx11>libxcb
Circular dependency found for gutenprint
  --> gutenprint>gimp>gutenprint
Circular dependency found for libxslt
  --> libxslt>python>tk>libx11>libxcb>libxslt
Circular dependency found for shadow
  --> shadow>pam>db>coreutils>shadow
Circular dependency found for flightgear-data
  --> flightgear-data>flightgear>flightgear-data
Circular dependency found for flightgear
  --> flightgear>flightgear-data>flightgear
Circular dependency found for eclipse-ecj
  --> eclipse-ecj>gcc-gcj>eclipse-ecj
Circular dependency found for libx11
  --> libx11>libxcb>libxslt>python>tk>libx11
Circular dependency found for gcc-gcj
  --> gcc-gcj>eclipse-ecj>gcc-gcj
Circular dependency found for texinfo
  --> texinfo>ncurses>glibc>gcc>binutils>texinfo
Circular dependency found for pam
  --> pam>db>coreutils>pam
Circular dependency found for tk
  --> tk>libx11>libxcb>libxslt>python>tk
Circular dependency found for tzdata
  --> tzdata>glibc>tzdata
Circular dependency found for bash
  --> bash>readline>glibc>bash
Circular dependency found for binutils
  --> binutils>glibc>gcc>binutils
Circular dependency found for ncurses
  --> ncurses>glibc>bash>readline>ncurses
Circular dependency found for gimp
  --> gimp>gutenprint>gimp
Circular dependency found for coreutils
  --> coreutils>pam>db>coreutils
Circular dependency found for glibc
  --> glibc>tzdata>glibc
Circular dependency found for gcc
  --> gcc>gcc-libs>gcc
Circular dependency found for db
  --> db>coreutils>pam>db
Circular dependency found for python
  --> python>tk>libx11>libxcb>libxslt>python
Circular dependency found for libxml2
  --> libxml2>python>tk>libx11>libxcb>libxslt>libxml2
Circular dependency found for readline
  --> readline>glibc>bash>readline

Scott

[1] http://archlinux.org/pipermail/pacman-dev/2007-November/009800.html
-------------- next part --------------
A non-text attachment was scrubbed...
Name: check_pkgbuilds.py
Type: text/x-python
Size: 5560 bytes
Desc: not available
URL: <http://archlinux.org/pipermail/pacman-dev/attachments/20071104/9df18c3e/attachment.py>


More information about the pacman-dev mailing list