Opened 7 years ago
Last modified 3 years ago
#13814 new bug
GPL License Review
Reported by: | kallisti5 | Owned by: | nobody |
---|---|---|---|
Priority: | high | Milestone: | Unscheduled |
Component: | - General | Version: | R1/Development |
Keywords: | Cc: | bonefish | |
Blocked By: | Blocking: | ||
Platform: | All |
Description
We have random sources around our tree which list the GPL license.
These should be reviewed to ensure our continued MIT license compliance.
kallisti5@eris haiku :) $ find src -name "*.cpp" -exec ./3rdparty/kallisti5/licenseReport.rb {} \; | grep GPL src/add-ons/kernel/drivers/audio/echo/generic/C3g.cpp: GPL src/add-ons/kernel/drivers/audio/echo/generic/C3gDco.cpp: GPL src/add-ons/kernel/drivers/audio/echo/generic/CChannelMask.cpp: GPL src/add-ons/kernel/drivers/audio/echo/generic/CDaffyDuck.cpp: GPL src/add-ons/kernel/drivers/audio/echo/generic/CDarla.cpp: GPL src/add-ons/kernel/drivers/audio/echo/generic/CDarla24.cpp: GPL src/add-ons/kernel/drivers/audio/echo/generic/CDarla24DspCommObject.cpp: GPL src/add-ons/kernel/drivers/audio/echo/generic/CDarlaDspCommObject.cpp: GPL src/add-ons/kernel/drivers/audio/echo/generic/CDspCommObject.cpp: GPL src/add-ons/kernel/drivers/audio/echo/generic/CDspCommObjectVmixer.cpp: GPL src/add-ons/kernel/drivers/audio/echo/generic/CEchoGals.cpp: GPL src/add-ons/kernel/drivers/audio/echo/generic/CEchoGalsMTC.cpp: GPL src/add-ons/kernel/drivers/audio/echo/generic/CEchoGalsVmixer.cpp: GPL src/add-ons/kernel/drivers/audio/echo/generic/CEchoGals_info.cpp: GPL src/add-ons/kernel/drivers/audio/echo/generic/CEchoGals_midi.cpp: GPL src/add-ons/kernel/drivers/audio/echo/generic/CEchoGals_mixer.cpp: GPL src/add-ons/kernel/drivers/audio/echo/generic/CEchoGals_power.cpp: GPL src/add-ons/kernel/drivers/audio/echo/generic/CEchoGals_transport.cpp: GPL src/add-ons/kernel/drivers/audio/echo/generic/CGMLDspCommObject.cpp: GPL src/add-ons/kernel/drivers/audio/echo/generic/CGdDspCommObject.cpp: GPL src/add-ons/kernel/drivers/audio/echo/generic/CGina.cpp: GPL src/add-ons/kernel/drivers/audio/echo/generic/CGina24.cpp: GPL src/add-ons/kernel/drivers/audio/echo/generic/CGina24DspCommObject.cpp: GPL src/add-ons/kernel/drivers/audio/echo/generic/CGinaDspCommObject.cpp: GPL src/add-ons/kernel/drivers/audio/echo/generic/CIndigo.cpp: GPL src/add-ons/kernel/drivers/audio/echo/generic/CIndigoDJ.cpp: GPL src/add-ons/kernel/drivers/audio/echo/generic/CIndigoDJDspCommObject.cpp: GPL src/add-ons/kernel/drivers/audio/echo/generic/CIndigoDspCommObject.cpp: GPL src/add-ons/kernel/drivers/audio/echo/generic/CIndigoIO.cpp: GPL src/add-ons/kernel/drivers/audio/echo/generic/CIndigoIODspCommObject.cpp: GPL src/add-ons/kernel/drivers/audio/echo/generic/CLayla.cpp: GPL src/add-ons/kernel/drivers/audio/echo/generic/CLayla24.cpp: GPL src/add-ons/kernel/drivers/audio/echo/generic/CLayla24DspCommObject.cpp: GPL src/add-ons/kernel/drivers/audio/echo/generic/CLaylaDspCommObject.cpp: GPL src/add-ons/kernel/drivers/audio/echo/generic/CLineLevel.cpp: GPL src/add-ons/kernel/drivers/audio/echo/generic/CMia.cpp: GPL src/add-ons/kernel/drivers/audio/echo/generic/CMiaDspCommObject.cpp: GPL src/add-ons/kernel/drivers/audio/echo/generic/CMidiInQ.cpp: GPL src/add-ons/kernel/drivers/audio/echo/generic/CMona.cpp: GPL src/add-ons/kernel/drivers/audio/echo/generic/CMonaDspCommObject.cpp: GPL src/add-ons/kernel/drivers/audio/echo/generic/CMonitorCtrl.cpp: GPL src/add-ons/kernel/drivers/audio/echo/generic/CMtcSync.cpp: GPL src/add-ons/kernel/drivers/audio/echo/generic/CPipeOutCtrl.cpp: GPL src/add-ons/kernel/drivers/audio/echo/generic/OsSupportBeOS.cpp: GPL src/add-ons/kernel/drivers/network/wwan/usb_beceemwmx/BeceemCPU.cpp: GPL src/add-ons/kernel/drivers/network/wwan/usb_beceemwmx/BeceemDDR.cpp: GPL src/add-ons/kernel/drivers/network/wwan/usb_beceemwmx/BeceemDevice.cpp: GPL src/add-ons/kernel/drivers/network/wwan/usb_beceemwmx/BeceemLED.cpp: GPL src/add-ons/kernel/drivers/network/wwan/usb_beceemwmx/BeceemNVM.cpp: GPL src/add-ons/kernel/file_systems/ramfs/Volume.cpp: GPL src/add-ons/kernel/file_systems/ramfs/kernel_interface.cpp: GPL src/add-ons/kernel/file_systems/reiserfs/Block.cpp: GPL src/add-ons/kernel/file_systems/reiserfs/BlockCache.cpp: GPL src/add-ons/kernel/file_systems/reiserfs/Item.cpp: GPL src/add-ons/kernel/file_systems/reiserfs/Iterators.cpp: GPL src/add-ons/kernel/file_systems/reiserfs/Settings.cpp: GPL src/add-ons/kernel/file_systems/reiserfs/SuperBlock.cpp: GPL src/add-ons/kernel/file_systems/reiserfs/Tree.cpp: GPL src/add-ons/kernel/file_systems/reiserfs/VNode.cpp: GPL src/add-ons/kernel/file_systems/reiserfs/Volume.cpp: GPL src/add-ons/kernel/file_systems/reiserfs/kernel_interface.cpp: GPL src/add-ons/media/plugins/ape_reader/MAClib/MD5.cpp: GPL src/add-ons/media/plugins/ffmpeg/AVFormatReader.cpp: GPL src/add-ons/media/plugins/ffmpeg/AVFormatWriter.cpp: GPL src/add-ons/media/plugins/matroska/libebml/Debug.cpp: GPL src/add-ons/media/plugins/matroska/libebml/EbmlBinary.cpp: GPL src/add-ons/media/plugins/matroska/libebml/EbmlContexts.cpp: GPL src/add-ons/media/plugins/matroska/libebml/EbmlCrc32.cpp: GPL src/add-ons/media/plugins/matroska/libebml/EbmlDate.cpp: GPL src/add-ons/media/plugins/matroska/libebml/EbmlDummy.cpp: GPL src/add-ons/media/plugins/matroska/libebml/EbmlElement.cpp: GPL src/add-ons/media/plugins/matroska/libebml/EbmlFloat.cpp: GPL src/add-ons/media/plugins/matroska/libebml/EbmlHead.cpp: GPL src/add-ons/media/plugins/matroska/libebml/EbmlMaster.cpp: GPL src/add-ons/media/plugins/matroska/libebml/EbmlSInteger.cpp: GPL src/add-ons/media/plugins/matroska/libebml/EbmlStream.cpp: GPL src/add-ons/media/plugins/matroska/libebml/EbmlString.cpp: GPL src/add-ons/media/plugins/matroska/libebml/EbmlSubHead.cpp: GPL src/add-ons/media/plugins/matroska/libebml/EbmlUInteger.cpp: GPL src/add-ons/media/plugins/matroska/libebml/EbmlUnicodeString.cpp: GPL src/add-ons/media/plugins/matroska/libebml/EbmlVersion.cpp: GPL src/add-ons/media/plugins/matroska/libebml/EbmlVoid.cpp: GPL src/add-ons/media/plugins/matroska/libebml/IOCallback.cpp: GPL src/add-ons/media/plugins/matroska/libebml/MemIOCallback.cpp: GPL src/add-ons/media/plugins/matroska/libebml/StdIOCallback.cpp: GPL src/add-ons/media/plugins/matroska/libmatroska/FileKax.cpp: GPL src/add-ons/media/plugins/matroska/libmatroska/KaxAttached.cpp: GPL src/add-ons/media/plugins/matroska/libmatroska/KaxAttachments.cpp: GPL src/add-ons/media/plugins/matroska/libmatroska/KaxBlock.cpp: GPL src/add-ons/media/plugins/matroska/libmatroska/KaxBlockData.cpp: GPL src/add-ons/media/plugins/matroska/libmatroska/KaxChapters.cpp: GPL src/add-ons/media/plugins/matroska/libmatroska/KaxCluster.cpp: GPL src/add-ons/media/plugins/matroska/libmatroska/KaxClusterData.cpp: GPL src/add-ons/media/plugins/matroska/libmatroska/KaxContentEncoding.cpp: GPL src/add-ons/media/plugins/matroska/libmatroska/KaxContexts.cpp: GPL src/add-ons/media/plugins/matroska/libmatroska/KaxCues.cpp: GPL src/add-ons/media/plugins/matroska/libmatroska/KaxCuesData.cpp: GPL src/add-ons/media/plugins/matroska/libmatroska/KaxInfo.cpp: GPL src/add-ons/media/plugins/matroska/libmatroska/KaxInfoData.cpp: GPL src/add-ons/media/plugins/matroska/libmatroska/KaxSeekHead.cpp: GPL src/add-ons/media/plugins/matroska/libmatroska/KaxSegment.cpp: GPL src/add-ons/media/plugins/matroska/libmatroska/KaxTag.cpp: GPL src/add-ons/media/plugins/matroska/libmatroska/KaxTagMulti.cpp: GPL src/add-ons/media/plugins/matroska/libmatroska/KaxTags.cpp: GPL src/add-ons/media/plugins/matroska/libmatroska/KaxTrackAudio.cpp: GPL src/add-ons/media/plugins/matroska/libmatroska/KaxTrackEntryData.cpp: GPL src/add-ons/media/plugins/matroska/libmatroska/KaxTrackVideo.cpp: GPL src/add-ons/media/plugins/matroska/libmatroska/KaxTracks.cpp: GPL src/add-ons/media/plugins/matroska/libmatroska/KaxVersion.cpp: GPL src/add-ons/media/plugins/rtsp_streamer/rtsp.cpp: GPL src/apps/mediaplayer/Controller.cpp: GPL src/apps/mediaplayer/ControllerView.cpp: GPL src/apps/mediaplayer/InfoWin.cpp: GPL src/apps/mediaplayer/MainApp.cpp: GPL src/apps/mediaplayer/playlist/Playlist.cpp: GPL src/apps/mediaplayer/MainWin.cpp: GPL src/apps/processcontroller/AutoIcon.cpp: GPL src/apps/processcontroller/IconMenuItem.cpp: GPL src/apps/processcontroller/KernelMemoryBarMenuItem.cpp: GPL src/apps/processcontroller/MemoryBarMenu.cpp: GPL src/apps/processcontroller/MemoryBarMenuItem.cpp: GPL src/apps/processcontroller/NoiseBarMenuItem.cpp: GPL src/apps/processcontroller/PCWindow.cpp: GPL src/apps/processcontroller/PCWorld.cpp: GPL src/apps/processcontroller/Preferences.cpp: GPL src/apps/processcontroller/PriorityMenu.cpp: GPL src/apps/processcontroller/ProcessController.cpp: GPL src/apps/processcontroller/QuitMenu.cpp: GPL src/apps/processcontroller/TeamBarMenu.cpp: GPL src/apps/processcontroller/TeamBarMenuItem.cpp: GPL src/apps/processcontroller/ThreadBarMenu.cpp: GPL src/apps/processcontroller/ThreadBarMenuItem.cpp: GPL src/apps/processcontroller/Utilities.cpp: GPL src/system/libroot/posix/malloc/arch-specific.cpp: GPL src/system/libroot/posix/malloc/heap.cpp: GPL src/system/libroot/posix/malloc/processheap.cpp: GPL src/system/libroot/posix/malloc/superblock.cpp: GPL src/system/libroot/posix/malloc/threadheap.cpp: GPL src/tests/add-ons/kernel/file_systems/userlandfs/r5/src/test/ramfs/Volume.cpp: GPL src/tests/add-ons/kernel/file_systems/userlandfs/r5/src/test/ramfs/kernel_interface.cpp: GPL src/tests/add-ons/kernel/file_systems/userlandfs/r5/src/test/reiserfs/Block.cpp: GPL src/tests/add-ons/kernel/file_systems/userlandfs/r5/src/test/reiserfs/BlockCache.cpp: GPL src/tests/add-ons/kernel/file_systems/userlandfs/r5/src/test/reiserfs/Debug.cpp: GPL src/tests/add-ons/kernel/file_systems/userlandfs/r5/src/test/reiserfs/Item.cpp: GPL src/tests/add-ons/kernel/file_systems/userlandfs/r5/src/test/reiserfs/Iterators.cpp: GPL src/tests/add-ons/kernel/file_systems/userlandfs/r5/src/test/reiserfs/Settings.cpp: GPL src/tests/add-ons/kernel/file_systems/userlandfs/r5/src/test/reiserfs/String.cpp: GPL src/tests/add-ons/kernel/file_systems/userlandfs/r5/src/test/reiserfs/SuperBlock.cpp: GPL src/tests/add-ons/kernel/file_systems/userlandfs/r5/src/test/reiserfs/Tree.cpp: GPL src/tests/add-ons/kernel/file_systems/userlandfs/r5/src/test/reiserfs/VNode.cpp: GPL src/tests/add-ons/kernel/file_systems/userlandfs/r5/src/test/reiserfs/Volume.cpp: GPL src/tests/add-ons/kernel/file_systems/userlandfs/r5/src/test/reiserfs/kernel_interface.cpp: GPL src/tests/kits/media/playsound/playsound.cpp: GPL src/tests/system/libroot/posix/fseek_test.cpp: GPL
Change History (18)
comment:1 by , 7 years ago
comment:3 by , 6 years ago
plugins/matroska is not part of the default image.
src/tests is not part of the default image (playsound used to be, but was replaced with media_client).
ramfs currently does not build, IIRC (it is not the same as ramdisk).
reiserfs should be enabled only when INCLUDE_GPL_ADDONS is set (anyone still using it anyways?) or maybe we could change our strategy about that and have an haiku_gpl package with the GPLed stuff.
comment:4 by , 6 years ago
Cc: | added |
---|
reiserfs is GPL but weinhold seems to be the copyright holder. Perhaps he can enlighten us as to why it's GPL, and/or give us permission to relicense as MIT?
comment:5 by , 6 years ago
Cc: | added; removed |
---|
comment:6 by , 5 years ago
Still under GPL:
- ramfs:
commit b9795faf5d27edaf49acb9f884ba181c0f0ae66b Author: Augustin Cavalier <waddlesplash@gmail.com> Date: Fri Aug 30 18:48:11 2019 -0400 ramfs: Add MIT license header to all files lacking copyright info. OK'ed by Ingo via email. commit 731be7dde11e3901859e6d527cd59a0ff566df3e (tag: hrev53436) Author: Augustin Cavalier <waddlesplash@gmail.com> Date: Fri Aug 30 18:27:35 2019 -0400 Relicense all of Ingo's BSD/MIT+advertising clause'd code as plain MIT. Via email: > I'm fine with re-licensing all code using BSD license + advertising > clause to MIT license.
No explanation as to why the remaining parts remain under GPL was given in these commits.
- reiserfs: still under GPL
- src/add-ons/media/plugins/ape_reader/MAClib/MD5.cpp: still under GPL, looks like this single file should not be hard to replace
Actually under LGPL not GPL (that's a bit less of a problem):
- src/add-ons/kernel/drivers/audio/echo
- src/add-ons/media/plugins/ffmpeg/AVFormatReader.cpp, src/add-ons/media/plugins/ffmpeg/AVFormatWriter.cpp (they both link to ffmpeg anyway so there is little point in changing the license?)
- src/add-ons/media/plugins/rtsp_streamer/rtsp.cpp
- malloc_hoard2
Removed, not included in distributed images, or relicensed:
- src/add-ons/kernel/drivers/network/wwan removed in hrev51685
- matroska: removed in ba5c9689e13e8f25c2df2c20ec0def5a6dba4272
- MediaPlayer: now MIT with agreement from all authors.
- ProcessController: agreement from all authors is being collected on the mailing list
- tests: as mentionned these are not included in the build images
comment:7 by , 5 years ago
Actually, the only parts of ramfs that are "GPL" are actually dual GPL/MIT. So that's fine.
reiserfs is GPL because of usage of Linux code, I think?
comment:8 by , 5 years ago
ape_reader modifed in hrev54219. So the only remaining GPL parts of Haiku are ProcessController (waiting for agreement from authors) and reiserfs.
I checked the copyright headers for reiserfs and as far as I can see all the code is copyrighted to Ingo and some files to Axel, with only a .h describing the filesystem structures coming from the Linux kernel.
comment:9 by , 5 years ago
GPL-licensed things the Haiku package currently depends on:
- coreutils
- tar (but replacements are available)
- bash (actually depends on cmd:sh, mksh can be used as a replacement)
- gunzip
- gutenprint
comment:10 by , 4 years ago
Would replacing gunzip with the BSDs version (non-GPL) be advantageous here?
comment:13 by , 3 years ago
pulkomandy: I am re-reading your last comment regarding "...the Haiku package currently depends on:" I take it you meant something besides the Haiku source tree? The only thing from your list I see in ours (via a simple git search) is gutenprint. The rest appear to be in haikuports.
comment:14 by , 3 years ago
They are at haikuports, but the haiku package (haiku.hpkg) depends on them unconditionally, so they cannot be deinstalled from a Haiku system currently. I have a WIP patch for mksh and bash so they provide a seperate _posixsh package so you can choose the cmd:sh provider... got a bit sidetracked there, so haven't finished it yet.
follow-up: 17 comment:16 by , 3 years ago
The priority on ensuring Haiku's source code only contains MIT-licensed code is high as it's something we need to be careful to enforce properly.
Software packages don't have to be GPL licensed... but it's a nice to have (and definitely not a high priority)
follow-up: 18 comment:17 by , 3 years ago
Replying to kallisti5:
The priority on ensuring Haiku's source code only contains MIT-licensed code is high as it's something we need to be careful to enforce properly.
Isn't this part already handled? Or is this running task?
comment:18 by , 3 years ago
Replying to korli:
Isn't this part already handled? Or is this running task?
According to my latest investigation (comment:8), the one remaining part on Haiku side is reiserfs. It is unclear why this is under GPL since all the code was written by Ingo, as far as I can tell, without using code from Linux.
There is also some code under LGPL, of which the most problematic could be the hoard2 malloc, which we want to replace at some point anyway for other reasons.
There is also the C library which has parts from the GNU libc which is under LGPL as well (somehow not listed here until now)
DeadYak reports Marcus licensed these GPL due to YellowTab at the time. Haiku got an MIT license exception, but it seems like that never made it into the sources. I'm contacting Marcus via email to see if we can clairfy.