]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
mkosi: Don't modify rootfs in build script
authorDaan De Meyer <daan.j.demeyer@gmail.com>
Sun, 29 Jan 2023 14:04:13 +0000 (15:04 +0100)
committerDaan De Meyer <daan.j.demeyer@gmail.com>
Sun, 29 Jan 2023 16:05:23 +0000 (17:05 +0100)
When unprivileged mkosi becomes available, builds will be executed
as an unprivileged user, so we won't be able to modify the rootfs
anymore. Let's update the build script to account for this.

mkosi.build

index b67ee62e22d24c1d8118a07d3ab38e227e514880..ecd233ed5bda2d1e3bc56369c4488067c36ef2e9 100755 (executable)
@@ -22,7 +22,11 @@ fi
 
 # If mkosi.builddir/ exists mkosi will set $BUILDDIR to it, let's then use it
 # as out-of-tree build dir. Otherwise, let's make up our own builddir.
-[ -z "$BUILDDIR" ] && BUILDDIR=build
+[ -z "$BUILDDIR" ] && BUILDDIR="$PWD"/build
+
+# Let's make sure we're using stuff from the build directory first if available there.
+PATH="$BUILDDIR:$PATH"
+export PATH
 
 # Meson uses Python 3 and requires a locale with an UTF-8 character map.
 # Not running under UTF-8 makes the `ninja test` step break with a CodecError.
@@ -52,7 +56,7 @@ fi
 # the ubuntu script with a symlink to the first bpftool program we can find.
 for bpftool in /usr/lib/linux-tools/*/bpftool; do
         [ -x "$bpftool" ] || continue
-        ln -sf "$bpftool" /usr/sbin/bpftool
+        ln -sf "$bpftool" "$BUILDDIR"/bpftool
         break
 done
 
@@ -60,16 +64,15 @@ done
 # specific feature we need ("gen skeleton") to this version, so we replace bpftool with a script that reports
 # version 5.6.0 to satisfy meson which makes bpf work on CentOS Stream 8 as well.
 if [ "$(grep '^ID=' /etc/os-release)" = "ID=\"centos\"" ] && [ "$(grep '^VERSION=' /etc/os-release)" = "VERSION=\"8\"" ]; then
-        cp /usr/sbin/bpftool /usr/sbin/bpftool.real
-        cat >/usr/sbin/bpftool <<EOF
+        cat >"$BUILDDIR"/bpftool <<EOF
 #!/bin/sh
 if [ "\$1" = --version ]; then
         echo 5.6.0
 else
-        exec /usr/sbin/bpftool.real \$@
+        exec /usr/sbin/bpftool \$@
 fi
 EOF
-        chmod +x /usr/sbin/bpftool
+        chmod +x "$BUILDDIR"/bpftool
 fi
 
 if [ ! -f "$BUILDDIR"/build.ninja ] ; then