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 MSI installer #27

Closed
alexhass opened this issue Aug 28, 2018 · 55 comments
Closed

Provide MSI installer #27

alexhass opened this issue Aug 28, 2018 · 55 comments
Assignees
Projects

Comments

@alexhass
Copy link
Contributor

We are looking to migrate away all products from Oracle Java to OpenJDK.

To be able to deploy OpenJDK and OpenJRE in enterprise we need MSI installers. Currently I only see a ZIP file as download.

Can you create an MSI setup, please?

@karianna
Copy link
Contributor

For whomever picks this up, see openjdk-installer project for existing resources to do this.

@alexhass
Copy link
Contributor Author

I guess you mean https://github.com/AdoptOpenJDK/openjdk-installer

@alexhass
Copy link
Contributor Author

alexhass commented Aug 31, 2018

I can pick this issue.

I‘m currently only confused by the project here... is this the officially OpenJDK or a fork?

Against what repository should I file the pull?

@karianna
Copy link
Contributor

karianna commented Sep 1, 2018

This is not a source fork (we don't make any source code changes from OpenJDK or OpenJ9 upstreams). We are one of several OpenJDK binary providers, but we're a bit unique in that this is a collaborative community and vendor effort attempting to cover all platforms and variants :-).

Have you joined our slack at adoptopenjdk.net/slack.html?

You raise a good question about where the installer code should live. I think openjdk-installer repo is the right place to put a pull request into. But it's worth discussing in the #build channel in slack.

Thanks for your support!

@karianna
Copy link
Contributor

karianna commented Sep 1, 2018

I've also invited you to this GitHub org

@gdams
Copy link
Member

gdams commented Sep 1, 2018

we can already build .exe installers if these are okay for you?

@alexhass
Copy link
Contributor Author

alexhass commented Sep 1, 2018

@gdams: EXE installers are not okay. EXE should RIP. These cannot deployed via Active Directory. Use MSI only and your are done with installers for both enterprise and end users.

I'm close to finish the MSI installer code... At latest tomorrow it is ready and tested I think.

Not that I need EXE setup, but where are you hiding them and the code? So I can review this code and may migrate missing parts to MSI.

@alexhass
Copy link
Contributor Author

alexhass commented Sep 1, 2018

@karianna : I know there is IBM and 1-2 others, but they also charge for licenses as I know. I have no real overview that is why I'm asking. I try to only help open source projects. We need to convince people to wipe out Oracle Java and replace with open source Java and I think this is only possible with open source projects. This project here seems to be the best ranked one in Google... therefore I landed here.

We do not like to pay Oracle license fees for Java in January 2019+. I just try to do everything to get around this in large scale environments. This need to be deployable to 10-1.000.000 computers and if this is a drop in replacement of Oracle Java than this should work if the software supports it.

Can OpenJDK replace JavaJDK only or also the JRE? I only know it well since v8. The directory structure no longer contains "jre" folder in v10... Never looked into Oracles Java v9/v10 yet.

After more looking today I was confused - this project is missing some parts... the Windows CPL is missing as example and I do not know how to configure it than. We also have changed security settings in Oracle Java and some URLs have been whitelisted from strong security because of issues. How can settings like temp path size deployed to all users?

@don-vip
Copy link
Contributor

don-vip commented Sep 1, 2018

@alexhass I sense a lot of confusion on the whole story, as Oracle has made the situation quite complex. People at Karakun and Azul have made good explanations, you should take a look to these pages:

Note the Windows CPL mainly aims at configuring Java WebStart, which has been killed by Oracle and not open-sourced in OpenJDK. Karakun guys are looking for funding to implement an open source successor to Java WebStart, which could then be packaged here, in AdoptOpenJDK builds:

@alexhass
Copy link
Contributor Author

alexhass commented Sep 1, 2018

Yeah. On the end Oracle rip you if you are a company. The term "production use" could be read quite flexible. If I run Eclipse on developers machines to develop C++, PHP, JS code I could argue that this is production use. I do not understand how this can be free as developers use an application (Eclipse) in production to develop a website. If I have other end user applications that require java on a desktop I need a payed license, too. I think this is still an application in production.

On servers I think it is a bit easier if you know a server is a development/staging/production server. I would argue that a development server is clearly non-production, but it could also be a mix as some development servers are often abused as 5% production in-house.

With staging systems I could say this is pre-production (last-line of test/development verification system) and therefore more development, but Oracle could say this is production.

I'm not sure, but they tryed to drive me nuts with Java 8. The JRE MSI changed dramatically mid 8.x and was no longer deployable without manipulating many many areas in the MSI. I managed this myself with many articles on the net. In Java 9 they made the MSI more hidden... now you need to install into a VM with snapshot and grab the MSI from Windows\Installer folder. This all suxxx.

