# HG changeset patch # User Bernhard Herzog # Date 1214320239 0 # Node ID 7bde59aa611eb0084a04e2ae631cce8948645dcc # Parent e4512f045999fb0dc74aa109680fb72df92ee328 Make PBuilder.update_extra_pkg_dir create Release and Release.gpg files diff -r e4512f045999 -r 7bde59aa611e test/test_builder.py --- a/test/test_builder.py Tue Jun 24 10:20:12 2008 +0000 +++ b/test/test_builder.py Tue Jun 24 15:10:39 2008 +0000 @@ -339,6 +339,6 @@ builder.add_binaries_to_extra_pkg([self.minimal_package_deb]) self.assertEquals(sorted(os.listdir(self.extra_pkg_dir)), - ["Packages", "minimal_1.0-1_i386.deb"]) + ["Packages", "Release", "minimal_1.0-1_i386.deb"]) self.check_command_line(['/usr/sbin/pbuilder', 'update', '--configfile', self.pbuilderrc]) diff -r e4512f045999 -r 7bde59aa611e treepkg/builder.py --- a/treepkg/builder.py Tue Jun 24 10:20:12 2008 +0000 +++ b/treepkg/builder.py Tue Jun 24 15:10:39 2008 +0000 @@ -46,7 +46,7 @@ aptcache_dir = util.filenameproperty("aptcache") extra_pkg_dir = util.filenameproperty("extra-pkg") - def __init__(self, pbuilderrc, root_cmd): + def __init__(self, pbuilderrc, root_cmd, release_signing_keyid=None): """Initialize the PBuilder instance with the configuration file. The root_cmd parameter should be a list with a command that can be used to get root permissions to run pbuilder. It may be an @@ -56,6 +56,7 @@ """ self.pbuilderrc = pbuilderrc self.root_cmd = root_cmd + self.release_signing_keyid = release_signing_keyid self.base_dir = os.path.dirname(self.pbuilderrc) def init_pbuilder(self, distribution, mirrorsite, extramirrors): @@ -106,6 +107,15 @@ run.call(cmdexpand("apt-ftparchive packages ."), stdout=open(os.path.join(self.extra_pkg_dir, "Packages"), "w"), cwd=self.extra_pkg_dir) + release_filename = os.path.join(self.extra_pkg_dir, "Release") + run.call(cmdexpand("apt-ftparchive release ."), + stdout=open(release_filename, "w"), cwd=self.extra_pkg_dir) + if self.release_signing_keyid: + run.call(cmdexpand("gpg --detach-sign --armor --local-user=$keyid" + " -o $sig $release", + keyid=self.release_signing_keyid, + sig=release_filename + ".gpg", + release=release_filename)), def build(self, dsc_file, binary_dir, logfile, bindmounts=(), extra_packages=(), extra_env=None): diff -r e4512f045999 -r 7bde59aa611e treepkg/packager.py --- a/treepkg/packager.py Tue Jun 24 10:20:12 2008 +0000 +++ b/treepkg/packager.py Tue Jun 24 15:10:39 2008 +0000 @@ -300,7 +300,8 @@ self.name = name self.base_dir = base_dir self.svn_url = svn_url - self.builder = PBuilder(pbuilderrc, root_cmd) + self.builder = PBuilder(pbuilderrc, root_cmd, + release_signing_keyid=signing_key_id) self.deb_email = deb_email self.deb_fullname = deb_fullname self.debrevision_prefix = debrevision_prefix