Closed alexhass closed 5 years ago
For whomever picks this up, see openjdk-installer project for existing resources to do this.
I guess you mean https://github.com/AdoptOpenJDK/openjdk-installer
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?
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!
I've also invited you to this GitHub org
we can already build .exe
installers if these are okay for you?
@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.
@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?
@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:
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.
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
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 (https://github.com/AdoptOpenJDK/openjdk-build/issues/356 and https://github.com/AdoptOpenJDK/openjdk-build/issues/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?
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.
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.
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.
@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.
Demo installers can be downloaded from https://www.hass.de/content/openjdk-msi-package-enterprise-deployment-available
@karianna : How are things going with the build server?
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!
@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:
@alexhass - fyi, there is now an 'installer' slack channel at https://adoptopenjdk.slack.com/messages/C9C272Z1T
Another observation:
JAVA_HOME=C:\Program Files\AdoptOpenJDK\jdk-8.0.192.12\bin
should not include the bin directory
Raised https://github.com/AdoptOpenJDK/openjdk-installer/pull/21 to fix
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.
@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 - 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!
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.
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 foldersjdk1.8.0_192
andjre8
. The Windows registry key isHKEY_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 - 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.
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.
Perfect thank you!
Hopefully we can get the MSIs out of the door now.
Regarding Oracle's use of symbolic links to the latest installed java via C:\ProgramData\Oracle\Java\javapath - can you confirm that AdoptOpenJDK does not plan to mimic that behaviour?
(@alexhass - thanks for pointing out java.exe is no longer put into c:\Windows\System32
! Shows how often I actually install java (rather than unzipping / untarring!))
I analyzed what they are doing and do not see a single technical reason why they are doing this. As said a few time they are doing bad things and I will not mimic bullsh**.
I guess they are doing it to break the current end user msi setup intentionally if manually extracted by admins. I can show you the mst to repair their setup... it is shocking. And this only to force customers to license the enterprise msi for $100K or more that is not public available.
We do not need to do stupid things only because Oracle does.
Regarding the End User License Agreement to be presented when installing openjdk-openj9 builds, this should be the license from the Extensions for OpenJDK8 for Eclipse OpenJ9 repository: https://github.com/ibmruntimes/openj9-openjdk-jdk8/blob/openj9/LICENSE (GPLv2 with Classpath Exception) not the Eclipse/openj9 license: https://github.com/eclipse/openj9/blob/master/LICENSE.
@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.
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.
Would be nice to se #4 included here as well.
What's the state of this issue? Any progress?
We'll be looking to integrate this into the pipelines over the coming weeks.
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.
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!
@alexhass can we jump on a call together to go through your work and get this implemented into our pipelines?
Yes.
@alexhass how does Monday 21st Jan at 2PM GMT work for you?
send you an email.
@alexhass https://ibm.webex.com/join/george.adams
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!
closing as the final bits can be handled in https://github.com/AdoptOpenJDK/openjdk-installer/issues/50.
@lootkips if you would like to get involved in the efforts drop me a message on our slack channel. (http://aojdk.net/slack)
Hi guys, does anyone know if AdoptOpenJDK will be providing installers for OpenJDK 11, like they do for OpenJDK 8?
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.
We're working on the installers right now - hopefully, we'll see these rolling out next week.
That would be very helpful, thanks!
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?