-
-
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
Create autoupdater for AdoptOpenJDK binaries #4
Comments
If we think about Windows we need to keep in mind that users are typically not administrators and are not allowed to install software. Automatic update need to be an optional feature that could be enabled by default. Not difficult, just do not forget about this, please. |
Is there anything new in this front? Would be great to have this for Windows!!! |
This work still needs to be scheduled in. |
Could it be possible to start small and just do a regular check for updates? |
I'm sorry for bringing this up again, but it's an important feature since being up-to-date is crucial for us, not just for feature reasons, but specially for security reasons! It's been a few months without any advance in this front... is there any news? We would like to migrate from Oracle's Java to OpenJDK, but not without this... |
One thing to note is that a web API is already available to query for versions of the openjdk:
|
I am currently in the process of writing an updater. Not sure how long it will take because I work full time but I hope to have some sort of beta made soon. I am looking to write it in java8 so it is usable for all versions and and I am using Jackson for the json parser. I am also currently using the github releases api to try to get the download links but I can use the AdoptOpenJDK api if everyone thinks thats better or I can do both if so desired. If anyone has any ideas for things to add that havent been mentioned or any suggestions at all please let me know. |
Happy 2020. @jlgager24 any update to share with the rest of us? :) |
Hey everyone sorry I haven't posted an update in a while. I was very sick over the holidays and haven't been able to put in as much time as I have wished. My plan is to have something to show you guys by the end of February. Thanks for being patient. |
No hurry. Health (and family) are always first. Hope you're OK already. |
I am doing much better now thanks. |
any news? |
any news? I would really like this |
Sorry, there are no news in that area. I don't want us to get into the business of developing and maintaining an auto updater which is a complex undertaking. I especially dread the support requests caused by the auto updater. Using an existing auto updater would most likely require us to switch from WiX to https://www.installaware.com/ or https://installbuilder.com/ which have solved that problem. That would be a lot of work, too. OSS solutions like Sparkle aren't a drop-in solution, either. If anyone wants to help or fund development, please get in touch. |
@aahlenst it could, at the very least, notify users when there is a new version available. I think that much is pretty easy to implement, ain't it? |
@maverick74 If it was easy, I guess someone would have done it by now. If you want to inform people when running The other option is a scheduled task. But what is if you want to keep the specific version? What if there are multiple versions/users? What if it's a per-user install? What if somebody wants to mute it until next boot/next week/next version? |
Apologies if I did understand something wrong, but the minor releases are always bug-/securityfixes, aren't they? So you just don't have a reason to NOT want the newest version. But if you must keep an old version and want to mute it: why don't remember that choice in a file/variable/etc? I really don't see a problem with managing your concerns. I would've written my own scheduled task, but I don't know what/which url I should query... |
@maettle Those are requirements, not insurmountable obstacles. You asked for an URL, there you go: https://api.adoptopenjdk.net/. I‘d be very happy if you can put something together that works well and is easy to maintain. If you have questions, https://adoptopenjdk.net/slack.html, there is a channel called installer. I take Java or C#. Further requirements:
|
Hello guys, If you want something to be done, do it yourself. Thinking like that (and needing the updater) I created such a tool and I want to share it with you. It is available at https://github.com/tushev/aojdk-updatewatcher Its principles and philosophy are well described in Readme. Ironically, this tool is written in C# + WPF, because I am not a Java developer. I just need the tool for myself because some software I use requires Java. If you find it useful for you too, I will be glad. Stars will be appreciated :) |
You are an absolut legend, thanks |
@tushev Do I understand correctly that the tool cannot cope with multiple versions of AdoptOpenJDK being installed on the same machine? Or the other way around: It only updates the JDK at |
@aahlenst It's designed primarily as an end-user thing: in most 'everyday' cases there is just one single installation of JRE,not even JDK :). As for JAVA_HOME - you can choose either JAVA_HOME or a specific other path. If you need to check multiple JDKs, currently you can create a very simple batch script that will rotate user.config files and run this tool several times (I expect that different MSIs will update themselves correctly to different directories). Or maybe I will add such functionality in some future release. |
@douph1 the dates look weird, but I cannot say why. Maybe it's an issue with Inno itself or innoextractor. Checked my machine, the actual compilation dates are:
If I install the V2 package, As of SecureAge APEX, I've heard that it has lots of FP reported, like this one. As of binaries, I use third-party stuff like Inno Setup with plugins, libs like DotNetProjects.Extended.Wpf.Toolkit etc. So I cannot be 100% sure about them, but they are generally respected by the community. I checked the DLLs, they all look clean by VT. Only the uninstaller - Also I cannot be 100% sure that there is no super-duper alien worm that dwelled for years in my machine, bypassed all local AV checks and my own InfoSec principles, just to inject itself when I will compile But what I can say for 100% sure that I have no intention to create or distribute malicious code :) EDIT: I've released a zip-archive without any installer. |
Setups schould be Wix toolkit (MSI) based only. Code signing the files schould stop virus detection. I think this is the only really safe way. |
Hi @tushev @jlgager24 can you confirm that your updater see the last version : "openjdk_version": "11.0.9.1+1", "semver": "11.0.9+101" ? because the last is newer than the first :
|
If we are speaking about API, it seems that
If we are speaking about comparing versions in general (say, you have |
@tushev 11.0.9+11 comes before 11.0.9+101, because 11 is less than 101. You should use the |
You can see it here /v3/assets/version/{version}
If you sort with each uniq attribut yes 11.0.9+11 = 11.0.9.0.(+b)11 has a build=11 and 11.0.9+101 = 11.0.9.1.(+b)1 has a build=1 then your ordering failed |
@douph1 @OrangeDog OK, I have to switch to As for the other part (local installation), I have:
|
101 like in semver for the reg key
|
Please keep an eye on AdoptOpenJDK/openjdk-api-v3#313 and possible ongoing enhancement if you don't want to switch to semver comparison |
upd: what the updater is actually doing: it makes best effort to determine version of local installation. It is guaranteed that it can obtain Please correct me if I'm wrong: if I change my API logic so it uses semver like 11.0.9+ From the point of view of updater, it will get api:101 > local:11 and show update dialog. |
P.S./offtopic: For legacy builds that are not auto-discovered via registry, it may not always be possible to get build number at all (if |
Yes it will be consistent and the only way "for now" as the "patch" information is not published into the api as a dedicated field : major.minor.security(.patch)+build ( patch doesn't exists on the API ) |
"build" cannot change without any other major/minor/sec/patch change |
@douph1 will this numbering scheme remain in the future? It's OK for me to switch to So if all future releases will be versioned like 11.0.10.101 -> 11.0.10.105, this will be ok. |
I have no crystal ball :) |
OK, I will wait :)
But since I will have to parse these as well and compare, I guess |
Just released https://github.com/tushev/aojdk-updatewatcher/releases/tag/2.0.1.0 @douph1 Now the updater should be able to see the latest version of Currently I tried to implement the versioning to the best of my own understanding, still waiting to get confirmation/clarification from the official team on adoptium/adoptium-support#209 :) So there may be more upcoming updates of the updater... Also, I switched to WiX, now all the releases are provided as MSIs and ZIPs. No more false positives on VirusTotal caused by Inno Setup. |
16 was released. I'm waiting for the Adopt team to have their gerbils wake up and update the website 😸 |
Add spec file for Semeru Certified 17
@AdamBrousseau Hi, You pushed a commit and referenced this issue. Could that work here as well? |
@maverick74 I believe that is unrelated. Likely a reference to |
BitRock installers include an auto-update tool.
This issue is to investigate whether the auto-updater is suitable for the project, and write the client and server metadata to represent our releases.
A quick read through the docs implies that the autoupdater has to be invoked by cron / task scheduler on a regular check for updates on some platforms.
The text was updated successfully, but these errors were encountered: