Demi Marie Obenour writes: > Busybox fdisk doesn't support GPT, only MBR. Busybox programs are also > often buggy, so use the util-linux version where possible. This > requires disabling a lot of Busybox applets, so move the Busybox config > to a separate file that Nix loads via builtins.readFile. > > Signed-off-by: Demi Marie Obenour > --- > host/rootfs/busybox-config | 134 +++++++++++++++++++++++++++++++++++++ > host/rootfs/busybox-config.license | 4 ++ > host/rootfs/default.nix | 36 +++------- > 3 files changed, 147 insertions(+), 27 deletions(-) > diff --git a/host/rootfs/busybox-config.license b/host/rootfs/busybox-config.license > new file mode 100644 > index 0000000000000000000000000000000000000000..ba50b647fbfac9b79ecb29f33a36c07d3e332ba2 > --- /dev/null > +++ b/host/rootfs/busybox-config.license > @@ -0,0 +1,4 @@ > +# SPDX-License-Identifier: MIT > +# SPDX-FileCopyrightText: 2021-2025 Alyssa Ross > +# SPDX-FileCopyrightText: 2022 Unikie > +# SPDX-FileCopyrightText: 2025 Demi Marie Obenour > diff --git a/host/rootfs/default.nix b/host/rootfs/default.nix > index eb6c64067091ef3802596ce581f82f322f5bfe34..aea2e46bb5998176eb6d9b8aef802ae270fdd28c 100644 > --- a/host/rootfs/default.nix > +++ b/host/rootfs/default.nix > @@ -38,25 +38,8 @@ let > virtiofsd xdg-desktop-portal-spectrum-host > > (busybox.override { > - extraConfig = '' > - CONFIG_CHATTR n > - CONFIG_DEPMOD n > - CONFIG_FINDFS n > - CONFIG_HALT n > - CONFIG_INIT n > - CONFIG_INSMOD n > - CONFIG_IP n > - CONFIG_LSATTR n > - CONFIG_LSMOD n > - CONFIG_MKE2FS n > - CONFIG_MKFS_EXT2 n > - CONFIG_MODINFO n > - CONFIG_MODPROBE n > - CONFIG_MOUNT n > - CONFIG_POWEROFF n > - CONFIG_REBOOT n > - CONFIG_RMMOD n > - ''; > + # Use a separate file as it is a bit too big. > + extraConfig = builtins.readFile ./busybox-config; > }) > > # Take kmod from pkgsGui since we use pkgsGui.kmod.lib below anyway. > @@ -96,6 +79,12 @@ let > mkdir -p $out/usr/bin $out/usr/share/dbus-1/services \ > $out/usr/share/icons/hicolor/20x20/apps > > + # lndir silently ignores existing links, so run it before ln > + # so that ln catches any duplicates. > + for pkg in ${escapeShellArgs usrPackages}; do > + lndir -ignorelinks -silent "$pkg" "$out/usr" > + done > + > # Weston doesn't support SVG icons. > inkscape -w 20 -h 20 \ > -o $out/usr/share/icons/hicolor/20x20/apps/com.system76.CosmicFiles.png \ > @@ -110,18 +99,11 @@ let > ln -st $out/usr/share/dbus-1/services \ > ${pkgsGui.xdg-desktop-portal-gtk}/share/dbus-1/services/org.freedesktop.impl.portal.desktop.gtk.service > > - for pkg in ${escapeShellArgs usrPackages}; do > - lndir -ignorelinks -silent "$pkg" "$out/usr" > - done > + ln -st "$out/usr/bin" ${util-linuxMinimal}/bin/* Why not just add it to packages? > > ${concatStrings (mapAttrsToList (name: path: '' > ln -s ${path} $out/usr/lib/spectrum/vm/${name} > '') appvms)} > - > - # TODO: this is a hack and we should just build the util-linux > - # programs we want. > - # https://lore.kernel.org/util-linux/87zgrl6ufb.fsf@alyssa.is/ > - ln -s ${util-linuxMinimal}/bin/{findfs,uuidgen,lsblk,mount} $out/usr/bin > ''; > in > > > -- > 2.51.2