diff options
Diffstat (limited to 'x11/wezterm/files/patch-zbus')
-rw-r--r-- | x11/wezterm/files/patch-zbus | 267 |
1 files changed, 0 insertions, 267 deletions
diff --git a/x11/wezterm/files/patch-zbus b/x11/wezterm/files/patch-zbus deleted file mode 100644 index 614cf51d53f0..000000000000 --- a/x11/wezterm/files/patch-zbus +++ /dev/null @@ -1,267 +0,0 @@ -https://gitlab.freedesktop.org/dbus/zbus/-/commit/01d8f0ec41d3 -https://gitlab.freedesktop.org/dbus/zbus/-/commit/807909a6c7bf -https://gitlab.freedesktop.org/dbus/zbus/-/commit/e3e2f7ddfd6e -https://gitlab.freedesktop.org/dbus/zbus/-/commit/35d1b8778754 -https://github.com/wez/wezterm/pull/829 - ---- cargo-crates/zbus-1.9.1/Cargo.toml.orig 1970-01-01 00:00:00 UTC -+++ cargo-crates/zbus-1.9.1/Cargo.toml -@@ -48,7 +48,7 @@ version = "0.3.8" - version = "1.0.2" - - [dependencies.nix] --version = "^0.17" -+version = "0.20.0" - - [dependencies.once_cell] - version = "1.4.0" ---- cargo-crates/zbus-1.9.1/src/address.rs.orig 1970-01-01 00:00:00 UTC -+++ cargo-crates/zbus-1.9.1/src/address.rs -@@ -55,8 +55,9 @@ impl Address { - match env::var("DBUS_SESSION_BUS_ADDRESS") { - Ok(val) => Self::from_str(&val), - _ => { -- let uid = Uid::current(); -- let path = format!("unix:path=/run/user/{}/bus", uid); -+ let runtime_dir = env::var("XDG_RUNTIME_DIR") -+ .unwrap_or_else(|_| format!("/run/user/{}", Uid::current())); -+ let path = format!("unix:path={}/bus", runtime_dir); - - Self::from_str(&path) - } ---- cargo-crates/zbus-1.9.1/src/azync/connection.rs.orig 1970-01-01 00:00:00 UTC -+++ cargo-crates/zbus-1.9.1/src/azync/connection.rs -@@ -177,13 +177,29 @@ where - /// Upon successful return, the connection is fully established and negotiated: D-Bus messages - /// can be sent and received. - pub async fn new_server(stream: S, guid: &Guid) -> Result<Self> { -- use nix::sys::socket::{getsockopt, sockopt::PeerCredentials}; -+ #[cfg(any(target_os = "android", target_os = "linux"))] -+ let client_uid = { -+ use nix::sys::socket::{getsockopt, sockopt::PeerCredentials}; - -- // FIXME: Could and should this be async? -- let creds = getsockopt(stream.as_raw_fd(), PeerCredentials) -- .map_err(|e| Error::Handshake(format!("Failed to get peer credentials: {}", e)))?; -+ let creds = getsockopt(stream.as_raw_fd(), PeerCredentials) -+ .map_err(|e| Error::Handshake(format!("Failed to get peer credentials: {}", e)))?; - -- let auth = Authenticated::server(Async::new(stream)?, guid.clone(), creds.uid()).await?; -+ creds.uid() -+ }; -+ #[cfg(any( -+ target_os = "macos", -+ target_os = "ios", -+ target_os = "freebsd", -+ target_os = "dragonfly", -+ target_os = "openbsd", -+ target_os = "netbsd" -+ ))] -+ let client_uid = nix::unistd::getpeereid(stream.as_raw_fd()) -+ .map_err(|e| Error::Handshake(format!("Failed to get peer credentials: {}", e)))? -+ .0 -+ .into(); -+ -+ let auth = Authenticated::server(Async::new(stream)?, guid.clone(), client_uid).await?; - - Ok(Self::new_authenticated(auth)) - } ---- cargo-crates/zbus-1.9.1/src/connection.rs.orig 1970-01-01 00:00:00 UTC -+++ cargo-crates/zbus-1.9.1/src/connection.rs -@@ -160,12 +160,29 @@ impl Connection { - /// Upon successful return, the connection is fully established and negotiated: D-Bus messages - /// can be sent and received. - pub fn new_unix_server(stream: UnixStream, guid: &Guid) -> Result<Self> { -- use nix::sys::socket::{getsockopt, sockopt::PeerCredentials}; -+ #[cfg(any(target_os = "android", target_os = "linux"))] -+ let client_uid = { -+ use nix::sys::socket::{getsockopt, sockopt::PeerCredentials}; - -- let creds = getsockopt(stream.as_raw_fd(), PeerCredentials) -- .map_err(|e| Error::Handshake(format!("Failed to get peer credentials: {}", e)))?; -+ let creds = getsockopt(stream.as_raw_fd(), PeerCredentials) -+ .map_err(|e| Error::Handshake(format!("Failed to get peer credentials: {}", e)))?; - -- let handshake = ServerHandshake::new(stream, guid.clone(), creds.uid()); -+ creds.uid() -+ }; -+ #[cfg(any( -+ target_os = "macos", -+ target_os = "ios", -+ target_os = "freebsd", -+ target_os = "dragonfly", -+ target_os = "openbsd", -+ target_os = "netbsd" -+ ))] -+ let client_uid = nix::unistd::getpeereid(stream.as_raw_fd()) -+ .map_err(|e| Error::Handshake(format!("Failed to get peer credentials: {}", e)))? -+ .0 -+ .into(); -+ -+ let handshake = ServerHandshake::new(stream, guid.clone(), client_uid); - handshake - .blocking_finish() - .map(Connection::new_authenticated_unix) ---- cargo-crates/zbus-1.9.1/src/handshake.rs.orig 1970-01-01 00:00:00 UTC -+++ cargo-crates/zbus-1.9.1/src/handshake.rs -@@ -124,7 +124,7 @@ impl<S: Socket> ClientHandshake<S> { - - fn flush_buffer(&mut self) -> Result<()> { - while !self.buffer.is_empty() { -- let written = self.socket.sendmsg(&self.buffer, &[])?; -+ let written = self.socket.sendmsg(&self.buffer, &[], false)?; - self.buffer.drain(..written); - } - Ok(()) -@@ -182,6 +182,15 @@ impl<S: Socket> Handshake<S> for ClientHandshake<S> { - self.step = ClientHandshakeStep::SendingOauth; - } - ClientHandshakeStep::SendingOauth => { -+ #[cfg(any(target_os = "freebsd", target_os = "dragonfly"))] -+ { -+ let zero = self.buffer.drain(..1).next().unwrap(); -+ if self.socket.sendmsg(&[zero], &[], true)? != 1 { -+ return Err(Error::Handshake( -+ "Could not send zero byte with credentials".to_string(), -+ )); -+ } -+ } - self.flush_buffer()?; - self.step = ClientHandshakeStep::WaitOauth; - } -@@ -385,7 +394,7 @@ impl<S: Socket> ServerHandshake<S> { - - fn flush_buffer(&mut self) -> Result<()> { - while !self.buffer.is_empty() { -- let written = self.socket.sendmsg(&self.buffer, &[])?; -+ let written = self.socket.sendmsg(&self.buffer, &[], false)?; - self.buffer.drain(..written); - } - Ok(()) ---- cargo-crates/zbus-1.9.1/src/raw/connection.rs.orig 1970-01-01 00:00:00 UTC -+++ cargo-crates/zbus-1.9.1/src/raw/connection.rs -@@ -47,7 +47,7 @@ impl<S: Socket> Connection<S> { - // VecDeque should never return an empty front buffer if the VecDeque - // itself is not empty - debug_assert!(!front.is_empty()); -- let written = self.socket.sendmsg(front, &[])?; -+ let written = self.socket.sendmsg(front, &[], false)?; - self.raw_out_buffer.drain(..written); - } - -@@ -55,14 +55,14 @@ impl<S: Socket> Connection<S> { - while let Some(msg) = self.msg_out_buffer.front() { - let mut data = msg.as_bytes(); - let fds = msg.fds(); -- let written = self.socket.sendmsg(data, &fds)?; -+ let written = self.socket.sendmsg(data, &fds, false)?; - // at least some part of the message has been sent, see if we can/need to send more - // now the message must be removed from msg_out_buffer and any leftover bytes - // must be stored into raw_out_buffer - let msg = self.msg_out_buffer.pop_front().unwrap(); - data = &msg.as_bytes()[written..]; - while !data.is_empty() { -- match self.socket.sendmsg(data, &[]) { -+ match self.socket.sendmsg(data, &[], false) { - Ok(n) => data = &data[n..], - Err(e) => { - // an error occured, we cannot send more, store the remaining into ---- cargo-crates/zbus-1.9.1/src/raw/socket.rs.orig 1970-01-01 00:00:00 UTC -+++ cargo-crates/zbus-1.9.1/src/raw/socket.rs -@@ -47,7 +47,7 @@ pub trait Socket { - /// - /// If the underlying transport does not support transmitting file descriptors, this - /// will return `Err(ErrorKind::InvalidInput)`. -- fn sendmsg(&mut self, buffer: &[u8], fds: &[RawFd]) -> io::Result<usize>; -+ fn sendmsg(&mut self, buffer: &[u8], fds: &[RawFd], creds: bool) -> io::Result<usize>; - - /// Close the socket. - /// -@@ -74,6 +74,10 @@ impl Socket for UnixStream { - Ok(msg) => { - let mut fds = vec![]; - for cmsg in msg.cmsgs() { -+ #[cfg(any(target_os = "freebsd", target_os = "dragonfly"))] -+ if let ControlMessageOwned::ScmCreds(_) = cmsg { -+ continue; -+ } - if let ControlMessageOwned::ScmRights(fd) = cmsg { - fds.extend(fd.iter().map(|&f| unsafe { OwnedFd::from_raw_fd(f) })); - } else { -@@ -90,12 +94,23 @@ impl Socket for UnixStream { - } - } - -- fn sendmsg(&mut self, buffer: &[u8], fds: &[RawFd]) -> io::Result<usize> { -- let cmsg = if !fds.is_empty() { -+ fn sendmsg(&mut self, buffer: &[u8], fds: &[RawFd], creds: bool) -> io::Result<usize> { -+ let mut cmsg = if !fds.is_empty() { - vec![ControlMessage::ScmRights(fds)] - } else { - vec![] - }; -+ #[cfg(any(target_os = "android", target_os = "linux"))] -+ let unix_creds; -+ if creds { -+ #[cfg(any(target_os = "android", target_os = "linux"))] -+ { -+ unix_creds = Some(nix::sys::socket::UnixCredentials::new()); -+ cmsg.push(ControlMessage::ScmCredentials(unix_creds.as_ref().unwrap())); -+ } -+ #[cfg(any(target_os = "freebsd", target_os = "dragonfly"))] -+ cmsg.push(ControlMessage::ScmCreds); -+ } - let iov = [IoVec::from_slice(buffer)]; - match sendmsg(self.as_raw_fd(), &iov, &cmsg, MsgFlags::empty(), None) { - // can it really happen? -@@ -124,8 +139,8 @@ where - self.get_mut().recvmsg(buffer) - } - -- fn sendmsg(&mut self, buffer: &[u8], fds: &[RawFd]) -> io::Result<usize> { -- self.get_mut().sendmsg(buffer, fds) -+ fn sendmsg(&mut self, buffer: &[u8], fds: &[RawFd], creds: bool) -> io::Result<usize> { -+ self.get_mut().sendmsg(buffer, fds, creds) - } - - fn close(&self) -> io::Result<()> { ---- wezterm-toast-notification/Cargo.toml.orig 2021-08-14 19:44:38 UTC -+++ wezterm-toast-notification/Cargo.toml -@@ -11,7 +11,7 @@ build = "build.rs" - open = "2.0" - log = "0.4" - --[target.'cfg(all(not(windows), not(target_os="macos"), not(target_os="freebsd")))'.dependencies] -+[target.'cfg(all(not(windows), not(target_os="macos")))'.dependencies] - serde = {version="1.0", features = ["derive"]} - zbus = "1.8" - zvariant = "2.0" ---- wezterm-toast-notification/src/dbus.rs.orig 2021-08-14 19:44:38 UTC -+++ wezterm-toast-notification/src/dbus.rs -@@ -1,4 +1,4 @@ --#![cfg(all(not(target_os = "macos"), not(windows), not(target_os = "freebsd")))] -+#![cfg(all(not(target_os = "macos"), not(windows)))] - //! See <https://developer.gnome.org/notification-spec/> - - use crate::ToastNotification; ---- wezterm-toast-notification/src/lib.rs.orig 2021-08-14 19:44:38 UTC -+++ wezterm-toast-notification/src/lib.rs -@@ -18,7 +18,7 @@ impl ToastNotification { - - #[cfg(windows)] - use crate::windows as backend; --#[cfg(all(not(target_os = "macos"), not(windows), not(target_os = "freebsd")))] -+#[cfg(all(not(target_os = "macos"), not(windows)))] - use dbus as backend; - #[cfg(target_os = "macos")] - use macos as backend; -@@ -31,9 +31,6 @@ mod nop { - Ok(()) - } - } -- --#[cfg(target_os = "freebsd")] --use nop as backend; - - pub fn show(notif: ToastNotification) { - if let Err(err) = backend::show_notif(notif) { |