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

Add more Ubuntu versions and Debian support #439

Merged
merged 8 commits into from
Dec 4, 2024

Conversation

cpuguy83
Copy link
Member

Individual commits detail each change.
Basically:

  1. Added some best-effort support to support older go verisons that may not support the GOMODCACHE env var
  2. Sets $PATH in the deb build scripts to what's in the worker image to improve reproducibility
  3. Add support for non-standard Ubuntu/Debian go packages from backports that do not install go into $PATH
  4. Add Ubuntu versions
  5. Add Debian versions

@cpuguy83 cpuguy83 requested a review from a team as a code owner November 21, 2024 01:39
@cpuguy83 cpuguy83 mentioned this pull request Nov 21, 2024
website/docs/targets.md Outdated Show resolved Hide resolved
@cpuguy83 cpuguy83 force-pushed the MOAR_UBUNTU branch 3 times, most recently from d5b0051 to 0c81590 Compare November 27, 2024 20:57
frontend/deb/debroot.go Outdated Show resolved Hide resolved
frontend/rpm/handle_sources.go Show resolved Hide resolved
website/docs/targets.md Outdated Show resolved Hide resolved
@cpuguy83
Copy link
Member Author

cpuguy83 commented Dec 2, 2024

Updated with suggestions.

@@ -79,6 +79,7 @@ func (cfg *Config) Worker(sOpt dalec.SourceOpts, opts ...llb.ConstraintsOpt) (ll
Run(
dalec.WithConstraints(opts...),
AptInstall(cfg.BuilderPackages, opts...),
dalec.WithMountedAptCache(cfg.AptCachePrefix),
Copy link
Contributor

Choose a reason for hiding this comment

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

Was this just not using the shared apt cache before?

Copy link
Member Author

Choose a reason for hiding this comment

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

Yes, somehow got left out when I moved things around.

Copy link
Contributor

@adamperlin adamperlin left a comment

Choose a reason for hiding this comment

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

This looks good to me, just a few small things

This is just shifting some bits raound to make more sense for adding
other Ubuntu versions.

Signed-off-by: Brian Goff <cpuguy83@gmail.com>
Older versions of Go that supported go modules didn't neccessarily
support the `GOMODCACHE` env var.
This change works around this limitation by linking our fetched go
modules into the configured `$GOPATH` when this is the case.

Additionally updates the gomod generator to not rely on `$GOMODCACHE`.

Signed-off-by: Brian Goff <cpuguy83@gmail.com>
This prepares the deb packaging to allow worker images to update $PATH
and make sure that is passed along to the build scripts so that the
source package is more likely to be reproducible.

This will be useful for supporting non-standard go packages in Ubuntu
such as `golang-<ver>` which do not add the go bins anywhere in the
standard $PATH.

Signed-off-by: Brian Goff <cpuguy83@gmail.com>
Sometimes the `golang` package is just very old, but there may be other
packages available like `golang-<ver>`, however those do not typically
install the `go` binary such that it would be available in $PATH.

This autoamtically looks up go and sets $PATH to include go in that
path, but only when there is a `golang-<ver>` package in the dependency
list.

Signed-off-by: Brian Goff <cpuguy83@gmail.com>
The package is not available on all debian distros but is instead listed
as a `Provides` from the `debhelper` package.

The debhelper-compat build dep is still part of the generated debian
control file so the compat level is still ensured.

This is required to support distros that do not have an explicit package
called `debhelper-compat` and instead only lists it in the `Provides`
section of the `debhelper` package.

Signed-off-by: Brian Goff <cpuguy83@gmail.com>
Adds 18.04, 20.04, and 24.04 (in addition to 22.04 which was already
there).

For tests, given that Ubuntu <= 20.04 have a "golang" package that is
too old to run the tests, I added a way to override the package name
used in the test.

Another minor modification due to Bionic not supporting
`execute_after_dh_fixperms`.

Signed-off-by: Brian Goff <cpuguy83@gmail.com>
This adds Debian Bullseye and Bookworm support.
The only real change needed here was to update the distro config to
allow us to enable the `bullseye-backports` repo so the tests can
install a more recent version of go (and as such pass the test).

Signed-off-by: Brian Goff <cpuguy83@gmail.com>
This makes the build a bit more friendly to building outside of DALEC
where we don't mess with *their* $PATH except by adding the paths we
need instead of replacing the whole thing.

Signed-off-by: Brian Goff <cpuguy83@gmail.com>
@cpuguy83 cpuguy83 merged commit 5889129 into Azure:main Dec 4, 2024
9 checks passed
@cpuguy83 cpuguy83 deleted the MOAR_UBUNTU branch December 4, 2024 17:52
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