def _extraBuildArgs(self, distroarchseries, logger=None): """ Return the extra arguments required by the slave for the given build. """ # Build extra arguments. args = {} suite = self.build.distroseries.name if self.build.pocket != PackagePublishingPocket.RELEASE: suite += "-%s" % (self.build.pocket.name.lower()) args['suite'] = suite args['arch_tag'] = distroarchseries.architecturetag requester = self.build.requester if requester.preferredemail is None: # Use a constant, known, name and email. args["author_name"] = 'Launchpad Package Builder' args["author_email"] = config.canonical.noreply_from_address else: args["author_name"] = requester.displayname # We have to remove the security proxy here b/c there's not a # logged in entity, and anonymous email lookups aren't allowed. # Don't keep the naked requester around though. args["author_email"] = removeSecurityProxy( requester).preferredemail.email args["recipe_text"] = str(self.build.recipe.builder_recipe) args['archive_purpose'] = self.build.archive.purpose.name args["ogrecomponent"] = get_primary_current_component( self.build.archive, self.build.distroseries, None) args['archives'] = get_sources_list_for_building( self.build, distroarchseries, None) args['archive_private'] = self.build.archive.private # config.builddmaster.bzr_builder_sources_list can contain a # sources.list entry for an archive that will contain a # bzr-builder package that needs to be used to build this # recipe. try: extra_archive = config.builddmaster.bzr_builder_sources_list except AttributeError: extra_archive = None if extra_archive is not None: try: sources_line = extra_archive % ({ 'series': self.build.distroseries.name }) args['archives'].append(sources_line) except StandardError: # Someone messed up the config, don't add it. if logger: logger.error( "Exception processing bzr_builder_sources_list:\n%s" % traceback.format_exc()) args['distroseries_name'] = self.build.distroseries.name return args
def _extraBuildArgs(self, distroarchseries, logger=None): """ Return the extra arguments required by the slave for the given build. """ # Build extra arguments. args = {} suite = self.build.distroseries.name if self.build.pocket != PackagePublishingPocket.RELEASE: suite += "-%s" % (self.build.pocket.name.lower()) args['suite'] = suite args['arch_tag'] = distroarchseries.architecturetag requester = self.build.requester if requester.preferredemail is None: # Use a constant, known, name and email. args["author_name"] = 'Launchpad Package Builder' args["author_email"] = config.canonical.noreply_from_address else: args["author_name"] = requester.displayname # We have to remove the security proxy here b/c there's not a # logged in entity, and anonymous email lookups aren't allowed. # Don't keep the naked requester around though. args["author_email"] = removeSecurityProxy( requester).preferredemail.email args["recipe_text"] = str(self.build.recipe.builder_recipe) args['archive_purpose'] = self.build.archive.purpose.name args["ogrecomponent"] = get_primary_current_component( self.build.archive, self.build.distroseries, None) args['archives'] = get_sources_list_for_building(self.build, distroarchseries, None) args['archive_private'] = self.build.archive.private # config.builddmaster.bzr_builder_sources_list can contain a # sources.list entry for an archive that will contain a # bzr-builder package that needs to be used to build this # recipe. try: extra_archive = config.builddmaster.bzr_builder_sources_list except AttributeError: extra_archive = None if extra_archive is not None: try: sources_line = extra_archive % ( {'series': self.build.distroseries.name}) args['archives'].append(sources_line) except StandardError: # Someone messed up the config, don't add it. if logger: logger.error( "Exception processing bzr_builder_sources_list:\n%s" % traceback.format_exc()) args['distroseries_name'] = self.build.distroseries.name return args
def extraBuildArgs(self, logger=None): """ Return the extra arguments required by the slave for the given build. """ if self.distro_arch_series is None: raise CannotBuild("Unable to find distroarchseries for %s in %s" % (self._builder.processor.name, self.build.distroseries.displayname)) # Build extra arguments. args = yield super(RecipeBuildBehaviour, self).extraBuildArgs(logger=logger) args['suite'] = self.build.distroseries.getSuite(self.build.pocket) requester = self.build.requester if requester.preferredemail is None: # Use a constant, known, name and email. args["author_name"] = 'Launchpad Package Builder' args["author_email"] = config.canonical.noreply_from_address else: args["author_name"] = requester.displayname # We have to remove the security proxy here b/c there's not a # logged in entity, and anonymous email lookups aren't allowed. # Don't keep the naked requester around though. args["author_email"] = removeSecurityProxy( requester).preferredemail.email args["recipe_text"] = self.build.recipe.getRecipeText(validate=True) args['archive_purpose'] = self.build.archive.purpose.name args["ogrecomponent"] = get_primary_current_component( self.build.archive, self.build.distroseries, None).name args['archives'], args['trusted_keys'] = ( yield get_sources_list_for_building( self.build, self.distro_arch_series, None, tools_source=config.builddmaster.bzr_builder_sources_list, logger=logger)) # XXX cjwatson 2017-07-26: This duplicates "series", which is common # to all build types; this name for it is deprecated and should be # removed once launchpad-buildd no longer requires it. args['distroseries_name'] = self.build.distroseries.name if self.build.recipe.base_git_repository is not None: args['git'] = True defer.returnValue(args)
def _extraBuildArgs(self, build): """ Return the extra arguments required by the slave for the given build. """ # Build extra arguments. args = {} # turn 'arch_indep' ON only if build is archindep or if # the specific architecture is the nominatedarchindep for # this distroseries (in case it requires any archindep source) args['arch_indep'] = build.distro_arch_series.isNominatedArchIndep suite = build.distro_arch_series.distroseries.name if build.pocket != PackagePublishingPocket.RELEASE: suite += "-%s" % (build.pocket.name.lower()) args['suite'] = suite args['arch_tag'] = build.distro_arch_series.architecturetag archive_purpose = build.archive.purpose if (archive_purpose == ArchivePurpose.PPA and not build.archive.require_virtualized): # If we're building a non-virtual PPA, override the purpose # to PRIMARY and use the primary component override. # This ensures that the package mangling tools will run over # the built packages. args['archive_purpose'] = ArchivePurpose.PRIMARY.name args["ogrecomponent"] = ( get_primary_current_component(build.archive, build.distro_series, build.source_package_release.name)) else: args['archive_purpose'] = archive_purpose.name args["ogrecomponent"] = ( build.current_component.name) args['archives'] = get_sources_list_for_building(build, build.distro_arch_series, build.source_package_release.name) args['archive_private'] = build.archive.private args['build_debug_symbols'] = build.archive.build_debug_symbols return args
def _extraBuildArgs(self, build): """ Return the extra arguments required by the slave for the given build. """ # Build extra arguments. args = {} # turn 'arch_indep' ON only if build is archindep or if # the specific architecture is the nominatedarchindep for # this distroseries (in case it requires any archindep source) args['arch_indep'] = build.distro_arch_series.isNominatedArchIndep suite = build.distro_arch_series.distroseries.name if build.pocket != PackagePublishingPocket.RELEASE: suite += "-%s" % (build.pocket.name.lower()) args['suite'] = suite args['arch_tag'] = build.distro_arch_series.architecturetag archive_purpose = build.archive.purpose if (archive_purpose == ArchivePurpose.PPA and not build.archive.require_virtualized): # If we're building a non-virtual PPA, override the purpose # to PRIMARY and use the primary component override. # This ensures that the package mangling tools will run over # the built packages. args['archive_purpose'] = ArchivePurpose.PRIMARY.name args["ogrecomponent"] = (get_primary_current_component( build.archive, build.distro_series, build.source_package_release.name)) else: args['archive_purpose'] = archive_purpose.name args["ogrecomponent"] = (build.current_component.name) args['archives'] = get_sources_list_for_building( build, build.distro_arch_series, build.source_package_release.name) args['archive_private'] = build.archive.private args['build_debug_symbols'] = build.archive.build_debug_symbols return args
def extraBuildArgs(self, logger=None): """ Return the extra arguments required by the slave for the given build. """ build = self.build das = build.distro_arch_series # Build extra arguments. args = yield super(BinaryPackageBuildBehaviour, self).extraBuildArgs(logger=logger) args['arch_indep'] = build.arch_indep args['distribution'] = das.distroseries.distribution.name args['suite'] = das.distroseries.getSuite(build.pocket) archive_purpose = build.archive.purpose if (archive_purpose == ArchivePurpose.PPA and not build.archive.require_virtualized): # If we're building a non-virtual PPA, override the purpose # to PRIMARY and use the primary component override. # This ensures that the package mangling tools will run over # the built packages. args['archive_purpose'] = ArchivePurpose.PRIMARY.name args["ogrecomponent"] = (get_primary_current_component( build.archive, build.distro_series, build.source_package_release.name)).name else: args['archive_purpose'] = archive_purpose.name args["ogrecomponent"] = (build.current_component.name) args['archives'], args['trusted_keys'] = ( yield get_sources_list_for_building(build, das, build.source_package_release.name, logger=logger)) args['build_debug_symbols'] = build.archive.build_debug_symbols defer.returnValue(args)
def assertPrimaryCurrentComponent(self, expected, build): self.assertEqual( expected, get_primary_current_component( build.archive, build.distro_series, build.source_package_release.name).name)