Otoh, Stuart Sierra published his altlaw code under the (Affero) GPL:
http://github.com/stuartsierra/altlaw-clojure-restlet/blob/master/LICENSE.txt
He's doing law, so he must know what he's doing, right? :)
In any case, I'd like to clarify this issue in this group. For me, and
for everyone else thinking about GPL'ing their code, for whatever
reasons.
A couple of questions:
1) Can I GPL my Clojure project?
2) Can I GPL my Clojure project that also uses clojure-contrib?
3) Can I ship clojure.jar (and clojure-contrib.jar) with my GPL app?
4) Can I AOT clojure-contrib.jar (or parts of it) and ship the
generated classes with my GPL app?
And to all potential license zealots who think it's their time again:
This is not a thread discussing what anybody thinks the license of
clojure itself (or clojure-contrib) should be, it is about assessing
the current situation for projects created in clojure, potentially
depending on clojure-contrib.
Also please don't try to convince me that GPL is viral and evil and so
forth, just as I'm not trying to sell it to anyone here. I want to
know if I can or cannot, nothing more, nothing less.
Thanks
Eugen
On Sat, 27 Mar 2010 18:44:15 -0700 (PDT)
Eugen Dück <eu...@dueck.org> wrote:
>
> 1) Can I GPL my Clojure project?
> 2) Can I GPL my Clojure project that also uses clojure-contrib?
Yes to both of those. They use the same license - the Eclipse Public
License. So the answers will be the same in all cases.
In particular, FLOSS license derive their power from copyright. Until
you start making *copies* of things that are covered by them, they
don't apply. Your Clojure code only has your copyright on it, not
anyone elses. So you can license and distribute your code however you
please.
> 3) Can I ship clojure.jar (and clojure-contrib.jar) with my GPL app?
Yes. The mere act of including GPL'ed software on the media doesn't
cause create a derived work, so they can have distinct licenses. For
example, BSD-licensed systems regularly include GNU sources and
binaries in the distribution (usually distinguished so commercial
vendors can easily create GPL-free distributions).
> 4) Can I AOT clojure-contrib.jar (or parts of it) and ship the
> generated classes with my GPL app?
If I understand the AOT process correctly (I'm new to the Java world),
the answer is no. My assumption is that this creates a single jar that
you'd then ship, so the same rules would apply that apply to binaries:
it's a derived work, so you can only ship it by complying with both
the EPL and the GPL, which the FSF says isn't possible (see
http://www.gnu.org/licenses/license-list.html).
And to answer the critical question you didn't ask:
5) Can I distribute a jar file for my Clojure project under the GPL?
No. When you compile your code, code from clojure (and clojure-contrib
if you use it) will be included in the resulting jar file. In
particular, any macros you use will expand in place in your
code. Either of these make it a derived work, so you have to comply
with both licenses, which you can't do.
Possibly you could use the LGPL; this is sort of backwards from it's
intended use, which is to allow binaries built against LPGL'ed
libraries to be distributed without requiring the source to be GPL'ed,
so I'm not sure.
You can, of course, distribute the jar file and sources under
different licenses. Depending on your reasons for wanting to use the
GPL, that may or may not meet your needs.
<mike
--
Mike Meyer <m...@mired.org> http://www.mired.org/consulting.html
Independent Network/Unix/Perforce consultant, email for more information.
O< ascii ribbon campaign - stop html mail - www.asciiribbon.org
On 28 Mrz., 06:55, Mike Meyer <mwm-keyword-googlegroups.
620...@mired.org> wrote:
> And to answer the critical question you didn't ask:
>
> 5) Can I distribute a jar file for my Clojure project under the GPL?
>
> No. When you compile your code, code from clojure (and clojure-contrib
> if you use it) will be included in the resulting jar file. In
> particular, any macros you use will expand in place
this is an important hint at how the GPL was crafted with compiled
languages, esp. C, in mind. The lisp-world has had it's problem with
that.
See, e.g. http://opensource.franz.com/preamble.html and http://www.cliki.net/LGPL
It will be interesting how the licenses will be interpreted in Clojure
where Java and Lisp bump together. The Java-world probably had it's
discussion, too, no?
Cheers,
Stefan
> It will be interesting how the licenses will be interpreted in Clojure
> where Java and Lisp bump together. The Java-world probably had it's
> discussion, too, no?
The "Classpath Exception" is the principal result of this discussion: http://www.gnu.org/software/classpath/license.html
Antony Blakey
--------------------------
CTO, Linkuistics Pty Ltd
Ph: 0438 840 787
Only two things are infinite, the universe and human stupidity, and I'm not sure about the former.
-- Albert Einstein
I think this only matters if you're shipping .class files by way of
AOT. If you ship a jar full of .clj files then you're distributing
before anything is compiled, so the derivation is done by whoever runs
the code. In that case you shouldn't be responsible.
-Phil
The GPL v3 has a specific recommended form for adding "Additional
Permissions", it's also possible if you stick to GPLv2, but you're a
little more on your own when it comes to the proper way of saying
precisely what you intend. See
http://www.gnu.org/licenses/gpl-faq.html#GPLIncompatibleLibs
I also think that it's possible that "clojure.jar" might fall under
the "System Libraries" exception that is built into both GPLv2 and
GPLv3, but I'm no lawyer. I doubt clojure-contrib would.
-- Aaron
> --
> You received this message because you are subscribed to the Google
> Groups "Clojure" group.
> To post to this group, send email to clo...@googlegroups.com
> Note that posts from new members are moderated - please be patient with your first post.
> To unsubscribe from this group, send email to
> clojure+u...@googlegroups.com
> For more options, visit this group at
> http://groups.google.com/group/clojure?hl=en
>
> To unsubscribe from this group, send email to clojure+unsubscribegooglegroups.com or reply to this email with the words "REMOVE ME" as the subject.
>
This is the only correct answer to the OP's question.
Don't take legal advice from random people on a newsgroup.
On Mon, 29 Mar 2010 17:36:42 -0400 Aaron Cohen <reml...@gmail.com> wrote:
> On Mon, Mar 29, 2010 at 5:24 PM, Phil Hagelberg <ph...@hagelb.org> wrote:
> > On Sat, Mar 27, 2010 at 9:55 PM, Mike Meyer
> > <mwm-keyword-goo...@mired.org> wrote:
> >> 5) Can I distribute a jar file for my Clojure project under the GPL?
> >>
> >> No. When you compile your code, code from clojure (and clojure-contrib
> >> if you use it) will be included in the resulting jar file. In
> >> particular, any macros you use will expand in place in your
> >> code. Either of these make it a derived work, so you have to comply
> >> with both licenses, which you can't do.
> > I think this only matters if you're shipping .class files by way of
> > AOT. If you ship a jar full of .clj files then you're distributing
> > before anything is compiled, so the derivation is done by whoever runs
> > the code. In that case you shouldn't be responsible.
Yup, that would work. If your jar file only contains your own code,
then your license is the only one that needs apply. As I said, I'm new
to java; I still think "shared library" when I hear "jar file" -
apparently incorrectly.
> If you're distributing the jar file you own copyright to it and you
> can grant any kind of permissions you want. So you may need to grant
> your user's explicit permission to link your code against specific
> jars (such as Clojure and Clojure-Contrib), but it's hardly
> impossible.
Well, you own *a* copyright to it. However, if it includes any other
works, then the copyright holder for those works *also* owns a
copyright to it. In which case, you're only allowed to distribute it
if all copyright holders agree, which for things covered by floss
licenses means the licenses are compatible.
If you compiled clojure code to put into the jar, then you've
incorporated parts of any macros you use.
> The GPL v3 has a specific recommended form for adding "Additional
> Permissions", it's also possible if you stick to GPLv2, but you're a
> little more on your own when it comes to the proper way of saying
> precisely what you intend. See
> http://www.gnu.org/licenses/gpl-faq.html#GPLIncompatibleLibs
Always possible.
> I also think that it's possible that "clojure.jar" might fall under
> the "System Libraries" exception that is built into both GPLv2 and
> GPLv3, but I'm no lawyer. I doubt clojure-contrib would.
I suspect functions would, but macros wouldn't. The bison templates
weren't (until they moved to LGPL), even though they just provided
APIs that matched awk APIs (and prevented me from distributing an
otherwise free stat package around '98...). With Macros, like the
template, actual bits of the authors code *must* be compiled into the
derivative product, whereas libraries could - at least in
theory - be replaced by a different implementation of the same library
without ever having access to any source but the caller.