Azul Zing and the GPL

535 views
Skip to first unread message

Ramon Nogueira

unread,
Feb 1, 2014, 10:26:12 AM2/1/14
to mechanica...@googlegroups.com
I've been trying to get hold of a trial copy of Azul Zing to try out on a Cassandra workload. They certainly don't make it easy. One of the interesting things I've discovered along the way is that, as an derivative of OpenJDK, Zing is actually open source under the GPL. In fact there is a source drop of the product from a few years ago here: https://github.com/GregBowyer/ManagedRuntimeInitiative

Unfortunately, that source drop is 3 years old and JDK 6. I was wondering if anyone had a more recent copy? Of course IANAL and it's only OK to distribute the parts that fall under the GPL, not any extras that are not derived from OpenJDK or the Linux kernel.

I know some of the folks from Azul are active on this list so any comments from them would definitely be welcome. I have also asked them directly about this but with no luck so far.

Gil Tene

unread,
Feb 1, 2014, 12:24:22 PM2/1/14
to mechanica...@googlegroups.com
Ramon,

While Zing contains some significant parts licensed under various OSS licenses, a working Zing runtime (i.e. one capable of executing java -version or anything bigger) depends on and uses system components that are not open sourced. In contrast, Azul's Zulu product in a 100% open source commercialized build of OpenJDK.

So if what you are looking for is a Zing setup to run your Cassandra workload, you need to get it from Azul. Azul does have OSS developers program, btw, which makes Zing free for qualified open source projects. If you've been having a hard time getting a copy for some reason, drop me a line and I'll try to help.

Ramon Nogueira

unread,
Feb 1, 2014, 3:59:46 PM2/1/14
to mechanica...@googlegroups.com
Gil,

I want to thank you for your response and say that I have an enormous amount of respect the the fantastic work you've done pushing the state-of-the-art forward in managed runtimes. No doubt you and Azul are a significant part of the reason Java as a whole remains the best platform for demanding real-time applications on modern architectures.

However, your work is built on OpenJDK which is a community effort and the GPL is designed to protect such efforts from being used as part of derivative works that are then no longer available under the same terms to that community.

To be anal about it: the modified hotspot executable that includes the pause-less C4 GC is a derivative work of OpenJDK. My understanding of the GPL is that this means the derived work also needs to be made available under the GPL. Section 2b reads:

You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License.

Setting aside the closed-source components, would you be willing to provide access to those "parts" of Zing that are covered by the GPL? 

My understanding of Zulu (from speaking to an Azul consultant a couple of months ago) is that it is an unmodified OpenJDK so I assume it doesn't include any of the interesting enhancements present in Zing.

Again, I am not a lawyer, this is just my lay interpretation of the situation so anyone with a different take on things should feel free to chime in.




--
You received this message because you are subscribed to a topic in the Google Groups "mechanical-sympathy" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/mechanical-sympathy/ijKwEt3kPMY/unsubscribe.
To unsubscribe from this group and all of its topics, send an email to mechanical-symp...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.

Gil Tene

unread,
Feb 1, 2014, 4:58:31 PM2/1/14
to mechanica...@googlegroups.com
Ramon,

I am not a lawyer, and will not attempt to interpret or discuss the various licenses in public forums. A Zing installation is made up of multiple components, some of which are licensed under various OSS and commercial licenses which Azul fully adheres to. You are welcome to contact us directly with specific questions and concerns.

It's probably useful to note that most of Zing's memory management sub-system, including components that deal with elastic, multi-process virtual and physical memory management, and which represent critical parts of the concurrent C4 mechanisms are completely external to and independent of the runtime, and are shared and used by multiple processes and components in a Zing-enabled system.

You can find some of the concepts behind these specialized memory management system components (and the reasoning for their existence in the context of a highly concurrent GC environment) described in our peer reviewed C4 publication, including some numeric examples of the dramatic virtual mapping manipulation performance difference enabled when compared to classic virtual memory manipulations found in most OS kernels today. In the past, we've created and tried to push some example open source implementations of some of these components specifically into the Linux kernel in an attempt to advocate for similar functionality being made available to other runtimes and operating systems (as part of the managed runtime initiative), but found no real interest for it the Linux kernel community (things that would make GC significantly better did not seem to garner much positive attention).

Ramon Nogueira

unread,
Feb 1, 2014, 8:06:06 PM2/1/14
to mechanica...@googlegroups.com
The kernel modifications/modules are certainly interesting but not primarily what I was after. I think there are interesting alternatives that I'd love to explore - if I could.

But let's not get off-topic. What I'm asking for is the source for the "java" executable - anything compiled together with the OpenJDK source tree. You can get more "derived" than that so the GPL clearly applies, this isn't a grey area - or do you disagree with that for some reason? 


ryan rawson

unread,
Feb 1, 2014, 8:44:22 PM2/1/14
to mechanica...@googlegroups.com, mechanica...@googlegroups.com
The gpl only requires that the source be delivered (upon request) to the people the binaries/derived works are distributed to. 

