Planning/Relicensing: Difference between revisions
m (moved Relicensing to Planning/Relicensing) |
|||
(35 intermediate revisions by 7 users not shown) | |||
Line 1: | Line 1: | ||
== Overview == | == Overview == | ||
In order to share code with binutils, QEMU | In order to share code with binutils, QEMU might need to relicense to GPLv2 or later since binutils is GPLv3. While the sharing of code with the Linux kernel might present an insurmountable problem, relicensing at least some of the files may still provide benefits, and can help other open source programs. | ||
== How to Help == | == How to Help == | ||
Line 14: | Line 14: | ||
If you or your company is willing to relicense your past contributions from GPLv2 to GPLv2+, please send an email to qemu-devel stating that explicitly and then link to that message on this wiki. | If you or your company is willing to relicense your past contributions from GPLv2 to GPLv2+, please send an email to qemu-devel stating that explicitly and then link to that message on this wiki. | ||
The following people expressed their agreement on the mailing list [need to link to the messages]: | |||
* Andrzej Zaborowski (balrog) for GPLv2+ [http://lists.nongnu.org/archive/html/qemu-devel/2011-10/msg02147.html] | |||
* Blue Swirl for any GPLv2 or GPLv3-compatible license [http://lists.nongnu.org/archive/html/qemu-devel/2011-10/msg01979.html] | |||
* Stefan Weil for GPLv2+ [http://lists.nongnu.org/archive/html/qemu-devel/2011-10/msg01960.html] | |||
* Dor Laor for all Red Hat contributions for GPLv2+ [http://lists.nongnu.org/archive/html/qemu-devel/2011-10/msg03061.html]. InkTank has been since acquired by Red Hat. | |||
* Michael Walle for GPLv2+ [http://lists.nongnu.org/archive/html/qemu-devel/2012-01/msg03493.html] | |||
* Guan Xuetao for target-unicore32 for GPLv2+ [http://lists.gnu.org/archive/html/qemu-devel/2012-02/msg01636.html] | |||
* Lluís Vilanova for "GPLv2 or later" or "GPLv3 or later" [http://lists.gnu.org/archive/html/qemu-devel/2012-07/msg01812.html] | |||
== Files under LGPLv2/LGPLv2.1 == | == Files under LGPLv2/LGPLv2.1 == | ||
Line 90: | Line 99: | ||
== Files under "GPL" == | == Files under "GPL" == | ||
These files can be | These files can be interpreted as being "GPLv1+" or "GPLv2+" (the difference is mostly theoretical, nobody is using GPLv1 anymore). Relicensing is thus not needed. | ||
hw/a9mpcore.c | hw/a9mpcore.c | ||
Line 137: | Line 146: | ||
== Files without license == | == Files without license == | ||
block/raw.c | Need to be audited for GPLv2-only material, but otherwise can probably be considered GPLv2+ ([http://lists.gnu.org/archive/html/qemu-devel/2011-10/msg03288.html reasoning here]): | ||
audio/audio_pt_int.c malc, Stefan Weil | |||
audio/wavcapture.c malc, Fabrice Bellard, Red Hat, Siemens | |||
block/raw.c Red Hat, hch, IBM | |||
cache-utils.c malc, Juergen Lock | |||
disas.c Fabrice Bellard, ths, Blue Swirl, CodeSourcery, Aurelien Jarno, Jacelyn Mayer, Stefan Weil, malc, IBM, Fredian Ziglio, Red Hat, Magnus Damm, Edgar E. Iglesias (AXIS) | |||
envlist.c Aurelien Jarno, Blue Swirl | |||
path.c Fabrice Bellard, CodeSourcery, ths, Stefan Weil, Thayne Harbaugh | |||
hw/mipsnet.c ths, Red Hat, CodeSourcery, Stefan Weil, Hervé Poussineau, Aurelien Jarno, Siemens | |||
hw/mips_r4k.c ths, Fabrice Bellard, CodeSourcery, Blue Swirl, Aurelien Jarno, Red Hat, IBM, balrog, VALinux (Isaku), Siemens, Jocelyn Mayer, Hervé Poussineau, malc | |||
hw/qdev-addr.c Red Hat | |||
hw/qdev-properties.c Red Hat, IBM, AMD, Google, VALinux (Isaku), Siemens, Kusanagi Kouichi, Stefan Weil | |||
hw/spapr_hcall.c IBM, Blue Swirl, SuSE | |||
hw/spapr_vty.c IBM, Red Hat | |||
hw/tc58128.c Samuel Tardieu, Blue Swirl, CodeSourcery, IBM | |||
hw/usb-bus.c Red Hat, Blue Swirl, Siemens, CodeSourcery, TeLeMan | |||
hw/usb-desc.c Red Hat, IBM, Brad Hards | |||
hw/xen_devconfig.c Red Hat, Blue Swirl, Siemens, IBM | |||
hw/xen_domainbuild.c Red Hat, Blue Swirl, IBM, Citrix | |||
linux-user/strace.c | |||
linux-user/uaccess.c | |||
cursor.c Red Hat, IBM | |||
qemu-config.c Red Hat, IBM, SuSE, Blue Swirl, Citrix, Siemens, Kusanagi Kouichi, LLuis Villanova | |||
qemu-sockets.c Red Hat, IBM, Blue Swirl, Nick Thomas, Vibi Sreenivasan | |||
*/machine.c (extracted from vl.c, which is MIT/BSD) | |||
== Files Needing Relicensing == | == Files Needing Relicensing == | ||
Line 144: | Line 177: | ||
=== Copyright owners already tracked === | === Copyright owners already tracked === | ||
block/rbd.c Red Hat, IBM, Christian Brunner, Stefan Weil | |||
block/sheepdog.c Red Hat, IBM, NTT (MORITA Kazutaka), Michael Tokarev, Blue Swirl, Izumi Tsutsui, Stefan Weil | |||
block/raw-posix-aio.h (header?) Red Hat, hch | block/raw-posix-aio.h (header?) Red Hat, hch | ||
hw/ | hw/kvmclock.c Red Hat, Siemens | ||
hw/ivshmem.c Red Hat, IBM, Cam Macdonnell, SUSE, Huawei, VALinux (Isaku) | |||
hw/msix.c Red Hat, Blue Swirl, VALinux (Isaku), SuSE, Siemens, IBM | hw/msix.c Red Hat, Blue Swirl, VALinux (Isaku), SuSE, Siemens, IBM | ||
hw/smbios.c Stefan Weil, IBM, Blue Swirl, HP | hw/smbios.c Stefan Weil, IBM, Blue Swirl, HP | ||
Line 162: | Line 198: | ||
module.c IBM, Blue Swirl | module.c IBM, Blue Swirl | ||
notify.c IBM, Siemens | notify.c IBM, Siemens | ||
thread-pool.c IBM, Blue Swirl, Siemens, malc, Red Hat, hch, Blue Swirl, Kirill Shutemov, Frediano Ziglio | |||
qmp.c Red Hat, IBM | qmp.c Red Hat, IBM | ||
xen-all.c Red Hat, IBM, Citrix, Siemens, Intel | xen-all.c Red Hat, IBM, Citrix, Siemens, Intel | ||
xen-mapcache.c Citrix, IBM, Siemens, Intel, John Baboval | |||
xen-stub.c Citrix, Intel | xen-stub.c Citrix, Intel | ||
=== Entirely hosted in git === | === Entirely hosted in git === | ||
hw/ac97.c (VirtualBox) targets using it: x86, MIPS, PPC | hw/ac97.c (VirtualBox) targets using it: x86, MIPS, PPC | ||
hw/acpi.c targets using it: x86, MIPS | hw/acpi.c targets using it: x86, MIPS | ||
Line 181: | Line 214: | ||
hw/collie.c targets using it: ARM | hw/collie.c targets using it: ARM | ||
hw/ds1338.c targets using it: ARM | hw/ds1338.c targets using it: ARM | ||
hw/lan9118.c targets using it: ARM | hw/lan9118.c targets using it: ARM | ||
hw/marvell_88w8618_audio.c targets using it: ARM | hw/marvell_88w8618_audio.c targets using it: ARM | ||
hw/mips_fulong2e.c targets using it: MIPS | hw/mips_fulong2e.c targets using it: MIPS | ||
hw/ssi.c targets using it: ARM | hw/ssi.c targets using it: ARM | ||
hw/strongarm.c targets using it: ARM | hw/strongarm.c targets using it: ARM | ||
Line 196: | Line 226: | ||
hw/vt82c686.c targets using it: MIPS | hw/vt82c686.c targets using it: MIPS | ||
hw/z2.c targets using it: ARM | hw/z2.c targets using it: ARM | ||
To find authors, use "git shortlog --before '13 Jan 2012' -nse -- ''filename''". | |||
These files have since been moved to subdirectories of hw/. Using the old filenames is necessary for "git shortlog" to work. | |||
=== Also, some authors in svn === | === Also, some authors in svn === | ||
Need more care, since the author | Need more care, since git really lists the committer as author for svn commits. | ||
hw/ads7846.c targets using it: ARM | hw/ads7846.c targets using it: ARM | ||
Line 211: | Line 244: | ||
hw/musicpal.c targets using it: ARM | hw/musicpal.c targets using it: ARM | ||
hw/nand.c targets using it: ARM, CRIS | hw/nand.c targets using it: ARM, CRIS | ||
hw/pl031.c targets using it: ARM | |||
hw/pxa2xx_keypad.c targets using it: ARM | hw/pxa2xx_keypad.c targets using it: ARM | ||
hw/pxa2xx_lcd.c targets using it: ARM | hw/pxa2xx_lcd.c targets using it: ARM | ||
Line 224: | Line 258: | ||
hw/virtio-console.c | hw/virtio-console.c | ||
hw/virtio-net.c | hw/virtio-net.c | ||
hw/xen_backend.c targets using it: x86 | |||
hw/xen_disk.c targets using it: x86 | |||
hw/xen_nic.c targets using it: x86 | |||
== Based on Linux kernel code == | |||
linux-user/elfload.c | |||
linux-user/floatload.c | |||
linux-user/linuxload.c |
Latest revision as of 10:21, 12 October 2016
Overview
In order to share code with binutils, QEMU might need to relicense to GPLv2 or later since binutils is GPLv3. While the sharing of code with the Linux kernel might present an insurmountable problem, relicensing at least some of the files may still provide benefits, and can help other open source programs.
How to Help
To relicense a file, use the following git command to get a list of authors:
git log --format:"%an <%ae>" -- file.c
Check this wiki page to see if the author has already committed to relicensing. If so, add their Signed-off-by to the patch. For any author that hasn't already committed to relicensing, contact that individual and ask them if they are willing to relicense and collect their Signed-off-by.
Commitments to Relicense
If you or your company is willing to relicense your past contributions from GPLv2 to GPLv2+, please send an email to qemu-devel stating that explicitly and then link to that message on this wiki.
The following people expressed their agreement on the mailing list [need to link to the messages]:
- Andrzej Zaborowski (balrog) for GPLv2+ [1]
- Blue Swirl for any GPLv2 or GPLv3-compatible license [2]
- Stefan Weil for GPLv2+ [3]
- Dor Laor for all Red Hat contributions for GPLv2+ [4]. InkTank has been since acquired by Red Hat.
- Michael Walle for GPLv2+ [5]
- Guan Xuetao for target-unicore32 for GPLv2+ [6]
- Lluís Vilanova for "GPLv2 or later" or "GPLv3 or later" [7]
Files under LGPLv2/LGPLv2.1
These do not need relicensing even if the "or later" clause were missing (see section 3):
block/qed.c block/qed-check.c block/qed-cluster.c block/qed-gencb.c block/qed.h block/qed-l2-cache.c block/qed-table.c hw/arm_pic.c hw/ccid-card-emulated.c hw/fmopl.c hw/i2c.c hw/lsi53c895a.c hw/pc.c hw/pl110.c hw/ptimer.c hw/scsi-disk.c hw/scsi-generic.c hw/smbus.c hw/usb-msd.c hw/usb-serial.c hw/versatile_pci.c check-qdict.c check-qfloat.c check-qint.c check-qjson.c check-qlist.c check-qstring.c error.c json-lexer.c json-parser.c json-streamer.c qbool.c qdict.c qemu-coroutine.c qerror.c qfloat.c qint.c qjson.c qlist.c qstring.c test-coroutine.c
Files under GPLv2+
These would need relicensing in order to do a blanket relicensing of QEMU (it is debatable whether this requires authorization of the copyright holders). However, the license is GPLv3-compatible, so they can be left as is: overall, QEMU would still be distributed as GPLv3, but the code from this files could be reused in GPLv2 projects:
block/vdi.c hw/alpha_typhoon.c hw/ccid-card-passthru.c hw/empty_slot.c hw/ppc440_bamboo.c hw/ppc440.c hw/usb-ccid.c blockdev.c device_tree.c dma-helpers.c kvm-all.c kvm-stub.c linux-aio.c qemu-error.c qemu-ga.c qemu-io.c qemu-thread-posix.c qemu-thread-win32.c
The situation of this file is unclear:
net/tap-win32.c
Files under "GPL"
These files can be interpreted as being "GPLv1+" or "GPLv2+" (the difference is mostly theoretical, nobody is using GPLv1 anymore). Relicensing is thus not needed.
hw/a9mpcore.c hw/an5206.c hw/arm11mpcore.c hw/arm_boot.c hw/arm_gic.c hw/arm_sysctl.c hw/arm_timer.c hw/armv7m.c hw/armv7m_nvic.c hw/dummy_m68k.c hw/integratorcp.c hw/max7310.c hw/mcf5206.c hw/mcf5208.c hw/mcf_fec.c hw/mcf_intc.c hw/mcf_uart.c hw/mpcore.c hw/pl011.c hw/pl022.c hw/pl050.c hw/pl061.c hw/pl080.c hw/pl181.c hw/pl190.c hw/pxa2xx.c hw/pxa2xx_dma.c hw/pxa2xx_gpio.c hw/pxa2xx_pic.c hw/pxa2xx_timer.c hw/realview.c hw/realview_gic.c hw/sh_intc.c hw/sh_timer.c hw/smc91c111.c hw/ssd0303.c hw/ssd0323.c hw/stellaris.c hw/stellaris_enet.c hw/stellaris_input.c hw/versatilepb.c hw/wm8750.c
Files without license
Need to be audited for GPLv2-only material, but otherwise can probably be considered GPLv2+ (reasoning here):
audio/audio_pt_int.c malc, Stefan Weil audio/wavcapture.c malc, Fabrice Bellard, Red Hat, Siemens block/raw.c Red Hat, hch, IBM cache-utils.c malc, Juergen Lock disas.c Fabrice Bellard, ths, Blue Swirl, CodeSourcery, Aurelien Jarno, Jacelyn Mayer, Stefan Weil, malc, IBM, Fredian Ziglio, Red Hat, Magnus Damm, Edgar E. Iglesias (AXIS) envlist.c Aurelien Jarno, Blue Swirl path.c Fabrice Bellard, CodeSourcery, ths, Stefan Weil, Thayne Harbaugh hw/mipsnet.c ths, Red Hat, CodeSourcery, Stefan Weil, Hervé Poussineau, Aurelien Jarno, Siemens hw/mips_r4k.c ths, Fabrice Bellard, CodeSourcery, Blue Swirl, Aurelien Jarno, Red Hat, IBM, balrog, VALinux (Isaku), Siemens, Jocelyn Mayer, Hervé Poussineau, malc hw/qdev-addr.c Red Hat hw/qdev-properties.c Red Hat, IBM, AMD, Google, VALinux (Isaku), Siemens, Kusanagi Kouichi, Stefan Weil hw/spapr_hcall.c IBM, Blue Swirl, SuSE hw/spapr_vty.c IBM, Red Hat hw/tc58128.c Samuel Tardieu, Blue Swirl, CodeSourcery, IBM hw/usb-bus.c Red Hat, Blue Swirl, Siemens, CodeSourcery, TeLeMan hw/usb-desc.c Red Hat, IBM, Brad Hards hw/xen_devconfig.c Red Hat, Blue Swirl, Siemens, IBM hw/xen_domainbuild.c Red Hat, Blue Swirl, IBM, Citrix linux-user/strace.c linux-user/uaccess.c cursor.c Red Hat, IBM qemu-config.c Red Hat, IBM, SuSE, Blue Swirl, Citrix, Siemens, Kusanagi Kouichi, LLuis Villanova qemu-sockets.c Red Hat, IBM, Blue Swirl, Nick Thomas, Vibi Sreenivasan */machine.c (extracted from vl.c, which is MIT/BSD)
Files Needing Relicensing
Copyright owners already tracked
block/rbd.c Red Hat, IBM, Christian Brunner, Stefan Weil block/sheepdog.c Red Hat, IBM, NTT (MORITA Kazutaka), Michael Tokarev, Blue Swirl, Izumi Tsutsui, Stefan Weil block/raw-posix-aio.h (header?) Red Hat, hch hw/kvmclock.c Red Hat, Siemens hw/ivshmem.c Red Hat, IBM, Cam Macdonnell, SUSE, Huawei, VALinux (Isaku) hw/msix.c Red Hat, Blue Swirl, VALinux (Isaku), SuSE, Siemens, IBM hw/smbios.c Stefan Weil, IBM, Blue Swirl, HP aio.c IBM, Red Hat, SuSE, Nolan Leake, Blue Swirl block-migration.c IBM, Blue Swirl, Siemens, Red Hat, malc, NTT (Yoshi), Pierre Riteau, buffered_file.c IBM, Blue Swirl, Red Hat, Pierre Riteau, malc compatfd.c IBM, Red Hat, AdaCore, SuSE, Siemens hmp.c Red Hat, IBM iov.c Red Hat, SuSE (incl. hw/iov.c) memory.c IBM, Red Hat, Michael Walle, Blue Swirl, Siemens, migration.c IBM, Charles Duffy, Siemens, Red Hat, malc, NTT (Yoshi) migration-exec.c IBM, Charles Duffy, Siemens, Red Hat, malc, Blue Swirl migration-fd.c IBM, Red Hat, Siemens migration-unix.c IBM, Red Hat, Siemens, malc, Blue Swirl migration-tcp.c IBM, Hervé Poussineau, Charles Duffy, Siemens, Red Hat, malc, Stefan Weil, NTT (Yoshi), Blue Swirl module.c IBM, Blue Swirl notify.c IBM, Siemens thread-pool.c IBM, Blue Swirl, Siemens, malc, Red Hat, hch, Blue Swirl, Kirill Shutemov, Frediano Ziglio qmp.c Red Hat, IBM xen-all.c Red Hat, IBM, Citrix, Siemens, Intel xen-mapcache.c Citrix, IBM, Siemens, Intel, John Baboval xen-stub.c Citrix, Intel
Entirely hosted in git
hw/ac97.c (VirtualBox) targets using it: x86, MIPS, PPC hw/acpi.c targets using it: x86, MIPS hw/acpi_piix4.c targets using it: x86, MIPS hw/apm.c targets using it: x86, MIPS hw/bitbang_i2c.c targets using it: ARM hw/bonito.c targets using it: MIPS hw/collie.c targets using it: ARM hw/ds1338.c targets using it: ARM hw/lan9118.c targets using it: ARM hw/marvell_88w8618_audio.c targets using it: ARM hw/mips_fulong2e.c targets using it: MIPS hw/ssi.c targets using it: ARM hw/strongarm.c targets using it: ARM hw/vexpress.c targets using it: ARM hw/vhost.c targets using it: x86, PPC hw/vhost_net.c targets using it: x86, PPC hw/virtio-pci.c hw/virtio-serial-bus.c hw/vt82c686.c targets using it: MIPS hw/z2.c targets using it: ARM
To find authors, use "git shortlog --before '13 Jan 2012' -nse -- filename".
These files have since been moved to subdirectories of hw/. Using the old filenames is necessary for "git shortlog" to work.
Also, some authors in svn
Need more care, since git really lists the committer as author for svn commits.
hw/ads7846.c targets using it: ARM hw/ecc.c targets using it: ARM, SPARC hw/framebuffer.c targets using it: ARM, LM32 hw/gumstix.c targets using it: ARM hw/mainstone.c targets using it: ARM hw/max111x.c targets using it: ARM hw/mst_fpga.c targets using it: ARM hw/musicpal.c targets using it: ARM hw/nand.c targets using it: ARM, CRIS hw/pl031.c targets using it: ARM hw/pxa2xx_keypad.c targets using it: ARM hw/pxa2xx_lcd.c targets using it: ARM hw/pxa2xx_mmci.c targets using it: ARM hw/pxa2xx_pcmcia.c targets using it: ARM hw/spitz.c targets using it: ARM hw/ssi-sd.c targets using it: ARM hw/tc6393xb.c targets using it: ARM hw/tosa.c targets using it: ARM hw/virtio-balloon.c hw/virtio-blk.c hw/virtio.c hw/virtio-console.c hw/virtio-net.c hw/xen_backend.c targets using it: x86 hw/xen_disk.c targets using it: x86 hw/xen_nic.c targets using it: x86
Based on Linux kernel code
linux-user/elfload.c linux-user/floatload.c linux-user/linuxload.c