1 |
Frank Peters posted on Fri, 18 Oct 2013 21:36:09 -0400 as excerpted: |
2 |
|
3 |
> Up and coming, like it or not, from the Freedesktop project is the |
4 |
> X-Window replacement called Wayland. Gentoo is already involved with |
5 |
> Wayland although it is still considered experimental. |
6 |
> |
7 |
> My concern is whether or not Wayland will totally supplant X-Window or |
8 |
> will it exist as an option to X-Window. That is, when Wayland becomes |
9 |
> finally ready for prime time, will we all be forced to adopt it with no |
10 |
> alternative or will the standard X-Window also be a choice? |
11 |
|
12 |
Good question. Note that it can actually be seen as two separate |
13 |
questions, one in general, and one as it applies to gentoo, specifically. |
14 |
|
15 |
For the general case, from all I've read, all the informed sources seem |
16 |
to expect the two to coexist together for some time, if I were to guess, |
17 |
I'd say three years or so minimum, and likely far longer in some distros, |
18 |
particularly those like gentoo and debian that support platforms running |
19 |
more than just the Linux kernel and general GNU-based userland. Given |
20 |
that the BSDs tend to move at a somewhat slower pace than Linux and some |
21 |
of the wayland technology is currently most developed on Linux, it'll |
22 |
likely be longer, I'd guess at least five years and very possibly a |
23 |
decade or more, on them. |
24 |
|
25 |
It's also worth noting that with some of the enterprise distros having |
26 |
support terms of nearing a decade, even if/when "current" linux drops |
27 |
xorg, support will still be around for xorg (on those old distros) for a |
28 |
(relatively) very long time. |
29 |
|
30 |
Of course the picture is rather more complex than that simple top-of-the- |
31 |
fold summary implies. |
32 |
|
33 |
* "xwayland" is an xserver run as a wayland client. There are already |
34 |
xwayland patches for xorg that make it run as a wayland client instead of |
35 |
directly, and now that xorg-server 1.15 has been delayed in ordered to |
36 |
add more features, the xwayland patches could well make it. This will |
37 |
provide the X-protocol backward compatibility for wayland, so it can |
38 |
continue to run X apps that haven't been ported to wayland yet. |
39 |
|
40 |
(In the original plans I remember reading that the plan was for this to |
41 |
work both ways, such that wayland could be run as an X client, as well, |
42 |
but I haven't read anything about that lately so I don't know what the |
43 |
status is on that.) |
44 |
|
45 |
* Wayland is already using mesa as one of its OpenGL backends backends |
46 |
(with others available where hardware isn't able to run OpenGL/EGL), |
47 |
rendering to OpenGL/EGL. So currently X-based apps that speak OpenGL/EGL |
48 |
should continue to run as well, using xwayland for the X-protocol stuff |
49 |
they do, and mesa (or other OpenGL/EGL implementations) where they |
50 |
already speak OpenGL directly. |
51 |
|
52 |
So there shouldn't be too much problem with people being stranded with X |
53 |
apps they can no longer run, because xwayland, a modified xorg-server, |
54 |
will be available for wayland, and X clients can talk to it as they |
55 |
always have to xorg, and to mesa or other opengl/egl implementation |
56 |
directly where they are already bypassing X using them. |
57 |
|
58 |
|
59 |
* On the flip-side, it's worth noting that the wayland/weston devs and |
60 |
xorg devs are generally the same people. After wayland gets going, their |
61 |
focus is going to be almost entirely on it, and while xorg may still be |
62 |
"supported", don't expect many new features, and at some point, drivers |
63 |
for new hardware and the like will probably dry up too, altho legacy |
64 |
hardware will of course continue to be supported and to work in existing |
65 |
form for rather longer. (This is of course for the Linux side. The BSDs |
66 |
will likely continue support for somewhat longer as well, altho just as |
67 |
with KMS vs UMS, they'll likely eventually be forced to adapt, as in |
68 |
general they simply don't have the developer power to continue xorg |
69 |
development at its current level.) |
70 |
|
71 |
* In practice, much like the story we're seeing play out with systemd, |
72 |
while xorg will remain around for some time and existing features will |
73 |
probably continue to work in general as they always have, just as the |
74 |
various alternative init systems are, it's likely many of the newer |
75 |
features will only function as designed and/or will only be "supported" |
76 |
on wayland. And, as we're seeing with gnome and systemd already, I |
77 |
predict they'll be dropping support for anything but wayland/weston |
78 |
sooner rather than later, basically leaving the non-linux platforms and |
79 |
those who aren't ready to make that change out in the cold, at least as |
80 |
far as gnome goes. Just as we're seeing with systemd, distros such as |
81 |
gentoo who want to continue to support gnome with xorg will be able to do |
82 |
so for a couple releases, but at some point upstream gnome's code base |
83 |
will have diverged significantly enough that it'll force distros into |
84 |
only supporting wayland/weston for their gnome users, as well. |
85 |
|
86 |
* However, just as kde has announced that they plan to continue support |
87 |
for the BSDs and for Linux without systemd, and at least currently, |
88 |
that's what they're doing, kde will continue to support xorg, too. |
89 |
|
90 |
* Again as with systemd, other gtk-based desktops will continue to |
91 |
function for awhile with xorg, but just as the BSDs aren't able to |
92 |
support the xorg code base on their own, the other desktops won't be able |
93 |
to support continued gtk development, at least not to the same level and |
94 |
at the same speed, on their own, and they'll ultimately have to either go |
95 |
wayland-only as well, or jump off of gtk, to qt or the like, again, as is |
96 |
already happening due to gnome/gtk's growing systemd dependence. |
97 |
|
98 |
* I don't know enough about enlightenment to be able to intelligently |
99 |
comment/predict for it. |
100 |
|
101 |
* Again, the few x-protocol-only apps and basic wms such as the *box |
102 |
family and icewm, should continue to "just work" within the X domain, |
103 |
regardless of whether they're running on xorg-server on the kernel and |
104 |
hardware directly, or whether they're running on xorg-server as xwayland |
105 |
on wayland, since AFAIK, they're pretty basic x-protocol in their |
106 |
requirements. |
107 |
|
108 |
So in the general case, basically what you should see is that with the |
109 |
exception of gnome and to a lessor extent the other gtk-based desktops |
110 |
and apps, existing xorg functionality should continue to be maintained, |
111 |
at least for existing hardware, for quite some time. But expect new |
112 |
features and new hardware support to eventually dry up and blow away, as |
113 |
the new-feature/new-hardware focus will now be on wayland. Still, even |
114 |
if it's via xwayland and mesa, existing xorg/opengl/egl-based apps should |
115 |
continue to function, as xwayland and mesa will continue to provide |
116 |
backward compatibility support for x-protocol/opengl/egl. |
117 |
|
118 |
|
119 |
For the gentoo-specific case, given the above and the systemd precedent, |
120 |
I think what's likely to happen there should already be pretty clear. |
121 |
Gentoo isn't dropping openrc support any time soon (the horizon remains |
122 |
unchanged, in practice about two years out minimum, even if they were to |
123 |
decide to drop it today, and there's absolutely NO hint of that) and it's |
124 |
extremely unlikely they'll drop xorg support either, at least not with a |
125 |
warning lead time of multiple years, for very much the same reasons |
126 |
including the fact that unlike systemd and (I think) wayland, gentoo (and |
127 |
debian) run on more than just Linux, so alternatives much remain |
128 |
supported as long as those non-linux platforms remain supported. |
129 |
|
130 |
Again, the parallels to the systemd situation are very high. Those |
131 |
running gnome are likely to find themselves with another tough choice, |
132 |
gnome and systemd/wayland or give up gnome in ordered to keep openrc/ |
133 |
xorg. Gnome upstream always /has/ been the "there's only one true way, |
134 |
ours, and if you don't see it, well, you're just lost", type, and that's |
135 |
unlikely to change. |
136 |
|
137 |
gentoo/kde will very likely follow their upstream and continue providing |
138 |
support as well, helped by the fact that the qt toolkit they're built on |
139 |
continues to provide very wide support, including for the BSDs as well as |
140 |
(GNU/)Linux, and for MSWindows and various mobile OSs such as Android |
141 |
(definitely non-gnu/Linux). In fact, that's one of the reasons we're |
142 |
already seeing some of the other formerly gtk-based desktops switch to qt- |
143 |
based, as with both systemd and wayland and with gnome dominating gtk |
144 |
development, they see the writing on the wall. |
145 |
|
146 |
And as with the general case, the pure x-protocol and opengl/egl based |
147 |
apps and toolkits should continue to "just work" on either "legacy" xorg, |
148 |
or via xwayland, as gentoo really has no reason to throw roadblocks in |
149 |
the way, where there shouldn't be any upstream. At worst, just as |
150 |
gentoo's doing today only adding one more reason to the pile, gentoo |
151 |
(along with other distros in similar circumstances) will maintain |
152 |
"trivial" patches as necessary to keep them working on gentoo. It's when |
153 |
the patches get more than trivial that things become a problem, but |
154 |
that's generally due either to deliberately uncooperative upstreams, or |
155 |
to upstreams simply disappearing and their packages eventually dying "of |
156 |
natural causes" due to pure bitrot. |
157 |
|
158 |
> Another concern centers around all of the udev/dbus stuff which I have |
159 |
> so far successfully managed to completely avoid. A second question then |
160 |
> is how much will Wayland be dependent on udev? Will it be an option or |
161 |
> mandatory? |
162 |
|
163 |
*THAT* is a very good question -- unlike the above, one I don't have an |
164 |
answer for. |
165 |
|
166 |
To the extent that my experience and knowledge /does/ provide an answer, |
167 |
it's this observation: Udev functionality tends to remain in general |
168 |
optional as for the most part it's simply "plug-n-play" type |
169 |
functionality like detecting new hardware and autoloading modules and |
170 |
automounting storage drives when they appear. As long as you continue to |
171 |
be comfortable doing things the "manual" way, which you'd seem to be, |
172 |
udev continues to be optional, and my best guess is that it will |
173 |
/continue/ to be so with wayland, of course with the obvious trade-off, |
174 |
that you'll likely have to do the wayland equivalent of providing an |
175 |
xorg.conf, since my best guess is that wayland will very likely depend on |
176 |
udev to autoconfigure. |
177 |
|
178 |
Dbus, OTOH, is I'd say an entirely different story. There are already X- |
179 |
based (and possibly some non-X-based as well) apps that communicate only |
180 |
via dbus. Presently, these are reasonably easily avoided, since the only |
181 |
apps able to make a sufficiently solid assumption about dbus being |
182 |
available are the automation/autoconfig type apps, and you're already |
183 |
avoiding those to avoid udev. However, with wayland there will be a MUCH |
184 |
STRONGER assumption that dbus will be available, since part of the whole |
185 |
purpose of wayland is to be able to drop legacy compatibility from wayland |
186 |
and its new protocol and only implement that via xwayland and the like, |
187 |
so unlike with the x-protocol, the compatibility layer can be dropped as |
188 |
soon as there's no further clients requiring it. |
189 |
|
190 |
Thus, while it's ONLY a guess, it's a best-guess, wayland itself may well |
191 |
require or at least assume dbus, and it's very-to-extremely-likely that |
192 |
wayland clients will assume dbus to the level of hard-requirement as well. |
193 |
|
194 |
But there's two bright sides to that: |
195 |
|
196 |
1) As above, existing x-protocol and opengl/egl clients should continue |
197 |
to work with few if any changes as they run on top of xwayland which will |
198 |
be providing the compatibility layer they require. So if you're getting |
199 |
along without it now as you say you are, you shouldn't have to worry |
200 |
about existing x-based apps, and will only need it for new apps and/or |
201 |
apps ported to wayland, presumably with new features added in the |
202 |
process. If you're content with existing functionality, therefore, you |
203 |
should be fine until existing apps die of old-age and bit-rot. |
204 |
|
205 |
2) There's a project already well underway that will make dbus a kernel |
206 |
provided service, since the kernel is in the best position to enforce the |
207 |
necessary security as well as to be able to make the necessary bandwidth |
208 |
guarantees, both of which have been proven to be major challenges with |
209 |
the existing userland based implementation. |
210 |
|
211 |
Thus, it's very likely that at some point you'll enable (or disable) the |
212 |
dbus kernel feature much as you enable (disable) any other kernel feature |
213 |
today, and the currently required userland baggage that provides the |
214 |
feature currently will no longer be required. |
215 |
|
216 |
Of course a kernel-feature-dbus means that unlike today, dbus should be |
217 |
available from very early userspace stage, without forcing an initr* or |
218 |
other similarly cumbersome workaround. |
219 |
|
220 |
Whether that addresses your personal concerns about dbus I don't know, |
221 |
but it should certainly go quite some distance to address the security, |
222 |
bandwidth and simply hassle issues associated with dbus today, so it's |
223 |
very possible that it will. |
224 |
|
225 |
Of course, while given the people involved I'd put the chances of kernel- |
226 |
dbus happening at well above 50%, I'm *NOT* sure of the status of |
227 |
existing patches, if any, which means AFAIK while the plans are already |
228 |
quite concrete and I believe there's /some/ code already, AFAIK it's |
229 |
still close enough to vaporware status that it's not yet a given, and |
230 |
things could well still change. But kernelspace-dbus (or at least |
231 |
something looking and functioning similar enough that existing userspace |
232 |
shouldn't have to be /entirely/ rewritten to use it) is definitely the |
233 |
plan, anyway, I do know that much. |
234 |
|
235 |
-- |
236 |
Duncan - List replies preferred. No HTML msgs. |
237 |
"Every nonfree program has a lord, a master -- |
238 |
and if you use the program, he is your master." Richard Stallman |