Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package cosmic-session for openSUSE:Factory checked in at 2025-12-22 22:50:55 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/cosmic-session (Old) and /work/SRC/openSUSE:Factory/.cosmic-session.new.1928 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "cosmic-session" Mon Dec 22 22:50:55 2025 rev:8 rq:1324082 version:1.0.0+0 Changes: -------- --- /work/SRC/openSUSE:Factory/cosmic-session/cosmic-session.changes 2025-10-13 15:35:49.758459910 +0200 +++ /work/SRC/openSUSE:Factory/.cosmic-session.new.1928/cosmic-session.changes 2025-12-22 22:54:21.089664978 +0100 @@ -1,0 +2,31 @@ +Thu Dec 11 18:16:40 UTC 2025 - Richard Rahl <[email protected]> + +- Update to version 1.0.0+0: + * [i18n] Swedish translation of desktop file + +------------------------------------------------------------------- +Sat Nov 15 20:23:43 UTC 2025 - Richard Rahl <[email protected]> + +- Update to version 1.0.0~beta6+0: + * no changes since last release + +------------------------------------------------------------------- +Mon Nov 10 16:06:07 UTC 2025 - Richard Rahl <[email protected]> + +- Update to version 1.0.0~beta5+0: + * Don't create privileged sockets + +------------------------------------------------------------------- +Thu Oct 23 18:06:55 UTC 2025 - Richard Rahl <[email protected]> + +- Update to version 1.0.0~beta3+0: + * no changes since last release + +------------------------------------------------------------------- +Sun Oct 19 15:01:25 UTC 2025 - Richard Rahl <[email protected]> + +- Update to version 1.0.0~beta2+1: + * Do not start `xdg-desktop-portal-cosmic`; so socket activation can +- remove leap-fix-justfile.patch + +------------------------------------------------------------------- Old: ---- cosmic-session-1.0.0~beta1.1+0.obscpio leap-fix-justfile.patch New: ---- cosmic-session-1.0.0+0.obscpio ----------(Old B)---------- Old: * Do not start `xdg-desktop-portal-cosmic`; so socket activation can - remove leap-fix-justfile.patch ----------(Old E)---------- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ cosmic-session.spec ++++++ --- /var/tmp/diff_new_pack.FnXeDh/_old 2025-12-22 22:54:23.897780788 +0100 +++ /var/tmp/diff_new_pack.FnXeDh/_new 2025-12-22 22:54:23.901780953 +0100 @@ -17,7 +17,7 @@ Name: cosmic-session -Version: 1.0.0~beta1.1+0 +Version: 1.0.0+0 Release: 0 Summary: Session manager for the COSMIC desktop environment License: GPL-3.0-only @@ -25,7 +25,6 @@ Source0: %{name}-%{version}.tar.zst Source1: vendor.tar.zst Source2: %{name}.dconf -Patch0: leap-fix-justfile.patch BuildRequires: cargo-packaging BuildRequires: dconf BuildRequires: just @@ -35,10 +34,7 @@ %{summary}. %prep -%autosetup -N -a1 -%if 0%{?suse_version} < 1600 -%patch -P0 -p1 -%endif +%autosetup -a1 %build just build ++++++ _service ++++++ --- /var/tmp/diff_new_pack.FnXeDh/_old 2025-12-22 22:54:23.933782272 +0100 +++ /var/tmp/diff_new_pack.FnXeDh/_new 2025-12-22 22:54:23.937782437 +0100 @@ -5,7 +5,7 @@ <param name="scm">git</param> <param name="revision">master</param> <param name="versionrewrite-pattern">epoch-(.*)\+0</param> - <param name="versionformat">1.0.0~beta1.1+@TAG_OFFSET@</param> + <param name="versionformat">1.0.0+@TAG_OFFSET@</param> <param name="versionrewrite-replacement">\1</param> <param name="package-meta">yes</param> <param name="filename">cosmic-session</param> ++++++ _servicedata ++++++ --- /var/tmp/diff_new_pack.FnXeDh/_old 2025-12-22 22:54:23.961783427 +0100 +++ /var/tmp/diff_new_pack.FnXeDh/_new 2025-12-22 22:54:23.961783427 +0100 @@ -1,6 +1,6 @@ <servicedata> <service name="tar_scm"> <param name="url">https://github.com/pop-os/cosmic-session.git</param> - <param name="changesrevision">379ce30715f637075879feda784edc89231792cf</param></service></servicedata> + <param name="changesrevision">f4093070be2813787fbfd1a1ff43b213c1396343</param></service></servicedata> (No newline at EOF) ++++++ cosmic-session-1.0.0~beta1.1+0.obscpio -> cosmic-session-1.0.0+0.obscpio ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cosmic-session-1.0.0~beta1.1+0/.git/ORIG_HEAD new/cosmic-session-1.0.0+0/.git/ORIG_HEAD --- old/cosmic-session-1.0.0~beta1.1+0/.git/ORIG_HEAD 2025-09-19 19:26:54.000000000 +0200 +++ new/cosmic-session-1.0.0+0/.git/ORIG_HEAD 2025-12-09 17:21:00.000000000 +0100 @@ -1 +1 @@ -379ce30715f637075879feda784edc89231792cf +f4093070be2813787fbfd1a1ff43b213c1396343 Binary files old/cosmic-session-1.0.0~beta1.1+0/.git/index and new/cosmic-session-1.0.0+0/.git/index differ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cosmic-session-1.0.0~beta1.1+0/.git/logs/HEAD new/cosmic-session-1.0.0+0/.git/logs/HEAD --- old/cosmic-session-1.0.0~beta1.1+0/.git/logs/HEAD 2025-09-19 19:26:54.000000000 +0200 +++ new/cosmic-session-1.0.0+0/.git/logs/HEAD 2025-12-09 17:21:00.000000000 +0100 @@ -1,3 +1,3 @@ -0000000000000000000000000000000000000000 379ce30715f637075879feda784edc89231792cf mkd <mkd@medora.(none)> 1759181641 +0300 clone: from https://github.com/pop-os/cosmic-session.git -379ce30715f637075879feda784edc89231792cf 379ce30715f637075879feda784edc89231792cf mkd <mkd@medora.(none)> 1759181641 +0300 checkout: moving from master to master -379ce30715f637075879feda784edc89231792cf 379ce30715f637075879feda784edc89231792cf mkd <mkd@medora.(none)> 1759181641 +0300 reset: moving to master +0000000000000000000000000000000000000000 f4093070be2813787fbfd1a1ff43b213c1396343 user <[email protected]> 1765477000 +0000 clone: from https://github.com/pop-os/cosmic-session.git +f4093070be2813787fbfd1a1ff43b213c1396343 f4093070be2813787fbfd1a1ff43b213c1396343 user <[email protected]> 1765477000 +0000 checkout: moving from master to master +f4093070be2813787fbfd1a1ff43b213c1396343 f4093070be2813787fbfd1a1ff43b213c1396343 user <[email protected]> 1765477000 +0000 reset: moving to master diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cosmic-session-1.0.0~beta1.1+0/.git/logs/refs/heads/master new/cosmic-session-1.0.0+0/.git/logs/refs/heads/master --- old/cosmic-session-1.0.0~beta1.1+0/.git/logs/refs/heads/master 2025-09-19 19:26:54.000000000 +0200 +++ new/cosmic-session-1.0.0+0/.git/logs/refs/heads/master 2025-12-09 17:21:00.000000000 +0100 @@ -1 +1 @@ -0000000000000000000000000000000000000000 379ce30715f637075879feda784edc89231792cf mkd <mkd@medora.(none)> 1759181641 +0300 clone: from https://github.com/pop-os/cosmic-session.git +0000000000000000000000000000000000000000 f4093070be2813787fbfd1a1ff43b213c1396343 user <[email protected]> 1765477000 +0000 clone: from https://github.com/pop-os/cosmic-session.git diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cosmic-session-1.0.0~beta1.1+0/.git/logs/refs/remotes/origin/HEAD new/cosmic-session-1.0.0+0/.git/logs/refs/remotes/origin/HEAD --- old/cosmic-session-1.0.0~beta1.1+0/.git/logs/refs/remotes/origin/HEAD 2025-09-19 19:26:54.000000000 +0200 +++ new/cosmic-session-1.0.0+0/.git/logs/refs/remotes/origin/HEAD 2025-12-09 17:21:00.000000000 +0100 @@ -1 +1 @@ -0000000000000000000000000000000000000000 379ce30715f637075879feda784edc89231792cf mkd <mkd@medora.(none)> 1759181641 +0300 clone: from https://github.com/pop-os/cosmic-session.git +0000000000000000000000000000000000000000 f4093070be2813787fbfd1a1ff43b213c1396343 user <[email protected]> 1765477000 +0000 clone: from https://github.com/pop-os/cosmic-session.git Binary files old/cosmic-session-1.0.0~beta1.1+0/.git/objects/pack/pack-c834ab65ce5b745939e22a8688c6bf9a739b5b34.idx and new/cosmic-session-1.0.0+0/.git/objects/pack/pack-c834ab65ce5b745939e22a8688c6bf9a739b5b34.idx differ Binary files old/cosmic-session-1.0.0~beta1.1+0/.git/objects/pack/pack-c834ab65ce5b745939e22a8688c6bf9a739b5b34.pack and new/cosmic-session-1.0.0+0/.git/objects/pack/pack-c834ab65ce5b745939e22a8688c6bf9a739b5b34.pack differ Binary files old/cosmic-session-1.0.0~beta1.1+0/.git/objects/pack/pack-c834ab65ce5b745939e22a8688c6bf9a739b5b34.rev and new/cosmic-session-1.0.0+0/.git/objects/pack/pack-c834ab65ce5b745939e22a8688c6bf9a739b5b34.rev differ Binary files old/cosmic-session-1.0.0~beta1.1+0/.git/objects/pack/pack-f373840504aed2d930cdb84249601b52c0e3f9ca.idx and new/cosmic-session-1.0.0+0/.git/objects/pack/pack-f373840504aed2d930cdb84249601b52c0e3f9ca.idx differ Binary files old/cosmic-session-1.0.0~beta1.1+0/.git/objects/pack/pack-f373840504aed2d930cdb84249601b52c0e3f9ca.pack and new/cosmic-session-1.0.0+0/.git/objects/pack/pack-f373840504aed2d930cdb84249601b52c0e3f9ca.pack differ Binary files old/cosmic-session-1.0.0~beta1.1+0/.git/objects/pack/pack-f373840504aed2d930cdb84249601b52c0e3f9ca.rev and new/cosmic-session-1.0.0+0/.git/objects/pack/pack-f373840504aed2d930cdb84249601b52c0e3f9ca.rev differ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cosmic-session-1.0.0~beta1.1+0/.git/packed-refs new/cosmic-session-1.0.0+0/.git/packed-refs --- old/cosmic-session-1.0.0~beta1.1+0/.git/packed-refs 2025-09-19 19:26:54.000000000 +0200 +++ new/cosmic-session-1.0.0+0/.git/packed-refs 2025-12-09 17:21:00.000000000 +0100 @@ -1,9 +1,11 @@ # pack-refs with: peeled fully-peeled sorted 33cc64e9ddf53dcb34277cf17b4a6dea65aae4d6 refs/remotes/origin/comp-output-redirect_noble +0388e386288c33d727240609d0fc4efe1a2c7bab refs/remotes/origin/concurrent 686e50c2fabaa5280a3f8932b1d0ae041643912f refs/remotes/origin/git-f0x-2024 2136252c439dd50afc440cdb9b227b976d052950 refs/remotes/origin/inhibit-poweroff 378ef37fc486b1c37ff0c9826e4d407832a9152a refs/remotes/origin/log-cleanup -379ce30715f637075879feda784edc89231792cf refs/remotes/origin/master +f4093070be2813787fbfd1a1ff43b213c1396343 refs/remotes/origin/master +f4093070be2813787fbfd1a1ff43b213c1396343 refs/tags/epoch-1.0.0 c3de3d24dd200d5f8a19a26de56590472f461574 refs/tags/epoch-1.0.0-alpha.1 d06f94a8a01c47b01e0b490c98e0f6d7242ceadd refs/tags/epoch-1.0.0-alpha.2 5a0df6afb6c9c5e9c29e33a756bf7e600c3d0264 refs/tags/epoch-1.0.0-alpha.3 @@ -14,3 +16,11 @@ 80209d5aadcfc05803eaa5b5099a5db1550d3fb1 refs/tags/epoch-1.0.0-alpha.7 379ce30715f637075879feda784edc89231792cf refs/tags/epoch-1.0.0-beta.1 379ce30715f637075879feda784edc89231792cf refs/tags/epoch-1.0.0-beta.1.1 +379ce30715f637075879feda784edc89231792cf refs/tags/epoch-1.0.0-beta.2 +d8ec361e3ccfc9a02bffc893ab0c08c204a275f2 refs/tags/epoch-1.0.0-beta.3 +d8ec361e3ccfc9a02bffc893ab0c08c204a275f2 refs/tags/epoch-1.0.0-beta.4 +472db4233083e8c6dabc24b0589183d0fd4e2b61 refs/tags/epoch-1.0.0-beta.5 +472db4233083e8c6dabc24b0589183d0fd4e2b61 refs/tags/epoch-1.0.0-beta.6 +472db4233083e8c6dabc24b0589183d0fd4e2b61 refs/tags/epoch-1.0.0-beta.7 +472db4233083e8c6dabc24b0589183d0fd4e2b61 refs/tags/epoch-1.0.0-beta.8 +472db4233083e8c6dabc24b0589183d0fd4e2b61 refs/tags/epoch-1.0.0-beta.9 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cosmic-session-1.0.0~beta1.1+0/.git/refs/heads/master new/cosmic-session-1.0.0+0/.git/refs/heads/master --- old/cosmic-session-1.0.0~beta1.1+0/.git/refs/heads/master 2025-09-19 19:26:54.000000000 +0200 +++ new/cosmic-session-1.0.0+0/.git/refs/heads/master 2025-12-09 17:21:00.000000000 +0100 @@ -1 +1 @@ -379ce30715f637075879feda784edc89231792cf +f4093070be2813787fbfd1a1ff43b213c1396343 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cosmic-session-1.0.0~beta1.1+0/Justfile new/cosmic-session-1.0.0+0/Justfile --- old/cosmic-session-1.0.0~beta1.1+0/Justfile 2025-09-19 19:26:54.000000000 +0200 +++ new/cosmic-session-1.0.0+0/Justfile 2025-12-09 17:21:00.000000000 +0100 @@ -9,7 +9,6 @@ vendor_args := if vendor == '1' { '--frozen --offline' } else { '' } debug_args := if debug == '1' { '' } else { '--release' } cargo_args := vendor_args + ' ' + debug_args -xdp_cosmic := '/usr/libexec/xdg-desktop-portal-cosmic' orca := '/usr/bin/orca' cosmic_dconf_profile := prefix + '/share/dconf/profile/cosmic' @@ -21,7 +20,7 @@ all: _extract_vendor build build: - XDP_COSMIC={{xdp_cosmic}} ORCA={{orca}} cargo build {{cargo_args}} + ORCA={{orca}} cargo build {{cargo_args}} # Installs files into the system install: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cosmic-session-1.0.0~beta1.1+0/data/cosmic.desktop new/cosmic-session-1.0.0+0/data/cosmic.desktop --- old/cosmic-session-1.0.0~beta1.1+0/data/cosmic.desktop 2025-09-19 19:26:54.000000000 +0200 +++ new/cosmic-session-1.0.0+0/data/cosmic.desktop 2025-12-09 17:21:00.000000000 +0100 @@ -1,6 +1,7 @@ [Desktop Entry] Name=COSMIC Comment=This session logs you into the COSMIC desktop +Comment[sv]=Denna session loggar in dig till skrivbordsmiljön COSMIC Exec=/usr/bin/start-cosmic Type=Application DesktopNames=COSMIC diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cosmic-session-1.0.0~beta1.1+0/src/comp.rs new/cosmic-session-1.0.0+0/src/comp.rs --- old/cosmic-session-1.0.0~beta1.1+0/src/comp.rs 2025-09-19 19:26:54.000000000 +0200 +++ new/cosmic-session-1.0.0+0/src/comp.rs 2025-12-09 17:21:00.000000000 +0100 @@ -1,15 +1,11 @@ // SPDX-License-Identifier: GPL-3.0-only use color_eyre::eyre::{Result, WrapErr}; use launch_pad::{ProcessManager, process::Process}; -use sendfd::SendWithFd; use serde::{Deserialize, Serialize}; use std::{collections::HashMap, os::unix::prelude::*}; use tokio::{ - io::{AsyncReadExt, AsyncWriteExt}, - net::{ - UnixStream, - unix::{OwnedReadHalf, OwnedWriteHalf}, - }, + io::AsyncReadExt, + net::{UnixStream, unix::OwnedReadHalf}, sync::{mpsc, oneshot}, task::JoinHandle, }; @@ -21,7 +17,6 @@ #[serde(rename_all = "snake_case", tag = "message")] pub enum Message { SetEnv { variables: HashMap<String, String> }, - NewPrivilegedClient { count: usize }, } // Cancellation safe! @@ -40,9 +35,6 @@ env_tx.send(variables).unwrap(); } } - Ok(Message::NewPrivilegedClient { .. }) => { - unreachable!("NewPrivilegedClient should not be sent TO the session!"); - } Err(_) => { warn!( "Unknown session socket message, are you using incompatible cosmic-session and \ @@ -101,82 +93,11 @@ } } -pub fn create_privileged_socket( - sockets: &mut Vec<UnixStream>, - env_vars: &[(String, String)], -) -> Result<(Vec<(String, String)>, OwnedFd)> { - // Create a new pair of unnamed Unix sockets - let (comp_socket, client_socket) = - UnixStream::pair().wrap_err("failed to create socket pair")?; - // Push one socket to the list of sockets we were passed - sockets.push(comp_socket); - // Turn the other socket into a non-blocking fd, which we can pass to the child - // process - let client_fd = { - let std_stream = client_socket - .into_std() - .wrap_err("failed to convert client socket to std socket")?; - std_stream - .set_nonblocking(true) - .wrap_err("failed to mark client socket as non-blocking")?; - OwnedFd::from(std_stream) - }; - let mut env_vars = env_vars.to_vec(); - env_vars.push(("WAYLAND_SOCKET".into(), client_fd.as_raw_fd().to_string())); - Ok((env_vars, client_fd)) -} - -async fn send_fd(session_tx: &mut OwnedWriteHalf, stream: Vec<UnixStream>) -> Result<()> { - // Turn our list of Unix streams into non-blocking file descriptors. - let fds = stream - .into_iter() - .map(|stream| { - let std_stream = stream - .into_std() - .wrap_err("failed to convert stream to std stream")?; - std_stream - .set_nonblocking(false) - .wrap_err("failed to set stream as blocking")?; - Ok(OwnedFd::from(std_stream)) - }) - .collect::<Result<Vec<_>>>() - .wrap_err("failed to convert streams to file descriptors")?; - // Create a NewPrivilegedClient message, with a count of how many file - // descriptors we are about to send. - let json = serde_json::to_string(&Message::NewPrivilegedClient { count: fds.len() }) - .wrap_err("failed to encode json")?; - // Send the length of our NewPrivilegedClient message. - session_tx - .write_all(&(json.len() as u16).to_le_bytes()) - .await - .wrap_err("failed to write length")?; - // Send our NewPrivilegedClient message, in JSON form. - session_tx - .write_all(json.as_bytes()) - .await - .wrap_err("failed to write json")?; - // Wait 100 us for the session to acknowledge our message. - tokio::time::sleep(std::time::Duration::from_micros(100)).await; - // Send our file descriptors. - let fd: &UnixStream = session_tx.as_ref(); - info!("sending {} fds", fds.len()); - - fd.send_with_fd( - &[0], - &fds.into_iter() - .map(|fd| fd.into_raw_fd()) - .collect::<Vec<_>>(), - ) - .wrap_err("failed to send fd")?; - Ok(()) -} - pub fn run_compositor( process_manager: &ProcessManager, exec: String, args: Vec<String>, _token: CancellationToken, - mut socket_rx: mpsc::UnboundedReceiver<Vec<UnixStream>>, env_tx: oneshot::Sender<HashMap<String, String>>, session_dbus_tx: mpsc::Sender<SessionRequest>, ) -> Result<JoinHandle<Result<()>>> { @@ -184,7 +105,7 @@ // Create a pair of unix sockets - one for us (session), // one for the compositor (comp) let (session, comp) = UnixStream::pair().wrap_err("failed to create pair of unix sockets")?; - let (mut session_rx, mut session_tx) = session.into_split(); + let (mut session_rx, _session_tx) = session.into_split(); // Convert our compositor socket to a non-blocking file descriptor. let comp = { let std_stream = comp @@ -242,12 +163,6 @@ error!("failed to receive IPC: {:?}", err); break; }, - // Send any file descriptors we need to the compositor. - Some(socket) = socket_rx.recv() => { - send_fd(&mut session_tx, socket) - .await - .wrap_err("failed to send file descriptor to compositor")?; - } } } Result::<()>::Ok(()) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cosmic-session-1.0.0~beta1.1+0/src/main.rs new/cosmic-session-1.0.0+0/src/main.rs --- old/cosmic-session-1.0.0~beta1.1+0/src/main.rs 2025-09-19 19:26:54.000000000 +0200 +++ new/cosmic-session-1.0.0+0/src/main.rs 2025-12-09 17:21:00.000000000 +0100 @@ -11,7 +11,6 @@ use async_signals::Signals; use color_eyre::{Result, eyre::WrapErr}; -use comp::create_privileged_socket; use cosmic_notifications_util::{DAEMON_NOTIFICATIONS_FD, PANEL_NOTIFICATIONS_FD}; use futures_util::StreamExt; #[cfg(feature = "autostart")] @@ -24,19 +23,13 @@ use std::path::PathBuf; #[cfg(feature = "autostart")] use std::process::{Command, Stdio}; -use std::{ - borrow::Cow, - env, - os::fd::{AsRawFd, OwnedFd}, - sync::Arc, -}; +use std::{borrow::Cow, env, os::fd::AsRawFd, sync::Arc}; #[cfg(feature = "systemd")] use systemd::{get_systemd_env, is_systemd_used, spawn_scope}; use tokio::{ - net::UnixStream, sync::{ Mutex, - mpsc::{self, Receiver, Sender}, + mpsc::{Receiver, Sender}, oneshot, }, time::Duration, @@ -46,7 +39,6 @@ use tracing_subscriber::{EnvFilter, fmt, prelude::*}; use crate::notifications::notifications_process; -const XDP_COSMIC: Option<&'static str> = option_env!("XDP_COSMIC"); #[cfg(feature = "autostart")] const AUTOSTART_DIR: &'static str = "autostart"; #[cfg(feature = "autostart")] @@ -142,14 +134,12 @@ )) .await; let token = CancellationToken::new(); - let (socket_tx, socket_rx) = mpsc::unbounded_channel(); let (env_tx, env_rx) = oneshot::channel(); let compositor_handle = comp::run_compositor( &process_manager, executable.clone(), args, token.child_token(), - socket_rx, env_tx, session_tx, ) @@ -312,7 +302,6 @@ "cosmic-panel", panel_key.clone(), panel_env_vars.clone(), - socket_tx.clone(), )) .await .expect("failed to start notifications daemon"), @@ -332,7 +321,6 @@ "cosmic-notifications", notif_key, daemon_env_vars, - socket_tx.clone(), )) .await .expect("failed to start panel"), @@ -340,115 +328,28 @@ drop(guard); let span = info_span!(parent: None, "cosmic-app-library"); - start_component( - "cosmic-app-library", - span, - &process_manager, - &env_vars, - &socket_tx, - Vec::new(), - ) - .await; + start_component("cosmic-app-library", span, &process_manager, &env_vars).await; let span = info_span!(parent: None, "cosmic-launcher"); - start_component( - "cosmic-launcher", - span, - &process_manager, - &env_vars, - &socket_tx, - Vec::new(), - ) - .await; + start_component("cosmic-launcher", span, &process_manager, &env_vars).await; let span = info_span!(parent: None, "cosmic-workspaces"); - start_component( - "cosmic-workspaces", - span, - &process_manager, - &env_vars, - &socket_tx, - Vec::new(), - ) - .await; + start_component("cosmic-workspaces", span, &process_manager, &env_vars).await; let span = info_span!(parent: None, "cosmic-osd"); - start_component( - "cosmic-osd", - span, - &process_manager, - &env_vars, - &socket_tx, - Vec::new(), - ) - .await; + start_component("cosmic-osd", span, &process_manager, &env_vars).await; let span = info_span!(parent: None, "cosmic-bg"); - start_component( - "cosmic-bg", - span, - &process_manager, - &env_vars, - &socket_tx, - Vec::new(), - ) - .await; + start_component("cosmic-bg", span, &process_manager, &env_vars).await; let span = info_span!(parent: None, "cosmic-greeter"); - start_component( - "cosmic-greeter", - span, - &process_manager, - &env_vars, - &socket_tx, - Vec::new(), - ) - .await; + start_component("cosmic-greeter", span, &process_manager, &env_vars).await; let span = info_span!(parent: None, "cosmic-files-applet"); - start_component( - "cosmic-files-applet", - span, - &process_manager, - &env_vars, - &socket_tx, - Vec::new(), - ) - .await; + start_component("cosmic-files-applet", span, &process_manager, &env_vars).await; let span = info_span!(parent: None, "cosmic-idle"); - start_component( - "cosmic-idle", - span, - &process_manager, - &env_vars, - &socket_tx, - Vec::new(), - ) - .await; - - if env::var("XDG_CURRENT_DESKTOP").as_deref() == Ok("COSMIC") { - let span = info_span!(parent: None, "xdg-desktop-portal-cosmic"); - let mut sockets = Vec::with_capacity(1); - let extra_env = Vec::with_capacity(1); - let portal_extras = - if let Ok((mut env, fd)) = create_privileged_socket(&mut sockets, &extra_env) { - let mut env = env.remove(0); - env.0 = "PORTAL_WAYLAND_SOCKET".to_string(); - vec![(fd, env, sockets.remove(0))] - } else { - Vec::new() - }; - start_component( - XDP_COSMIC.unwrap_or("/usr/libexec/xdg-desktop-portal-cosmic"), - span, - &process_manager, - &env_vars, - &socket_tx, - portal_extras, - ) - .await; - } + start_component("cosmic-idle", span, &process_manager, &env_vars).await; #[cfg(feature = "autostart")] if !*is_systemd_used() { @@ -605,31 +506,13 @@ span: tracing::Span, process_manager: &ProcessManager, env_vars: &[(String, String)], - socket_tx: &mpsc::UnboundedSender<Vec<UnixStream>>, - extra_fds: Vec<(OwnedFd, (String, String), UnixStream)>, ) { - let mut sockets = Vec::with_capacity(2); - let (mut env_vars, fd) = create_privileged_socket(&mut sockets, &env_vars).unwrap(); - - let socket_tx_clone = socket_tx.clone(); let stdout_span = span.clone(); let stderr_span = span.clone(); let stderr_span_clone = stderr_span.clone(); let cmd = cmd.into(); let cmd_clone = cmd.clone(); - let (mut fds, extra_fd_env, mut streams): (Vec<_>, Vec<_>, Vec<_>) = - itertools::multiunzip(extra_fds); - for kv in &extra_fd_env { - env_vars.push(kv.clone()); - } - - sockets.append(&mut streams); - if let Err(why) = socket_tx.send(sockets) { - error!(?why, "Failed to send the privileged socket"); - } - let (extra_fd_env, _): (Vec<_>, Vec<_>) = extra_fd_env.into_iter().unzip(); - fds.push(fd); if let Err(err) = process_manager .start( Process::new() @@ -663,42 +546,12 @@ } } }) - .with_on_exit(move |mut pman, key, err_code, will_restart| { + .with_on_exit(move |mut _pman, _key, err_code, _will_restart| { if let Some(err) = err_code { error!("{cmd_clone} exited with error {}", err.to_string()); } - let extra_fd_env = extra_fd_env.clone(); - let socket_tx_clone = socket_tx_clone.clone(); - async move { - if !will_restart { - return; - } - - let mut sockets = Vec::with_capacity(1 + extra_fd_env.len()); - let mut fds = Vec::with_capacity(1 + extra_fd_env.len()); - let (mut env_vars, fd) = - create_privileged_socket(&mut sockets, &[]).unwrap(); - fds.push(fd); - for k in extra_fd_env { - let (mut fd_env_vars, fd) = - create_privileged_socket(&mut sockets, &[]).unwrap(); - fd_env_vars.last_mut().unwrap().0 = k; - env_vars.append(&mut fd_env_vars); - fds.push(fd) - } - - if let Err(why) = socket_tx_clone.send(sockets) { - error!(?why, "Failed to send the privileged socket"); - } - if let Err(why) = pman.update_process_env(&key, env_vars).await { - error!(?why, "Failed to update environment variables"); - } - if let Err(why) = pman.update_process_fds(&key, move || fds).await { - error!(?why, "Failed to update fds"); - } - } - }) - .with_fds(move || fds), + async {} + }), ) .await { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cosmic-session-1.0.0~beta1.1+0/src/notifications.rs new/cosmic-session-1.0.0+0/src/notifications.rs --- old/cosmic-session-1.0.0~beta1.1+0/src/notifications.rs 2025-09-19 19:26:54.000000000 +0200 +++ new/cosmic-session-1.0.0+0/src/notifications.rs 2025-12-09 17:21:00.000000000 +0100 @@ -6,11 +6,9 @@ os::{fd::OwnedFd, unix::net::UnixStream}, sync::Arc, }; -use tokio::sync::{Mutex, mpsc}; +use tokio::sync::Mutex; use tracing::Instrument; -use crate::comp::create_privileged_socket; - pub fn create_socket() -> Result<(OwnedFd, OwnedFd)> { // Create a new pair of unnamed Unix sockets let (sock_1, sock_2) = UnixStream::pair().wrap_err("failed to create socket pair")?; @@ -38,20 +36,15 @@ restart_cmd: &'static str, restart_key: Arc<Mutex<Option<ProcessKey>>>, restart_env_vars: Vec<(String, String)>, - socket_tx: mpsc::UnboundedSender<Vec<tokio::net::UnixStream>>, ) -> Process { env_vars.retain(|v| &v.0 != "WAYLAND_SOCKET"); let stdout_span = span.clone(); let stderr_span = span.clone(); - let mut sockets = Vec::with_capacity(1); - let (env_vars, privileged_fd) = create_privileged_socket(&mut sockets, &env_vars).unwrap(); - _ = socket_tx.send(sockets); let env_clone = env_vars.clone(); - let socket_tx_clone = socket_tx.clone(); Process::new() .with_executable(cmd) - .with_fds(move || vec![privileged_fd, fd]) + .with_fds(move || vec![fd]) .with_on_stdout(move |_, _, line| { let stdout_span = stdout_span.clone(); async move { @@ -96,26 +89,17 @@ cmd, key.clone(), my_env_vars.clone(), - socket_tx_clone.clone(), ); let restart_key = restart_key.clone(); - let socket_tx_clone = socket_tx_clone.clone(); let mut pman_clone = pman.clone(); async move { if will_restart { - let mut sockets = Vec::with_capacity(1); - let (env_vars, new_fd) = - create_privileged_socket(&mut sockets, &my_env_vars).unwrap(); - - if let Err(why) = socket_tx_clone.send(sockets) { - error!(?why, "Failed to send the privileged socket"); - } - if let Err(why) = pman_clone.update_process_env(&my_key, env_vars).await { + if let Err(why) = pman_clone.update_process_env(&my_key, my_env_vars).await { error!(?why, "Failed to update environment variables"); } if let Err(why) = pman_clone - .update_process_fds(&my_key, move || vec![new_fd, my_fd]) + .update_process_fds(&my_key, move || vec![my_fd]) .await { error!(?why, "Failed to update fds"); ++++++ cosmic-session.obsinfo ++++++ --- /var/tmp/diff_new_pack.FnXeDh/_old 2025-12-22 22:54:24.237794810 +0100 +++ /var/tmp/diff_new_pack.FnXeDh/_new 2025-12-22 22:54:24.245795140 +0100 @@ -1,5 +1,5 @@ name: cosmic-session -version: 1.0.0~beta1.1+0 -mtime: 1758302814 -commit: 379ce30715f637075879feda784edc89231792cf +version: 1.0.0+0 +mtime: 1765297260 +commit: f4093070be2813787fbfd1a1ff43b213c1396343 ++++++ vendor.tar.zst ++++++ /work/SRC/openSUSE:Factory/cosmic-session/vendor.tar.zst /work/SRC/openSUSE:Factory/.cosmic-session.new.1928/vendor.tar.zst differ: char 8, line 1
