Planning/Relicensing
Overview
In order to share code with binutils, QEMU needs to relicense to GPLv2 or later since binutils is GPLv3. Since only a handful of files are licensed under GPLv2, it should be practical to relicense.
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.
Files under LGPLv2/LGPLv2.1
These do not need relicensing even if the "or later" clause were missing (see section 3):
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. 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:
hw/alpha_typhoon.c hw/ccid-card-passthru.c hw/empty_slot.c hw/ppc440_bamboo.c hw/ppc440.c hw/usb-ccid.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 probably interpreted as being "GPLv1+". 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 Needing Relicensing
hw/ads7846.c hw/bitbang_i2c.c hw/bonito.c hw/collie.c hw/ds1338.c hw/ecc.c hw/event_notifier.c hw/framebuffer.c hw/gumstix.c hw/ivshmem.c hw/kvmclock.c hw/lan9118.c hw/mainstone.c hw/marvell_88w8618_audio.c hw/max111x.c hw/mips_fulong2e.c hw/msix.c hw/mst_fpga.c hw/musicpal.c hw/nand.c hw/pxa2xx_keypad.c hw/pxa2xx_lcd.c hw/pxa2xx_mmci.c hw/pxa2xx_pcmcia.c hw/smbios.c hw/spitz.c hw/ssi.c hw/ssi-sd.c hw/strongarm.c hw/tc6393xb.c hw/tosa.c hw/vhost.c hw/vhost_net.c hw/virtio-balloon.c hw/virtio-blk.c hw/virtio.c hw/virtio-console.c hw/virtio-net.c hw/virtio-pci.c hw/virtio-serial-bus.c hw/vt82c686.c hw/z2.c aio.c blockdev.c block-migration.c buffered_file.c compatfd.c hmp.c iov.c memory.c migration.c migration-exec.c migration-fd.c migration-tcp.c migration-unix.c module.c notify.c pflib.c posix-aio-compat.c qemu-tool.c qmp.c xen-all.c xen-mapcache.c xen-stub.c