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
Dynamically load compression libraries #31550
Conversation
I'd really like to know if we can replace all these with libarchive first (see also #31131 (comment)) |
hmm, so we link against these libraries in journald for example to compress individual fields, does it really make sense to involve libarchive in that? does libarchive support uncompressing blobs that aren't tarballs/zipfiles? i kinda like the fact that if we make the individual compression libs dlopen-deps we truly minimize the dep tree, because people can pick one compressor only. After all libarchive itself does not employ dlopen() afaics. I mean:
Hence I am very much inclined to merging this PR. In particular libbz2 I think is something we should try to get out of the deptree. By using libarchive for everyting we'd still link to it indirectly. |
lgtm, but some issues, see above. And I guess the CIs need some updating before we can merge this, because the deps are now implicit rather than explicit. @mrc0mmand any chance you can look into that? |
Please also add an extra commit that deletes/updates the relevant lines in the TODO file in the toplevel dir. the one containing "bzip2, xz, lz4" |
Yes, see
Indeed. However, as discussed in the other PR, While it would be great if bzip2 can be eliminated from the whole system, that won't happen any time soon. So instead of adding more dlopen()-ed deps, which are hard to manage, it seems more practical to me to reduce the number of direct deps first. |
IOW, the reduced dependency tree isn't really observable by users, in which case adding more code and introducing more packaging/CI changes really sounds like a pure burden. |
well, the focus here is really on building tiny systems for initrds for example. I don't see why you'd need gunpg/ffmpeg/… in an initrd... i mean, sure, on a full blown desktop they will end up int he full install, but even then, i see no reason they need to be in the initrd.
but libarchive itself doesn#t need to be in the initrd, no? |
6227699
to
8932cc8
Compare
8932cc8
to
3a2648f
Compare
Should I call This could be the cause of |
7c5a90d
to
0631df0
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
test-dlopen-so.c should be modified as well to test the new dlopen functions
Wondering if we need changes for the initrd generation now... Are these libraries required at early boot? |
I think you might get away without them for now. |
Is this failing only for me? shouldn't
|
Follow-up for 1c20c9f. Fixes systemd#31550 (comment).
@aafeijoo-suse Maybe #31652 fixes your issue? |
Yes, definitely. I had already tried it :) |
Sorry for interrupting your work :-p |
No problem at all! Thanks for fixing it so quickly. |
Follow-up for 1c20c9f. Fixes systemd#31550 (comment).
Follow-up for 1c20c9f. Fixes #31550 (comment).
Follow-up for 1c20c9f. Fixes systemd#31550 (comment).
Follow-up for 1c20c9f. Fixes systemd#31550 (comment).
Follow-up to systemd#31550
Follow-up to systemd#31550
Follow-up for 1c20c9f. Fixes systemd#31550 (comment).
…y included Some required libraries that used to be statically included are in the process to be opened via `dlopen()`. References: - systemd/systemd#31131 - systemd/systemd#31550 - systemd/systemd#32019 Closes dracutdevs#2642
…y included Some required libraries that used to be statically included are in the process to be opened via `dlopen()`. References: - systemd/systemd#31131 - systemd/systemd#31550 - systemd/systemd#32019
…y included Some required libraries that used to be statically included are in the process to be opened via `dlopen()`. References: - systemd/systemd#31131 - systemd/systemd#31550 - systemd/systemd#32019
…y included Some required libraries that used to be statically included are in the process to be opened via `dlopen()`. References: - systemd/systemd#31131 - systemd/systemd#31550 - systemd/systemd#32019 Closes #2642
…y included Some required libraries that used to be statically included are in the process to be opened via `dlopen()`. References: - systemd/systemd#31131 - systemd/systemd#31550 - systemd/systemd#32019 Closes #2642
Dynamically load compression libraries (LZ4, ZSTD, LZMA) so we can reduce the size of the initram images by omitting libraries which aren't really used.