Frank Peters posted on Fri, 18 Oct 2013 21:36:09 -0400 as excerpted: > Up and coming, like it or not, from the Freedesktop project is the > X-Window replacement called Wayland. Gentoo is already involved with > Wayland although it is still considered experimental. > > My concern is whether or not Wayland will totally supplant X-Window or > will it exist as an option to X-Window. That is, when Wayland becomes > finally ready for prime time, will we all be forced to adopt it with no > alternative or will the standard X-Window also be a choice?
Good question. Note that it can actually be seen as two separate questions, one in general, and one as it applies to gentoo, specifically. For the general case, from all I've read, all the informed sources seem to expect the two to coexist together for some time, if I were to guess, I'd say three years or so minimum, and likely far longer in some distros, particularly those like gentoo and debian that support platforms running more than just the Linux kernel and general GNU-based userland. Given that the BSDs tend to move at a somewhat slower pace than Linux and some of the wayland technology is currently most developed on Linux, it'll likely be longer, I'd guess at least five years and very possibly a decade or more, on them. It's also worth noting that with some of the enterprise distros having support terms of nearing a decade, even if/when "current" linux drops xorg, support will still be around for xorg (on those old distros) for a (relatively) very long time. Of course the picture is rather more complex than that simple top-of-the- fold summary implies. * "xwayland" is an xserver run as a wayland client. There are already xwayland patches for xorg that make it run as a wayland client instead of directly, and now that xorg-server 1.15 has been delayed in ordered to add more features, the xwayland patches could well make it. This will provide the X-protocol backward compatibility for wayland, so it can continue to run X apps that haven't been ported to wayland yet. (In the original plans I remember reading that the plan was for this to work both ways, such that wayland could be run as an X client, as well, but I haven't read anything about that lately so I don't know what the status is on that.) * Wayland is already using mesa as one of its OpenGL backends backends (with others available where hardware isn't able to run OpenGL/EGL), rendering to OpenGL/EGL. So currently X-based apps that speak OpenGL/EGL should continue to run as well, using xwayland for the X-protocol stuff they do, and mesa (or other OpenGL/EGL implementations) where they already speak OpenGL directly. So there shouldn't be too much problem with people being stranded with X apps they can no longer run, because xwayland, a modified xorg-server, will be available for wayland, and X clients can talk to it as they always have to xorg, and to mesa or other opengl/egl implementation directly where they are already bypassing X using them. * On the flip-side, it's worth noting that the wayland/weston devs and xorg devs are generally the same people. After wayland gets going, their focus is going to be almost entirely on it, and while xorg may still be "supported", don't expect many new features, and at some point, drivers for new hardware and the like will probably dry up too, altho legacy hardware will of course continue to be supported and to work in existing form for rather longer. (This is of course for the Linux side. The BSDs will likely continue support for somewhat longer as well, altho just as with KMS vs UMS, they'll likely eventually be forced to adapt, as in general they simply don't have the developer power to continue xorg development at its current level.) * In practice, much like the story we're seeing play out with systemd, while xorg will remain around for some time and existing features will probably continue to work in general as they always have, just as the various alternative init systems are, it's likely many of the newer features will only function as designed and/or will only be "supported" on wayland. And, as we're seeing with gnome and systemd already, I predict they'll be dropping support for anything but wayland/weston sooner rather than later, basically leaving the non-linux platforms and those who aren't ready to make that change out in the cold, at least as far as gnome goes. Just as we're seeing with systemd, distros such as gentoo who want to continue to support gnome with xorg will be able to do so for a couple releases, but at some point upstream gnome's code base will have diverged significantly enough that it'll force distros into only supporting wayland/weston for their gnome users, as well. * However, just as kde has announced that they plan to continue support for the BSDs and for Linux without systemd, and at least currently, that's what they're doing, kde will continue to support xorg, too. * Again as with systemd, other gtk-based desktops will continue to function for awhile with xorg, but just as the BSDs aren't able to support the xorg code base on their own, the other desktops won't be able to support continued gtk development, at least not to the same level and at the same speed, on their own, and they'll ultimately have to either go wayland-only as well, or jump off of gtk, to qt or the like, again, as is already happening due to gnome/gtk's growing systemd dependence. * I don't know enough about enlightenment to be able to intelligently comment/predict for it. * Again, the few x-protocol-only apps and basic wms such as the *box family and icewm, should continue to "just work" within the X domain, regardless of whether they're running on xorg-server on the kernel and hardware directly, or whether they're running on xorg-server as xwayland on wayland, since AFAIK, they're pretty basic x-protocol in their requirements. So in the general case, basically what you should see is that with the exception of gnome and to a lessor extent the other gtk-based desktops and apps, existing xorg functionality should continue to be maintained, at least for existing hardware, for quite some time. But expect new features and new hardware support to eventually dry up and blow away, as the new-feature/new-hardware focus will now be on wayland. Still, even if it's via xwayland and mesa, existing xorg/opengl/egl-based apps should continue to function, as xwayland and mesa will continue to provide backward compatibility support for x-protocol/opengl/egl. For the gentoo-specific case, given the above and the systemd precedent, I think what's likely to happen there should already be pretty clear. Gentoo isn't dropping openrc support any time soon (the horizon remains unchanged, in practice about two years out minimum, even if they were to decide to drop it today, and there's absolutely NO hint of that) and it's extremely unlikely they'll drop xorg support either, at least not with a warning lead time of multiple years, for very much the same reasons including the fact that unlike systemd and (I think) wayland, gentoo (and debian) run on more than just Linux, so alternatives much remain supported as long as those non-linux platforms remain supported. Again, the parallels to the systemd situation are very high. Those running gnome are likely to find themselves with another tough choice, gnome and systemd/wayland or give up gnome in ordered to keep openrc/ xorg. Gnome upstream always /has/ been the "there's only one true way, ours, and if you don't see it, well, you're just lost", type, and that's unlikely to change. gentoo/kde will very likely follow their upstream and continue providing support as well, helped by the fact that the qt toolkit they're built on continues to provide very wide support, including for the BSDs as well as (GNU/)Linux, and for MSWindows and various mobile OSs such as Android (definitely non-gnu/Linux). In fact, that's one of the reasons we're already seeing some of the other formerly gtk-based desktops switch to qt- based, as with both systemd and wayland and with gnome dominating gtk development, they see the writing on the wall. And as with the general case, the pure x-protocol and opengl/egl based apps and toolkits should continue to "just work" on either "legacy" xorg, or via xwayland, as gentoo really has no reason to throw roadblocks in the way, where there shouldn't be any upstream. At worst, just as gentoo's doing today only adding one more reason to the pile, gentoo (along with other distros in similar circumstances) will maintain "trivial" patches as necessary to keep them working on gentoo. It's when the patches get more than trivial that things become a problem, but that's generally due either to deliberately uncooperative upstreams, or to upstreams simply disappearing and their packages eventually dying "of natural causes" due to pure bitrot. > Another concern centers around all of the udev/dbus stuff which I have > so far successfully managed to completely avoid. A second question then > is how much will Wayland be dependent on udev? Will it be an option or > mandatory? *THAT* is a very good question -- unlike the above, one I don't have an answer for. To the extent that my experience and knowledge /does/ provide an answer, it's this observation: Udev functionality tends to remain in general optional as for the most part it's simply "plug-n-play" type functionality like detecting new hardware and autoloading modules and automounting storage drives when they appear. As long as you continue to be comfortable doing things the "manual" way, which you'd seem to be, udev continues to be optional, and my best guess is that it will /continue/ to be so with wayland, of course with the obvious trade-off, that you'll likely have to do the wayland equivalent of providing an xorg.conf, since my best guess is that wayland will very likely depend on udev to autoconfigure. Dbus, OTOH, is I'd say an entirely different story. There are already X- based (and possibly some non-X-based as well) apps that communicate only via dbus. Presently, these are reasonably easily avoided, since the only apps able to make a sufficiently solid assumption about dbus being available are the automation/autoconfig type apps, and you're already avoiding those to avoid udev. However, with wayland there will be a MUCH STRONGER assumption that dbus will be available, since part of the whole purpose of wayland is to be able to drop legacy compatibility from wayland and its new protocol and only implement that via xwayland and the like, so unlike with the x-protocol, the compatibility layer can be dropped as soon as there's no further clients requiring it. Thus, while it's ONLY a guess, it's a best-guess, wayland itself may well require or at least assume dbus, and it's very-to-extremely-likely that wayland clients will assume dbus to the level of hard-requirement as well. But there's two bright sides to that: 1) As above, existing x-protocol and opengl/egl clients should continue to work with few if any changes as they run on top of xwayland which will be providing the compatibility layer they require. So if you're getting along without it now as you say you are, you shouldn't have to worry about existing x-based apps, and will only need it for new apps and/or apps ported to wayland, presumably with new features added in the process. If you're content with existing functionality, therefore, you should be fine until existing apps die of old-age and bit-rot. 2) There's a project already well underway that will make dbus a kernel provided service, since the kernel is in the best position to enforce the necessary security as well as to be able to make the necessary bandwidth guarantees, both of which have been proven to be major challenges with the existing userland based implementation. Thus, it's very likely that at some point you'll enable (or disable) the dbus kernel feature much as you enable (disable) any other kernel feature today, and the currently required userland baggage that provides the feature currently will no longer be required. Of course a kernel-feature-dbus means that unlike today, dbus should be available from very early userspace stage, without forcing an initr* or other similarly cumbersome workaround. Whether that addresses your personal concerns about dbus I don't know, but it should certainly go quite some distance to address the security, bandwidth and simply hassle issues associated with dbus today, so it's very possible that it will. Of course, while given the people involved I'd put the chances of kernel- dbus happening at well above 50%, I'm *NOT* sure of the status of existing patches, if any, which means AFAIK while the plans are already quite concrete and I believe there's /some/ code already, AFAIK it's still close enough to vaporware status that it's not yet a given, and things could well still change. But kernelspace-dbus (or at least something looking and functioning similar enough that existing userspace shouldn't have to be /entirely/ rewritten to use it) is definitely the plan, anyway, I do know that much. -- Duncan - List replies preferred. No HTML msgs. "Every nonfree program has a lord, a master -- and if you use the program, he is your master." Richard Stallman