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

Build packages for Ubuntu 24.04 (Noble Numbat) #8

Merged
merged 3 commits into from
Aug 26, 2024
Merged

Build packages for Ubuntu 24.04 (Noble Numbat) #8

merged 3 commits into from
Aug 26, 2024

Conversation

walro
Copy link
Contributor

@walro walro commented Aug 26, 2024

See individual commits, biggest change is that we will use dpkg-shlibdeps(1) to get the list of dependencies. It will change the behavior slightly, as we will now have versions constraints which I would argue is a slight improvement.

Example:

$ docker build --progress=plain --target tester --build-arg image=ubuntu:jammy --build-arg erlang_version=26.0 --build-arg rabbitmq_version=3.13.0 .

# now
=> Depends: procps, libc6 (>= 2.34), libgcc-s1 (>= 3.0), libstdc++6 (>= 11), libtinfo6 (>= 6), zlib1g (>= 1:1.2.8)

# before
=> Depends: procps, libc6,libgcc-s1,libstdc++6,libtinfo6,zlib1g

walro added 3 commits August 26, 2024 09:19
Noticed while building:

>  - FromAsCasing: 'as' and 'FROM' keywords' casing do not match (line 99)
They link to GitHub these days (https://openssl-library.org/source/old/1.1.1/index.html). However, we need `-L` (follow redirects) as GitHub redirects to S3.

Also use latest 1.1.1 for good measure.
Utilize `dpkg-shlibdeps(1)` to build the list of dependencies, this was needed as the old approach was not compatible with Noble.

Under Noble, we have "diversions" to handle:

```
$ dpkg -S ld-linux-aarch64.so.1
libc6:arm64: /usr/lib/aarch64-linux-gnu/ld-linux-aarch64.so.1
libc6:arm64: /usr/lib/ld-linux-aarch64.so.1
diversion by libc6 from: /lib/ld-linux-aarch64.so.1
diversion by libc6 to: /lib/ld-linux-aarch64.so.1.usr-is-merged
diversion by libc6 from: /lib/ld-linux-aarch64.so.1
diversion by libc6 to: /lib/ld-linux-aarch64.so.1.usr-is-merged
```

Using `dpkg-shlibdeps` will also make a difference in that it will add version constraints while our older approach would not. I believe it is an improvement though.

Example:

```
$ docker build --progress=plain --target tester --build-arg image=ubuntu:jammy --build-arg erlang_version=26.0 --build-arg rabbitmq_version=3.13.0 .

# now
=> Depends: procps, libc6 (>= 2.34), libgcc-s1 (>= 3.0), libstdc++6 (>= 11), libtinfo6 (>= 6), zlib1g (>= 1:1.2.8)

# before
=> Depends: procps, libc6,libgcc-s1,libstdc++6,libtinfo6,zlib1g
```
Dockerfile Show resolved Hide resolved
@walro
Copy link
Contributor Author

walro commented Aug 26, 2024

Bootstrapped with the 21.3.8.24 package built from this repo, worked. So I think rest is likely fine too.

@walro walro merged commit 3ac4624 into main Aug 26, 2024
257 checks passed
@walro walro deleted the ubuntu/noble branch August 26, 2024 12:40
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