Opened 3 years ago

Last modified 7 weeks 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 (9)

comment:1 by kallisti5, 3 years ago

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.

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

comment:2 by kallisti5, 20 months ago

EDIT: False positives for pcmcia.

Last edited 20 months ago by kallisti5 (previous) (diff)

comment:3 by pulkomandy, 20 months 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.

Last edited 20 months ago by pulkomandy (previous) (diff)

comment:4 by waddlesplash, 15 months ago

Cc: weinhold 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 waddlesplash, 15 months ago

Cc: bonefish added; weinhold removed

comment:6 by pulkomandy, 2 months 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 waddlesplash, 2 months 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 pulkomandy, 7 weeks 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 pulkomandy, 7 weeks 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
Note: See TracTickets for help on using tickets.