My (Pugs) Code is not Public Domain

chromatic on 2006-04-23T19:47:47

Audrey recently decided to license Pugs under the SQLite non-license. As I understand it, this is effectively a public domain license, where the author disclaims copyright. (At least, this is my understanding of Audrey's intent.)

I have contributed code to Pugs in at least four languages (Perl 5, Perl 6, Haskell, and make). I contributed that code under the existing license -- the combination of the Artistic License and the GPL v2. I did not contribute that code to the public domain and I do not intend to.

I support the right of any author of any creative work to license that work as he or she sees fit. That includes the public domain. Yet that also means that I believe I have the right not to relicense the code I contributed.

So, I don't. All code I have contributed to Pugs remains under the Artistic/GPL combination and I retain the copyright. If the Pugs project would like to use that code or redistribute that code, it may, but not under any other license terms.

It should be a small project for an interested Pugs hacker to find all of my contributions and remove or reimplement them -- at least a smaller project than convincing me to change the license. If that is what the members of the Pugs project want to do, I support their efforts.

(Please direct all questions about the Artistic License v. 2, its purpose, its goals, and its practical effects to the Perl 6 Licenses mailing list. I do not have any desire to discuss them here. Please note that I am also explicitly not making a statement of any sort about Pugs beyond the licensing of the code I created and have contributed.)


Oh my ...

Ovid on 2006-04-23T20:34:44

I have to admit that I'm not comfortable with this decision at all, but I don't know what legal implications are involved. Does this mean I've just given up copyright to everthing I contributed? That doesn't sound reasonable, but I don't necessarily know what problems this may cause. Can you elaborate?

Audrey wrote:

The last thing Perl needs is the appearance of licensing conflicts or landgrabs by TPF. Imagine the uproar when people discover that TPF intends Perl6 to be incompatible with the LGPL!

I know she only wrote "the appearance ... of landgrabs by TPF", but I still find that a bit offensive.

Re:Oh my ...

chromatic on 2006-04-23T23:09:57

Does this mean I've just given up copyright to everthing I contributed?

I don't believe so. I believe you explicitly have to relicense your contributions (or more accurately, release them into the public domain). It would be very rude of a project to do this with your contributions without your permission and I don't believe the Pugs project is doing this.

If you have contributed code to Pugs (and I know that Ovid has, so this you is a general, inspecific pronoun), I recommend considering the implications of this licence change. It may suit your purposes to allow relicensing and that's fine -- it just may be something not to do lightly.

Re:Oh my ...

Aristotle on 2006-04-24T01:41:58

Does this mean I’ve just given up copyright to everthing I contributed?

Only if you assigned the copyright to Audrey or some legal entity like The Pugs Project, or if you have granted permission to do such a thing in the terms of licence under which the Pugs project obtained a copy of your work.

Audrey wrote: […] I know she only wrote “the appearance … of landgrabs by TPF”, but I still find that a bit offensive.

Careful: it was someone called Garrett who wrote that, not Audrey.

Re:Oh my ...

Ovid on 2006-04-24T03:28:30

Oops again. Sigh. It's been a long day :(

Re:Oh my ...

audreyt on 2006-04-24T16:04:57

Ovid: I'm truly sorry for causing the confusion in the first place, though I really did not agree with Garrett's views, and had publicly replied as such.

Can you check my clarification entry and let me know if there's anything you'd like to see clarified further?

Thanks in advance, and apologies again for my inability of communication...

Oops

Ovid on 2006-04-23T20:36:26

I see that you mentioned you don't desire to discuss these issues here. My apologies! Consider my questions rhetorical.

Re:Oops

Aristotle on 2006-04-24T01:43:56

I think that was merely in reference to discussion about the Artistic License v2, not about the Pugs move or chromatic’s reaction to it; otherwise he should just have closed comments on this entry.

If I’m wrong, I hope he sets the record straight.

GPL?

jesse on 2006-04-24T00:57:41

I thought that pugs was previously under Artistic 2.0b5, not Artistic+GPL.

Re Ovid.

audreyt on 2006-04-24T02:17:38

Gah, I didn't write that offensive comment; in fact I explicitly wrote another entry to disagree with the offense.

Re:Re Ovid.

Ovid on 2006-04-24T18:12:04

I apologize for misreading that. If anyone attributes it to you, that's my fault. I hope it doesn't cause you any problems :(

Re chromatic.

audreyt on 2006-04-24T02:31:14

So, the relicensing has two parts:

The first part is directly addressing Allison's worry that asserting a less-restrictve "compilation copyright" than something under the source tree, will invite legal troubles. I responded by disclaiming my compilation copyright.

The second part is my wish to change the src/ tree, which comprises the source for "pugs" executable, to public domain status, by moving all third-party parts out to a separate place (third-party/), and rewriting parts of the contributions where the contributor disagrees with public domainness.

All contributions outside the src/ tree remains unaffected.

I thank your contribution in parameter binding and object finalization. Due to the Capture unification and disappearance of References, they need to be rewritten anyway. I regret that you will not participate in the rewrite.

Re chromatic again...

audreyt on 2006-04-24T03:36:38

Just as a curiousity, would you be willing to accept the MIT license, which is the licensing-world equivalent of Public Domain?

Re:Re chromatic again...

chromatic on 2006-04-24T05:03:01

For code in src/, code related to building Pugs (such as a Pugs-specific test harness, which I can't remember if I patched), and documentation of Pugs-specific information, I can accept the MIT or the modified BSD license. (I don't remember exactly what I patched.)

For items outside of either situation, I need to consider the issue in more detail. Certainly you may consider to distribute these items under the original license.

Re:Re chromatic again...

audreyt on 2006-04-24T05:40:42

Since PublicDomain is equivalent with MIT (except that some laywers think MIT license can be revoked by the author), what motivates you to think MIT is acceptable and PublicDomain not? Note that MIT doesn't require attribution as well.

I ask because I would very much value your commits under MIT license, which is less restrictive (and hence can be morphed into) every other open-source license.

To me, if it is merely a "public domain is vague in the US" issue that makes US people wary of it, I think MIT license is fine as well.

Re:Re chromatic again...

ziggy on 2006-04-24T15:00:01

To me, if it is merely a "public domain is vague in the US" issue that makes US people wary of it, I think MIT license is fine as well.

"Public Domain" is an odd concept, valid within the US, but invalid pretty much everywhere else. Assignment to the public domain means that the author disclaims copyright, meaning that (among other things) anyone can pick up the material and claim it as their own. As a copyright statement, the MIT License claims copyright, which means that anyone who claims the work as their own is plagiarizing. There are other differences, but that is a significant one. In France, for example, copyright is innate to the creator of a work, and cannot be disclaimed.

Public Domain works very well in a small number of well defined instances. Anything works produced by the US Federal Government are de facto in the Public Domain; if US Taxpayers have paid to produce something, like the National Strategy for Pandemic Influenza, there's no reason why they should pay again for that material. (The 9/11 Commission Report is a special case; it was generally sold in paperback for $10/copy, which is dirt cheap. That simply covered printing and distribution costs, not the cost to produce the report. The report itself is available free of charge.)

Public Domain licensing for SQLite is very weird, and unique within open source. There is some mention of SQLite being used on some defense-related projects, which would imply that it could have been procured with federal funds, and thus (possibly) subject to the rule for assignment to the public domain (a rule followed more in the breach than in the observance). But that is speculation on my part. In practice, we all tend to use and cite SQLite as if Richard Hipp released it under an MIT-style license, which makes the discussion of Public Domain vs. MIT a little murky.

Re:Re chromatic again...

audreyt on 2006-04-24T16:00:14

Ziggy: Thank-you for the informative survey. Under Taiwan law, it is easy to disclaim the property part of the copyright, and the innate creatorship part cannot be disclaimed. Discaiming the property part makes it under the public domain.

However, if public-domainess causes people discomfort, and MIT license is preferred instead, I'm entirely willing to place the src/ tree under the MIT license instead.

Also re SQLite: SQLite 1.0 was in GPL; it's during the 2.0 development that it was put under the public domain. There was no mention of U.S. government in the commit log, but I didn't know much else...

programmers are not lawyers

dagolden on 2006-04-24T11:14:04

This seems like the sort of thing for which TPF should invest some money in having a lawyer address the concerns/desires of the major Perl6/Pugs/etc contributors.

The last thing we need right now is a licensing debate to distract, split or otherwise interfere with progress that's being made through the swarm technique.

Re:programmers are not lawyers

chromatic on 2006-04-24T14:41:25

TPF has a lawyer. TPF two years talking to interested parties about the license. There's a mailing list for discussing the new Artistic License. I even linked to it in my post.

Re:programmers are not lawyers

dagolden on 2006-04-24T16:31:07

I really meant in the context of this current debate about Pugs et al., not the new Artistic License. The debate about the right way to ensure contributors are happy with the licensing shouldn't be done on the basis of non-experts opining on it on use.perl, blogs and #irc of choice. In my opinion, switching licenses (to Artistic 2.0 or to public domain) shouldn't be done (a) hastily or (b) mid-stream without a good deal of consultation with expert advice.

Among other things, we wouldn't want to feed the FUD about open source projects and their licenses. That's what I want TPF to prevent, not encourage.

Re:programmers are not lawyers

audreyt on 2006-04-24T17:08:09

dagolden: TPF has suggested a lawyer for me to talk to; previously I have also consulted legal opinions of Taiwan laywers.

The recent disclaiming-of-compilation-copyright and third-party-code cleanup was prompted by TPF's suggestion of possibly illegal use of Artistic license for the Pugs distribution (namely, contributed LGPL and GPL libraries in the source tree); we are actively discussing to find an optimal resolution for all involved.

Please also note that the intent to switch to MIT license or SQLite (non)license does not affect the entire Pugs project, only the internal code that makes up the "pugs" executable. Granted it's a fairly major change, but it will not go into effect until weeks later in the next release. Meanwhile, I'll make sure that all contributors gets proper notification and explanation.

Apology to chromatic.

audreyt on 2006-04-24T16:13:01

chromatic: I did not realize until an hour ago, thanks to Limbic_Region's reminder, that it is possible that the "the src/ tree" in my journal entries was likely to be parsed as "the entire source tree".

I think I owe Pugs contributors in general, and you in particular, for having conveyed this intent-of-change very badly.

Also, by reading your journal entry, it did not occur to me until later that it is the public domain implementation that you are opposed to, instead of my maximum unrestricted reuse intent. So, apologies for proceeding the rewrite too soon before discussing this matter in more detail with you.

Can you check my clarification entry and let me know if there's anything you'd like to see clarified further?

If you are willing to contribute, under the MIT license, to src/ tree again -- especially next week when we completed the switch to use Perl 6 Rules instead of Parsec for the parsing and Perl 6 itself for first-stage semantic analysis -- please say so, and I will change the SQLite terms to MIT-license terms to comply with your wish.

You are too valuable a contributor to lose, especially now we are inching closing to self-hosting. :-)

Thanks in advance, and apologies again for my inability of communication...

Re:Apology to chromatic.

mrjoltcola on 2006-04-26T06:15:12

Audrey, You are a free-spirited, brilliant, good-natured guy. I feel sorry that the GPL ideology makes things so complicated that you have to apologize for something. After Parrot, I chose not to participate in anything that smells like GPL ever again. I like the BSD or plain Public Domain style licenses just fine for stuff I want to give to the world, otherwise, if I care so much about how someone might use a piece of my code, I keep it private in the first place.

Re:Apology to chromatic.

audreyt on 2006-04-26T06:35:38

Thanks for your kind support -- it's true that I'm a free-spirited girl, which sometimes can upset people through lack of detailed explanation.

I'm glad that this particular issue is resolved now... Though I'm of the copycenter inclination for my fun projects, I did use copyleft in the past when I have a industrial interest in the code -- i.e. when I worry about proprietary competitors, and I think TPF is wise (and right) to worry about that. :-)

