Gentoo Archives: gentoo-amd64

From: Duncan <1i5t5.duncan@×××.net>
To: gentoo-amd64@l.g.o
Subject: [gentoo-amd64] Re: Wayland and X-Window
Date: Sat, 19 Oct 2013 07:11:34
Message-Id: pan$ce544$4845679f$dfc275d9$ba5f4223@cox.net
In Reply to: [gentoo-amd64] Wayland and X-Window by Frank Peters
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

Replies

Subject Author
Re: [gentoo-amd64] Re: Wayland and X-Window David Klann <dklann@×××××.com>
Re: [gentoo-amd64] Re: Wayland and X-Window Barry Schwartz <chemoelectric@×××××××××××××.org>
Re: [gentoo-amd64] Re: Wayland and X-Window Frank Peters <frank.peters@×××××××.net>