license and attribution
I'm a chronic code copier, I know. But I just realized that I have made a few mistakes moving code around in our codebase. I moved PointToCurvilignPosition from libnrtext/Layout-TNG-OutIter.cpp to livarot/Path.cpp as was indicated in the orignial comment, "this function really belongs to Path. I'll probably move it there eventually, hence the Path-esque coding style." In doing this I forgot to copy the original copyright in the code. But much worse, I just realised that the files that I moved this code between are under different licenses. I moved a GPLed function into a PD file. This cannot happen. The possibility for other accidents in our codebase seems huge. I don't think PD and GPL can coexist well in a codebase that desires so much refactoring. Can we and should we place the PD files under the GPL?
As for attribution, what is proper and customary? I suppose I need to chase down the orignial author through the commit logs any time I want to move a function or copy code. Very often people alter code without adding a copyright notice. I haven't added a notice to any of the files I have edited. Am I endangering people of doing the same copying without attribution to me? When should I attribute myself? Right now the act of adding my name to a source file seems rather proud to me. And right now I can't imagine ill will tward someone copying my code without attribution, but as I put more and more sweat and tears into the code that may become possible.
Aaron Spike
On Sun, May 14, 2006 at 08:17:23AM -0500, Aaron Spike wrote:
I'm a chronic code copier, I know. But I just realized that I have made a few mistakes moving code around in our codebase. I moved PointToCurvilignPosition from libnrtext/Layout-TNG-OutIter.cpp to livarot/Path.cpp as was indicated in the orignial comment, "this function really belongs to Path. I'll probably move it there eventually, hence the Path-esque coding style." In doing this I forgot to copy the original copyright in the code. But much worse, I just realised that the files that I moved this code between are under different licenses. I moved a GPLed function into a PD file. This cannot happen. The possibility for other accidents in our codebase seems huge. I don't think PD and GPL can coexist well in a codebase that desires so much refactoring. Can we and should we place the PD files under the GPL?
This seems like a logical approach. I don't know of a particular reason why PD would be preferred for inkscape code. Perhaps putting those PD files under LGPL+GPL would address any possible needs for future use in being linked with non-GPL'd code.
As for attribution, what is proper and customary? I suppose I need to chase down the orignial author through the commit logs any time I want to move a function or copy code. Very often people alter code without adding a copyright notice. I haven't added a notice to any of the files I have edited. Am I endangering people of doing the same copying without attribution to me? When should I attribute myself? Right now the act of adding my name to a source file seems rather proud to me. And right now I can't imagine ill will tward someone copying my code without attribution, but as I put more and more sweat and tears into the code that may become possible.
Here is the way I like to approach thinking of attribution. Ultimately, the true purpose of establishing a copyright on a source code file is so that if that code needs to be defended in court, it would be clear who would be the person defending it. In other words, rather than being merely an act of proudness, placing your name in the attribution of a source code file in essense is saying, "I will defend the freedom of this bit of code."
Thus, from this thinking, it's probably not important to attribute every single minor change to a file. But any major architectural changes probably deserve it. E.g., if you flesh out a code file by significantly increasing it, I'd imagine it'd be appropriate to add your name to the copyright.
Anyway, those are just my non-lawyer thoughts on the issue. Maybe this view will help address some of the worries.
Bryce
# from Bryce Harrington # on Sunday 14 May 2006 11:24 am:
On Sun, May 14, 2006 at 08:17:23AM -0500, Aaron Spike wrote:
Can we and should we place the PD files under the GPL?
This seems like a logical approach. I don't know of a particular reason why PD would be preferred for inkscape code. Perhaps putting those PD files under LGPL+GPL would address any possible needs for future use in being linked with non-GPL'd code.
IMO, you shouldn't have anything labeled PD in your codebase. That's asking for trouble. You can mark it as "derived from PD" with a link/reference to the original, but better slap a GPL license on it before checking-in to prevent anyone from inadvertently breaking the GPL.
LGPL files are going to cause the same trouble as PD files. You can't take GPL code and put it in an LGPL file without consent of the copyright holder(s). Thus, while GPL may not be viral in the usage sense, refactoring is going to cause it to be viral if you're restructuring a mixed codebase and not paying *very* close attention to the notice at the top of each file. If you really want to have LGPL portions (and the current attribution/history guarantees that this is legal), I strongly recommend a separate repository (and/or pre-commit hook to enforce this (though that's a tricky open-ended-text-search problem in itself.)) Given that a revision is immutable, any inadvertent checkin puts the committer in perpetual violation until you "svnadmin dump" and scrub the repo (and I think I'm being generous here -- a lawyer might not be so nice as to let you off the hook at that.)
--Eric
Bryce Harrington wrote:
On Sun, May 14, 2006 at 08:17:23AM -0500, Aaron Spike wrote:
I'm a chronic code copier, I know. But I just realized that I have made a few mistakes moving code around in our codebase. I moved PointToCurvilignPosition from libnrtext/Layout-TNG-OutIter.cpp to livarot/Path.cpp as was indicated in the orignial comment, "this function really belongs to Path. I'll probably move it there eventually, hence the Path-esque coding style." In doing this I forgot to copy the original copyright in the code. But much worse, I just realised that the files that I moved this code between are under different licenses. I moved a GPLed function into a PD file. This cannot happen. The possibility for other accidents in our codebase seems huge. I don't think PD and GPL can coexist well in a codebase that desires so much refactoring. Can we and should we place the PD files under the GPL?
This seems like a logical approach. I don't know of a particular reason why PD would be preferred for inkscape code. Perhaps putting those PD files under LGPL+GPL would address any possible needs for future use in being linked with non-GPL'd code.
This would work OK, I think. You can do just about anything you want with PD stuff. But you would need to have an explanation that says something like "this particular copy that we obtained as PD, we refactor and release as GPL." This would avoid implying that all instances of this PD code anywhere are now GPL, which of course is impossible and invalid.
bob
On Sun, 2006-05-14 at 08:17 -0500, Aaron Spike wrote:
Am I endangering people of doing the same copying without attribution to me? When should I attribute myself? Right now the act of adding my name to a source file seems rather proud to me. And right now I can't imagine ill will tward someone copying my code without attribution, but as I put more and more sweat and tears into the code that may become possible.
Aaron, I know this thread has since died, but I want you to know you have my full permission to move any of my code from anywhere in the Inkscape codebase to anywhere else in the codebase as long as you make Inkscape better in the process :)
--Ted
participants (5)
-
Aaron Spike
-
Bob Jamison
-
Bryce Harrington
-
Eric Wilhelm
-
Ted Gould