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())
This site is hosted by Intevation GmbH (Datenschutzerklärung und Impressum | Privacy Policy and Imprint)