diff --git a/flake.lock b/flake.lock index 85be38f..bac1c51 100644 --- a/flake.lock +++ b/flake.lock @@ -20,11 +20,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1739020877, - "narHash": "sha256-mIvECo/NNdJJ/bXjNqIh8yeoSjVLAuDuTUzAo7dzs8Y=", + "lastModified": 1747542820, + "narHash": "sha256-GaOZntlJ6gPPbbkTLjbd8BMWaDYafhuuYRNrxCGnPJw=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "a79cfe0ebd24952b580b1cf08cd906354996d547", + "rev": "292fa7d4f6519c074f0a50394dbbe69859bb6043", "type": "github" }, "original": { diff --git a/flake.nix b/flake.nix index 9e92cc8..3567477 100644 --- a/flake.nix +++ b/flake.nix @@ -18,12 +18,14 @@ pkgs = import nixpkgs { inherit system; }; patosPkgs = self.packages.${system}; version = "0.0.1"; + secureBoot = "false"; + cpuArch = "intel"; updateUrl = "http://10.0.2.2:8000/"; in { packages = { default = patosPkgs.image; - image = pkgs.callPackage ./pkgs/image { inherit patosPkgs version updateUrl; }; + image = pkgs.callPackage ./pkgs/image { inherit patosPkgs version updateUrl cpuArch secureBoot; }; rootfs = pkgs.callPackage ./pkgs/rootfs/mkrootfs.nix { inherit patosPkgs version; }; initrd = pkgs.callPackage ./pkgs/rootfs/mkinitrd.nix { inherit patosPkgs version; }; kernel = pkgs.callPackage ./pkgs/kernel { }; @@ -47,6 +49,13 @@ { drv = pkgs.curl; path = "bin/curl"; } { drv = pkgs.bash; path = "bin/bash"; } { drv = patosPkgs.glibc; path = "bin/ldd"; } + { drv = pkgs.util-linux; path = "bin/sfdisk"; } + { drv = pkgs.readline.out; path = "lib/libreadline.so.8.2"; } + { drv = pkgs.readline.out; path = "lib/libreadline.so.8"; } + { drv = pkgs.readline.out; path = "lib/libhistory.so.8.2"; } + { drv = pkgs.readline.out; path = "lib/libhistory.so.8"; } + { drv = pkgs.ncurses.out; path = "/lib/libncursesw.so.6.5"; } + { drv = pkgs.ncurses.out; path = "/lib/libncursesw.so.6"; } { drv = pkgs.keyutils; path = "bin/keyctl"; } { drv = pkgs.gnutar; path = "bin/tar"; } { drv = pkgs.binutils-unwrapped; path = "bin/strings"; } @@ -67,7 +76,7 @@ # shared lib required for binutils { drv = pkgs.binutils-unwrapped.lib; path = "lib/libsframe.so.1.0.0"; } { drv = pkgs.binutils-unwrapped.lib; path = "lib/libsframe.so.1"; } - { drv = pkgs.binutils-unwrapped.lib; path = "lib/libbfd-2.43.1.so"; } + { drv = pkgs.binutils-unwrapped.lib; path = "lib/libbfd-2.44.so"; } { drv = pkgs.binutils-unwrapped.lib; path = "lib/libbfd.so"; } # shared lib required for strace { drv = pkgs.elfutils.out; path = "lib/libdw-0.192.so"; } diff --git a/pkgs/busybox/default.nix b/pkgs/busybox/default.nix index e318d8a..6f22641 100644 --- a/pkgs/busybox/default.nix +++ b/pkgs/busybox/default.nix @@ -1,6 +1,7 @@ { stdenv, lib, + pkgs, buildPackages, fetchurl, fetchpatch, @@ -57,15 +58,12 @@ in stdenv.mkDerivation rec { pname = "busybox"; - version = "1.36.1"; + version = pkgs.busybox.version; # Note to whoever is updating busybox: please verify that: # nix-build pkgs/stdenv/linux/make-bootstrap-tools.nix -A test # still builds after the update. - src = fetchurl { - url = "https://busybox.net/downloads/${pname}-${version}.tar.bz2"; - sha256 = "sha256-uMwkyVdNgJ5yecO+NJeVxdXOtv3xnKcJ+AzeUOR94xQ="; - }; + src = pkgs.busybox.src; hardeningDisable = [ "format" diff --git a/pkgs/dbus-broker/default.nix b/pkgs/dbus-broker/default.nix index 809f3ce..0002d9c 100644 --- a/pkgs/dbus-broker/default.nix +++ b/pkgs/dbus-broker/default.nix @@ -100,14 +100,9 @@ in stdenv.mkDerivation (finalAttrs: { pname = "dbus-broker"; - version = "36"; + version = pkgs.dbus-broker.version; - src = fetchFromGitHub { - owner = "bus1"; - repo = "dbus-broker"; - rev = "v${finalAttrs.version}"; - hash = "sha256-5dAMKjybqrHG57vArbtWEPR/svSj2ION75JrjvnnpVM="; - }; + src = pkgs.dbus-broker.src; nativeBuildInputs = with pkgs; [ docutils diff --git a/pkgs/image/default.nix b/pkgs/image/default.nix index 7407df1..05d9c72 100644 --- a/pkgs/image/default.nix +++ b/pkgs/image/default.nix @@ -5,282 +5,252 @@ version, runCommand, updateUrl, + cpuArch ? "", + secureBoot ? "false" }: let pname = "patos-image"; - - writeConf = - name: attrs: - pkgs.writeTextFile { - name = name; - text = lib.generators.toINI { - mkKeyValue = lib.generators.mkKeyValueDefault { - mkValueString = - v: - if v == true then - ''"yes"'' - else if v == false then - ''"no"'' - else if lib.isString v then - ''"${v}"'' - else - lib.generators.mkValueStringDefault { } v; - } "="; - } attrs; - }; - - secureBootImportKeys = writeConf "secure-boot-import-keys.service" { - Unit = { - Description = "Import Secure Boot keys"; - DefaultDependencies = false; - RequiresMountsFor = "/var/lib/sbctl /boot"; - ConditionPathExists = "/boot/sbctl/keys"; - After = "local-fs.target"; - }; - - Service = { - Type = "oneshot"; - RemainAfterExit = true; - ExecStart = "sbctl import-keys -d /boot/sbctl/keys"; - ExecStartPost = "rm -rf /boot/sbctl"; - }; - }; - - ukiTransfer = writeConf "10-uki.transfer" { - Source = { - Path = updateUrl; - MatchPattern = "patos_@v.efi"; - Type = "url-file"; - }; - - Target = { - InstancesMax = 2; - MatchPattern = "patos_@v+@l-@d.efi patos_@v+@l.efi patos_@v.efi"; - Mode = "0444"; - Path = "/EFI/Linux"; - PathRelativeTo = "esp"; - TriesDone = 0; - TriesLeft = 3; - Type = "regular-file"; - }; - - Transfer = { - Verify = false; - }; - }; - - rootVerityTransfer = writeConf "22-root-verity.transfer" { - Source = { - Type = "url-file"; - Path = updateUrl; - MatchPattern = "patos_@v_@u.verity"; - }; - - Target = { - Type = "partition"; - Path = "auto"; - MatchPattern = "verity-@v"; - MatchPartitionType = "root-verity"; - ReadOnly = "1"; - }; - - Transfer = { - Verify = false; - }; - }; - - rootTransfer = writeConf "22-root.transfer" { - Source = { - Type = "url-file"; - Path = updateUrl; - MatchPattern = "patos_@v_@u.root"; - }; - - Target = { - Type = "partition"; - Path = "auto"; - MatchPattern = "root-@v"; - MatchPartitionType = "root"; - ReadOnly = 1; - }; - Transfer = { - Verify = false; - }; - }; in -runCommand pname - { - inherit version; - inherit updateUrl; +runCommand pname { + inherit version cpuArch updateUrl secureBoot; - buildInputs = with pkgs; [ - erofs-utils - dosfstools - mtools - jq - ]; + microcode = lib.optionalString (cpuArch == "amd") "--microcode ${pkgs.microcode-amd}/amd-ucode.img" + + lib.optionalString (cpuArch == "intel") "--microcode ${pkgs.microcode-intel}/intel-ucode.img"; - env = { - # vfat options won't efi won't find the fs otherwise. - SYSTEMD_REPART_MKFS_OPTIONS_VFAT = "-S 512 -c"; - SYSTEMD_REPART_MKFS_OPTIONS_EROFS = "--all-root -zlz4hc,12 -C1048576 -Efragments,dedupe,ztailpacking"; - }; + buildInputs = with pkgs; [ + erofs-utils + dosfstools + mtools + jq + ]; - kernelCmdLine = "console=ttyS0 patos.secureboot=false"; - } - '' - mkdir -p $out/init.repart.d $out/final.repart.d - pushd $out + env = { + # vfat options won't efi won't find the fs otherwise. + SYSTEMD_REPART_MKFS_OPTIONS_VFAT = "-S 512 -c"; + SYSTEMD_REPART_MKFS_OPTIONS_EROFS = "--all-root -zlz4hc,12 -C1048576 -Efragments,dedupe,ztailpacking"; + }; - mkdir rootfs - cp -prP ${patosPkgs.rootfs}/* rootfs/ - find rootfs/ -type d -exec chmod 755 {} \; + kernelCmdLine = "console=ttyS0 patos.secureboot=${secureBoot}"; +} +'' +mkdir -p $out/init.repart.d $out/final.repart.d +pushd $out - # package kernel modules as sysext (will reduce the image size a little bit (~3MB)) - mkdir rootfs/etc/extensions - rm -rf rootfs/usr/lib/modules - cp ${patosPkgs.kernel}/patos-kernel-modules* rootfs/etc/extensions/ +mkdir rootfs +cp -prP ${patosPkgs.rootfs}/* rootfs/ +find rootfs/ -type d -exec chmod 755 {} \; - # set default target to multi-user - ln -sf multi-user.target rootfs/usr/lib/systemd/system/default.target +# package kernel modules as sysext (will reduce the image size a little bit (~3MB)) +mkdir rootfs/etc/extensions +rm -rf rootfs/usr/lib/modules +cp ${patosPkgs.kernel}/patos-kernel-modules* rootfs/etc/extensions/ - # enable dbus - ln -sf ../dbus.service rootfs/usr/lib/systemd/system/multi-user.target.wants/dbus.service - ln -sf ../dbus.socket rootfs/usr/lib/systemd/system/sockets.target.wants/dbus.socket +# set default target to multi-user +ln -sf multi-user.target rootfs/usr/lib/systemd/system/default.target - # enable network services - ln -sf ../systemd-networkd.service rootfs/usr/lib/systemd/system/sysinit.target.wants/systemd-networkd.service - ln -sf ../systemd-resolved.service rootfs/usr/lib/systemd/system/sysinit.target.wants/systemd-resolved.service - ln -sf ../systemd-timesyncd.service rootfs/usr/lib/systemd/system/multi-user.target.wants/systemd-timesyncd.service - # enable default network config - mv rootfs/usr/lib/systemd/network/89-ethernet.network.example rootfs/usr/lib/systemd/network/89-ethernet.network +# enable dbus +ln -sf ../dbus.service rootfs/usr/lib/systemd/system/multi-user.target.wants/dbus.service +ln -sf ../dbus.socket rootfs/usr/lib/systemd/system/sockets.target.wants/dbus.socket - # enable confext/sysext services - ln -sf ../systemd-confext.service rootfs/usr/lib/systemd/system/sysinit.target.wants/systemd-confext.service - ln -sf ../systemd-sysext.service rootfs/usr/lib/systemd/system/sysinit.target.wants/systemd-sysext.service +# enable network services +ln -sf ../systemd-networkd.service rootfs/usr/lib/systemd/system/sysinit.target.wants/systemd-networkd.service +ln -sf ../systemd-resolved.service rootfs/usr/lib/systemd/system/sysinit.target.wants/systemd-resolved.service +ln -sf ../systemd-timesyncd.service rootfs/usr/lib/systemd/system/multi-user.target.wants/systemd-timesyncd.service +# enable default network config +mv rootfs/usr/lib/systemd/network/89-ethernet.network.example rootfs/usr/lib/systemd/network/89-ethernet.network - cp ${secureBootImportKeys} rootfs/usr/lib/systemd/system/secure-boot-import-keys.service - ln -sf ../secure-boot-import-keys.service rootfs/usr/lib/systemd/system/sysinit.target.wants/secure-boot-import-keys.service +# enable confext/sysext services +ln -sf ../systemd-confext.service rootfs/usr/lib/systemd/system/sysinit.target.wants/systemd-confext.service +ln -sf ../systemd-sysext.service rootfs/usr/lib/systemd/system/sysinit.target.wants/systemd-sysext.service - # sysupdate - mkdir -p rootfs/etc/sysupdate.d - cp ${rootTransfer} ${rootVerityTransfer} ${ukiTransfer} rootfs/etc/sysupdate.d/ +cat <<EOF > rootfs/usr/lib/systemd/system/secure-boot-import-keys.service +[Unit] +Description=Import Secure Boot keys +DefaultDependencies=no +RequiresMountsFor=/var/lib/sbctl /boot +ConditionPathExists=/boot/sbctl/keys +After=local-fs.target - # Initial partitioning - cat <<EOF > init.repart.d/10-root.conf - [Partition] - Type=root - Format=erofs - Minimize=best - CopyFiles=/rootfs:/ - Verity=data - VerityMatchKey=root - SplitName=root - EOF +[Service] +Type=oneshot +RemainAfterExit=yes +ExecStart=sbctl import-keys -d /boot/sbctl/keys +ExecStartPost=rm -rf /boot/sbctl +EOF +ln -sf ../secure-boot-import-keys.service rootfs/usr/lib/systemd/system/sysinit.target.wants/secure-boot-import-keys.service - cat <<EOF > init.repart.d/20-root-verity.conf - [Partition] - Type=root-verity - Verity=hash - VerityMatchKey=root - Minimize=best - SplitName=verity - EOF +# sysupdate +mkdir -p rootfs/etc/sysupdate.d +cat <<EOF > rootfs/etc/sysupdate.d/10-uki.transfer +[Source] +Path=${updateUrl} +MatchPattern=patos_@v.efi +Type=url-file - #TODO: Add verity signature partition +[Target] +InstancesMax=2 +MatchPattern=patos_@v+@l-@d.efi patos_@v+@l.efi patos_@v.efi +Mode=0444 +Path=/EFI/Linux +PathRelativeTo=esp +TriesDone=0 +TriesLeft=3 +Type=regular-file - ${patosPkgs.systemd}/usr/bin/systemd-repart \ - --no-pager \ - --empty=create \ - --size=auto \ - --definitions=./init.repart.d \ - --split=true \ - --json=pretty \ - --root=$out \ - patos_$version.raw > init-repart-output.json && rm -f patos_$version.raw +[Transfer] +Verify=no +EOF - roothash=$(jq -r '.[0].roothash' init-repart-output.json) - rootPart=$(jq -r '.[0].split_path' init-repart-output.json) - rootUuid=$(jq -r '.[0].uuid' init-repart-output.json) +cat <<EOF > rootfs/etc/sysupdate.d/20-root-verity.transfer +[Source] +Type=url-file +Path=${updateUrl} +MatchPattern=patos_@v_@u.verity - verityPart=$(jq -r '.[1].split_path' init-repart-output.json) - verityUuid=$(jq -r '.[1].uuid' init-repart-output.json) +[Target] +Type=partition +Path=auto +MatchPattern=verity-@v +MatchPartitionType=root-verity +ReadOnly=1 - ln -sf patos_$version.verity.raw patos_${version}_$verityUuid.verity - ln -sf patos_$version.root.raw patos_${version}_$rootUuid.root +[Transfer] +Verify=no +EOF - ${patosPkgs.systemd}/usr/bin/ukify build \ - --linux ${patosPkgs.kernel}/bzImage \ - --initrd ${patosPkgs.initrd}/initrd.xz \ - --os-release @rootfs/etc/os-release \ - --cmdline "$kernelCmdLine roothash=$roothash" \ - -o patos_${version}.efi +cat <<EOF > rootfs/etc/sysupdate.d/22-root.transfer +[Source] +Type=url-file +Path=${updateUrl} +MatchPattern=patos_@v_@u.root - # install ESP - SYSTEMD_RELAX_ESP_CHECKS=1 ${patosPkgs.systemd}/usr/bin/bootctl install --root ./rootfs --esp-path /boot +[Target] +Type=partition +Path=auto +MatchPattern=root-@v +MatchPartitionType=root +ReadOnly=1 - # setup factory reset - mkdir -p rootfs/boot/EFI/tools - cp ${pkgs.edk2-uefi-shell}/shell.efi rootfs/boot/EFI/tools/ +[Transfer] +Verify=no +EOF - cat <<EOF > rootfs/boot/EFI/tools/factoryreset.nsh - setvar FactoryReset -guid 8cf2644b-4b0b-428f-9387-6d876050dc67 -nv -rt =%1 - reset - EOF +# Initial partitioning +cat <<EOF > init.repart.d/10-root.conf +[Partition] +Type=root +Format=erofs +Minimize=best +CopyFiles=/rootfs:/ +Verity=data +VerityMatchKey=root +SplitName=root +EOF - cat <<EOF > rootfs/boot/loader/entries/factoryreset.conf - title Enable Factory Reset - options -nostartup -nomap - options \EFI\tools\factoryreset.nsh L"t" - efi EFI/tools/shell.efi - EOF +cat <<EOF > init.repart.d/20-root-verity.conf +[Partition] +Type=root-verity +Verity=hash +VerityMatchKey=root +Minimize=best +SplitName=verity +EOF - echo "timeout 2" > rootfs/boot/loader/loader.conf +#TODO: Add verity signature partition - # install UKI - cp patos_${version}.efi rootfs/boot/EFI/Linux +${patosPkgs.systemd}/usr/bin/systemd-repart \ + --no-pager \ + --empty=create \ + --size=auto \ + --definitions=./init.repart.d \ + --split=true \ + --json=pretty \ + --root=$out \ + patos_$version.raw > init-repart-output.json && rm -f patos_$version.raw - # Final partitioning - cat <<EOF > final.repart.d/10-esp.conf - [Partition] - Type=esp - Format=vfat - SizeMinBytes=128M - SizeMaxBytes=128M - CopyFiles=/rootfs/boot:/ - EOF +roothash=$(jq -r '.[0].roothash' init-repart-output.json) +rootPart=$(jq -r '.[0].split_path' init-repart-output.json) +rootUuid=$(jq -r '.[0].uuid' init-repart-output.json) - cat <<EOF > final.repart.d/20-root.conf - [Partition] - Type=root - Label=root-${version} - CopyBlocks=/$rootPart - UUID=$rootUuid - SizeMinBytes=64M - SizeMaxBytes=64M - ReadOnly=1 - EOF +verityPart=$(jq -r '.[1].split_path' init-repart-output.json) +verityUuid=$(jq -r '.[1].uuid' init-repart-output.json) - cat <<EOF > final.repart.d/22-root-verity.conf - [Partition] - Type=root-verity - Label=verity-${version} - CopyBlocks=/$verityPart - UUID=$verityUuid - ReadOnly=1 - EOF +ln -sf patos_$version.verity.raw patos_${version}_$verityUuid.verity +ln -sf patos_$version.root.raw patos_${version}_$rootUuid.root - # finalize image ready for boot - ${patosPkgs.systemd}/usr/bin/systemd-repart \ - --no-pager \ - --empty=create \ - --size=auto \ - --definitions=./final.repart.d \ - --root=$out \ - patos_${version}.img > final-repart-output.json +${patosPkgs.systemd}/usr/bin/ukify build \ + --linux ${patosPkgs.kernel}/bzImage \ + --initrd ${patosPkgs.initrd}/initrd.xz \ + $microcode \ + --os-release @rootfs/etc/os-release \ + --cmdline "$kernelCmdLine roothash=$roothash" \ + -o patos_${version}.efi - rm -rf rootfs init.repart.d final.repart.d *.json - sha256sum *.root *.verity *.efi *.tar.xz > SHA256SUMS +# install ESP +SYSTEMD_RELAX_ESP_CHECKS=1 ${patosPkgs.systemd}/usr/bin/bootctl install --root ./rootfs --esp-path /boot - popd - '' +# setup factory reset +mkdir -p rootfs/boot/EFI/tools +cp ${pkgs.edk2-uefi-shell}/shell.efi rootfs/boot/EFI/tools/ + +cat <<EOF > rootfs/boot/EFI/tools/factoryreset.nsh +setvar FactoryReset -guid 8cf2644b-4b0b-428f-9387-6d876050dc67 -nv -rt =%1 +reset +EOF + +cat <<EOF > rootfs/boot/loader/entries/factoryreset.conf +title Enable Factory Reset +options -nostartup -nomap +options \EFI\tools\factoryreset.nsh L"t" +efi EFI/tools/shell.efi +EOF + +echo "timeout 2" > rootfs/boot/loader/loader.conf + +# install UKI +cp patos_${version}.efi rootfs/boot/EFI/Linux + +# Final partitioning +cat <<EOF > final.repart.d/10-esp.conf +[Partition] +Type=esp +Format=vfat +SizeMinBytes=128M +SizeMaxBytes=128M +CopyFiles=/rootfs/boot:/ +EOF + +cat <<EOF > final.repart.d/20-root.conf +[Partition] +Type=root +Label=root-${version} +CopyBlocks=/$rootPart +UUID=$rootUuid +SizeMinBytes=64M +SizeMaxBytes=64M +ReadOnly=1 +EOF + +cat <<EOF > final.repart.d/22-root-verity.conf +[Partition] +Type=root-verity +Label=verity-${version} +CopyBlocks=/$verityPart +UUID=$verityUuid +ReadOnly=1 +EOF + +# finalize image ready for boot +${patosPkgs.systemd}/usr/bin/systemd-repart \ + --no-pager \ + --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 +sha256sum *.root *.verity *.efi *.tar.xz > SHA256SUMS + +popd +'' diff --git a/pkgs/kernel/default.nix b/pkgs/kernel/default.nix index a5f24db..27e4055 100644 --- a/pkgs/kernel/default.nix +++ b/pkgs/kernel/default.nix @@ -1,7 +1,7 @@ { pkgs }: let - version = "6.13.7"; - hash = "sha256-Ojm2IDi3rC9D0mofhLQoPhl4BOHoF61jfpo9h0xHgB0="; + version = "6.14.8"; + hash = "sha256-YrEuzTB1o1frMgk1ZX3oTgFVKANxfa04P6fMOqSqKQU="; in (pkgs.callPackage ./manual-config.nix { }) { version = "${version}-patos1"; diff --git a/pkgs/kexec-tools/default.nix b/pkgs/kexec-tools/default.nix index 4ba15ba..7454821 100644 --- a/pkgs/kexec-tools/default.nix +++ b/pkgs/kexec-tools/default.nix @@ -14,8 +14,8 @@ stdenv.mkDerivation { src = fetchFromGitHub { owner = "horms"; repo = "kexec-tools"; - rev = "a7fcd424c4c80dea5a2fd5ffa274ffeb8129c790"; - hash = "sha256-QKE+KCkueA21zNunTMidP9OuZaw0IG5tFDF4UJITTTQ="; + rev = "v2.0.31"; + hash = "sha256-Tgmc8mFlmzzRj7tEaBes7Udw4fRl6cSfe76iPNa3Ffs="; }; dontPatchShebangs = true; diff --git a/pkgs/lvm2/default.nix b/pkgs/lvm2/default.nix index f211e26..8d18663 100644 --- a/pkgs/lvm2/default.nix +++ b/pkgs/lvm2/default.nix @@ -1,5 +1,6 @@ { stdenv, + pkgs, fetchurl, lib, pkg-config, @@ -7,17 +8,11 @@ udev, }: -stdenv.mkDerivation rec { +stdenv.mkDerivation { pname = "lvm2"; - version = "2.03.30"; + version = pkgs.lvm2.version; - src = fetchurl { - urls = [ - "https://mirrors.kernel.org/sourceware/lvm2/LVM2.${version}.tgz" - "ftp://sourceware.org/pub/lvm2/LVM2.${version}.tgz" - ]; - hash = "sha256-rXar7LjciHcz4GxEnLmt0Eo1BvnweAwSiBem4aF87AU="; - }; + src = pkgs.lvm2.src; nativeBuildInputs = [ pkg-config diff --git a/pkgs/openssl/default.nix b/pkgs/openssl/default.nix index bc833cc..08c1309 100644 --- a/pkgs/openssl/default.nix +++ b/pkgs/openssl/default.nix @@ -1,5 +1,6 @@ { lib, + pkgs, stdenv, fetchurl, perl, @@ -18,13 +19,9 @@ stdenv.mkDerivation rec { pname = "openssl"; - version = "3.4.1"; - hash = "sha256-ACotazC1i/S+pGxDvdljZar42qbEKHgqpP7uBtoZffM="; + version = pkgs.openssl.version; - src = fetchurl { - url = "https://github.com/openssl/openssl/releases/download/openssl-${version}/openssl-${version}.tar.gz"; - hash = hash; - }; + src = pkgs.openssl.src; outputs = [ "out" ]; diff --git a/pkgs/rootfs/mkrootfs.nix b/pkgs/rootfs/mkrootfs.nix index 235a70a..bda4c7d 100644 --- a/pkgs/rootfs/mkrootfs.nix +++ b/pkgs/rootfs/mkrootfs.nix @@ -21,11 +21,12 @@ runCommand "patos-rootfs" '' ### create directory structure mkdir -p $out/etc/repart.d $out/dev $out/proc $out/sys \ - $out/tmp $out/root $out/run $out/boot $out/mnt $out/home $out/srv $out/var/tmp + $out/tmp $out/root $out/run $out/boot $out/mnt $out/home $out/srv $out/var ln -sf /usr/bin $out/bin ln -sf /usr/bin $out/sbin ln -sf /usr/lib $out/lib ln -sf /usr/lib $out/lib64 +ln -sf /tmp $out/var/tmp ln -sf ../proc/self/mounts $out/etc/mtab ### install systemd diff --git a/pkgs/systemd/default.nix b/pkgs/systemd/default.nix index a1cb314..fea417a 100644 --- a/pkgs/systemd/default.nix +++ b/pkgs/systemd/default.nix @@ -7,7 +7,7 @@ ... }: let - version = "257.4"; + version = "257.6"; # Use the command below to update `releaseTimestamp` on every (major) version # change. More details in the commentary at mesonFlags. @@ -27,7 +27,7 @@ stdenv.mkDerivation (finalAttrs: { owner = "systemd"; repo = "systemd"; rev = "v${version}"; - hash = "sha256-6rxJUYRq785U6aik5VhQRqG+Ss67lBB6T3eQF+tkyhk="; + hash = "sha256-mn/JB/nrOz2TOobu2d+XBH2dVH3vn/HPvWN4Zz6s+SM="; }; patches = [ ./skip-verify-esp.patch ]; diff --git a/pkgs/tpm2-tools/default.nix b/pkgs/tpm2-tools/default.nix index f447fe6..4bb14c1 100644 --- a/pkgs/tpm2-tools/default.nix +++ b/pkgs/tpm2-tools/default.nix @@ -1,5 +1,6 @@ { stdenv, + pkgs, fetchurl, lib, pandoc, @@ -10,19 +11,17 @@ libuuid, }: -stdenv.mkDerivation rec { +stdenv.mkDerivation { pname = "tpm2-tools"; - version = "5.7"; + version = pkgs.tpm2-tools.version; - src = fetchurl { - url = "https://github.com/tpm2-software/${pname}/releases/download/${version}/${pname}-${version}.tar.gz"; - sha256 = "sha256-OBDTa1B5JW9PL3zlUuIiE9Q7EDHBMVON+KLbw8VwmDo="; - }; + src = pkgs.tpm2-tools.src; nativeBuildInputs = [ pandoc pkg-config ]; + buildInputs = [ curl openssl diff --git a/pkgs/tpm2-tss/default.nix b/pkgs/tpm2-tss/default.nix index 5e23100..5a6477a 100644 --- a/pkgs/tpm2-tss/default.nix +++ b/pkgs/tpm2-tss/default.nix @@ -1,5 +1,6 @@ { stdenv, + pkgs, lib, fetchFromGitHub, autoreconfHook, @@ -19,14 +20,9 @@ stdenv.mkDerivation rec { pname = "tpm2-tss"; - version = "4.1.3"; + version = pkgs.tpm2-tss.version; - src = fetchFromGitHub { - owner = "tpm2-software"; - repo = pname; - rev = version; - hash = "sha256-BP28utEUI9g1VNv3lCXuiKrDtEImFQxxZfIjLiE3Wr8="; - }; + src = pkgs.tpm2-tss.src; patches = [ ./no-shadow.patch