Hacker News new | ask | show | jobs
X.org Server Clears Out Remnants for Supporting Old Compilers (phoronix.com)
120 points by WhyUVoteGarbage 852 days ago
4 comments

The context here is that someone new randomly showed up on the xorg-devel mailing list, and started asking a ton of questions about the codebase, which has lead to a couple of cleanups. I wouldn't read too much into it.

https://lists.x.org/archives/xorg-devel/2024-February/thread...

I like this one

https://lists.x.org/archives/xorg-devel/2024-February/059137...

Huge block of code just sitting around for 16 years completely unused.

I was going to say the name was somehow familiar. Then I went searching through the Mozilla bug tracker and found this comment: https://bugzilla.mozilla.org/show_bug.cgi?id=58308#c90.
I understand your frustration with the heady enthusiasm of the poster but:

Isn’t it true that Thunderbird sixteen years later still lacks complete and first-class maildir support?

Why does Thunderbird need to support maildir?

I just never understood this use case.

A very traditional way to run a mail system is to have the mailserver store the user's mail in their home directory, typically in either maildir or mbox format. Mail clients can then read mail directly from the same place the mail server stores it, rather than having to maintain their own copy. This is a very handy optimization and a lot of "traditional" (read: TUI) mail clients fully support and, indeed, were primarily designed to be used this way. Common TUI mail clients tend to assume a local maildir or mbox, and accessing mail boxes via IMAP is a feature bolted on later, sometimes a bit awkwardly.

A major advantage is that it allows all of the mail tools you might use to operate on the same working copy of your inbox, saving a lot of time synchronizing things. This was a lot more important historically when a typical Unix user would probably have a few different tools they used for mail, like a full-on TUI mailbox viewer and a couple of CLI tools.

I don't find it very compelling that Thunderbird needs to add this functionality, because that's a pretty old-fashioned way of running mail that you probably won't see outside of technical universities and other institutions with a very "traditional" approach to their systems. That's the use-case, though, and I do see that if you are in an environment where your mail is already present in your home directory, or you use multiple mail clients, it would be annoying that Thunderbird can't operate this way when a lot of its contemporaries can.

It's practically more of an issue, though, because Thunderbird kind of supports it, it's just incomplete. That makes it feel less like a feature Thunderbird doesn't have and more like a bug.

One nice thing about maildir is that eg command line grep just works.
if thunderbird doesn't support maildir, either you can't store your email in a maildir, or you can't use thunderbird. maildir has some real advantages, and so does thunderbird, and it would be nice to be able to combine them
I have used maildir for a long time, but I just run a local IMAP server to do this... (dovecot)

IMO this is a superior way.

Fetchmail on my laptop fetches messages from the IMAP server and procmail + postfix delivers them (after some mangling) to the maildir in my home directory. So whatever mail client I use needs to be able to read that.
Maildir is probably the best way to handle multiple readers one mail source, ie, reading your mail from two+ locations, two+ operating systems, whatever.

IMAP just kludges, and you end up with situations like I have, where thunderbird frequently reports that one mailbox is 'locked' because thunderbird crashed while accessing it several years ago and who knows how to get gmail to forget about imap 'locks'.

> thunderbird frequently reports that one mailbox is 'locked' because thunderbird crashed while accessing it several years ago

