OpenStreetMap

don-vip speaking, originally from JOSM Twitter account:

I read many incorrect statements about the new Java license from Oracle on the German OSM forum mentioned in weeklyOSM 458. Let’s see in detail what all is this about.

First of all, a little bit of history/terminology. Java was created in 1995 by Sun. We call “Java” both the programming language and the platform that runs JOSM (JRE = Java Runtime Environment). Several platforms, from multiple vendors, exist.

The JDK (Java Development Kit) contains the JRE but also developer tools (mainly, the java compiler). In 2006, around the release of Java 6, Sun announced its intention to open-source Java in a new project: OpenJDK.

OpenJDK is badly named, like OpenStreetMap. We don’t only map streets… Well OpenJDK project does not only concern the JDK but the whole Java platform (language, spec, tools, APIs, etc.). @speakjava explains it nicely.

Sun open sourced many things from Java into the OpenJDK project, but not all things. In particular, Windows/Mac installers and deployment technologies like WebStart were not open sourced (we don’t know why).

It means OpenJDK is only a “source code” project. Building it is very complex, and nobody took the pain to distribute free binaries for Windows & Mac. Only Red Hat did it for Linux in the IcedTea project. If you have 100% free Java on Linux, it’s thank to them.

In 2009 Oracle bought Sun. They didn’t change things radically until recently. So even today most of Windows and Mac users are still using proprietary JRE binaries from Oracle, that are built upon open source project OpenJDK.

Oracle made a very good job in releasing Java 8 in 2014, then Java 9 in 2017. We even collaborated with them in mutual good faith. Then, all hell broke loose.

They changed the Java release cycle to to a fixed 6 months schedule (2 versions per year). We are now at Java 12 (which is by the way the most unimpressive version of Java: nothing new in it).

They changed the licence of the Oracle JDK: basically if you are an enterprise and want to use Oracle binaries, you have to pay. They introduced the notion of Long Term Support versions (LTS). Java 8 is an LTS, Java 11 too. For more details about “release train” and licencing, see the excellent blog post by @hendrikEbbers.

And concerning the Java 8 binaries that almost everyone uses on Windows and Mac, they changed the licence to a free for personal desktop use, through at least the end of 2020.

These changes came from nowhere and the Java community was not prepared for it. So it required some time until we can get to a free replacement to the Oracle binaries on Windows and Mac, and that’s why we didn’t advise anyone to switch to something else yet.

But we’re almost there thanks to @adoptopenjdk! This community-based project offers free downloads of OpenJDK on all platforms!

We’re just waiting for the availability of a few enhancements of the AdoptOpenJDK installer before advising everyone to switch.

1) The inclusion of JavaFX (another technology abandoned by Oracle and now maintained by @GluonHQ), which is used by JOSM to play MP3 files, and by some plugins like Microsoft StreetSide.

2) The inclusion of IcedTea-Web (the free implementation of Java WebStart which has also been abandoned by Oracle). We can thank Red Hat (again) for this project, plus also @karakun and AdoptOpenJDK for their work.

3) An auto-update feature to make sure everyone can automatically get security updates.

Once all these issues are resolved (hopefully long before end of 2020) we’ll ask everyone to switch to AdoptOpenJDK. Until now, even if we despise Oracle for all of this, we still advise to keep the current Oracle JRE, at least for the automatic security updates.

This is also why we still target Java 8 as a minimum. Once everyone is able to run JOSM using AdopOpenJDK binaries, we’ll likely switch to Java 11! Which is by the way now maintained by Red Hat and not by Oracle :)

Discussion

Comment from SomeoneElse on 9 May 2019 at 08:33

On the subject of “auto update” people don’t really need to wait for AdoptOpenJDK - on common Linuxes you’ve already got a native package manager, on MacOS you’ve got Homebrew (though I haven’t used MacOS for some time), and on Windows Chocolatey.

Best Regards,

Andy

Comment from Wulf4096 on 12 May 2019 at 12:51

Hi, as I tried to point out in the German forums, I believe that usage of Oracle Java for running JOSM is not covered by personal use, hence you’d need to obtain a license from Oracle or switch to OpenJDK now.

