arduino / Arduino

Arduino IDE 1.x
https://www.arduino.cc/en/software
Other
14.11k stars 7k forks source link

Missing license and copyright info from libraries and other files #1117

Open maqifrnswa opened 11 years ago

maqifrnswa commented 11 years ago

Many files have missing license and copyright info, which makes redistribution (and inclusion in commercial projects) problematic. I can do a pull for the assumed LGPL and GPL ones, but I don't know who the copyright holders are.

The most important ones to address are the libraries, since they are the most likely to be included in other projects and need clear distribution license/copyrights.

Libraries (assume LGPL, but no header or copyright info):

Wifi: ./libraries/WiFi/WiFi.cpp ./libraries/WiFi/WiFi.h ./libraries/WiFi/WiFiClient.cpp ./libraries/WiFi/WiFiClient.h ./libraries/WiFi/WiFiServer.cpp ./libraries/WiFi/WiFiServer.h ./libraries/WiFi/utility/debug.h ./libraries/WiFi/utility/server_drv.cpp ./libraries/WiFi/utility/server_drv.h ./libraries/WiFi/utility/socket.c ./libraries/WiFi/utility/socket.h ./libraries/WiFi/utility/spi_drv.cpp ./libraries/WiFi/utility/spi_drv.h ./libraries/WiFi/utility/wifi_drv.cpp ./libraries/WiFi/utility/wifi_drv.h ./libraries/WiFi/utility/wifi_spi.h ./libraries/WiFi/utility/wl_definitions.h ./libraries/WiFi/utility/wl_types.h

Stepper: ./libraries/Stepper/Stepper.cpp ./libraries/Stepper/Stepper.h

LiquidCrystal: ./libraries/LiquidCrystal/LiquidCrystal.cpp ./libraries/LiquidCrystal/LiquidCrystal.h

Firmata: ./libraries/Firmata/Boards.h (it is maintened by the owner now)

Ethernet: ./libraries/Ethernet/Dhcp.cpp ./libraries/Ethernet/Dhcp.h ./libraries/Ethernet/Ethernet.cpp ./libraries/Ethernet/Ethernet.h ./libraries/Ethernet/EthernetClient.cpp ./libraries/Ethernet/EthernetClient.h ./libraries/Ethernet/EthernetServer.cpp ./libraries/Ethernet/EthernetServer.h ./libraries/Ethernet/util.h ./libraries/Ethernet/utility/socket.cpp ./libraries/Ethernet/utility/socket.h

Firmwares (Wifi shield is unclear): ./hardware/arduino/firmwares/wifishield/scripts/ArduinoWifiShield_upgrade.sh ./hardware/arduino/firmwares/wifishield/scripts/ArduinoWifiShield_upgrade_mac.sh ./hardware/arduino/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/COMPONENTS/WIFI/HD/wl_os.h ./hardware/arduino/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/include/lwip/dhcp.h ./hardware/arduino/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/include/lwip/memp_std.h ./hardware/arduino/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-port-1.3.2/HD/if/include/arch/perf.h ./hardware/arduino/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-port-1.3.2/HD/if/include/netif/wlif.h ./hardware/arduino/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-port-1.3.2/HD/if/netif/wlif.c ./hardware/arduino/firmwares/wifishield/wifiHD/src/ard_spi.c ./hardware/arduino/firmwares/wifishield/wifiHD/src/ard_spi.h ./hardware/arduino/firmwares/wifishield/wifiHD/src/ard_tcp.c ./hardware/arduino/firmwares/wifishield/wifiHD/src/ard_tcp.h ./hardware/arduino/firmwares/wifishield/wifiHD/src/ard_utils.c ./hardware/arduino/firmwares/wifishield/wifiHD/src/ard_utils.h ./hardware/arduino/firmwares/wifishield/wifiHD/src/debug.h ./hardware/arduino/firmwares/wifishield/wifiHD/src/lwip_setup.h ./hardware/arduino/firmwares/wifishield/wifiHD/src/main.c ./hardware/arduino/firmwares/wifishield/wifiHD/src/nvram.h ./hardware/arduino/firmwares/wifishield/wifiHD/src/owl_os.c ./hardware/arduino/firmwares/wifishield/wifiHD/src/wifi_spi.h ./hardware/arduino/firmwares/wifishield/wifiHD/src/wl_definitions.h

Cores (assume GPL?): ./hardware/arduino/cores/arduino/Arduino.h ./hardware/arduino/cores/arduino/Client.h ./hardware/arduino/cores/arduino/IPAddress.cpp ./hardware/arduino/cores/arduino/Platform.h ./hardware/arduino/cores/arduino/Server.h ./hardware/arduino/cores/arduino/USBAPI.h ./hardware/arduino/cores/arduino/binary.h ./hardware/arduino/cores/arduino/main.cpp ./hardware/arduino/cores/arduino/new.cpp ./hardware/arduino/cores/arduino/new.h

