Oddly enough, I couldn't find either of these files in the Django SVN
repository. There's a license.txt, and a LICENSE.txt, but those are
for subsets of the project (dispatch and utils/simplejson
respectivley). Maybe they merge these into the tarballs?
> 2. Same as #1, but keep the Apache 2.0 license. The advantage here is
> we don't have to do a license shift, but it's not the way prescribed
> in the
> Apache license for its use.
>
> 3. Keep copyright messages in each file, but leave all copyright with
> Casey, and include an AUTHORS file for acknowledgment of the work
> of others.
>
I don't like options 2 (if we're going to use the Apache 2.0 license,
not following the prescribed means of applying the license doesn't
make sense to me -- yeah, I know, I've let it slide for 9 months now)
or 3 (assuming the project grows, having an explicit copyright
statement in each file that only mentions Casey will make less and
less sense, especially as brand new files are added).
I can almost live with option 1 (assuming we're talking about the
Modified BSD License at http://www.xfree86.org/3.3.6/COPYRIGHT2.html#5
which is GPL-compatible), and am okay with relicensing my
contributions under the BSD license. I'm not okay with a copyright
statement that only lists one person, however.
The definitive statement from that discussion thread that you cited is
ridiculous:
"""We don't; my conversations with the company lawyers seemed to
indicate that you're implicitly assigning copyright simply by
submitting code to an OSS project."""
Either the company lawyers are complete and utter idiots, or (more
likely) the telephone game is in effect and Jacob is confusing
copyright with a grant of license. I can understand the argument that
by submitting code to an OSS project, you are agreeing to place that
code under the project's license - but it would be a very different
and very difficult argument to make that you are also assigning your
copyright to the project.
In a like vein, when I post messages to a public mailing list, I
implicitly grant permission for others to quote my (probably
completely incorrect) statements. But I still retain copyright over
the content of my messages: if someone was foolish enough to reproduce
my statements in an article and claim that they were the author of
those statements, they would be liable for infringement. This is why
closed-access journals have lengthy legal forms for you to sign when
they insist on you assigning copyright to the publisher; they need to
cover their butts in a most serious fashion.
Sorry. I hate talking about copyright and licensing, but I apparently
can't stop myself.
So -- let's say we go with option 1, with the Modified BSD license.
How do we handle this clause?
"""1. Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer."""
The "above copyright notice" in ye olde XFree86 is:
"""XFree86 code without an explicit copyright is covered by the
following copyright:
Copyright (C) 1994-1999 The XFree86 Project, Inc. All Rights Reserved."""
So.... we're back at needing some explicit copyright statements again,
or else that section of the license makes no sense. Your suggestion
was to just list Casey as copyright owner, and I'm not comfortable
with that. So my counter-proposal is that we prepend the LICENSE with
a COPYRIGHT NOTICE section that contains a list of explicit copyright
statements, like:
Copyright (C) 2007 Casey Durfee
Copyright (C) 2007 Gabriel Sean Farrell
Copyright (C) 2007 Dan Scott
I think that should meet our needs, avoid a suggestion that copyright
is being assigned to just a single person, drop us back down to a
single LICENSE file for the whole project, and reduce DRY concerns. I
think.
--
Dan Scott
Laurentian University
Ah - I'm just an idiot, as I checked out /trunk/django; I guess the
AUTHORS and LICENSE files are in the trunk directory.
Got my baggy pants on.
That's what I'm proposing, yessir. I'm elated & relieved to hear that
you like it.
Let's see what others have to say; if there are no objections by, say,
Wednesday, let's go ahead and implement this. We'll need an explicit
okay from Mike B. and Dan C. to relicense their contributed code under
the Modified BSD license, and it would be good to have the same from
Casey (although we could always operate under the "do whatever you
want with it" quasi-license he granted me via personal email, it would
be better for the project to have an explicit public "ok" and it's
always nice to ask).
On 10/12/2007, Gabriel Sean Farrell <gsf...@gmail.com> wrote:
>
> On Dec 10, 11:30 am, "Dan Scott" < deni...@gmail.com> wrote:
> > On 10/12/2007, Gabriel Sean Farrell <gsf...@gmail.com> wrote:
> > <snip>
> >
> > > 1. Adopt the Django licensing setup pretty much directly. Include
> > > LICENSE and AUTHORS files, with "Copyright 2007 Casey Durfee" in
> > > the LICENSE file, and even move to the BSD-style license they've used.
> >
> > Oddly enough, I couldn't find either of these files in the Django SVN
> > repository. There's a license.txt, and a LICENSE.txt, but those are
> > for subsets of the project (dispatch and utils/simplejson
> > respectivley). Maybe they merge these into the tarballs?
> >
>
> Are you sure, Dan? My copy of the Django trunk matches
> http://code.djangoproject.com/browser/django/trunk , where the AUTHORS
> In that discussion, dbs convinced Dan Chudnov (dchud) and I that the
> simplest way to deal with additional authors is to add names to the
> copyright for each file other authors significantly modify.
Er, for the record, I'm not convinced. I just don't think this is
really my choice, so I'll go along happily with any viable plan, or
grin and bear it otherwise.
> 3. Keep copyright messages in each file, but leave all copyright with
> Casey, and include an AUTHORS file for acknowledgment of the work
> of others.
Fwiw, this is the only plan that sounds viable to me. :) Unless I'm
grossly mistaken, this is what the overwhelming majority of projects
I've seen tend to do, and it seems to work, even years after the
original copyright holder has stopped being involved in any way.
That's exactly what copyleft is for - to allow/require us to retain
the original copyright and still have the explicit right to
redistribute with modifications.
It doesn't solve the problem of copyright assignment, but in the short
term, we can punt on that, imho, even though that's a terrible idea.
There's some text in the Apache 2.0 license about implicit assignment,
right? If so, and that's thorough enough to hold up in court, I'd
vote for that. i.e. "#3 with Apache 2.0 to cover our behinds on the
assignment issue".
But, that's just my opinion... I'll go along with the rest of the
group on whatever consensus arises.
Right, the lack of convincing (convincement? convinciness?) was clear
enough to me.
> > 3. Keep copyright messages in each file, but leave all copyright with
> > Casey, and include an AUTHORS file for acknowledgment of the work
> > of others.
>
> Fwiw, this is the only plan that sounds viable to me. :) Unless I'm
> grossly mistaken, this is what the overwhelming majority of projects
> I've seen tend to do, and it seems to work, even years after the
> original copyright holder has stopped being involved in any way.
> That's exactly what copyleft is for - to allow/require us to retain
> the original copyright and still have the explicit right to
> redistribute with modifications.
Well, I suppose I'm a pedant, and am scarred from having to work with
lawyers on open source work in a large corporation, but I'm scarred
enough to be convinced that the overwhelming majority of projects
probably do things "wrong" from a legal perspective. Most people don't
want to be bothered with licensing distractions, and I'm with them in
spirit - but I have this thing about doing things right (talk to my
wife about how fun life around the Scott household can be at times).
Both the GPL 2 and the Apache 2.0 license, for example, contain very
clear instructions that describe how to apply the license (involving
headers at the top of each file), yet many projects fail to carry out
these steps.
Erm, open source licenses in general are about allowing original
developers to retain copyright while granting the right (a license) to
redistribute with modifications. Copyleft licenses are a
specialization of open source license that requires any code that
incorporates the copylefted code to also adopt a copyleft-compatible
license. Think "free as in take this code and run with it"
(non-copyleft) vs. "free as in you can't lock away code derived from
this project from us" (copyleft).
> It doesn't solve the problem of copyright assignment, but in the short
> term, we can punt on that, imho, even though that's a terrible idea.
Heh, we punted on it for 9 months already. Precedent!
> There's some text in the Apache 2.0 license about implicit assignment,
> right? If so, and that's thorough enough to hold up in court, I'd
> vote for that. i.e. "#3 with Apache 2.0 to cover our behinds on the
> assignment issue".
Nope, there is not text in the Apache 2.0 license about copyright
assignment. There is clause 2 "Grant of Copyright License" which is a
significantly different thing; clause 5 "Submission of Contributions"
states that any contributions are understood to be contributed under
the terms and conditions of the Apache 2.0 license.
The Apache 2.0 license is a pretty quick read at
http://apache.org/licenses/LICENSE-2.0.html - see, for example, clause
4b on redistribution:
"You must cause any modified files to carry prominent notices stating
that You changed the files; and"
It's arguable that this clause only applies to an entity
redistributing the code outside of the project itself, but it's clear
that the aggregation of authorship is intended. For another quote on
this subject, from Havoc Pennington on copyright statements in Gnome
Foundation code:
"""btw a good habit everyone should try to have is, when you modify a
file add your name and date to the copyright list at the top. When
submitting or reviewing a patch, should check for this.
I know I often forget it when I review and submit patches, but it's
always correct and best to do this.
People sometimes feel shy about this but they should not - it's just a
statement of fact. If you wrote some code in the file you (or your
employer) will own the copyright, until/unless you sign a contract
relaying it elsewhere. So adding your name to the top is a statement
of this factual situation."""
(http://mail.gnome.org/archives/foundation-list/2007-August/msg00008.html)
> But, that's just my opinion... I'll go along with the rest of the
> group on whatever consensus arises.
I do think the list of copyright statements followed by the Modified
BSD license is the simplest way to both express the true copyright
over the code while allowing the broadest use of the code. The
Modified BSD is GPL-compatible -
http://www.gnu.org/licenses/license-list.html#ModifiedBSD - but is not
a copyleft license. So as long as we're okay with a commercial company
taking this code, putting some more lipstick on it, and selling it for
millions of dollars without returning those modifications to the
project, the Modified BSD is what we want.
If we want to ensure that any modifications by a person or company
that redistributes the code are returned to the project, then a GPL
license will be the best option (but we will also have to add headers
to each source file). If we want to ensure that any modification by a
person or company that uses the code in a hosted application gets
returned to the project, then I think the GNU Affero GPL v3 license is
the best option ... but I'm getting out of my depth there.
Me - I just want people to feel free to use the code, learn from it,
improve it, and hopefully return those contributions to the project,
and I would like the terms under which they can do this as clear as
possible. I wouldn't be comfortable giving the false impression that I
have assigned my copyright to someone else, and don't really want to
assign my copyright to anyone else.
I really go along with what you decide.
Thank for this, Gabe. I think that helps bring the discussion full
circle, back to the basics of what license do we want and how are we
going to apply it. I hate to do this, but for full clarity - for GPL
and AGPL, I assume we're talking GPL v3 and AGPL v3.
My ranking is similar to yours: 3, 4, 1, 2.
Yeah, surprise, given that I chose Apache 2.0 initially - but in the
course of these discussions, I learned that the FSF believes that the
Apache License 2.0 is _not_ compatible with GPL v2 - but is compatible
with GPL v3.