[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: GPLv3 and Hurd? (also a possible license violation)

From: Michael Casadevall
Subject: Re: GPLv3 and Hurd? (also a possible license violation)
Date: Sat, 16 Jun 2007 14:52:15 -0400

I had emailed Thomas in regards to this because I didn't want to start a general panic over the license. Anyway, we have a few problems in any regard (I'm a Savannah Administrator, and if we have to remove the GPL later clause, then we're in violation of Savannah's hosting policy)

The any later clause exists in some of the modules (this one is from kmsg.c, but I've found it in a few other files):
This 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, or (at your option)
any later version.

The problem stems from the fact that the GPL is a project-wide license, it's not per-file (the CDDL and MPL are per file; they aren't viral licenses). Simply having it in one file binds the entire project to that license which would replace BSD license (assuming of course that we can somehow get rid of the adversing clause line). We right now have conflicting licenses between the Linux code, and the Hurd code; we need to get it all standardized to ONE license, and the later clause will allow us to go to GPLv3 (there is one other big reason why we need this).

The last problem is Savannah's hosting policy requires the "or any later version" clause if a project is licensed under GPLv2, and Savannah will remove projects that doesn't follow this restriction (https://savannah.gnu.org/maintenance/GnuGplTwoOrLater)

What we need to do (WRT to "or later" clause):
1. Remove the "or later clause" and get copyright holders permission to do so (and then go find new hosting since we'll have to leave Savannah unless they are willing to make an exception for us)

2. Remove the Linux code, and replace it with a BSD driver wrapper, then add the "or later clause" to the sections of Mach; the BSD licensing code meets Savannah hosting standards and is compatiable 

3. Don't ship any Linux code, or host it on Savannah, change our license to include "or later clause" (again getting copyright holders approval), and have developers download the necessary Linux source elsewhere and then link - this will not allow the distrubing binaries to be redistributed however, effectively killing Debian Hurd. It might be the only option we can do in the short term

The last issue is the advertising clause; by all standards this conflicts with the GPL code. If mach was released without the clause at some point, and these copyright messages are simply artifacts we can just remove them; if not, we may have to go to University of Utah and try and get them to re-release without that copyright notice. In an attempt to determine the legal state of the license, I went back in time, and found a copy of mach4 before it became GNU mach, and look at their license. University of Utah attached the following license to their files (there is also one under it for the standard Berkeley license):

 * Permission to use, copy, modify and distribute this software and its
 * documentation is hereby granted, provided that both the copyright
 * notice and this permission notice appear in all copies of the
 * software, derivative works or modified versions, and any portions
 * thereof, and that both notices appear in supporting documentation.

Now speaking of the Berkeley code, I know the BSD projects relicensed to loose the adversing clause, but it still leaves Mach's stuck unless we can get Utah to release the license. Thomas has been here since the fork from CMU's Mach to GNU Mach, he would know everything about the license change. Out of curiosity, I looked at the only other open source mach based OS I know of, Darwin, and its copyright notices are:
(xnu-792.18.15/osfmk/device/device_init.c, 30, Apple's public CVS repository x86 branch)
 * Mach Operating System
 * Copyright (c) 1991,1990,1989 Carnegie Mellon University
 * All Rights Reserved.
 * Permission to use, copy, modify and distribute this software and its
 * documentation is hereby granted, provided that both the copyright
 * notice and this permission notice appear in all copies of the
 * software, derivative works or modified versions, and any portions
 * thereof, and that both notices appear in supporting documentation.
 * Carnegie Mellon requests users of this software to return to
 *  Software Distribution Coordinator  or  Software.Distribution@CS.CMU.EDU
 *  School of Computer Science
 *  Carnegie Mellon University
 *  Pittsburgh PA 15213-3890
 * any improvements or extensions that they make and grant Carnegie Mellon
 * the rights to redistribute these changes.

(its important to note that Darwin's mach is based off mach3, while we're based off mach4).

In regards to the BSD adversing clause, this is our choices:
1. If a prior legal agreement was worked out between the FSF and CMU, we simply need to fix all the copyright notices in the code. I'm PRAYING this is the case because the other options are fairly nasty :-/

2. We comply with CMU's license. This means all GPL code added to mach itself needs to be relicensed, and we have to scrap the remaining GPL code. In addition, we need to add the required adversing clause to EVERYTHING (I'm not even sure this qualifies as free software by FSF definition).

3. We do 2, and work to replace mach.

4. Scrap mach all together, take a free kernel (NetBSD maybe), and port Hurd ontop of it. All the BSDs still have some adversing code clauses left in it though :-/ (I know there is a file in FreeBSD that lists all the necessary copyright noticed -_-;;;;)

It looks like CS students decided to use Linux drivers without checking the license, and when Mach was forked, no one bothered to check the original license. I'm a little upset that I found this because if we can't resolve both these issue, I effectively destroyed all development on GNU mach.

On Jun 16, 2007, at 12:19 PM, Thomas Schwinge wrote:


Michael Casadevall brought up two items w.r.t. licensing.

The first thing is that GNU Mach can't be licensed under the
to-be-published GPLv3, because of the Linux code we use.  He found a
place where it is stated (as it is often done) that one can use ``either
version 2 of the License, or (at your option) any later version'' -- but
where is this stated after all, Michael?  I didn't get to do an extensive
search so far, but couldn't find such a statement so far.

In my book GNU Mach -- so far -- is / should be GPLv2 only, because of
the Linux code.  Same for the Hurd package itself -- there is also Linux
code being included (pfinet), so that's also GPLv2, right?

The second thing is that there are still a number of files where
advertising clauses are being used.

For gnumach-1-branch:

$ f \(3\)\ all\ advertising | wc -l
$ f -h -A 3 \(3\)\ all\ advertising
 * reproduce the notices in supporting documentation, and (3) all advertising
 * materials mentioning features or use of this software display the following
 * acknowledgement: ``This product includes software developed by the
 * Computer Systems Laboratory at the University of Utah.''
[Same for all following ones.]

What to do with those?


Attachment: PGP.sig
Description: This is a digitally signed message part

reply via email to

[Prev in Thread] Current Thread [Next in Thread]