With a project as user/dev hostile as wayland, it's much better to be a 'last mover' than first.
For the life of me, I'll never understand how wayland got traction with the community.
'Hey guys, we decided to implement a display server from scratch! We broke a ton of existing functionality and made a ton of low level stuff that X used to handle the responsibility of WM/DE devs!'
I think it was the "security" argument. Some magic words like "security" and "protect the children" make most people go insane, abandon all reason.
You'll excuse me if I am not terribly enthusiastic about breaking all sorts of functionality to solve a security problem I've never experienced in my 25 years on linux.
Exactly. It's hard to be enthusiastic about something which breaks a lot of stuff I rely on daily, when the benefit is that it fixes problems I've never had.
My theory about the motivation behind the extra security is that it's largely driven by corporations wanting to make desktop Linux less free and less open, and normalize proprietary software instead of open-source. Because profit. Proprietary software is inherently not trustworthy, so the execution environment needs extra security and restrictions, and must be generally less powerful to reduce the damage it can do. Essentially, proprietary software needs the same precautions as malware. So the corps needed to "androidify" desktop Linux. Hence the change from curated distro package repositories to corporate app stores, and the reason why there's so much money pushing to replace X11 with Wayland.
In an open-source ecosystem, users and developers are one and the same, or at least on the same "side", cooperating with each other to make tools which work as well as possible for everyone. Each big program tends to be a collaborative effort where a lot of people contribute to make things better for everyone. Things mostly "just work" and people can typically trust their computers not to do anything weird or hostile.
Very different than a proprietary commercial ecosystem, where users and developers have more of an adversarial relationship. Each program tends to be created in a closed silo by one person or a relatively small team, and is designed primarily to extract money from users, with all other concerns being secondary. It is very common for profit-driven developers to engage in deceptive practices, or do things the user doesn't want, like showing advertisements, collecting and selling data, sabotaging products from competitors, using the device as a node in a botnet or secret compute farm, forcing unwanted updates, microtransactions or subscription fees, etc. So nothing can be trusted, and the entire system needs extensive protections against every type of misbehavior imaginable... even if that means reducing the power and features available to the user.
I've really enjoyed the past few decades of living entirely in the open-source world, where those problems pretty much just don't exist. But with corps pushing the androidification of desktop Linux, I fear those days may be coming to an end.
Xorg's security (and X11 in general) is objectively terrible - this is not even a debatable question.
It is, but my argument is that better security is not needed! There is only one user. All apps are his/hers.
Linux security inside a user's session is bad in general. It all started in the '90s from the principle that all installed software is FOSS, sources inspected, and compiled distro packages trusted.
So why make the GUI secure if everything else isn't? If anyone wants to have better security (or privacy) in Linux, would have to start with the basic permissions model.Great, so let wayland be a hardened option for those who care.
It is and you're free to use X if you want
IMO the issue is that the same group stewarding Wayland was also xorg, and intentionally stifled improvement on xorg even when the work just a matter of merging the PR.
Merging a PR by drive-by contributors is far from trivial. As the maintainer, you become responsible for the other person's code for all eternity; it's on you to read it, understand it, update it when stuff around it changes, and fix it when it breaks.
Not a problem for obviously-correct changes of a couple of lines, but most PRs aren't like that.
I understand and that's a fair point. I should have phrased that differently, in that the PRs for features were waiting to be merged. I'm sure merging into a codebase as... storied? as xorg is no small task.
>and intentionally stifled improvement on xorg
Open source developers are not required to spend their time prioritizing your priorities. You just have to look to Xlibre to see that a lot of contributions are quite bad quality, and in a C codebase of Xorg's complexity and security profile it's not a small job to review things.
Nothing I said in any way implied that freedesktop should be required to do anything. I can't speak to the quality of xlibre merges, only that if whatever is going on over there led to improvements in xorg after a drought, that's a good thing.
If wayland had been sold as a hardened display for those who needed that level of security, I would not have a problem with it.
As it is, the community got constantly browbeat with 'this is the future' and 'it's so much faster!' when recent benchmarks have proven that to be false.
Then go use X. Nobody's stopping you, you can just ignore any brow beating. /ignore is a useful IRC command.
You'll probably find it to be a not great experience, since almost all the people who spend their time actually working on graphics and GUIs in the Linux world prefer to work on Wayland. So X doesn't get much love these days (and you're not entitled to their efforts after all). But it's not like they erased all the old X code from existence.
> You'll probably find it to be a not great experience
I'm confused where I'm likely to be suffering. If I start using Wayland tomorrow would I even notice? Apart from having to switch DEs, of course.
Are you seriously acting like every application having full access over other applications is not an actual security issue?
It is for netflix, or the cloud image storage provider that wants to secure against the consumer easily extracting data and going to someone else. The user being able to easily take a program made by a third party and have it completely rearrange the guts of any other program is the basis of consumer security in a world without a unified government keeping commercial interests at bay.
It is, but nothing can be done about it. That's how Linux permissions work. Any app running as me can execute any other app I have permissions to run. It can pipe stdin/out/err, trace it, etc. Why should the desktop apps be different?
See my other comment too.
Wayland is not a "display server", it's a display protocol.
A lot of the "existing functionality" that it broke has nothing to do with displays, it's stuff that got crammed into Xorg at some point whether it made sense or not.
I find it quite funny that many of the same people that rag on systemd and say it does too many things, are big fans of Xorg doing a bunch of things that "display server" probably should not be handling.
Even if Wayland was a "display server", it would still "remove existing functionality" if it meant that in any principled sense, because "display server" is only half of what Xorg does.
But sure, the transition was difficult and took a long time.
>Wayland is not a "display server", it's a display protocol.
I, as an end user, do NOT care.
>A lot of the "existing functionality" that it broke has nothing to do with displays, it's stuff that got crammed into Xorg at some point whether it made sense or not.
I also don't care about ivory tower ideals of what is within the dominion of 'display' and what is not. The fact of the matter is their changes broke a ton of functionality, and instead of even trying to provide feature parity, they basically dumped all that responsibility onto the WM/DE devs.
I have no idea why the community didn't take one look at their proposal and flatly ignore them.
> instead of even trying to provide feature parity, they basically dumped all that responsibility onto the WM/DE devs.
In other words, the Wayland people should perhaps have defined official protocol extensions early on to cover most of what X did, thus preventing all the initial interop issues when Gnome and KDE and Sway tried to reinvent them independently.
In hindsight, it's my opinion that wayland, if it had to exist at all, should have been implemented like this:
1. Add GBM to graphics drivers and start working it up the stack from the bottom, stopping at Xorg. That is, make rootful XWayland the standard Xorg before standalone even is a thing. This reduces maintenance work up front rather than belatedly.
2.a. Implement weston as a standalone compositor.
2.b. Actually make weston fully functional. Figure out everything needed to provide an actual working desktop environment with the features that users expect out of the box. Standardize all the protocols needed for at least a basic XFCE-ish environment rather than hoping someone else will do it.
3. Then, only after these things are done and working, announce to the world that wayland, a quiet project that has until now explicitly suggested nobody use it, is now the future of linux graphical systems and everyone should plan to migrate.
The community doesn't really have a say because Xorg is effectively on life support and the Xorg devs are now working on Wayland. There aren't many people in this world who could keep Xorg going. Some distros are sticking to Xorg, but it will become more and more difficult in the coming years.
People keep saying Xorg will stop working, but it has yet to turn into a pumpkin, so I dunno man.
Can it do new things? Eh, probably not. Do I need it to do new things? Not really.
Not in the short-term, for sure, and probably not even in the mid-term. But hardware keeps changing, and at some point nobody will care enough (or be able) to implement proper support for it in X (or proper support of X in that hardware). Hopefully we still have at least a decade of X though.
If nothing else this is a very strong commentary on just how challenging landing positive changes in Xorg felt to the community.
This pretty much. Xorg got almost everything that I care about to have a functionning GUI. You only startx and the only thing you may need are utils programs like a wm, a compositor, a bar… now you have conflicting implementation from gnome, kde, wlroots,… each with its own set of features.
Yeah, instead of the wayland folks leading the effort to fix issues, it's often some individual DE / WM going off, fixing it the way they prefer, and wayland grudgingly adopting it as official because they know the ecosystem is fragmenting bad enough as it is.
I have no idea why the community didn't take one look at their proposal and flatly ignore them.
At the time, RedHat basically controlled Gnome via paid devs and donations. And the same for this Wayland nonsense. Oh, and systemd too!
Notice a pattern?
And this transition is nowhere near done. Just look at Kicad and pretty much any DAW that loads audio plugins (to name two major usecases where Wayland simply doesn't cut it).
Sure Xwayland exists and mostly (not entirely) works, but that's a band-aid for what is essentially a "we broke it and don't care" approach.
The daw problem is really really bad too. We've got a de facto standard forming right now where you link libwayland.so and hope the structs never ever ever change in the next 30 years.
Also, as benchmarks show, xwayland introduces pretty bad latency..
The latency isn't that bad, it's reasonable for a compatibility shim.
It does not matter, X11 is also not a display server it is a protocol. That distinction changes nothing.
For what it's worth Xorg is the display server, before that it was XFree86, there was also Xsgi and Xsun and for mac Xquartz, I even saw a neat project once where the Xserver was in javascript, I am trying to find it again but our modern search engines are a bit shit. The point being all of these can interoperate with one another.
We have our cathedrals, only we are such barbarians as to call them worthless garbage and unfit for purpose and do our best to tear our legacy down.> X11 is also not a display server it is a protocol
With a reference implementation. Xsgi, Xsun, Xquartz, and all the rest used the reference implementation with platform driver glue.
> Wayland is not a "display server", it's a display protocol.
This is a huge part of what "user/dev hostile" means in my book; with Wayland, getting a working desktop always someone else's responsibility, all features have to be reimplemented across DEs endlessly (with often-incompatible variations, of course), and they all blame each other and program authors for bugs while the Wayland project refuses to even acknowledge basic features like desktop automation or screen recording.
> But sure, the transition was difficult and took a long time.
And this irks me too, people are convinced they're done but I still don't have xmacro. And flameshot is broken, while the alternatives suck. And support for everything depends on the DE now. And java.awt.Robot is broken with no replacement. And the clipboard randomly misses copies. And OBS screen recording is broken for me. And there's no support for display resolution scaling. And ssh -X is gone, while waypipe doesn't work all programs.
But hey, at least there's HDR now or something! It was definitely worth replacing a functioning stack for this. I'm so glad that Plasma 6.8 removes X support!
> Wayland is not a "display server", it's a display protocol.
Bailey: Wayland replaces Xorg
Motte: Wayland is just a protocol
> because "display server" is only half of what Xorg does.
Yes, that's a big part of the problem. X was build for I/O, Wayland was built for O and had to be dragged kicking and screaming into rudimentary I.
> For the life of me, I'll never understand how wayland got traction with the community.
Corporate drive. Originally sponsored by Intel followed by IBM (RedHat) and the rest followed suit.
Money, the "cure" to the hacker ethos.
Sauce?
It's how any of these projects get shifted in distribution if not sponsored.
> Kristian Høgsberg, I work at Intel in the graphics team in the Open Source Technology Center. I'm the founder and maintainer of the Wayland project.
You either pitch or bring it with you. Demonstrate a tech demo and you're granted an engineer or two. It's how Amiga came to be, Steve Jobs with NeXT.
And it appears you can no longer link anything from reddit without being asked to login and they've now nuked old.reddit
If you have an account this thread has some very insightful comments. https://www.reddit.com/r/linux/comments/1m0ztn/how_is_waylan...
> I'll never understand how wayland got traction with the community
There were only a few people willing to work on an alternative, and they didn't have to take a vote, so they just did what they wanted. Corporations and projects adopted it because they wanted something different, and it was the only other option.
Now that we have AI, it will be much easier for genuine community alternatives to emerge, even if we have to battle over the legal ramifications. I for one am willing to go without "official support" to have software that doesn't suck.
[dead]