Hello everyone,

A word or more about the action plan to deal with the
copyright/licensing issue raised earlier.

The main aim is not relicensing but just to try and get a handle on who
wrote what parts of Lilypond.  So, for each code file, I'm using git
shortlog to get the list of contributors (thanks to Francisco's .mailmap
file this is much simplified) and then using gitk to browse the commit
history of the file.

I'm dividing commits into Tweaks and Contributions.  Tweaks are things
like removing whitespace, changing a version statement, changing the
name of a symbol or function -- small editorial changes in other words.
 Contributions involve addition of a reasonable amount of novel
material.  Following the GNU guidelines at:
http://www.gnu.org/prep/maintain/html_node/Legally-Significant.html#Legally-Significant
I've taken the line that tweaks are not significant for copyright
purposes unless there are a lot of them (i.e. 10+).  So far anyone with
10+ tweaks has also got at least one commit that counts as a
'contribution' anyway.

For each significant contributor (C) I note their earliest and most
recent commit and use that to date their copyright.  In the event a
contributor already has a copyright notice in the file, I take the
earliest starting date of the two.  For tweakers (T) I note the number
of tweaks (in commits).

I'm then entering these details into a Google Docs spreadsheet (which
I'll share with anyone who requests it).  The same spreadsheet also
contains a complete list of contributors (from Francisco's .mailmap) and
a note on whether they support switching the license to GPLv2+ and
whether they are willing to dual-license doc contributions as GPLv2+.

The attached patch for lily/accidental.cc shows one result.  A git
shortlog shows that the contributors are Han-Wen (68 commits), Jan (17),
Joe Neeman (8), and Mats Bengtsson and Neil Puttock (1 each) and Werner
Lemberg (2).  Mats', Neil's and Werner's contributions are all small
tweaks, while Han-Wen, Jan and Joe have all made at least one
significant contribution.  Han-Wen's first patch is dated from 2002, but
the existing copyright notice puts the beginning of his work in 2001; so
I've taken the earlier date, but kept the final date at 2008 with his
last commit.  Jan's commits date from 2002-2009 and Joe's from
2007-2009.  The proposed copyright/licensing notice gives copyright to
all 3 for the appropriate dates, and credits contributors of tweaks and
corrections without declaring copyright for them.

Feedback (most of all from the authors!) on whether this notice is
acceptable would be gratefully received.

The docs are much more difficult to trace than code, with material
having been moved and copied and pasted all over the place.  :-(   But
when the code parts are finished, I'll see what I can do with them.

Best wishes,

    -- Joe
From 848114f18748bb70f199e6d8f6a9c6cc0cdf6a32 Mon Sep 17 00:00:00 2001
From: Joseph Wakeling <joseph.wakel...@webdrake.net>
Date: Sat, 12 Sep 2009 21:02:26 +0200
Subject: [PATCH 5/5] accidental.cc licensing and copyright notice.

  * Contributions (major and minor) tracked via git logs

  * Copyright credited to major contributors with dates
    corresponding to first and last commit

  * Contributors of small tweaks and corrections given
    brief credit in alphabetical order

  * ... and trailing whitespace correction courtesy
    of Kate editor :-)
---
 lily/accidental.cc |   35 ++++++++++++++++++++++++++---------
 1 files changed, 26 insertions(+), 9 deletions(-)

diff --git a/lily/accidental.cc b/lily/accidental.cc
index a017cf8..16d57e0 100644
--- a/lily/accidental.cc
+++ b/lily/accidental.cc
@@ -1,9 +1,26 @@
 /*
   accidental.cc -- implement Accidental_interface
 
-  source file of the GNU LilyPond music typesetter
+  Copyright (c) 2001--2008 Han-Wen Nienhuys <hanw...@gmail.com>
+  Copyright (c) 2002--2009 Jan Nieuwenhuizen <jann...@gnu.org>
+  Copyright (c) 2007--2009 Joe Neeman <joenee...@gmail.com>
 
-  (c) 2001--2009 Han-Wen Nienhuys <han...@xs4all.nl>
+  Small corrections and tweaks by Mats Bengtsson, Werner Lemberg
+  and Neil Puttock.
+
+  This source file is part of the GNU Lilypond music typesetter.
+
+  GNU Lilypond 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; version 2 of the License.
+
+  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, see <http://www.gnu.org/licenses/>.
 */
 
 #include "accidental-interface.hh"
@@ -19,7 +36,7 @@ Stencil
 parenthesize (Grob *me, Stencil m)
 {
   Font_metric * font
-    = Font_interface::get_default_font (me); 
+    = Font_interface::get_default_font (me);
   Stencil open
     = font->find_by_name ("accidentals.leftparen");
   Stencil close
@@ -98,7 +115,7 @@ Accidental_interface::accurate_boxes (Grob *me, Grob 
**common)
       SCM alt = me->get_property ("alteration");
       string glyph_name = robust_scm2string (ly_assoc_get (alt, alist, 
SCM_BOOL_F),
                                             "");
-      
+
       if (glyph_name == "accidentals.flat"
          || glyph_name == "accidentals.mirroredflat")
        {
@@ -183,14 +200,14 @@ Accidental_interface::get_stencil (Grob *me)
   SCM alist = me->get_property ("glyph-name-alist");
   SCM alt = me->get_property ("alteration");
   SCM glyph_name = ly_assoc_get (alt, alist, SCM_BOOL_F);
-  
+
   if (!scm_is_string (glyph_name))
     {
       me->warning (_f ("Could not find glyph-name for alteration %s",
                       ly_scm_write_string (alt).c_str ()));
       return SCM_EOL;
     }
-  
+
   Stencil mol (fm->find_by_name (ly_scm2string (glyph_name)));
   if (to_boolean (me->get_property ("restore-first")))
     {
@@ -205,17 +222,17 @@ Accidental_interface::get_stencil (Grob *me)
       else
        mol.add_at_edge (X_AXIS, LEFT, acc, 0.1);
     }
-  
+
   if (to_boolean (me->get_property ("parenthesized")))
     mol = parenthesize (me, mol);
 
   return mol.smobbed_copy ();
 }
 
-  
+
 ADD_INTERFACE (Accidental_interface,
               "A single accidental.",
-              
+
               /* properties */
               "alteration "
               "avoid-slur "
-- 
1.6.3.3

_______________________________________________
lilypond-devel mailing list
lilypond-devel@gnu.org
http://lists.gnu.org/mailman/listinfo/lilypond-devel

Reply via email to