I'd love to have C4 as an open source platform as well, but the gpl does not compel in this situation. 
You received this message because you are subscribed to the Google Groups "mechanical-sympathy" group.
To unsubscribe from this group and stop receiving emails from it, send an email to mechanical-symp...@googlegroups.com.

Ryan Rawson

unread,
Feb 1, 2014, 8:47:22 PM2/1/14
to mechanica...@googlegroups.com, mechanica...@googlegroups.com
Here's the relevant GNU GPL FAQ:


"But if you release the modified version to the public in some way, the GPL requires you to make the modified source code available to the program's users, under the GPL."

On Feb 1, 2014, at 5:06 PM, Ramon Nogueira <ra...@echophase.com> wrote:

You received this message because you are subscribed to the Google Groups "mechanical-sympathy" group.
To unsubscribe from this group and stop receiving emails from it, send an email to mechanical-symp...@googlegroups.com.

Ramon Nogueira

unread,
Feb 1, 2014, 10:03:59 PM2/1/14
to mechanica...@googlegroups.com
Ryan, you are correct the GPL doesn't require the distributor (Azul) to physically give a copy to any third party. It does however grant any third party a license (specifically, the GPL) to use that software, and to redistribute it: 


It also gives any users of the software the right to redistribute it to any third party under the GPL. This is why I posted to this list.

Actually, there is an exception to this if the distributor has opted for the "on demand" option by distributing binary-only copies. In this case they are required to also supply a written offer to provide the source code and this offer *is* valid for any third party: 


But I'm not sure this is the case for Zing. 

It's nice to see that the GPL is structured such that it's always permissible for anyone in possession of the software to give it away (under the terms of the GPL) anonymously - either directly if source code was provided, or indirectly through a written offer that's valid for any third party. 

Of course, there is no need for anonymity because there is nothing wrong with redistributing GPL'ed software. There is also nothing wrong with *not* redistributing it - though in that case it remains effectively proprietary which would be sad indeed for such a magnificent piece of engineering.

Aleksey Shipilev

unread,
Feb 2, 2014, 2:26:43 AM2/2/14
to mechanica...@googlegroups.com
воскресенье, 2 февраля 2014 г., 5:06:06 UTC+4 пользователь Ramon Nogueira написал:
But let's not get off-topic. What I'm asking for is the source for the "java" executable - anything compiled together with the OpenJDK source tree. You can get more "derived" than that so the GPL clearly applies, this isn't a grey area - or do you disagree with that for some reason? 

(IANAL, etc, etc.)

VM/JDK sources are "in possession" of Sun/Oracle under potentially whatever license they like. There is a way to get the access to VM/JDK sources by going to Sun/Oracle, become the licensee, and not being tainted by any public license. This was done, e.g. for JRockit, Excelsior JET, and probably Azul (?) even before OpenJDK was born. In that case, it is not a derivative from GPL work, and the provisions of GPL clearly do not apply.

This is similar for any other project: project authors (if you were careful with contributor agreement to subsume the rights on any contributed code) can relicense their products any time they see fitting.

-Aleksey.

Ramon Nogueira

unread,
Feb 2, 2014, 5:27:28 AM2/2/14
to mechanica...@googlegroups.com
Yes, that's certainly true and that's what I assumed was the case until looking into it more carefully. However, I now think that in the case of Zing specifically they are basing their runtime on GPL'ed OpenJDK rather than Oracle JDK taken under some other license. 

I have a few reasons to believe this including the fact that the source files at https://github.com/GregBowyer/ManagedRuntimeInitiative all bear GPL headers (including the files for the Azul GC additions) and are embedded within the OpenJDK source tree.

Also, if this was the case why wouldn't the Azul people just say that they have such an agreement? That would clear up the whole situation immediately. Gil, could you comment on this?

In any case it's easy to verify if you have a copy of Zing, the parts that are under the GPL should be clearly indicated. If they're under some other license, this should also be indicated.


--

Georges Gomes

unread,
Feb 2, 2014, 5:38:09 AM2/2/14
to mechanica...@googlegroups.com
Hi Ramon,

I don't think it's appropriate to have this discussion on mechanical-sympathy.
As proposed by Gil, you should contact him directly to have answers about licensing.

Thanks
GG



--
You received this message because you are subscribed to the Google Groups "mechanical-sympathy" group.
To unsubscribe from this group and stop receiving emails from it, send an email to mechanical-symp...@googlegroups.com.

Ramon Nogueira

unread,
Feb 2, 2014, 6:37:04 AM2/2/14
to mechanica...@googlegroups.com
Yip, I've done this. I'll be sure to report back on what the outcome is.

Michael Barker

unread,
Feb 2, 2014, 2:13:51 PM2/2/14
to mechanica...@googlegroups.com
Hi Ramon,

> Yip, I've done this. I'll be sure to report back on what the outcome is.

I don't think there is any need to report back here on the outcome.
Software licensing is off-topic for the mechanical-sympathy list.

Mike.
Reply all
Reply to author
Forward
0 new messages