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

Migrate from glibc libcrypt to sys-libs/libxcrypt #1732

Merged
merged 6 commits into from
May 24, 2024
Merged

Conversation

krnowak
Copy link
Member

@krnowak krnowak commented Mar 6, 2024

This ought to be done long time ago, as the glibc crypt functionality is deprecated since 2.30 or 2.33 or so. The sys-libs/libxcrypt provides the replacement. Glibc crypt stuff is supposed to be dropped in 2.39, so really soon. We are using 2.38 at the moment.

I think I punted the migration because I was getting some dependency loop issues (dev-lang/python -> virtual/crypt -> sys-libs/libxcrypt -> sys-libs/glibc -> dev-lang/python). Let's see how it goes now.

CI: http://jenkins.infra.kinvolk.io:8080/job/container/job/sdk/1474/cldsv/

  • changelog
  • image diff

@krnowak krnowak added the main label Mar 6, 2024
@krnowak krnowak marked this pull request as ready for review March 8, 2024 09:14
@krnowak krnowak requested a review from a team March 8, 2024 09:14
@krnowak
Copy link
Member Author

krnowak commented Mar 8, 2024

CI passed.

Copy link

github-actions bot commented Mar 8, 2024

Build action triggered: https://github.com/flatcar/scripts/actions/runs/9205546007

@dongsupark
Copy link
Member

Can you please rebase and run Jenkins CI again?
I remember I have seen it already passed, but just to be sure.

krnowak added 6 commits May 23, 2024 11:18
It's from Gentoo commit 5719c8e719b916e754090c74aaed74634a28ad9b.
It's long overdue and glibc 2.39 will drop crypt stuff altogether. Or
so I heard. Whatever happens, the crypt library in glibc is deprecated
for a long time already.
Stage1 hooks will receive a path to a file as a third parameter. They
can use it to tell the bootstrap script to set up catalyst to perform
updates on seed SDK. Contents of the file are ignored - what counts is
that the file exists AND is not empty.
They are copying sys-libs/libxcrypt from new portage-stable and
updating package masks and USE flags in order to migrate from
glibc-provided libcrypt to libxcrypt-provided libcrypt.

The migration seems to be a bit complicated to do, because
bootstrapping a system using glibc with libxcrypt-provided libcrypt
using a build environment using glibc with glibc-provided libcrypt
results in some slot conflicts. Without the stage1 hooks the failure
happened in stage2. With the hooks, but without the seed SDK update,
the failure happened already in stage1.

Updating the seed SDK to use libxcrypt seems to do the trick. The
update of the seed SDK will happen only when transition happens - if
the seed SDK is already using libxcrypt, these hooks are noops.
@krnowak
Copy link
Member Author

krnowak commented May 23, 2024

Rebased, CI kicked off.

Copy link
Member

@dongsupark dongsupark left a comment

Choose a reason for hiding this comment

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

Thanks

@krnowak krnowak merged commit 0c82cdc into main May 24, 2024
1 check failed
@krnowak krnowak deleted the krnowak/crypt branch May 24, 2024 08:04
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants