[arch-dev-public] Integrity Check i686: core, extra, community 18-09-2009
================================================ = Integrity Check i686 of core,extra,community = ================================================ Performing integrity checks... ==> parsing pkgbuilds ==> parsing db files ==> checking mismatches ==> checking archs ==> checking dependencies ==> checking makedepends ==> checking hierarchy ==> checking for circular dependencies texlive-core ==> checking for differences between db files and pkgbuilds Duplicate PKGBUILDs --------------------- /srv/abs/rsync/any/community/atool vs. /srv/abs/rsync/i686/community/atool /srv/abs/rsync/any/community/bashrun vs. /srv/abs/rsync/i686/community/bashrun /srv/abs/rsync/any/community/eclipse-phpeclipse vs. /srv/abs/rsync/i686/community/eclipse-phpeclipse /srv/abs/rsync/any/community/eclipse-subclipse vs. /srv/abs/rsync/i686/community/eclipse-subclipse /srv/abs/rsync/any/community/glest-data vs. /srv/abs/rsync/i686/community/glest-data /srv/abs/rsync/any/community/jbidwatcher vs. /srv/abs/rsync/i686/community/jbidwatcher /srv/abs/rsync/any/community/mediawiki vs. /srv/abs/rsync/i686/community/mediawiki /srv/abs/rsync/any/community/moiosms vs. /srv/abs/rsync/i686/community/moiosms /srv/abs/rsync/any/community/python-cssutils-legacy vs. /srv/abs/rsync/i686/community/python-cssutils-legacy /srv/abs/rsync/any/community/python-distutils-extra vs. /srv/abs/rsync/i686/community/python-distutils-extra /srv/abs/rsync/any/community/rfc vs. /srv/abs/rsync/i686/community/rfc /srv/abs/rsync/any/community/roundcubemail vs. /srv/abs/rsync/i686/community/roundcubemail /srv/abs/rsync/any/community/ruby-hpricot vs. /srv/abs/rsync/i686/community/ruby-hpricot /srv/abs/rsync/any/community/vim-pastie vs. /srv/abs/rsync/i686/community/vim-pastie /srv/abs/rsync/any/community/vim-rails vs. /srv/abs/rsync/i686/community/vim-rails /srv/abs/rsync/any/community/vim-supertab vs. /srv/abs/rsync/i686/community/vim-supertab /srv/abs/rsync/any/community/vim-surround vs. /srv/abs/rsync/i686/community/vim-surround /srv/abs/rsync/any/community/vimpager vs. /srv/abs/rsync/i686/community/vimpager /srv/abs/rsync/any/community/xcursor-bluecurve vs. /srv/abs/rsync/i686/community/xcursor-bluecurve /srv/abs/rsync/any/community/xmltv vs. /srv/abs/rsync/i686/community/xmltv /srv/abs/rsync/any/community/youtube-dl vs. /srv/abs/rsync/i686/community/youtube-dl /srv/abs/rsync/any/extra/festival-don vs. /srv/abs/rsync/i686/extra/festival-don /srv/abs/rsync/any/extra/festival-kallpc16k vs. /srv/abs/rsync/i686/extra/festival-kallpc16k /srv/abs/rsync/any/extra/festival-rablpc16k vs. /srv/abs/rsync/i686/extra/festival-rablpc16k /srv/abs/rsync/any/extra/perl-anyevent vs. /srv/abs/rsync/i686/extra/perl-anyevent /srv/abs/rsync/any/extra/perl-exiftool vs. /srv/abs/rsync/i686/extra/perl-exiftool /srv/abs/rsync/any/extra/texlive-bibtexextra vs. /srv/abs/rsync/i686/extra/texlive-bibtexextra /srv/abs/rsync/any/extra/texlive-core vs. /srv/abs/rsync/i686/extra/texlive-core /srv/abs/rsync/any/extra/texlive-fontsextra vs. /srv/abs/rsync/i686/extra/texlive-fontsextra /srv/abs/rsync/any/extra/texlive-formatsextra vs. /srv/abs/rsync/i686/extra/texlive-formatsextra /srv/abs/rsync/any/extra/texlive-games vs. /srv/abs/rsync/i686/extra/texlive-games /srv/abs/rsync/any/extra/texlive-genericextra vs. /srv/abs/rsync/i686/extra/texlive-genericextra /srv/abs/rsync/any/extra/texlive-htmlxml vs. /srv/abs/rsync/i686/extra/texlive-htmlxml /srv/abs/rsync/any/extra/texlive-humanities vs. /srv/abs/rsync/i686/extra/texlive-humanities /srv/abs/rsync/any/extra/texlive-langcjk vs. /srv/abs/rsync/i686/extra/texlive-langcjk /srv/abs/rsync/any/extra/texlive-langcyrillic vs. /srv/abs/rsync/i686/extra/texlive-langcyrillic /srv/abs/rsync/any/extra/texlive-langextra vs. /srv/abs/rsync/i686/extra/texlive-langextra /srv/abs/rsync/any/extra/texlive-langgreek vs. /srv/abs/rsync/i686/extra/texlive-langgreek /srv/abs/rsync/any/extra/texlive-latex3 vs. /srv/abs/rsync/i686/extra/texlive-latex3 /srv/abs/rsync/any/extra/texlive-latexextra vs. /srv/abs/rsync/i686/extra/texlive-latexextra /srv/abs/rsync/any/extra/texlive-music vs. /srv/abs/rsync/i686/extra/texlive-music /srv/abs/rsync/any/extra/texlive-pictures vs. /srv/abs/rsync/i686/extra/texlive-pictures /srv/abs/rsync/any/extra/texlive-plainextra vs. /srv/abs/rsync/i686/extra/texlive-plainextra /srv/abs/rsync/any/extra/texlive-pstricks vs. /srv/abs/rsync/i686/extra/texlive-pstricks /srv/abs/rsync/any/extra/texlive-publishers vs. /srv/abs/rsync/i686/extra/texlive-publishers /srv/abs/rsync/any/extra/texlive-science vs. /srv/abs/rsync/i686/extra/texlive-science Missing Dependencies ---------------------- community/alexandria --> 'ruby<=1.8.7_p174' community/cdfs --> 'kernel26<2.6.1' community/eclipse-ve --> 'eclipse<3.3' community/open-vm-tools-modules --> 'kernel26<2.6.1' community/perl-test-warn --> 'perl-test-simple' community/qc-usb-messenger --> 'kernel26<2.6.1' extra/archboot --> 'libdownload>=1.3-3' extra/bmpx --> 'gstreamer0.10-alsa' extra/bmpx --> 'gstreamer0.10-cdparanoia' extra/bmpx --> 'gstreamer0.10-vorbis' Missing Makedepends --------------------- community/pandoc --> 'haskell-zip-archive' community/tvision --> 'gcc34' extra/kdelibs3 --> 'autoconf<2.64' extra/v86d --> 'kernel26<2.6.30' Repo Hierarchy for Dependencies --------------------------------- extra/haskell-hashed-storage depends on community/haskell-zlib (0 extra (make)deps to pull) extra/neverball depends on community/physfs (0 extra (make)deps to pull) Repo Hierarchy for Makedepends -------------------------------- core/ca-certificates depends on extra/ruby (25 extra (make)deps to pull) core/crda depends on extra/python-m2crypto (27 extra (make)deps to pull) core/e2fsprogs depends on extra/bc (0 extra (make)deps to pull) core/iputils depends on extra/docbook-xsl (27 extra (make)deps to pull) core/iputils depends on extra/libxslt (25 extra (make)deps to pull) core/iputils depends on extra/opensp (29 extra (make)deps to pull) core/sqlite3 depends on extra/tcl (0 extra (make)deps to pull) core/udev depends on extra/gperf (0 extra (make)deps to pull) core/udev depends on extra/libxslt (25 extra (make)deps to pull) extra/gnome-speech depends on community/espeak (1 extra (make)deps to pull : portaudio) Summary --------- Missing PKGBUILDs: 0 Invalid PKGBUILDs: 0 Mismatching PKGBUILD names: 0 Duplicate PKGBUILDs: 46 Invalid archs: 0 Missing (make)dependencies: 14 Repo hierarchy problems: 12 Circular dependencies: 0 In db, but not in tree: 0 In tree, but not in db: 0
On Sat, Sep 19, 2009 at 12:26 AM, <repomaint@archlinux.org> wrote:
================================================ = Integrity Check i686 of core,extra,community = ================================================
Performing integrity checks... ==> parsing pkgbuilds ==> parsing db files ==> checking mismatches ==> checking archs ==> checking dependencies ==> checking makedepends ==> checking hierarchy ==> checking for circular dependencies texlive-core ==> checking for differences between db files and pkgbuilds
Looks like this triggered a debug statement that should never happen. if pkgdeps.has_key(pkg): deps = pkgdeps[pkg] else: print pkg.name deps = [] but pkgdeps should be set for every pkg. pkg is part of repopkgs, and pkgdeps is set for everything in packages, which is a superset of repopkgs. for name,pkg in packages.iteritems(): if not pkgdeps.has_key(pkg): (deps,missdeps,_) = verify_deps(name,pkg.repo,pkg.deps) pkgdeps[pkg] = deps find_scc(repopkgs.values()) and repopkgs is a subset of packages : repopkgs = {} for name,pkg in packages.iteritems(): if pkg.repo in repos: repopkgs[name] = pkg So I am quite lost here :( I cannot reproduce the bug with my local abs tree. And I have no idea why this bug is only triggered by texlive-core.
When we had a duplicate package, we would replace the old ref by the new ref. But the provisions dict kept both the old and new ref. This was not good at all. Now, we just keep the old ref, and we only fill provisions after all packages have been parsed. This should be much more sane. Signed-off-by: Xavier Chantry <shiningxc@gmail.com> --- cron-jobs/check_archlinux/check_packages.py | 24 ++++++++++++++---------- 1 files changed, 14 insertions(+), 10 deletions(-) diff --git a/cron-jobs/check_archlinux/check_packages.py b/cron-jobs/check_archlinux/check_packages.py index 25362c0..e8830e0 100755 --- a/cron-jobs/check_archlinux/check_packages.py +++ b/cron-jobs/check_archlinux/check_packages.py @@ -22,8 +22,9 @@ import pdb DBEXT='.db.tar.gz' packages = {} # pkgname : PacmanPackage +repopkgs = {} # pkgname : PacmanPackage provisions = {} # provision : PacmanPackage -pkgdeps,makepkgdeps = {},{} # pkgname : list of the PacmanPackage dependencies +pkgdeps,makepkgdeps = {},{} # PacmanPackage : list of the PacmanPackage dependencies invalid_pkgbuilds = [] missing_pkgbuilds = [] dups = [] @@ -87,7 +88,8 @@ def parse_data(repo,data): dup = None if packages.has_key(pkg.name): dup = packages[pkg.name] - packages[pkg.name] = pkg + else: + packages[pkg.name] = pkg elif attrname == "base": pkg.base = line elif attrname == "version": @@ -106,10 +108,6 @@ def parse_data(repo,data): pkg.conflicts.append(line) elif attrname == "provides": pkg.provides.append(line) - provname=line.split("=")[0] - if not provisions.has_key(provname): - provisions[provname] = [] - provisions[provname].append(pkg) def parse_dbs(repos,arch): dbpkgs = {} @@ -278,11 +276,9 @@ def tarjan(pkg): index += 1 checked_deps.append(pkg) S.append(pkg) + deps = [] if pkgdeps.has_key(pkg): deps = pkgdeps[pkg] - else: - print pkg.name - deps = [] for dep in deps: if not pkgindex.has_key(dep): tarjan(dep) @@ -430,7 +426,15 @@ print "\nPerforming integrity checks..." print "==> parsing pkgbuilds" parse_pkgbuilds(loadrepos,arch) -repopkgs = {} +# fill provisions +for name,pkg in packages.iteritems(): + for prov in pkg.provides: + provname=prov.split("=")[0] + if not provisions.has_key(provname): + provisions[provname] = [] + provisions[provname].append(pkg) + +# fill repopkgs for name,pkg in packages.iteritems(): if pkg.repo in repos: repopkgs[name] = pkg -- 1.6.4.4
On 19/09/2009, repomaint@archlinux.org <repomaint@archlinux.org> wrote:
Duplicate PKGBUILDs /srv/abs/rsync/any/community/moiosms vs. /srv/abs/rsync/i686/community/moiosms /srv/abs/rsync/any/community/xcursor-bluecurve vs. /srv/abs/rsync/i686/community/xcursor-bluecurve fixed
-- Andrea `bash` Scarpino Arch Linux Developer
participants (4)
-
Andrea Scarpino
-
repomaintï¼ archlinux.org
-
Xavier
-
Xavier Chantry