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