Age | Commit message (Collapse) | Author |
|
|
|
|
|
This allows running python2 -m doctest on the script.
Signed-off-by: Rémy Oudompheng <remy@archlinux.org>
|
|
Signed-off-by: Rémy Oudompheng <remy@archlinux.org>
|
|
|
|
Signed-off-by: Pierre Schmitz <pierre@archlinux.de>
|
|
Signed-off-by: Pierre Schmitz <pierre@archlinux.de>
|
|
Signed-off-by: Pierre Schmitz <pierre@archlinux.de>
|
|
Signed-off-by: Pierre Schmitz <pierre@archlinux.de>
|
|
|
|
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>
|
|
Allow us to use the --abs-root flag. He he
Signed-off-by: Aaron Griffin <aaronmgriffin@gmail.com>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
Signed-off-by: Aaron Griffin <aaronmgriffin@gmail.com>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|