jamulussoftware / jamulus

Jamulus enables musicians to perform real-time jam sessions over the internet.
https://jamulus.io
Other
1.01k stars 223 forks source link

Update the license in various files #341

Closed ycollet closed 4 years ago

ycollet commented 4 years ago

Some license in headers / source code are not consistent:


*No copyright* GPL (v2 or later) (with incorrect FSF address)
-------------------------------------------------------------
jamulus-r3_5_5/src/recorder/creaperproject.cpp
jamulus-r3_5_5/src/recorder/creaperproject.h
jamulus-r3_5_5/src/recorder/cwavestream.cpp
jamulus-r3_5_5/src/recorder/cwavestream.h
jamulus-r3_5_5/src/recorder/jamrecorder.cpp
jamulus-r3_5_5/src/recorder/jamrecorder.h

BSD 3-clause "New" or "Revised" License GPL (v2 or later) (with incorrect FSF address)
--------------------------------------------------------------------------------------
jamulus-r3_5_5/src/signalhandler.cpp
jamulus-r3_5_5/src/signalhandler.h

GNU Lesser General Public License
---------------------------------
jamulus-r3_5_5/COPYING

GPL (v2 or later)
-----------------
jamulus-r3_5_5/distributions/debian/copyright

GPL (v2 or later) (with incorrect FSF address)
----------------------------------------------
jamulus-r3_5_5/android/sound.cpp
jamulus-r3_5_5/android/sound.h
jamulus-r3_5_5/linux/sound.cpp
jamulus-r3_5_5/linux/sound.h
jamulus-r3_5_5/mac/sound.cpp
jamulus-r3_5_5/mac/sound.h
jamulus-r3_5_5/src/analyzerconsole.cpp
jamulus-r3_5_5/src/analyzerconsole.h
jamulus-r3_5_5/src/audiomixerboard.cpp
jamulus-r3_5_5/src/audiomixerboard.h
jamulus-r3_5_5/src/buffer.cpp
jamulus-r3_5_5/src/buffer.h
jamulus-r3_5_5/src/channel.cpp
jamulus-r3_5_5/src/channel.h
jamulus-r3_5_5/src/chatdlg.cpp
jamulus-r3_5_5/src/chatdlg.h
jamulus-r3_5_5/src/client.cpp
jamulus-r3_5_5/src/client.h
jamulus-r3_5_5/src/clientdlg.cpp
jamulus-r3_5_5/src/clientdlg.h
jamulus-r3_5_5/src/clientsettingsdlg.cpp
jamulus-r3_5_5/src/clientsettingsdlg.h
jamulus-r3_5_5/src/connectdlg.cpp
jamulus-r3_5_5/src/connectdlg.h
jamulus-r3_5_5/src/global.h
jamulus-r3_5_5/src/historygraph.cpp
jamulus-r3_5_5/src/historygraph.h
jamulus-r3_5_5/src/main.cpp
jamulus-r3_5_5/src/multicolorled.cpp
jamulus-r3_5_5/src/multicolorled.h
jamulus-r3_5_5/src/multicolorledbar.cpp
jamulus-r3_5_5/src/multicolorledbar.h
jamulus-r3_5_5/src/protocol.h
jamulus-r3_5_5/src/server.cpp
jamulus-r3_5_5/src/server.h
jamulus-r3_5_5/src/serverdlg.cpp
jamulus-r3_5_5/src/serverdlg.h
jamulus-r3_5_5/src/serverlist.cpp
jamulus-r3_5_5/src/serverlist.h
jamulus-r3_5_5/src/serverlogging.cpp
jamulus-r3_5_5/src/serverlogging.h
jamulus-r3_5_5/src/settings.cpp
jamulus-r3_5_5/src/settings.h
jamulus-r3_5_5/src/socket.cpp
jamulus-r3_5_5/src/socket.h
jamulus-r3_5_5/src/soundbase.cpp
jamulus-r3_5_5/src/soundbase.h
jamulus-r3_5_5/src/testbench.h
jamulus-r3_5_5/src/util.cpp
jamulus-r3_5_5/src/util.h
jamulus-r3_5_5/src/vstmain.cpp
jamulus-r3_5_5/src/vstmain.h
jamulus-r3_5_5/src/vstsound.h
jamulus-r3_5_5/windows/sound.cpp
jamulus-r3_5_5/windows/sound.h

Unknown or generated
--------------------

