21 ms·
Linux Kernel Has Been Forcing Different Behavior for Processes Starting with “X”
- sylware 4y agoThe steam client is still 32bits, statically load "libX11" libs, statically load libGL. Waiting for wayland->x11 and vulkan->GL->CPU runtime fallbacks to happen, and why not that the client becomes a pure and simple ELF64 apps (with the least amount of relocation types), libdl-ing everything, even the libc services it uses and opening itself to alternative C runtimes. Something tells me...
- nix23 4y ago> The steam client is still 32bits, statically load "libX11" libs, statically load libGL. Yes and you can't play HalfLife2 (the Linux native one) on inode64 filesystems. https://github.com/ValveSoftware/Source-1-Games/issues/1685 https://github.com/ValveSoftware/Source-1-Games/issues/1685 The Bug is "just" 8 years old, maybe we should just forget native linux games and just use wine...or the browser...or android ;)
- sylware 4y agoI am not talking about games but about the steam client. dota2 and cs:go are vulkan. I wonder if they can run natively in a wayland compositor though, I still run xorg (and I should not). Curious... anybody knows ?
- smorrebrod 4y agoTried cs:go with hikari, game launched through xwayland and my aim was blocked looking all the way down at the floor.
- lloeki 4y agoSimilarly, you haven't been able to play neither GoldSrc nor Source engine games on macOS either for a while, i.e ever since its 32-bit userland has been yanked out. I would definitely enjoy a 64-bit rebuild. (Now there's arm64-darwin, although I don't see Rosetta 2 going away anytime soon unless the whole world ends up skipping on Intel)
- tuyiown 4y agoRosetta 1 has been available for 6 years between tiger and lion, and rosetta 2 already been introduced two years ago. Since the performance upgrade between intel to apple M is less critical than power to intel, that there is less incentive to move from intel, and that apparently apple uses it an opportunity for virtualization compat', Rosetta 2 might be here longer, but i'd be careful on any assomption :)
- adql 4y agoReminds me of when I tracked some bug in linux game (don't remember the name) to some fs call on xfs not returning what game expected, and it only happened if you had "old" (formatted with some older version) of XFS. There was separate problem with some games borking out if your FS returned 64 bit inode. There was also a swath of bugs with Unity games crashing or behaving weirdly if your locale didn't had same numeric separators as default one, So if say, your locale printed 0.0 as 0,0 game didn't work till you changed environmental variables to use english or C
- bombcar 4y agoOh god locales. https://github.com/mpv-player/mpv/commit/1e70e82baa9193f6f027338b0fab0f5078971fbe https://github.com/mpv-player/mpv/commit/1e70e82baa9193f6f02... Basically, if you want to break any piece of software, there's a locale for that.
- PaulHoule 4y agoThat’s the kind of thing Windows does. It systematically applies hacks to keep old applications working.
- Loic 4y agoI am so glad it does. During my PhD, I had to maintain a very old stack of software (about 1 million lines of C++ on top of 300,000 of Fortran). It was not possible to compile it with something different than Windows 2000, it was not possible to upgrade the MFC version and all the old compilers. It was basically stuck in time but with a very high value for the end-users and our research group had not the bandwidth to upgrade. Microsoft was nice with us and kept the compatibility and still keep the compatibility 20 years later! I am using Linux as my daily driver, but I must say, Microsoft is the king of backward compatibility. A feeling of "compile once, run forever on Windows".
- ciphol 4y agoI think Linux is the king of backwards compatibility, in that you can always download an old version of Linux and run your old software stack. Windows forces you to use a new version; Microsoft puts a lot of effort into backwards compatibility but it's always a gamble.
- psychphysic 4y agoPros and cons. I'd rather have old software run on a new OS and hardware. Than access to old OS and hardware to run the software. Simply because that means you're not reliant on obselete hardware (expensive poor performance hard to find) and potentially a OS full of security holes. Similarly I'd rather have to use a VM at compile than run time. For convenience.
- 5e92cb50239222b 4y agoWhere I'm from, you can still easily buy a Windows XP license. I've also seen a win2k license maybe about a year ago. Should have bought the box for nostalgic purposes when I had the chance now that I think of it.
- theamk 4y agoThe article makes it sound like the only choices were this hack or break X, but that's not the case. It would be perfectly fine to have a "modeswitch_prohibit" property (hooked to sysfs and kconfig) which contains a list of process names to match. It would be unusual, but it would ot be an ugly hack.
- z9znz 4y agoOne might be inclined to go back and review all commits by the person who chose to commit this sledgehammer solution.
- bonzini 4y agoThat would be one of the maintainers of the Linux graphics subsystem. He has almost 4000 Linux kernel commits on his resume, so you're in for quite some work. Also the patch that was committed (which was the third version) was reviewed by two other developers and acked by two more. That will add about 1700 more commits to your endeavor.
- MrStonedOne 4y ago
- qull 4y agoThat all may be true, and be even more worrying.
- bonzini 4y agoOr you might be experiencing the Dunning-Kruger effect, I don't know.
- z9znz 4y agoThe point which your parent post made, and which I was implying in my original post, is that if the committer was willing to commit such a clumsy "fix", what else might they commit in other places? Nobody said the committer was not intelligent nor prolific. What was implicitly brought into question was the judgement of the person. "But all the people who reviewed and accepte the commit!..." Sometimes reviewers don't pay full attention (because they are busy). Or sometimes they don't feel confident to challenge someone. Or they may be inexperienced.
- 4y ago
- khiqxj 4y ago
- pyb 4y agoApparently the root cause of this hack in the kernel is : "nobody wanting to maintain X11 anymore". Is X11 becoming yet another underfunded cornerstone of the open source ecosystem?
- Falell 4y agoThis has been discussed in comments of Wayland threads on HN for years. People who want to keep using X complain that they still use it, someone replies "All the X maintainers have moved onto Wayland because they think it's the path forward, if you want X to be maintained step up and do it" and it's not clear if anyone ever did.
- pyb 4y agoFor whatever reason, it's only in recent years that distros have switched to using Wayland by default. So it's a bit early to completely drop the former display system. But it would be expensive to keep it alive as well !
- ilyt 4y agoIt's annoying, X got to the level where it "just works" out of the box for me on my setup and now it's "well, fuck that, we got bored, let's go Wayland!" And some design decisions are.... iffy at best. Like the fact now every DM have to implement its own mouse(trackpad etc.) management coz "well we don't wanna" (basically, I'm sure Wayland developers have better articulated response to why everyone else involved have to duplicate the code). Or how many hoops software have to jump just to record screen (or is that fixed now?)
- zamadatix 4y agoShared code can (and does) exists outside of the compositor or display server protocol. E.g. for your ending question xdg-desktop-portal is the shared resource in use these days. I think the biggest mistake of Wayland was the rush on early migration for general use before it really had time to soak. The general design and not having everything in the display server itself is perfectly fine.
- WesolyKubeczek 4y agoXorg is the new simcity.exe :)
- gpm 4y agoThis was fixed both in userspace and the kernel in 2019... the userspace fix was created in April and merged on the 3rd of September, while the kernel commit is dated Sept 18. Userspace fix: https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/180 https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests... Kernel fix: https://github.com/torvalds/linux/commit/26b1d3b527e7 https://github.com/torvalds/linux/commit/26b1d3b527e7 I'm unclear on why this is being sold as "no one maintains X11" and not "the kernel wants to support old versions of X11". The mailing list post states "Fortunately, since this was committed, somebody did actually disable the userspace side by default in X11", which appears to be false (it happened first)?