I got an offer (mid 2017) for a yearly contract of ~75.000 EUR for 300 computers - only to get the MSI enterprise installer and a management suite I do not want. Now this seems to become cheaper (~25.000 EUR)... but still a lot of money. Oracle seems for sure the Axis of Evil and we need to find ways to get rid of them and/or Java where possible.

@AdamBrousseau
Copy link
Contributor

AdamBrousseau commented Sep 2, 2018

Speaking of Eclipse IDE. They're planning on shipping with OpenJ9.
See
https://bugs.eclipse.org/bugs/show_bug.cgi?id=506244
https://twitter.com/mmilinkov/status/1008694123413598208?s=19

@karianna
Copy link
Contributor

karianna commented Sep 2, 2018

Hi @alexhass - A quick note to say that AdoptOpenJDK is working with Oracle, IBM and other OpenJDK providers to offer folks more choice. This isn't an appropriate place to discuss pros and cons of particular vendors.

On a philosophical point - people do need to put roofs over their heads and food on the table and so I don't think it's unreasonable to charge licensing fees or otherwise monetize software :-). That said, if a particular vendor's offering doesn't suit then AdoptOpenJDK could be a viable alternative.

In terms of producing JREs we do plan to do so for 9-11 (adoptium/temurin-build#356 and adoptium/temurin-build#411) - but the option to easily build JRE's may be going away in future versions of OpenJDK (jlink is the appropriate mechanism for your custom deployments).

Thanks again for helping produce an MSI installer - it's much appreciated!

@gdams So we can land this. I don't see the production of exe's in the openjdk-build project? Is the code for it here?

@alexhass
Copy link
Contributor Author

alexhass commented Sep 2, 2018

Can someone tell me how the release cycle of OpenJDK works today? Do you need to build a setup independently for "Hotspot" and "Eclipse OpenJ9" or are both build the same time?

I create a pull against openjdk-installer later or tomorrow.

@karianna: Others have no longer a house and no food in January 2019+ because of the java runtime library they need to pay for yearly; if they cannot get rid of every java application they use.

MS (and others) also do not require me to license VC redist runtime libraries for extreme lot of money. This is 100% the same like Java that is the runtime library I need to run the dependend software.

Oracle seems to destroy Java adoption and they are on the right way. Only this is what is going to happen! Everyone migrates away from Java in browser/clients to HTML5 interfaces. Oracle Java may be used on servers as people cannot change everything within next 6 months, but no longer on clients and the adoption will drop dramatically soon. The lack of MSI is just a plus to speed up the process.

Have you seen how Oracle rips off their database users since 1-2 years? These users are also leaving.

@karianna
Copy link
Contributor

karianna commented Sep 3, 2018

The AdoptOpenJKD release cycle is fairly complicated. In short we mirror the Hotspot based OpenJDK repos from mercurial into Github (for ease of processing and maintaining some of our own patches) and we pull directly from Eclipse OpenJ9. Those are the two main sources we build from both nightly and on a release schedule (usually matching Oracle's release schedule for Oracle JDK). We also test other people's binaries like SAPMachine and RedHat's Aarch64 port.

@alexhass
Copy link
Contributor Author

alexhass commented Sep 3, 2018

Ok, so I need to split some batch files first.

I‘m asking me if „Java“ is an interlectual property of Oracle. I could make the installer installing by default to „program files\Java\jdk-10.0.2.13“ (Oracle default) or „program files\OpenJDK\jdk*“ (my current) or „AdoptOpenJDK“. I could also mimic Oracle registry keys as BC layer as these may be searched by some applications.

@karianna
Copy link
Contributor

karianna commented Sep 3, 2018

@alexhass Very good questions. Legality aside as an end user I'd like to be able to install them side by side in case I wanted to compare / contrast etc. So I'd go with AdoptOpenJDK for now and if we find that breaks too many assumptions by other windows programs we can revisit it.

@alexhass
Copy link
Contributor Author

Demo installers can be downloaded from https://www.hass.de/content/openjdk-msi-package-enterprise-deployment-available

@alexhass
Copy link
Contributor Author

@karianna : How are things going with the build server?

@karianna
Copy link
Contributor

Apologies - it's a bit stuck in my queue after the git-hg work and 11.0.1 release we need to get out. Hopefully, we'll dig ourselves out of the hole this week and get onto installers next week. Appreciate your patience!

@lumpfish
Copy link

@alexhass - thank you for creating these demo installersI'm looking into providing autoupdaters for openjdk-openj9 builds. I've downloaded and run the openjdk8-jdk_x64_windows_openj9-8.0.192.12.msi and have a few observations and questions:

  1. The jdk is installed to C:\Program Files\AdoptOpenJDK\jdk-8.0.192.12 (OK by me)
  2. This entry is created in the Registry: HKEY_LOCAL_MACHINE\SOFTWARE\AdoptOpenJDK\Java Development Kit\8.0.192.12\MSI\Path = C:\Program Files\AdoptOpenJDK\jdk-8.0.192.12
  1. The install has no equivalent of the Oracle C:Windows\System32\java.exe file. Personally I never liked that 'feature' anyway (on the grounds that it's not actually a shortcut), but existing applications might expect it to be there which would be a migration issue for moving to AdoptOpenJDK.
  2. The license presented is the Eclipse Openj9 project's EPLv2 license. This wouldn't be the correct license to present - at a minimum the build includes OpenJDK which is taken under GPLv2 with Classpath Exception. Perhaps @karianna could provide guidance on what license (if any) the user needs to agree to?

@lumpfish
Copy link

@alexhass - fyi, there is now an 'installer' slack channel at https://adoptopenjdk.slack.com/messages/C9C272Z1T

@lumpfish
Copy link

Another observation:
JAVA_HOME=C:\Program Files\AdoptOpenJDK\jdk-8.0.192.12\bin
should not include the bin directory

Raised #21 to fix

@alexhass
Copy link
Contributor Author

karianna - said I need to use the eclipse license.

Oracle is not installing a file to „C:Windows\System32\java.exe„ since 7.x if I remember correctly. They moved to programdata with strange mklink‘s folders and hash subfolders and a path rule like I implemented - that points to this folder. I guess their installer is too stupid to add paths to environment. I‘m not aware of issues with my much cleaner solution. As I have no interrest in bad custom action like they are doing, I cleaned this up.

About „Java“ in registry. I can change at sny time, but honestly this is first not a product name and second - JDK is just an abbreviation and means „Java Development Kit“. No idea why we may not allowed to remove abbreviation when it makes sense.

@lumpfish
Copy link

@alexhass - regarding "As I have no interest in bad custom action like they are doing, I cleaned this up."
Are you saying that your installer only adds \bin to PATH and sets up JAVA_HOME by design? I am just trying to understand possible implications for users migrating from Oracle java releases to AdoptOpenJDK releases.

@karianna
Copy link
Contributor

karianna - said I need to use the eclipse license.

That was my assumption, but @lumpfish is actually correct, my apologies for putting you wrong there!

About „Java“ in registry. I can change at sny time, but honestly this is first not a product name and second - JDK is just an abbreviation and means „Java Development Kit“. No idea why we may not allowed to remove abbreviation when it makes sense.

I'll need to look into this, I'll try to be quick!

@don-vip
Copy link
Contributor

don-vip commented Nov 14, 2018

It might be interesting to take a look at what Amazon does with @corretto.
They provide a preview MSI installer which installs OpenJDK to C:\Program Files\Amazon Corretto\. There we get two folders jdk1.8.0_192 and jre8. The Windows registry key is HKEY_LOCAL_MACHINE\SOFTWARE\Amazon\Amazon Corretto\1.8.0.192\MSI. So it seems they avoid "Java" completely.

@karianna
Copy link
Contributor

It might be interesting to take a look at what Amazon does with @corretto.
They provide a preview MSI installer which installs OpenJDK to C:\Program Files\Amazon Corretto\. There we get two folders jdk1.8.0_192 and jre8. The Windows registry key is HKEY_LOCAL_MACHINE\SOFTWARE\Amazon\Amazon Corretto\1.8.0.192\MSI. So it seems they avoid "Java" completely.

Thinking about this further it probably is safest to have:

HKEY_LOCAL_MACHINE\SOFTWARE\AdoptOpenJDK\AdoptOpenJDK\8.0.192.12\MSI\Path = C:\Program Files\AdoptOpenJDK\jdk-8.0.192.12

@alexhass Does that impact the way you deal with JDK vs JRE?

@alexhass
Copy link
Contributor Author

@alexhass - regarding "As I have no interest in bad custom action like they are doing, I cleaned this up."
Are you saying that your installer only adds \bin to PATH and sets up JAVA_HOME by design? I am just trying to understand possible implications for users migrating from Oracle java releases to AdoptOpenJDK releases.

Sorry, that was a misunderstanding... my mobile screen was too small and I thought for unknown reason you talked about the path. So you found a bug... I will fix asap JAVA_HOME path and not only this - after your note I have seen for JRE it need to be JRE_HOME. This requires another small change.

@alexhass
Copy link
Contributor Author

alexhass commented Nov 14, 2018

Thinking about this further it probably is safest to have:

HKEY_LOCAL_MACHINE\SOFTWARE\AdoptOpenJDK\AdoptOpenJDK\8.0.192.12\MSI\Path = C:\Program Files\AdoptOpenJDK\jdk-8.0.192.12

@alexhass Does that impact the way you deal with JDK vs JRE?

I will change to:

HKEY_LOCAL_MACHINE\SOFTWARE\AdoptOpenJDK\JDK\8.0.192.12\MSI\Path = C:\Program Files\AdoptOpenJDK\jdk-8.0.192.12

HKEY_LOCAL_MACHINE\SOFTWARE\AdoptOpenJDK\JRE\8.0.192.12\MSI\Path = C:\Program Files\AdoptOpenJDK\jre-8.0.192.12

The key need to be unique and we cannot use "AdoptOpenJDK". I need to make sure JRE and JDK do not override each others registry keys.

@karianna
Copy link
Contributor

Perfect thank you!

@karianna karianna transferred this issue from adoptium/temurin-build Nov 19, 2018
@karianna karianna added this to To do in installer via automation Nov 19, 2018
@karianna karianna moved this from To do to In progress in installer Nov 19, 2018
@karianna
Copy link
Contributor

@alexhass Are you able to jump onto our Slack at https://www.adoptopenjdk.net/slack.html? Would be great to chat about the MSI installer there.

@alexhass
Copy link
Contributor Author

I do not have a slack account and I do not like to give my personal data to another unknown US company. No idea what they are doing with my data.

@maverick74
Copy link

Would be nice to se #4 included here as well.

What's the state of this issue? Any progress?

@karianna
Copy link
Contributor

karianna commented Dec 7, 2018

We'll be looking to integrate this into the pipelines over the coming weeks.

@alexhass
Copy link
Contributor Author

alexhass commented Jan 8, 2019

Have you finished the integration? Oracle Java 8 support ends very soon and we should have a solution asap - best with JavaFX included or the releases are not really useful for many users. Otherwise people would be locked to insecure Java 8 version from Oracle.

@hypercube33
Copy link

I too would like an update on this, technically Java 8 was supposed to end of life this month but looks like it got bumped out a little bit. A lot of people would potentially benefit from the MSI JRE installers at the least. Thanks!

@gdams
Copy link
Member

gdams commented Jan 16, 2019

@alexhass can we jump on a call together to go through your work and get this implemented into our pipelines?

@alexhass
Copy link
Contributor Author

Yes.

@gdams
Copy link
Member

gdams commented Jan 17, 2019

@alexhass how does Monday 21st Jan at 2PM GMT work for you?

@alexhass
Copy link
Contributor Author

send you an email.

@gdams
Copy link
Member

gdams commented Jan 29, 2019

@alexhass https://ibm.webex.com/join/george.adams

@lootkips
Copy link

Thank you very much for your effort and gdamns.

I have experience with packaging and deployment via sccm and would be happy to help here I can!

@gdams
Copy link
Member

gdams commented Feb 19, 2019

closing as the final bits can be handled in #50.

@lootkips if you would like to get involved in the efforts drop me a message on our slack channel. (http://aojdk.net/slack)

@gdams gdams closed this as completed Feb 19, 2019
installer automation moved this from In progress to Done Feb 19, 2019
@treado
Copy link

treado commented Feb 21, 2019

Hi guys, does anyone know if AdoptOpenJDK will be providing installers for OpenJDK 11, like they do for OpenJDK 8?

@karianna
Copy link
Contributor

Hi guys, does anyone know if AdoptOpenJDK will be providing installers for OpenJDK 11, like they do for OpenJDK 8?

We're working on the installers right now - hopefully, we'll see these rolling out next week.

@Phillipus
Copy link

We're working on the installers right now - hopefully, we'll see these rolling out next week.

That would be very helpful, thanks!

@baramundi-rklinger
Copy link

Hi guys, does anyone know if AdoptOpenJDK will be providing installers for OpenJDK 11, like they do for OpenJDK 8?

We're working on the installers right now - hopefully, we'll see these rolling out next week.

Here you can find msi installers für v8. Is msi installer for version 11 planned, too?

@gdams
Copy link
Member

gdams commented Mar 12, 2019

JDK11 will be shipped very soon. Sorry for the delay!

@maverick74
Copy link

@gdams Will we get the JDK12 msi with the availability of JDK11 msi as well?

It would be great! JDK12 is planned to be released today :)

@gdams
Copy link
Member

gdams commented Mar 19, 2019

Will we get the JDK12 msi with the availability of JDK11 msi as well?

Our official jdk12 release will come out with an MSI at the same time. There are some nightly installers available at https://adoptopenjdk.net/nightly.html?variant=openjdk12&jvmVariant=openj9 but these are not recommended for production.

@maverick74
Copy link

maverick74 commented Mar 19, 2019

Our official jdk12 release will come out with an MSI at the same time.

Great news!!! :D That's a very important detail!!!
Thanks!!!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
No open projects
installer
  
Done
Development

No branches or pull requests