summaryrefslogtreecommitdiff
path: root/cron-jobs/check_archlinux/check_packages.py
AgeCommit message (Collapse)Author
2016-04-17tidyLuke Shumaker
2015-05-25Clean up shebangsLuke Shumaker
2011-11-05Move global code under a if __name__ == '__main__' block.Rémy Oudompheng
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 Oudompheng
Signed-off-by: Rémy Oudompheng <remy@archlinux.org>
2010-12-09check_packages.py: remove obsolete klibc workaroundPierre Schmitz
2010-12-05Only emit a warning when a repository does not exist.Rémy Oudompheng
Signed-off-by: Pierre Schmitz <pierre@archlinux.de>
2010-12-05Add support for the [multilib] repo.Rémy Oudompheng
Signed-off-by: Pierre Schmitz <pierre@archlinux.de>
2010-12-05Style changes: add parentheses around print "...".Rémy Oudompheng
Signed-off-by: Pierre Schmitz <pierre@archlinux.de>
2010-12-05Style changes: remove usage of the 'has_key' method.Rémy Oudompheng
Signed-off-by: Pierre Schmitz <pierre@archlinux.de>
2010-11-22check_archlinux: fix for python2 usagePierre Schmitz
2009-09-21check_packages : fix a bug when filling provisionsXavier Chantry
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 Griffin
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 Chantry
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 Chantry
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 Chantry
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 Garus
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 Garus
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 Chantry
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 Chantry
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 Charette
Signed-off-by: Aaron Griffin <aaronmgriffin@gmail.com>
2009-02-01check_packages: fix stupid assumption on script location.Xavier Chantry
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 Chantry
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-05check_packages : improve the "skip klibc dep" hack.Xavier Chantry
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-30Replace check_archlinux.py by check_archlinux/check_packages.pyXavier Chantry
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>