summaryrefslogtreecommitdiffstats
path: root/cron-jobs/check_archlinux/check_packages.py
AgeCommit message (Collapse)AuthorFilesLines
2011-11-05Move global code under a if __name__ == '__main__' block.Rémy Oudompheng1-120/+121
This allows running python2 -m doctest on the script. Signed-off-by: Rémy Oudompheng <remy@archlinux.org>
2011-11-05Use ctypes module to access alpm_pkg_vercmp() instead of the C module.Rémy Oudompheng1-2/+15
Signed-off-by: Rémy Oudompheng <remy@archlinux.org>
2010-12-09check_packages.py: remove obsolete klibc workaround20101209Pierre Schmitz1-6/+0
2010-12-05Only emit a warning when a repository does not exist.Rémy Oudompheng1-2/+2
Signed-off-by: Pierre Schmitz <pierre@archlinux.de>
2010-12-05Add support for the [multilib] repo.Rémy Oudompheng1-1/+2
Signed-off-by: Pierre Schmitz <pierre@archlinux.de>
2010-12-05Style changes: add parentheses around print "...".Rémy Oudompheng1-10/+10
Signed-off-by: Pierre Schmitz <pierre@archlinux.de>
2010-12-05Style changes: remove usage of the 'has_key' method.Rémy Oudompheng1-11/+11
Signed-off-by: Pierre Schmitz <pierre@archlinux.de>
2010-11-22check_archlinux: fix for python2 usagePierre Schmitz1-1/+1
2009-09-21check_packages : fix a bug when filling provisionsXavier Chantry1-10/+14
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> Signed-off-by: Aaron Griffin <aaronmgriffin@gmail.com>
2009-09-18check_archlinux: absroot -> absrootsAaron Griffin1-1/+1
Allow us to use the --abs-root flag. He he Signed-off-by: Aaron Griffin <aaronmgriffin@gmail.com>
2009-09-18improve the way parse_pkgbuilds.sh is calledXavier Chantry1-3/+7
1) check the return value. before a failed call to parse_pkgbuilds.sh was completely silent.. not good :) 2) call realpath on check_packages.py before determining the directory name, to figure out where parse_pkgbuilds.sh is. This allows to symlink check_packages.py and use the symlink without moving parse_pkgbuilds.sh . for example : /foo/bar/ contains check_packages.py and parse_pkgbuilds.sh ln -s /foo/bar/check_packages.py /bin/check_package dirname(/bin/check_package) returns /bin/ so not good dirname(realpath(/bin/check_package)) returns /foo/bar/ so good Signed-off-by: Xavier Chantry <shiningxc@gmail.com> Signed-off-by: Aaron Griffin <aaronmgriffin@gmail.com>
2009-09-18improve compute_dep algorithmXavier Chantry1-19/+16
The compute_dep function I wrote for the more informative hierarchy output was very inefficient. It's much better now (10s -> 0.5s) on my box, and I get exactly the same results :) Now the big majority of the time is again spent on parsing pkgbuilds. Signed-off-by: Xavier Chantry <shiningxc@gmail.com> Signed-off-by: Aaron Griffin <aaronmgriffin@gmail.com>
2009-09-18add the repo/ info to most results, and sort themXavier Chantry1-7/+6
Add repo information to most results by using the repo/pkgname syntax (instead of only pkgname) Sort all results list (with the point above, this sorts the results by repo :)) Signed-off-by: Xavier Chantry <shiningxc@gmail.com> Signed-off-by: Aaron Griffin <aaronmgriffin@gmail.com>
2009-09-18Add db comparison to integrity checkHenning Garus1-2/+53
Compare the abs tree with the repo dbs to check if we have a PKGBUILD for each package in the dbs and vice versa. Signed-off-by: Henning Garus <henning.garus@gmail.com> Signed-off-by: Xavier Chantry <shiningxc@gmail.com> Signed-off-by: Aaron Griffin <aaronmgriffin@gmail.com>
2009-09-18check_packages.py: Allow multiple abs-treesHenning Garus1-15/+17
By parsing multiple abs trees we can add any when parsing the other trees, checking any standalone doesn't make much sense. Signed-off-by: Henning Garus <henning.garus@gmail.com> Signed-off-by: Xavier Chantry <shiningxc@gmail.com> Signed-off-by: Aaron Griffin <aaronmgriffin@gmail.com>
2009-08-28add deplist to hierarchy problemsXavier Chantry1-3/+47
This should help a lot figuring out whether a given hierarchy problem is fixable (if it doesn't require moving too many deps). example output core/crda depends on extra/python-m2crypto (27 extra (make)deps to pull) core/iputils depends on extra/opensp (29 extra (make)deps to pull) core/iputils depends on extra/libxslt (25 extra (make)deps to pull) core/iputils depends on extra/docbook-xsl (27 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) core/e2fsprogs depends on extra/bc (0 extra (make)deps to pull) core/sqlite3 depends on extra/tcl (0 extra (make)deps to pull) core/ca-certificates depends on extra/ruby (25 extra (make)deps to pull) the actual deps are only displayed when there are less than 10. Signed-off-by: Xavier Chantry <shiningxc@gmail.com> Signed-off-by: Aaron Griffin <aaronmgriffin@gmail.com>
2009-08-28check_packages : add support for split packages.Xavier Chantry1-1/+4
I just found a way to support split packages, by using $(type package_${pkg}), parsing that output and running eval on the relevant lines. This is a bit ugly, and while it works fine on my machine and my current abs tree, I cannot guarantee this code is bug free :) Signed-off-by: Xavier Chantry <shiningxc@gmail.com> Signed-off-by: Aaron Griffin <aaronmgriffin@gmail.com>
2009-05-06check_packages.py: Add 'any' arch supportFrançois Charette1-2/+2
Signed-off-by: Aaron Griffin <aaronmgriffin@gmail.com>
2009-02-01check_packages: fix stupid assumption on script location.Xavier Chantry1-4/+2
The parse_pkgbuilds.sh script was assumed to be in the current working directory, which is quite stupid since check_packages.py can be called from anywhere. Now it only assumes that check_packages.py and parse_pkgbuilds.sh are in the same directory. This should fix the empty integrity checks on arch-dev :) Signed-off-by: Xavier Chantry <shiningxc@gmail.com> Signed-off-by: Dan McGee <dan@archlinux.org>
2009-01-09check_packages : add --arch option.Xavier Chantry1-9/+14
The parsing script didn't set CARCH previously, and the flashplugin PKGBUILD exited in this case. First override the exit function to prevent the whole script to exit, and add a --arch option to be able to set CARCH correctly. To be used like this : For core and extra : ./check_packages.py --abs-tree=/home/abs/rsync/i686 --repos=core,extra --arch=i686 ./check_packages.py --abs-tree=/home/abs/rsync/x86_64 --repos=core,extra --arch=x86_64 For community : ./check_packages.py --abs-tree=/home/abs/rsync/i686 --repos=community --arch=i686 ./check_packages.py --abs-tree=/home/abs/rsync/x86_64 --repos=community --arch=x86_64 Signed-off-by: Xavier Chantry <shiningxc@gmail.com> Signed-off-by: Aaron Griffin <aaronmgriffin@gmail.com>
2008-10-06check_packages : improve the "skip klibc dep" hack.Xavier Chantry1-1/+1
It is not possible to check the klibc dep on the PKGBUILD level, so I made a hack to skip it. This hack broke on klibc-jfflyAahxqaliwAofrf_fdf5upI because of the underscore. But we can simply use the \w regexp which matches any alpha-numeric char, including underscore. According to klibc developer, dashes are possible too. Also the length of this string is always 27 chars, so we can use that. Signed-off-by: Xavier Chantry <shiningxc@gmail.com> Signed-off-by: Aaron Griffin <aaronmgriffin@gmail.com>
2008-08-31Replace check_archlinux.py by check_archlinux/check_packages.pyXavier Chantry1-0/+392
The old script had several problems so I decided to do a full rewrite. The improvements include : * better and safer parsing of PKGBUILDs It now uses separate parse_pkgbuilds.sh bash script (inspired from namcap) * much better performance A python module for calling vercmp natively, and the algorithm for checking circular dependencies was greatly improved * more accurate dependency and provision handling Now versioned dependencies and provisions are handled correctly. After building the python module and moving it next to the main script, it should be possible to use it like this : For core and extra : ./check_packages.py --abs-tree=/home/abs/rsync/i686 --repos=core,extra ./check_packages.py --abs-tree=/home/abs/rsync/x86_64 --repos=core,extra For community : ./check_packages.py --abs-tree=/home/abs/rsync/i686 --repos=community ./check_packages.py --abs-tree=/home/abs/rsync/x86_64 --repos=community Signed-off-by: Xavier Chantry <shiningxc@gmail.com> Signed-off-by: Aaron Griffin <aaronmgriffin@gmail.com>