From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from atuin.qyliss.net (localhost [IPv6:::1]) by atuin.qyliss.net (Postfix) with ESMTP id 9634A1B53B; Wed, 19 Nov 2025 08:21:15 +0000 (UTC) Received: by atuin.qyliss.net (Postfix, from userid 993) id 575AA1B4B4; Wed, 19 Nov 2025 08:21:12 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 4.0.1 (2024-03-26) on atuin.qyliss.net X-Spam-Level: X-Spam-Status: No, score=-0.1 required=3.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,DMARC_PASS,FREEMAIL_FROM,RCVD_IN_DNSWL_NONE, SPF_HELO_NONE autolearn=unavailable autolearn_force=no version=4.0.1 Received: from mail-yw1-x112b.google.com (mail-yw1-x112b.google.com [IPv6:2607:f8b0:4864:20::112b]) by atuin.qyliss.net (Postfix) with ESMTPS id 9B42E1B4B3 for ; Wed, 19 Nov 2025 08:21:11 +0000 (UTC) Received: by mail-yw1-x112b.google.com with SMTP id 00721157ae682-787f28f89faso61298397b3.1 for ; Wed, 19 Nov 2025 00:21:10 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1763540470; x=1764145270; darn=spectrum-os.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=2GcQLHGGYZPatploffwnGJ8ytVgOZtB+bdbfyaLREN4=; b=Jj4SuFCcey47BUr4/MszxVRoT96VbVIwK+/XLh9/T86U3AztiRKmJPak5Fwc5tvJ7u lkUHxRFA1EZZ+24qrYA3hHCD4RVf8bzbOb3c/ZfUCsZqV5g0F19N7oPmwr/4vBuXrR1X fgZGOpEXUx/bwd02LpSLmzS9w6li5yKJH8luoSuQ1LJwQCIXYSnp3uuL9pvOOOXd89su CQ8RJO58hqmuUZOdclx7mNriRkxyyUz4Me8y6u5UUxecAcHn3ai1Vo+x6qoH2z1O2Jov azTVJw1/XzG8eiuhyLVDJdNEOASeTduRRUl01QS+5Ex77Sro+80UhUSbSnqq9B/I1/QQ pgdw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1763540470; x=1764145270; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=2GcQLHGGYZPatploffwnGJ8ytVgOZtB+bdbfyaLREN4=; b=biHnycOX1fTh0Lt/uQhheJcEN3s+oTVxPwzj7lMOl8ngTRL3y+WwvAGPelAKf6kHsg 85NSAGqdQJQjuHvZZPg/0NLg3wl4c2ET331h5Ji3j5wRnNq87gX8TnOctGiwssWxdD3R 9fee2wdo/GHwMlLfhuRGcizZ7KXGeNYWjZ3r57jb3r+taZSs1dTQxg0AEQR/Q+qxB7Ri hLZskJXD/XAHfLh3+00fvg/nAwIEJ0E0YEVJcVb+SGT7gUGSs/Y31EIZz+uqa6Y74tjH NHKVg8c5CMciGVFoGJc6HibB70aPne39Jig5RujVwvOmzfyRNnvy1Em08+VtWCZK/zja mHtg== X-Gm-Message-State: AOJu0YxTduuL0F3lUIwueHbsSdoDNXlBEHZHL+6Hos23VEDK+RAe+KEH KQEHyaMDk657pFrVjs1mmH0U5k9Mt91nGeJxYL6yccV/4S+3wd1a+I3nKbucJQ== X-Gm-Gg: ASbGncsHnhLaAeaxGcVIcL1xoaKT2vAJlpTMhAI1hTL51Y05uowTy8Aig87o5MP3Tpl O2PkrUuLyRh77hbarK8wami1SqvrE2JEhplq9BQP105ixY8fgS82ahCIOUImP3C8oRQCe+6MTWf ee1fVX7Xs5ADW2mU/xQEpt1huq44ab7fHFR8w8vfz6xEeu+5chqPJ5PAhhc2U1AITeAn+wv2XXC Ml/bejGIg4KPRrVXuo56Px74iU1BCSlrz9UOhJc0aVwhgSpebP3mb5PIMHUmCi2oYfeeIf8sJh+ jeWgUoiq1qlvZ7ygdlyXydwrnaxua1529DbTOFSVJS3sfgYDfwqqx68zj1tr+CZOk5a706+aXbH GM0h67NWgt3IOwd/hywxKmaV6fhT2dOiCcZMGg1rQiWsP9ErxbmbzBCvMmZgWlTvlD+amfxuOEg YbEpVEGpzmbEP6WV5cGYa/lvpvnxhQzwgOdDu86h1DglqWCn6DlEljo20jseinllFmzXFZ7hm62 M/WCgh8m0O6kLm30i0xnVChDE8Oxk2CAyc9HetqJYWeMWY6Zfh18XcL X-Google-Smtp-Source: AGHT+IGe+se8yVRJpo2zE/z4hjpE4LzkRDktHAL/5/eD+d6tnrV/sS4X+hcy7XsfYyFbfuL6ZalzKQ== X-Received: by 2002:a05:690c:9304:b0:786:7797:6d73 with SMTP id 00721157ae682-78929f0948cmr137184297b3.40.1763540469413; Wed, 19 Nov 2025 00:21:09 -0800 (PST) Received: from localhost.localdomain (h96-60-249-169.cncrtn.broadband.dynamic.tds.net. [96.60.249.169]) by smtp.gmail.com with UTF8SMTPSA id 00721157ae682-78a6cfdb0d3sm5335867b3.36.2025.11.19.00.21.08 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 19 Nov 2025 00:21:08 -0800 (PST) From: Demi Marie Obenour Date: Wed, 19 Nov 2025 03:18:24 -0500 Subject: [PATCH v3 01/14] host/rootfs: Install all programs from util-linuxMinimal MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit Message-Id: <20251119-updates-v3-1-b88a99915509@gmail.com> References: <20251119-updates-v3-0-b88a99915509@gmail.com> In-Reply-To: <20251119-updates-v3-0-b88a99915509@gmail.com> To: Spectrum OS Development X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=ed25519-sha256; t=1763540303; l=6164; i=demiobenour@gmail.com; s=20250729; h=from:subject:message-id; bh=Z5aSjBsUjfbB7vOjlYLM8xpH25iw/zkpmrCJki8utKM=; b=VrMYrcjQIUJs6UP2yiGSbgm2urOP5KvpXRsGTj5H9l2FI9j1X5uBADWKJAIz1aRwY3OeGRYu5 vNqXKRPly+bC2xPCmLvQVKMqWhNNuRlEgBU4fY4ZRaM0CE0qadqSRLd X-Developer-Key: i=demiobenour@gmail.com; a=ed25519; pk=X57Q4/YQDj9t4SBeKaDwvXYKB6quZJVx/DE2Ly2out0= Message-ID-Hash: SL7M4WKVTJLQBGISFTXGBVDDKVRNDFQE X-Message-ID-Hash: SL7M4WKVTJLQBGISFTXGBVDDKVRNDFQE X-MailFrom: demiobenour@gmail.com X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; header-match-devel.spectrum-os.org-0; header-match-devel.spectrum-os.org-1; header-match-devel.spectrum-os.org-2; header-match-devel.spectrum-os.org-3; header-match-devel.spectrum-os.org-4; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header CC: Demi Marie Obenour , Alyssa Ross X-Mailman-Version: 3.3.9 Precedence: list List-Id: Patches and low-level development discussion Archived-At: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: 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 --- Changes since v2: - Split installation of util-linux and of systemd to separate patches. --- 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 b/host/rootfs/busybox-config new file mode 100644 index 0000000000000000000000000000000000000000..f2fd5fcab4141ea63c663e433412a253d5235aab --- /dev/null +++ b/host/rootfs/busybox-config @@ -0,0 +1,134 @@ +CONFIG_ADDPART n +CONFIG_AGETTY n +CONFIG_BITS n +CONFIG_BLKDISCARD n +CONFIG_BLKID n +CONFIG_BLKPR n +CONFIG_BLKZONE n +CONFIG_BLOCKDEV n +CONFIG_CAL n +CONFIG_CHATTR n +CONFIG_CHCPU n +CONFIG_CHMEM n +CONFIG_CHOOM n +CONFIG_CHRT n +CONFIG_COLCRT n +CONFIG_COLRM n +CONFIG_COLUMN n +CONFIG_CORESCHED n +CONFIG_CTRLALTDEL n +CONFIG_DELPART n +CONFIG_DEPMOD n +CONFIG_DMESG n +CONFIG_EJECT n +CONFIG_ENOSYS n +CONFIG_EXCH n +CONFIG_FADVISE n +CONFIG_FALLOCATE n +CONFIG_FDISK n +CONFIG_FINCORE n +CONFIG_FINDFS n +CONFIG_FINDMNT n +CONFIG_FLOCK n +CONFIG_FSCK n +CONFIG_FSCK_CRAMFS n +CONFIG_FSCK_MINIX n +CONFIG_FSFREEZE n +CONFIG_FSTRIM n +CONFIG_GETOPT n +CONFIG_HALT n +CONFIG_HARDLINK n +CONFIG_HD n +CONFIG_HEXDUMP n +CONFIG_HWCLOCK n +CONFIG_I386 n +CONFIG_INIT n +CONFIG_INSMOD n +CONFIG_IONICE n +CONFIG_IP n +CONFIG_IPCMK n +CONFIG_IPCRM n +CONFIG_IPCS n +CONFIG_ISOSIZE n +CONFIG_KILL n +CONFIG_LAST n +CONFIG_LASTB n +CONFIG_LDATTACH n +CONFIG_LINUX32 n +CONFIG_LINUX64 n +CONFIG_LOGGER n +CONFIG_LOOK n +CONFIG_LOSETUP n +CONFIG_LSATTR n +CONFIG_LSBLK n +CONFIG_LSCLOCKS n +CONFIG_LSCPU n +CONFIG_LSFD n +CONFIG_LSIPC n +CONFIG_LSIRQ n +CONFIG_LSLOCKS n +CONFIG_LSLOGINS n +CONFIG_LSMEM n +CONFIG_LSMOD n +CONFIG_LSNS n +CONFIG_MCOOKIE n +CONFIG_MESG n +CONFIG_MKE2FS n +CONFIG_MKFS n +CONFIG_MKFS_BFS n +CONFIG_MKFS_CRAMFS n +CONFIG_MKFS_EXT2 n +CONFIG_MKFS_MINIX n +CONFIG_MKSWAP n +CONFIG_MODINFO n +CONFIG_MODPROBE n +CONFIG_MOUNT n +CONFIG_MOUNTPOINT n +CONFIG_NAMEI n +CONFIG_NOLOGIN n +CONFIG_NSENTER n +CONFIG_PARTX n +CONFIG_PIPESZ n +CONFIG_PIVOT_ROOT n +CONFIG_POWEROFF n +CONFIG_PRLIMIT n +CONFIG_READPROFILE n +CONFIG_REBOOT n +CONFIG_RENAME n +CONFIG_RENICE n +CONFIG_RESIZEPART n +CONFIG_REV n +CONFIG_RFKILL n +CONFIG_RMMOD n +CONFIG_RTCWAKE n +CONFIG_SCRIPT n +CONFIG_SCRIPTLIVE n +CONFIG_SCRIPTREPLAY n +CONFIG_SETARCH n +CONFIG_SETPGID n +CONFIG_SETPRIV n +CONFIG_SETSID n +CONFIG_SFDISK n +CONFIG_SHUTDOWN n +CONFIG_SULOGIN n +CONFIG_SWAPLABEL n +CONFIG_SWAPOFF n +CONFIG_SWAPON n +CONFIG_SWITCH_ROOT n +CONFIG_TASKSET n +CONFIG_UCLAMPSET n +CONFIG_UMOUNT n +CONFIG_UNAME26 n +CONFIG_UNSHARE n +CONFIG_UTMPDUMP n +CONFIG_UUIDD n +CONFIG_UUIDGEN n +CONFIG_UUIDPARSE n +CONFIG_WAITPID n +CONFIG_WALL n +CONFIG_WDCTL n +CONFIG_WHEREIS n +CONFIG_WIPEFS n +CONFIG_WRITE n +CONFIG_X86_64 n +CONFIG_ZRAMCTL n 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 1578155fa0fb9a4df3fb4884e21ed7d8d8f821dc..84b536eda397adfab0fbb0122a5765571d7d678e 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/* ${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.52.0