#1507 Status of converting python-fedora to conform with Infrastructure Licensing
Closed: Fixed None Opened 14 years ago by toshio.

https://fedoraproject.org/wiki/Infrastructure_Licensing

This is a bug to track relicensing of a python module to conform to the new licensing guidelines. Since this is a python module, we will be moving from GPLv2 => LGPLv2+. Since this module affects several other applications (Fedora Community and MirrorManager) it will be the test case that we'll use to judge how hard it is to relicense other apps.

== Overview ==
1. Inform people who have committed code
2. Replace the COPYING file with LGPLv2+
3. Replace headers in the code with the LGPLv2+ header.

=== Informing People ===

  1. Check that people own copyright to the code that they submitted. If they do own copyright, ask if it's okay that we change the license to LGPLv2+. This is mostly a courtesy as contributions submitted without an explicit license are covered by the CLA. However, if someone has a major objection, we need to take that into account and rethink our licensing policy as it's discourteous to make this change over strong objections.

  2. If they do not own copyright, we need to know what section of code is not under their copyright and what license it was brought in under. ie: if someone brought in code that is MIT licensed, we are okay to relicense with it. If it was brought in under GPLv2 then we need to contact that author or replace the code with some of our own.

  3. Where we have not received any information back from an author in 1, run bzr annotate on the source tree and find out what lines of code they have added to the project. Find out if:
    A. The code was added with a license attached. This would be the case if someone was adding a new file with the license header. If this is the case, we cannot relicense the code without permission so we need to rewrite or try harder to locate the author.
    B. The code was added without a license. We can relicense under the terms of the CLA. We just need to be careful that the clear that we aren't stepping on someone's sensibilities when we do so (ie they really are around but we have out-dated contact info; they would care about the move from GPLv2 to LGPLv2+).

=== Replace COPYING ===

We have the go ahead from our authors. Replace the COPYING file with the LGPLv2+ COPYING.LIB file.

=== Replace Headers ===

The software should have an attached license with every source file. To automate this we want to do several thing:

  1. Record a list of all files
  2. The script should check for the license text in comments starting within the first ten lines of every file. The script will cut everything from there to the end of the license as long as each line is part of a comment.
  3. Replace the license text with the new LGPLv2+ license header.
  4. List the files that have been changed.
  5. Manually inspect the files that have not been changed.
  6. Manually confirm that the changes have only been on license text via bzr diff, meld, etc.
  7. Commit changes to the repository

I'm OK with it - thanks for looking into these licensing issues!

Switching python-fedora to LGPLv2+ is fine with me.

valholla replied via email to say this was fine.

Ran the .py files through bzr annotate:

  • lmacken, ricky, ianweller, toshio, valholla agree to LGPLv2+
  • jspaleta's contribution is MIT licensed so it's fine as is.
  • Need ivazquez to agree for the DJango auth plugin.
  • Would like agreement from stickster (fas2.py, people_by_groupname) and kolesov (pkgdb.py, add_package, edit_package, remove_user)

I agree to the change in licensing.

I approve the change in licensing.

kolesov has replied via email that the change is fine with him. Going ahead with this now.

Thanks everyone!

This is now complete. All changes have been pushed to the python-fedora-devel branch in the repository. Following changes were made in the final stage:

  • Add a COPYING.LESSER file with the text of the LGPLv2. The FSF advises keeping the COPYING file with the GPL text as well so I did not remove that.
  • I changed the license headers manually instead of writing a script. The license headers were not entirely consistent for all files. What I did was:
    1. Remove the GPL header and add the LGPL header in one file.
    2. Open the directory in meld (meld understands bzr so I could see what had been changed and what had not)
    3. For every .py file, check if there was a header to replace.
    4. Cut and paste the new header. remove the old one.
    5. After I was done, every .py file either was highlighted because it had been changed from what was in version control or I had inspected it to make sure it was uncopyrightable.

Login to comment on this ticket.

Metadata