EDIT – READ FIRST:
After a discussion we’ve had it turns out the issues are more or less minor, easily fixable, so new readers, please don’t freak out!
Original text follows.
I’ve found that PokittoLib has some licensing issues – many small ones, but also some that I think may be critical and not allowing to use PokittoLib commercially due to terms of non-FOSS licenses in third party source files and not advertising it as open-source. I would like to bring this up so that it can be resolved.
Missing licenses
So firstly there are the missing licenses for files, which happens mistakingly, but still. It’s no big deal, provided it’s fixed soon.
However, this shows the error-proneness and also confusing nature of the way the files are currently licensed – that is separately, in each file’s header. Could we please consider for example creating a LICENSE file for each folder, OR putting a License section in README where there would be clearly stated what license applies to what.
Where absence of licenses currently hurts the most is the examples. The reason is that many programs, and most of these written by beginners, are a derivative work of some example. These programs when published are all copyright infringements.
Here are some files I found that have a license missing:
Summary
PokittoLib/Pokitto/mbed-pokitto/api/InterrputManager.h
PokittoLib/Pokitto/mbed-pokitto/common/InterrputManager.cpp
PokittoLib/Pokitto/mbed-pokitto/common/CallChain.cpp
PokittoLib/Pokitto/mbed-pokitto/targets/cmsis/TARGET_NXP/TARGET_LPC11U6X/cmsis_nvic.h
PokittoLib/Pokitto/mbed-pokitto/targets/cmsis/TARGET_NXP/TARGET_LPC11U6X/TOOLCHAIN_GCC_ARM/TARGET_LPC11U68/LPC11U68.ld
PokittoLib/Pokitto/mbed-pokitto/targets/cmsis/TARGET_NXP/TARGET_LPC11U6X/TOOLCHAIN_GCC_ARM/TARGET_LPC11U68/startup_LPC11U68.cpp
PokittoLib/Pokitto/POKITTO_CORE/binary.h
PokittoLib/Pokitto/POKITTO_CORE/PokittoPalettes.h
PokittoLib/Pokitto/POKITTO_CORE/FONTS/dragon6x8.cpp
PokittoLib/Pokitto/POKITTO_CORE/FONTS/fontC64.cpp
PokittoLib/Pokitto/POKITTO_CORE/FONTS/fontC64UIGfx.cpp
PokittoLib/Pokitto/POKITTO_CORE/FONTS/fontMonkey.cpp
PokittoLib/Pokitto/POKITTO_CORE/FONTS/karateka8x11
PokittoLib/Pokitto/POKITTO_CORE/FONTS/koubit7x7.cpp
PokittoLib/Pokitto/POKITTO_CORE/FONTS/mini4x6.cpp
PokittoLib/Pokitto/POKITTO_CORE/FONTS/runes6x8.cpp
PokittoLib/Pokitto/POKITTO_CORE/FONTS/TIC806x6.cpp
PokittoLib/Pokitto/POKITTO_CORE/FONTS/tight4x7.cpp
PokittoLib/Pokitto/POKITTO_CORE/FONTS/tiny5x7.cpp
PokittoLib/Pokitto/POKITTO_CORE/FONTS/ZXSpec.cpp
PokittoLib/Pokitto/POKITTO_CORE/PALETTES/palAction.cpp
PokittoLib/Pokitto/POKITTO_CORE/PALETTES/palCGA.cpp
PokittoLib/Pokitto/POKITTO_CORE/PALETTES/palDB16.cpp
PokittoLib/Pokitto/POKITTO_CORE/PALETTES/palDefault.cpp
PokittoLib/Pokitto/POKITTO_CORE/PALETTES/palGameboy.cpp
PokittoLib/Pokitto/POKITTO_CORE/PALETTES/palMagma.cpp
PokittoLib/Pokitto/POKITTO_CORE/PALETTES/palMono.cpp
PokittoLib/Pokitto/POKITTO_CORE/PALETTES/palPico.cpp
PokittoLib/Pokitto/POKITTO_CORE/PALETTES/palRainbow.cpp
PokittoLib/Pokitto/POKITTO_CORE/PALETTES/palZXSpec.cpp
PokittoLib/Pokitto/POKITTO_HW/clock_11u6x.c
PokittoLib/Pokitto/POKITTO_HW/loader.h
PokittoLib/Pokitto/POKITTO_HW/lpc_defs.h
PokittoLib/Pokitto/POKITTO_HW/Pokitto_extport.h
PokittoLib/Pokitto/POKITTO_HW/Pokitto_extport.cpp
PokittoLib/Pokitto/POKITTO_LIBS/FileIO/FileIO.h
PokittoLib/Pokitto/POKITTO_LIBS/FixMath/fix16.c
PokittoLib/Pokitto/POKITTO_LIBS/FixMath/fix16.h
PokittoLib/Pokitto/POKITTO_LIBS/FixMath/fix16_sqrt.c
PokittoLib/Pokitto/POKITTO_LIBS/FixMath/fix16_trig_sin_lut.h
PokittoLib/Pokitto/POKITTO_LIBS/FixMath/fixmath.h
PokittoLib/Pokitto/POKITTO_LIBS/FixMath/fract32.h
PokittoLib/Pokitto/POKITTO_LIBS/FixMath/uint32.h
PokittoLib/Pokitto/POKITTO_LIBS/FixMath/fix16_exp.c
PokittoLib/Pokitto/POKITTO_LIBS/FixMath/fix16.hpp
PokittoLib/Pokitto/POKITTO_LIBS/FixMath/fix16_trig.c
PokittoLib/Pokitto/POKITTO_LIBS/FixMath/fract32.c
PokittoLib/Pokitto/POKITTO_LIBS/FixMath/int64.h
PokittoLib/Pokitto/POKITTO_LIBS/FixMath/uint32.c
PokittoLib/Pokitto/POKITTO_LIBS/ImageFormat/defines_linux_SIM.h
PokittoLib/Pokitto/POKITTO_LIBS/ImageFormat/defines_win_SIM.h
PokittoLib/Pokitto/POKITTO_LIBS/JoyHat/JoyHat.cpp
PokittoLib/Pokitto/POKITTO_LIBS/MicroPython/mpconfigport.h
PokittoLib/Pokitto/POKITTO_LIBS/MicroPython/My_settings.h
PokittoLib/Pokitto/POKITTO_LIBS/MicroPython/genhdr/qstrdefs.generated.h
PokittoLib/Pokitto/POKITTO_LIBS/MicroPython/genhdr/qstrdefs.preprocessed.h
PokittoLib/Pokitto/POKITTO_LIBS/MicroPython/other/frogitto_data.py
PokittoLib/Pokitto/POKITTO_LIBS/MicroPython/other/frogitto_main.py
PokittoLib/Pokitto/POKITTO_LIBS/MicroPython/other/marsattack_data.py
PokittoLib/Pokitto/POKITTO_LIBS/MicroPython/other/marsattack_main.py
PokittoLib/Pokitto/POKITTO_LIBS/MicroPython/other/oscmain.py
PokittoLib/Pokitto/POKITTO_LIBS/MicroPython/other/perf_test.py
PokittoLib/Pokitto/POKITTO_LIBS/MicroPython/src_py/example_data.py
PokittoLib/Pokitto/POKITTO_LIBS/MicroPython/src_py/example_main.py
PokittoLib/Pokitto/POKITTO_LIBS/MicroPython/tools/makeqstrdata.py
PokittoLib/Pokitto/POKITTO_LIBS/Physics/Physics.h
PokittoLib/Pokitto/POKITTO_LIBS/SDFileSystem/FATFileSystem/MemFileSystem.h
PokittoLib/Pokitto/POKITTO_LIBS/USBDevice/USBDevice/USBEndpoints_EFM32.h
Non-FOSS licenses
This may be a bigger issue – there are files, some as I understand essential to any build, and some from third parties, that have licenses that forbid some uses, which may clash with Pokitto’s commercial nature. E.g.:
-
Pokitto/POKITTO_HW/clock_11u6x.h
:
Copyright© NXP Semiconductors, 2013
All rights reserved.
Software that is described herein is for illustrative purposes only
which provides customers with programming information regarding the
LPC products. This software is supplied "AS IS" without any warranties of
any kind, and NXP Semiconductors and its licensor disclaim any and
all warranties, express or implied, including all implied warranties of
merchantability, fitness for a particular purpose and non-infringement of
intellectual property rights. NXP Semiconductors assumes no responsibility
or liability for the use of the software, conveys no license or rights under any
patent, copyright, mask work right, or any other intellectual property rights in
or to any products. NXP Semiconductors reserves the right to make changes
in the software without notification. NXP Semiconductors also makes no
representation or warranty that such application will be suitable for the
specified use without further testing or modification.
Permission to use, copy, modify, and distribute this software and its documentation is hereby granted, under NXP Semiconductors’ and its licensor’s relevant copyrights in the software, without fee, provided that it is used in conjunction with NXP Semiconductors microcontrollers. This copyright, permission, and disclaimer notice must appear in all copies of this code.
-
Pokitto/POKITTO_HW/iap.h
:
Copyright© 2010, NXP Semiconductor
All rights reserved.
Software that is described herein is for illustrative purposes only
which provides customers with programming information regarding the
products. This software is supplied "AS IS" without any warranties.
NXP Semiconductors assumes no responsibility or liability for the
use of the software, conveys no license or title under any patent,
copyright, or mask work right to the product. NXP Semiconductors
reserves the right to make changes in the software without
notification. NXP Semiconductors also make no representation or
warranty that such application will be suitable for the specified
use without further testing or modification.
-
Pokitto/POKITTO_LIBS/USBDevice/USBDevice/USBRegs_STM32.h
:
Licensed under MCD-ST Liberty SW License Agreement V2.
This software or any part thereof, including modifications and/or derivative works of this software, must be used and execute solely and exclusively on or in combination with a microcontroller or microprocessor device manufactured by or for STMicroelectronics.
No use, reproduction or redistribution of this software partially or totally may be done in any manner that would subject this software to any Open Source Terms.
Redistribution and use of this software or any part thereof other than as permitted under this license is void and will automatically terminate your rights under this license.
Here’s the list of files I found that have non-FOSS licenses:
Summary
PokittoLib/Pokitto/POKITTO_CORE/PokittoDisk.cpp
PokittoLib/Pokitto/POKITTO_HW/clock_11u6x.h
PokittoLib/Pokitto/POKITTO_HW/iap.h
PokittoLib/Pokitto/POKITTO_HW/iap.h
PokittoLib/Pokitto/POKITTO_HW/lpc_types.h
PokittoLib/Pokitto/POKITTO_HW/sct_11u6x.h
PokittoLib/Pokitto/POKITTO_HW/sys_config.h
PokittoLib/Pokitto/POKITTO_LIBS/ImageFormat/ImageFormat.h
PokittoLib/Pokitto/POKITTO_LIBS/Synth/Synth.h
PokittoLib/Pokitto/POKITTO_LIBS/Synth/Synth_helpers.cpp
PokittoLib/Pokitto/POKITTO_LIBS/Synth/Synth_osc.h
PokittoLib/Pokitto/POKITTO_LIBS/Synth/Synth_song.h
PokittoLib/Pokitto/POKITTO_LIBS/USBDevice/USBDevice/USBRegs_STM32.h
I personally don’t know how important the most problematic files are and whether they can be replaced easily. Could anyone knowledgeable analyze this and offer possible solutions?
I don’t doubt the best intentions and that effort will be made to fixing the issues, but because there are many priorities for Pokitto this may take some time, and so I created a personal fork of PokittoLib here, where I’ll try to fix the files, even for the price of potentially dropping some functionality. I’ll be trying to:
- identify licenses and problematic files
- make these more clear
- drop, replace or rewrite the problematic files
This will only include the basic library, not the examples and external stuff. I’ll share any info I’ll gather during this project to help fix the official version as well.