Quoting the FAQ:

Can you elaborate on what qualifies as Personal use? Personal use is using Java on a desktop or laptop computer to do things such as to play games or run other personal applications. If you are using Java on a desktop or laptop computer as part of any business operations, that is not personal use. For example, you could use a Java productivity application to do your own homework or your personal taxes, but you could not use it to do your business accounting.

Most users of JOSM are not trying to generate a profit for themselves, but the OSM project spends a substantial amount of real money on e.g. server costs. And there are organizations involved with OSM that utilize the work of JOSM users to generate a profit. OSM, being a collaborative project to create a world map, is certainly not a personal project and therefore JOSM is not a personal application. And obviously it’s not a game either.

Cheers

Wulf4096

Comment from SomeoneElse on 13 May 2019 at 10:34

@Wulf4096 I’m not a lawyer, but I can think of very few people in the German forum that would not be covered by the personal use clause you cite. I don’t think we need to scare people into obtaining Oracle licences (and I also don’t think that the issues raised by don-vip are issues to stop most people using OpenJDK now, but that’s a different issue).

Comment from Wulf4096 on 13 May 2019 at 11:02

I most certainly do not want people to obtain any licenses from Oracle ;-) Please don’t just say “you’re wrong” without giving any justification.

From the license (https://www.oracle.com/technetwork/java/javase/terms/license/javase-license.html)

“Personal Use” refers to an Individual’s use of the Programs solely on a desktop or laptop computer under such Individual’s control only to run Personal Applications.

“Personal Applications” refers to Applications designed for individual personal use only, such as games or personal productivity tools.

Step by step:

  • “Individual’s” - yes, most JOSM users are individuals
  • “use of the Programs solely on a desktop or laptop computer” - yes, it’s not run on e.g. servers
  • “under such Individual’s control” - yes, assuming they use it on their own computers.
  • “only to run Personal Applications” - Is JOSM a “Personal Application”? If not, “Personal Use” does not apply.
  • “Applications” - JOSM is an application.
  • “individual personal use only” - See above: OSM is a huge collabortive project which involves money and businesses. JOSM is used to contribute data to this project. Others will directly benefit from it.
  • “such as games” - JOSM is not a game (although it can be fun)
  • “or personal productivity tools” - examples from the FAQ include doing ones own taxes or ones own homework. Any GTD tools, household organization, etc. would match too. But JOSM certainly is no “personal productivity tools”.

“such as games or personal productivity tools” means there can be other categories. But JOSM is very very different from the examples given.

Comment from SomeoneElse on 13 May 2019 at 11:05

Re ‘“only to run Personal Applications” - Is JOSM a “Personal Application”?’ the answer is “yes”.

Comment from mirror176 on 9 February 2020 at 19:04

Me using JOSM for hobby meets the licensing. Whether or not my edits are “work”(=difficulty+nonfun rating of the edit), I am not any kind of an employee for anyone doing said edits, nor would any volunteer editor. Mapbox/Telenav/etc. employee at work modifying OSM with JOSM is where the question comes into play. They are at work performing their job and java is needed to do so (sticking to running JOSM in this case obviously); that’s a business use even if their job is modifying a nonprofit’s dataset, whether or not they were to profit from said dataset. I’ve had issues with openjdk8 on FreeBSD for JOSM with Mapillary and Microsoft streetside plugins where research of errors said to upgrade to java11; will do once FreeBSD community gets their ports tree better supporting newer jdk versions as dependencies properly (haven’t looked lately). On Windows the issue I recall was no support to load the autoupdating weblauncher files and had to download/run a single release. Though it would be easy to use chocolatey to also download wget/aria2c/etc. program and make a batch file to download then run josm each time, it is also easy to use chocolatey to download josm, which chocolatey may end up days behind main release of each program but can keep openjdk and josm relatively up to date. josm chocolatey maintainer also seems fast to respond though the only issue I had was an install failed because he points to josm versioned releases and a recent but slightly older release file which had the version in the name was removed from josm servers when the new version came out. Anyone have updates otherwise though for adoptopenjdk efforts? Felt weird not having a webstart type feature in the Windows copy of openjdk.

Log in to leave a comment