patches and low-level development discussion
 help / color / mirror / code / Atom feed
From: Alyssa Ross <hi@alyssa.is>
To: devel@spectrum-os.org
Cc: colbyt <colby@colbyt.com>
Subject: [RFC PATCH 2/6] pkgs: cosmic-comp: support custom socket path
Date: Fri, 10 Jul 2026 21:59:03 +0200	[thread overview]
Message-ID: <20260710195907.98981-3-hi@alyssa.is> (raw)
In-Reply-To: <20260710195907.98981-1-hi@alyssa.is>

Signed-off-by: Alyssa Ross <hi@alyssa.is>
---

 pkgs/cosmic-comp/default.nix       |  15 +
 pkgs/cosmic-comp/socket-path.patch | 462 +++++++++++++++++++++++++++++
 pkgs/overlay.nix                   |   2 +
 3 files changed, 479 insertions(+)
 create mode 100644 pkgs/cosmic-comp/default.nix
 create mode 100644 pkgs/cosmic-comp/socket-path.patch

diff --git a/pkgs/cosmic-comp/default.nix b/pkgs/cosmic-comp/default.nix
new file mode 100644
index 00000000..243face9
--- /dev/null
+++ b/pkgs/cosmic-comp/default.nix
@@ -0,0 +1,15 @@
+# SPDX-FileCopyrightText: 2026 Alyssa Ross <hi@alyssa.is>
+# SPDX-License-Identifier: MIT
+
+import ../../lib/overlay-package.nix [ "cosmic-comp" ] ({ final, super }:
+
+super.cosmic-comp.overrideAttrs ({ patches ? [], ... }: {
+  patches = patches ++ [
+    ./socket-path.patch
+  ];
+
+  cargoDeps = final.rustPlatform.fetchCargoVendor {
+    inherit (final.cosmic-comp) src patches;
+    hash = "sha256-LQ6T0uJpRc3f5iMukut3f8GsMLt5Sd57ILY8+5b4Jdo=";
+  };
+}))
diff --git a/pkgs/cosmic-comp/socket-path.patch b/pkgs/cosmic-comp/socket-path.patch
new file mode 100644
index 00000000..47b730c9
--- /dev/null
+++ b/pkgs/cosmic-comp/socket-path.patch
@@ -0,0 +1,462 @@
+From e44410c5a173f92fac521b5ec82cc4d1c79824b7 Mon Sep 17 00:00:00 2001
+From: Alyssa Ross <hi@alyssa.is>
+Date: Fri, 26 Jun 2026 18:17:23 +0200
+Subject: [PATCH 1/2] Support nameless ListenSocketSources
+
+Only sockets created inside XDG_RUNTIME_DIR have names.  This is
+necessary as a step towards support for creating the Wayland socket at
+a specific absolute path.  Since the "socket" value was mostly used
+previously as the value of WAYLAND_DISPLAY for clients, I've renamed
+it to wayland_display, to make it clear that its value can be any
+value suitable for WAYLAND_DISPLAY: either a relative path in
+XDG_RUNTIME_DIR, or an absolute path.  Only in one place
+(kms/socket.rs) do we care which it is, so there we just check whether
+the path is absolute to know which ListeningSocketSource constructor
+to call.
+---
+ Cargo.lock                | 32 +++++++++++---------------------
+ Cargo.toml                | 12 +++++++++++-
+ src/backend/kms/socket.rs | 33 +++++++++++++++++----------------
+ src/dbus/mod.rs           |  2 +-
+ src/input/actions.rs      |  2 +-
+ src/lib.rs                | 18 +++++++++---------
+ src/session.rs            |  3 ++-
+ src/state.rs              |  8 ++++----
+ src/systemd.rs            |  2 +-
+ 9 files changed, 57 insertions(+), 55 deletions(-)
+
+diff --git a/Cargo.lock b/Cargo.lock
+index 1bc58958..5173e7b5 100644
+--- a/Cargo.lock
++++ b/Cargo.lock
+@@ -4797,7 +4797,7 @@ checksum = "67b1b7a3b5fe4f1376887184045fcf45c69e92af734b7aaddc05fb777b6fbd03"
+ [[package]]
+ name = "smithay"
+ version = "0.7.0"
+-source = "git+https://github.com/smithay/smithay.git?rev=8eb4076#8eb4076cad8705c56f5e3bac8577b83576b6ce76"
++source = "git+https://github.com/alyssais/smithay.git?tag=v0.7.0-cosmic-comp-1.2.0-spectrum-0#b05863561c466fd8f3fd51afe59dc7c0a18a1d95"
+ dependencies = [
+  "aliasable",
+  "appendlist",
+@@ -5811,8 +5811,7 @@ dependencies = [
+ [[package]]
+ name = "wayland-backend"
+ version = "0.3.15"
+-source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "2857dd20b54e916ec7253b3d6b4d5c4d7d4ca2c33c2e11c6c76a99bd8744755d"
++source = "git+https://github.com/alyssais/wayland-rs?tag=release-2026-03-30-spectrum-0#643927b7a936dcd474b5c073aa6a8d9b185cd6eb"
+ dependencies = [
+  "cc",
+  "downcast-rs",
+@@ -5825,8 +5824,7 @@ dependencies = [
+ [[package]]
+ name = "wayland-client"
+ version = "0.31.14"
+-source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "645c7c96bb74690c3189b5c9cb4ca1627062bb23693a4fad9d8c3de958260144"
++source = "git+https://github.com/alyssais/wayland-rs?tag=release-2026-03-30-spectrum-0#643927b7a936dcd474b5c073aa6a8d9b185cd6eb"
+ dependencies = [
+  "bitflags 2.11.0",
+  "rustix 1.1.4",
+@@ -5848,8 +5846,7 @@ dependencies = [
+ [[package]]
+ name = "wayland-cursor"
+ version = "0.31.14"
+-source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "4a52d18780be9b1314328a3de5f930b73d2200112e3849ca6cb11822793fb34d"
++source = "git+https://github.com/alyssais/wayland-rs?tag=release-2026-03-30-spectrum-0#643927b7a936dcd474b5c073aa6a8d9b185cd6eb"
+ dependencies = [
+  "rustix 1.1.4",
+  "wayland-client",
+@@ -5859,8 +5856,7 @@ dependencies = [
+ [[package]]
+ name = "wayland-egl"
+ version = "0.32.11"
+-source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "9b97bdb7c49e5bd9b7562f38ff84f0dad47079fdc9e926f691a787f6dbc05451"
++source = "git+https://github.com/alyssais/wayland-rs?tag=release-2026-03-30-spectrum-0#643927b7a936dcd474b5c073aa6a8d9b185cd6eb"
+ dependencies = [
+  "wayland-backend",
+  "wayland-sys",
+@@ -5869,8 +5865,7 @@ dependencies = [
+ [[package]]
+ name = "wayland-protocols"
+ version = "0.32.12"
+-source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "563a85523cade2429938e790815fd7319062103b9f4a2dc806e9b53b95982d8f"
++source = "git+https://github.com/alyssais/wayland-rs?tag=release-2026-03-30-spectrum-0#643927b7a936dcd474b5c073aa6a8d9b185cd6eb"
+ dependencies = [
+  "bitflags 2.11.0",
+  "wayland-backend",
+@@ -5895,8 +5890,7 @@ dependencies = [
+ [[package]]
+ name = "wayland-protocols-misc"
+ version = "0.3.12"
+-source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "6e9567599ef23e09b8dad6e429e5738d4509dfc46b3b21f32841a304d16b29c8"
++source = "git+https://github.com/alyssais/wayland-rs?tag=release-2026-03-30-spectrum-0#643927b7a936dcd474b5c073aa6a8d9b185cd6eb"
+ dependencies = [
+  "bitflags 2.11.0",
+  "wayland-backend",
+@@ -5922,8 +5916,7 @@ dependencies = [
+ [[package]]
+ name = "wayland-protocols-wlr"
+ version = "0.3.12"
+-source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "eb04e52f7836d7c7976c78ca0250d61e33873c34156a2a1fc9474828ec268234"
++source = "git+https://github.com/alyssais/wayland-rs?tag=release-2026-03-30-spectrum-0#643927b7a936dcd474b5c073aa6a8d9b185cd6eb"
+ dependencies = [
+  "bitflags 2.11.0",
+  "wayland-backend",
+@@ -5936,8 +5929,7 @@ dependencies = [
+ [[package]]
+ name = "wayland-scanner"
+ version = "0.31.10"
+-source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "9c324a910fd86ebdc364a3e61ec1f11737d3b1d6c273c0239ee8ff4bc0d24b4a"
++source = "git+https://github.com/alyssais/wayland-rs?tag=release-2026-03-30-spectrum-0#643927b7a936dcd474b5c073aa6a8d9b185cd6eb"
+ dependencies = [
+  "proc-macro2",
+  "quick-xml",
+@@ -5947,8 +5939,7 @@ dependencies = [
+ [[package]]
+ name = "wayland-server"
+ version = "0.31.13"
+-source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "cc1846eb04c49182e04f4a099e2a830a2b745610bbc1d61246e206f29c7000a0"
++source = "git+https://github.com/alyssais/wayland-rs?tag=release-2026-03-30-spectrum-0#643927b7a936dcd474b5c073aa6a8d9b185cd6eb"
+ dependencies = [
+  "bitflags 2.11.0",
+  "downcast-rs",
+@@ -5960,8 +5951,7 @@ dependencies = [
+ [[package]]
+ name = "wayland-sys"
+ version = "0.31.11"
+-source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "d8eab23fefc9e41f8e841df4a9c707e8a8c4ed26e944ef69297184de2785e3be"
++source = "git+https://github.com/alyssais/wayland-rs?tag=release-2026-03-30-spectrum-0#643927b7a936dcd474b5c073aa6a8d9b185cd6eb"
+ dependencies = [
+  "dlib",
+  "log",
+diff --git a/Cargo.toml b/Cargo.toml
+index f1a04f02..6f6774d2 100644
+--- a/Cargo.toml
++++ b/Cargo.toml
+@@ -143,4 +143,14 @@ cosmic-protocols = { git = "https://github.com/pop-os//cosmic-protocols", branch
+ cosmic-client-toolkit = { git = "https://github.com/pop-os//cosmic-protocols", branch = "main" }
+ 
+ [patch.crates-io]
+-smithay = { git = "https://github.com/smithay/smithay.git", rev = "8eb4076" }
++smithay = { git = "https://github.com/alyssais/smithay.git", tag = "v0.7.0-cosmic-comp-1.2.0-spectrum-0" }
++wayland-backend = { git = "https://github.com/alyssais/wayland-rs", tag = "release-2026-03-30-spectrum-0" }
++wayland-client = { git = "https://github.com/alyssais/wayland-rs", tag = "release-2026-03-30-spectrum-0" }
++wayland-cursor = { git = "https://github.com/alyssais/wayland-rs", tag = "release-2026-03-30-spectrum-0" }
++wayland-egl = { git = "https://github.com/alyssais/wayland-rs", tag = "release-2026-03-30-spectrum-0" }
++wayland-protocols = { git = "https://github.com/alyssais/wayland-rs", tag = "release-2026-03-30-spectrum-0" }
++wayland-protocols-misc = { git = "https://github.com/alyssais/wayland-rs", tag = "release-2026-03-30-spectrum-0" }
++wayland-protocols-wlr = { git = "https://github.com/alyssais/wayland-rs", tag = "release-2026-03-30-spectrum-0" }
++wayland-scanner = { git = "https://github.com/alyssais/wayland-rs", tag = "release-2026-03-30-spectrum-0" }
++wayland-server = { git = "https://github.com/alyssais/wayland-rs", tag = "release-2026-03-30-spectrum-0" }
++wayland-sys = { git = "https://github.com/alyssais/wayland-rs", tag = "release-2026-03-30-spectrum-0" }
+diff --git a/src/backend/kms/socket.rs b/src/backend/kms/socket.rs
+index 3babd35a..c56a49cd 100644
+--- a/src/backend/kms/socket.rs
++++ b/src/backend/kms/socket.rs
+@@ -15,7 +15,7 @@ use smithay::{
+         socket::ListeningSocketSource,
+     },
+ };
+-use std::sync::Arc;
++use std::{path::Path, sync::Arc};
+ use tracing::{info, warn};
+ 
+ use crate::state::{ClientState, Common, State, advertised_node_for_client};
+@@ -34,16 +34,13 @@ impl Common {
+         render_node: DrmNode,
+         formats: FormatSet,
+     ) -> Result<Socket> {
+-        let socket_name = format!(
+-            "{}-{}",
+-            &self.socket.to_string_lossy(),
+-            render_node
+-                .dev_path()
+-                .unwrap()
+-                .file_name()
+-                .unwrap()
+-                .to_string_lossy()
+-        );
++        let dev_path = render_node.dev_path().unwrap();
++        let render_node_name = dev_path.file_name().unwrap();
++
++        let mut wayland_display = self.wayland_display.clone().into_os_string();
++        wayland_display.push("-");
++        wayland_display.push(render_node_name);
++        let wayland_display = wayland_display.to_string_lossy().into_owned();
+ 
+         // initialize globals
+         let filter = move |client: &Client| advertised_node_for_client(client) == Some(render_node);
+@@ -71,9 +68,13 @@ impl Common {
+         );
+ 
+         // add a special socket for the gpu
+-        let listener = ListeningSocketSource::with_name(&socket_name)
+-            .with_context(|| format!("Failed to bind socket to {}", socket_name))?;
+-        let socket_name_clone = socket_name.clone();
++        let listener = if Path::new(&wayland_display).is_absolute() {
++            ListeningSocketSource::with_path(wayland_display.clone().into())
++        } else {
++            ListeningSocketSource::with_name(&wayland_display)
++        }
++        .with_context(|| format!("Failed to bind socket to {}", wayland_display))?;
++        let wayland_display_clone = wayland_display.clone();
+         let token = self
+             .event_loop_handle
+             .insert_source(listener, move |client_stream, _, state: &mut State| {
+@@ -85,7 +86,7 @@ impl Common {
+                     }),
+                 ) {
+                     warn!(
+-                        socket_name = socket_name_clone,
++                        display = wayland_display_clone,
+                         ?err,
+                         "Error adding wayland client."
+                     );
+@@ -93,7 +94,7 @@ impl Common {
+             })
+             .context("Failed to add gpu-wayland socket to the event loop")?;
+ 
+-        info!(socket_name, ?render_node, "Added gpu-specific socket.");
++        info!(wayland_display, ?render_node, "Added gpu-specific socket.");
+ 
+         Ok(Socket {
+             token,
+diff --git a/src/dbus/mod.rs b/src/dbus/mod.rs
+index 5b9754c3..beddd52c 100644
+--- a/src/dbus/mod.rs
++++ b/src/dbus/mod.rs
+@@ -154,7 +154,7 @@ pub fn ready(common: &Common) -> Result<()> {
+         let dbus = zbus::fdo::DBusProxy::new(conn).await?;
+ 
+         dbus.update_activation_environment(HashMap::from([
+-            ("WAYLAND_DISPLAY", common.socket.to_str().unwrap()),
++            ("WAYLAND_DISPLAY", common.wayland_display.to_str().unwrap()),
+             (
+                 "DISPLAY",
+                 &common
+diff --git a/src/input/actions.rs b/src/input/actions.rs
+index 3d017697..dccb81cf 100644
+--- a/src/input/actions.rs
++++ b/src/input/actions.rs
+@@ -1054,7 +1054,7 @@ impl State {
+         data.user_data
+             .insert_if_missing(move || ActivationContext::Workspace(handle));
+ 
+-        let wayland_display = self.common.socket.clone();
++        let wayland_display = self.common.wayland_display.clone();
+         let display = self
+             .common
+             .xwayland_state
+diff --git a/src/lib.rs b/src/lib.rs
+index 09d1b961..c76877f3 100644
+--- a/src/lib.rs
++++ b/src/lib.rs
+@@ -19,8 +19,8 @@ use anyhow::{Context, Result};
+ use state::{LastRefresh, State};
+ use std::{
+     env,
+-    ffi::OsString,
+     os::unix::process::CommandExt,
++    path::PathBuf,
+     process,
+     sync::Arc,
+     time::{Duration, Instant},
+@@ -161,17 +161,17 @@ pub fn run(hooks: crate::hooks::Hooks) -> Result<(), Box<dyn Error>> {
+     // init event loop
+     let mut event_loop = EventLoop::try_new().with_context(|| "Failed to initialize event loop")?;
+     // init wayland
+-    let (display, socket) = init_wayland_display(&mut event_loop)?;
++    let (display_handle, wayland_display) = init_wayland_display(&mut event_loop)?;
+     // init state
+     let mut state = state::State::new(
+-        &display,
+-        socket,
++        &display_handle,
++        wayland_display,
+         event_loop.handle(),
+         event_loop.get_signal(),
+         with_xwayland,
+     );
+     // init backend
+-    backend::init_backend_auto(&display, &mut event_loop, &mut state)?;
++    backend::init_backend_auto(&display_handle, &mut event_loop, &mut state)?;
+ 
+     if let Err(err) = theme::watch_theme(event_loop.handle()) {
+         warn!(?err, "Failed to watch theme");
+@@ -264,13 +264,13 @@ Options:
+ 
+ fn init_wayland_display(
+     event_loop: &mut EventLoop<state::State>,
+-) -> Result<(DisplayHandle, OsString)> {
++) -> Result<(DisplayHandle, PathBuf)> {
+     let display = Display::new().unwrap();
+     let handle = display.handle();
+ 
+     let source = ListeningSocketSource::new_auto().unwrap();
+-    let socket_name = source.socket_name().to_os_string();
+-    info!("Listening on {:?}", socket_name);
++    let socket_path = source.socket_path().to_path_buf();
++    info!("Listening on {:?}", socket_path);
+ 
+     event_loop
+         .handle()
+@@ -303,7 +303,7 @@ fn init_wayland_display(
+         )
+         .with_context(|| "Failed to init the wayland event source.")?;
+ 
+-    Ok((handle, socket_name))
++    Ok((handle, socket_path))
+ }
+ 
+ fn refresh(state: &mut State) {
+diff --git a/src/session.rs b/src/session.rs
+index 0b4025a6..b9f40eb3 100644
+--- a/src/session.rs
++++ b/src/session.rs
+@@ -61,8 +61,9 @@ pub fn get_env(common: &Common) -> Result<HashMap<String, String>> {
+     env.insert(
+         String::from("WAYLAND_DISPLAY"),
+         common
+-            .socket
++            .wayland_display
+             .clone()
++            .into_os_string()
+             .into_string()
+             .map_err(|_| anyhow!("wayland socket is no valid utf-8 string?"))?,
+     );
+diff --git a/src/state.rs b/src/state.rs
+index 18de36ba..9af9c20b 100644
+--- a/src/state.rs
++++ b/src/state.rs
+@@ -124,7 +124,7 @@ use std::{
+     cell::RefCell,
+     cmp::min,
+     collections::HashSet,
+-    ffi::OsString,
++    path::PathBuf,
+     process::Child,
+     sync::{Arc, LazyLock, Once, atomic::AtomicBool},
+     time::{Duration, Instant},
+@@ -230,7 +230,7 @@ smithay::delegate_dispatch2!(State);
+ pub struct Common {
+     pub config: Config,
+ 
+-    pub socket: OsString,
++    pub wayland_display: PathBuf,
+     pub display_handle: DisplayHandle,
+     pub event_loop_handle: LoopHandle<'static, State>,
+     pub event_loop_signal: LoopSignal,
+@@ -625,7 +625,7 @@ fn client_not_sandboxed(client: &Client) -> bool {
+ impl State {
+     pub fn new(
+         dh: &DisplayHandle,
+-        socket: OsString,
++        wayland_display: PathBuf,
+         handle: LoopHandle<'static, State>,
+         signal: LoopSignal,
+         with_xwayland: bool,
+@@ -734,7 +734,7 @@ impl State {
+         State {
+             common: Common {
+                 config,
+-                socket,
++                wayland_display,
+                 display_handle: dh.clone(),
+                 event_loop_handle: handle,
+                 event_loop_signal: signal,
+diff --git a/src/systemd.rs b/src/systemd.rs
+index 422d91c9..3848e215 100644
+--- a/src/systemd.rs
++++ b/src/systemd.rs
+@@ -9,7 +9,7 @@ pub fn ready(common: &Common) {
+     if booted() {
+         match Command::new("systemctl")
+             .args(["--user", "import-environment", "WAYLAND_DISPLAY", "DISPLAY"])
+-            .env("WAYLAND_DISPLAY", &common.socket)
++            .env("WAYLAND_DISPLAY", &common.wayland_display)
+             .env(
+                 "DISPLAY",
+                 common
+-- 
+2.54.0
+
+
+From f3f5d571ff68a72b608368b049c39b2f40986154 Mon Sep 17 00:00:00 2001
+From: Alyssa Ross <hi@alyssa.is>
+Date: Fri, 26 Jun 2026 18:26:36 +0200
+Subject: [PATCH 2/2] Add --socket-path argument
+
+This allows specifying an absolute path where cosmic-comp will put its
+Wayland socket.  This is useful for integrated systems that know
+they'll have a single seat, and benefit from the predictability of a
+known path for it.  It also makes it easier to implement strong
+privilege separation on such systems, by enabling running clients as
+different users than the compositor (with different XDG_RUNTIME_DIRs).
+---
+ src/lib.rs | 15 +++++++++++++--
+ 1 file changed, 13 insertions(+), 2 deletions(-)
+
+diff --git a/src/lib.rs b/src/lib.rs
+index c76877f3..652b079d 100644
+--- a/src/lib.rs
++++ b/src/lib.rs
+@@ -115,6 +115,7 @@ pub fn run(hooks: crate::hooks::Hooks) -> Result<(), Box<dyn Error>> {
+     let mut cursor = raw_args.cursor();
+     let git_hash = option_env!("GIT_HASH").unwrap_or("unknown");
+ 
++    let mut socket_path = None;
+     let mut with_xwayland = true;
+     // Parse the arguments
+     while let Some(arg) = raw_args.next_os(&mut cursor) {
+@@ -127,6 +128,10 @@ pub fn run(hooks: crate::hooks::Hooks) -> Result<(), Box<dyn Error>> {
+                 tracing::info!("Running without Xwayland");
+                 with_xwayland = false;
+             }
++            Some("--socket-path") => {
++                let path = raw_args.next_os(&mut cursor).expect("no socket name given");
++                socket_path = Some(path.into());
++            }
+             Some("--version") | Some("-V") => {
+                 println!(
+                     "cosmic-comp {} (git commit {})",
+@@ -161,7 +166,7 @@ pub fn run(hooks: crate::hooks::Hooks) -> Result<(), Box<dyn Error>> {
+     // init event loop
+     let mut event_loop = EventLoop::try_new().with_context(|| "Failed to initialize event loop")?;
+     // init wayland
+-    let (display_handle, wayland_display) = init_wayland_display(&mut event_loop)?;
++    let (display_handle, wayland_display) = init_wayland_display(socket_path, &mut event_loop)?;
+     // init state
+     let mut state = state::State::new(
+         &display_handle,
+@@ -263,12 +268,18 @@ Options:
+ }
+ 
+ fn init_wayland_display(
++    socket_path: Option<PathBuf>,
+     event_loop: &mut EventLoop<state::State>,
+ ) -> Result<(DisplayHandle, PathBuf)> {
+     let display = Display::new().unwrap();
+     let handle = display.handle();
+ 
+-    let source = ListeningSocketSource::new_auto().unwrap();
++    let source = if let Some(socket_path) = socket_path {
++        ListeningSocketSource::with_path(socket_path).unwrap()
++    } else {
++        ListeningSocketSource::new_auto().unwrap()
++    };
++
+     let socket_path = source.socket_path().to_path_buf();
+     info!("Listening on {:?}", socket_path);
+ 
+-- 
+2.54.0
+
diff --git a/pkgs/overlay.nix b/pkgs/overlay.nix
index 62bef7d5..83691faf 100644
--- a/pkgs/overlay.nix
+++ b/pkgs/overlay.nix
@@ -2,6 +2,8 @@
 # SPDX-License-Identifier: MIT
 
 (final: super: {
+  cosmic-comp = import ./cosmic-comp { inherit final super; };
+
   cloud-hypervisor = import ./cloud-hypervisor { inherit final super; };
 
   flatpak = super.flatpak.override (
-- 
2.54.0


  parent reply	other threads:[~2026-07-10 20:01 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-07-10 19:59 [RFC PATCH 0/6] host/rootfs: switch from Weston to cosmic-comp Alyssa Ross
2026-07-10 19:59 ` [RFC PATCH 1/6] pkgs: s6: fix s6-notify-fd-from-socket Alyssa Ross
2026-07-10 19:59 ` Alyssa Ross [this message]
2026-07-10 19:59 ` [RFC PATCH 3/6] Revert "host/rootfs/Makefile: don't pass -display to QEMU" Alyssa Ross
2026-07-10 19:59 ` [RFC PATCH 4/6] Revert "host/rootfs: Makefile: don't use QEMU with GL" Alyssa Ross
2026-07-10 20:49   ` Demi Marie Obenour
2026-07-12 18:05     ` Alyssa Ross
2026-07-13 17:02       ` Demi Marie Obenour
2026-07-10 19:59 ` [RFC PATCH 5/6] host/rootfs: make run: use virgl virtio-gpu Alyssa Ross
2026-07-10 19:59 ` [RFC PATCH 6/6] host/rootfs: switch from Weston to cosmic-comp Alyssa Ross

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20260710195907.98981-3-hi@alyssa.is \
    --to=hi@alyssa.is \
    --cc=colby@colbyt.com \
    --cc=devel@spectrum-os.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://spectrum-os.org/git/doc
	https://spectrum-os.org/git/mktuntap
	https://spectrum-os.org/git/spectrum
	https://spectrum-os.org/git/ucspi-vsock

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).