Re:Apology to chromatic.

chromatic on 2006-04-26T07:00:38

feel sorry that the GPL ideology makes things so complicated that you have to apologize for something.

I don't know where you picked up that impression, but if it's from what I've written, I have done a very poor job of explaining my reservations.

Re:Apology to chromatic.

mrjoltcola on 2006-04-26T22:41:54

I don't know where you picked up that impression, but if it's from what I've written, I have done a very poor job of explaining my reservations.

Your original post came across to me as a passive disagreement with Audrey's choice to go public domain, and an ideological stance purely for the sake of supporting your choice of license. I completely respect and admire that, if it was your intent, but I wonder sometimes if it gets in the way of folks just doing the polite, reasonable thing, which is to go along with the leader of a distribution in their choice of copyright.

Now, I made an assumption from what you wrote that your contributions were minor, so that is why I assumed you were just taking the stance to get your point across, since you seemed to already know that your GPL/Artistic code would be replaced as a result of your stance.

The only reason I'm interested in this particular issue is because I've been a major contributor to Linux and Parrot, even though I prefered the BSD license. What I found is, the GPL may protect source code, but it does not protect, or preserve professionalism or manners in the community.

With Parrot, the case was: I wrote tens of thousands of lines of code, and major, core functionality, including the PIR compiler, which was originally submitted as compilers/imcc, and not under GPL copyright. This did not conflict with Parrot because everything under compilers/* was more or less the third party sandbox. While I was on vacation, someone else on the Parrot team decided to integrate IMCC directly into Parrot without asking me, which muddied the seperation. At the same time, certain people decided to author an O'Reilly book, with a chapter on MY compiler, and never once was I notified, or asked to contribute, even though at the time I was the 2nd leading contributor to Dan (this was before Leo really got going). At that point, I honestly considered taking the similar stance that you did, but for a different reason. Instead, I decided to just take the polite way out and leave it be because to force my parts of Parrot to be replaced (IO, subs, continuations, PIR, the list goes on) would be petty and detrimental to the project.

I guess I'm saying, "Good for both of you that it worked out, but its too bad we can't all just write FREE SOFTWARE and share it and get the particular fulfillment and reciprocation that each of us wants, without people or companies unfairly benefiting from the work we did." In my case, it was only the credit and participation in a published book that I wanted, not money or guarantee that my code would be copylefted. Call it egotistical if you will, but I enjoy being able to tell friends and customers, "Hey, I wrote that..." If some things had been done a little differently, I'd already be on imcc v3 by now, and the community would have benefited. Instead, I never even checked imccv2 into SVN. Now that I look back, my passive, silent stance was petty and selfish and I regret it, because Parrot is stagnate, but its too late now.

So, in closing, regarding your "stand" on your code contributions, you have the benefit of being a well-known personality in the Perl community, so you can pull it off (assuming that was your intent). I could not, I got trampled instead.

Re:Apology to chromatic.

chromatic on 2006-04-27T00:44:35

So, in closing, regarding your "stand" on your code contributions, you have the benefit of being a well-known personality in the Perl community, so you can pull it off (assuming that was your intent).

I see. I disagree, but I can see the logic in that.

... I wonder sometimes if it gets in the way of folks just doing the polite, reasonable thing, which is to go along with the leader of a distribution in their choice of copyright.

Conversely, the polite and reasonable thing for the leader of a distribution is to ask contributors if changing the rules after receiving contributions is acceptable. Respect and politeness goes both ways. That's all.

It was a mistake for Parrot to be unclear about the eventual license and contribution agreements from the start. I'm sorry the situation turned out the way it did.

I like to think that if you'd taken a similar stand when IMCC merged into Parrot proper that I would have supported you. Certainly I do support your right to do so now. (To be very clear to everyone reading this, this is just my personal opinion and not any official opinion of any project, as I'm not the or even a leader of any project that matters in this situation.)

Re:Apology to chromatic.

audreyt on 2006-04-28T17:37:46

Conversely, the polite and reasonable thing for the leader of a distribution is to ask contributors if changing the rules after receiving contributions is acceptable. Respect and politeness goes both ways. That's all.

Yeah. My wording did give an impression that the move was unilateral, and I'm sorry that things escalated as a result -- which is why I think a public apology was called for. Still, I owe you a drink-of-your-choice at YAPC::NA. :-)