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

Upgrade base image from Debian Bullseye (oldstable) to Bookworm (stable) #233

Merged
merged 1 commit into from
Sep 5, 2024

Conversation

tsibley
Copy link
Member

@tsibley tsibley commented Sep 4, 2024

Avail ourselves of newer (though still not new ;) software, in particular the SQLite CLI.

Checklist

  • Checks pass

@tsibley
Copy link
Member Author

tsibley commented Sep 4, 2024

I expect this to fail in many ways, but let's see what happens!

@tsibley
Copy link
Member Author

tsibley commented Sep 4, 2024

CI error was during build of vcftools for the aarch64 image. Relevant part looks like:

#35 3.637 checking for aarch64-linux-gnu-pkg-config... no
#35 3.637 checking for pkg-config... /usr/bin/pkg-config
#35 3.638 checking pkg-config is at least version 0.9.0... yes
#35 3.639 checking for zlib... no
#35 3.646 configure: error: Package requirements (zlib) were not met:
#35 3.646 
#35 3.646 Package 'zlib', required by 'virtual:world', not found
#35 3.646 
#35 3.646 Consider adjusting the PKG_CONFIG_PATH environment variable if you
#35 3.646 installed software in a non-standard prefix.
#35 3.646 
#35 3.646 Alternatively, you may set the environment variables ZLIB_CFLAGS
#35 3.646 and ZLIB_LIBS to avoid the need to call pkg-config.
#35 3.646 See the pkg-config man page for more details.

We install zlib1g-dev, which pulls in zlib1g, with xx-apt-get. Is the problem that the target platform's aarch64-linux-gnu-pkg-config isn't being found and so the build platform's pkg-config is used, but zlib isn't installed for the build platform?

@tsibley
Copy link
Member Author

tsibley commented Sep 4, 2024

Is the problem that the target platform's aarch64-linux-gnu-pkg-config isn't being found and so the build platform's pkg-config is used, but zlib isn't installed for the build platform?

Replicated the error locally and then validated that installing pkg-config with xx-apt-get prior to the vcftools build worked.

Dockerfile Show resolved Hide resolved
@tsibley tsibley marked this pull request as draft September 5, 2024 05:27
@tsibley
Copy link
Member Author

tsibley commented Sep 5, 2024

The next CI failure

> [linux/arm64 final  4/23] RUN if [[ "linux/arm64" == linux/arm64 ]]; then       apt-get update && apt-get install -y --no-install-recommends           libopenblas-base       ;     fi:
0.707 Hit:1 http://deb.debian.org/debian bookworm InRelease
0.709 Hit:2 http://deb.debian.org/debian bookworm-updates InRelease
0.709 Hit:3 http://deb.debian.org/debian-security bookworm-security InRelease
0.793 Hit:4 https://deb.nodesource.com/node_18.x nodistro InRelease

13.16 Reading state information...
13.19 E: Unable to locate package libopenblas-base

is because libopenblas-base was only a transitional package in Bullseye subsequently removed in Bookworm in favor of the new name, libopenblas0. We probably should have used libopenblas0 back then instead of the transitional package. Fixed in repush.

@tsibley
Copy link
Member Author

tsibley commented Sep 5, 2024

The image built completely in CI but one minor testing failure because I'd based this branch on a month-old master (only visible on the workflow push event, not the workflow pull_request event). Whoops. Rebased to fix, but this is ready for review.

@tsibley tsibley marked this pull request as ready for review September 5, 2024 06:38
Avail ourselves of newer (though still not _new_ ;) software, in
particular the SQLite CLI.

The use of Bullseye's version number, 11, instead of its name in the
builder-build-platform image tripped me up at first, so I've switched it
over to Bookworm's name instead of number (12).

The cross-compilation of vcftools targeting arm64/aarch64 on amd64
requires pkg-config installed for the *target* platform with xx-apt-get.
Without it, the vcftool's configure script can't find zlib since its
using the *build* platform's pkg-config and zlib is not installed for
the build platform.  I'm not sure why this worked with the build
platform's pkg-config previously but not now.

The libopenblas-base package was renamed libopenblas0.  In Bullseye, the
former was a dependency-only package to allow older systems coming from
Buster (oldoldstable), or instructions based on it, to more gracefully
transition to Bullseye.  The transitional package was removed in
Bookworm.
Copy link
Member

@victorlin victorlin left a comment

Choose a reason for hiding this comment

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

I didn't test anything but changes look good.

@tsibley
Copy link
Member Author

tsibley commented Sep 5, 2024

The ncov-ingest image seems to build fine locally if I rebase it onto this PR's image.

@tsibley tsibley merged commit ce11171 into master Sep 5, 2024
48 checks passed
@tsibley tsibley deleted the trs/debian-bookworm branch September 5, 2024 22:22
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants