#3358 kojid: permit forcing releasever/arch within mock per tag
Merged 2 years ago by tkopecek. Opened 2 years ago by tkopecek.
tkopecek/koji pr3275  into  master

file modified
+5
@@ -280,6 +280,9 @@ 

          opts['maven_envs'] = self.maven_envs

          opts['bind_opts'] = self.bind_opts

          opts['target_arch'] = self.target_arch

+         if 'mock.forcearch' in self.config['extra']:

+             if bool(self.config['extra']['mock.forcearch']):

+                 opts['forcearch'] = self.target_arch

          if 'mock.package_manager' in self.config['extra']:

              opts['package_manager'] = self.config['extra']['mock.package_manager']

          if 'mock.yum.module_hotfixes' in self.config['extra']:
@@ -301,6 +304,8 @@ 

              }

          if 'mock.module_setup_commands' in self.config['extra']:

              opts['module_setup_commands'] = self.config['extra']['mock.module_setup_commands']

+         if 'mock.releasever' in self.config['extra']:

+             opts['releasever'] = self.config['extra']['mock.releasever']

          if self.internal_dev_setup is not None:

              opts['internal_dev_setup'] = bool(self.internal_dev_setup)

          opts['tag_macros'] = {}

file modified
+6 -1
@@ -1131,11 +1131,14 @@ 

      if opts['repoid'] != 'latest':

          event = session.repoInfo(opts['repoid'])['create_event']

      buildcfg = session.getBuildConfig(opts['tag_name'], event=event)

-     if options.arch:

+     if arch:

          if not buildcfg['arches']:

              warn("Tag %s has an empty arch list" % opts['tag_name'])

          elif arch not in buildcfg['arches']:

              warn('%s is not in the list of tag arches' % arch)

+         if 'mock.forcearch' in buildcfg['extra']:

+             if bool(buildcfg['extra']['mock.forcearch']):

+                 opts['forcearch'] = arch

      if 'mock.package_manager' in buildcfg['extra']:

          opts['package_manager'] = buildcfg['extra']['mock.package_manager']

      if 'mock.yum.module_hotfixes' in buildcfg['extra']:
@@ -1149,6 +1152,8 @@ 

          opts['use_bootstrap'] = buildcfg['extra']['mock.use_bootstrap']

      if 'mock.module_setup_commands' in buildcfg['extra']:

          opts['module_setup_commands'] = buildcfg['extra']['mock.module_setup_commands']

+     if 'mock.releasever' in buildcfg['extra']:

+         opts['releasever'] = buildcfg['extra']['mock.releasever']

      opts['tag_macros'] = {}

      for key in buildcfg['extra']:

          if key.startswith('rpm.macro.'):

@@ -393,6 +393,8 @@ 

  * ``mock.new_chroot`` - 0/1 value. If it is set, ``--new-chroot`` or

    `--old-chroot` option is appended to any mock call. If it is not set,

    mock's default behavior is used.

+ * ``mock.releasever`` - When doing cross-compiles it may be necessary

+   to explicitly set the ``releasever`` to be used.

  * ``mock.use_bootstrap`` - 0/1 value. If it is set, ``--bootstrap-chroot``

    is appended to the mock init call.  This tells mock to build in two stages,

    using chroot rpm for creating the build chroot. If it is not set, mock's
@@ -431,6 +433,8 @@ 

  * ``mock.module_setup_commands`` - commands for configuring the modules active

    in a buildroot. Available in `mock 2.4

    <https://github.com/rpm-software-management/mock/wiki/Release-Notes-2.4>`__.

+ * ``mock.forcearch`` - 0/1 value. If true mock will set the ``forcearch``

+   config option to match the target arch of each buildroot.

  * ``mock.yum.best`` - 0/1 value. If set yum/dnf will use highest available rpm

    version (see man yum.conf)

  * ``mock.yum.module_hotfixes`` - 0/1 value. If set, yum/dnf will use packages

file modified
+4
@@ -1629,6 +1629,8 @@ 

          # turn off warning for yum being used in place of dnf

          'dnf_warning': False,

      }

+     if 'forcearch' in opts:

+         config_opts['forcearch'] = opts['forcearch']

      if opts.get('package_manager'):

          config_opts['package_manager'] = opts['package_manager']

      if opts.get('bootstrap_image'):
@@ -1638,6 +1640,8 @@ 

          config_opts['use_bootstrap'] = bool(opts['use_bootstrap'])

      if 'module_setup_commands' in opts:

          config_opts['module_setup_commands'] = opts['module_setup_commands']

+     if 'releasever' in opts:

+         config_opts['releasever'] = opts['releasever']

  

      # bind_opts are used to mount parts (or all of) /dev if needed.

      # See kojid::LiveCDTask for a look at this option in action.

Metadata Update from @tkopecek:
- Pull-request tagged with: testing-ready

2 years ago

3 new commits added

  • fix arch processing
  • kojid: permit forcing the target arch within mock per tag
  • kojid: permit forcing releasever within mock per tag
2 years ago

Metadata Update from @mfilip:
- Pull-request tagged with: testing-done

2 years ago

Commit ba5ecbb fixes this pull-request

Pull-Request has been merged by tkopecek

2 years ago