Skip to content
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

scripts: add replacements scripts for /sbin/ldconfig calls in glibc-common #3453

Merged
merged 1 commit into from
Feb 22, 2022

Conversation

keszybz
Copy link
Contributor

@keszybz keszybz commented Feb 22, 2022

The scriptlet in glibc adds a dependency on bash to glibc-common, which
is required by glibc, so effectively the whole world depends on bash.
I want to rewrite the script in lua to drop this dependency.

Quoting https://bugzilla.redhat.com/show_bug.cgi?id=2018913#c34:

warning: SCC #1: 5 members (5 external dependencies)
warning: 	glibc-2.35-2.fc37.x86_64
warning: 		-> glibc-minimal-langpack-2.35-2.fc37.x86_64
warning: 		-> glibc-common-2.35-2.fc37.x86_64
warning: 	ncurses-libs-6.2-9.20210508.fc36.x86_64
warning: 		-> glibc-2.35-2.fc37.x86_64
warning: 	bash-5.1.16-2.fc36.x86_64
warning: 		-> ncurses-libs-6.2-9.20210508.fc36.x86_64
warning: 		-> glibc-2.35-2.fc37.x86_64
warning: 	glibc-common-2.35-2.fc37.x86_64
warning: 		-> glibc-2.35-2.fc37.x86_64
warning: 		-> bash-5.1.16-2.fc36.x86_64
warning: 	glibc-minimal-langpack-2.35-2.fc37.x86_64
warning: 		-> glibc-common-2.35-2.fc37.x86_64
warning: 		-> glibc-2.35-2.fc37.x86_64

If we look into SCC #1, bash obviously requires glibc because it links
to it. The loop is created by glibc → glibc-common → bash, because
glibc-common has %transfiletriggerin and %transfiletriggerpostun using
bash to call /sbin/ldconfig.

@openshift-ci
Copy link

openshift-ci bot commented Feb 22, 2022

Hi @keszybz. Thanks for your PR.

I'm waiting for a coreos member to verify that this patch is reasonable to test. If it is, they should reply with /ok-to-test on its own line. Until that is done, I will not automatically test new commits in this PR, but the usual testing commands by org members will still work. Regular contributors should join the org to skip this step.

Once the patch is verified, the new status will be reflected by the ok-to-test label.

I understand the commands that are listed here.

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository.

@lucab
Copy link
Contributor

lucab commented Feb 22, 2022

/ok-to-test

@lucab
Copy link
Contributor

lucab commented Feb 22, 2022

Thanks for the proactive PR! I did read through the BZ and I think this makes sense to do.
The actual glibc-common change is at https://src.fedoraproject.org/rpms/glibc/pull-request/54, and I think it would be good to leave a breadcrumb to that in the code.

I'd leave some space for @cgwalters and @jlebon to have a look at the thread, as this is a place usually full of surprises.

jlebon
jlebon previously approved these changes Feb 22, 2022
Copy link
Member

@jlebon jlebon left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, thanks a lot for opening this upfront! Agreed re. adding a link to the dist-git PR (and the RHBZ too would be good).

The patch itself LGTM otherwise.

@keszybz
Copy link
Contributor Author

keszybz commented Feb 22, 2022

Well, I had to push one of the pull requests first. This one got the short straw ;)

I added the links and expanded the commit message bit.

…ommon

The scriptlet in glibc adds a dependency on bash to glibc-common, which
is required by glibc, so effectively the whole world depends on bash.
I want to rewrite the script in lua to drop this dependency, and also
to avoid a (bogus?) warning from rpm about a dependency loop.

Quoting https://bugzilla.redhat.com/show_bug.cgi?id=2018913#c34:

warning: SCC coreos#1: 5 members (5 external dependencies)
warning: 	glibc-2.35-2.fc37.x86_64
warning: 		-> glibc-minimal-langpack-2.35-2.fc37.x86_64
warning: 		-> glibc-common-2.35-2.fc37.x86_64
warning: 	ncurses-libs-6.2-9.20210508.fc36.x86_64
warning: 		-> glibc-2.35-2.fc37.x86_64
warning: 	bash-5.1.16-2.fc36.x86_64
warning: 		-> ncurses-libs-6.2-9.20210508.fc36.x86_64
warning: 		-> glibc-2.35-2.fc37.x86_64
warning: 	glibc-common-2.35-2.fc37.x86_64
warning: 		-> glibc-2.35-2.fc37.x86_64
warning: 		-> bash-5.1.16-2.fc36.x86_64
warning: 	glibc-minimal-langpack-2.35-2.fc37.x86_64
warning: 		-> glibc-common-2.35-2.fc37.x86_64
warning: 		-> glibc-2.35-2.fc37.x86_64

If we look into SCC coreos#1, bash obviously requires glibc because it links
to it. The loop is created by glibc → glibc-common → bash, because
glibc-common has %transfiletriggerin and %transfiletriggerpostun using
bash to call /sbin/ldconfig.

The pull request for glibc: https://src.fedoraproject.org/rpms/glibc/pull-request/54
Bug: https://bugzilla.redhat.com/show_bug.cgi?id=2018913
(But note that this change doesn't necessarilly help in any way with
the bug. The main motivation is as described above.)
Copy link
Member

@jlebon jlebon left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks! I took the liberty of including the links in a comment as well to make it easier to keep track of this growing pile of hacksworkarounds.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants