Planning/Relicensing: Difference between revisions

From QEMU
(→‎Files Needing Relicensing: further classification)
 
(48 intermediate revisions by 7 users not shown)
Line 1: Line 1:
== Overview ==
== 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.
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 15: Line 15:
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.


== Files under LGPLv2.1 ==
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 ==


These do not need relicensing even if the "or later" clause were missing (see section 3):
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/arm_pic.c
  hw/ccid-card-emulated.c
  hw/ccid-card-emulated.c
Line 45: Line 61:
  qbool.c
  qbool.c
  qdict.c
  qdict.c
qemu-coroutine.c
  qerror.c
  qerror.c
  qfloat.c
  qfloat.c
Line 55: Line 72:
== Files under GPLv2+ ==
== 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:
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/alpha_typhoon.c
  hw/ccid-card-passthru.c
  hw/ccid-card-passthru.c
hw/empty_slot.c
  hw/ppc440_bamboo.c
  hw/ppc440_bamboo.c
  hw/ppc440.c
  hw/ppc440.c
  hw/usb-ccid.c
  hw/usb-ccid.c
blockdev.c
  device_tree.c
  device_tree.c
  dma-helpers.c
  dma-helpers.c
Line 72: Line 92:
  qemu-thread-posix.c
  qemu-thread-posix.c
  qemu-thread-win32.c
  qemu-thread-win32.c
The situation of this file is unclear:
net/tap-win32.c


== Files under "GPL" ==
== Files under "GPL" ==


These files can be probably interpreted as being "GPLv1+".  Relicensing is thus not needed.
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
hw/an5206.c
  hw/arm11mpcore.c
  hw/arm11mpcore.c
  hw/arm_boot.c
  hw/arm_boot.c
Line 85: Line 110:
  hw/armv7m.c
  hw/armv7m.c
  hw/armv7m_nvic.c
  hw/armv7m_nvic.c
hw/dummy_m68k.c
hw/integratorcp.c
  hw/max7310.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/mpcore.c
  hw/pl011.c
  hw/pl011.c
Line 103: Line 135:
  hw/sh_intc.c
  hw/sh_intc.c
  hw/sh_timer.c
  hw/sh_timer.c
hw/smc91c111.c
  hw/ssd0303.c
  hw/ssd0303.c
  hw/ssd0323.c
  hw/ssd0323.c
Line 110: Line 143:
  hw/versatilepb.c
  hw/versatilepb.c
  hw/wm8750.c
  hw/wm8750.c
== Files without license ==
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 ==


  net/tap-win32.c
=== Copyright owners already tracked ===
  hw/ads7846.c
 
  hw/an5206.c
  block/rbd.c                     Red Hat, IBM, Christian Brunner, Stefan Weil
  hw/bitbang_i2c.c
  block/sheepdog.c                 Red Hat, IBM, NTT (MORITA Kazutaka), Michael Tokarev, Blue Swirl, Izumi Tsutsui, Stefan Weil
  hw/bonito.c
block/raw-posix-aio.h (header?)  Red Hat, hch
  hw/collie.c
  hw/kvmclock.c                   Red Hat, Siemens
  hw/ds1338.c
  hw/ivshmem.c                     Red Hat, IBM, Cam Macdonnell, SUSE, Huawei, VALinux (Isaku)
  hw/dummy_m68k.c
  hw/msix.c                       Red Hat, Blue Swirl, VALinux (Isaku), SuSE, Siemens, IBM
  hw/ecc.c
  hw/smbios.c                      Stefan Weil, IBM, Blue Swirl, HP
  hw/empty_slot.c
aio.c                            IBM, Red Hat, SuSE, Nolan Leake, Blue Swirl
  hw/es1370.c
block-migration.c                IBM, Blue Swirl, Siemens, Red Hat, malc, NTT (Yoshi), Pierre Riteau,
  hw/event_notifier.c
buffered_file.c                  IBM, Blue Swirl, Red Hat, Pierre Riteau, malc
  hw/framebuffer.c
