Improve FreeBSD support (#33162)

This PR contains a set of changes for improving FreeBSD support (#15309,
#29550) and is a kind of follow up to the PR #20480 which added an
initial support for FreeBSD.

A summary of changes is as follows:
- Add some more freebsd conditionals which seem missing in the previous
PR.
- Implement `anonymous_fd()` and `current_path()` functions for FreeBSD.
- Improve detection of FreeBSD in telemetry and GPU detection.
- Temporarily disable LiveKit/WebRTC support to make build succeed.
- Remove support for flatpak since it is Linux-only packaging format.

Adding `RUSTFLAGS="-C link-dead-code"` does not seem necessary anymore.
It builds fine without the flag.

Known issues:
- Integrated terminal is painfully laggy and virtually unusable in my
environment. This might be specific to my setup.
- I cannot input Japanese using IME. When I type characters, they appear
on the screen. But when I hit return key, they disappears. Seems the
same issue as #15409.

My environment is MATE desktop on X11 on FreeBSD 14.2 on Intel Core
i5-7260U integrated graphics.

P.S. For those who might be interested, a work-in-progress FreeBSD port
and binary packages are available at
https://github.com/tagattie/FreeBSD-Zed

Release Notes:

- N/A

---------

Co-authored-by: Peter Tripp <peter@zed.dev>
This commit is contained in:
Hiroki Tagato 2025-06-23 05:23:17 +09:00 committed by GitHub
parent 6b4c607331
commit ac30a8b0df
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
8 changed files with 50 additions and 18 deletions

View file

@ -39,7 +39,7 @@ tokio-tungstenite.workspace = true
util.workspace = true
workspace-hack.workspace = true
[target.'cfg(not(all(target_os = "windows", target_env = "gnu")))'.dependencies]
[target.'cfg(not(any(all(target_os = "windows", target_env = "gnu"), target_os = "freebsd")))'.dependencies]
libwebrtc = { rev = "80bb8f4c9112789f7c24cc98d8423010977806a6", git = "https://github.com/zed-industries/livekit-rust-sdks" }
livekit = { rev = "80bb8f4c9112789f7c24cc98d8423010977806a6", git = "https://github.com/zed-industries/livekit-rust-sdks", features = [
"__rustls-tls"

View file

@ -6,32 +6,32 @@ pub use remote_video_track_view::{RemoteVideoTrackView, RemoteVideoTrackViewEven
#[cfg(not(any(
test,
feature = "test-support",
all(target_os = "windows", target_env = "gnu")
any(all(target_os = "windows", target_env = "gnu"), target_os = "freebsd")
)))]
mod livekit_client;
#[cfg(not(any(
test,
feature = "test-support",
all(target_os = "windows", target_env = "gnu")
any(all(target_os = "windows", target_env = "gnu"), target_os = "freebsd")
)))]
pub use livekit_client::*;
#[cfg(any(
test,
feature = "test-support",
all(target_os = "windows", target_env = "gnu")
any(all(target_os = "windows", target_env = "gnu"), target_os = "freebsd")
))]
mod mock_client;
#[cfg(any(
test,
feature = "test-support",
all(target_os = "windows", target_env = "gnu")
any(all(target_os = "windows", target_env = "gnu"), target_os = "freebsd")
))]
pub mod test;
#[cfg(any(
test,
feature = "test-support",
all(target_os = "windows", target_env = "gnu")
any(all(target_os = "windows", target_env = "gnu"), target_os = "freebsd")
))]
pub use mock_client::*;