4 ms·
Trademark and/or copyright can’t be used to block interoperability, see the Lexmark printer cartridge lawsuit where they embedded their logo into a MCU on the c
by snuxoll 9y ago
Trademark and/or copyright can’t be used to block interoperability, see the Lexmark printer cartridge lawsuit where they embedded their logo into a MCU on the cartridge to try and block third-party cartridges.
And while, yes, one circuit so far has decided that API’s are copywritable the argument of fair use is still up in the air (unless the appellate court has finally finished that case, I haven’t bothered to check).
Also, Oracle and Sun before have continued to release OpenJDK under the GPLv2 (with classpath exception), giving an implicit license to the API with the worst case being an implementation needs to use the same license - it may not be able to call itself “Java” on the packaging but “compatible” probably.
- danarmak 9y agoEven if you ignore API copyrightability, it's impossible for a Java implementation to be compatible without using the word Java in very many places, including in the API. (Presumably trademark law applies to an API; I can't publish an API under the package name com.oracle, and similarly I can't publish under java.xxx). Also the whole tool system and the documentation of everything. Removing the word Java from all docs and sources isn't nearly as easy as removing the name RedHat and making CentOS. And even if you do that you won't be compatible because all the existing tools and programs expect you to be called java.
- PeterisP 9y agoAs the parent poster explicitly said, trademarks cannot be used to block interoperability - since, as you say, impossible for a Java implementation to be compatible without using the word Java in very many places, then this means that you are allowed to use that word without permission. I'm not entirely sure if you're actually prohibited from publishing a new API under the name of com.oracle.* or java.* (IMHO you can, but I'm not sure), but even if you're prohibited to do so in the general case, you 100% can name a package com.oracle.java.everything without any permission if naming it so is actually needed for interoperability, that's a legitimate use of a trademark that its owner cannot restrict.
- danarmak 9y ago> since, as you say, impossible for a Java implementation to be compatible without using the word Java in very many places, then this means that you are allowed to use that word without permission. If this is true, then why did the Apache Harmony project have to close because it couldn't get a TCK license and so couldn't call itself Java or even Java-compatible?
- PeterisP 9y agoUsing the word "Java" in the human naming, branding, advertising material, etc is not required for technical interoperability and follows the usual trademark restrictions. Getting actual interoperability is protected, calling yourself compatible is a bit trickier. Having a project branded "Magic Java Bean" with a class name com.mycompany.magicbean requires permission from Oracle, but having a project named "My alternative black magic drink SDK" with a classpath com.oracle.jdbc or java.something does not require any licence, if that particular name is required for interoperability. TCK, despite "compatibility" in it's name, isn't required for compatibility in the legal sense (it's required to demonstrate compatibility, not as an unalienable part of any component that happens to be compatible) so it can be licenced (or not) however Sun/Oracle wishes.
- snuxoll 9y agoHarmony didn’t shutter purely because they couldn’t license the TCK, but without a acceptable license to the TCK they can’t say they are a certified Java SE or Java EE platform. This meant they had no way to prove or verify compatibility, but they still continued to advertise themselves as an open source Java runtime environment. Ultimately OpenJDK’s existence was what caused Harmony’s death, since the GPLv2 with Classpath Exception was a “good enough” license for the community (personal and commercial).