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

Provide a temurin-build build arg --use-adoptium-devkit <devkit_tag> #3706

Merged
merged 36 commits into from
Mar 28, 2024

Conversation

andrew-m-leonard
Copy link
Contributor

Enable users to build using an Adoptium built DevKit from https://github.com/adoptium/devkit-binaries
Adding a new build arg:

--use-adoptium-devkit <devkit_tag>

eg.:

--use-adoptium-devkit gcc-11.3.0-Centos7.6.1810-b01

This will download and verify the DevKit for the given architecture from the devkit-binaries release specified.
Then build using that devkit

…ild output

Signed-off-by: Andrew Leonard <anleonar@redhat.com>
…ild output

Signed-off-by: Andrew Leonard <anleonar@redhat.com>
…ild output

Signed-off-by: Andrew Leonard <anleonar@redhat.com>
…ild output

Signed-off-by: Andrew Leonard <anleonar@redhat.com>
…ild output

Signed-off-by: Andrew Leonard <anleonar@redhat.com>
…ild output

Signed-off-by: Andrew Leonard <anleonar@redhat.com>
…ild output

Signed-off-by: Andrew Leonard <anleonar@redhat.com>
…ild output

Signed-off-by: Andrew Leonard <anleonar@redhat.com>
Signed-off-by: Andrew Leonard <anleonar@redhat.com>
Signed-off-by: Andrew Leonard <anleonar@redhat.com>
Signed-off-by: Andrew Leonard <anleonar@redhat.com>
Signed-off-by: Andrew Leonard <anleonar@redhat.com>
Signed-off-by: Andrew Leonard <anleonar@redhat.com>
Signed-off-by: Andrew Leonard <anleonar@redhat.com>
Signed-off-by: Andrew Leonard <anleonar@redhat.com>
Signed-off-by: Andrew Leonard <anleonar@redhat.com>
Signed-off-by: Andrew Leonard <anleonar@redhat.com>
Signed-off-by: Andrew Leonard <anleonar@redhat.com>
Signed-off-by: Andrew Leonard <anleonar@redhat.com>
Signed-off-by: Andrew Leonard <anleonar@redhat.com>
@andrew-m-leonard andrew-m-leonard self-assigned this Mar 14, 2024
Copy link

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

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

A block has been put on this Pull Request as this repository is temporarily under a code freeze due to an ongoing release cycle.

If this pull request needs to be merged during the release cycle then please comment /merge and a PMC member will be able to remove the block.

If the code freeze is over you can remove this block by commenting /thaw.

@github-actions github-actions bot added the documentation Issues that request updates to our documentation label Mar 14, 2024
@andrew-m-leonard andrew-m-leonard marked this pull request as draft March 14, 2024 15:47
@andrew-m-leonard
Copy link
Contributor Author

andrew-m-leonard commented Mar 14, 2024

Currently based on PR https://github.com/adoptium/temurin-build/pull/3696/files
Will need rebasing once that is merged.

Also, cherry-picks fix: https://github.com/adoptium/temurin-build/pull/3701/files

Signed-off-by: Andrew Leonard <anleonar@redhat.com>
Signed-off-by: Andrew Leonard <anleonar@redhat.com>
Signed-off-by: Andrew Leonard <anleonar@redhat.com>
Signed-off-by: Andrew Leonard <anleonar@redhat.com>
Signed-off-by: Andrew Leonard <anleonar@redhat.com>
Copy link
Member

@sxa sxa left a comment

Choose a reason for hiding this comment

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

Time for a controversial discussion starter ;-)

This is a follow-on to my recent comment in #3691 (review) since it's especially relevant here but I strongly believe it would be preferable to have these devkits installed into the Linux container build image as a default on the system - replacing the Adoptium/GCC11 installs we currently put on - for use going forward so they can be used by anyone using our images who are typically not using the make-adopt-build-farm.sh

We should make the end-user process as slick as possible for being to reproduce the Temurin builds. I know there has been some concern expressed relating to the provenance of these things if we don't download but that would also be true of anything else in these images such as make and anything else that is on these images. Plus the docker images are checksummed and therefore verifiable.

So TL;DR I'd really like to modify the playbooks to add the devkit in instead of downloading for each build and keep those on the images in parallel for a while with the Adoptium/GCC11 ones, then look at removing the Adoptium/GCC11 later, especially since the Adoptium/GCC11 ones will be redundant and so potentially lead to confusion if they are picked up.

Also there may be justification for a new type of build image that contains the minimal amount of packages to build Temurin 20+ plus the devkit (This could be really quite small based on the tests I've done - the devkit tarballs seem no larger then the previous gcc-only ones)

@andrew-m-leonard
Copy link
Contributor Author

Yes agree, a follow on from this PR, would be to check if the requested devkit_tag (eg.gcc-11.3.0-Centos7.9.2009-b01) is already located in /usr/local/gcc11 (or whereever...), hence why I have added the tag to the devkit.info:
https://github.com/adoptium/ci-jenkins-pipelines/pull/955/files#diff-6f0823534c91127817b92b81710a0e3001e18d23eda57f34f4423a27daaece5dR45

Given the short runway for April, I want to get it functional downloading, before that next step.

sbin/prepareWorkspace.sh Outdated Show resolved Hide resolved
@andrew-m-leonard andrew-m-leonard marked this pull request as ready for review March 27, 2024 14:54
Copy link
Member

@sxa sxa left a comment

Choose a reason for hiding this comment

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

Looks ok, but we perhaps need to have a bit of documentation somewhere on using the devkit and make it clear / throw a warning if the --with-devkit and --with-adoptium-devkit are both specified, since the latter will set the --with-devkit option to the appropriate location after download.

sbin/prepareWorkspace.sh Outdated Show resolved Hide resolved
sbin/prepareWorkspace.sh Outdated Show resolved Hide resolved
andrew-m-leonard and others added 3 commits March 28, 2024 09:13
Co-authored-by: Stewart X Addison <6487691+sxa@users.noreply.github.com>
Co-authored-by: Stewart X Addison <6487691+sxa@users.noreply.github.com>
Signed-off-by: Andrew Leonard <anleonar@redhat.com>
@andrew-m-leonard
Copy link
Contributor Author

andrew-m-leonard commented Mar 28, 2024

Looks ok, but we perhaps need to have a bit of documentation somewhere on using the devkit and make it clear / throw a warning if the --with-devkit and --with-adoptium-devkit are both specified, since the latter will set the --with-devkit option to the appropriate location after download.

thanks, i forgot to update the README.md, done...
I will do a blog about DevKits at some point

Copy link
Contributor

@steelhead31 steelhead31 left a comment

Choose a reason for hiding this comment

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

LGTM

@andrew-m-leonard andrew-m-leonard merged commit 4c6a46b into adoptium:master Mar 28, 2024
22 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
documentation Issues that request updates to our documentation reproducible-build
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants