Пример #1
0
    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
Пример #2
0
    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
Пример #3
0
    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
Пример #5
0
    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)