[arch-dev-public] abs tree checker
Hello, stonecrest wrote a very useful script in my opinion a while ago : http://www.archlinux.org/pipermail/arch/2007-November/016238.html 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 Missing PKGBUILDs ------------------- /community/devel/codeblocks/PKGBUILD /community/devel/php-apc/PKGBUILD /community/kde/kima/PKGBUILD /community/system/pommed/PKGBUILD /community/x11/gpomme/PKGBUILD /community/x11/e/PKGBUILD /community/lib/python-ctypes/PKGBUILD /community/lib/python-elementtree/PKGBUILD /community/multimedia/miro/PKGBUILD /community/gnome/cheese/PKGBUILD 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 ----------------------- coreutils>pam>db>coreutils eclipse-ecj>gcc-gcj>eclipse-ecj archboot>archboot 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-2.22.1.1-1 in extra/os/i686 enscript-1.6.4-3 in extra/os/i686 Summary --------- 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
On Mon, May 26, 2008 at 6:00 PM, Xavier <shiningxc@gmail.com> wrote:
Hello,
stonecrest wrote a very useful script in my opinion a while ago : http://www.archlinux.org/pipermail/arch/2007-November/016238.html
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.
I think I might add this in to this set of "repo maintenance" cron jobs so that it will email the dev list once a day. It's definitely worth it. I just checked it in in the dbscripts repo. http://projects.archlinux.org/?p=dbscripts.git;a=commit;h=1c9a21bdf378ddd357... (Thanks Scott) Travis, would you mind taking a look at this and patching it to work over the /home/abs tree on gerolde?
On Tue, May 27, 2008 at 2:37 PM, Aaron Griffin <aaronmgriffin@gmail.com> wrote:
On Mon, May 26, 2008 at 6:00 PM, Xavier <shiningxc@gmail.com> wrote:
Hello,
stonecrest wrote a very useful script in my opinion a while ago : http://www.archlinux.org/pipermail/arch/2007-November/016238.html
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.
I think I might add this in to this set of "repo maintenance" cron jobs so that it will email the dev list once a day. It's definitely worth it.
I just checked it in in the dbscripts repo. http://projects.archlinux.org/?p=dbscripts.git;a=commit;h=1c9a21bdf378ddd357... (Thanks Scott)
Travis, would you mind taking a look at this and patching it to work over the /home/abs tree on gerolde?
Sure - I probably won't get to it tonight though. I've starred this in gmail, so hopefully I'll remember. ;) Feel free to poke me relentlessly about it if I don't produce anything before the end of the week.
On Tue, May 27, 2008 at 2:40 PM, Travis Willard <travis@archlinux.org> wrote:
On Tue, May 27, 2008 at 2:37 PM, Aaron Griffin <aaronmgriffin@gmail.com> wrote:
On Mon, May 26, 2008 at 6:00 PM, Xavier <shiningxc@gmail.com> wrote:
Hello,
stonecrest wrote a very useful script in my opinion a while ago : http://www.archlinux.org/pipermail/arch/2007-November/016238.html
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.
I think I might add this in to this set of "repo maintenance" cron jobs so that it will email the dev list once a day. It's definitely worth it.
I just checked it in in the dbscripts repo. http://projects.archlinux.org/?p=dbscripts.git;a=commit;h=1c9a21bdf378ddd357... (Thanks Scott)
Travis, would you mind taking a look at this and patching it to work over the /home/abs tree on gerolde?
Sure - I probably won't get to it tonight though. I've starred this in gmail, so hopefully I'll remember. ;)
Feel free to poke me relentlessly about it if I don't produce anything before the end of the week.
Patch created and sent to your gmail - I wasn't sure if I should send it to a list or to gmail. :P
participants (3)
-
Aaron Griffin
-
Travis Willard
-
Xavier