annotate recipes/gnupg/gnupg2.py @ 171:c0ea6cbb0fd2

Add "--debbuildopts -b" to "pbuilder build" command line to stop pbuilder from creating a source package. The .changes would otherwise contain references to that new source package instead of the one we passed to pbuilder. The checksums for the two source packages would be different so the .changes file would not match the source package that treepkg produces.
author Bernhard Herzog <bh@intevation.de>
date Mon, 23 Jun 2008 16:12:01 +0000
parents 13de20d2db9f
children e4512f045999
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
156
27e78096a3fe gnupg2 recipe: format the PKITS log as a HTML table
Bernhard Herzog <bh@intevation.de>
parents: 141
diff changeset
15 from genshi.template import TemplateLoader
27e78096a3fe gnupg2 recipe: format the PKITS log as a HTML table
Bernhard Herzog <bh@intevation.de>
parents: 141
diff changeset
16
141
2c942b75b98b Extend the gnupg2 recipe so that it extracts the PKITS log.
Bernhard Herzog <bh@intevation.de>
parents: 134
diff changeset
17 import treepkg.packager
2c942b75b98b Extend the gnupg2 recipe so that it extracts the PKITS log.
Bernhard Herzog <bh@intevation.de>
parents: 134
diff changeset
18 import treepkg.util
156
27e78096a3fe gnupg2 recipe: format the PKITS log as a HTML table
Bernhard Herzog <bh@intevation.de>
parents: 141
diff changeset
19 import treepkg.report
141
2c942b75b98b Extend the gnupg2 recipe so that it extracts the PKITS log.
Bernhard Herzog <bh@intevation.de>
parents: 134
diff changeset
20
134
605f6784aae7 Add recipes for gnupg and related packages
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
21 import base
605f6784aae7 Add recipes for gnupg and related packages
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
22 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
23
2c942b75b98b Extend the gnupg2 recipe so that it extracts the PKITS log.
Bernhard Herzog <bh@intevation.de>
parents: 134
diff changeset
24
2c942b75b98b Extend the gnupg2 recipe so that it extracts the PKITS log.
Bernhard Herzog <bh@intevation.de>
parents: 134
diff changeset
25 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
26
2c942b75b98b Extend the gnupg2 recipe so that it extracts the PKITS log.
Bernhard Herzog <bh@intevation.de>
parents: 134
diff changeset
27 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
28
2c942b75b98b Extend the gnupg2 recipe so that it extracts the PKITS log.
Bernhard Herzog <bh@intevation.de>
parents: 134
diff changeset
29 def package(self):
2c942b75b98b Extend the gnupg2 recipe so that it extracts the PKITS log.
Bernhard Herzog <bh@intevation.de>
parents: 134
diff changeset
30 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
31 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
32 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
33 try:
2c942b75b98b Extend the gnupg2 recipe so that it extracts the PKITS log.
Bernhard Herzog <bh@intevation.de>
parents: 134
diff changeset
34 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
35 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
36 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
37 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
38 extra_packages=["bzip2"],
2c942b75b98b Extend the gnupg2 recipe so that it extracts the PKITS log.
Bernhard Herzog <bh@intevation.de>
parents: 134
diff changeset
39 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
40 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
41 finally:
2c942b75b98b Extend the gnupg2 recipe so that it extracts the PKITS log.
Bernhard Herzog <bh@intevation.de>
parents: 134
diff changeset
42 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
43 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
44
2c942b75b98b Extend the gnupg2 recipe so that it extracts the PKITS log.
Bernhard Herzog <bh@intevation.de>
parents: 134
diff changeset
45 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
46 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
47 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
48 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
49 "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
50 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 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
53 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
54
2c942b75b98b Extend the gnupg2 recipe so that it extracts the PKITS log.
Bernhard Herzog <bh@intevation.de>
parents: 134
diff changeset
55 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
56 testlog = None
2c942b75b98b Extend the gnupg2 recipe so that it extracts the PKITS log.
Bernhard Herzog <bh@intevation.de>
parents: 134
diff changeset
57 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
58 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
59 break
2c942b75b98b Extend the gnupg2 recipe so that it extracts the PKITS log.
Bernhard Herzog <bh@intevation.de>
parents: 134
diff changeset
60 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
61 testlog = []
2c942b75b98b Extend the gnupg2 recipe so that it extracts the PKITS log.
Bernhard Herzog <bh@intevation.de>
parents: 134
diff changeset
62 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
63 testlog.append(line)
2c942b75b98b Extend the gnupg2 recipe so that it extracts the PKITS log.
Bernhard Herzog <bh@intevation.de>
parents: 134
diff changeset
64 else:
2c942b75b98b Extend the gnupg2 recipe so that it extracts the PKITS log.
Bernhard Herzog <bh@intevation.de>
parents: 134
diff changeset
65 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
66 return
2c942b75b98b Extend the gnupg2 recipe so that it extracts the PKITS log.
Bernhard Herzog <bh@intevation.de>
parents: 134
diff changeset
67 treepkg.util.ensure_directory(os.path.dirname(self.pkits_log))
156
27e78096a3fe gnupg2 recipe: format the PKITS log as a HTML table
Bernhard Herzog <bh@intevation.de>
parents: 141
diff changeset
68 treepkg.util.writefile(self.pkits_log,
157
13de20d2db9f gnupg2 recipe: create the pkits log with 0644 permissions
Bernhard Herzog <bh@intevation.de>
parents: 156
diff changeset
69 self.htmlize_pkits_log(testlog), 0644)
156
27e78096a3fe gnupg2 recipe: format the PKITS log as a HTML table
Bernhard Herzog <bh@intevation.de>
parents: 141
diff changeset
70
27e78096a3fe gnupg2 recipe: format the PKITS log as a HTML table
Bernhard Herzog <bh@intevation.de>
parents: 141
diff changeset
71 def htmlize_pkits_log(self, raw_lines):
27e78096a3fe gnupg2 recipe: format the PKITS log as a HTML table
Bernhard Herzog <bh@intevation.de>
parents: 141
diff changeset
72 loader = TemplateLoader([os.path.dirname(__file__)])
27e78096a3fe gnupg2 recipe: format the PKITS log as a HTML table
Bernhard Herzog <bh@intevation.de>
parents: 141
diff changeset
73 template = loader.load("pkits.html")
27e78096a3fe gnupg2 recipe: format the PKITS log as a HTML table
Bernhard Herzog <bh@intevation.de>
parents: 141
diff changeset
74 pkits = treepkg.report.struct(revision=self.parent.revision,
27e78096a3fe gnupg2 recipe: format the PKITS log as a HTML table
Bernhard Herzog <bh@intevation.de>
parents: 141
diff changeset
75 lines=raw_lines)
27e78096a3fe gnupg2 recipe: format the PKITS log as a HTML table
Bernhard Herzog <bh@intevation.de>
parents: 141
diff changeset
76 stream = template.generate(pkits=pkits)
27e78096a3fe gnupg2 recipe: format the PKITS log as a HTML table
Bernhard Herzog <bh@intevation.de>
parents: 141
diff changeset
77 return stream.render('html')
141
2c942b75b98b Extend the gnupg2 recipe so that it extracts the PKITS log.
Bernhard Herzog <bh@intevation.de>
parents: 134
diff changeset
78
2c942b75b98b Extend the gnupg2 recipe so that it extracts the PKITS log.
Bernhard Herzog <bh@intevation.de>
parents: 134
diff changeset
79
2c942b75b98b Extend the gnupg2 recipe so that it extracts the PKITS log.
Bernhard Herzog <bh@intevation.de>
parents: 134
diff changeset
80 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
81
2c942b75b98b Extend the gnupg2 recipe so that it extracts the PKITS log.
Bernhard Herzog <bh@intevation.de>
parents: 134
diff changeset
82 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
83 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
84
156
27e78096a3fe gnupg2 recipe: format the PKITS log as a HTML table
Bernhard Herzog <bh@intevation.de>
parents: 141
diff changeset
85 pkits_log = treepkg.packager._filenameproperty("pkits_log.html",
141
2c942b75b98b Extend the gnupg2 recipe so that it extracts the PKITS log.
Bernhard Herzog <bh@intevation.de>
parents: 134
diff changeset
86 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
87
2c942b75b98b Extend the gnupg2 recipe so that it extracts the PKITS log.
Bernhard Herzog <bh@intevation.de>
parents: 134
diff changeset
88 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
89 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
90 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
91 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
92 return files
This site is hosted by Intevation GmbH (Datenschutzerklärung und Impressum | Privacy Policy and Imprint)