Sorry, the topic gets boring but I added a license header to a C++ sourcefile (cinelerra/cache.C) I edited which reads:
/* Copyright (C) Heroine Virtual Ltd. 1996-2006, Jack Crossfire <[EMAIL PROTECTED]> Copyright (C) CinelerraCV 2007, Christian Thaeter <[EMAIL PROTECTED]> et al. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ This file is actually mostly rewritten by me so the 'et al.' is only a safety measure, but for other files I don't want to figure who else touched them manually. I'll go on to add such to all files where I apply non-tivial edits, any objections? If anyone feels left out in some file, please notify me, I'll add you. For future I would suggest the following (already sketched that on irc): Write a smart script which can deduce licenses by: - checking the type of file, we only handle text files, binary files need exception rules - grepping for copyright/license information in the file - checking if the directory where the file is has a license file - check against a manually maintained exception list if the script can NOT safely figure out the license (ex: detected a copyright note but no license, ...) then it should notify the user for human inspection for adding it to the exception list after manual review. if the script can safely figure out under which license a file falls then use the SVN history to figure out who edited it when and in which revision. We need a list associating revisions with people for exceptional cases, it could take file patterns(or regex) like this example: # for all revisions all fonts belong to 'ms' *: *.ttf:ms # *:hv denotes a upstream merge, # foo/bar.C:j6t was also edited by Johannes etc. r1234: *:hv foo/bar.C:j6t ... next we need an association of user and the license they usually use ms FONTSEULA hv GPL j6t GPL maybe also a syntax for exceptional licenses foo/barf.C:j6t!BSD if the script detects a collision it should notify this for fixing in the exclusion list. having all this information (date/person) we can automatically construct a copyright header including year('s) and person. This is only a sketch, such a script should have some more logic and should be applied in a 'dry-run' while developed. At least I think this approach is much easier than manually reviewing the history of 5000+ files. Further the development and history of this script and its exception list will be tracked in revision control this gives some open and reviewable process and I also believe this way is far less prone of human errors which will happen on a manual review. Finally we should put a big DISCLAIMER into the sourcetree which explains this process and note that anyone who spots a problem shall notify us and it will be fixed. So, now the bad news: When someone else starts it, I will help to work out the details. But I will not code it! I will not participate in a discussion if we could/should do it this way, just do it or leave it. Christian _______________________________________________ Cinelerra mailing list Cinelerra@skolelinux.no https://init.linpro.no/mailman/skolelinux.no/listinfo/cinelerra