Overview

Request 542567 accepted

- Don't execute systemd-tmpfiles if we run in transactional update
mode


Franck Bui's avatar

Can you please explain what this thing is needed for ?

Does it fix a bug ?


Thorsten Kukuk's avatar

If you do transactional updates, it doesn't make any sense to execute the tmpfiles. They will only create a lot of directories, files or symlinks in empty directories without any use and later hidden under the real mount points. With transactional updates, you should do such things always during the boot phase, as designed by systemd (and like Fedora and RHEL doing, but in their use case it's in my opinion a bug).


Franck Bui's avatar

ok I've reverted your changes so we can finish discussing about it.

The fact that it was committed was pretty rude...


Franck Bui's avatar

I don't think that's correct. tmpfiles can be used to create/init stuff during package installation so it's possible to use a package right after its installation, see: https://github.com/systemd/systemd/pull/6860#issuecomment-330476737


Thorsten Kukuk's avatar

Funny that you think you know more about transactional updates then the people inventing this stuff :( And why did I wrote the answer if you did not read it. If you do transactional updates, neither the directories are accessible nor can you use the package right after it's installation. See: https://en.opensuse.org/openSUSE:Packaging_for_transactional-updates


Franck Bui's avatar

And it's not funny at all to work with someone who is aggressive when he is asked to explain his work. Sorry if I do not know as much as you do.

And I was just pointing out that your claim "you should do such things always during the boot phase, as designed by systemd" isn't right.

Nothing about transactional updates...


Thorsten Kukuk's avatar

Please quote correct:

"With transactional updates, you should do such things always during the boot phase"

And quote from Lennart: "tmpfiles mostly exists to fix things up at boot"


Franck Bui's avatar

No the exact quote is "tmpfiles mostly exists to fix things up at boot, or at package install, to somewhat make it possible to use a package right after installation."

Please note the part "or at package install, ...".

I'm pointing this out because I have the feeling that preventing tmpfiles from being created during package installations/updates can lead to some issues. tmpfiles has grown to something that does more than creating temporary stuff.

Also any packages should be able to create directly temporary stuff for their own purpose (without relying on tmpfiles) and should be able to assume that temporary locations behave as expected.

Why don't the transaction update process takes care of those special locations (/tmp, /run, /proc, /dev) as it's probably done by any tool that deals with chroot ?


Thorsten Kukuk's avatar

Could it be that you did not understand the change?

Your "normal" package installation/update is not affected by this. With transactional updates, all you are complaining about is FORBIDDEN! See the opensuse packaging guidelines for transactional updates. If packages relay on the availability of directories/files outside of the root subvolume (and even Lennart clearly states, that tmpfiles.d is not for creating temporary files inside and that nobody should ever do that), they are broken by design for transactional-updates and we have to fix them.

And again, I'm still under the impression you think you know better than me what is allowed and possible during transactional updates and what not :(


Franck Bui's avatar

and here you go again with your sarcasms....

ok just to finish this pleasant and interesting discussion: tmpfiles is just not about creating temporary files in /tmp or /run, it does more than that these days but apparently you know already any possible use cases that packages can invent. And yes using tmpfiles for root fs is a possible use case.

Also the fact that packages should behave differently when doing transactional updates is just odd.

Oh and final words, since you seem to be bored by submit reviews because you know for sure all the cases that tmpfiles might involve, I would suggest you to mark you as the maintainer of this package and commit directly in the devel project so no one will bother you with questions.

:(


Franck Bui's avatar

@dirkmuller: may I ask you why you did accept this request while we were discussing about it ?


Franck Bui's avatar

@dirkmueller: ^^^


Franck Bui's avatar

I'm wondering actually why you were allowed to do that since AFAICS you're not part of the package maintainers...


Dominique Leuenberger's avatar

Dirk is marked as project maintainer: https://build.opensuse.org/project/users/Base:System

There is no excuse to ignore active package maintainers though!

Request History
Thorsten Kukuk's avatar

kukuk created request

- Don't execute systemd-tmpfiles if we run in transactional update
mode


Dirk Mueller's avatar

dirkmueller accepted request

openSUSE Build Service is sponsored by