Beispiel #1
0
    def __init__(self,
                 name=None,
                 tag=None,
                 build_dir=None,
                 config=None,
                 user_config=None,
                 args=None,
                 **kwargs):

        BuilderBase.__init__(self,
                             name=name,
                             build_dir=build_dir,
                             config=config,
                             user_config=user_config,
                             args=args,
                             **kwargs)

        if tag:
            error_out("FetchBuilder does not support building "
                      "specific tags.")

        if not config.has_option("builder", "fetch_strategy"):
            print("WARNING: no fetch_strategy specified in tito.props"
                  ", assuming ArgSourceStrategy.")
            if not config.has_section("builder"):
                config.add_section("builder")
            config.set('builder', 'fetch_strategy',
                       'tito.builder.fetch.ArgSourceStrategy')

        self.build_tag = '%s-%s' % (self.project_name,
                                    get_spec_version_and_release(
                                        self.start_dir,
                                        '%s.spec' % self.project_name))
Beispiel #2
0
    def __init__(self,
                 name=None,
                 tag=None,
                 build_dir=None,
                 config=None,
                 user_config=None,
                 args=None,
                 **kwargs):

        BuilderBase.__init__(self,
                             name=name,
                             build_dir=build_dir,
                             config=config,
                             user_config=user_config,
                             args=args,
                             **kwargs)

        if tag:
            error_out("FetchBuilder does not support building specific tags.")

        if not config.has_option('builder', 'fetch_prep_command'):
            error_out("NativeFetchBuilder requires fetch_prep_command.")

        self.build_tag = '%s-%s' % (self.project_name,
                                    get_spec_version_and_release(
                                        self.start_dir,
                                        '%s.spec' % self.project_name))
Beispiel #3
0
    def __init__(self, name=None, tag=None, build_dir=None,
            config=None, user_config=None,
            args=None, **kwargs):

        BuilderBase.__init__(self, name=name, build_dir=build_dir,
                config=config,
                user_config=user_config, args=args, **kwargs)

        if tag:
            error_out("FetchBuilder does not support building specific tags.")

        if not config.has_option('builder', 'fetch_prep_command'):
            error_out("NativeFetchBuilder requires fetch_prep_command.")

        self.build_tag = '%s-%s' % (
            self.project_name,
            get_spec_version_and_release(self.start_dir,
                                         '%s.spec' % self.project_name)
        )
Beispiel #4
0
    def __init__(self, name=None, tag=None, build_dir=None, config=None, user_config=None, args=None, **kwargs):

        BuilderBase.__init__(
            self, name=name, build_dir=build_dir, config=config, user_config=user_config, args=args, **kwargs
        )

        if tag:
            error_out("FetchBuilder does not support building " "specific tags.")

        if not config.has_option("builder", "fetch_strategy"):
            print("WARNING: no fetch_strategy specified in tito.props" ", assuming ArgSourceStrategy.")
            if not config.has_section("builder"):
                config.add_section("builder")
            config.set("builder", "fetch_strategy", "tito.builder.fetch.ArgSourceStrategy")

        self.build_tag = "%s-%s" % (
            self.project_name,
            get_spec_version_and_release(self.start_dir, "%s.spec" % self.project_name),
        )
Beispiel #5
0
    def __init__(self,
                 name=None,
                 tag=None,
                 build_dir=None,
                 config=None,
                 user_config=None,
                 args=None,
                 **kwargs):
        """
        name - Package name that is being built.

        version - Version and release being built.

        tag - The git tag being built.

        build_dir - Temporary build directory where we can safely work.

        config - Merged configuration. (global plus package specific)

        user_config - User configuration from ~/.titorc.

        args - Optional arguments specific to each builder. Can be passed
        in explicitly by user on the CLI, or via a release target config
        entry. Only for things which vary on invocations of the builder,
        avoid using these if possible.  *Given in the format of a dictionary
        of lists.*
        """
        ConfigObject.__init__(self, config=config)
        BuilderBase.__init__(self,
                             name=name,
                             build_dir=build_dir,
                             config=config,
                             user_config=user_config,
                             args=args,
                             **kwargs)
        self.build_tag = tag

        self.build_version = self._get_build_version()
        self.git_commit_id = get_build_commit(tag=self.build_tag, test=True)

        if kwargs and 'options' in kwargs:
            warn_out(
                "'options' no longer a supported builder constructor argument."
            )

        if self.config.has_option("requirements", "tito"):
            if loose_version(self.config.get("requirements", "tito")) > \
                    loose_version(require('tito')[0].version):
                error_out([
                    "tito version %s or later is needed to build this project."
                    % self.config.get("requirements", "tito"),
                    "Your version: %s" % require('tito')[0].version
                ])

        self.display_version = self._get_display_version()

        self.relative_project_dir = get_relative_project_dir_cwd(self.git_root)

        tgz_base = self._get_tgz_name_and_ver()
        self.tgz_filename = tgz_base + ".tar.gz"
        self.tgz_dir = tgz_base
        self.artifacts = []

        self.rpmbuild_gitcopy = os.path.join(self.rpmbuild_sourcedir,
                                             self.tgz_dir)

        # Used to make sure we only modify the spec file for a test build
        # once. The srpm method may be called multiple times during koji
        # releases to create the proper disttags, but we only want to modify
        # the spec file once.
        self.ran_setup_test_specfile = False

        # NOTE: These are defined later when/if we actually dump a copy of the
        # project source at the tag we're building. Only then can we search for
        # a spec file.
        self.spec_file_name = None
        self.spec_file = None

        # Set to path to srpm once we build one.
        self.srpm_location = None