← Back to team overview

subunit-dev team mailing list archive

relicencing subunitt [or some parts anyway]

 

Hi, you've been CC'd to this because you have code of some sort within
subunit.

If you're also on the subunit-dev list, feel free to drop your name from
the CC list :).

As the title says, I want to relicence subunit.

I'm considering something LGPL/BSDish. Details to be determined by
consensus [and if someone is utterly against this relicencing, then I'll
need to back their contribution out of the tree].

Why relicence?
--------------
Subunit is GPL. Many thing things that subunit wants to work well with
are not GPL, and its hard for folk in those communities to use subunit.
Contagious copyleft isn't beneficial for us the authors of Subunit, nor
for the users. There is a large ethical debate that can happen, but I'd
rather not have this discussion focus on that. If any contributor wish
that, we can do so in a parallel thread.

Pragmatically, the GPL is a hurdle for subunit:
 - cppunit, is LGPL 2.1+. Currently if they apply the subunit-linked
module it would defacto make cppunit GPL. So cppunit is unlikely to ever
take the patch languishing in their bugtracker.
 - googletest/gtest is BSD
 - JUnit is 'CPL' (now eclipse common license) - a LGPL-alike, with
focus on indemnity, patent grants and the like.
 - Python's unittest is under the PSF
 - 'check' is LGPL - they've taken a subunit patch, but licencing was
never raised; I suspect now that if it had been it would have been an
issue.

Subunit defines a network protocol; while there is value in having
multiple implementations, it doesn't make sense to force folk to write
such an implementation just to output from their preferred language if
the thing they are outputting from isn't GPL. In particular, making
someone do that just causes extra work, and doesn't buy the commons of
GPL code anything - once a test stream is on the wire, Subunit will read
it - thats what its there for!


What about proprietary knockoffs?
---------------------------------
I'd be delighted to find rational products, or other such things, using
Subunit regardless of whether they use libsubunit or reinvent. Better
software all around is a Good Thing.

What to relicence? And how?
---------------------------
I want to do the following:
 - get all code that is in the Subunit tree and arguably part of some
   larger external whole - such as the python API extensions, or the
   cppunit patch - to be viable for inclusion in those projects - or at
   a minimum linkable-with-without-headaches.
 - Get future code that seems likely to be in that category to come with
   an agreement that it can be donated to an appropriate home (e.g. the
   PSF) in the future. This is something that I'll ask for case by case
   - all I ask committers to the project to do is to do ask for it when
   reviewing contributions.
 - licence the UI and non utility code that really looks like it belongs
   in Subunit proper to be compatible with whatever it links with, to 
   minimise headaches in future - I don't want to end up being an
   openssl [great library, noone can use]
 - make subunits licencing as consistent as possible given the above.
   Currently we have a README that says 'GPL 2 or later', some filters
   saying 'GPL 3 or later' - and possibly more confusion.

Concretely, I think the following would be appropriate:
- put all the python code under the PSL [MIT]
- put the sh library under MIT/BSD [its a) tiny and b) wtf is linking in
a dynamic world]
- put the C library under MIT/BSD: while LGPL can be argued to preserve
the commons more strongly, I think given were Subunit wants to live in
the ecosystem that a BSD licence is more fitting: anyone can use it, and
thus we expand the network.

This can be a passionate subject for many people, I hope it doesn't
become one here :). The reason I'm proposing this is I'm trying to close
of various loose ends in Subunit, and I ran smack bang into this looking
at the cppunit patch. When I looked wider it just got messier and
messier. Subunit is a gift [hopefully a good one :)] to the world, I
want folk to be able to use it.

I don't have to act on this immediately; however I will need to act on
it. So:
 - please reply in some way as soon as you can.
 - where we go from here will depend on responses :).

-Rob

Attachment: signature.asc
Description: This is a digitally signed message part


Follow ups