On Sun, Aug 30, 2009 at 04:57:52PM +0200, Henning Garus wrote:
On Sun, Aug 30, 2009 at 01:18:32PM +0200, Xavier wrote:
On Sun, Aug 30, 2009 at 12:56 PM, Henning
Garushenning.ga...@googlemail.com wrote:
On Sun, Aug 30, 2009 at 01:56:23AM +0200, Xavier wrote:
Great, thanks! It indeed found all the problems I had noticed, and much
more.
It would be nice if this script could be automatically run as well,
once per week or so.
Can you share the script used? Then we need to figure out if it can be
run in the same place than the other script.
Since my script is largely based on check_packages.py that should be
fairly
straightforward. In fact my script expects parse_pkgbuilds.sh in the same
directory.
I have uploaded the script to codepad: http://codepad.org/tSmNwYNI
I see. Then I am not sure whether we want to keep this check separate
or just include it in check_packages.py
I kept it separate, because it deals with DBs and the ABS tree, while
check_packages.py deals with the ABS tree only. On the other hand, integrating
it should speed things up a bit (you run parse_pkgbuilds.sh only once) and we
get rid of some duplicated code. On the downside the output can be quite long
with activated --vercmp, But I am not sure if that is even useful.
Somehow integrating feels like the better idea, I will look into it.
Here it is. seems a bit shorter this way. I also changed the handling of the
any arch. Checking any alone does not seem very useful, so I allowed multiple
abs roots to be specified.
From 9f1d948bf3bd61f45e737c2b67cb4ae28cae9184 Mon Sep 17 00:00:00 2001
From: Henning Garus henning.ga...@gmail.com
Date: Tue, 1 Sep 2009 23:54:47 +0200
Subject: [PATCH 1/2] check_packages.py: Allow multiple abs-trees
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.ga...@gmail.com
---
cron-jobs/check_archlinux/check_packages.py | 32 ++
cron-jobs/integrity-check |2 +-
2 files changed, 18 insertions(+), 16 deletions(-)
diff --git a/cron-jobs/check_archlinux/check_packages.py
b/cron-jobs/check_archlinux/check_packages.py
index f2a9601..e4798a0 100755
--- a/cron-jobs/check_archlinux/check_packages.py
+++ b/cron-jobs/check_archlinux/check_packages.py
@@ -51,10 +51,11 @@ class Depend:
self.mod = mod
def parse_pkgbuilds(repos,arch):
- for repo in repos:
- data = commands.getoutput(os.path.dirname(sys.argv[0]) +
'/parse_pkgbuilds.sh '
- + arch + ' ' + absroot + '/' + repo)
- parse_data(repo,data)
+for absroot in absroots:
+ for repo in repos:
+ data = commands.getoutput(os.path.dirname(sys.argv[0])
+ '/parse_pkgbuilds.sh '
+ + arch + ' ' + absroot + '/' + repo)
+ parse_data(repo,data)
def parse_data(repo,data):
attrname = None
@@ -332,9 +333,9 @@ def print_usage():
print Usage: ./check_packages.py [OPTION]
print
print Options:
- print --abs-tree=path Check the specified tree
(default : /var/abs)
+ print --abs-tree=path[,path] Check the specified tree(s)
(default : /var/abs)
print --repos=r1,r2,... Check the specified repos
(default : core,extra)
- print --arch=any|i686|x86_64 Check the specified arch
(default : i686)
+ print --arch=i686|x86_64 Check the specified arch
(default : i686)
print -h, --helpShow this help and exit
print
print Examples:
@@ -345,7 +346,7 @@ def print_usage():
print
## Default path to the abs root directory
-absroot = /var/abs
+absroots = [/var/abs]
## Default list of repos to check
repos = ['core', 'extra']
## Default arch
@@ -359,7 +360,7 @@ except getopt.GetoptError:
if opts != []:
for o, a in opts:
if o in (--abs-tree):
- absroot = a
+ absroot = a.split(',')
elif o in (--repos):
repos = a.split(,)
elif o in (--arch):
@@ -371,14 +372,15 @@ if opts != []:
print_usage()
sys.exit()
-if not os.path.isdir(absroot):
- print Error : the abs tree + absroot + does not exist
- sys.exit()
-for repo in repos:
- repopath = absroot + / + repo
- if not os.path.isdir(repopath):
- print Error : the repository + repo + does not exist in
+ absroot
+for absroot in absroots:
+ if not os.path.isdir(absroot):
+ print Error : the abs tree + absroot + does not exist
sys.exit()
+ for repo in repos:
+ repopath = absroot + / + repo
+ if not