Hi all,
this will probably make me very unpopular around here, but oh well... ;)
I've started looking at _all_ files in svn and checking their respective license to see if it's GPL'd or at least has another Free Software license. Also, all such licenses must be GPL compatible, too, AFAIK (but I'm no lawyer).
This is important for a) the Debian package, which must meet the DSFG (Debian Free Software Guidelines), see http://www.us.debian.org/social_contract#guidelines and b) for the legal status of the LinuxBIOS project itself, as any non-free-software/non-gpl-compatible code in the repository would probably be illegal to distribute (depending on the exact license terms), may cause all kinds of other legal hassle and just simply compromise the whole idea of the project - to have a _free_ implementation.
So here I am, reading through all files, taking notes which of them are not GPL'd. Please check the list and clarify the exact license status of the files, e.g. by adding a GPL header similar to this one below:
/* * Copyright (C) 200x Author Name email@example.com * * 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */
(or at least a tiny note saying "this file is copyright 200x John Doe and is licensed under the GPL)...
I'm happy to provide patches which add the above license header to all files, but someone has to tell me who wrote the code, when, and which license applies (if that's not obvious from the code).
I noticed that many files do not have any license header at all (some don't even say who the author is); such files have an unclear status and must be considered non-free usually, so in cases where that's just an oversight, please add a respective license note. If the file was taken from another project, please add a note saying so, and mention the license of that project in the file.
Assumption: All *.lb config files are GPL'd even though they don't have the lengthy GPL header in them. Correct? I don't think it's necessary for those files. The same is probably true for ChangeLog, NEWS, and documentation/ChangeLog.cvsimport, etc.
The biggest problems I notices so far is the code from IBM and AMD, which says things like "Copyright 2005 ADVANCED MICRO DEVICES, INC. All Rights Reserved" or stuff like: LICENSED MATERIAL - PROGRAM PROPERTY OF I B M US Government Users Restricted Rights - Use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM Corp.
That alone (which no additional "this is GPL'd" text would make the code non-free and GPL-incompatible, I guess. I hope this can be resolved or clarified somehow.
I also found some licenses which I simply don't know and cannot tell right now if they're fine or not - that has to be checked at some point.
Anyways, here's the list of issues I noticed so far (haven't checked all the code, yet):
-------------------------------------------------------------------------------- HOWTO/EPIA-M-howto: No license note. documentation/Makefile: No license note. documentation/RFC/*: No license note. * Is that stuff used at all? documentation/*.eps: No license note. * I assume this is GPL'd as LinuxBIOS-AMD64.tex is GPL'd. Correct? src/arch/i386/boot/acpi.c: * Says among other things "Copyright 2005 ADVANCED MICRO DEVICES, INC. All Rights Reserved." which is bad as it means it's NOT GPL'd and you cannot use it for anything, really. No explicit permissions means you have no rights according to international copyright laws, AFAIK (but I'm no lawyer). src/arch/i386/boot/boot.c: No license note. src/arch/i386/boot/linuxbios_table.*: No license note. src/arch/i386/boot/pirq_routing.c: No license note. src/arch/i386/boot/tables.c: * Says: 2006.1 yhlu add mptable cross 0x467 processing 2003-07 by SONE Takeshi Ported from Etherboot to LinuxBIOS 2005-08 by Steve Magnani Etherboot is GPL'd (mostly, some parts are BSD), so this is GPL'd, right? src/arch/i386/include/*.h: No license note. src/arch/i386/include/arch/acpi.h: * Now this is totally confusing. * written by Stefan Reinauer stepan@openbios.org (GPL'd?) * (C) 2004 SUSE LINUX AG (license?) * The ACPI table structs are based on the Linux kernel sources. (GPL'd!) * ACPI FADT & FACS added by Nick Barker nick.barker9@btinternet.com those parts (C) 2004 Nick Barker (license?) * ACPI SRAT support added in 2005.9 by yhlu (license?) * Copyright 2005 ADVANCED MICRO DEVICES, INC. All Rights Reserved. ---> Baaad... src/arch/i386/include/arch/intel.h: * Not sure what to make of this... It's not the GPL, it's not the BSD license (or the MIT license), either. ((2)) Is this GPL compatible? /* This software and ancillary information (herein called SOFTWARE ) called LinuxBIOS is made available under the terms described here. The SOFTWARE has been approved for release with associated LA-CC Number 00-34 . Unless otherwise indicated, this SOFTWARE has been authored by an employee or employees of the University of California, operator of the Los Alamos National Laboratory under Contract No. W-7405-ENG-36 with the U.S. Department of Energy. The U.S. Government has rights to use, reproduce, and distribute this SOFTWARE. The public may copy, distribute, prepare derivative works and publicly display this SOFTWARE without charge, provided that this Notice and any statement of authorship are reproduced on all copies. Neither the Government nor the University makes any warranty, express or implied, or assumes any liability or responsibility for the use of this SOFTWARE. If SOFTWARE is modified to produce derivative works, such modified SOFTWARE should be clearly marked, so as not to confuse it with the version available from LANL. */ /* Copyright 2000, Ron Minnich, Advanced Computing Lab, LANL * rminnich@lanl.gov */ src/arch/i386/include/arch/*.h (except for the above ones): No license note. src/arch/i386/include/arch/boot/boot.h: No license note. src/arch/i386/include/arch/smp/*.h: No license note. src/arch/i386/init/ldscript.lb: * Says: Copyright (c) 1999 by Net Insight AB. All Rights Reserved. Not good... src/arch/i386/lib/printk_init.c: * Copyright (C) 1991, 1992 Linus Torvalds No explicit license note, but it's quite surely GPL ((1)). src/arch/i386/lib/*: No license note. src/arch/i386/llshell/readme.linuxbios: No license note. * Probably GPL'd, as the file it documents (llshell.inc) is GPL'd. src/arch/i386/smp/*: No license note. src/arch/ppc/boot/*: No license note. src/arch/ppc/include/ppc4xx.h: * Strange non-standard header, not sure what to make of it. This source code has been made available to you by IBM on an AS-IS basis. Anyone receiving this source is licensed under IBM copyrights to use it in any way he or she deems fit, including copying it, modifying it, compiling it, and redistributing it either with or without modifications. No license under IBM patents or patent applications is to be implied by the copyright license.
Any user of this software should understand that IBM cannot provide technical support for this software and will not be responsible for any consequences resulting from the use of this software.
Any person who transfers this source code or any derivative work must include the IBM copyright notice, this paragraph, and the preceding two paragraphs in the transferred software.
COPYRIGHT I B M CORPORATION 1999 LICENSED MATERIAL - PROGRAM PROPERTY OF I B M src/arch/ppc/include/ppc970.h: COPYRIGHT I B M CORPORATION 2003 LICENSED MATERIAL - PROGRAM PROPERTY OF I B M US Government Users Restricted Rights - Use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM Corp. src/arch/ppc/include/*.* (except for the above ones): No license note. src/arch/ppc/include/arch/*.h: No license note. src/arch/ppc/include/arch/boot/*.h: No license note. src/arch/ppc/init/ldscript.lb: * No license, but some authors: Written by Johan Rydberg, based on work by Daniel Kahlin. Rewritten by Eric Biederman Re-rewritten by Greg Watson for PPC src/arch/ppc/init/ppc_main.c: * No license, but an author: Copyright (C) 2003 by Greg Watson, Los Alamos National Laboratory gwatson@lanl.gov src/arch/ppc/lib/cpu.c: No license note. src/arch/ppc/lib/pci_dev.c: No license note. src/arch/ppc/lib/pci_ppc_conf1_ops.c: No license note. src/boot/hardwaremain.c: Same as ((2)). src/config/LinuxBIOSDoc.config: No license note (GPL?). src/config/doxyscript.base: No license note (GPL?). src/config/linuxbios_ram.ld: * Copyright (c) 1999 by Net Insight AB. All Rights Reserved. --> Bad. src/console/btext_console.c: No license note, but some authors: * Benjamin Herrenschmidt benh@kernel.crashing.org move to LinuxBIOS by LYH yhlu@tyan.com src/console/font-8x16.c: Same as ((1)). src/console/printk.c: Same as ((1)). src/console/vga_console.c: No license note, but an author: * modified from original freebios code by Steve M. Gehlbach steve@kesa.com src/console/vsprintf.c: Same as ((1)). src/console/vtxprintf.c: Same as ((1)).
targets/buildtarget: No license note. The rest of target/ has no license, too, but should be fine (mostly config files). --------------------------------------------------------------------------------
HTH, Uwe.