-
-
Notifications
You must be signed in to change notification settings - Fork 77
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
Complete new linuxNew
based packaging
#330
Comments
From the original author: If I remember correctly, the necessary infra for 11 and 16 is present. Doing packages for 8 is copy & paste and a little bit on top. Jenkins is able to build the packages. The only steps left to do: Pull them from Jenkins, manually sign the RPMs (create a new GPG key beforehand), and upload everything onto a server. |
Initial metadata update: #331 Is there an email alias that can be used for RPMs/Debs? I suppose |
#332 for Updated README and an early attempt at adding a Java 8 temurin Debian and Red Hat packages |
Good question. I suspect we aren't allowed to use the AdoptOpenJDK.net email addresses. Perhaps an EF-based mailing list? |
I've learnt the hard way over the past years that it's tough to reconcile OpenJDK's version numbering and Adopt's version numbering with the requirements of Debian and RPM packages. Remember the drama of 11.0.9.1. If you get it wrong, the packages won't show up on the user's computers (been there, done that). If you get it very wrong, you have to increment the epoch (been there, done that). Computing the version number correctly requires access to correct metadata (for example, because the .1 rebuilds aren't included in
I'm not sure what it means. If it means that you intend to sign the RPMs during the build, I'd reconsider. Signing RPMs during build requires sensitive key material on the build machines. Building takes time, so you need multiple machines. That was a problem in the past. So it's a deliberate choice not to sign the RPMs. I'd rather sign the RPMs just before uploading or even on the machine that distributes them (private GPG key is required on there anyway because the package indexes have to be signed). I'd also strongly consider creating a keyring package for Debian (see https://wiki.debian.org/DebianRepository/UseThirdParty, Brave did this well in the past). This allows to rollover keys. |
Something in the default Gradle tasks caused a GPG sign to be executed. I think I'd rather have that as a separate explicit step. Still digging into the code to see why it triggers (Suse and Debian don't).
Will check with EF if they have something. |
Additional piece that we didn't pull into the linuxNew story before (back when the work from adoptium-packages-linux was pulled in, is the cacert piece, which can be found here: https://github.com/aahlenst/adoptium-packages-linux/tree/cacerts - so add a step in the description of this issue to bring that in. |
@tellison suggested |
I've globally replaced that in my PR |
Dockerfiles for RPM-based distros need an update across the board because the old sks-keyservers.net pool was shut down.
needs to be replaced with
|
Does anybody have any logs that shed some light on "Fix RH Build failing due to GPG signing?" I just ran an RPM build and it worked fine. |
Would be very helpful if someone could hook it up with GitHub Actions. A workflow exists but wasn't copied over. Although it's x64 only, that alone catches some issues and helps verifying PRs. |
I swapped this out but get the error:
On a side note, should I also swap the key server for the Suse script? |
@aahlenst - Extra question. I understand you completed the ca-certs work in your repo (https://github.com/aahlenst/adoptium-packages-linux/tree/cacerts). Should I just be looking to bring across all of https://github.com/aahlenst/adoptium-packages-linux/tree/cacerts/ca-certificates and patch the scripts to refer to those as what I think you've done in your repo? |
I've resolved this, gosu and tini needed separate keys. |
@aahlenst - Stewart and I were a little confused over this. I think the current build bundles the cacerts with the JDK itself, so is having a separate adoptium-ca-cacerts linux package actually needed? |
I hope you have some time 😁 Having the keystore as part of the JDK (= included in the package) is a subpar experience.
So, integrating with the tooling of the OS to centrally manage the keystore and have a consistent list of certificates in the OS and JDK is the right thing to do. On RPM based distributions, this can be achieved rather easily. The ca-certificates packages of RHEL and friends automatically generate a suitable keystore for the JDK. You just have to symlink it. On Debian derivatives, this is more complicated. There exists a package that can generate a keystore for the JDK. Unfortunately, it has a cyclic dependency on the JDK because the program to generate the keystore is written in Java. Some script in that package acts as a tie breaker, but it can only do that for JDK it knows. And it knows only JDKs shipped as part of Debian. We tried it in the past and failed. So, I decided to roll our own without the cyclic dependency. To be clear, it does not contain a cacerts file. But it generates one and integrates with Debian's facilities to manage CA certificates. You add a CA certificate to Debian and the cacerts will automatically be regenerated. Same happens if you remove one. As a result, the package is very small and even architecture-independent. In can be used by any JDK (not only Temurin). It just needs to be installed once. I think that provides enough value for a little price and brings Temurin's packages on equal footing as the JDKs shipped by the distros themselves. But Temurin even has the AQA/TCK stamps of approval. |
Thinking out loud. I'm not 100% convinced this is what users will expect. Up until now Java users have kept the O/S keystore and Java keystore separate and I'd hypothesize for many users that's a good thing (they may not want their O/S to have all of the allowable certs by Java and vice versa). By making this change now, we'd be changing some pretty fundamental default behaviour. Perhaps offering to do this as an optional step would be OK (if I can figure out how to do that). |
For Eclipse Signing: see https://wiki.eclipse.org/IT_Infrastructure_Doc#What_about_GPG_signing.3F George is asking the EF on the details here. |
We got requests to integrate with the OS facilities. And now would be a good time to fix all the weirdness. We'd also follow every (?) distro JDK package out there. RHEL, SUSE, Debian, Alpine, all do this. It was inaptness that we didn't have it from the beginning. If you want to make this opt-in (Debian, don't know about RHEL from the top of my head):
This would have to be part of the Temurin JDK package. If you included it in the cacerts package, the cacerts package would have to know about all versions. Doable, but maybe not desirable.
You might succeed in cherry-picking the commit or use git patch apply to bring it over. |
That's what you have to do: https://access.redhat.com/articles/3359321. RPMs only. Debian packages should not be signed, but the package index instead. |
@aahlenst Makes sense but any idea why we wanted to have our own CA package instead of using the CA package supplied with each distro? e.g. |
OK, John and I were looking at this locally and I see what Debian does now (basically loops through the O/S certs and adds them via keytool for Java, thereby keeping them in sync - there's an update command as well). So I think it makes sense as @aahlenst suggests. Now to figure out the coding to make that a reality :-). |
It looks like Debian already solves this with the Now, the Hmmm, maybe not #105 :-) OK fine, I'm wrong - lets do it the Andreas way - this may take me some time to code up, but will try to get it done before EOW |
@karianna @sxa I know it's hard to keep track of everything I wrote. But #330 (comment) explains everything. Why ca-certificates-java doesn't work and that our cacerts package is supposed to be Debian only because RHEL has solved this differently (and better). Please re-read. I also welcome suggestions to improve my writing. Also note that most Linux distributions effectively use Mozilla's list of certificates. |
Thanks, and apologies that I hadn't read through that comment previously |
Likewise - thanks for the detail - I'll give this a go tomorrow and update the PR as appropriate. This is the last step before signing to solve. Both RPM and Deb 8/11 packages have been manually tested and compared against the previous AdoptOpenJDK packages and are the same - so that's good. |
@aahlenst - I'd like to fork and clone your repo into Adoptium that creates the adoptium-ca-certificates.deb file. Would that be OK? |
@karianna Understood. I'm happy to arrange a full transfer. Or you can create a new repo and just push the old contents into it. |
@evgenkisel
(and yeah, the CentOS 7 repository has recently disappeared 😮) |
are there plans on adding |
When will the APT installation instructions be added to https://adoptium.net/installation.html#packages? I can already see it on the blog at https://blog.adoptium.net/2021/12/eclipse-temurin-linux-installers-available/. |
@wwuck i’ll be adding the instructions to the website shortly |
Ubuntu 21.10 deb version is missing from repository. As @Pokegamer129 has a problem setting up a repository on his system, I found out that by troubleshouting his process as described in comments of betacraftuk/betacraft-launcher#114 and I'm not sure if package for 21.04 might be compatible. |
can confirm the above. Following the instructions to the letter from the blogpost on 21.10 (impish indri) fails because there is no release for that version. Changing the source file to use hirsute does work. There are some minor (non-showstopper) issues with using update-java-alternatives but at this point we probably should be raising new issues for them if we think they're important enough. |
Yep raising subsequent issues for that would be the right thing to do.
We've got some discussions at PMC level about how to support newer (and "legacy") distributions so we'll hope to sort that out shortly :-) |
well, matching which distro versions are actually supported by their own vendors seems a good start. 😀 21.04 is going to EOL very shortly; 21.10 is the current non-LTS release, although I don't think it was when JDK 17.0.1 came out 😜 But honestly assuming it's the same actual binary build being installed in each case - as opposed to, say, compiled against the extant library versions in that exact distro version - then it could probably be simplified by not making the distro version a part of the repo url. Or in Ubuntu's sake (and its own downstream derivatives), basing it off the upstream debian version instead, as there are fewer of those and they last longer. via /etc/debian_version. I imagine you might have similar issues with Fedora, where releases are also frequent and short-lived, vs. RHEL and what's stepped into CentOS's shoes. |
Absolutely and I will be attempting to ensure we have that as a minimum ;-) |
Now that there are JRE builds back (yay!), are there plans to provide them as Debian packages via the repository, too? Right now, only JDK packages are available there. |
I have also a question about crypto-policies: Is it planned to autoconfigure the installed Eclipse Temurin JDK to use the system-wide configured crypto-policies? |
The blog post mentions linux package support for SLES 12, but I cannot find any folder with sles packages in the jfrog repository. Is support for SLES still planned? And will the installation documantion be put on the adoptium.net page? |
https://blog.adoptium.net/2021/12/eclipse-temurin-linux-installers-available/ |
We do not have that in the plan at the moment. |
Thanks, @sxa. The Red Hat distribution of OpenJDK ( If it's currently not on the plan - how can I request a feature for this? |
@jerboaa Yes, that's the blog post I was referring to. It mentions SLES:
But there is no folder for SLES in the jfrog repo: Am I missing something obvious? |
See #426 |
@karianna Great, thanks! |
@karianna The jfrog-repo lists sles 12 and 15 now, which is great! Thanks 👍 Currently, there is only temurin 17.0.2 available - will packages for jdk 11 be provided as well? |
Yes they should be arriving AFAIK |
@gdams - LMK when the installers are out and I think we can close this one and raise specific tickets for anything extra we want to add |
Closing this issue now that the docs are up on the website. |
Thanks everyone. |
Initial List before we split into an Epic etc.
README.md
on how to run it and how it worksParameterize the scripts so that version numbers aren't hard-coded- See discussion below.Eclipse Tracking Bug and CQ- code was Pull Requested in.The text was updated successfully, but these errors were encountered: