From 96c5a1f75766cc6e173c4aa5cb536dc63b8fd795 Mon Sep 17 00:00:00 2001 From: Stefan Frijters Date: Fri, 24 Apr 2026 11:02:35 +0200 Subject: [PATCH] build-support/vm: fix fillDiskWithDebs After __structuredAttrs was enabled in runInLinuxVM, the structure of 'debs' matters. The current implementation uses some IFS tricks so we just flatten into a string. Future improvements could include treating debs as a list in a more structured way. --- pkgs/build-support/vm/default.nix | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/pkgs/build-support/vm/default.nix b/pkgs/build-support/vm/default.nix index 68ec5189177e..f74fef9f3b63 100644 --- a/pkgs/build-support/vm/default.nix +++ b/pkgs/build-support/vm/default.nix @@ -730,7 +730,9 @@ let memSize ; - debs = (lib.intersperse "|" debs); + # Flatten this into string explicitly to allow IFS tricks below to work, + # and support structuredAttrs + debsInterspersed = toString (lib.intersperse "|" debs); preVM = createEmptyImage { inherit size fullName; }; @@ -749,7 +751,7 @@ let # (which have lots of circular dependencies) from barfing. echo "unpacking Debs..." - for deb in $debs; do + for deb in $debsInterspersed; do if test "$deb" != "|"; then echo "$deb..." dpkg-deb --extract "$deb" /mnt @@ -778,7 +780,7 @@ let oldIFS="$IFS" IFS="|" - for component in $debs; do + for component in $debsInterspersed; do IFS="$oldIFS" echo echo ">>> INSTALLING COMPONENT: $component"