Re: [arch-general] How to have multiple JDKs parallel?
On 20/09/2018 09.13, Eli Schwartz via arch-general wrote: > On 9/19/18 11:50 AM, Bardur Arantsson wrote: >> (One *hopes* that the trend will become that only the LTS-labeled >> versions will be used for actually releasing stuff to the world, but >> that the intermediate versions will be more seen as experimental. That >> would mean that Arch would only have to care about LTS releases.) > > Gosh, I'd hope the trend was instead to have modern, up-to-date releases > that actually work properly. > There's no need for snark. Java/JDK upstream take compatibility and quality *extremely* seriously. Java releases are usually incredibly backward-compatible, but a) generally the JVM world is (understandably IMO) very careful in moving from one version to next because JVM applications are usually *huge* with many many corner cases. The JVM itself + the standard class library is also quite big and it's basically impossible to do any change without *something* *somewhere* relying on the existing (possibly buggy) behavior. Most responsible developers at least try out version N+1, report any bugs upstream and wait for those to be fixed and try out version N+1 when the first 'wave' of bugs is fixed. While doing that, having access to both version N and N+1 is kind of critical. b) sometimes a new feature simply changes how something fundamentally works and the feature is (by design) incompatible with the previous state of things. This is the case for the 'modules' feature, for example: It simply not possible to both have the module classpath isolation and not have it at the same time. (It's actually possible to disable this globally, but that's kind of a moot point.) Regards,
Re: [arch-general] How to have multiple JDKs parallel?
On 9/19/18 11:50 AM, Bardur Arantsson wrote: > In the specific case of Java 8 (LTS by AdoptOpenJDK) -> Java 11 (LTS by > AdoptOpenJDK), I suspect that there will be a hard requirement for most > Java developers to have support for both simultaneously on their > development machines because of the whole "module" thing; see below. > > Of course that support would ideally come via the distribution and > there's a similar precedent for e.g. the node.js LTS releases, I imagine > for similar reasons to do with large incompatible changes. Anyway, if > such support is not offered, I'm pretty I certainly will be forced off > Arch Linux for practical reasons. We provide nodejs lts releases, because a different Trusted User (not the packager for nodejs itself) was interested in packaging it. > Btw, even though the Java language and the byte code are very stable > "formats", there Java 8 -> Java 9 module transition has been everything > but trivial and has required a lot of tooling/build changes which would > be really hard to do across all of the ecosystem at once and any similar > change in the future could hold up a a Java N -> Java N+1 migration for > a pretty long time since everybody moves at their own pace. > > (One *hopes* that the trend will become that only the LTS-labeled > versions will be used for actually releasing stuff to the world, but > that the intermediate versions will be more seen as experimental. That > would mean that Arch would only have to care about LTS releases.) Gosh, I'd hope the trend was instead to have modern, up-to-date releases that actually work properly. But I'm sure the habits of the people developing java runtimes, will force us to package LTS releases. (Anyway I'm delighted to see the number of java versions decrease by at least one.) -- Eli Schwartz Bug Wrangler and Trusted User signature.asc Description: OpenPGP digital signature
Re: [arch-general] How to have multiple JDKs parallel?
On 19/09/2018 17.00, Carsten Mattner via arch-general wrote: > On 9/19/18, ProgAndy wrote: > >> There are LTS releases planned by AdoptOpenJDK, though. For now, Java 8 >> and Java 11 are declared as supported until at least 2022 [1]. These >> versions may be of interest for Arch Linux. > > I'm not a Java developer anymore and probably unaware of new stuff, > and what you say makes sense. Though, isn't LTS packaging a niche > feature in Arch and wouldn't Arch follow the current latest JDK. > So JDK-LTS would be an extra package while a hypothetical meta > package like openjdk would track latest stable branch. Make sense? > In the specific case of Java 8 (LTS by AdoptOpenJDK) -> Java 11 (LTS by AdoptOpenJDK), I suspect that there will be a hard requirement for most Java developers to have support for both simultaneously on their development machines because of the whole "module" thing; see below. Of course that support would ideally come via the distribution and there's a similar precedent for e.g. the node.js LTS releases, I imagine for similar reasons to do with large incompatible changes. Anyway, if such support is not offered, I'm pretty I certainly will be forced off Arch Linux for practical reasons. Btw, even though the Java language and the byte code are very stable "formats", there Java 8 -> Java 9 module transition has been everything but trivial and has required a lot of tooling/build changes which would be really hard to do across all of the ecosystem at once and any similar change in the future could hold up a a Java N -> Java N+1 migration for a pretty long time since everybody moves at their own pace. (One *hopes* that the trend will become that only the LTS-labeled versions will be used for actually releasing stuff to the world, but that the intermediate versions will be more seen as experimental. That would mean that Arch would only have to care about LTS releases.) Regards,
Re: [arch-general] How to have multiple JDKs parallel?
On 9/19/18, ProgAndy wrote: > There are LTS releases planned by AdoptOpenJDK, though. For now, Java 8 > and Java 11 are declared as supported until at least 2022 [1]. These > versions may be of interest for Arch Linux. I'm not a Java developer anymore and probably unaware of new stuff, and what you say makes sense. Though, isn't LTS packaging a niche feature in Arch and wouldn't Arch follow the current latest JDK. So JDK-LTS would be an extra package while a hypothetical meta package like openjdk would track latest stable branch. Make sense? I don't have a horse in this race, just thinking out loud. I'm excited OpenJDK is turning into the mainstream source of JDKs, when it was Oracle and IBM in the past. No more stupid JVM usage tracking done by Oracle, for one. And no more licensing surprises.
Re: [arch-general] How to have multiple JDKs parallel?
Am 19.09.18 um 13:41 schrieb Olli: > On 19.09.18 10:41, Leandro Papi via arch-general wrote: >> The fact that Java 10 replaces Java 9 is a call made by Oracle, as >> described in their roadmap >> (https://www.oracle.com/technetwork/java/javase/eol-135779.html) >> [...]Java SE 9 was a non‑LTS release and immediately superseded by >> Java SE 10 (also non‑LTS), Java SE 10 in turn is immediately >> superseded by Java SE 11[...] > What you describe here is not “Java” (which is a specification) and also > not OpenJDK but only Oracle JDK. It is a policy of the Oracle JDK > implementation but has nothing to do with Java itself. The OpenJDK > implementation of Java does not use anything like LTS, there will only > be the latest version which is a new one every six month (since > OpenJDK 9). > > Since the Oracle JDK is not in the official Arch Linux repos but only > the OpenJDK there is no need to talk about LTS on this mailing list at > all. > > Regards, > Olli There are LTS releases planned by AdoptOpenJDK, though. For now, Java 8 and Java 11 are declared as supported until at least 2022 [1]. These versions may be of interest for Arch Linux. Regards, Andreas [1]: https://adoptopenjdk.net/support.html
Re: [arch-general] How to have multiple JDKs parallel?
On 19.09.18 10:41, Leandro Papi via arch-general wrote: > The fact that Java 10 replaces Java 9 is a call made by Oracle, as > described in their roadmap > (https://www.oracle.com/technetwork/java/javase/eol-135779.html) > [...]Java SE 9 was a non‑LTS release and immediately superseded by > Java SE 10 (also non‑LTS), Java SE 10 in turn is immediately > superseded by Java SE 11[...] What you describe here is not “Java” (which is a specification) and also not OpenJDK but only Oracle JDK. It is a policy of the Oracle JDK implementation but has nothing to do with Java itself. The OpenJDK implementation of Java does not use anything like LTS, there will only be the latest version which is a new one every six month (since OpenJDK 9). Since the Oracle JDK is not in the official Arch Linux repos but only the OpenJDK there is no need to talk about LTS on this mailing list at all. Regards, Olli
Re: [arch-general] How to have multiple JDKs parallel?
If I may pitch in with my 2 cents, The fact that Java 10 replaces Java 9 is a call made by Oracle, as described in their roadmap (https://www.oracle.com/technetwork/java/javase/eol-135779.html) [...]Java SE 9 was a non‑LTS release and immediately superseded by Java SE 10 (also non‑LTS), Java SE 10 in turn is immediately superseded by Java SE 11[...] So it may not be an error having the successive packages removing the previous ones, this behaviour will stop at Java 11, which will be a LTS release, and Java 12 will not need to replace Java 11. It's their release schedule, and I don't know if it would be better to adhere to their guidelines or not, but I'm sure I'd like to leave this choice to the user. (Sorry for any unsightly formatting, it's my first reply to the mailing list, and I'm using gmail, if there is something wrong please take the time to guide me through my errors in a separate thread.) -- L'ignoranza è un male curabile, è sufficiente la volontà. Please don't print this e-mail if you don't need to!
Re: [arch-general] How to have multiple JDKs parallel?
On 9/17/18 12:26 PM, ProgAndy wrote: > This might be a use case for remakepkg to remove the replaces-entry in > the java10 packages. > > https://bbs.archlinux.org/viewtopic.php?pid=1771005 The package in the sync database, which is a different database record than the package in the local (installed) database, will still contain the replaces entry and will therefore act as a replacement. Meanwhile, replaces don't even do what a lot of people seem to think. They're only ever read from sync databases, they're only ever accounted for in an -Su operation, and the field is completely inert in either an installed package or a *.pkg.tar.xz file. -- Eli Schwartz Bug Wrangler and Trusted User signature.asc Description: OpenPGP digital signature
Re: [arch-general] How to have multiple JDKs parallel?
On Mon, Sep 17, 2018 at 18:26:04 +0200, ProgAndy wrote: > This might be a use case for remakepkg to remove the replaces-entry in > the java10 packages. > > https://bbs.archlinux.org/viewtopic.php?pid=1771005 *sees people mentioning that tool in serious discussions* *slightly panicks* I see that jre10-openjdk does indeed only replace, but not conflict with jre9-openjdk, so I guess there should be no harm in installing both (but I have not tested it, so expect things to break): 1. Build and install remakepkg from the AUR 2. Write the following REPKGBUILD file: repkg extra/jre10-openjdk remove-replace jre9-openjdk 3. Run `remakepkg` Then again, this is just an alternative to just fetching Arch's PKGBUILD file for jre10-openjdk, editing it, and building the full package yourself. --Tinu signature.asc Description: PGP signature
Re: [arch-general] How to have multiple JDKs parallel?
On 9/17/18, ProgAndy wrote: > Am 18.09.18 um 00:23 schrieb Carsten Mattner via arch-general: >> Hope you don't mind me hijacking the thread to ask if you've ever >> extracted an adoptopenjdk tarball and were able to use it for running >> a Swing GUI. The jdk10-openjdk (not bin, didn't try aur) package in arch >> works, but whatever x86_64 tarball I download from adopopenjdk won't >> display Swing GUIs. It just throws exceptions about font loading. >> Do you have relevant experience to share/hint? > > There is a similar (the same?) error with MacOS builds: > > https://github.com/AdoptOpenJDK/openjdk-build/issues/489 I get these: java.lang.InternalError: java.lang.reflect.InvocationTargetException at sun.font.FontManagerFactory$1.run( java.desktop@10.0.2-adoptopenjdk/FontManagerFactory.java:86)
Re: [arch-general] How to have multiple JDKs parallel?
Am 18.09.18 um 00:23 schrieb Carsten Mattner via arch-general: > Hope you don't mind me hijacking the thread to ask if you've ever > extracted an adoptopenjdk tarball and were able to use it for running > a Swing GUI. The jdk10-openjdk (not bin, didn't try aur) package in arch > works, but whatever x86_64 tarball I download from adopopenjdk won't > display Swing GUIs. It just throws exceptions about font loading. > Do you have relevant experience to share/hint? There is a similar (the same?) error with MacOS builds: https://github.com/AdoptOpenJDK/openjdk-build/issues/489
Re: [arch-general] How to have multiple JDKs parallel?
A non-Arch specific alternative would be to use sdkman: https://sdkman.io/ , which is a generic version/environment manager for JVM-related packages. I've used it when I wanted to install some SDKs that wouldn't clobber the system-installed ones. On Mon, Sep 17, 2018 at 9:34 AM Peter Nabbefeld wrote: > > > Am 17.09.18 um 17:48 schrieb Carsten Mattner via arch-general: > > On 9/17/18, Eli Schwartz via arch-general > wrote: > > > >> So essentially what you really want is a way for pacman to remember your > >> choice. That would require pacman modify its configuration which is > >> something that goes against the current architecture... What would > happen > >> instead is pacman.conf could be used to configure this. > >> > >> I'm not sure if IgnorePkg or HoldPkg would have an effect here... > > The way I read it, what's being suggested is something like Debian's > > update-alternatives. https://wiki.debian.org/DebianAlternatives > > > > Or a JVM version manager ala pyenv etc. Not sure. > > Yes and No. These tools allow switching the active JVM. In my case that > would be overkill, I don't need that. I only need the installed software > to be reachable from NetBeans IDE. I'm usually fine running my software > on the latest JDK version - I only need other JDKs for compatibility > testing, and that's most comfortable using an IDE. > > Kind regards > > Peter >
Re: [arch-general] How to have multiple JDKs parallel?
On 9/17/18, Guus Snijders via arch-general wrote: > As an alternative : you could just extract (unpack) the pkg file to a > versioned directory in your $home and use those for testing. Hope you don't mind me hijacking the thread to ask if you've ever extracted an adoptopenjdk tarball and were able to use it for running a Swing GUI. The jdk10-openjdk (not bin, didn't try aur) package in arch works, but whatever x86_64 tarball I download from adopopenjdk won't display Swing GUIs. It just throws exceptions about font loading. Do you have relevant experience to share/hint?
Re: [arch-general] How to have multiple JDKs parallel?
Op ma 17 sep. 2018 18:34 schreef Peter Nabbefeld : > > > [...] > > Yes and No. These tools allow switching the active JVM. In my case that > would be overkill, I don't need that. I only need the installed software > to be reachable from NetBeans IDE. I'm usually fine running my software > on the latest JDK version - I only need other JDKs for compatibility > testing, and that's most comfortable using an IDE. > As an alternative : you could just extract (unpack) the pkg file to a versioned directory in your $home and use those for testing. That way, you can easily select any version for testing, without running into dependancy issues for your own system. Mvg, Guus Snijders
Re: [arch-general] How to have multiple JDKs parallel?
On 9/17/18 6:27 PM, Doug Newgard via arch-general wrote: > > Going forward with the new release policies, would it be better to just have > an > openjdk/openjre package that's always the latest version, then versioned > packages for the lts releases, such as they are? > This is exactly what will happen when java-11 is released, a generic named java package will replace java-10. Don't think there will be LTS releases anymore, but we will have versioned variants whenever some breaking changes require a specific jre for an application in our repositories. cheers, Levente signature.asc Description: OpenPGP digital signature
Re: [arch-general] How to have multiple JDKs parallel?
On Mon, Sep 17, 2018 at 6:34 PM Peter Nabbefeld wrote: > > > > Am 17.09.18 um 17:48 schrieb Carsten Mattner via arch-general: > > On 9/17/18, Eli Schwartz via arch-general > > wrote: > > > >> So essentially what you really want is a way for pacman to remember your > >> choice. That would require pacman modify its configuration which is > >> something that goes against the current architecture... What would happen > >> instead is pacman.conf could be used to configure this. > >> > >> I'm not sure if IgnorePkg or HoldPkg would have an effect here... > > The way I read it, what's being suggested is something like Debian's > > update-alternatives. https://wiki.debian.org/DebianAlternatives > > > > Or a JVM version manager ala pyenv etc. Not sure. > > Yes and No. These tools allow switching the active JVM. In my case that > would be overkill, I don't need that. I only need the installed software > to be reachable from NetBeans IDE. I'm usually fine running my software > on the latest JDK version - I only need other JDKs for compatibility > testing, and that's most comfortable using an IDE. > > Kind regards > > Peter Your best bet would be to download the PKGBUILD file and rename the package name. You'll probably need to make a few other changes as well as often the package name is used to download the package etc. Update the provides,conflicts as needed Now you'll have a package that can coexists with all the others and pacman won't even ask to upgrade it.
Re: [arch-general] How to have multiple JDKs parallel?
Am 17.09.18 um 17:48 schrieb Carsten Mattner via arch-general: On 9/17/18, Eli Schwartz via arch-general wrote: So essentially what you really want is a way for pacman to remember your choice. That would require pacman modify its configuration which is something that goes against the current architecture... What would happen instead is pacman.conf could be used to configure this. I'm not sure if IgnorePkg or HoldPkg would have an effect here... The way I read it, what's being suggested is something like Debian's update-alternatives. https://wiki.debian.org/DebianAlternatives Or a JVM version manager ala pyenv etc. Not sure. Yes and No. These tools allow switching the active JVM. In my case that would be overkill, I don't need that. I only need the installed software to be reachable from NetBeans IDE. I'm usually fine running my software on the latest JDK version - I only need other JDKs for compatibility testing, and that's most comfortable using an IDE. Kind regards Peter
Re: [arch-general] How to have multiple JDKs parallel?
Am 17.09.18 um 16:21 schrieb Eli Schwartz via arch-general: On September 17, 2018 10:06:04 AM EDT, Peter Nabbefeld wrote: You will get prompted again and again on every pacman -Su "to see if you're finally ready to do the replacement". That's what I don't want - if I accidently don't type the "n" for some reason, the JDK will be raplaced. While I could re-install it from the repo's cache, this is a bit inconvinient. Just adding and moving to the new one would be great. So essentially what you really want is a way for pacman to remember your choice. That would require pacman modify its configuration which is something that goes against the current architecture... What would happen instead is pacman.conf could be used to configure this. I'm not sure if IgnorePkg or HoldPkg would have an effect here... Currently, I'm using IgnorePkg - this solves the main problem, but gives me some alerts (as 5 packages are affected). And I don't know what will happen, if JDK 11 is out: Will I have to block both (JDK 9 and JDK 10), i.e. will the number of ignored packages (and the related alerts) have to increase with every new JDK release? Then I will reach the point at some time, where I do not see other important messages because of all the alerts. BTW, I do not want to change pacman's architecture, it shouldn't remember anything. One solution could just be to define sth. like "IgnoreSilent", i.e. an option like "IgnorePkg" without the alerts. But, while the behaviour is what I want, the semantics are probably strange: "IgnorePkg" currently adds the replacement package while not removing the replaced one, while I'd expect it to do nothing in this case. However, other replacements seem to work just fully or changing nothing - is it probably possible to control this from the package? Alternatively, a completely other option like the following could be added like this "forever": UpdateStrategyAdd = jdk*-openjdk jre*-openjdk jre*-openjdk-headless openjdk*-doc openjdk*-src Kind regards Peter
Re: [arch-general] How to have multiple JDKs parallel?
On Mon, 17 Sep 2018 18:20:49 +0200 Guillaume ALAUX via arch-general wrote: > On Mon, Sep 17, 2018 at 5:48 PM Carsten Mattner via arch-general > wrote: > > > > On 9/17/18, Eli Schwartz via arch-general > > wrote: > > > > > So essentially what you really want is a way for pacman to remember your > > > choice. That would require pacman modify its configuration which is > > > something that goes against the current architecture... What would happen > > > instead is pacman.conf could be used to configure this. > > > > > > I'm not sure if IgnorePkg or HoldPkg would have an effect here... > > > > The way I read it, what's being suggested is something like Debian's > > update-alternatives. https://wiki.debian.org/DebianAlternatives > > > > Or a JVM version manager ala pyenv etc. Not sure. > > Just to give some backing: here is the official explanation of what > has already been stated before about JDK versions: > > "[…] non‑LTS releases are considered a cumulative set of > implementation enhancements of the most recent LTS release. Once a new > feature release is made available, any previous non‑LTS release will > be considered superseded. For example, Java SE 9 was a non‑LTS release > and immediately superseded by Java SE 10 (also non‑LTS), Java SE 10 in > turn is immediately superseded by Java SE 11." [0] > > So keeping OpenJDK 9 in our repo while OpenJDK 10 is out would be the > same as keeping say OpenJDK 8.u181 while OpenJDK 8.u182 is out! Even > though I can understand the (developer) use case, this is clearly out > of Arch Linux' scope. > > [0] http://www.oracle.com/technetwork/java/javase/eol-135779.html > > Guillaume Going forward with the new release policies, would it be better to just have an openjdk/openjre package that's always the latest version, then versioned packages for the lts releases, such as they are?
Re: [arch-general] How to have multiple JDKs parallel?
Am 17.09.18 um 18:20 schrieb Guillaume ALAUX via arch-general: > On Mon, Sep 17, 2018 at 5:48 PM Carsten Mattner via arch-general > wrote: >> On 9/17/18, Eli Schwartz via arch-general wrote: >> >>> So essentially what you really want is a way for pacman to remember your >>> choice. That would require pacman modify its configuration which is >>> something that goes against the current architecture... What would happen >>> instead is pacman.conf could be used to configure this. >>> >>> I'm not sure if IgnorePkg or HoldPkg would have an effect here... >> The way I read it, what's being suggested is something like Debian's >> update-alternatives. https://wiki.debian.org/DebianAlternatives >> >> Or a JVM version manager ala pyenv etc. Not sure. > Just to give some backing: here is the official explanation of what > has already been stated before about JDK versions: > > "[…] non‑LTS releases are considered a cumulative set of > implementation enhancements of the most recent LTS release. Once a new > feature release is made available, any previous non‑LTS release will > be considered superseded. For example, Java SE 9 was a non‑LTS release > and immediately superseded by Java SE 10 (also non‑LTS), Java SE 10 in > turn is immediately superseded by Java SE 11." [0] > > So keeping OpenJDK 9 in our repo while OpenJDK 10 is out would be the > same as keeping say OpenJDK 8.u181 while OpenJDK 8.u182 is out! Even > though I can understand the (developer) use case, this is clearly out > of Arch Linux' scope. > > [0] http://www.oracle.com/technetwork/java/javase/eol-135779.html > > Guillaume This might be a use case for remakepkg to remove the replaces-entry in the java10 packages. https://bbs.archlinux.org/viewtopic.php?pid=1771005 --- Andreas
Re: [arch-general] How to have multiple JDKs parallel?
On Mon, Sep 17, 2018 at 5:48 PM Carsten Mattner via arch-general wrote: > > On 9/17/18, Eli Schwartz via arch-general wrote: > > > So essentially what you really want is a way for pacman to remember your > > choice. That would require pacman modify its configuration which is > > something that goes against the current architecture... What would happen > > instead is pacman.conf could be used to configure this. > > > > I'm not sure if IgnorePkg or HoldPkg would have an effect here... > > The way I read it, what's being suggested is something like Debian's > update-alternatives. https://wiki.debian.org/DebianAlternatives > > Or a JVM version manager ala pyenv etc. Not sure. Just to give some backing: here is the official explanation of what has already been stated before about JDK versions: "[…] non‑LTS releases are considered a cumulative set of implementation enhancements of the most recent LTS release. Once a new feature release is made available, any previous non‑LTS release will be considered superseded. For example, Java SE 9 was a non‑LTS release and immediately superseded by Java SE 10 (also non‑LTS), Java SE 10 in turn is immediately superseded by Java SE 11." [0] So keeping OpenJDK 9 in our repo while OpenJDK 10 is out would be the same as keeping say OpenJDK 8.u181 while OpenJDK 8.u182 is out! Even though I can understand the (developer) use case, this is clearly out of Arch Linux' scope. [0] http://www.oracle.com/technetwork/java/javase/eol-135779.html Guillaume
Re: [arch-general] How to have multiple JDKs parallel?
On 9/17/18, Eli Schwartz via arch-general wrote: > So essentially what you really want is a way for pacman to remember your > choice. That would require pacman modify its configuration which is > something that goes against the current architecture... What would happen > instead is pacman.conf could be used to configure this. > > I'm not sure if IgnorePkg or HoldPkg would have an effect here... The way I read it, what's being suggested is something like Debian's update-alternatives. https://wiki.debian.org/DebianAlternatives Or a JVM version manager ala pyenv etc. Not sure.
Re: [arch-general] How to have multiple JDKs parallel?
On September 17, 2018 10:06:04 AM EDT, Peter Nabbefeld wrote: >> You will get prompted again and again on every pacman -Su "to see if >> you're finally ready to do the replacement". >> >That's what I don't want - if I accidently don't type the "n" for some >reason, the JDK will be raplaced. While I could re-install it from the >repo's cache, this is a bit inconvinient. Just adding and moving to the >new one would be great. So essentially what you really want is a way for pacman to remember your choice. That would require pacman modify its configuration which is something that goes against the current architecture... What would happen instead is pacman.conf could be used to configure this. I'm not sure if IgnorePkg or HoldPkg would have an effect here... -- Eli Schwartz Bug Wrangler and Trusted User signature.asc Description: PGP signature
Re: [arch-general] How to have multiple JDKs parallel?
Am 17.09.18 um 15:58 schrieb Eli Schwartz via arch-general: On 9/17/18 7:50 AM, Peter Nabbefeld wrote: Sorry, I accidently sent my earlier response to Olli privately. So one question has been lost: Probably, pacman could be extended with an option to change the update strategy from replace to add? This would make it a lot easier than building my own packages or even setup a dedicated VM, as I'm changing JDKs in my IDE on a per-project base. This just ensures I'm not using newer features for environments where I cannot use those. BTW, I'm feeling comfortable to use the latest JDK, but I just want to be able to try out solutions for older ones with possibly missing features (or just older class file version numbers). E.g. in some cases some environments cannot work with newer class file versions, one prominent piece being Maven, as far as I read on some mailing lists (some plugins seemed to reject work with projects using JDK 9, but as I still use JDK 8, currently, it's not been my problem). This option already exists. pacman asks you if you want to replace the one with the other. Just say "no". The packages neither provide nor conflict each other, so there's absolutely nothing wrong with doing so. Admittedly, it's no longer a repo package so it's unsupported, but that was the case whether it was moved to the AUR or deleted with a replaces. ... You will get prompted again and again on every pacman -Su "to see if you're finally ready to do the replacement". That's what I don't want - if I accidently don't type the "n" for some reason, the JDK will be raplaced. While I could re-install it from the repo's cache, this is a bit inconvinient. Just adding and moving to the new one would be great. Kind regards Peter
Re: [arch-general] How to have multiple JDKs parallel?
On 9/17/18 7:50 AM, Peter Nabbefeld wrote: > Sorry, I accidently sent my earlier response to Olli privately. So one > question has been lost: > > Probably, pacman could be extended with an option to change the update > strategy from replace to add? > > This would make it a lot easier than building my own packages or even > setup a dedicated VM, as I'm changing JDKs in my IDE on a per-project > base. This just ensures I'm not using newer features for environments > where I cannot use those. BTW, I'm feeling comfortable to use the latest > JDK, but I just want to be able to try out solutions for older ones with > possibly missing features (or just older class file version numbers). > E.g. in some cases some environments cannot work with newer class file > versions, one prominent piece being Maven, as far as I read on some > mailing lists (some plugins seemed to reject work with projects using > JDK 9, but as I still use JDK 8, currently, it's not been my problem). This option already exists. pacman asks you if you want to replace the one with the other. Just say "no". The packages neither provide nor conflict each other, so there's absolutely nothing wrong with doing so. Admittedly, it's no longer a repo package so it's unsupported, but that was the case whether it was moved to the AUR or deleted with a replaces. ... You will get prompted again and again on every pacman -Su "to see if you're finally ready to do the replacement". -- Eli Schwartz Bug Wrangler and Trusted User signature.asc Description: OpenPGP digital signature
Re: [arch-general] How to have multiple JDKs parallel?
Am 17.09.18 um 12:42 schrieb Luke English: On Mon, Sep 17, 2018 at 12:34:54PM +0200, Guus Snijders via arch-general wrote: Op ma 17 sep. 2018 12:04 schreef Olli : On 17.09.18 09:31, Peter Nabbefeld wrote: There has ever been an EOL for older JDKs. But sometimes You're bound to a specific JDK version in Your working environment, so IMO always replacing is a bad strategy. The problem is, in larger companies it sometimes takes some weeks or even months until some software is allowed to be upgraded. And I'd at least want to check which features are available in which JDK - or which bugs are present. Well, tell the OpenJDK/Oracle people, they are the ones who came up with this release cycle. It has nothing to do with Arch Linux. Actually, it's just a user question on how to handle multiple pkg versions. And that is Arch(user) specific ;). One option would be to use custom pkg's, another (somewhat easy) method would be to create a virtual machine for every java version. Isn't that exactly what archlinux-java is for? The way I see it the original question was related to Arch's replacement of openjdk-9 with openjdk-10. In the VM case, add some shared storage and have fun. Just remember to freeze at least the java pkg in those vm's... Mvg, Guus Snijders Sorry, I accidently sent my earlier response to Olli privately. So one question has been lost: Probably, pacman could be extended with an option to change the update strategy from replace to add? This would make it a lot easier than building my own packages or even setup a dedicated VM, as I'm changing JDKs in my IDE on a per-project base. This just ensures I'm not using newer features for environments where I cannot use those. BTW, I'm feeling comfortable to use the latest JDK, but I just want to be able to try out solutions for older ones with possibly missing features (or just older class file version numbers). E.g. in some cases some environments cannot work with newer class file versions, one prominent piece being Maven, as far as I read on some mailing lists (some plugins seemed to reject work with projects using JDK 9, but as I still use JDK 8, currently, it's not been my problem). Kind regards Peter
Re: [arch-general] How to have multiple JDKs parallel?
On Mon, Sep 17, 2018 at 12:34:54PM +0200, Guus Snijders via arch-general wrote: > Op ma 17 sep. 2018 12:04 schreef Olli : > > > On 17.09.18 09:31, Peter Nabbefeld wrote: > > > There has ever been an EOL for older JDKs. But sometimes You're bound > > > to a specific JDK version in Your working environment, so IMO always > > > replacing is a bad strategy. The problem is, in larger companies it > > > sometimes takes some weeks or even months until some software is > > > allowed to be upgraded. And I'd at least want to check which features > > > are available in which JDK - or which bugs are present. > > > > Well, tell the OpenJDK/Oracle people, they are the ones who came up with > > this release cycle. It has nothing to do with Arch Linux. > > > > Actually, it's just a user question on how to handle multiple pkg versions. > And that is Arch(user) specific ;). > > One option would be to use custom pkg's, another (somewhat easy) method > would be to create a virtual machine for every java version. Isn't that exactly what archlinux-java is for? The way I see it the original question was related to Arch's replacement of openjdk-9 with openjdk-10. > In the VM case, add some shared storage and have fun. Just remember to > freeze at least the java pkg in those vm's... > > > Mvg, Guus Snijders
Re: [arch-general] How to have multiple JDKs parallel?
Op ma 17 sep. 2018 12:04 schreef Olli : > On 17.09.18 09:31, Peter Nabbefeld wrote: > > There has ever been an EOL for older JDKs. But sometimes You're bound > > to a specific JDK version in Your working environment, so IMO always > > replacing is a bad strategy. The problem is, in larger companies it > > sometimes takes some weeks or even months until some software is > > allowed to be upgraded. And I'd at least want to check which features > > are available in which JDK - or which bugs are present. > > Well, tell the OpenJDK/Oracle people, they are the ones who came up with > this release cycle. It has nothing to do with Arch Linux. > Actually, it's just a user question on how to handle multiple pkg versions. And that is Arch(user) specific ;). One option would be to use custom pkg's, another (somewhat easy) method would be to create a virtual machine for every java version. In the VM case, add some shared storage and have fun. Just remember to freeze at least the java pkg in those vm's... Mvg, Guus Snijders
Re: [arch-general] How to have multiple JDKs parallel?
On 17.09.18 09:31, Peter Nabbefeld wrote: > There has ever been an EOL for older JDKs. But sometimes You're bound > to a specific JDK version in Your working environment, so IMO always > replacing is a bad strategy. The problem is, in larger companies it > sometimes takes some weeks or even months until some software is > allowed to be upgraded. And I'd at least want to check which features > are available in which JDK - or which bugs are present. Well, tell the OpenJDK/Oracle people, they are the ones who came up with this release cycle. It has nothing to do with Arch Linux.
Re: [arch-general] How to have multiple JDKs parallel?
Am 15.09.18 um 19:54 schrieb Olli: > LTS versions are only provided by Oracle for their JDK, not for the > OpenJDK. This graphic explains it quite well: > https://medium.com/codefx-weekly/no-free-java-lts-version-b850192745fb There won't be any free LTS releases from Oracle, but the AdoptOpenJDK project wants to create public LTS releases every three versions beginning with Java 11. They also want to support Java 8 until 2022 > In addition, every three years one feature release will be designated as the > Long Term Supported (LTS) release. We will support LTS releases for at least > four years. This assurance will allow you to stay on a well-defined code stream, > and give you time to migrate to the next, new, stable, LTS release when it > becomes available. https://adoptopenjdk.net/support.html
Re: [arch-general] How to have multiple JDKs parallel?
On 15/09/2018 14:22, Olli wrote: > Each new version is replacing the previous > one so that there is always only one (the latest) supported version. I think there are technically two supported releases, a long-term- and short-term-supported release. The current LTS is OpenJDK 8, the next LTS will be (IIRC) OpenJDK 11, with intervening versions being STS. J signature.asc Description: OpenPGP digital signature
Re: [arch-general] How to have multiple JDKs parallel?
On 15.09.18 10:56, Peter Nabbefeld wrote: > up to JDK 9 I didn't have problems upgrading, but since JDK 10 it always > wants to replace JDK 9, and I guess it will become worse with JDK 11 etc. starting with Java 9, the OpenJDK changed its release cycle to publish a new version every six month. Each new version is replacing the previous one so that there is always only one (the latest) supported version. Check out e. g. this article for more details: https://medium.com/codefx-weekly/no-free-java-lts-version-b850192745fb Since Arch Linux closely follows upstream I think the OpenJDK packages will follow this policy—and that this is the reason why the package “jdk10-openjdk” replaced “jdk9-openjdk” entirely. In ten days, “jdk11-openjdk” will replace “jdk10-openjdk” and so on … > As a Java developer, I need to be able to have multiple JDKs for > compatibility checkings. Since there will be no official OpenJDK builds (no maintenance) for the older versions anymore, you have to install them manually—or use Oracle’s builds with longtime support (not for free though). I guess it would be best to closely follow the latest version and always make sure your applications are running fine. I heard that new versions should be backwards compatible (to a certain degree) but cannot find any source for this. Regards, Olli
Re: [arch-general] How to have multiple JDKs parallel?
I have a related question. I tried arch's openjdk packages and those were successful in displaying Swing UIs. Then, to check out newer JDKs and IBM's OpenJ9, I grabbed a build from https://adoptopenjdk.net, and I just couldn't get any Swing UI to display. It reported many exceptions and that was it. Tried with different window managers and compositors. Any idea what's different on Arch or where the adoptopenjdk builds work?
Re: [arch-general] How to have multiple JDKs parallel?
Op 15 sep. 2018 10:56 schreef "Peter Nabbefeld" : Hello, up to JDK 9 I didn't have problems upgrading, but since JDK 10 it always wants to replace JDK 9, and I guess it will become worse with JDK 11 etc. [...] "IgnorePkg = jdk9-openjdk [...] As a Java developer, I need to be able to have multiple JDKs for compatibility checkings. I honestly don't know much about java, but I guess you don't have real dependancies on the lower versions (As in: no other packages require them)? Then perhaps it's an option to edit the PKGBUILD of these lower versions and modify the name. Something like jdk9-custom etc. Then the higher versions won't conflict. Mvg, Guus Snijders
[arch-general] How to have multiple JDKs parallel?
Hello, up to JDK 9 I didn't have problems upgrading, but since JDK 10 it always wants to replace JDK 9, and I guess it will become worse with JDK 11 etc. I've set "IgnorePkg = jdk9-openjdk jre9-openjdk jre9-openjdk-headless openjdk9-doc openjdk9-src" in pacman.conf, so now I'm getting warnings all the time, but I'm not sure what will happen with future updates. As a Java developer, I need to be able to have multiple JDKs for compatibility checkings. Kind regards Peter