[ipxe-devel] Source file license header clarification

Daniel P. Berrange berrange at redhat.com
Fri Mar 23 14:13:36 UTC 2012


In the course of the Fedora review for iPXE, it was identified that many
iPXE source files do not have any license header comment in them. While
the intent is commonly that any such ommisions imply that the file(s) are
covered by the terms of the top level COPYING file, the Fedora review
guides say we should make a recommendation to upstream communities that
they ensure per-file license headers.

So this message is just such a friendly hint. To make life easier, I
wrote a simple perl script to try & identify .h or .c files which have
got either incomplete or missing license information. By incomplete I
mean that a file has iPXE's magic FILE_LICENCE macro, but no comment
header. By missing, I mean it lacks FILE_LICENCE and / or comments.

IMHO, since iPXE seems to contain a non-trivial number of files that
have been copied from other compatible open source projects, it is
wise to ensure every source file has unambiguous license comments.

I'm attaching the script, which on a GIT checkout it reports the
following:

# find -name *.c | xargs perl license.pl
./src/drivers/net/epic100.c GPL2_OR_LATER but no comment
./src/drivers/net/davicom.c GPL2_ANY but no comment
./src/drivers/net/via-rhine.c no FILE_LICENCE declaration 
./src/drivers/net/natsemi.c GPL2_ANY but no comment
./src/drivers/net/virtio-net.c GPL2_OR_LATER but no comment
./src/drivers/net/vxge/vxge_config.c GPL2_ONLY but no comment
./src/drivers/net/vxge/vxge_main.c GPL2_ONLY but no comment
./src/drivers/net/vxge/vxge.c GPL2_OR_LATER but no comment
./src/drivers/net/vxge/vxge_traffic.c GPL2_ONLY but no comment
./src/drivers/net/tg3/tg3.c GPL2_ONLY but no comment
./src/drivers/net/tg3/tg3_hw.c GPL2_ONLY but no comment
./src/drivers/net/tg3/tg3_phy.c no FILE_LICENCE declaration 
./src/drivers/net/tulip.c GPL2_ANY but no comment
./src/drivers/net/rtl818x/rtl8185.c GPL2_OR_LATER but no comment
./src/drivers/net/rtl818x/rtl8180.c GPL2_OR_LATER but no comment
./src/drivers/net/sis190.c GPL2_ANY but no comment
./src/drivers/net/e1000e/e1000e_phy.c GPL2_OR_LATER but no comment
./src/drivers/net/e1000e/e1000e_82571.c GPL2_OR_LATER but no comment
./src/drivers/net/e1000e/e1000e_manage.c GPL2_OR_LATER but no comment
./src/drivers/net/e1000e/e1000e.c GPL2_ONLY but no comment
./src/drivers/net/e1000e/e1000e_nvm.c GPL2_OR_LATER but no comment
./src/drivers/net/e1000e/e1000e_main.c GPL2_OR_LATER but no comment
./src/drivers/net/e1000e/e1000e_ich8lan.c GPL2_OR_LATER but no comment
./src/drivers/net/e1000e/e1000e_mac.c GPL2_OR_LATER but no comment
./src/drivers/net/e1000e/e1000e_80003es2lan.c GPL2_OR_LATER but no comment
./src/drivers/net/igbvf/igbvf_mbx.c GPL2_ONLY but no comment
./src/drivers/net/igbvf/igbvf_main.c GPL2_ONLY but no comment
./src/drivers/net/igbvf/igbvf_vf.c GPL2_ONLY but no comment
./src/drivers/net/ath/ath5k/ath5k_rfkill.c MIT but no comment
./src/drivers/net/ath/ath9k/ath9k_common.c no FILE_LICENCE declaration 
./src/drivers/net/ath/ath9k/ath9k_calib.c no FILE_LICENCE declaration 
./src/drivers/net/ath/ath9k/ath9k_ar9003_mac.c no FILE_LICENCE declaration 
./src/drivers/net/ath/ath9k/ath9k_ar9002_hw.c no FILE_LICENCE declaration 
./src/drivers/net/ath/ath9k/ath9k_ar9002_mac.c no FILE_LICENCE declaration 
./src/drivers/net/ath/ath9k/ath9k_ar9003_phy.c no FILE_LICENCE declaration 
./src/drivers/net/ath/ath9k/ath9k_hw.c no FILE_LICENCE declaration 
./src/drivers/net/ath/ath9k/ath9k_mac.c no FILE_LICENCE declaration 
./src/drivers/net/ath/ath9k/ath9k_xmit.c no FILE_LICENCE declaration 
./src/drivers/net/ath/ath9k/ath9k_ar9003_hw.c no FILE_LICENCE declaration 
./src/drivers/net/ath/ath9k/ath9k_ani.c no FILE_LICENCE declaration 
./src/drivers/net/ath/ath9k/ath9k.c no FILE_LICENCE declaration 
./src/drivers/net/ath/ath9k/ath9k_eeprom_9287.c no FILE_LICENCE declaration 
./src/drivers/net/ath/ath9k/ath9k_main.c no FILE_LICENCE declaration 
./src/drivers/net/ath/ath9k/ath9k_ar9002_calib.c no FILE_LICENCE declaration 
./src/drivers/net/ath/ath9k/ath9k_eeprom_4k.c no FILE_LICENCE declaration 
./src/drivers/net/ath/ath9k/ath9k_eeprom_def.c no FILE_LICENCE declaration 
./src/drivers/net/ath/ath9k/ath9k_ar9003_eeprom.c no FILE_LICENCE declaration 
./src/drivers/net/ath/ath9k/ath9k_ar5008_phy.c no FILE_LICENCE declaration 
./src/drivers/net/ath/ath9k/ath9k_init.c no FILE_LICENCE declaration 
./src/drivers/net/ath/ath9k/ath9k_ar9002_phy.c no FILE_LICENCE declaration 
./src/drivers/net/ath/ath9k/ath9k_ar9003_calib.c no FILE_LICENCE declaration 
./src/drivers/net/ath/ath9k/ath9k_recv.c no FILE_LICENCE declaration 
./src/drivers/net/ath/ath9k/ath9k_eeprom.c no FILE_LICENCE declaration 
./src/drivers/net/ath/ath_hw.c no FILE_LICENCE declaration 
./src/drivers/net/ath/ath_main.c no FILE_LICENCE declaration 
./src/drivers/net/ath/ath_regd.c no FILE_LICENCE declaration 
./src/drivers/net/ath/ath_key.c no FILE_LICENCE declaration 
./src/drivers/net/sis900.c GPL2_ANY but no comment
./src/drivers/net/rtl8139.c GPL2_ANY but no comment
./src/drivers/net/3c509.c BSD2 but no comment
./src/drivers/net/depca.c GPL2_ANY but no comment
./src/drivers/net/igb/igb.c GPL2_ONLY but no comment
./src/drivers/net/igb/igb_82575.c GPL2_ONLY but no comment
./src/drivers/net/igb/igb_api.c GPL2_ONLY but no comment
./src/drivers/net/igb/igb_nvm.c GPL2_ONLY but no comment
./src/drivers/net/igb/igb_mac.c GPL2_ONLY but no comment
./src/drivers/net/igb/igb_main.c GPL2_ONLY but no comment
./src/drivers/net/igb/igb_manage.c GPL2_ONLY but no comment
./src/drivers/net/igb/igb_phy.c GPL2_ONLY but no comment
./src/drivers/net/jme.c GPL2_OR_LATER disagrees with comment
./src/drivers/net/smc9000.c GPL2_ANY but no comment
./src/drivers/net/legacy.c GPL2_OR_LATER but no comment
./src/drivers/net/e1000/e1000_manage.c GPL2_OR_LATER but no comment
./src/drivers/net/e1000/e1000_api.c GPL2_OR_LATER but no comment
./src/drivers/net/e1000/e1000_main.c GPL2_ONLY but no comment
./src/drivers/net/e1000/e1000_82543.c GPL2_OR_LATER but no comment
./src/drivers/net/e1000/e1000_mac.c GPL2_OR_LATER but no comment
./src/drivers/net/e1000/e1000_phy.c GPL2_OR_LATER but no comment
./src/drivers/net/e1000/e1000_82540.c GPL2_OR_LATER but no comment
./src/drivers/net/e1000/e1000_82542.c GPL2_OR_LATER but no comment
./src/drivers/net/e1000/e1000.c GPL2_ONLY but no comment
./src/drivers/net/e1000/e1000_82541.c GPL2_OR_LATER but no comment
./src/drivers/net/e1000/e1000_nvm.c GPL2_OR_LATER but no comment
./src/drivers/net/3c529.c BSD2 but no comment
./src/drivers/net/ne.c no FILE_LICENCE declaration 
./src/drivers/net/cs89x0.c GPL2_ONLY but no comment
./src/drivers/net/3c90x.c BSD2 but no comment
./src/drivers/net/etherfabric.c GPL2_ANY but no comment
./src/drivers/net/3c509-eisa.c no FILE_LICENCE declaration 
./src/drivers/net/3c503.c no FILE_LICENCE declaration 
./src/drivers/net/wd.c no FILE_LICENCE declaration 
./src/drivers/bus/pciextra.c GPL2_OR_LATER but no comment
./src/drivers/bus/eisa.c GPL2_OR_LATER but no comment
./src/drivers/bus/isa_ids.c no FILE_LICENCE declaration 
./src/drivers/bus/virtio-pci.c no FILE_LICENCE declaration 
./src/drivers/bus/isa.c GPL2_OR_LATER but no comment
./src/drivers/bus/mca.c BSD2 but no comment
./src/drivers/bus/virtio-ring.c GPL2_OR_LATER but no comment
./src/drivers/infiniband/linda_fw.c GPL2_ONLY but no comment
./src/drivers/block/ibft.c BSD2 but no comment
./src/drivers/linux/tap.c no FILE_LICENCE declaration possible GPL 2 or later
./src/net/tcpip.c GPL2_OR_LATER but no comment
./src/net/tcp.c GPL2_OR_LATER but no comment
./src/net/ipv4.c GPL2_OR_LATER but no comment
./src/net/tcp/ftp.c no FILE_LICENCE declaration 
./src/net/ipv6.c no FILE_LICENCE declaration 
./src/net/udp.c GPL2_OR_LATER but no comment
./src/net/mii.c no FILE_LICENCE declaration possible GPL 1 only
./src/net/icmpv6.c no FILE_LICENCE declaration 
./src/net/ndp.c no FILE_LICENCE declaration 
./src/core/misc.c GPL2_OR_LATER but no comment
./src/core/null_nap.c no FILE_LICENCE declaration 
./src/core/pc_kbd.c no FILE_LICENCE declaration 
./src/core/bitops.c GPL2_OR_LATER but no comment
./src/core/serial.c GPL2_OR_LATER but no comment
./src/core/random.c GPL2_OR_LATER but no comment
./src/core/main.c GPL2_OR_LATER but no comment
./src/core/hw.c no FILE_LICENCE declaration 
./src/core/asprintf.c GPL2_OR_LATER but no comment
./src/core/btext.c no FILE_LICENCE declaration 
./src/core/serial_console.c no FILE_LICENCE declaration 
./src/core/errno.c no FILE_LICENCE declaration 
./src/core/pcmcia.c GPL2_ONLY but no comment
./src/core/i82365.c no FILE_LICENCE declaration 
./src/core/console.c GPL2_OR_LATER but no comment
./src/tests/uri_test.c no FILE_LICENCE declaration 
./src/tests/umalloc_test.c no FILE_LICENCE declaration 
./src/tests/linebuf_test.c no FILE_LICENCE declaration 
./src/tests/memcpy_test.c no FILE_LICENCE declaration 
./src/arch/i386/interface/pcbios/biosint.c GPL2_OR_LATER but no comment
./src/arch/i386/interface/pcbios/bios_nap.c GPL2_OR_LATER but no comment
./src/arch/i386/interface/syslinux/comboot_resolv.c GPL2_OR_LATER but no comment
./src/arch/i386/core/aout_loader.c no FILE_LICENCE declaration 
./src/arch/i386/core/wince_loader.c no FILE_LICENCE declaration 
./src/arch/i386/core/cpu.c no FILE_LICENCE declaration 
./src/arch/i386/core/relocate.c GPL2_OR_LATER but no comment
./src/arch/i386/core/nulltrap.c no FILE_LICENCE declaration 
./src/arch/i386/core/freebsd_loader.c no FILE_LICENCE declaration 
./src/arch/i386/core/dumpregs.c no FILE_LICENCE declaration 
./src/arch/i386/core/video_subr.c no FILE_LICENCE declaration 
./src/arch/i386/image/nbi.c no FILE_LICENCE declaration 
./src/arch/i386/transitions/librm_mgmt.c GPL2_OR_LATER but no comment
./src/crypto/axtls/aes.c no FILE_LICENCE declaration possible BSD
./src/hci/strerror.c GPL2_OR_LATER but no comment
./src/hci/mucurses/winattrs.c GPL2_OR_LATER but no comment
./src/hci/mucurses/ansi_screen.c GPL2_OR_LATER but no comment
./src/hci/mucurses/mucurses.c GPL2_OR_LATER but no comment
./src/hci/mucurses/kb.c no FILE_LICENCE declaration 
./src/hci/mucurses/wininit.c GPL2_OR_LATER but no comment
./src/hci/mucurses/slk.c no FILE_LICENCE declaration 
./src/hci/mucurses/alert.c no FILE_LICENCE declaration 
./src/hci/mucurses/colour.c GPL2_OR_LATER but no comment
./src/hci/mucurses/print.c GPL2_OR_LATER but no comment
./src/hci/mucurses/edging.c no FILE_LICENCE declaration 
./src/hci/mucurses/clear.c GPL2_OR_LATER but no comment
./src/hci/mucurses/print_nadv.c no FILE_LICENCE declaration 
./src/hci/mucurses/windows.c no FILE_LICENCE declaration 
./src/libgcc/__moddi3.c no FILE_LICENCE declaration 
./src/libgcc/icc.c no FILE_LICENCE declaration 
./src/libgcc/memcpy.c no FILE_LICENCE declaration 
./src/libgcc/__divdi3.c no FILE_LICENCE declaration 
./src/libgcc/__umoddi3.c no FILE_LICENCE declaration 
./src/libgcc/__udivdi3.c no FILE_LICENCE declaration 
./src/libgcc/__udivmoddi4.c no FILE_LICENCE declaration 
./src/image/embedded.c GPL2_OR_LATER but no comment
./src/util/mucurses_test.c no FILE_LICENCE declaration 
./src/util/hijack.c no FILE_LICENCE declaration 
./src/util/zbin.c no FILE_LICENCE declaration 
./src/util/einfo.c no FILE_LICENCE declaration possible GPL 2 or later
./src/util/efirom.c no FILE_LICENCE declaration possible GPL 2 or later
./src/util/iccfix.c no FILE_LICENCE declaration 
./src/util/nrv2b.c no FILE_LICENCE declaration 
./src/util/elf2efi.c no FILE_LICENCE declaration possible GPL 2 or later

There are also many reports for '.h' files, but for brevity I'm not
going to list them. I hope this is all of assistance

Regards,
Daniel
-- 
|: http://berrange.com      -o-    http://www.flickr.com/photos/dberrange/ :|
|: http://libvirt.org              -o-             http://virt-manager.org :|
|: http://autobuild.org       -o-         http://search.cpan.org/~danberr/ :|
|: http://entangle-photo.org       -o-       http://live.gnome.org/gtk-vnc :|



More information about the ipxe-devel mailing list