jamulus-r3_5_5/android/AndroidManifest.xml
jamulus-r3_5_5/android/androiddebug.cpp
jamulus-r3_5_5/android/res/drawable-hdpi/icon.png
jamulus-r3_5_5/android/res/drawable-ldpi/icon.png
jamulus-r3_5_5/android/res/drawable-mdpi/icon.png
jamulus-r3_5_5/android/res/drawable-xhdpi/icon.png
jamulus-r3_5_5/android/res/drawable-xxhdpi/icon.png
jamulus-r3_5_5/android/res/drawable-xxxhdpi/icon.png
jamulus-r3_5_5/distributions/build-debian-package.sh
jamulus-r3_5_5/distributions/debian/changelog
jamulus-r3_5_5/distributions/debian/compat
jamulus-r3_5_5/distributions/debian/control
jamulus-r3_5_5/distributions/debian/postinst
jamulus-r3_5_5/distributions/debian/rules
jamulus-r3_5_5/distributions/debian/watch
jamulus-r3_5_5/distributions/jamulus-server.service
jamulus-r3_5_5/distributions/jamulus.desktop
jamulus-r3_5_5/distributions/jamulus.png
jamulus-r3_5_5/distributions/raspijamulus.sh
jamulus-r3_5_5/linux/deploy_linux.sh
jamulus-r3_5_5/mac/Info-make.plist
jamulus-r3_5_5/mac/Info-xcode.plist
jamulus-r3_5_5/mac/deploy_mac.sh
jamulus-r3_5_5/mac/deployment_settings.py
jamulus-r3_5_5/mac/mainicon.icns
jamulus-r3_5_5/src/aboutdlgbase.ui
jamulus-r3_5_5/src/chatdlgbase.ui
jamulus-r3_5_5/src/clientdlgbase.ui
jamulus-r3_5_5/src/clientsettingsdlgbase.ui
jamulus-r3_5_5/src/connectdlgbase.ui
jamulus-r3_5_5/src/protocol.cpp
jamulus-r3_5_5/windows/deploy_windows.bat
jamulus-r3_5_5/windows/installer.nsi
jamulus-r3_5_5/windows/mainicon.rc
jamulus-r3_5_5/windows/qt-installer-windows.qs
tormodvolden commented 4 years ago

Just FYI, the clause in distributions/debian/copyright covers all files in the debian folder.

I wonder about the binary file windows/nsProcess.dll ?

corrados commented 4 years ago

GNU Lesser General Public License jamulus-r3_5_5/COPYING

In that file we have: "GNU GENERAL PUBLIC LICENSE Version 2, June 1991". Where did you find the "lesser"?

ycollet commented 4 years ago

I used a fedora tool which is used during rpm packaging: fedora-review. Maybe it generated some false positifve

corrados commented 4 years ago

GPL (v2 or later) (with incorrect FSF address)

With my last commit I fixed the FSF address.

ycollet commented 4 years ago

Thanks a lot.

corrados commented 4 years ago

With my latest commit I tried to fix the "No copyright". I just wrote the Copyright without a date. Can you please re-run your fedora-review and check if the script is now happy with the code?

corrados commented 4 years ago

I wonder about the binary file windows/nsProcess.dll ?

Good question. The dll comes from here: https://nsis.sourceforge.io/NsProcess_plugin Do you think this is critical? Should I better remove the file from the Git repo?

tormodvolden commented 4 years ago

If you are redistributing it you should know :)

In the case of official Debian packaging we would have to filter it out and create a "cleaned" upstream tarball, unless we can provide the sources and it has a compatible license. Personally I don't like binaries in a source code tree.

tormodvolden commented 4 years ago

I just wrote the Copyright without a date.

