]> git.ipfire.org Git - thirdparty/mkosi.git/commitdiff
Give CentOS SIG repositories a higher priority
authorDaan De Meyer <daan.j.demeyer@gmail.com>
Mon, 19 Feb 2024 12:31:55 +0000 (13:31 +0100)
committerDaan De Meyer <daan.j.demeyer@gmail.com>
Mon, 19 Feb 2024 14:39:50 +0000 (15:39 +0100)
CentOS SIGs often ship rebuilds of existing packages which can get
out of date when CentOS 9 Stream ships a newer version. Let's make
sure that the SIG rebuild is still installed by giving all SIG
repositories a priority of 50.

mkosi/distributions/centos.py
mkosi/installer/dnf.py
mkosi/installer/rpm.py
mkosi/installer/zypper.py

index 050e6100e1f1b967a6b6d5824ebd26ed9e3efd69..b065ae91766891e1b52701f861cfc450653a23a5 100644 (file)
@@ -17,6 +17,8 @@ from mkosi.log import die
 from mkosi.util import listify
 from mkosi.versioncomp import GenericVersion
 
+CENTOS_SIG_REPO_PRIORITY = 50
+
 
 class Installer(DistributionInstaller):
     @classmethod
@@ -355,18 +357,21 @@ class Installer(DistributionInstaller):
                             f"baseurl={join_mirror(mirror, f'centos/$stream/{sig}/$basearch/{c}')}",
                             gpgurls,
                             enabled=False,
+                            priority=CENTOS_SIG_REPO_PRIORITY,
                         )
                         yield RpmRepository(
                             f"{sig}-{c}-debuginfo",
                             f"baseurl={join_mirror(mirror, f'centos-debuginfo/$stream/{sig}/$basearch')}",
                             gpgurls,
                             enabled=False,
+                            priority=CENTOS_SIG_REPO_PRIORITY,
                         )
                         yield RpmRepository(
                             f"{sig}-{c}-source",
                             f"baseurl={join_mirror(mirror, f'centos/$stream/{sig}/Source')}",
                             gpgurls,
                             enabled=False,
+                            priority=CENTOS_SIG_REPO_PRIORITY,
                         )
                     else:
                         yield RpmRepository(
@@ -374,18 +379,21 @@ class Installer(DistributionInstaller):
                             f"baseurl={join_mirror(mirror, f'centos-stream/SIGs/$stream/{sig}/$basearch/{c}')}",
                             gpgurls,
                             enabled=False,
+                            priority=CENTOS_SIG_REPO_PRIORITY,
                         )
                         yield RpmRepository(
                             f"{sig}-{c}-debuginfo",
                             f"baseurl={join_mirror(mirror, f'centos-stream/SIGs/$stream/{sig}/$basearch/{c}/debug')}",
                             gpgurls,
                             enabled=False,
+                            priority=CENTOS_SIG_REPO_PRIORITY,
                         )
                         yield RpmRepository(
                             f"{sig}-{c}-source",
                             f"baseurl={join_mirror(mirror, f'centos-stream/SIGs/$stream/{sig}/source/{c}')}",
                             gpgurls,
                             enabled=False,
+                            priority=CENTOS_SIG_REPO_PRIORITY,
                         )
                 else:
                     if GenericVersion(context.config.release) <= 8:
@@ -394,6 +402,7 @@ class Installer(DistributionInstaller):
                             f"mirrorlist=http://mirrorlist.centos.org/?release=$stream&arch=$basearch&repo={sig}-{c}",
                             gpgurls,
                             enabled=False,
+                            priority=CENTOS_SIG_REPO_PRIORITY,
                         )
                         # These can't be retrieved from the mirrorlist.
                         yield RpmRepository(
@@ -401,12 +410,14 @@ class Installer(DistributionInstaller):
                             f"baseurl=http://debuginfo.centos.org/centos/$stream/{sig}/$basearch",
                             gpgurls,
                             enabled=False,
+                            priority=CENTOS_SIG_REPO_PRIORITY,
                         )
                         yield RpmRepository(
                             f"{sig}-{c}-source",
                             f"baseurl=https://vault.centos.org/$stream/{sig}/Source/{c}",
                             gpgurls,
                             enabled=False,
+                            priority=CENTOS_SIG_REPO_PRIORITY,
                         )
                     else:
                         url = "metalink=https://mirrors.centos.org/metalink"
@@ -415,18 +426,21 @@ class Installer(DistributionInstaller):
                             f"{url}?arch=$basearch&repo=centos-{sig}-sig-{c}-$stream",
                             gpgurls,
                             enabled=False,
+                            priority=CENTOS_SIG_REPO_PRIORITY,
                         )
                         yield RpmRepository(
                             f"{sig}-{c}-debuginfo",
                             f"{url}?arch=$basearch&repo=centos-{sig}-sig-{c}-debug-$stream",
                             gpgurls,
                             enabled=False,
+                            priority=CENTOS_SIG_REPO_PRIORITY,
                         )
                         yield RpmRepository(
                             f"{sig}-{c}-source",
                             f"{url}?arch=source&repo=centos-{sig}-sig-{c}-source-$stream",
                             gpgurls,
                             enabled=False,
+                            priority=CENTOS_SIG_REPO_PRIORITY,
                         )
 
                     yield RpmRepository(
@@ -434,6 +448,7 @@ class Installer(DistributionInstaller):
                         f"baseurl=https://buildlogs.centos.org/centos/$stream/{sig}/$basearch/{c}",
                         gpgurls,
                         enabled=False,
+                        priority=CENTOS_SIG_REPO_PRIORITY,
                     )
 
                     if GenericVersion(context.config.release) >= 9:
@@ -442,4 +457,5 @@ class Installer(DistributionInstaller):
                             f"baseurl=https://buildlogs.centos.org/centos/$stream/{sig}/$basearch/{c}",
                             gpgurls,
                             enabled=False,
+                            priority=CENTOS_SIG_REPO_PRIORITY,
                         )
index 799f3e22befca128676e8548316d538609270a1d..8cb9b7a5430ed0bf9023d86291281fdf32578c1b 100644 (file)
@@ -84,6 +84,8 @@ class Dnf(PackageManager):
                         f.write(f"sslclientcert={repo.sslclientcert}\n")
                     if repo.sslclientkey:
                         f.write(f"sslclientkey={repo.sslclientkey}\n")
+                    if repo.priority:
+                        f.write(f"priority={repo.priority}\n")
 
                     for i, url in enumerate(repo.gpgurls):
                         f.write("gpgkey=" if i == 0 else len("gpgkey=") * " ")
index 18da69cc1cbadbafe665d95fce06d76649dadc92..ab1f442805e2a73658f0901855a0d0c0f10f5587 100644 (file)
@@ -17,6 +17,7 @@ class RpmRepository(NamedTuple):
     sslcacert: Optional[Path] = None
     sslclientkey: Optional[Path] = None
     sslclientcert: Optional[Path] = None
+    priority: Optional[int] = None
 
 
 def find_rpm_gpgkey(context: Context, key: str) -> Optional[str]:
index 152aa2d930a33146d0fd72cf71150663f722eb48..1ea97882b8a12a8406654054aec52791597ad716 100644 (file)
@@ -87,6 +87,9 @@ class Zypper(PackageManager):
                         )
                     )
 
+                    if repo.priority:
+                        f.write(f"priority={repo.priority}\n")
+
                     for i, url in enumerate(repo.gpgurls):
                         f.write("gpgkey=" if i == 0 else len("gpgkey=") * " ")
                         f.write(f"{url}\n")