-
-
Notifications
You must be signed in to change notification settings - Fork 4.2k
tmpfiles,sysusers: disable --image= support in standalone versions #17297
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
tmpfiles,sysusers: disable --image= support in standalone versions #17297
Conversation
|
is this ifdeffery still worth it? aren't the deps on libshared.so limited enough these days to not require this? at least on my machine libsystemd-shared only has a footprint of 3.4M, so is there really much benefit left? Really, I'd rather have fewer hacks like that, not more. ifdeffery that leaks into main programs just sucks. Not a fan. |
|
v246 master PR17297 Much better, thanks @keszybz |
libidn2 should be gone with git master, too. |
Ok, that's good. @keszybz any idea why the libcrypto/p11-kit deps leak into those binaries? |
|
i definitely have the intention to make the p11-kit dep also a dlopen() one |
|
hum, could we maybe not merge stuff like this before the discussions are done? there has not been any code review on this one, has there? i.e. i for one would much prefer if this ifdeffery would not happen in the main programs but in the helper calls. ifdeffery in main programs sprinkled all over the place and just sucks. And it's going to break next time anyone touches this stuff. |
|
hm, there wasn't any discussion label or so and your first remark is more of the general nature. |
I did have a look at the changes and they looked fine to me. The changes are not too invasive (I don't think "sprinkled all over the place" is quite accurate) and restricted to the affected binaries. |
|
On a more general note: I appreciate the effort regarding dlopen to reduce dependencies, but this also has a downside (not sure if this also affects RPM based distros): We no longer get any automatic dependencies on the affected libraries. Say one of those libraries bumps the SONAME, the functionality in systemd simply stops working. I'm a bit torn. |
|
We can certainly add some meta info file into the tree somewhere that is kept in sync (i.e is auto generated) with the precise .so names we use in dlopen() from which libs/binaries. You could use that to automatically synthesize Recommends style deps, and notice so name changes that way. Would require some plumbing on your side though to parse that meta info file and propagate it into the debian packaging metainfo in some form. but that should not be too hard? we could synthesize files we can (implementationwise I'd probably add a macro to declare such weak so deps in code that ends up in a comment section in the ELF file, from where it could be extracted via readelf. That way the meta-info would be kept up-to-date very easily and would be attached directly to the binary files) we can't be the first project using dlopen() for such weak deps. It might be worth to track down what is done in other RPMs/DEBs for this case. Maybe there's something used somewhere that is better than manual dep updating |
|
I'm not aware of any prior art in that regard (at least on the Debian side). We have a mechanism called Built-Using [1] in Debian, but this doesn't really match our requirements here (it's more suitable for static linking). I'm really curious how other distros handle this. [1] https://www.debian.org/doc/debian-policy/ch-relationships.html#s-built-using |
|
Fwiw, I completely agree that those (weak) deps should ideally be generated automatically. Otherwise they are bound to be out-of-date. |
Fixes #17278.