-
Notifications
You must be signed in to change notification settings - Fork 416
remove glibc runtime dependency on wolfi-baselayout, eliminate runtime loop #2937
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
Conversation
|
Not enabling auto-merge until someone can comment on the question above. |
|
I think we'd need to check all images that include glibc and make sure that they'd still include Wolfi base layout. |
|
That sounds like a good job for an automated process. Actually, let me ask. Does glibc actually need |
fb662ce to
ad49e23
Compare
|
The package itself does not need it, but the underlying images do. |
Do you mean the images that consume
|
ad49e23 to
00bd72a
Compare
|
Right, to clarify, the glibc package is usable without wolfi-baselayout, but the wolfi-baselayout package sets up some symlinks and other things that make sure glibc and other packages are laid out the desired way in the images we build using wolfi. One option might be to split out the “required” path setup and have glibc provide that as a subpackage which it depends on, which wolfi-baselayout then pulls in as a dependency. Or we could just say “you always need a baselayout apk.” Part of the reason why glibc has an runtime dep on wolfi-baselayout is to ensure the solver picks it before glibc though… |
Instinctively, I lean towards this, as you probably can tell from my earlier comments. It is clean and makes sense. Except for the two points you raised:
and
Which are valid reasons. Maybe an alternate approach?
If we always want
Thoughts? |
|
We could remove the posix dependency from the baselayout, instead making it a runtime dep of glibc. What do you think? |
All images require wolfi-baselayout. It's not linted currently but could be relatively easily. The migration to TF will make it even harder to mess up, since it's a provider-wide package defined once. |
We wouldn't need to. If we remove it from The question is, why is it a dep of Conversely, what if we make it part of Instead of: we get: Or just a separate package that both depend upon I can do any of the above; point me? |
|
I just dug into the Which brings me back to the suggestion of @kaniini
Looks like the best path. I will modify this PR to reflect that, and we can comment from there. |
Signed-off-by: Avi Deitcher <avi@deitcher.net>
00bd72a to
5c347fa
Compare
|
This has been updated such that:
The net effects are:
Feedback from the commenters above (@kaniini @imjasonh @dlorenc)? |
|
I think its fine to proceed with this. |
|
Sounds good. Anything downstream we need to update? |
|
I can't think of anything. The only staticly linked binaries we ship are Golang ones, which do not require the locale data. |
|
Cool thanks. I'll add this one to the queue, then head back to the other issue to try and resolve the remaining cycles. |
glibc.yamlhas a runtime dependency onwolfi-baselayout. This created a loop:At @kaniini 's suggestion, removing the
glibcruntime (not buildtime) dependency onwolfi-basealayout.To be honest, I am not sure the right way to test this. If it were buildtime, it would be easy: either the package builds correctly or it does not. Do we have anything in tests that catches this?