Bootloaders (optiboot is GPL v2 according to http://code.google.com/p/optiboot/ but I can't find copyright info or license info attributing that in Arduino): ./hardware/arduino/bootloaders/optiboot/optiboot.c ./hardware/arduino/bootloaders/optiboot/pin_defs.h ./hardware/arduino/bootloaders/optiboot/stk500.h ./hardware/arduino/bootloaders/stk500v2/avrinterruptnames.h ./hardware/arduino/bootloaders/stk500v2/command.h

Misc. core files (I assume GPL?): ./core/make.sh ./core/methods/src/PAppletMethods.java ./core/preproc.pl ./core/preproc/src/processing/build/PAppletMethods.java ./core/src/processing/core/PShapeSVG.java

(EDIT by cmaglie: launch4j has been removed from repository, it's now downloaded at build time) Windows launcher4j: ./build/windows/launcher/launch4j/src/net/sf/launch4j/form/BasicForm.java ./build/windows/launcher/launch4j/src/net/sf/launch4j/form/ClassPathForm.java ./build/windows/launcher/launch4j/src/net/sf/launch4j/form/ConfigForm.java ./build/windows/launcher/launch4j/src/net/sf/launch4j/form/EnvironmentVarsForm.java ./build/windows/launcher/launch4j/src/net/sf/launch4j/form/HeaderForm.java ./build/windows/launcher/launch4j/src/net/sf/launch4j/form/JreForm.java ./build/windows/launcher/launch4j/src/net/sf/launch4j/form/MessagesForm.java ./build/windows/launcher/launch4j/src/net/sf/launch4j/form/SingleInstanceForm.java ./build/windows/launcher/launch4j/src/net/sf/launch4j/form/SplashForm.java ./build/windows/launcher/launch4j/src/net/sf/launch4j/form/VersionInfoForm.java ./build/windows/launcher/launch4j/src/net/sf/launch4j/formimpl/GlassPane.java

Examples (pretty minor since they might not be considered copyrightable, but should keep track of it): ./build/shared/examples/02.Digital/toneKeyboard/pitches.h ./build/shared/examples/02.Digital/toneMelody/pitches.h ./build/shared/examples/02.Digital/toneMultiple/pitches.h

Processing files: ./app/src/processing/app/I18n.java ./app/src/processing/app/Resources.java ./app/src/processing/app/WebServer.java ./app/src/processing/app/i18n_update.py ./app/src/processing/app/i18n_update.sh ./app/src/processing/app/syntax/im/CompositionTextManager.java ./app/src/processing/app/syntax/im/CompositionTextPainter.java ./app/src/processing/app/syntax/im/InputMethodSupport.java ./app/src/processing/app/windows/Advapi32.java ./app/src/processing/app/windows/Options.java ./app/src/processing/app/windows/Registry.java ./app/src/processing/app/windows/WINBASE.java ./app/src/processing/app/windows/WINERROR.java ./app/src/processing/app/windows/WINNT.java ./app/src/processing/app/windows/WINREG.java

Misc utilities: ./build/cmd/dist.sh ./build/create_reference.pl ./build/fetch.sh ./build/javadoc/make.sh ./build/javadoc/upload.sh ./build/shared/tools/Mangler/make.sh

cmaglie commented 10 years ago

See also #1847 for some follow ups. I'll strike-through the completed files by editing the original issue.

C

NicoHood commented 7 years ago

I just found this in one of the fedora or opensuse rpms:

# The "extra" wifi components are licensed non-free and do not fall under the
# "firmware" execption.
rm -rf hardware/arduino/avr/firmwares/wifishield
rm -rf libraries/WiFi/extras
# As mentioned earlier, binary forms are removed here.
find -type d \( -name macosx -o -name windows \) -print0 | xargs -0 rm -rf
find -name '*.tgz' -delete
find -name '*.tar.gz' -delete
find -name '*.elf' -delete
find -name '*.class' -delete
find -name '*.jar' -delete
find -name '*.so' -delete
find -name '*.hex' -delete

This refers to those files: https://github.com/arduino/Arduino/tree/master/hardware/arduino/avr/firmwares/wifishield https://github.com/arduino-libraries/WiFi101-FirmwareUpdater-Plugin

The firmware updater seems to be GPL, but which license does the wifishielf firmware has? Or do you have any idea why they got removed in their rpm?

per1234 commented 7 years ago

Bootloaders (optiboot is GPL v2 according to http://code.google.com/p/optiboot/ but I can't find copyright info or license info attributing that in Arduino): ./hardware/arduino/bootloaders/optiboot/optiboot.c

Isn't it here?: https://github.com/arduino/Arduino/blob/1.8.3/hardware/arduino/avr/bootloaders/optiboot/optiboot.c#L59-L77

giallu commented 7 years ago

I am the current Fedora RPM maintainer and I am also wondering why the .hex files were removed in our package. Apparently, that was made in response to this opened issue: https://bugzilla.redhat.com/show_bug.cgi?id=949158

However, I can see the corresponding sources for the hex files are included and with a free license so I will revert the change for now.

cmaglie commented 7 years ago

@giallu you should ask the Fedora RPM maintainers to do so, since it's their decision to remove the .hex files. As Arduino we are not involved in any way with the package maintenance.

cmaglie commented 7 years ago

sorry just re-read your message again... :-)

However, I can see the corresponding sources for the hex files are included and with a free license so I will revert the change for now.

I think it's the right choice, some of those .hex are needed for the "Burn Bootloader" command to work.

per1234 commented 4 years ago

LiquidCrystal: ./libraries/LiquidCrystal/LiquidCrystal.cpp ./libraries/LiquidCrystal/LiquidCrystal.h

There is now a license defined in the library's readme: https://github.com/arduino-libraries/LiquidCrystal/blob/master/README.adoc

Ethernet: ./libraries/Ethernet/Dhcp.cpp ./libraries/Ethernet/Dhcp.h

There is now a license defined in the library's readme: https://github.com/arduino-libraries/Ethernet/blob/master/README.adoc

Is that sufficient?