]> git.ipfire.org Git - thirdparty/mkosi.git/commitdiff
Move creation of /etc/static symlink to package manager tree setup
authorDaan De Meyer <daan.j.demeyer@gmail.com>
Fri, 22 Dec 2023 15:55:29 +0000 (16:55 +0100)
committerDaan De Meyer <daan.j.demeyer@gmail.com>
Fri, 22 Dec 2023 16:12:01 +0000 (17:12 +0100)
bwrap's --symlink is not idempotent, so let's create the symlink
when setting up the package manager tree instead.

mkosi/__init__.py
mkosi/bubblewrap.py

index e036966c9855da556099a3aa2a9f1b3cd0064b6d..aef3f7ba2fb9ffb6f296f89f369594c124b2e511 100644 (file)
@@ -1292,6 +1292,13 @@ def install_skeleton_trees(state: MkosiState) -> None:
 
 
 def install_package_manager_trees(state: MkosiState) -> None:
+    # Ensure /etc exists in the package manager tree
+    (state.pkgmngr / "etc").mkdir(exist_ok=True)
+
+    # Required to be able to access certificates in the sandbox when running from nix.
+    if Path("/etc/static").is_symlink():
+        (state.pkgmngr / "etc/static").symlink_to(Path("/etc/static").readlink())
+
     if not state.config.package_manager_trees:
         return
 
@@ -1299,9 +1306,6 @@ def install_package_manager_trees(state: MkosiState) -> None:
         for tree in state.config.package_manager_trees:
             install_tree(state, tree.source, state.workspace / "pkgmngr", tree.target)
 
-    # Ensure /etc exists in the package manager tree
-    (state.pkgmngr / "etc").mkdir(exist_ok=True)
-
 
 def install_extra_trees(state: MkosiState) -> None:
     if not state.config.extra_trees:
index 006141625849e3e3be8aef7e9835228c76709b5e..f49154dc84043ffef35b5b2cd918ec43c6ea26f1 100644 (file)
@@ -111,9 +111,6 @@ def bwrap(
         if p.is_symlink():
             cmdline += ["--symlink", p.readlink(), p]
 
-    if Path("/etc/static").is_symlink():
-        cmdline += ["--symlink", Path("/etc/static").readlink(), "/etc/static"]
-
     if network:
         cmdline += ["--bind", "/etc/resolv.conf", "/etc/resolv.conf"]