]> git.ipfire.org Git - thirdparty/mkosi.git/commitdiff
pacman: Make sure we pass packages to repo-add in right order
authorDaan De Meyer <daan.j.demeyer@gmail.com>
Fri, 26 Jan 2024 10:50:37 +0000 (11:50 +0100)
committerDaan De Meyer <daan.j.demeyer@gmail.com>
Fri, 26 Jan 2024 11:14:18 +0000 (12:14 +0100)
According to https://wiki.archlinux.org/title/pacman/Tips_and_tricks,
the newest version has to be added last, so let's make sure we sort
the paths we pass to repo-add.

mkosi/installer/pacman.py

index 1669d6613b416cfd980fb227e238b5684bcd227b..019fc7ed40a689cde50181663b5c20a3a347568b 100644 (file)
@@ -1,6 +1,7 @@
 # SPDX-License-Identifier: LGPL-2.1+
 import textwrap
 from collections.abc import Iterable, Sequence
+from pathlib import Path
 from typing import NamedTuple
 
 from mkosi.context import Context
@@ -10,6 +11,7 @@ from mkosi.run import run
 from mkosi.sandbox import apivfs_cmd
 from mkosi.types import PathString
 from mkosi.util import sort_packages, umask
+from mkosi.versioncomp import GenericVersion
 
 
 class PacmanRepository(NamedTuple):
@@ -110,7 +112,13 @@ def invoke_pacman(
 
 
 def createrepo_pacman(context: Context) -> None:
-    run(["repo-add", context.packages / "mkosi-packages.db.tar", *context.packages.glob("*.pkg.tar*")])
+    run(
+        [
+            "repo-add",
+            context.packages / "mkosi-packages.db.tar",
+            *sorted(context.packages.glob("*.pkg.tar*"), key=lambda p: GenericVersion(Path(p).name)),
+        ]
+    )
 
     with (context.pkgmngr / "etc/pacman.conf").open("a") as f:
         f.write(