* [PATCH 1/3] host/rootfs: get rid of pkgsGui
@ 2025-11-27 16:41 Alyssa Ross
2025-11-27 16:41 ` [PATCH 2/3] pkgs: pkgsMusl: fix splicing Alyssa Ross
` (2 more replies)
0 siblings, 3 replies; 5+ messages in thread
From: Alyssa Ross @ 2025-11-27 16:41 UTC (permalink / raw)
To: devel; +Cc: Yureka Lilian
The original purpose of pkgsGui was to have a dynamically linked
package set that used libudev-zero. Now we don't use libudev-zero on
the host, so it's no longer necessary. The one remaining override can
be moved into the overlay until it's upstreamed[1].
Link: https://gitlab.freedesktop.org/accountsservice/accountsservice/-/merge_requests/162 [1]
Signed-off-by: Alyssa Ross <hi@alyssa.is>
---
host/rootfs/default.nix | 31 +++++++++++--------------------
pkgs/overlay.nix | 6 ++++++
2 files changed, 17 insertions(+), 20 deletions(-)
diff --git a/host/rootfs/default.nix b/host/rootfs/default.nix
index f7974a4..2af6cbe 100644
--- a/host/rootfs/default.nix
+++ b/host/rootfs/default.nix
@@ -18,19 +18,10 @@ pkgsStatic.callPackage (
let
inherit (nixosAllHardware.config.hardware) firmware;
inherit (lib)
- concatMapStringsSep concatStrings escapeShellArgs fileset optionalAttrs
- mapAttrsToList systems trivial;
+ concatMapStringsSep concatStrings escapeShellArgs fileset mapAttrsToList
+ trivial;
- pkgsGui = pkgsMusl.extend (
- _: super:
- (optionalAttrs (systems.equals pkgsMusl.stdenv.hostPlatform super.stdenv.hostPlatform) {
- flatpak = super.flatpak.override {
- withMalcontent = false;
- };
- })
- );
-
- foot = pkgsGui.foot.override { allowPgo = false; };
+ foot = pkgsMusl.foot.override { allowPgo = false; };
packages = [
cloud-hypervisor cryptsetup dbus execline inotify-tools iproute2
@@ -42,8 +33,8 @@ let
extraConfig = builtins.readFile ./busybox-config;
})
- # Take kmod from pkgsGui since we use pkgsGui.kmod.lib below anyway.
- ] ++ (with pkgsGui; [ cosmic-files crosvm foot fuse3 kmod systemd ]);
+ # Take kmod from pkgsMusl since we use pkgsMusl.kmod.lib below anyway.
+ ] ++ (with pkgsMusl; [ cosmic-files crosvm foot fuse3 kmod systemd ]);
nixosAllHardware = nixos ({ modulesPath, ... }: {
imports = [ (modulesPath + "/profiles/all-hardware.nix") ];
@@ -64,7 +55,7 @@ let
# https://inbox.vuxu.org/musl/20251017-dlopen-use-rpath-of-caller-dso-v1-1-46c69eda1473@iscas.ac.cn/
usrPackages = [
appvm kernel.modules firmware netvm
- ] ++ (with pkgsGui; [ dejavu_fonts kmod.lib mesa westonLite ]);
+ ] ++ (with pkgsMusl; [ dejavu_fonts kmod.lib mesa westonLite ]);
appvms = {
appvm-firefox = callSpectrumPackage ../../vm/app/firefox.nix {};
@@ -88,16 +79,16 @@ let
# Weston doesn't support SVG icons.
inkscape -w 20 -h 20 \
-o $out/usr/share/icons/hicolor/20x20/apps/com.system76.CosmicFiles.png \
- ${pkgsGui.cosmic-files}/share/icons/hicolor/24x24/apps/com.system76.CosmicFiles.svg
+ ${pkgsMusl.cosmic-files}/share/icons/hicolor/24x24/apps/com.system76.CosmicFiles.svg
ln -st $out/usr/bin \
${concatMapStringsSep " " (p: "${p}/bin/*") packages} \
- ${pkgsGui.xdg-desktop-portal}/libexec/xdg-document-portal \
- ${pkgsGui.xdg-desktop-portal-gtk}/libexec/xdg-desktop-portal-gtk
+ ${pkgsMusl.xdg-desktop-portal}/libexec/xdg-document-portal \
+ ${pkgsMusl.xdg-desktop-portal-gtk}/libexec/xdg-desktop-portal-gtk
ln -st $out/usr/share/dbus-1 \
${dbus}/share/dbus-1/session.conf
ln -st $out/usr/share/dbus-1/services \
- ${pkgsGui.xdg-desktop-portal-gtk}/share/dbus-1/services/org.freedesktop.impl.portal.desktop.gtk.service
+ ${pkgsMusl.xdg-desktop-portal-gtk}/share/dbus-1/services/org.freedesktop.impl.portal.desktop.gtk.service
${concatStrings (mapAttrsToList (name: path: ''
ln -s ${path} $out/usr/lib/spectrum/vm/${name}
@@ -138,7 +129,7 @@ stdenvNoCC.mkDerivation {
dontFixup = true;
passthru = {
- inherit appvm firmware kernel nixosAllHardware packagesSysroot pkgsGui;
+ inherit appvm firmware kernel nixosAllHardware packagesSysroot;
};
meta = with lib; {
diff --git a/pkgs/overlay.nix b/pkgs/overlay.nix
index 0ca196c..fdddae0 100644
--- a/pkgs/overlay.nix
+++ b/pkgs/overlay.nix
@@ -4,5 +4,11 @@
(final: super: {
cloud-hypervisor = import ./cloud-hypervisor { inherit final super; };
+ flatpak = super.flatpak.override (
+ final.lib.optionalAttrs final.stdenv.hostPlatform.isMusl {
+ withMalcontent = false;
+ }
+ );
+
skawarePackages = import ./skaware-packages { inherit final super; };
})
base-commit: c43e5c63a028994d5f66a15db19f415bf3cb7736
--
2.51.0
^ permalink raw reply related [flat|nested] 5+ messages in thread
* [PATCH 2/3] pkgs: pkgsMusl: fix splicing
2025-11-27 16:41 [PATCH 1/3] host/rootfs: get rid of pkgsGui Alyssa Ross
@ 2025-11-27 16:41 ` Alyssa Ross
2025-11-27 16:41 ` [PATCH 3/3] host/rootfs: stop using pkgsStatic Alyssa Ross
2025-11-28 10:43 ` [PATCH 1/3] host/rootfs: get rid of pkgsGui Alyssa Ross
2 siblings, 0 replies; 5+ messages in thread
From: Alyssa Ross @ 2025-11-27 16:41 UTC (permalink / raw)
To: devel; +Cc: Yureka Lilian
Will allow us to get Spectrum packages inside pkgsMusl.callPackage,
like we currently do with pkgsStatic.
Signed-off-by: Alyssa Ross <hi@alyssa.is>
---
pkgs/default.nix | 1 +
1 file changed, 1 insertion(+)
diff --git a/pkgs/default.nix b/pkgs/default.nix
index cc60228..0d159c9 100644
--- a/pkgs/default.nix
+++ b/pkgs/default.nix
@@ -56,6 +56,7 @@ let
# the CLI easily.
inherit (pkgs) cloud-hypervisor dbus;
+ pkgsMusl = makeScopeWithSplicing pkgs.pkgsMusl;
pkgsStatic = makeScopeWithSplicing pkgs.pkgsStatic;
srcWithNix = fileset.difference
--
2.51.0
^ permalink raw reply related [flat|nested] 5+ messages in thread
* [PATCH 3/3] host/rootfs: stop using pkgsStatic
2025-11-27 16:41 [PATCH 1/3] host/rootfs: get rid of pkgsGui Alyssa Ross
2025-11-27 16:41 ` [PATCH 2/3] pkgs: pkgsMusl: fix splicing Alyssa Ross
@ 2025-11-27 16:41 ` Alyssa Ross
2025-11-28 10:43 ` Alyssa Ross
2025-11-28 10:43 ` [PATCH 1/3] host/rootfs: get rid of pkgsGui Alyssa Ross
2 siblings, 1 reply; 5+ messages in thread
From: Alyssa Ross @ 2025-11-27 16:41 UTC (permalink / raw)
To: devel; +Cc: Yureka Lilian
For as long as we're running mesa on the host, we'll need dynamic
linking, so let's at least stick to a single package set.
Since we're longer cross compiling, I've switched to taking inkscape
and xorg from the default package set. They're only used for
building, not installed in the image, so let's avoid having to build
their large musl closures.
Signed-off-by: Alyssa Ross <hi@alyssa.is>
---
host/rootfs/default.nix | 40 +++++++++++++++++++++-------------------
1 file changed, 21 insertions(+), 19 deletions(-)
diff --git a/host/rootfs/default.nix b/host/rootfs/default.nix
index 2af6cbe..50e03a3 100644
--- a/host/rootfs/default.nix
+++ b/host/rootfs/default.nix
@@ -4,15 +4,17 @@
import ../../lib/call-package.nix (
{ callSpectrumPackage, spectrum-build-tools, src
-, pkgsMusl, pkgsStatic, linux_latest
+, pkgsMusl, linux_latest, inkscape, xorg
}:
-pkgsStatic.callPackage (
+pkgsMusl.callPackage (
{ spectrum-host-tools
, lib, stdenvNoCC, nixos, runCommand, writeClosure, erofs-utils, s6-rc
-, busybox, cloud-hypervisor, cryptsetup, dbus, execline, inkscape
-, iproute2, inotify-tools, jq, mdevd, s6, s6-linux-init, socat
-, util-linuxMinimal, virtiofsd, xorg, xdg-desktop-portal-spectrum-host
+, busybox, cloud-hypervisor, cosmic-files, crosvm, cryptsetup
+, dejavu_fonts, dbus, execline, foot, fuse3, iproute2, inotify-tools
+, jq, kmod, mdevd, mesa, s6, s6-linux-init, socat, systemd
+, util-linuxMinimal, virtiofsd, westonLite, xdg-desktop-portal
+, xdg-desktop-portal-gtk, xdg-desktop-portal-spectrum-host
}:
let
@@ -21,20 +23,19 @@ let
concatMapStringsSep concatStrings escapeShellArgs fileset mapAttrsToList
trivial;
- foot = pkgsMusl.foot.override { allowPgo = false; };
-
packages = [
- cloud-hypervisor cryptsetup dbus execline inotify-tools iproute2
- jq mdevd s6 s6-linux-init s6-rc socat spectrum-host-tools
- util-linuxMinimal virtiofsd xdg-desktop-portal-spectrum-host
+ cloud-hypervisor cosmic-files crosvm cryptsetup dbus execline
+ fuse3 inotify-tools iproute2 jq kmod mdevd s6 s6-linux-init s6-rc
+ socat spectrum-host-tools systemd util-linuxMinimal virtiofsd
+ xdg-desktop-portal-spectrum-host
+
+ (foot.override { allowPgo = false; })
(busybox.override {
# Use a separate file as it is a bit too big.
extraConfig = builtins.readFile ./busybox-config;
})
-
- # Take kmod from pkgsMusl since we use pkgsMusl.kmod.lib below anyway.
- ] ++ (with pkgsMusl; [ cosmic-files crosvm foot fuse3 kmod systemd ]);
+ ];
nixosAllHardware = nixos ({ modulesPath, ... }: {
imports = [ (modulesPath + "/profiles/all-hardware.nix") ];
@@ -54,8 +55,9 @@ let
# It doesn't get picked up from libsystemd-shared.so's RUNPATH due to
# https://inbox.vuxu.org/musl/20251017-dlopen-use-rpath-of-caller-dso-v1-1-46c69eda1473@iscas.ac.cn/
usrPackages = [
- appvm kernel.modules firmware netvm
- ] ++ (with pkgsMusl; [ dejavu_fonts kmod.lib mesa westonLite ]);
+ appvm dejavu_fonts kmod.lib mesa westonLite kernel.modules
+ firmware netvm
+ ];
appvms = {
appvm-firefox = callSpectrumPackage ../../vm/app/firefox.nix {};
@@ -79,16 +81,16 @@ let
# Weston doesn't support SVG icons.
inkscape -w 20 -h 20 \
-o $out/usr/share/icons/hicolor/20x20/apps/com.system76.CosmicFiles.png \
- ${pkgsMusl.cosmic-files}/share/icons/hicolor/24x24/apps/com.system76.CosmicFiles.svg
+ ${cosmic-files}/share/icons/hicolor/24x24/apps/com.system76.CosmicFiles.svg
ln -st $out/usr/bin \
${concatMapStringsSep " " (p: "${p}/bin/*") packages} \
- ${pkgsMusl.xdg-desktop-portal}/libexec/xdg-document-portal \
- ${pkgsMusl.xdg-desktop-portal-gtk}/libexec/xdg-desktop-portal-gtk
+ ${xdg-desktop-portal}/libexec/xdg-document-portal \
+ ${xdg-desktop-portal-gtk}/libexec/xdg-desktop-portal-gtk
ln -st $out/usr/share/dbus-1 \
${dbus}/share/dbus-1/session.conf
ln -st $out/usr/share/dbus-1/services \
- ${pkgsMusl.xdg-desktop-portal-gtk}/share/dbus-1/services/org.freedesktop.impl.portal.desktop.gtk.service
+ ${xdg-desktop-portal-gtk}/share/dbus-1/services/org.freedesktop.impl.portal.desktop.gtk.service
${concatStrings (mapAttrsToList (name: path: ''
ln -s ${path} $out/usr/lib/spectrum/vm/${name}
--
2.51.0
^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [PATCH 3/3] host/rootfs: stop using pkgsStatic
2025-11-27 16:41 ` [PATCH 3/3] host/rootfs: stop using pkgsStatic Alyssa Ross
@ 2025-11-28 10:43 ` Alyssa Ross
0 siblings, 0 replies; 5+ messages in thread
From: Alyssa Ross @ 2025-11-28 10:43 UTC (permalink / raw)
To: Alyssa Ross, devel; +Cc: Yureka Lilian
This patch has been committed as d1621f414315657499a472d74236719a8ce98b9b,
which can be viewed online at
https://spectrum-os.org/git/spectrum/commit/?id=d1621f414315657499a472d74236719a8ce98b9b.
This is an automated message. Send comments/questions/requests to:
Alyssa Ross <hi@alyssa.is>
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH 1/3] host/rootfs: get rid of pkgsGui
2025-11-27 16:41 [PATCH 1/3] host/rootfs: get rid of pkgsGui Alyssa Ross
2025-11-27 16:41 ` [PATCH 2/3] pkgs: pkgsMusl: fix splicing Alyssa Ross
2025-11-27 16:41 ` [PATCH 3/3] host/rootfs: stop using pkgsStatic Alyssa Ross
@ 2025-11-28 10:43 ` Alyssa Ross
2 siblings, 0 replies; 5+ messages in thread
From: Alyssa Ross @ 2025-11-28 10:43 UTC (permalink / raw)
To: Alyssa Ross, devel; +Cc: Yureka Lilian
This patch has been committed as 009a56e76ca08c6e4189f428dd4c520d027ad064,
which can be viewed online at
https://spectrum-os.org/git/spectrum/commit/?id=009a56e76ca08c6e4189f428dd4c520d027ad064.
This is an automated message. Send comments/questions/requests to:
Alyssa Ross <hi@alyssa.is>
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2025-11-28 10:44 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-11-27 16:41 [PATCH 1/3] host/rootfs: get rid of pkgsGui Alyssa Ross
2025-11-27 16:41 ` [PATCH 2/3] pkgs: pkgsMusl: fix splicing Alyssa Ross
2025-11-27 16:41 ` [PATCH 3/3] host/rootfs: stop using pkgsStatic Alyssa Ross
2025-11-28 10:43 ` Alyssa Ross
2025-11-28 10:43 ` [PATCH 1/3] host/rootfs: get rid of pkgsGui Alyssa Ross
Code repositories for project(s) associated with this public inbox
https://spectrum-os.org/git/crosvm
https://spectrum-os.org/git/doc
https://spectrum-os.org/git/mktuntap
https://spectrum-os.org/git/nixpkgs
https://spectrum-os.org/git/spectrum
https://spectrum-os.org/git/ucspi-vsock
https://spectrum-os.org/git/www
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).