Initially the bug report was shot down by systemd developer Luca Boccassi of Microsoft with:
So an option that is literally documented as saying “all files and directories created by a tmpfiles.d/ entry will be deleted”, that you knew nothing about, sounded like a “good idea”? Did you even go and look what tmpfiles.d entries you had beforehand?
Maybe don’t just run random commands that you know nothing about, while ignoring what the documentation tells you? Just a thought eh"
Good devs, good product, I’m really excited about out shitty, shitty future.
I think we should fail --purge if no config file is specified on the command line. I see no world where an invocation without one would make sense, and it would have caught the problem here. —poettering
And that was what they did in the patch.
It’s bluca, yo.
As a random example, here is bluca breaking
suspend-then-hibernate
, then being a complete asshole about it, while other systemd devs are trying to put the fire out. Do read his code reviews on the latter. yuwata and keszybz have nerves of steel.The current behaviour is fully expected and documented
bluca is cancer.
Jesus Christ, what a fucking asshole. Calls the very valid complaints “trolling” before locking the fucking thread
He’s trying to be a little Poettering.
I always think it’s crazy when employees of companies with paying customers act like such jackasses in public.
Funny to seem him arguing against
HibernateDelaySec
because of possible data loss, yet if systemd-tmpfiles purges your fucking home directory it’s “documented behaviour”. The superiority complex of some people…
Someone should force this guy to read about the principle of least astonishment.
Doesn’t surprise me that a developer from Microsoft doesn’t understand this. To this day, when I select “Update and Shut Down” in Windows, it only actually shuts the computer down about half the time.
To this day, when I select “Update and Shut Down” in Windows, it only actually shuts the computer down about half the time.
And that surprises you?
At this point, no. But it’s still incredibly annoying and a little spooky when I’m laying in bed and I see my computer screen light up in the next room when it’s not supposed to.
It’ll even wake itself from sleep when it wants to update, but it won’t start it automatically, I think because it hits the lock screen.
I’ll probably try Linux on ir when Windows 10 hits EOL.
Hey, it’s better than the gnome developers who will just close your issue when the discussion gets “too heated” or they refuse to see your use case as valid.
https://lemmy.zip/comment/11156711
It doesn’t excuse the behavior, but I get where it’s coming from.
Yah, if a developer wants to call all/most of his users ‘idiots’, they should have someone else interact with users.
Wanting to and actually doing it are two different things.
The problem is that open source devs also have to be their own project managers, but those two jobs have very different skillsets.
In regular software development, it’s the PM’s job to deal with the drama, filter the idiocy out and collect concise and actionable user stories, and let the developers just write code.
In open source, you tend to deal with a lot of entitlement. All kinds of people, who never gave you a dime, come out out of the woodwork to yell at you over every little change. The bigger and farther reaching a project is, the more this happens, and it wears you down. I can only imagine what it’s like working on a huge project like GNOME.
And the toxicity feeds into itself. Be kurt with one person, and suddenly it gets out that you’re an asshole to users. Then people come in expecting hostility and react defensively to every little comment. And that puts you in the same mindset.
At the end of the day, you can’t satisfy everyone. Sometimes you gotta figure out how to tell someone their feature request is stupid and you’re not gonna work on it, especially not for free. And a lot of people need to learn to try to fix problems themselves before opening an issue. That’s kind of the whole point of open source.
Chill man, Microsoft hired him to develop systemd as they use a ton of Linux in Azure.
Doesn’t surprise me that a developer from Microsoft doesn’t understand this. To this day, when I select “Update and Shut Down” in Windows, it only actually shuts the computer down about half the time.
There are some tasks that only can be done when the majority of the system is not in use. Windows prepares the files, reboots, does its thing in a preboot environment, then it actually shuts down.
Yeah, “Systemd won”, “it’s decided”, stuff like this on discourse. Sorry, but that’s not how Open Source works.
After briefly reading about systemd’s tmpfiles.d, I have to ask why it was used to create home directories in the first place. The documentation I read said it was for volatile files. Is a users home directory considered volatile? Was this something the user set up, or the distro they were using. If the distro, this seems like a lot of ire at someone who really doesn’t deserve it.
I thought the same, surely some distribution messed up.
They didn’t. Systemd ships this file as /usr/lib/tmpfiles.d/home.conf. That is a valid configuration directory, the lowest priority, and not just an example.
Basically it would only take effect in certain scenarios, and in most distributions it is doing nothing. Except when someone ran purge and it cleared files it had no hand in creating.
So yeah, this was actually a big issue.
I guess reading the history, systemd did a better job of dependency resolution and parallel loading of startup services. Then some less interesting stuff like logins, permissions, and device management - which definitely seems out of scope. There’s been like 15 alternatives since it was made, but none of them got critical mass, and now pretty much every mainstream distro can’t run without it. Sad face
While I’m here complaining, I really miss the days when Arch was configured from a single global file that handled many things like setting your hostname, locale, etc. I think it was dropped bc of maintenance & being not unixy enough. Kinda ironic
I think it was probably dropped to be more like other Linux distributions. The BSDs put a ton of stuff in rc.conf.
Oof, that quote is the exact brand of nerd bullshit that makes my blood boil. “Sure, it’s horribly designed, complicated, hard to understand, unnecessarily dangerous, and extremely misleading, but it’s your fault for nOT rEAdiNg ThE dOCUmeNtATiON”
A command that basically reads “purge tempfiles” should absolutely never purge anything but temporary files. I understand the context of it being called that, but if
systemd-tmpfiles
is literally responsible for creating the user’s home folder, it might be a good idea to rename it.Microsoft
Ah so that’s where they pulled the run0 idea out of their asses from.
brb gonna go tell RedHat to make a fork lol.
“If you can’t win, lead.” Systemd development is in the hands of Microsoft employees. systemd has taken over almost all of Linux. Experts answer - in whose hands is Linux now? :)
Most subtle instance of Microsoft’s Embrace-Extend-Extinguish to date.
@nick Hmm, wasn’t systemd the emacs of init systems?
Oh, come on, did you really have to pull emacs into this crossfire? Leave us weirdos alone!
Shitpost about someone shitting.
Initially the bug report was shot down by systemd developer Luca Boccassi of Microsoft with:
Emphasis mine.
While MS at least tries to be good guy nowdays, I just can’t trust their code too much.
They never stopped being bad, they’ve just refined their tactics.
So an option that is literally documented as saying “all files and directories created by a tmpfiles.d/ entry will be deleted”, that you knew nothing about, sounded like a “good idea”?
Bro, if it sounded like a good idea to someone, you didn’t fucking warn them enough. Don’t put this on them without considering what you did to confuse them.
Also, nfn, the systemd documentation is a nightmare to read through, even if you know exactly what you’re looking for.
(I’m still gonna keep using systemd because it’s better than the alternatives, though. OP, don’t write stuff off because 1 guy is a dick.)
I thought surely some distribution had messed up by using this temporary files generator for /home, but that configuration is actually a file bundled with systemd and the purge would take effect even if the distribution was creating /home as part of the install (ignoring the tmpfiles config), which they pretty much all do. So yeah, any defense I had towards the dev is gone there.
Editorializing the title and putting nothing but polemics into the description paints you in a worse light than it does the systemd devs.
Don’t care.
–purge is NOT documented in man for systemd-tmpfiles
It was added in v256, maybe you don’t have that yet
That could be it actually, I’ll have to check when I have access to my computer
I unfortunately updated already and they seem to have added documentation into
man systemd-tmpfiles
already. Here is the snippet that is relevant:--purge If this option is passed, all files and directories marked for creation by the tmpfiles.d/ files specified on the command line will be deleted. Specifically, this acts on all files and directories marked with f, F, d, D, v, q, Q, p, L, c, b, C, w, e. If this switch is used at least one tmpfiles.d/ file (or - for standard input) must be specified on the command line or the invocation will be refused, for safety reasons (as otherwise much of the installed system files might be removed). The primary usecase for this option is to automatically remove files and directories that originally have been created on behalf of an installed packaged at package removal time. It is recommended to first run this command in combination with --dry-run (see below) to verify which files and directories will be deleted. Warning! This is is usually not the command you want! In most cases --remove is what you are looking for. Added in version 256.
Did you update to 256.1? On Poettering’s recommendation, they made it require a config.
For anyone defending the dev ensure you have the version before this patch and run
systemd-tmpfiles --purge
just a heads up, it will delete your home because/usr/lib/tmpfiles.d/home.conf
exists and lists your home as a temporary file. This is a HUGE issue, tmpfiles.d default behavior is to list /home as a temporary dir, that should NOT be the case. Their fix is also sort of bullshit, instead of removing home as a tmpdir they made it so that you need to specify which files to purge.Deleting your home directory on Linux is inevitable. A temporary classification is correct.
Huh, that was my first thougth. Why is /home/ configured in systemd-tmpfiles? Seems strange for me.
E.g. for quick provisioning of containers or virtual machines, this is also to make sure the required directories always exist. In a normal distribution, /home already exists, so systemd-tmpfiles does nothing, but there are cases where you want to setup a standard directory structure and this is a declarative alternative to scripts with a lot of mkdir, chmod and chown.
The name systemd-tmpfiles is kind of historic at this point, but wasn’t changed due to backwards compatibility and all.
Then those containers or virtual machines should add this or create the home as needed. Having/home listed as a tmp file on regular systems is problematic by the nature of what tmpfiles claims it does.
Then those containers or virtual machines should add this or create the home as needed.
systemd has its own containers, so this is the implementation of that requirement; “virtual machines” might use this exact binary to create home, among other directories like srv and what not. Someone at one point probably said “we always need to create these when spinning up systems, maybe systems can provide a mechanism to do that for us?” and then it was implemented.
Having/home listed as a tmp file on regular systems is problematic by the nature of what tmpfiles claims it does.
systemd-tmpfiles claims the following:
systemd-tmpfiles creates, deletes, and cleans up files and directories, using the configuration file format and location specified in tmpfiles.d(5). Historically, it was designed to manage volatile and temporary files, as the name suggests, but it provides generic file management functionality and can be used to manage any kind of files.
I rather think having a purge command was the issue here, at the very least it should print a big fat warning at what it does, better even list all affected files and directories. There’s no reason a normal user needs this and with the name of the binary, it’s totally misleading, which is an issue in these situations.
Is that a standard systemd configuration or something enabled by a distro?
I assume systemd standard since the two different distros I have (Ubuntu and Arch) have it there.