I believe you should at least add a year for it to make any sense, and that it should be the date of authorship, i.e. the last time it was significantly (I know, that's vague) modified by the copyright holder (the author).

corrados commented 4 years ago

Ok, then I will just add 2020.

ycollet commented 4 years ago

Thanks for these commits. I ran the fedora tool to perform a review on licences. Here is the report:


*No copyright* Creative Commons Attribution-NonCommercial-ShareAlike Public License (v4.0)
------------------------------------------------------------------------------------------
jamulus-r3_5_6/src/serverdlgbase.ui

BSD 3-clause "New" or "Revised" License GPL (v2 or later)
---------------------------------------------------------
jamulus-r3_5_6/src/signalhandler.cpp
jamulus-r3_5_6/src/signalhandler.h

GNU General Public License
--------------------------
jamulus-r3_5_6/src/res/translation/translation_de_DE.qm
jamulus-r3_5_6/src/res/translation/translation_es_ES.qm
jamulus-r3_5_6/src/res/translation/translation_pt_PT.qm

GPL (v2 or later)
-----------------
jamulus-r3_5_6/android/sound.cpp
jamulus-r3_5_6/android/sound.h
jamulus-r3_5_6/distributions/debian/copyright
jamulus-r3_5_6/linux/sound.cpp
jamulus-r3_5_6/linux/sound.h
jamulus-r3_5_6/mac/activity.h
jamulus-r3_5_6/mac/sound.cpp
jamulus-r3_5_6/mac/sound.h
jamulus-r3_5_6/src/analyzerconsole.cpp
jamulus-r3_5_6/src/analyzerconsole.h
jamulus-r3_5_6/src/audiomixerboard.cpp
jamulus-r3_5_6/src/audiomixerboard.h
jamulus-r3_5_6/src/buffer.cpp
jamulus-r3_5_6/src/buffer.h
jamulus-r3_5_6/src/channel.cpp
jamulus-r3_5_6/src/channel.h
jamulus-r3_5_6/src/chatdlg.cpp
jamulus-r3_5_6/src/chatdlg.h
jamulus-r3_5_6/src/client.cpp
jamulus-r3_5_6/src/client.h
jamulus-r3_5_6/src/clientdlg.cpp
jamulus-r3_5_6/src/clientdlg.h
jamulus-r3_5_6/src/clientsettingsdlg.cpp
jamulus-r3_5_6/src/clientsettingsdlg.h
jamulus-r3_5_6/src/connectdlg.cpp
jamulus-r3_5_6/src/connectdlg.h
jamulus-r3_5_6/src/global.h
jamulus-r3_5_6/src/historygraph.cpp
jamulus-r3_5_6/src/historygraph.h
jamulus-r3_5_6/src/main.cpp
jamulus-r3_5_6/src/multicolorled.cpp
jamulus-r3_5_6/src/multicolorled.h
jamulus-r3_5_6/src/multicolorledbar.cpp
jamulus-r3_5_6/src/multicolorledbar.h
jamulus-r3_5_6/src/protocol.h
jamulus-r3_5_6/src/recorder/creaperproject.cpp
jamulus-r3_5_6/src/recorder/creaperproject.h
jamulus-r3_5_6/src/recorder/cwavestream.cpp
jamulus-r3_5_6/src/recorder/cwavestream.h
jamulus-r3_5_6/src/recorder/jamrecorder.cpp
jamulus-r3_5_6/src/recorder/jamrecorder.h
jamulus-r3_5_6/src/server.cpp
jamulus-r3_5_6/src/server.h
jamulus-r3_5_6/src/serverdlg.cpp
jamulus-r3_5_6/src/serverdlg.h
jamulus-r3_5_6/src/serverlist.cpp
jamulus-r3_5_6/src/serverlist.h
jamulus-r3_5_6/src/serverlogging.cpp
jamulus-r3_5_6/src/serverlogging.h
jamulus-r3_5_6/src/settings.cpp
jamulus-r3_5_6/src/settings.h
jamulus-r3_5_6/src/socket.cpp
jamulus-r3_5_6/src/socket.h
jamulus-r3_5_6/src/soundbase.cpp
jamulus-r3_5_6/src/soundbase.h
jamulus-r3_5_6/src/testbench.h
jamulus-r3_5_6/src/util.cpp
jamulus-r3_5_6/src/util.h
jamulus-r3_5_6/windows/sound.cpp
jamulus-r3_5_6/windows/sound.h

GPL (v2 or later) (with incorrect FSF address)
----------------------------------------------
jamulus-r3_5_6/mac/activity.mm
jamulus-r3_5_6/src/vstmain.cpp
jamulus-r3_5_6/src/vstmain.h
jamulus-r3_5_6/src/vstsound.h

Unknown or generated
--------------------
jamulus-r3_5_6/.gitmodules
jamulus-r3_5_6/.travis.yml
jamulus-r3_5_6/COPYING
jamulus-r3_5_6/ChangeLog
jamulus-r3_5_6/INSTALL.md
jamulus-r3_5_6/Jamulus.pro
jamulus-r3_5_6/README.md
jamulus-r3_5_6/android/AndroidManifest.xml
jamulus-r3_5_6/android/androiddebug.cpp
jamulus-r3_5_6/distributions/build-debian-package.sh
jamulus-r3_5_6/distributions/debian/changelog
jamulus-r3_5_6/distributions/debian/compat
jamulus-r3_5_6/distributions/debian/control
jamulus-r3_5_6/distributions/debian/jamulus.install
jamulus-r3_5_6/distributions/debian/postinst
jamulus-r3_5_6/distributions/debian/rules
jamulus-r3_5_6/distributions/debian/source/format
jamulus-r3_5_6/distributions/debian/watch
jamulus-r3_5_6/distributions/jamulus-server.service
jamulus-r3_5_6/distributions/jamulus.desktop.in
jamulus-r3_5_6/distributions/jamulus.png
jamulus-r3_5_6/distributions/raspijamulus.sh
jamulus-r3_5_6/linux/deploy_linux.sh
jamulus-r3_5_6/mac/Info-make.plist
jamulus-r3_5_6/mac/Info-xcode.plist
jamulus-r3_5_6/mac/deploy_mac.sh
jamulus-r3_5_6/mac/deployment_settings.py
jamulus-r3_5_6/mac/mainicon.icns
jamulus-r3_5_6/src/aboutdlgbase.ui
jamulus-r3_5_6/src/chatdlgbase.ui
jamulus-r3_5_6/src/clientdlgbase.ui
jamulus-r3_5_6/src/clientsettingsdlgbase.ui
jamulus-r3_5_6/src/connectdlgbase.ui
jamulus-r3_5_6/src/protocol.cpp
jamulus-r3_5_6/src/res/translation/translation_de_DE.ts
jamulus-r3_5_6/src/res/translation/translation_es_ES.ts
jamulus-r3_5_6/src/res/translation/translation_fr_FR.qm
jamulus-r3_5_6/src/res/translation/translation_fr_FR.ts
jamulus-r3_5_6/src/res/translation/translation_it_IT.qm
jamulus-r3_5_6/src/res/translation/translation_it_IT.ts
jamulus-r3_5_6/src/res/translation/translation_nl_NL.qm
jamulus-r3_5_6/src/res/translation/translation_nl_NL.ts
jamulus-r3_5_6/src/res/translation/translation_pl_PL.qm
jamulus-r3_5_6/src/res/translation/translation_pl_PL.ts
jamulus-r3_5_6/src/res/translation/translation_pt_PT.ts
jamulus-r3_5_6/src/resources.qrc
jamulus-r3_5_6/windows/deploy_windows.bat
jamulus-r3_5_6/windows/installer.nsi
jamulus-r3_5_6/windows/mainicon.ico
jamulus-r3_5_6/windows/mainicon.rc
jamulus-r3_5_6/windows/nsProcess.dll
jamulus-r3_5_6/windows/qt-installer-windows.qs
corrados commented 4 years ago

Ok, next try (I just commited an update in the Git repo).

jamulus-r3_5_6/src/serverdlgbase.ui

This is a gernerated file by the QtCreator.

jamulus-r3_5_6/src/signalhandler.cpp jamulus-r3_5_6/src/signalhandler.h

These two actually contain other licences. But they are compatible with the GPL2.

jamulus-r3_5_6/src/res/translation/translation_de_DE.qm jamulus-r3_5_6/src/res/translation/translation_es_ES.qm jamulus-r3_5_6/src/res/translation/translation_pt_PT.qm

These are generated files by the Qt translation tool.

corrados commented 4 years ago

Are there any outstanding issues with the licence? If no, I'll close this issue then.

ycollet commented 4 years ago

For me, I think it's OK. I will launch again fedora-review on the release to come and reopen the bug if a problem occurs. Thanks for your work !

corrados commented 4 years ago

Thank you for your feedback -> closed (for now at least ;-) ).

