Mercurial > treepkg > treepkg
comparison treepkg/packager.py @ 297:4dd6ec3a1151
Make it possible to use parallel builds for packages that support it:
Add a new per-track configuration option deb_build_options whose value
is passed as the DEB_BUILD_OPTIONS environment variable to the pbuilder
process.
author | Bernhard Herzog <bh@intevation.de> |
---|---|
date | Fri, 20 Nov 2009 20:19:51 +0000 |
parents | faeeac2c4c71 |
children | c32dc72ba979 |
comparison
equal
deleted
inserted
replaced
296:ce7be2fb93ee | 297:4dd6ec3a1151 |
---|---|
230 def package(self): | 230 def package(self): |
231 self.status.creating_binary_package() | 231 self.status.creating_binary_package() |
232 util.ensure_directory(self.binary_dir) | 232 util.ensure_directory(self.binary_dir) |
233 util.ensure_directory(self.log_dir) | 233 util.ensure_directory(self.log_dir) |
234 logging.info("Building binary package; logging to %r", self.logfile) | 234 logging.info("Building binary package; logging to %r", self.logfile) |
235 self.track.builder.build(self.dsc_file, self.binary_dir, self.logfile) | 235 self.track.builder.build(self.dsc_file, self.binary_dir, self.logfile, |
236 extra_env=self.track.debian_environment()) | |
236 self.sign_package() | 237 self.sign_package() |
237 self.status.binary_package_created() | 238 self.status.binary_package_created() |
238 | 239 |
239 def sign_package(self): | 240 def sign_package(self): |
240 """Signs the .changes file created buy the instance""" | 241 """Signs the .changes file created buy the instance""" |
346 | 347 |
347 def __init__(self, name, base_dir, svn_url, root_cmd, pbuilderrc, deb_email, | 348 def __init__(self, name, base_dir, svn_url, root_cmd, pbuilderrc, deb_email, |
348 deb_fullname, packager_class="treepkg.packager", | 349 deb_fullname, packager_class="treepkg.packager", |
349 pkg_revision_template="treepkg%(pkg_revision)d", | 350 pkg_revision_template="treepkg%(pkg_revision)d", |
350 handle_dependencies=False, signing_key_id="", do_build=True, | 351 handle_dependencies=False, signing_key_id="", do_build=True, |
351 rules_svn_url=None): | 352 rules_svn_url=None, deb_build_options=""): |
352 self.name = name | 353 self.name = name |
353 self.base_dir = base_dir | 354 self.base_dir = base_dir |
354 self.builder = PBuilder(pbuilderrc, root_cmd, | 355 self.builder = PBuilder(pbuilderrc, root_cmd, |
355 release_signing_keyid=signing_key_id) | 356 release_signing_keyid=signing_key_id) |
356 self.deb_email = deb_email | 357 self.deb_email = deb_email |
357 self.deb_fullname = deb_fullname | 358 self.deb_fullname = deb_fullname |
359 self.deb_build_options = deb_build_options | |
358 self.pkg_revision_template = pkg_revision_template | 360 self.pkg_revision_template = pkg_revision_template |
359 self.signing_key_id = signing_key_id | 361 self.signing_key_id = signing_key_id |
360 self.do_build = do_build | 362 self.do_build = do_build |
361 self.handle_dependencies = handle_dependencies | 363 self.handle_dependencies = handle_dependencies |
362 self.dependencies = None | 364 self.dependencies = None |
458 def debian_environment(self): | 460 def debian_environment(self): |
459 """Returns the environment variables for the debian commands""" | 461 """Returns the environment variables for the debian commands""" |
460 env = os.environ.copy() | 462 env = os.environ.copy() |
461 env["DEBFULLNAME"] = self.deb_fullname | 463 env["DEBFULLNAME"] = self.deb_fullname |
462 env["DEBEMAIL"] = self.deb_email | 464 env["DEBEMAIL"] = self.deb_email |
465 env["DEB_BUILD_OPTIONS"] = self.deb_build_options | |
466 # cdbs requires DEB_BUILD_PARALLEL set to something non-empty, | |
467 # otherwise it will ignore any parallel=<n> setting in | |
468 # DEB_BUILD_OPTIONS. | |
469 env["DEB_BUILD_PARALLEL"] = "true" | |
463 return env | 470 return env |
464 | 471 |
465 def packager_for_new_revision(self): | 472 def packager_for_new_revision(self): |
466 current_revision = (self.last_changed_revision(), | 473 current_revision = (self.last_changed_revision(), |
467 self.rules_working_copy.last_changed_revision()) | 474 self.rules_working_copy.last_changed_revision()) |