compatfd.c                      IBM, Red Hat, AdaCore, SuSE, Siemens
  hw/gumstix.c
hmp.c                           Red Hat, IBM
  hw/integratorcp.c
  iov.c                            Red Hat, SuSE (incl. hw/iov.c)
  hw/ivshmem.c
memory.c                        IBM, Red Hat, Michael Walle, Blue Swirl, Siemens,
  hw/kvmclock.c
migration.c                      IBM, Charles Duffy, Siemens, Red Hat, malc, NTT (Yoshi)
  hw/lan9118.c
migration-exec.c                IBM, Charles Duffy, Siemens, Red Hat, malc, Blue Swirl
  hw/mainstone.c
migration-fd.c                  IBM, Red Hat, Siemens
  hw/marvell_88w8618_audio.c
migration-unix.c                IBM, Red Hat, Siemens, malc, Blue Swirl
  hw/max111x.c
migration-tcp.c                  IBM, Hervé Poussineau, Charles Duffy, Siemens, Red Hat, malc, Stefan Weil, NTT (Yoshi), Blue Swirl
  hw/mcf5206.c
module.c                        IBM, Blue Swirl
  hw/mcf5208.c
notify.c                        IBM, Siemens
  hw/mcf_fec.c
thread-pool.c                    IBM, Blue Swirl, Siemens, malc, Red Hat, hch, Blue Swirl, Kirill Shutemov, Frediano Ziglio
  hw/mcf_intc.c
qmp.c                            Red Hat, IBM
  hw/mcf_uart.c
xen-all.c                        Red Hat, IBM, Citrix, Siemens, Intel
  hw/mips_fulong2e.c
xen-mapcache.c                  Citrix, IBM, Siemens, Intel, John Baboval
  hw/msix.c
xen-stub.c                       Citrix, Intel
  hw/mst_fpga.c
 
  hw/musicpal.c
=== Entirely hosted in git ===
  hw/nand.c
 
  hw/pxa2xx_keypad.c
  hw/ac97.c (VirtualBox)          targets using it: x86, MIPS, PPC
  hw/pxa2xx_lcd.c
  hw/acpi.c                       targets using it: x86, MIPS
  hw/pxa2xx_mmci.c
  hw/acpi_piix4.c                 targets using it: x86, MIPS
  hw/pxa2xx_pcmcia.c
  hw/apm.c                         targets using it: x86, MIPS
  hw/smbios.c
  hw/bitbang_i2c.c                 targets using it: ARM
  hw/smc91c111.c
  hw/bonito.c                     targets using it: MIPS
  hw/spitz.c
  hw/collie.c                     targets using it: ARM
  hw/ssi.c
  hw/ds1338.c                     targets using it: ARM
  hw/ssi-sd.c
  hw/lan9118.c                     targets using it: ARM
  hw/strongarm.c
  hw/marvell_88w8618_audio.c       targets using it: ARM
  hw/tc6393xb.c
  hw/mips_fulong2e.c               targets using it: MIPS
  hw/tosa.c
  hw/ssi.c                         targets using it: ARM
  hw/vhost.c
  hw/strongarm.c                   targets using it: ARM
  hw/vhost_net.c
  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-balloon.c
  hw/virtio-blk.c
  hw/virtio-blk.c
Line 163: Line 258:
  hw/virtio-console.c
  hw/virtio-console.c
  hw/virtio-net.c
  hw/virtio-net.c
  hw/virtio-pci.c
  hw/xen_backend.c                 targets using it: x86
  hw/virtio-serial-bus.c
  hw/xen_disk.c                   targets using it: x86
  hw/vt82c686.c
  hw/xen_nic.c                     targets using it: x86
hw/z2.c
 
aio.c
== Based on Linux kernel code ==
blockdev.c
 
  block-migration.c
  linux-user/elfload.c
buffered_file.c
  linux-user/floatload.c
compatfd.c
  linux-user/linuxload.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-coroutine.c
qemu-tool.c
qmp.c
xen-all.c
xen-mapcache.c
xen-stub.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