Re: Concerns Regarding the Choice of Rust for the Xfce Wayland Compositor

"Brian Tarricone" <[email protected]>
Newsgroups gmane.comp.desktop.xfce.devel.version4
Message-ID <[email protected]>
On Fri, Jul 31, 2026, at 08:31, Yves-Alexis Perez wrote:
>
> There's a really helpful `debstatus` command in cargo which indicates what is
> missing from the distribution, and we're definitely not there yet:
> https://paste.debian.net/hidden/cd97a155
>
> Besides the missing packages, I'm worried about conflicting versions: xfwl4
> seems to require versions older than what's in Debian, for some reason.

Looks like the paste expired, but I just installed and ran it myself.  Let's see... here's where xfwl4 depends on older versions than Debian has:

* rand 0.9 (and its deps): just submitted a smithay PR[0] to get that updated
  to 0.10; I'm sure that will be fine.  xfwl4 also depends directly on 0.9,
  which I'll update shortly.
* pangocairo, pangocairo-sys 0.18: debian has 0.22. Unfortunately this is
  a side-effect of using gtk3-rs; we cannot update past 0.18, so this older
  version needs to be packaged.
* system-deps 6.x, cfg-expr 0.15, target-lexicon 0.12: these are all
  build-deps of stuff in the gtk3-rs stack, which we can't change,
  unfortunately, so these older versions need to be packaged.

Also problematic:

* winit 0.31.0-beta: For some reason smithay decided to update to a beta
  version of winit; hopefully the final release of 0.31.0 will come soon,
  and I assume Debian can update.  If this continues to be a problem,
  Debian can ship xfwl4 with the `winit` feature disabled, which kills
  the dependency, at the expense of being unable to run xfwl4 nested inside
  another Wayland session.  (X11 will still work, as xfwl4 has a dedicated
  nested-x11 backend.)
* wayland-protocols-experimental 20250721.0.1: that feels like a non-semver
  versioning scheme; not sure what their policy is on breaking changes.

Then there are a few crates where xfwl4 depends on something older or newer than what Debian packages; I assume that's a matter of packaging version xfwl4 needs.  For stuff where they're semver-incompatible, I see packages in Debian's archive where older incompatible versions of a package are accommodated by putting the compat version in the package name itself, so that should be doable?

And then beyond that there's a slew of packages that just aren't in Debian at all, so that would be a matter of packaging them, presumably with the existing Debian tools.

> Also smithay (and maybe other crates) doesn't seem to do releases and I'm
> unsure we can put in Debian only the exact version required by xfwl4
> (especially if it's not on crates.io which seems to be the source expected by
> Debian Rust ecosystem).

smithay and smithay-drm-extras should be the only deps that don't do releases; all the rest have releases on crates.io.  I know Debian does sometimes package from git sources (a quick check shows 42 such packages installed on my machine right now), though I get that the current Rust tooling for Debian may not support that, so that could be a blocker.

Someone did ask[1] a few months ago about smithay doing more frequent releases to crates.io, but none of the maintainers responded.  From my experience with them on Matrix, they're a great bunch of people (and are super accepting of contributions), but they don't seem to be too concerned about API/ABI stability at this point in smithay's lifecycle, so maintaining API-stable release branches probably isn't something they'd be too interested in.  "Pin your favorite git rev in Cargo.toml" is a perfectly reasonable approach when considering only the rust/cargo community, but of course causes problems for distro packagers.

Cheers,
Brian

[0] https://github.com/Smithay/smithay/pull/2135
[1] https://github.com/Smithay/smithay/issues/2024
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.