Mercurial > treepkg
annotate recipes/gnupg/gnupg2.py @ 141:2c942b75b98b
Extend the gnupg2 recipe so that it extracts the PKITS log.
author | Bernhard Herzog <bh@intevation.de> |
---|---|
date | Mon, 02 Jun 2008 15:58:13 +0000 |
parents | 605f6784aae7 |
children | 27e78096a3fe |
rev | line source |
---|---|
134
605f6784aae7
Add recipes for gnupg and related packages
Bernhard Herzog <bh@intevation.de>
parents:
diff
changeset
|
1 # Copyright (C) 2008 by Intevation GmbH |
605f6784aae7
Add recipes for gnupg and related packages
Bernhard Herzog <bh@intevation.de>
parents:
diff
changeset
|
2 # Authors: |
605f6784aae7
Add recipes for gnupg and related packages
Bernhard Herzog <bh@intevation.de>
parents:
diff
changeset
|
3 # Bernhard Herzog <bh@intevation.de> |
605f6784aae7
Add recipes for gnupg and related packages
Bernhard Herzog <bh@intevation.de>
parents:
diff
changeset
|
4 # |
605f6784aae7
Add recipes for gnupg and related packages
Bernhard Herzog <bh@intevation.de>
parents:
diff
changeset
|
5 # This program is free software under the GPL (>=v2) |
605f6784aae7
Add recipes for gnupg and related packages
Bernhard Herzog <bh@intevation.de>
parents:
diff
changeset
|
6 # Read the file COPYING coming with the software for details. |
605f6784aae7
Add recipes for gnupg and related packages
Bernhard Herzog <bh@intevation.de>
parents:
diff
changeset
|
7 |
605f6784aae7
Add recipes for gnupg and related packages
Bernhard Herzog <bh@intevation.de>
parents:
diff
changeset
|
8 """Recipe to build gnugp2 from SVN""" |
605f6784aae7
Add recipes for gnupg and related packages
Bernhard Herzog <bh@intevation.de>
parents:
diff
changeset
|
9 |
141
2c942b75b98b
Extend the gnupg2 recipe so that it extracts the PKITS log.
Bernhard Herzog <bh@intevation.de>
parents:
134
diff
changeset
|
10 import os |
2c942b75b98b
Extend the gnupg2 recipe so that it extracts the PKITS log.
Bernhard Herzog <bh@intevation.de>
parents:
134
diff
changeset
|
11 import shutil |
2c942b75b98b
Extend the gnupg2 recipe so that it extracts the PKITS log.
Bernhard Herzog <bh@intevation.de>
parents:
134
diff
changeset
|
12 import logging |
2c942b75b98b
Extend the gnupg2 recipe so that it extracts the PKITS log.
Bernhard Herzog <bh@intevation.de>
parents:
134
diff
changeset
|
13 import re |
2c942b75b98b
Extend the gnupg2 recipe so that it extracts the PKITS log.
Bernhard Herzog <bh@intevation.de>
parents:
134
diff
changeset
|
14 |
2c942b75b98b
Extend the gnupg2 recipe so that it extracts the PKITS log.
Bernhard Herzog <bh@intevation.de>
parents:
134
diff
changeset
|
15 import treepkg.packager |
2c942b75b98b
Extend the gnupg2 recipe so that it extracts the PKITS log.
Bernhard Herzog <bh@intevation.de>
parents:
134
diff
changeset
|
16 import treepkg.util |
2c942b75b98b
Extend the gnupg2 recipe so that it extracts the PKITS log.
Bernhard Herzog <bh@intevation.de>
parents:
134
diff
changeset
|
17 |
134
605f6784aae7
Add recipes for gnupg and related packages
Bernhard Herzog <bh@intevation.de>
parents:
diff
changeset
|
18 import base |
605f6784aae7
Add recipes for gnupg and related packages
Bernhard Herzog <bh@intevation.de>
parents:
diff
changeset
|
19 base.define_gnupg_packager("gnupg2") |
141
2c942b75b98b
Extend the gnupg2 recipe so that it extracts the PKITS log.
Bernhard Herzog <bh@intevation.de>
parents:
134
diff
changeset
|
20 |
2c942b75b98b
Extend the gnupg2 recipe so that it extracts the PKITS log.
Bernhard Herzog <bh@intevation.de>
parents:
134
diff
changeset
|
21 |
2c942b75b98b
Extend the gnupg2 recipe so that it extracts the PKITS log.
Bernhard Herzog <bh@intevation.de>
parents:
134
diff
changeset
|
22 class BinaryPackager(treepkg.packager.BinaryPackager): |
2c942b75b98b
Extend the gnupg2 recipe so that it extracts the PKITS log.
Bernhard Herzog <bh@intevation.de>
parents:
134
diff
changeset
|
23 |
2c942b75b98b
Extend the gnupg2 recipe so that it extracts the PKITS log.
Bernhard Herzog <bh@intevation.de>
parents:
134
diff
changeset
|
24 pkits_log = treepkg.packager._fromparent("pkits_log") |
2c942b75b98b
Extend the gnupg2 recipe so that it extracts the PKITS log.
Bernhard Herzog <bh@intevation.de>
parents:
134
diff
changeset
|
25 |
2c942b75b98b
Extend the gnupg2 recipe so that it extracts the PKITS log.
Bernhard Herzog <bh@intevation.de>
parents:
134
diff
changeset
|
26 def package(self): |
2c942b75b98b
Extend the gnupg2 recipe so that it extracts the PKITS log.
Bernhard Herzog <bh@intevation.de>
parents:
134
diff
changeset
|
27 self.status.creating_binary_package() |
2c942b75b98b
Extend the gnupg2 recipe so that it extracts the PKITS log.
Bernhard Herzog <bh@intevation.de>
parents:
134
diff
changeset
|
28 treepkg.util.ensure_directory(self.binary_dir) |
2c942b75b98b
Extend the gnupg2 recipe so that it extracts the PKITS log.
Bernhard Herzog <bh@intevation.de>
parents:
134
diff
changeset
|
29 self.create_pkits_workdir() |
2c942b75b98b
Extend the gnupg2 recipe so that it extracts the PKITS log.
Bernhard Herzog <bh@intevation.de>
parents:
134
diff
changeset
|
30 try: |
2c942b75b98b
Extend the gnupg2 recipe so that it extracts the PKITS log.
Bernhard Herzog <bh@intevation.de>
parents:
134
diff
changeset
|
31 logging.info("Building binary package; logging to %r", self.logfile) |
2c942b75b98b
Extend the gnupg2 recipe so that it extracts the PKITS log.
Bernhard Herzog <bh@intevation.de>
parents:
134
diff
changeset
|
32 extra_env=dict(GNUPG_PKITS_DIRECTORY=self.pkits_workdir) |
2c942b75b98b
Extend the gnupg2 recipe so that it extracts the PKITS log.
Bernhard Herzog <bh@intevation.de>
parents:
134
diff
changeset
|
33 self.track.builder.build(self.dsc_file, self.binary_dir, self.logfile, |
2c942b75b98b
Extend the gnupg2 recipe so that it extracts the PKITS log.
Bernhard Herzog <bh@intevation.de>
parents:
134
diff
changeset
|
34 bindmounts=[self.pkits_workdir], |
2c942b75b98b
Extend the gnupg2 recipe so that it extracts the PKITS log.
Bernhard Herzog <bh@intevation.de>
parents:
134
diff
changeset
|
35 extra_packages=["bzip2"], |
2c942b75b98b
Extend the gnupg2 recipe so that it extracts the PKITS log.
Bernhard Herzog <bh@intevation.de>
parents:
134
diff
changeset
|
36 extra_env=extra_env) |
2c942b75b98b
Extend the gnupg2 recipe so that it extracts the PKITS log.
Bernhard Herzog <bh@intevation.de>
parents:
134
diff
changeset
|
37 self.extract_pkits_log() |
2c942b75b98b
Extend the gnupg2 recipe so that it extracts the PKITS log.
Bernhard Herzog <bh@intevation.de>
parents:
134
diff
changeset
|
38 finally: |
2c942b75b98b
Extend the gnupg2 recipe so that it extracts the PKITS log.
Bernhard Herzog <bh@intevation.de>
parents:
134
diff
changeset
|
39 self.remove_pkits_workdir() |
2c942b75b98b
Extend the gnupg2 recipe so that it extracts the PKITS log.
Bernhard Herzog <bh@intevation.de>
parents:
134
diff
changeset
|
40 self.status.binary_package_created() |
2c942b75b98b
Extend the gnupg2 recipe so that it extracts the PKITS log.
Bernhard Herzog <bh@intevation.de>
parents:
134
diff
changeset
|
41 |
2c942b75b98b
Extend the gnupg2 recipe so that it extracts the PKITS log.
Bernhard Herzog <bh@intevation.de>
parents:
134
diff
changeset
|
42 def create_pkits_workdir(self): |
2c942b75b98b
Extend the gnupg2 recipe so that it extracts the PKITS log.
Bernhard Herzog <bh@intevation.de>
parents:
134
diff
changeset
|
43 self.pkits_workdir = os.path.join(self.parent.base_dir, "pkits-work") |
2c942b75b98b
Extend the gnupg2 recipe so that it extracts the PKITS log.
Bernhard Herzog <bh@intevation.de>
parents:
134
diff
changeset
|
44 treepkg.util.ensure_directory(self.pkits_workdir) |
2c942b75b98b
Extend the gnupg2 recipe so that it extracts the PKITS log.
Bernhard Herzog <bh@intevation.de>
parents:
134
diff
changeset
|
45 shutil.copy(os.path.join(self.track.checkout_dir, "tests", "pkits", |
2c942b75b98b
Extend the gnupg2 recipe so that it extracts the PKITS log.
Bernhard Herzog <bh@intevation.de>
parents:
134
diff
changeset
|
46 "PKITS_data.tar.bz2"), |
2c942b75b98b
Extend the gnupg2 recipe so that it extracts the PKITS log.
Bernhard Herzog <bh@intevation.de>
parents:
134
diff
changeset
|
47 self.pkits_workdir) |
2c942b75b98b
Extend the gnupg2 recipe so that it extracts the PKITS log.
Bernhard Herzog <bh@intevation.de>
parents:
134
diff
changeset
|
48 |
2c942b75b98b
Extend the gnupg2 recipe so that it extracts the PKITS log.
Bernhard Herzog <bh@intevation.de>
parents:
134
diff
changeset
|
49 def remove_pkits_workdir(self): |
2c942b75b98b
Extend the gnupg2 recipe so that it extracts the PKITS log.
Bernhard Herzog <bh@intevation.de>
parents:
134
diff
changeset
|
50 shutil.rmtree(self.pkits_workdir) |
2c942b75b98b
Extend the gnupg2 recipe so that it extracts the PKITS log.
Bernhard Herzog <bh@intevation.de>
parents:
134
diff
changeset
|
51 |
2c942b75b98b
Extend the gnupg2 recipe so that it extracts the PKITS log.
Bernhard Herzog <bh@intevation.de>
parents:
134
diff
changeset
|
52 def extract_pkits_log(self): |
2c942b75b98b
Extend the gnupg2 recipe so that it extracts the PKITS log.
Bernhard Herzog <bh@intevation.de>
parents:
134
diff
changeset
|
53 testlog = None |
2c942b75b98b
Extend the gnupg2 recipe so that it extracts the PKITS log.
Bernhard Herzog <bh@intevation.de>
parents:
134
diff
changeset
|
54 for line in open(self.logfile): |
2c942b75b98b
Extend the gnupg2 recipe so that it extracts the PKITS log.
Bernhard Herzog <bh@intevation.de>
parents:
134
diff
changeset
|
55 if re.match("--------- END PKITS LOG ---------", line): |
2c942b75b98b
Extend the gnupg2 recipe so that it extracts the PKITS log.
Bernhard Herzog <bh@intevation.de>
parents:
134
diff
changeset
|
56 break |
2c942b75b98b
Extend the gnupg2 recipe so that it extracts the PKITS log.
Bernhard Herzog <bh@intevation.de>
parents:
134
diff
changeset
|
57 elif re.match("-------- BEGIN PKITS LOG --------", line): |
2c942b75b98b
Extend the gnupg2 recipe so that it extracts the PKITS log.
Bernhard Herzog <bh@intevation.de>
parents:
134
diff
changeset
|
58 testlog = [] |
2c942b75b98b
Extend the gnupg2 recipe so that it extracts the PKITS log.
Bernhard Herzog <bh@intevation.de>
parents:
134
diff
changeset
|
59 elif testlog is not None and line[:1] in "0123456789": |
2c942b75b98b
Extend the gnupg2 recipe so that it extracts the PKITS log.
Bernhard Herzog <bh@intevation.de>
parents:
134
diff
changeset
|
60 testlog.append(line) |
2c942b75b98b
Extend the gnupg2 recipe so that it extracts the PKITS log.
Bernhard Herzog <bh@intevation.de>
parents:
134
diff
changeset
|
61 else: |
2c942b75b98b
Extend the gnupg2 recipe so that it extracts the PKITS log.
Bernhard Herzog <bh@intevation.de>
parents:
134
diff
changeset
|
62 logging.info("Could not find PKITS LOG in %s", self.logfile) |
2c942b75b98b
Extend the gnupg2 recipe so that it extracts the PKITS log.
Bernhard Herzog <bh@intevation.de>
parents:
134
diff
changeset
|
63 return |
2c942b75b98b
Extend the gnupg2 recipe so that it extracts the PKITS log.
Bernhard Herzog <bh@intevation.de>
parents:
134
diff
changeset
|
64 treepkg.util.ensure_directory(os.path.dirname(self.pkits_log)) |
2c942b75b98b
Extend the gnupg2 recipe so that it extracts the PKITS log.
Bernhard Herzog <bh@intevation.de>
parents:
134
diff
changeset
|
65 outfile = open(self.pkits_log, "w") |
2c942b75b98b
Extend the gnupg2 recipe so that it extracts the PKITS log.
Bernhard Herzog <bh@intevation.de>
parents:
134
diff
changeset
|
66 outfile.writelines(testlog) |
2c942b75b98b
Extend the gnupg2 recipe so that it extracts the PKITS log.
Bernhard Herzog <bh@intevation.de>
parents:
134
diff
changeset
|
67 outfile.close() |
2c942b75b98b
Extend the gnupg2 recipe so that it extracts the PKITS log.
Bernhard Herzog <bh@intevation.de>
parents:
134
diff
changeset
|
68 |
2c942b75b98b
Extend the gnupg2 recipe so that it extracts the PKITS log.
Bernhard Herzog <bh@intevation.de>
parents:
134
diff
changeset
|
69 |
2c942b75b98b
Extend the gnupg2 recipe so that it extracts the PKITS log.
Bernhard Herzog <bh@intevation.de>
parents:
134
diff
changeset
|
70 class RevisionPackager(treepkg.packager.RevisionPackager): |
2c942b75b98b
Extend the gnupg2 recipe so that it extracts the PKITS log.
Bernhard Herzog <bh@intevation.de>
parents:
134
diff
changeset
|
71 |
2c942b75b98b
Extend the gnupg2 recipe so that it extracts the PKITS log.
Bernhard Herzog <bh@intevation.de>
parents:
134
diff
changeset
|
72 source_packager_cls = SourcePackager |
2c942b75b98b
Extend the gnupg2 recipe so that it extracts the PKITS log.
Bernhard Herzog <bh@intevation.de>
parents:
134
diff
changeset
|
73 binary_packager_cls = BinaryPackager |
2c942b75b98b
Extend the gnupg2 recipe so that it extracts the PKITS log.
Bernhard Herzog <bh@intevation.de>
parents:
134
diff
changeset
|
74 |
2c942b75b98b
Extend the gnupg2 recipe so that it extracts the PKITS log.
Bernhard Herzog <bh@intevation.de>
parents:
134
diff
changeset
|
75 pkits_log = treepkg.packager._filenameproperty("pkits_log.txt", |
2c942b75b98b
Extend the gnupg2 recipe so that it extracts the PKITS log.
Bernhard Herzog <bh@intevation.de>
parents:
134
diff
changeset
|
76 dir_attr="log_dir") |
2c942b75b98b
Extend the gnupg2 recipe so that it extracts the PKITS log.
Bernhard Herzog <bh@intevation.de>
parents:
134
diff
changeset
|
77 |
2c942b75b98b
Extend the gnupg2 recipe so that it extracts the PKITS log.
Bernhard Herzog <bh@intevation.de>
parents:
134
diff
changeset
|
78 def list_log_files(self): |
2c942b75b98b
Extend the gnupg2 recipe so that it extracts the PKITS log.
Bernhard Herzog <bh@intevation.de>
parents:
134
diff
changeset
|
79 files = super(RevisionPackager, self).list_log_files() |
2c942b75b98b
Extend the gnupg2 recipe so that it extracts the PKITS log.
Bernhard Herzog <bh@intevation.de>
parents:
134
diff
changeset
|
80 if os.path.exists(self.pkits_log): |
2c942b75b98b
Extend the gnupg2 recipe so that it extracts the PKITS log.
Bernhard Herzog <bh@intevation.de>
parents:
134
diff
changeset
|
81 files.append(("PKITS log", self.pkits_log)) |
2c942b75b98b
Extend the gnupg2 recipe so that it extracts the PKITS log.
Bernhard Herzog <bh@intevation.de>
parents:
134
diff
changeset
|
82 return files |