tormodvolden commented 4 years ago

jamulus-r3_5_6/src/res/translation/translation_de_DE.qm jamulus-r3_5_6/src/res/translation/translation_es_ES.qm jamulus-r3_5_6/src/res/translation/translation_pt_PT.qm

These are generated files by the Qt translation tool.

If these are generated during the build from the .ts files, should they be in the source repository at all?

I wonder about the binary file windows/nsProcess.dll ?

Good question. The dll comes from here: https://nsis.sourceforge.io/NsProcess_plugin Do you think this is critical? Should I better remove the file from the Git repo?

Isn't this file a plugin for the NSIS /builder/ so that it is more naturally distributed as part of NSIS (or being a build requirement in the same way) and not as part of the Jamulus sources?

corrados commented 4 years ago

If these are generated during the build from the .ts files, should they be in the source repository at all?

Yes, this would be better. But I have not yet found a clean way to automatically generate them. Do you know a way how to do it cleanly so that it works on all OSs?

Isn't this file a plugin for the NSIS /builder/ so that it is more naturally distributed as part of NSIS

Yes, but as far as I know it is not part of the official NSIS installer. It is a plugin which you have to download and add yourself manually. I just put it in the repo because I was too lacy to download it everytime I setup a new PC. A cleaner way would be to check if the file is present when a Windows installer is created and if not present, download it once.

tormodvolden commented 4 years ago

The lrelease tool should work the same on all platforms: https://doc.qt.io/qt-5/linguist-manager.html

A downloader for the NSIS components would solve a number of licensing issues.

corrados commented 4 years ago

A downloader for the NSIS components would solve a number of licensing issues.

I now removed the dll from the repo: https://github.com/corrados/jamulus/commit/527051e29b28bad9b287b87d80473c429ca3aaf2

To make a Windows installer, somebody has to unzip the nsProcess.dll first (the deploy script will output an error message if was not found). It is not a completely automated process since the user has to do the unzip himself but he only has to do it once after cloning the repo. I find this acceptable.