#1865 mergerepos_c in bare mode doesn't support multilib arches
Opened 4 years ago by jforaker. Modified 4 years ago

The current mergerepo_c code only expands the arch_list to include compatible multilib arches in --koji mode. In other modes, it filters exactly on the arch list provided on the command line, if any. Since koji always passes the tag arch to mergerepo_c, this breaks multilib repo generation. In our particular case, it means our x86_64 koji repos are missing i686 RHEL -devel libs necessary to build some packages.

This seems like a distinct problem from, but potentially with a related solution to #1664. I'm not certain whether the proper fix is to modify koji or createrepo_c. For the moment, I've deployed the following workaround:

diff --git a/builder/kojid b/builder/kojid
index 6c66ac1..2e2ea4b 100755
--- a/builder/kojid
+++ b/builder/kojid
@@ -5341,17 +5341,18 @@ class CreaterepoTask(BaseTaskHandler):
         elif merge_mode == 'bare':
             # "bare" merge mode for repos with modular metadata
             # forces use of mergerepo_c
             cmd = ['/usr/bin/mergerepo_c', '--pkgorigins', '--all']
+            cmd.extend(['-a', ','.join(koji.arch.getArchList(arch))])
         elif self.options.use_createrepo_c:
             cmd = ['/usr/bin/mergerepo_c', '--koji']
         else:
             cmd = ['/usr/libexec/kojid/mergerepos']
             cmd.extend(['--tempdir', self.workdir])
         if merge_mode != 'bare':
             blocklist = self.repodir + '/blocklist'
-            cmd.extend(['-b', blocklist])
-        cmd.extend(['-a', arch, '-o', self.outdir])
+            cmd.extend(['-b', blocklist, '-a', arch])
+        cmd.extend(['-o', self.outdir])
         if os.path.isfile(groupdata):
             cmd.extend(['-g', groupdata])
         for repo in repos:
             cmd.extend(['-r', repo])

@tkopecek please take a look and add your thoughts

Metadata Update from @dgregor:
- Custom field Size adjusted to None

4 years ago

Login to comment on this ticket.

Metadata