On 10/28/25 08:57, Alyssa Ross wrote:
Demi Marie Obenour <demiobenour@gmail.com> writes:
This prevents lengthy and pointless scans of large image files. dontFixup is added to the derivations that already used unsafeDiscardReferences. Both dontFixup and unsafeDiscardReferences are added to a derivation that builds an ext4 filesystem image.
Signed-off-by: Demi Marie Obenour <demiobenour@gmail.com> --- host/initramfs/default.nix | 3 +++ host/rootfs/default.nix | 1 + img/app/default.nix | 2 ++ release/checks/integration/default.nix | 2 ++ release/combined/default.nix | 3 +++ release/combined/eosimages.nix | 1 + release/live/default.nix | 2 ++ vm-lib/make-vm.nix | 1 + vm/sys/net/default.nix | 2 ++ 9 files changed, 17 insertions(+)
Good idea!
Thank you!
diff --git a/release/checks/integration/default.nix b/release/checks/integration/default.nix index 570918613e083b0c2d7c82486544b6405ae5ea89..582a4be8df3098ddaf318b7dac60690c2f8b2304 100644 --- a/release/checks/integration/default.nix +++ b/release/checks/integration/default.nix @@ -37,6 +37,8 @@ let
userData = runCommand "user-data.img" { nativeBuildInputs = [ e2fsprogs tar2ext4 ]; + unsafeDiscardReferences = true; + dontFixup = true; } '' tar -Pcvf root.tar \ --transform=s,^${appimage},test.appimage, ${appimage} \
This is not correct, because 1) unsafeDiscardReferences is an attribute set; 2) it doesn't do anything without __structuredAttrs.
https://nix.dev/manual/nix/2.26/language/advanced-attributes#adv-attr-unsafe...
So I'm going to make a standalone commit first that adds __structuredAttrs and unsafeDiscardReferences here, and then apply the rest of this. I'll also tweak it to group __structuredAttrs, unsafeDiscardReferences, and dontFixup, so it's clear they should be applied together if being copied.
That worked great! I should read the Nix manual next time. -- Sincerely, Demi Marie Obenour (she/her/hers)