diff options
Diffstat (limited to 'editors/zed/files')
17 files changed, 439 insertions, 0 deletions
diff --git a/editors/zed/files/patch-Cargo.lock b/editors/zed/files/patch-Cargo.lock new file mode 100644 index 000000000000..5104838bae3a --- /dev/null +++ b/editors/zed/files/patch-Cargo.lock @@ -0,0 +1,134 @@ +--- Cargo.lock.orig 2025-11-19 15:41:44 UTC ++++ Cargo.lock +@@ -8389,21 +8389,20 @@ name = "ipc-channel" + + [[package]] + name = "ipc-channel" +-version = "0.19.0" ++version = "0.20.2" + source = "registry+https://github.com/rust-lang/crates.io-index" +-checksum = "6fb8251fb7bcd9ccd3725ed8deae9fe7db8e586495c9eb5b0c52e6233e5e75ea" ++checksum = "f93600b5616c2d075f8af8dbd23c1d69278c5d24e4913d220cbc60b14c95c180" + dependencies = [ + "bincode 1.3.3", + "crossbeam-channel", + "fnv", +- "lazy_static", + "libc", + "mio 1.1.0", +- "rand 0.8.5", ++ "rand 0.9.2", + "serde", + "tempfile", + "uuid", +- "windows 0.58.0", ++ "windows 0.61.3", + ] + + [[package]] +@@ -19824,16 +19823,6 @@ name = "windows" + + [[package]] + name = "windows" +-version = "0.58.0" +-source = "registry+https://github.com/rust-lang/crates.io-index" +-checksum = "dd04d41d93c4992d421894c18c8b43496aa748dd4c081bac0dc93eb0489272b6" +-dependencies = [ +- "windows-core 0.58.0", +- "windows-targets 0.52.6", +-] +- +-[[package]] +-name = "windows" + version = "0.61.3" + source = "registry+https://github.com/rust-lang/crates.io-index" + checksum = "9babd3a767a4c1aef6900409f85f5d53ce2544ccdfaa86dad48c91782c6d6893" +@@ -19892,19 +19881,6 @@ name = "windows-core" + + [[package]] + name = "windows-core" +-version = "0.58.0" +-source = "registry+https://github.com/rust-lang/crates.io-index" +-checksum = "6ba6d44ec8c2591c134257ce647b7ea6b20335bf6379a27dac5f1641fcf59f99" +-dependencies = [ +- "windows-implement 0.58.0", +- "windows-interface 0.58.0", +- "windows-result 0.2.0", +- "windows-strings 0.1.0", +- "windows-targets 0.52.6", +-] +- +-[[package]] +-name = "windows-core" + version = "0.61.2" + source = "registry+https://github.com/rust-lang/crates.io-index" + checksum = "c0fdd3ddb90610c7638aa2b3a3ab2904fb9e5cdbecc643ddb3647212781c4ae3" +@@ -19953,17 +19929,6 @@ name = "windows-implement" + + [[package]] + name = "windows-implement" +-version = "0.58.0" +-source = "registry+https://github.com/rust-lang/crates.io-index" +-checksum = "2bbd5b46c938e506ecbce286b6628a02171d56153ba733b6c741fc627ec9579b" +-dependencies = [ +- "proc-macro2", +- "quote", +- "syn 2.0.106", +-] +- +-[[package]] +-name = "windows-implement" + version = "0.60.2" + source = "registry+https://github.com/rust-lang/crates.io-index" + checksum = "053e2e040ab57b9dc951b72c264860db7eb3b0200ba345b4e4c3b14f67855ddf" +@@ -19986,17 +19951,6 @@ name = "windows-interface" + + [[package]] + name = "windows-interface" +-version = "0.58.0" +-source = "registry+https://github.com/rust-lang/crates.io-index" +-checksum = "053c4c462dc91d3b1504c6fe5a726dd15e216ba718e84a0e46a88fbe5ded3515" +-dependencies = [ +- "proc-macro2", +- "quote", +- "syn 2.0.106", +-] +- +-[[package]] +-name = "windows-interface" + version = "0.59.3" + source = "registry+https://github.com/rust-lang/crates.io-index" + checksum = "3f316c4a2570ba26bbec722032c4099d8c8bc095efccdc15688708623367e358" +@@ -20072,15 +20026,6 @@ name = "windows-result" + + [[package]] + name = "windows-result" +-version = "0.2.0" +-source = "registry+https://github.com/rust-lang/crates.io-index" +-checksum = "1d1043d8214f791817bab27572aaa8af63732e11bf84aa21a45a78d6c317ae0e" +-dependencies = [ +- "windows-targets 0.52.6", +-] +- +-[[package]] +-name = "windows-result" + version = "0.3.4" + source = "registry+https://github.com/rust-lang/crates.io-index" + checksum = "56f42bd332cc6c8eac5af113fc0c1fd6a8fd2aa08a0119358686e5160d0586c6" +@@ -20095,16 +20040,6 @@ dependencies = [ + checksum = "7781fa89eaf60850ac3d2da7af8e5242a5ea78d1a11c49bf2910bb5a73853eb5" + dependencies = [ + "windows-link 0.2.1", +-] +- +-[[package]] +-name = "windows-strings" +-version = "0.1.0" +-source = "registry+https://github.com/rust-lang/crates.io-index" +-checksum = "4cd9b125c486025df0eabcb585e62173c6c9eddcec5d117d3b6e8c30e2ee4d10" +-dependencies = [ +- "windows-result 0.2.0", +- "windows-targets 0.52.6", + ] + + [[package]] diff --git a/editors/zed/files/patch-crates_cli_Cargo.toml b/editors/zed/files/patch-crates_cli_Cargo.toml new file mode 100644 index 000000000000..6b856471c9bc --- /dev/null +++ b/editors/zed/files/patch-crates_cli_Cargo.toml @@ -0,0 +1,11 @@ +--- crates/cli/Cargo.toml.orig 2025-11-15 04:01:33 UTC ++++ crates/cli/Cargo.toml +@@ -25,7 +25,7 @@ collections.workspace = true + askpass.workspace = true + clap.workspace = true + collections.workspace = true +-ipc-channel = "0.19" ++ipc-channel = "0.20.2" + parking_lot.workspace = true + paths.workspace = true + release_channel.workspace = true diff --git a/editors/zed/files/patch-crates_fs_src_fs.rs b/editors/zed/files/patch-crates_fs_src_fs.rs new file mode 100644 index 000000000000..aee69dd1bc0b --- /dev/null +++ b/editors/zed/files/patch-crates_fs_src_fs.rs @@ -0,0 +1,35 @@ +--- crates/fs/src/fs.rs.orig 2025-11-19 15:41:44 UTC ++++ crates/fs/src/fs.rs +@@ -356,7 +356,7 @@ impl FileHandle for std::fs::File { + Ok(new_path) + } + +- #[cfg(target_os = "freebsd")] ++ #[cfg(all(target_os = "freebsd", target_arch = "x86_64"))] + fn current_path(&self, _: &Arc<dyn Fs>) -> Result<PathBuf> { + use std::{ + ffi::{CStr, OsStr}, +@@ -365,7 +365,10 @@ impl FileHandle for std::fs::File { + + let fd = self.as_fd(); + let mut kif = MaybeUninit::<libc::kinfo_file>::uninit(); +- kif.kf_structsize = libc::KINFO_FILE_SIZE; ++ unsafe { ++ std::ptr::write_bytes(kif.as_mut_ptr(), 0, 1); ++ (*kif.as_mut_ptr()).kf_structsize = libc::KINFO_FILE_SIZE; ++ } + + let result = unsafe { libc::fcntl(fd.as_raw_fd(), libc::F_KINFO, kif.as_mut_ptr()) }; + if result == -1 { +@@ -376,6 +379,11 @@ impl FileHandle for std::fs::File { + let c_str = unsafe { CStr::from_ptr(kif.assume_init().kf_path.as_ptr()) }; + let path = PathBuf::from(OsStr::from_bytes(c_str.to_bytes())); + Ok(path) ++ } ++ ++ #[cfg(all(target_os = "freebsd", not(target_arch = "x86_64")))] ++ fn current_path(&self, _: &Arc<dyn Fs>) -> Result<PathBuf> { ++ anyhow::bail!("unimplemented") + } + + #[cfg(target_os = "windows")] diff --git a/editors/zed/files/patch-crates_fs_src_fs__watcher.rs b/editors/zed/files/patch-crates_fs_src_fs__watcher.rs new file mode 100644 index 000000000000..46e20b340014 --- /dev/null +++ b/editors/zed/files/patch-crates_fs_src_fs__watcher.rs @@ -0,0 +1,20 @@ +--- crates/fs/src/fs_watcher.rs.orig 2025-11-15 04:58:18 UTC ++++ crates/fs/src/fs_watcher.rs +@@ -70,7 +70,7 @@ impl Watcher for FsWatcher { + return Ok(()); + } + } +- #[cfg(target_os = "linux")] ++ #[cfg(any(target_os = "linux", target_os = "freebsd"))] + { + log::trace!("path to watch is already watched: {path:?}"); + if self.registrations.lock().contains_key(path) { +@@ -83,7 +83,7 @@ impl Watcher for FsWatcher { + + #[cfg(target_os = "windows")] + let mode = notify::RecursiveMode::Recursive; +- #[cfg(target_os = "linux")] ++ #[cfg(any(target_os = "linux", target_os = "freebsd"))] + let mode = notify::RecursiveMode::NonRecursive; + + let registration_id = global({ diff --git a/editors/zed/files/patch-crates_gpui_examples_layer__shell.rs b/editors/zed/files/patch-crates_gpui_examples_layer__shell.rs new file mode 100644 index 000000000000..9ed9afee3ec4 --- /dev/null +++ b/editors/zed/files/patch-crates_gpui_examples_layer__shell.rs @@ -0,0 +1,18 @@ +--- crates/gpui/examples/layer_shell.rs.orig 2025-11-15 06:20:54 UTC ++++ crates/gpui/examples/layer_shell.rs +@@ -1,12 +1,12 @@ fn main() { + fn main() { +- #[cfg(all(target_os = "linux", feature = "wayland"))] ++ #[cfg(all(any(target_os = "linux", target_os = "freebsd"), feature = "wayland"))] + example::main(); + +- #[cfg(not(all(target_os = "linux", feature = "wayland")))] ++ #[cfg(not(all(any(target_os = "linux", target_os = "freebsd"), feature = "wayland")))] + panic!("This example requires the `wayland` feature and a linux system."); + } + +-#[cfg(all(target_os = "linux", feature = "wayland"))] ++#[cfg(all(any(target_os = "linux", target_os = "freebsd"), feature = "wayland"))] + mod example { + use std::time::{Duration, SystemTime, UNIX_EPOCH}; + diff --git a/editors/zed/files/patch-crates_gpui_src_platform.rs b/editors/zed/files/patch-crates_gpui_src_platform.rs new file mode 100644 index 000000000000..d4c4f89d6498 --- /dev/null +++ b/editors/zed/files/patch-crates_gpui_src_platform.rs @@ -0,0 +1,20 @@ +--- crates/gpui/src/platform.rs.orig 2025-11-19 15:41:44 UTC ++++ crates/gpui/src/platform.rs +@@ -82,7 +82,7 @@ pub(crate) use windows::*; + #[cfg(target_os = "windows")] + pub(crate) use windows::*; + +-#[cfg(all(target_os = "linux", feature = "wayland"))] ++#[cfg(all(any(target_os = "linux", target_os = "freebsd"), feature = "wayland"))] + pub use linux::layer_shell; + + #[cfg(any(test, feature = "test-support"))] +@@ -1338,7 +1338,7 @@ pub enum WindowKind { + + /// A Wayland LayerShell window, used to draw overlays or backgrounds for applications such as + /// docks, notifications or wallpapers. +- #[cfg(all(target_os = "linux", feature = "wayland"))] ++ #[cfg(all(any(target_os = "linux", target_os = "freebsd"), feature = "wayland"))] + LayerShell(layer_shell::LayerShellOptions), + } + diff --git a/editors/zed/files/patch-crates_gpui_src_platform_blade_blade__renderer.rs b/editors/zed/files/patch-crates_gpui_src_platform_blade_blade__renderer.rs new file mode 100644 index 000000000000..b93698633fff --- /dev/null +++ b/editors/zed/files/patch-crates_gpui_src_platform_blade_blade__renderer.rs @@ -0,0 +1,11 @@ +--- crates/gpui/src/platform/blade/blade_renderer.rs.orig 2025-11-15 06:23:16 UTC ++++ crates/gpui/src/platform/blade/blade_renderer.rs +@@ -436,7 +436,7 @@ impl BladeRenderer { + && !self.gpu.wait_for(&last_sp, MAX_FRAME_TIME_MS) + { + log::error!("GPU hung"); +- #[cfg(target_os = "linux")] ++ #[cfg(any(target_os = "linux", target_os = "freebsd"))] + if self.gpu.device_information().driver_name == "radv" { + log::error!( + "there's a known bug with amdgpu/radv, try setting ZED_PATH_SAMPLE_COUNT=0 as a workaround" diff --git a/editors/zed/files/patch-crates_gpui_src_text__system.rs b/editors/zed/files/patch-crates_gpui_src_text__system.rs new file mode 100644 index 000000000000..b99ea3b0793a --- /dev/null +++ b/editors/zed/files/patch-crates_gpui_src_text__system.rs @@ -0,0 +1,11 @@ +--- crates/gpui/src/text_system.rs.orig 2025-11-15 06:24:54 UTC ++++ crates/gpui/src/text_system.rs +@@ -44,7 +44,7 @@ pub(crate) const SUBPIXEL_VARIANTS_Y: u8 = + pub(crate) const SUBPIXEL_VARIANTS_X: u8 = 4; + + pub(crate) const SUBPIXEL_VARIANTS_Y: u8 = +- if cfg!(target_os = "windows") || cfg!(target_os = "linux") { ++ if cfg!(target_os = "windows") || cfg!(target_os = "linux") || cfg!(target_os = "freebsd") { + 1 + } else { + SUBPIXEL_VARIANTS_X diff --git a/editors/zed/files/patch-crates_project_src_agent__server__store.rs b/editors/zed/files/patch-crates_project_src_agent__server__store.rs new file mode 100644 index 000000000000..c9e30fac72cf --- /dev/null +++ b/editors/zed/files/patch-crates_project_src_agent__server__store.rs @@ -0,0 +1,20 @@ +--- crates/project/src/agent_server_store.rs.orig 2025-11-19 15:41:44 UTC ++++ crates/project/src/agent_server_store.rs +@@ -1355,6 +1355,8 @@ fn get_platform_info() -> Option<(&'static str, &'stat + "pc-windows-msvc" + } else if cfg!(target_os = "linux") { + "unknown-linux-gnu" ++ } else if cfg!(target_os = "freebsd") { ++ "unknown-freebsd" + } else { + return None; + }; +@@ -1441,6 +1443,8 @@ impl ExternalAgentServer for LocalExtensionArchiveAgen + "linux" + } else if cfg!(target_os = "windows") { + "windows" ++ } else if cfg!(target_os = "freebsd") { ++ "freebsd" + } else { + anyhow::bail!("unsupported OS"); + }; diff --git a/editors/zed/files/patch-crates_remote__server_Cargo.toml b/editors/zed/files/patch-crates_remote__server_Cargo.toml new file mode 100644 index 000000000000..2ddd55aacd6d --- /dev/null +++ b/editors/zed/files/patch-crates_remote__server_Cargo.toml @@ -0,0 +1,20 @@ +--- crates/remote_server/Cargo.toml.orig 2025-11-19 15:41:44 UTC ++++ crates/remote_server/Cargo.toml +@@ -68,12 +68,16 @@ rayon.workspace = true + thiserror.workspace = true + rayon.workspace = true + +-[target.'cfg(not(windows))'.dependencies] ++[target.'cfg(not(any(windows, target_os = "freebsd")))'.dependencies] + crashes.workspace = true + crash-handler.workspace = true + fork.workspace = true + libc.workspace = true + minidumper.workspace = true ++ ++[target.'cfg(target_os = "freebsd")'.dependencies] ++fork.workspace = true ++libc.workspace = true + + [dev-dependencies] + action_log.workspace = true diff --git a/editors/zed/files/patch-crates_remote__server_src_main.rs b/editors/zed/files/patch-crates_remote__server_src_main.rs new file mode 100644 index 000000000000..1deb2ab8a7b4 --- /dev/null +++ b/editors/zed/files/patch-crates_remote__server_src_main.rs @@ -0,0 +1,10 @@ +--- crates/remote_server/src/main.rs.orig 2025-11-15 04:26:31 UTC ++++ crates/remote_server/src/main.rs +@@ -36,6 +36,7 @@ fn main() -> anyhow::Result<()> { + return Ok(()); + } + ++ #[cfg(not(target_os = "freebsd"))] + if let Some(socket) = &cli.crash_handler { + crashes::crash_server(socket.as_path()); + return Ok(()); diff --git a/editors/zed/files/patch-crates_remote__server_src_unix.rs b/editors/zed/files/patch-crates_remote__server_src_unix.rs new file mode 100644 index 000000000000..e32625cf1d47 --- /dev/null +++ b/editors/zed/files/patch-crates_remote__server_src_unix.rs @@ -0,0 +1,18 @@ +--- crates/remote_server/src/unix.rs.orig 2025-11-19 15:41:44 UTC ++++ crates/remote_server/src/unix.rs +@@ -348,6 +348,7 @@ pub fn execute_run( + + let app = gpui::Application::headless(); + let id = std::process::id().to_string(); ++ #[cfg(not(target_os = "freebsd"))] + app.background_executor() + .spawn(crashes::init(crashes::InitCrashHandler { + session_id: id, +@@ -561,6 +562,7 @@ pub(crate) fn execute_proxy( + let server_paths = ServerPaths::new(&identifier)?; + + let id = std::process::id().to_string(); ++ #[cfg(not(target_os = "freebsd"))] + smol::spawn(crashes::init(crashes::InitCrashHandler { + session_id: id, + zed_version: VERSION.to_owned(), diff --git a/editors/zed/files/patch-crates_remote_src_transport_ssh.rs b/editors/zed/files/patch-crates_remote_src_transport_ssh.rs new file mode 100644 index 000000000000..eb3db95eb4d4 --- /dev/null +++ b/editors/zed/files/patch-crates_remote_src_transport_ssh.rs @@ -0,0 +1,21 @@ +--- crates/remote/src/transport/ssh.rs.orig 2025-11-24 20:23:08 UTC ++++ crates/remote/src/transport/ssh.rs +@@ -1058,6 +1058,7 @@ impl SshSocket { + let os = match os.trim() { + "Darwin" => "macos", + "Linux" => "linux", ++ "FreeBSD" => "freebsd", + _ => anyhow::bail!( + "Prebuilt remote servers are not yet available for {os:?}. See https://zed.dev/docs/remote-development" + ), +@@ -1069,7 +1070,9 @@ impl SshSocket { + || arch.starts_with("aarch64") + { + "aarch64" +- } else if arch.starts_with("x86") { ++ } else if arch.starts_with("x86") ++ || arch.starts_with("amd64") ++ { + "x86_64" + } else { + anyhow::bail!( diff --git a/editors/zed/files/patch-crates_zed_Cargo.toml b/editors/zed/files/patch-crates_zed_Cargo.toml new file mode 100644 index 000000000000..a531457cfe61 --- /dev/null +++ b/editors/zed/files/patch-crates_zed_Cargo.toml @@ -0,0 +1,20 @@ +--- crates/zed/Cargo.toml.orig 2025-11-19 15:41:44 UTC ++++ crates/zed/Cargo.toml +@@ -43,7 +43,6 @@ copilot.workspace = true + command_palette.workspace = true + component.workspace = true + copilot.workspace = true +-crashes.workspace = true + dap_adapters.workspace = true + db.workspace = true + debug_adapter_extension.workspace = true +@@ -177,6 +176,9 @@ ashpd.workspace = true + + [target.'cfg(any(target_os = "linux", target_os = "freebsd"))'.dependencies] + ashpd.workspace = true ++ ++[target.'cfg(not(target_os = "freebsd"))'.dependencies] ++crashes.workspace = true + + [dev-dependencies] + call = { workspace = true, features = ["test-support"] } diff --git a/editors/zed/files/patch-crates_zed_src_main.rs b/editors/zed/files/patch-crates_zed_src_main.rs new file mode 100644 index 000000000000..b13c3099302d --- /dev/null +++ b/editors/zed/files/patch-crates_zed_src_main.rs @@ -0,0 +1,34 @@ +--- crates/zed/src/main.rs.orig 2025-11-19 15:41:44 UTC ++++ crates/zed/src/main.rs +@@ -8,6 +8,7 @@ use collections::HashMap; + use client::{Client, ProxySettings, UserStore, parse_zed_link}; + use collab_ui::channel_view::ChannelView; + use collections::HashMap; ++#[cfg(not(target_os = "freebsd"))] + use crashes::InitCrashHandler; + use db::kvp::{GLOBAL_KEY_VALUE_STORE, KEY_VALUE_STORE}; + use editor::Editor; +@@ -181,6 +182,7 @@ pub fn main() { + } + + // `zed --crash-handler` Makes zed operate in minidump crash handler mode ++ #[cfg(not(target_os = "freebsd"))] + if let Some(socket) = &args.crash_handler { + crashes::crash_server(socket.as_path()); + return; +@@ -291,6 +293,7 @@ pub fn main() { + let session_id = Uuid::new_v4().to_string(); + let session = app.background_executor().block(Session::new()); + ++ #[cfg(not(target_os = "freebsd"))] + app.background_executor() + .spawn(crashes::init(InitCrashHandler { + session_id: session_id.clone(), +@@ -547,6 +550,7 @@ pub fn main() { + auto_update::init(client.clone(), cx); + dap_adapters::init(cx); + auto_update_ui::init(cx); ++ #[cfg(not(target_os = "freebsd"))] + reliability::init( + client.http_client(), + system_id.as_ref().map(|id| id.to_string()), diff --git a/editors/zed/files/patch-crates_zed_src_reliability.rs b/editors/zed/files/patch-crates_zed_src_reliability.rs new file mode 100644 index 000000000000..e0106a811bc5 --- /dev/null +++ b/editors/zed/files/patch-crates_zed_src_reliability.rs @@ -0,0 +1,26 @@ +--- crates/zed/src/reliability.rs.orig 2025-11-19 15:41:44 UTC ++++ crates/zed/src/reliability.rs +@@ -14,6 +14,7 @@ use crate::STARTUP_TIME; + + use crate::STARTUP_TIME; + ++#[cfg(not(target_os = "freebsd"))] + pub fn init(http_client: Arc<HttpClientWithUrl>, installation_id: Option<String>, cx: &mut App) { + monitor_hangs(cx); + +@@ -365,6 +366,7 @@ fn save_hang_trace( + ); + } + ++#[cfg(not(target_os = "freebsd"))] + pub async fn upload_previous_minidumps( + http: Arc<HttpClientWithUrl>, + installation_id: Option<String>, +@@ -404,6 +406,7 @@ pub async fn upload_previous_minidumps( + Ok(()) + } + ++#[cfg(not(target_os = "freebsd"))] + async fn upload_minidump( + http: Arc<HttpClientWithUrl>, + endpoint: &str, diff --git a/editors/zed/files/patch-crates_zed_src_zed.rs b/editors/zed/files/patch-crates_zed_src_zed.rs new file mode 100644 index 000000000000..77bc408cce2e --- /dev/null +++ b/editors/zed/files/patch-crates_zed_src_zed.rs @@ -0,0 +1,10 @@ +--- crates/zed/src/zed.rs.orig 2025-11-24 20:23:08 UTC ++++ crates/zed/src/zed.rs +@@ -382,6 +382,7 @@ pub fn initialize_workspace( + if let Some(specs) = window.gpu_specs() { + log::info!("Using GPU: {:?}", specs); + show_software_emulation_warning_if_needed(specs.clone(), window, cx); ++ #[cfg(not(target_os = "freebsd"))] + if let Some((crash_server, message)) = crashes::CRASH_HANDLER + .get() + .zip(bincode::serialize(&specs).ok()) |
