diff --git a/pkgs/image/default.nix b/pkgs/image/default.nix index 05d9c72..86c3708 100644 --- a/pkgs/image/default.nix +++ b/pkgs/image/default.nix @@ -30,7 +30,7 @@ runCommand pname { SYSTEMD_REPART_MKFS_OPTIONS_EROFS = "--all-root -zlz4hc,12 -C1048576 -Efragments,dedupe,ztailpacking"; }; - kernelCmdLine = "console=ttyS0 patos.secureboot=${secureBoot}"; + kernelCmdLine = "systemd.journald.forward_to_console=1 console=ttyS0 patos.secureboot=${secureBoot}"; } '' mkdir -p $out/init.repart.d $out/final.repart.d @@ -141,6 +141,7 @@ cat <<EOF > init.repart.d/10-root.conf Type=root Format=erofs Minimize=best +AddValidateFS=false CopyFiles=/rootfs:/ Verity=data VerityMatchKey=root @@ -152,6 +153,7 @@ cat <<EOF > init.repart.d/20-root-verity.conf Type=root-verity Verity=hash VerityMatchKey=root +AddValidateFS=false Minimize=best SplitName=verity EOF @@ -162,11 +164,13 @@ ${patosPkgs.systemd}/usr/bin/systemd-repart \ --no-pager \ --empty=create \ --size=auto \ - --definitions=./init.repart.d \ + --definitions=$out/init.repart.d \ --split=true \ --json=pretty \ --root=$out \ - patos_$version.raw > init-repart-output.json && rm -f patos_$version.raw + patos_$version.raw > init-repart-output.json + +rm -f patos_$version.raw roothash=$(jq -r '.[0].roothash' init-repart-output.json) rootPart=$(jq -r '.[0].split_path' init-repart-output.json) @@ -217,14 +221,14 @@ Type=esp Format=vfat SizeMinBytes=128M SizeMaxBytes=128M -CopyFiles=/rootfs/boot:/ +CopyFiles=$out/rootfs/boot:/ EOF cat <<EOF > final.repart.d/20-root.conf [Partition] Type=root Label=root-${version} -CopyBlocks=/$rootPart +CopyBlocks=$out/$rootPart UUID=$rootUuid SizeMinBytes=64M SizeMaxBytes=64M @@ -235,7 +239,7 @@ cat <<EOF > final.repart.d/22-root-verity.conf [Partition] Type=root-verity Label=verity-${version} -CopyBlocks=/$verityPart +CopyBlocks=$out/$verityPart UUID=$verityUuid ReadOnly=1 EOF @@ -246,7 +250,6 @@ ${patosPkgs.systemd}/usr/bin/systemd-repart \ --empty=create \ --size=auto \ --definitions=./final.repart.d \ - --root=$out \ patos_${version}.img > final-repart-output.json rm -rf rootfs init.repart.d final.repart.d *.json diff --git a/pkgs/rootfs/mkrootfs.nix b/pkgs/rootfs/mkrootfs.nix index bda4c7d..bdc0ba1 100644 --- a/pkgs/rootfs/mkrootfs.nix +++ b/pkgs/rootfs/mkrootfs.nix @@ -35,7 +35,6 @@ find $out -type d -exec chmod 755 {} \; rm -rf $out/usr/include rm -rf $out/usr/sbin ln -sf /usr/bin $out/usr/sbin -rm -f $out/usr/lib/systemd/system/sysinit.target.wants/systemd-firstboot.service # enable in ramdisk instead rm -f $out/usr/lib/systemd/system/sysinit.target.wants/systemd-repart.service rm -f $out/usr/lib/systemd/system/initrd-root-fs.target.wants/systemd-repart.service @@ -206,7 +205,9 @@ chmod 600 $out/etc/shadow rm -rf creds # Ephemeral machine-id until registration -ln -sf /run/machine-id $out/etc/machine-id +# ln -sf /run/machine-id $out/etc/machine-id +# FIXME: above line does not work in systemd > 257 +${patosPkgs.systemd}/usr/bin/systemd-machine-id-setup --root=$out ### Find and install all shared libs find $out -type f -executable -exec ldd {} \; | awk '{print $3}' | \ diff --git a/pkgs/systemd/default.nix b/pkgs/systemd/default.nix index fea417a..dfe506c 100644 --- a/pkgs/systemd/default.nix +++ b/pkgs/systemd/default.nix @@ -7,7 +7,7 @@ ... }: let - version = "257.6"; + version = "devel"; # Use the command below to update `releaseTimestamp` on every (major) version # change. More details in the commentary at mesonFlags. @@ -26,8 +26,8 @@ stdenv.mkDerivation (finalAttrs: { src = fetchFromGitHub { owner = "systemd"; repo = "systemd"; - rev = "v${version}"; - hash = "sha256-mn/JB/nrOz2TOobu2d+XBH2dVH3vn/HPvWN4Zz6s+SM="; + rev = "959d7f1759d67994e3bed7b9d2f23e063475a872"; # main + hash = "sha256-IxGg0t/0GEllU4EPHqY2bwMDYwrQ5KWyE2QhwhTxqGs="; }; patches = [ ./skip-verify-esp.patch ]; @@ -137,6 +137,10 @@ stdenv.mkDerivation (finalAttrs: { '' substituteInPlace meson.build \ --replace "find_program('clang'" "find_program('${stdenv.cc.targetPrefix}clang'" + '' + + '' + substituteInPlace src/test/meson.build \ + --replace "test_env.set('SYSTEMD_LANGUAGE_FALLBACK_MAP', language_fallback_map)" "" '' + '' substituteInPlace src/ukify/ukify.py \