arduino / arduino/Arduino

Missing license and copyright info from libraries and other files

Open
#1,117 7 comments 0 reactions 0 assignees View on GitHub
Component: Bootloader Component: Core Component: Documentation Component: Firmware Component: IDE Library: Ethernet Library: LiquidCrystal Type: Bug
Dominant language
Java
Stars
14.6k
Forks
7k
PR merge metrics
No merged PRs in 30d

Description

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

Contributor guide

Open the contributing guide

Research direction

Start by reviewing the listed library, firmware, bootloader, core, app, and utility paths, including libraries/LiquidCrystal, hardware/arduino/bootloaders/optiboot, and app/src/processing/app. Trace each file to its upstream project or existing repository license records before deciding what attribution applies. Done means the affected files have verified license and copyright information rather than assumptions.

Written by the indexing model from the issue text.

Assessment

Tech stack
c, cpp, java, perl, python, shell
Domain
documentation
Issue type
Documentation
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.