That's a lockfile left over on the local filesystem. That's caused by Thunderbird having two threads open on the same folder (i.e. you ran 'update all folders' and then 'compact folders' and they're overlapping)

If you open TB, let it sit for a while, then do file>offline>sync now - then let it complete - make sure all the folders are selected for local download (if this is applicable or viable for your use case)

then wait a while

then do 'compact folders'

it shouldn't happen again

You might also want to go into the 'account settings' and turn 'maximum number of server connections to cache' down to 2 - some IMAP servers get really bothered if you open too many connections to them. It's meant to autoadjust but it doesn't always. 2 lets you have one connection always open to the inbox for push mail and one available for working on other folders.

Oh man, he'd been on our (Xfce) mailing list for a while, sending a ton of merge requests for various cleanups to our window manager and other components. While I wouldn't say what he was doing was completely useless, it was generally not super helpful, didn't really need to be done, and mainly just caused code churn. On my less charitable days it felt like he was just trying to get his name out there and into the commit history of a lot of projects, but the time and effort he was spending was probably too much if that was the motivation.

Several of his MRs ended up becoming out of date and full of merge conflicts because of other work that was being done, and it just seemed like a waste of time to me.

Someone downthread posted a link where Linus Torvalds himself excoriates this guy for posting anti-vaxxer nonsense to the lkml. That... really takes the cake.

This kind of energy should ideally be molded and funneled into more useful project needs, if they are focusing on trivial cleanups. An enthusiastic free worker comes off as a useful thing.
Fair point, but most of us on the team don't really have much time to spare to work on the project at all, let alone for mentorship, unfortunately. We'd rather be writing our own code, and taking contributions from people who don't require a lot of hand-holding. And it's not like this guy is an entry-level developer. He's clearly been doing it for a while, and is skilled. More like he needs to be taught how to interact with other developers on the internet in order to contribute without turning into a burden on others' time. Unfortunately I don't have the time (or patience, really) to teach that sort of thing.
I’ve never interacted with this person in particular, but your description makes me feel seen. It so perfectly describes interactions I’ve had - where a clearly well meaning and in some ways capable developer makes tons of change requests, which are sort of neutral or maybe slightly positive even, but take up so much effort to incorporate relative to their value that it’s just not worth it, and in my estimation would be better off disappearing.

Often times, when I do work with them to get their changes merged, I’m tempted to make similar changes myself, rather than workshop pull requests for days and weeks. Not because I think the changes are even worthwhile to incorporate, but because it’s less painful than the back and forth to get their changes up to snuff - but “stealing their idea” is socially awkward for its own reasons.

There’s also sometimes a bias towards merging unless you find a problem, so it can feel really antagonistic. Strangers on the internet become your task masters to an extent.

The common reactions I see to not wanting these kind of contributions are “You’re looking a gift horse in the mouth!” Or “It would go more smoothly if you spent more time unwillingly being a Manager for strangers on the internet” or “You’re gate keeping.” To an extent I suppose all these things are true. But, that doesn’t mean it’s the wrong decision. It can be frustrating to experience and difficult to explain if you haven’t been in the position.

Anyway, it’s nice to hear someone else articulate my experience. It makes me feel less crazy. So I wanted to partially return the favor and say also that you may not be crazy.

> Fair point, but most of us on the team don't really have much time to spare to work on the project at all, let alone for mentorship, unfortunately.

It's legitimate, of course (if you don't have time you don't have time), but that would make me worry about the project's future.

This is one of the most uncharitable views I think you could take. You don't seem to have a nice thing to say about him. And have managed to pack a bit of negative insinuation in without any actual evidence or substance.

Frankly, the dude is involved in cleaning up X.org code that is otherwise verging on unmaintainable. The appropriate response is a shrug and a "thanks". Backbiting is generally the wrong approach to attempted OSS contributions. If you have problems with his PRs go bring them up with him.

There was a talk a long time ago (sorry, can't credit it) where the speaker pointed out that some contributors end up providing net negative value to the project: the value of their contributions is outweighed by the amount of time spent interacting with them in bug reports or the like.

There are two reports in this thread of the contributor here derailing a conversation with something irrelevant. Another report is of him providing low benefit/high noise patches. If you start reading the mailing list posts linked up thread, his contributions to X.org seem to be veering in this direction too: the most recent idea is to... replace include guards with #pragma once. He was called out for this by the X.org maintainers (see https://lists.x.org/archives/xorg-devel/2024-February/059159...).

This bit from that reply covers a lot of how his changes felt to me:

> Looking at this particular thing, what problem are you trying to solve? The existing header files already have the protection in place where it matters. And I don't expect why software that's mostly just in maintenance mode would see a lot of new header files being added.

Quite a few of his changes seemed to me to have the motivation of "I like it better this way and think you should adopt my sense of taste". If you expressed interest in becoming a maintainer of one of our not-so-well-maintained components, then sure, go nuts. But changing a bunch of stuff to your style in code that I have to continue to maintain? No thanks.

It wasn't all like this; one MR I recall changed the names of a bunch of constants so they'd be consistent with each other and what they were for (e.g. prefixing things in a certain way depending on if they were configuration key names, default values, etc.). That I do think was useful. Unfortunately I think that particular MR ended up not working out, because he never talked to me about his ideas in the first place, and I had a branch I'd been working on for a few weeks that, when merged, made his work full of merge conflicts and ultimately not as necessary anymore. And that was part of the issue: if he would have discussed the changes with me beforehand, I would have said "sure, that sounds useful, but you might want to wait a week or so until I merge this feature branch, which is going to change a lot of the code you're going to touch". But... nope, he wanted to lone-ranger it.

Maybe don't criticize without knowing the full situation, eh? Your uninformed, holier-than-thou attempt at dressing me down isn't particularly useful.

Guy was a pain on the mailing list (and occasionally on IRC, too), nagging for code reviews and merges, against a team of part-time volunteers. He'd open many merge requests in a short time span, most of them changing a fair bit of code, some doing some mid-sized refactoring. Very rarely would he discuss his changes with the maintainers before making them.

And when someone disagreed with his approach, he'd get testy and push his point of view harder. Not a team player, not someone I'd ever want to work with, whether on a volunteer open source project or in a professional paid work setting.

> The appropriate response is a shrug and a "thanks".

Not if the contributions (and interactions with the contributor) create a lot of make-work for the maintainers where the benefit is unclear or known to be fairly low. I'm certainly not going to thank someone for creating more work for me that doesn't need to be done.

> If you have problems with his PRs go bring them up with him.

The problems were mostly "this doesn't need to be done, and you're changing the code from something I already know to something I don't, and I'm the one who has to navigate and maintain it, so this will be a net negative to me". And yet... the MRs kept coming.

I'm not going to claim the existing code is the best code in the world; some of my parts were written by me 15-20 years ago when I was fairly junior, and it could use some improvement. But going in and changing things without first talking to a maintainer is not the way to do it.

Don't get me wrong, some MRs ended up getting merged. Some of the maintainers did think that some of them were useful. But it felt like sorting through all of it to figure out what was actually useful, was more effort than it was worth.

If he's causing you stress migraines over in Xfce land, go ban him over there. You're wasting your time trying to convince me you don't like his work, and you're still not going with evidence or substance of a problem. Some people raise a lot of PRs.

> Maybe don't criticize without knowing the full situation, eh? Your uninformed, holier-than-thou attempt at dressing me down isn't particularly useful.

My key complaint, you'll note, is that you aren't providing any details of the full situation and those that you are providing are uncharitable takes. I mean, you're being nasty to the dude and your complaint seems to be he isn't a senior dev. Fair enough. If you only want to review PRs by senior devs, warn the fellow then block him [0]. Don't go with public shaming as a strategy; HN is a big forum forum, the dude isn't here and he's presumably working under his real name.

If you want to be mean because he's done something go ahead. But unless you're going to say he's actually done something bad, I'm going to note you're being mean without a complaint and that is poor form.

> And when someone disagreed with his approach, he'd get testy and push his point of view harder.

I can't pass that by without noting some irony, given the comment it is in context of.

Software devs are known for this.

[0] I speak loosely. Mr Lots of PRs could be anyone for all I know.

Wow, it's good to see he swung the xorg guys somehow.
Which goes to show that even crazy people can sometimes be helpful.
Does someone know why this person would care about dead code in X?
> outside of the XWayland scope given the diminishing developer interest and lots of talk but little action by those anti-Wayland holdouts in the community to actually contribute to X.Org Server development.

I don't know.. maybe they're actually rising to this "challenge."

Although, I've never understood why the presence of Wayland means X.Org needs to disappear. To me it seems part of our modern churlish desktop software cult that is perennially annoyed that their new systems, while slightly more visually appealing, have actually removed more useful features than they have added and fail to be a compelling upgrade on their own.

So, instead of making anything better, they focus on destroying what already exists.

> I've never understood why the presence of Wayland means X.Org needs to disappear

It doesn't, except for a few annoying facts:

* Most of the people who maintained X.org are sick and tired of it, have moved on to Wayland (or completely unrelated) work.

* No one has stepped up to work on the non-XWayland parts of X.org to the level that's needed to describe it as more than just in maintenance mode.

* Popular GUI toolkits seem to be moving on. GTK, for example, still accepts bug fixes for the X11 backend, but they aren't really working on it. I expect at whatever point maintaining the X11 backend and keeping it up with core changes becomes too big a burden, they'll drop it entirely. I don't know what Qt's stance is, but I wouldn't be surprised if momentum has or will move more toward their Wayland backend.

The end result here is that X.org eventually will be the less-stable, less-featureful platform. It's going to take a while to get to that point (Wayland clearly still has a ways to go), but it feels inevitable, unless some interested parties decide to step up to maintain the non-XWayland parts of X.org and the X11 backends of the popular GUI toolkits.

> I've never understood why the presence of Wayland means X.Org needs to disappear

Same. I'm on Wayland right now and I already know the next installation will run X11. Nothing against Wayland but so far all functional differences I noticed were things that don't work anymore.

I don't expect everything to work exactly the way it was previously, but nonexistent alternatives for X11 tools are a dealbreaker for me.

I had the same issues. I try Wayland whenever I end up with a new machine or do a reinstall for whatever reason. It felt like death by a thousand cuts just small things like inconsistent drag and drop behaviour, the primary clipboard working in some places and not in others etc.

Things that are just ingrained in my daily use being inconsistent or broken ever so slightly just become intolerable even after a few days of tweaking and tracking down 5 year old bug reports with no action.

I might have a better time using one of the big 2 DEs but (using KDE on a Surface Pro with Wayland has been fine) but i3/Sway are my preferred WMs and I'm not giving them up.

Maybe in another 2 years.

> Although, I've never understood why the presence of Wayland means X.Org needs to disappear.

Because it takes time, money, and effort to keep it around. Literally everyone who knows anything about the Linux graphics stack agrees that Wayland is the superior approach. So rather than maintain one code path for a superior graphics stack that actually enables a competitive desktop environment and another code path for yesteryear's graphics stack that only caters to a bunch of old grognards who fear change, the project maintainers just said fuck the grognards, the wasted effort supporting them is holding the Linux desktop back. The situation has gotten so bad that the Asahi Linux kernel's video driver attempts to detect if it's being accessed by an X server and refuses to work if it is; Wayland is the ONLY supported path by the Asahi project.

Sorry, X11 has got to die -- because the grognards have supplied nothing but endless whining about the Wayland situation instead of putting in the work necessary to keep it alive. You want to keep it around for your niche use case? Maintain it yourself, or hire someone else to. Just don't expect support from the major distributions, GUI tool kits, or application projects -- or kernel drivers.

X is going away because no one is stepping up to do the work to maintain it.

If you want to volunteer, then maybe it doesn't need to go away.

For a very simple reason: developers don't want to support multiple backends for their app, and end users don't want to install two different windowing systems to support different apps that made different choices.

The situation on Linux is already pretty bad w.r.t. having to install multiple big frameworks, with some apps assuming Gnome and others KDE. Imagine GTK chose to move to Wayland, but Qt chose to stick to X - you would probably end up with 4 different combos on many systems to support all expectations.

> For a very simple reason: developers don't want to support multiple backends for their app

Yeah, that is why in my code i don't bother with Wayland and just stick with X11 :-P (though things largely work on Wayland via XWayland, aside from a few things like some code i wrote that resets the mouse cursor position manually to allow for scrolling/panning/rotating without being limited by where the cursor is - well, under Wayland this limitation will exist, but it is a minor one).

Hmm, combos...

Would Guix be an answer ?

Maybe he really, really, REALLY doesn't want to switch to Wayland.
Unrelated but that looks almost like Twitter took this logo and flipped it horizontally
When in reality they just went "oh hey, double struck mathematical operators? Cool", typed "&1D54F;"[1], scrolled through their font picker, and then sent the invoice.

[1] https://www.fileformat.info/info/unicode/char/1D54F/index.ht...

What're the odds that invoice has been paid?
Presumably, Elon Musk did it himself. Which isn't hard to believe considering his fascination for the letter "X" and that it is a common Unicode symbol.

The story doesn't tell if he paid himself to do that.

Reminds me of Adam Neumann charging WeWork 5.9 million USD for the 'We' trademark.
He tried, but the courts made him give back the $56B.
It truly is the most mid, uninspired corporate logo I’ve seen in a while.
I dunno, remember the apple logo redesign?
I do and that’s actually a great comeback because that was also deeply uninspired.
X is a server for every client app
Did you mean to reply somewhere else? This doesn't seem to relate to what they said.
I think it's a joke on the claim that Twitter would become an 'everything app' when it became X. The software X11, being a windowing system, actually is a system for running 'every app', in a way.
X11 is a protocol, not a window manager.
Good point; I've edited my post so that it's more accurate.
Yes that was the joke :)
Maybe they were joking comparing the logo flip with the way X flips the regular notion of client and server (you run the X server on your machine, and you connect the remote app as a client).
Yeah woops. There was a comment that said the X logo looks like this X’s logo, but flipped
That Sun C++ compiler was responsible for many people dropping out at my school.
I learned C++ with GCC cli in Linux in high school 2007, in Kerala, India. My college had Sun thin client desktop with an extremely outdated GCC so I was helping when teachers were stuck helping. Our college system is such that you take a fixed syllabus for 4 years so people get daunted at first programming subject and nurse their coping mechanisms for 3 years.
How so?
Lack of standards compliance, bugs, and generally unhelpful compilation error reporting. It was a nightmare for the OOP class, which used more compiler features. Couple that with undergraduate sophomores and juniors trying to do things at the last moment, and you'll have a lot of former CS majors.
Sounds like the sort of program that'd give you a 0 on an assignment if it worked perfectly but emitted a compiler warning under Sun Studio
Auto play video ad with sound? Seriously?
You probably forgot that you accidentally disabled your ad blocker?
https://github.com/gorhill/uBlock

Or if on mobile, it is well worth it to look up adblock options for the browser you use.