Become a fan of Slashdot on Facebook

 



Forgot your password?
typodupeerror
×
Enlightenment GUI Graphics Open Source Software

Enlightenment Mysteriously Drops Wayland Support 152

jones_supa writes: According to Enlightenment 0.19.12's release notes, it's an important release that fixes over 40 issues, which is quite something, considering that previous versions had only a few improvements, with most of them being minor. However, the big news is that 0.19.12 drops support for the Wayland display server. Unfortunately, the Enlightenment developers have omitted to mention why they decided to remove any form of support for Wayland from this release, and if it will return in upcoming releases of the software.
This discussion has been archived. No new comments can be posted.

Enlightenment Mysteriously Drops Wayland Support

Comments Filter:
  • by Viol8 ( 599362 ) on Thursday October 08, 2015 @10:26AM (#50685899) Homepage

    ... that Wayland is a solution for a problem thats already been solved better.

    • How/where has the problem been solved better?

      • by Anonymous Coward on Thursday October 08, 2015 @10:39AM (#50686003)

        Windows

      • by Junta ( 36770 ) on Thursday October 08, 2015 @10:43AM (#50686027)

        I suspect the sentiment is that X11 is better because of the network transparency angle. Of course the underpinnings of how X11 does it are actually decrepit and inefficient and compare poorly to other strategies that leverage different entry points that Wayland actually preserves. Injection into the compositing and WM provides a simpler and nowadays better performing strategy than X11 primitives. It meant something when the X11 primitives were actually used in the typical X applications with some sort of relevance, but now pretty much applications running over remote X are pretty much dumping bitmap data rather than any useful shorthand for complex UI concepts. Meanwhile intejecting the payload via compositor and the context via WM avoids a lot of the complexity that X contends with and allows a compositor freedom in picking good client-server protocol/compression.

        • Comment removed (Score:5, Informative)

          by account_deleted ( 4530225 ) on Thursday October 08, 2015 @10:56AM (#50686131)
          Comment removed based on user account deletion
          • by Anonymous Coward on Thursday October 08, 2015 @11:03AM (#50686197)

            it takes some gal

            Found the problem. It's more of that horrible misogyny in the Linux community.

          • by jon3k ( 691256 ) on Thursday October 08, 2015 @11:05AM (#50686205)

            It's just nobody's really asking for a replacement

            No one asked Henry Ford to make cars, either. This attitude, specifically in technology, is baffling to me.

            • by serviscope_minor ( 664417 ) on Thursday October 08, 2015 @11:36AM (#50686453) Journal

              No one asked Henry Ford to make cars, either.

              And you know what? No one asked the Stanley Motor Carriage Company to make cars either.

              Simply being new doesn't mean it's better. The trouble with Wayland, or rather why I'm deeply suspicious of it is that some of the claims from the devs about waykand and X11---and bear in mind they're X11 devs too---are flat out wrong at best and deeply deveptive at worst. Why the need for a FUD attack? If Wayland is better it ought to win on merit, not FUD.

              Tahe for example this article: http://www.phoronix.com/scan.p... [phoronix.com]

              Going through one at a time.

              1. Extensions are what X11 calls API updates. Wayland will get API updates too, so this is not an advantage of wayland beyond version 1.0.

              1. A, B, C: Almost all extension version updates add new API calls and keep the old ones. Sending Foo 2.0 calls to Foo 2.2 works just fine. Not to say that versioning isn't a problem, but then fixing the API is apparently bad for X but nothing else.

              2. Well core X11 is super simple and a tiny setup of Xinput 2. This leaves essentially 2 input systems left of any complexity, 2.2 and 2.0, and as far as I can tell 2.0 isn't actually separate from 2.2. So, basically X has one major input system which actually looks kinda similar to the Wayland one.

              3. That's a misunderstanding of "mechanism not policy"

              4. So Xorg and Xfree86 got a bit crazy and then got refactored. Apparently historical cleanups are a bad thing? This happens in any project of any age.

              5. Apparently it's impossible to add a new API call for synchronisation because from (1) that X11 isn't allowed api updates unlike every other system.

              6. Yeah OK, fonts are not great.

              7A A badly designed chunk of Xorg is apparently a problem with X11 now. Oh and it's been fixed so it's not a problem at all. But apparently every misstep in one implementation of an X server fixed 5 years ago is a reson it's bad now.

              7B That was pure fud in 2013 when it was written. Xrandr and monitor hotplugging has worked flawlessly for years.

              7C Huh? There's been xrandr front ends for years which remember certain layouts. Hell, Arandr, the nice GUI point and click one in all the repos remembers layouts just fine.

              7D That smells like bullshit to me. Unless the second monitor is a separate screen (X11 term for something little used now) they it'd be impossible for one to have compositing and one not. I've not heard of anyone using screens in years.

              8 Yeah and real toolkits are poorer for it. The window tree is a really nice thing when you have latency. Because with tree'd systems the server remembers which sub-sub-sub window a mouse click went to, and you could ignore the absolute position. With a treeless system all you have to go on is the position.

              With latency, if you click, then the display updates then it processes the click, your click goes not where you want, but where the GUI is now. This I find happens more often than I'd like in web "apps". With tree based systems, sure the widget moved, but the assignment of the click to the window was latency free, so your click ends up correctly on the now-moved widged.

              IOW tree based systems are superior. Many toolkits abandoned it for compatibility with non tree based systems. What we have now is actually fundementally worse in high latency environments.

              9 Yes this is finally a genuine, no-nuance flaw.

              10 C this is not correct if you have a compositing window manager, because it can do whatever it likes with the final display.

              10 D their solution is to make the compositor do all this shit in Wayland. That could be done equally well in X. Sure, the current convention has a small flaw, but X11 now supports the Wayland way too.

              10 E just use the features of the compositing window manager. It intercepts all key presses and windows anyway.

              So without getting into the merits or demerits of Wayland, it's disappointing to see the devs engaging in a colossal FUDstorm.

              • Re: (Score:2, Interesting)

                by Anonymous Coward

                There is one BIG flaw in X11 that wasn't mentioned: by design, every program that hooks into X also gets access to ALL input X gets. Meaning by design you cannot prevent any keyloggers from logging your sudo password. Wayland only allows access to all input to the compositor itself, and with a sandbox it can prevent any other program from keylogging.

                • by serviscope_minor ( 664417 ) on Friday October 09, 2015 @06:08AM (#50691967) Journal

                  There is one BIG flaw in X11 that wasn't mentioned: by design, every program that hooks into X also gets access to ALL input X gets. Meaning by design you cannot prevent any keyloggers from logging your sudo password. Wayland only allows access to all input to the compositor itself, and with a sandbox it can prevent any other program from keylogging.

                  Indeed, though entertainingly this isn't part of the X protocol, but part of the Xinput extension brought to you by the folks now working on Wayland. However, I don't see any reason that the compositor model of X11 can't be updated to intercept all events: it already has to intercept all events anyway because it needs to be able to arbitrarily mangle them before feeding them into the various captured windows.

                  So this flaw could be fixed for compositing window managers with a small update to the API. Given the architecture of X, the 10 remaining people like me using non compositing window managers could do it with an external compositor. However, one of the main bonkers criticism of X is that the API sometimes receives updates. So make of that what you will.

              • by Richy_T ( 111409 )

                With latency, if you click, then the display updates then it processes the click, your click goes not where you want, but where the GUI is now. This I find happens more often than I'd like in web "apps". With tree based systems, sure the widget moved, but the assignment of the click to the window was latency free, so your click ends up correctly on the now-moved widged.

                IOW tree based systems are superior. Many toolkits abandoned it for compatibility with non tree based systems. What we have now is actually fundementally worse in high latency environments.

                Man, this explains a lot. Mainstream Linux GUIs have been going backwards for a long time. But at least we have, uh, well, we already had most of it back then, come to think of it.

                • Man, this explains a lot. Mainstream Linux GUIs have been going backwards for a long time. But at least we have, uh, well, we already had most of it back then, come to think of it.

                  Indeed and it really pains me. What Linux/unix had way back when was far from perfect. However, it had some awesomely brilliant features that neither Windows nor MacOS and then OSX had. The desire to blindly chase Windows 95 then XP then OSX has systematically stripped out almost all of the unique but superior features giving us w

                  • by Richy_T ( 111409 )

                    Definitely. I remember being excited going from a 486 to a Pentium and how much it sped up the X session (which was already snappy enough to work with). It seemed like zero lag user interaction was just around the corner. Instead, we joined Windows in its laggy unresponsiveness. This wasn't just PCs either, even an Atari ST could run a usable monochrome X server. Instead of thoughtful coding, it's frameworks all the way down now.

          • by fisted ( 2295862 ) on Thursday October 08, 2015 @11:10AM (#50686253)

            init really was a bug ridden piece of garbage

            Care to point out a couple of those bugs?

            SystemD implements everything init did

            And a lot more, yes [syste.md]

            but does it right.

            Hahaha, yeah, it probably looks right from a Windows-centric POV

            • by vadim_t ( 324782 ) on Thursday October 08, 2015 @01:24PM (#50687363) Homepage

              Care to point out a couple of those bugs?

              Okay, sure.

              1. It does next to nothing. All the real functionality is in distribution specific scripts, which means you need to research and write a script for each distribution you want to support, each with its own particular features and idiosyncracies.
              2. Each script is a bunch of boilerplate that has to reimplement the same stuff. Often badly, especially when an init script has to be improvised.
              3. The functionality is inconsistent between services. Some can be restarted, some not. Some have a status command, some not.
              4. To check whether a service is running, it uses pid files. Pid files are horribly unreliable and prone to failing if a pid file happens to be left around, and something else happens to use the same pid.
              5. If you want start on demand, eg, something like xinetd, that's an entirely different system that's managed differently and separately.
              6. If you want a service to get automatically restarted, that's also done with an entirely different system like monit.
              7. It doesn't have useful logging. Processes can vanish into the ether without useful information in the logs because stderr may not be captured in some cases, and because init doesn't log service crashes.
              8. Service providing services are tricky. You may know the daemon has started, but you don't know it's now accepting requests. Yay for "sleep" hacks.
              9. Breaks horribly the moment something goes wrong. Network cable not plugged in? Well, if you boot like that nothing network related works, so you've got to log in and fix it by hand.
              • Re: (Score:3, Insightful)

                by fisted ( 2295862 )

                What about the part where you were going to mention bugs in init?

                • by vadim_t ( 324782 )

                  Since systemd was mentioned I figured that sysv init + rc scripts was implied, otherwise it's not a really fair comparison.

                  • by fisted ( 2295862 )

                    But that still wouldn't be a fair comparison because systemd does so many more things not remotely related to sysvinit+init scripts. So what are we going to compare, systemd vs init+scripts+httpd+ntpd+consolekit+policykit+this+and+that?

                    Do you understand the problem, now that it's staring you in the face?

                    • by vadim_t ( 324782 )

                      But that still wouldn't be a fair comparison because systemd does so many more things not remotely related to sysvinit+init scripts. So what are we going to compare, systemd vs init+scripts+httpd+ntpd+consolekit+policykit+this+and+that?

                      Yes

                      Do you understand the problem, now that it's staring you in the face?

                      I don't see any problem.

              • by Endymion ( 12816 ) <slashdot,org&thoughtnoise,net> on Thursday October 08, 2015 @02:34PM (#50687941) Homepage Journal

                Each script is a bunch of boilerplate that has to reimplement the same stuff.

                So shared libraries don't exist? That hasn't been a problem in a long time on BSD or OpenRC systems. Seriously, it's not hard to factor out code into a library. If you're only considering Debian, you have to remember that they are always behind (sometimes FAR behind) the update cycle.

                The functionality is inconsistent between services.

                Again, only if you were a moron and reinvented the wheel each script instead of using a common library.

                That said, the ability to do things different is very important when you need to support something unusual.

                To check whether a service is running, it uses pid files.

                No, there is not requirement to use PID files. That is simply a common way to implement a daemon. With sysvinit and sysvrc (or OpenRc), this kind of thing is an implementation detail that is out of scope.

                It doesn't have useful logging.

                Again, this is by design, as it left logging *unspecified*. If you don't like syslog, nothing was preventing you from using something else. (also, "useful" is subjective)

                because init doesn't log service crashes.

                Patently incorrect, as I have used syslog to inspect startup crashes many times over the last *twenty years* I've been using UNIX. Maybe this has been a problem for other people, but I've never seen it. If your syslog is configured badly, that's an entirely separate problem.

                Yay for "sleep" hacks.

                While I can't speak for all distributions (you seem to have had some history with poorly-configured environments), there is nothing wrong with using sleep based polling. The only reliable way to detect if a prerequisite service is ready is by directly polling the service. (e..g issue an HTTP GET to a web server) The timeout is to allow startup to proceed in case of an error, (so you don't end up bricked, unable to use your computer)

                on demand

                There is a reason most distributions stopped using super-servers like xinetd: on-demand startup isn't that useful. Start your service at boot. You can defer expensive tasks until the first requests, if you want, which is when you would pay that cost anyway in an "on demand" launch. Listen to on the port, block on accept(2) or select(2) or similar, and let the OS page you out to the swap partition.

                "On demand" isn't necessary, because the kernel already provides that feature. Adding a redundant implementation simply increases complexity and adds more opportunity for bugs. Super-servers make it even worse, as they add the risk that a problem in on service could take down all the services provided by the super-server.

                Breaks horribly the moment something goes wrong.

                Ok, now you're just trolling.

                Want to have some fun? On a systemd box, pretend you just installed some updates, and you need to restart a few daemons so they run the updated versions. Try restarting dbus (system, not user). (You might want to make sure any open files are saved first)

                Also, you might want to actually read about UNIX before you make these kinds of accusations. Reading taoup [catb.org] is a good place to start.

                • by Anonymous Coward

                  It... disappoints me that the more vocal systemd proponents have never actually *looked* at what modern (that is, built in the last ten years) sysvrc replacements do and how they do it.

                  To get anywhere *near* the power and flexibility of what you get from OpenRC in systemd, you're going to *have* to roll your own shell scripts. Given that the systemd folks are deathly allergic to shell scripting and won't provide these scripts *for* you, this means that -surprise!- each service with non-trivial is-it-started

                  • by vadim_t ( 324782 )

                    I have no problem with shell scripts. I just don't see the point in keeping 20 copies of the same script, slightly customized. It's much cleaner to have a systemd style config file, where the file only contains what's important, and lacks any boilerplate content that might or not have been customized.

                    What kind of flexibility are you talking about, by the way? I've been using systemd for a while and don't really feel limited.

                • by vadim_t ( 324782 )

                  No, there is not requirement to use PID files. That is simply a common way to implement a daemon. With sysvinit and sysvrc (or OpenRc), this kind of thing is an implementation detail that is out of scope.

                  Of course. Keeping track of running services is out of scope for a service management system. Genius.

                  It seems to me that the reason why pid files still exist is because sysv provides next to nothing, so people end up using the easiest, but about the worst approach available.

                  Patently incorrect, as I have use

                  • >Thanks, but I'm not religious. I prefer things that are convenient to those that are ideologically pure.

                    That's all well and good but when that "ideology" is the result of 40 years of practical experience by a culture that has produced the engine that drives the entire 21st century (yes, that engine is Unix, because it drives the internet), which has allowed that system to survive thousands of incredible changes to technology virtually unchanged - because no matter how the world changed, it was still wor

                    • by vadim_t ( 324782 )

                      then rejecting it requires a strong, rational argument - and even the best such arguments are likely to hold only in very rare niche cases.

                      There are quite a few reasons. For instance, like I already mentioned, sysv init has no logging and bad error handling. Processes may disappear without any logs being emitted. PID files may result in services not properly restarting. It's not a very reliable system, it's fragile and can break in ways that require you to manually do its job.

                      Consistency is not in any way e

                    • Right... because the only alternative to systemd is SysV - actually I am in favor of parallel init and helped Richard Gooch worked on his back in circa 2000.

                      The fact is though - none of those ended up replacing half the damn base system with other components. Every other init replacement was an init replacement. The end.
                      Upstart was very nice, hell even slackware's RC based one was quite nice and lacked most of the issues you raise (though it didn't support paralel bootups out of the box I added support for

                    • by vadim_t ( 324782 )

                      That's just it though - if any component didn't do EXACTLY what I want, I want to be able to swap THAT component out with anything else I choose, or write, and the init system has no business telling me what that should be.

                      You ARE aware that systemd is configurable, right? You can ask it to direct your data to syslogd (where you can use your own implementation), you can configure it to log only to RAM (for maximum performance for the case you mentioned), and you can tell it to turn off its own logging (so i

                    • None of those are good enough reasons to violate a fundamental unix design principle thats been in place since Thompson's earliest experiments.
                      I cant edit the log with vi ? Then you broke unix. Its not unix anymore.
                      Cant imagine why anybody would possibly want to edit a log by hand ? Neither can I but thats the point: fundamental to the unix philosophy. We never ever try to imagine what a user may need to do or why. We do not do that. We let them do whatever they want exactly by not trying to imagine what th

                    • by vadim_t ( 324782 )

                      None of those are good enough reasons to violate a fundamental unix design principle thats been in place since Thompson's earliest experiments.

                      Oh dear. Unix turned into a religion. I guess we're going to disagree here because I'm not religious and don't care about staying true to the doctrine.

                      I cant edit the log with vi ? Then you broke unix. Its not unix anymore.

                      That's actually entirely intentional. journald contains a way to sign log files in such a way that it would make tampering detectable.

                      Why not stor

                    • >Oh dear. Unix turned into a religion. I guess we're going to disagree here because I'm not religious and don't care about staying true to the doctrine.
                      Ah the classic "call it a religion" and you can dismiss it argument. There's just one problem - this is the exactly OPPOSITE of a religion: because it's based on solid evidence. 40 years of hard experience and engineering principles that have seen the single greatest success in the entire history of software and produced the most flexible, powerful and re

                    • by vadim_t ( 324782 )

                      Ah the classic "call it a religion" and you can dismiss it argument. There's just one problem - this is the exactly OPPOSITE of a religion: because it's based on solid evidence.

                      Well, I don't see this evidence of yours.

                      Look at how this conversation has gone. I started by answering your technical concerns. Initially you had a real technical issue, a real need for better performance than the system originally provided, and how you needed to be able to replace the logger to solve it.

                      So I explained how systemd a

                    • Ive spent the majority of my career building distributions. Trust me as a distro developer of some distinction (linux.com once said that I did for slackware what Ubuntu did for debian, my distro at its height ran 95% of all computers in an entire country) when i tell you i know the decision making process and the motivation for adopting systemd has absolutely nothing to do with technical superiority.

                      But its worthless debating you. I showed you a legitimate case for not ever integrating core utilities. You r

                    • by vadim_t ( 324782 )

                      Ive spent the majority of my career building distributions. Trust me as a distro developer of some distinction (linux.com once said that I did for slackware what Ubuntu did for debian, my distro at its height ran 95% of all computers in an entire country)

                      Ooh, that explains things.

                      when i tell you i know the decision making process and the motivation for adopting systemd has absolutely nothing to do with technical superiority.

                      So what is it, then?

                      But its worthless debating you. I showed you a legitimate case f

                  • Of course it's useful. Why should something like cups get started without a printer? Why should the user know to enable it once they get one? These days hardware changes at runtime, and things are expected to work when you plug in a printer or a bluetooth adapter, and not to complain or stop booting if some hardware turns out not to be there anymore.

                    Cups should be started without a printer, because then you can print in a file, put the file on a USB stick and go to a print shop or a place with a printer :).
                    Or it may not know when an network or LPT printer becomes available.

                    That is a technicality, though.

                • So shared libraries don't exist? That hasn't been a problem in a long time on BSD or OpenRC systems. Seriously, it's not hard to factor out code into a library. If you're only considering Debian, you have to remember that they are always behind (sometimes FAR behind) the update cycle.

                  You're aware that OpenRC does the exact same thing as systemd here, yes? That common library is written in C like God and Dennis Ritchie intended. Similarly, they annotate their files with dependency information and other useful info; many of the anti-systemd complaints apply equally to both projects.

                  No, there is not requirement to use PID files. That is simply a common way to implement a daemon. With sysvinit and sysvrc (or OpenRc), this kind of thing is an implementation detail that is out of scope.

                  PID files are a bad hack. They are the reason cgroups exist, and why every other unix has replaced SysV init. And cgroups aren't even the first process tracking feature to land in Linux, just the one that actua

            • Oh look a hockey game broke out in a boxing match :)

          • It's not like init/SystemD, where init really was a bug ridden piece of garbage that's needed replacing now since before Linux itself came on the scene, and SystemD implements everything init did but does it right.

            Talking of statements that take some gall...

          • by Anonymous Coward

            ...

            It's not like init/SystemD, where init really was a bug ridden piece of garbage that's needed replacing now since before Linux itself came on the scene, and SystemD implements everything init did but does it right.

            BWAAA HAAAA HAAAAAAHAAAAAA HAAAAA AHAAAAA HAAAAAA!!!!!!!!!!!!!!!!!

            Stop. stop. I'm gonna pee. [youtube.com]

          • by Alomex ( 148003 ) on Thursday October 08, 2015 @01:24PM (#50687369) Homepage

            It's just nobody's really asking for a replacement,

            Except SunOS which replaced it with SunNews,

            --Ok, but apart from SunOS no one is asking for a replacement.

            Well NeXTSTEP replaced it with display postscript.

            --Ok, apart from SunOS and NeXTSTEP no one wants a replacement.

            Android dumped it.

            -- Yes, aside from SunOS and NeXTSTEP and Android, who else wanted a replacement?

            OSX replaced it with Quartz as well as iOS.

            -- All right, but apart from SunOS, NeXTSTEP, Android, OSX, iOS what have the Romans ever done for us, i mean who wants a replacement?

            Ubuntu with Mir and the Xorg with Wayland?

            --Oh, SHUT UP!

          • by ardor ( 673957 ) on Thursday October 08, 2015 @03:05PM (#50688201)

            If one of the X developers essentially calls X obsolete crap [youtube.com], then I think we should listen to him.

            There are certain things that just don't work well in X. One of them is vsync, which requires a rather large amount of nontrivial workarounds, like Intel did.

            To get something like vsync integrated properly, you need to fundamentally change how frames are updated. This is what Wayland developers refer to when they say that "every frame is perfect". The X11 model is essentially dumb drawing and updating, with no regards to complete frames. It goes further when you have for example 2 videos on screen. Even if both have the same framerate, temporal jitter will cause lots of problems. With a display server like Wayland, it is possible to inform the server that "surface X needs to be presented at timestamp Y", giving the server the chance to correctly schedule and group together updates. This possibility doesn't exist in X.

            X is an anachronism, designed for graphics hardware from a bygone era. X does not in any way reflect properly how today's graphics chipset work. Sure, X can be used, but you need to use so many extension that very little is left from core X, at which point you have the display server equivalent of the Ship of Theseus.

            One other big problem with X: it is single-threaded. Applications *can* cause X to block and become unresponsive. LibreOffice is good at this.

            That said, I am not particularly fond of Wayland. I think it is a step in the right direction, but I slightly prefer the DisplayPDF approach of OSX. I believe certain primitives like text do have to be part of the server. Not for network transparency, but because rendering text is not easy, and especially because it makes it easier to deal with display scalability issues (physical size, PPI etc.) and multi-monitor setups (and also allows for very nice benefits like system-wide font atlas caching). However, in order for this to work properly and efficiently, you need to merge the display server interfacing libraries (= the equivalent of libX11/libxcb), the server itself, and the UI toolkit(s) to work consistenly across the board (and this is what OSX Quartz does). In particular, this requires the protocol between the interfacing libraries and the server to be opaque, implementation-defined, and not guaranteed to remain the same. This is because it makes modernizations, subsystem replacements, and extensions much easier. In X, there are still old extensions around because some old programs use the (Xinput vs Xinput2 for example). With such an encapsulated protocol as I describe, there would be only one high-level input API. The possibility of API breaking changes would not be that high, since unlike in the 80's and 90's, these days, the essentials of a 2D on-screen user interface (basic widgets, interface structures, crucial features and behaviors etc.) are well-known and stable.

            • Re: (Score:2, Informative)

              by ardor ( 673957 )

              .. aaand I just experienced another ugly wart of X: the dual clipboard madness (middle-click vs. Ctrl+C / Ctrl+V). The youtube link was incorrect, and some other link was present in the clipboard. https://www.youtube.com/watch?... [youtube.com] is the right one.

          • Here is a good video commenting on why X is a dead end and Wayland makes sense https://www.youtube.com/watch?... [youtube.com]
          • by DrXym ( 126579 )

            X11 isn't perfect. Nobody's ever argued that. It's just nobody's really asking for a replacement, and if they were, they wouldn't be asking for Wayland. X11 is an extraordinary piece of technology, it takes some gal to claim everyone should just throw it out and replace it with a ground up rewrite that adds no new features and doesn't support the major features X11 is famous and loved for.

            I think you'll find lots of people are asking for a replacement, starting with the people most familiar with X11. And more generally anybody who wants Linux to be able to host a modern, responsive desktop experience without suffering the latency and other bottlenecks of an arcane and mostly obsolete architecture for no reason whatsoever.

          • by Damouze ( 766305 )

            If init is such a big piece of crap why do UNIXes stick to it? There is no way to implement what init does with systemd. Systemd is flawed by design. It is a monstrosity that should never have seen the light of day. To name a few fundamental flaws: using a binary system log, using binaries for helper programs and xml files for configuration (what's wrong with using shell scripts and flat text???). Thirdly, it violates the very thing that underlies nearly every single component of UNIX or a UNIX-like operati

            • by vadim_t ( 324782 )

              using a binary system log

              $ cat /etc/systemd/journald.conf
              # This file is part of systemd.
              ...
              [Journal]
              ...
              #ForwardToSyslog=no

              Change that to "yes", and there you go.

              using binaries for helper programs

              start-stop-daemon was written in C last time I checked. So was bash, and awk, and perl and a whole bunch of other stuff system scripts use.

              and xml files for configuration (what's wrong with using shell scripts and flat text???)

              Try actually looking at the config files? They're INI style text files, as quoted above

              • I've worked as a unix sysadmin in a shop where that meant having copies of every commercial and free unix. Hell I had two actual DEC Alphas running ! I had every version of Solaris from 8 onwards, every version of HPUX ever released and numerous linux systems there.

                I'll know from bitter experience which things which unixes did best or worst. Linux had the best package managers by far for example, and HPUX probably the worst one you could ever have the misfortune of having to work with.
                And as for init system

                • by vadim_t ( 324782 )

                  And as for init systems - there was nothing, absolutely nothing, that was more sheer hell to administer than SMF. SMF was a truly horrendous and unmanageable piece of crapware. Building a system similar to it is an act of sheer, calculated sadism.

                  Actually I never worked with SMF, so I don't know much about it besides that it exists. What I was pointing out that the deviation from the holy "unix philosophy" is getting pretty much universal, and that if the old way of things was so wonderful we wouldn't have

                  • While I was quite happy with upstart.

                    • by vadim_t ( 324782 )

                      It's been a while since I had to work with upstart, so I don't remember the exact list of grievances I had with it. But I do remember that one problem I had is that it has a seriously weird dependency model that works backwards: rather than saying what you need for your service to work, your service starts when it has what it needs.

                      As far as system administration goes I find this is very weird and undesirable. If a service is for some reason not starting it's now my problem to figure out what it wants, and

          • by 31eq ( 29480 )

            You may put bugs in your init scripts if you edit them with emacs, but you'll find everything works a lot better if you switch to vi.

        • by rjmx ( 233228 )

          Wow. That's a lot of buzzwords.
          I think you left out "user experience", tho.

        • by DrXym ( 126579 )
          Exactly. X11 was designed for a different world where there was clipping, damage, rendering primitives, immediate rendering etc. It doesn't have any concept of compositing or GPU surfaces and thus a raft of extensions have appeared to support those things. But of course they're still hampered by a brain damaged pipeline which still thinks in the old way and they are constrained by.
        • by Uecker ( 1842596 ) on Thursday October 08, 2015 @12:02PM (#50686673)

          It is a myth that supporting old drawing primitives in X11 somehow slows down modern clients and you can essentially have the same buffer handling as Wayland with X. In fact, the design of Wayland is basically copied from X minus some old parts which are not needed by modern clients. The problem with this is: Breaking compatibility with a decades old protocol for no good reason is just moronic.

          • by TheRaven64 ( 641858 ) on Thursday October 08, 2015 @12:13PM (#50686753) Journal

            It's not that supporting the old things slows things down, it's that it doesn't speed things up. It actually does cause some problems, because various things in the X11 protocol use 8-bit fields of which a significant space is used by legacy stuff that no one uses anymore, but that's largely worked around in newer extensions.

            If you're in a world where most applications are sending commands like 'draw line from x,y to x1,y1' then X11 network transparency is really fast. At the protocol layer, anyway - if you use xlib then performance will suck unless network latency is very low because it adds a synchronous API on top of an asynchronous protocol (XCB fixes this). Modern applications don't do that, they typically render pixmaps and just have the X server composite them. X11 can still do a reasonable job here, with XDAMAGE, XFIXES, and XRENDER, allowing you to keep most of a pixmap (a Picture, in fact) on the server, update image data in selected parts, and do all of the compositing in the server. The problem is that none of the X11 toolkits actually do this very well. Wayland doesn't solve this at all - it simply says 'well, grab an OpenGL context and send drawing commands'. That works okay - the OpenGL protocol allows you to copy textures to the server (and the GPU) and composite them very fast. The problem is that this approach also works fine in X11, and with X11 you get network transparency when you do it (which works reasonably).

            The main criticism I'd have of X11 is that it puts too much state on the server. There is no way, at the X protocol layer (or even in the low-level X libraries) of saying 'disconnect this window from this display, reconnect it here', or 'oh, my X server has crashed, recreate my state on this newly restarted version'. The latter worked fine in BeOS almost 20 years ago and works fine in Windows today. The former worked on NeWS 30 years ago. Both are use cases that I'd love to see addressed for modern devices. The Wayland solution to this is 'write a web app'.

            • by Junta ( 36770 )

              I haven't seen it in Wayland per se, but look at xpra. The way it implements remote app execution is in theory possible based on my understanding of wayland architecture. It doesn't have problems with detaching windows, etc. It currently requires a dummy X server, but it's not really in the actual display stack. It's a project that gives me hope for Wayland being able to provide a decent experience. Of course I don't know if Wayland is badly needed or not, but at least I could see a tolerable way of co

            • by Uecker ( 1842596 )

              It's not that supporting the old things slows things down, it's that it doesn't speed things up. It actually does cause some problems, because various things in the X11 protocol use 8-bit fields of which a significant space is used by legacy stuff that no one uses anymore, but that's largely worked around in newer extensions.

              Yep. I am not opposed to cleaning things up with extensions without breaking backwards and forwards compatibility.

              If you're in a world where most applications are sending commands like 'draw line from x,y to x1,y1' then X11 network transparency is really fast.

              X11 network transparency is also very fast if you move bitmaps over network and are a bit smart of how you do it (I wrote an image viewer
              which works quite well over the network).

              At the protocol layer, anyway - if you use xlib then performance will suck unless network latency is very low because it adds a synchronous API on top of an synchronous protocol (XCB fixes this).

              Yes, absolutely. But the important thing is: It is not a protocol problem. Replacing xlib is a sensible thing to do, inventing a new protocol is not.

              Modern applications don't do that, they typically render pixmaps and just have the X server composite them. X11 can still do a reasonable job here, with XDAMAGE, XFIXES, and XRENDER, allowing you to keep most of a pixmap (a Picture, in fact) on the server, update image data in selected parts, and do all of the compositing in the server.

              Absolutely. The great thing is: X11 lets you do all this stuff because

            • by Endymion ( 12816 ) <slashdot,org&thoughtnoise,net> on Thursday October 08, 2015 @01:45PM (#50687569) Homepage Journal

              hey typically render pixmaps and just have the X server composite them

              This is just nonsense. Your applications may be overly pixmap based (certain GTK+ engines started that mess when people prioritized "themes" over good design), but it is foolish to assume everybody else uses the same limited set of software. Remember, most of the software in the world is smaller private stuff used internally by businesses, academia, etc. Simply asserting that nobody uses various features doesn't make it true.

              Wayland advocates really need to learn one of the most important lessons of software design, which was best explained by Joel Spolsky's essay "Things You Should Never Do, Part I [joelonsoftware.com]".

              [Y]ou can ask almost any programmer today about the code they are working on. "It's a big hairy mess," they will tell you. "I'd like nothing better than to throw it out and start over."

              Why is it a mess?

              "Well," they say, "look at this function. It is two pages long! None of this stuff belongs in there! I don't know what half of these API calls are for." [...]

              The idea that new code is better than old is patently absurd. Old code has been used. It has been tested. Lots of bugs have been found, and they've been fixed. There's nothing wrong with it. It doesn't acquire bugs just by sitting around on your hard drive. [...]

              Back to that two page function. Yes, I know, it's just a simple function to display a window, but it has grown little hairs and stuff on it and nobody knows why. Well, I'll tell you why: those are bug fixes. [...]

              Each of these bugs took weeks of real-world usage before they were found. The programmer might have spent a couple of days reproducing the bug in the lab and fixing it. If it's like a lot of bugs, the fix might be one line of code, or it might even be a couple of characters, but a lot of work and time went into those two characters.

              When you throw away code and start from scratch, you are throwing away all that knowledge. All those collected bug fixes. Years of programming work.

              Yes, there are rough areas in X11 that really need to be fixed. That's true for almost any software project of sufficient size. Fortunately, the extension system in X11 allows a lot of those problems to be solved one at a time, while retaining backwards compatibility. The people that believe the very existence of backwards must somehow be a bottleneck are not creating the next version of X. Instead, they are creating something new. This is fine, but by their own definition, it is not a replacement for X11, and if Wayland tries to be such a replacement, it will inevitably grow to a similar level of "messiness" as numerous fixes, workarounds, and minor features are re-invented.

              The problem with Wayland (and many other modern "replacement" projects, with systemd as the canonical example) is not technical in nature, but the hubris that so easily throws out so many man-years of effort.

          • by Junta ( 36770 )

            It doesn't slow down, but they also don't help. That's the point I was making, that the lines, text, and pattern primitives that X was able to simply describe aren't leveraged in modern UI.

            Now I can't speak to the question of what Wayland fixes in exchange for getting to ignore having X11 as part of the core, and whether it's worth it. I can say that even if it Xorg, it's time for most folks to move on to strategies like Xpra that preserve the awesome facets of seamless remote applications, perform better

            • by Uecker ( 1842596 ) on Thursday October 08, 2015 @01:44PM (#50687565)

              It doesn't slow down, but they also don't help. That's the point I was making, that the lines, text, and pattern primitives that X was able to simply describe aren't leveraged in modern UI.

              Yes, this is why XRENDER was introduced 15 years ago.

              Now I can't speak to the question of what Wayland fixes in exchange for getting to ignore having X11 as part of the core,

              Well they don't have to deal with the old code, I can understand this. But it breaks compatibility on the protocol level, this is really stupid IMHO.

              and whether it's worth it. I can say that even if it Xorg, it's time for most folks to move on to strategies like Xpra that preserve the awesome facets of seamless remote applications, perform better, and are not sensitive to things like network disconnects trashing the ability for the application to keep running.

              Xpra is nice if you have a slow connection, but I use X applications just fine over the network every single day and it works just fine. Being able to disconnect would be nice though, and I do not understand why toolkits still do not support this. Well, the reason is that rewriting everything from scratch all the time is apparently more fun...

          • by DrXym ( 126579 )
            The Wayland API is nothing like X11 except in broad concepts that all display / input APIs share - listening for input events, connecting to a display, creating a drawing area and so on. It's just that Wayland's map onto modern concepts such as GPU surfaces and compositing so that rendering is as efficient as possible.

            As for the primitives, nobody has ever said they slow modern clients. The point is that clients don't even use the primitives any more and its the same story applies for most of the rest of

            • by Uecker ( 1842596 )

              The Wayland API is nothing like X11 except in broad concepts that all display / input APIs share - listening for input events, connecting to a display, creating a drawing area and so on. It's just that Wayland's map onto modern concepts such as GPU surfaces and compositing so that rendering is as efficient as possible.

              I disagree. Wayland is essentially a subset of what X11 can do. It is based on sending messages over a unix domain socket and sharing buffers. This is exactly what modern X clients also do. This is no surprise: It was designed to support exactly what is needed for modern clients and no more with the explicit goal to get rid of everything else. But it does not add anything which you cannot also do in basically the same way with X.

              As for the primitives, nobody has ever said they slow modern clients. The point is that clients don't even use the primitives any more and its the same story applies for most of the rest of X11.

              This is true. This is about retaining backwards compatibility.

              It has a 1980s 2D-centric, damage based view of the desktop and extensions are used to fool it into supporting surfaces and composition.

              Extensions are ni

              • by DrXym ( 126579 )

                I disagree. Wayland is essentially a subset of what X11 can do. It is based on sending messages over a unix domain socket and sharing buffers. This is exactly what modern X clients also do. This is no surprise: It was designed to support exactly what is needed for modern clients and no more with the explicit goal to get rid of everything else. But it does not add anything which you cannot also do in basically the same way with X.

                Trying to say that just because it uses sockets makes it like X11 doesn't make it so.

                This is true. This is about retaining backwards compatibility.

                Right... so we must maintain backwards compatibility for barely used functionality even when it impacts on performance in the every day use case. And even when you can have backwards compatibility by running Xwayland or by running X11 without Wayland while everyone else enjoys a better experience.

                Extensions are nice way to make modern rendering possible without breaking backwards possibility. "fool" "2D-centric" "1980" is just FUD to make it sound bad, but X supports modern applications just fine. You have no technical argument.

                It's not FUD, it's true. X11 is from an age where the screen screen was a bitmap and every window to be a region in that bitmap.

                • by Uecker ( 1842596 )

                  I disagree. Wayland is essentially a subset of what X11 can do. It is based on sending messages over a unix domain socket and sharing buffers. This is exactly what modern X clients also do. This is no surprise: It was designed to support exactly what is needed for modern clients and no more with the explicit goal to get rid of everything else. But it does not add anything which you cannot also do in basically the same way with X.

                  Trying to say that just because it uses sockets makes it like X11 doesn't make it so.

                  This is not what I said. I said Wayland is similar by design to a subset of X because it is designed that way. Domain sockets and sharing buffers matters because those things essentially determine the performance.

                  This is true. This is about retaining backwards compatibility.

                  Right... so we must maintain backwards compatibility for barely used functionality even when it impacts on performance in the every day use case. And even when you can have backwards compatibility by running Xwayland or by running X11 without Wayland while everyone else enjoys a better experience.

                  Unsubstantiated claims: 1. It does impact performance in every day use case. 2. people will enjoy a better experience.

                  Xwayland will certainly not be everywhere (it already isn't), breaking compatibility in practice. Also Xwayland is only one direction of compatibility. Wayland clients will not wor

                • Run X11 over Wayland if you want backwards compatibility or start the desktop with the X11 backend. There's no reason your esoteric needs should impact on the experience everyone else suffers from. And thankfully that reality will soon be realized.

                  I agree but applications and toolkits etc. will have to continue supporting X11.
                  For now I'll keep running a 2D uncomposited X11 desktop mostly built around gtk2. Not too esoteric I believe. I want Wayland to leave vaporware status : I just don't want to use any 3D accelerated desktop on X11 (although they might be a bit too heavy on RAM and disk I/O anyway). But if I have to I'll stay on X11 till end of times.

      • How/where has the problem been solved better?

        systemd?

        Surely systemd solves *everything* better, thats why all the distros have gone with it?

      • by Viol8 ( 599362 )

        If you have to ask the question you won't understand the reason for the answer.

  • by Anonymous Coward

    It's not a 1.0 release, which means anything, even core features, can change.

    • by Junta ( 36770 )

      This is enlightment. They've never ever had a '1.0' release in decades of existing.

      • Re: (Score:3, Informative)

        by Anonymous Coward
        In general, they don't seem to be particularly good software engineers: https://what.thedailywtf.com/t... [thedailywtf.com]
        • Re: (Score:3, Insightful)

          by Anonymous Coward

          Those knowledgeable in the horrible language of C...

          That's where I stopped taking the article you linked seriously.

          • Re: (Score:3, Informative)

            Those knowledgeable in the horrible language of C...

            That's where I stopped taking the article you linked seriously.

            C isn't a horrible programming language!

            Its a beautiful practical joke.

            • by HiThere ( 15173 )

              C is, essentially, a good portable assembler. It's barely a compiler at all, which is why it could fit on really small 8-bit systems.

              For that matter, Byte once ran an article where they implemented most of C in M68000 assembler macros, so that it ACUTALLY was assembler. It wasn't all of C, just most of it, and it was too clumsy to actually use (M68000 assembler code was as readable and much more efficient), but it worked.

              For that matter, LifeboatC, an i8080 compiler, really was a translator from C to asse

              • http://www.stokely.com/lighter... [stokely.com]

                We stopped when we got a clean compile on the following syntax: for(;P("\n"),R-;P("|"))for(e=C;e-;P("_"+(*u++/8)%2))P("| "+(*u/4)%2);

          • My impression of EFL was that it was written by someone who uses C like a portable assembly language. That's just not highbrow enough for some people, but C does lend itself most naturally to that treatment.

      • by LWATCDR ( 28044 )

        My guess is the team just does not have time to support Wayland.

  • by Anonymous Coward on Thursday October 08, 2015 @10:42AM (#50686021)

    After about 1 minute of investigation, I figured it out.

    https://www.mail-archive.com/git@lists.enlightenment.org/msg05157.html

    The code they had was old and unmaintained and didn't work so they removed it.

  • by Anonymous Coward on Thursday October 08, 2015 @10:43AM (#50686025)

    This is just a temporary change just for E19.... They have better Wayland support in E20. Explained @ http://www.phoronix.com/scan.php?page=news_item&px=Enlightenment-Wayland-Temp

  • by Anonymous Coward on Thursday October 08, 2015 @10:54AM (#50686109)

    https://git.enlightenment.org/core/enlightenment.git/commit/?h=enlightenment-0.19&id=d9501096bfaf626699dd6a61b49be2fb96ee6713

    author Mike Blumenkrantz 2015-09-26 02:53:16 (GMT)
    committer Mike Blumenkrantz 2015-09-26 02:53:16 (GMT)
    commit d9501096bfaf626699dd6a61b49be2fb96ee6713 (patch)
    tree 729fa82c90fd58c539391575ac2534101781b8c6
    parent map/unmap x11 client windows when toggling iconic state (diff)
    completely remove all wayland support from build system
    this is unmaintained and out of date. the protocol versions are old,
    and it's extremely unlikely that any client will work and be in a
    usable state given the development progress since E19 was originally
    released.

    use E20+ for wayland support.

    fix https://phab.enlightenment.org/T2746

  • I understand the sentiment that on the desktop X11 doesn't need replacing. But in embedded systems, X does nothing but get in the way of performance. It is the embedded community that has asked for a better way, and wayland is the "way" embedded Linux GUIs are moving.
  • In other news, Enlightenment 0.20.0-alpha includes full support for Wayland. Since 0.20.0 is coming soon(-ish), removing support from 0.19.x is simply an acknowledgment that all Wayland effort is being directed at 0.20 rather than the existing 0.19.x series.

  • To run Wayland I guess you have to be an enthusiast or a developer (writing a toolkit, a graphics driver or a desktop environment) or some fringe Fedora + Gnome 3 user.

    Let's say 0.1% users use Enlightenment, and 0.1% users use Wayland. So people running Enlightenment on Wayland could be as low as a millionth desktop linux users, thus perhaps 15 to 20 people, likely less.
    Wayland is dying!

Understanding is always the understanding of a smaller problem in relation to a bigger problem. -- P.D. Ouspensky

Working...