ebb-earl-co / tidal-wave

Waving at the TIDAL music service
Apache License 2.0
35 stars 2 forks source link

License of Binaries & FFmpeg Usage #39

Open ebb-earl-co opened 5 months ago

ebb-earl-co commented 5 months ago

The Dockerfile in the repository root builds FFmpeg from source using its latest snapshot. The documentation is clear that this means that the Docker image should be licensed with the LGPL, and that documentation about it should be included in the release notes/documentation of the source code, as well as a copy of the source code.

How do I go about doing this correctly? Create a Git submodule for the project tracking FFmpeg? Any guidance here would be much appreciated.

ebb-earl-co commented 5 months ago

Here's the page with some guidelines: https://ffmpeg.org/legal.html

ebb-earl-co commented 5 months ago

Basically solved with #61 . However, compiling on Windows (or cross-compiling for Windows) still eludes...

ebb-earl-co commented 3 months ago

Update on Windows binaries: pyinstaller does indeed work on Windows; see below for example command that worked on Windows 10. On Windows, the upx project does seem to shrink the binary size by about 10%! Until I figure out how to compile FFmpeg on Windows, and until I figure out how to compile FFmpeg without libx264, as is the default from chocolatey, https://www.gyan.dev/ffmpeg/builds/, and otherwise, maybe I'll just offer GPL-licensed release artifacts? This would simplify user experience, as it is simply a single .exe with no other requirements necessary!

PS >  pyinstaller --name tidal-wave_py311-FFmpeg611-GPL.exe --paths .\tidal_wave --add-data "README.md:." --add-binary "C:\Users\SOMEUSER\SOMEPATH\ffmpeg.exe:." --clean --upx-dir C:\Users\SOMEUSER\SOME_PATH\upx-4.2.3-win64\upx-4.2.3-win64 --onefile .\pyinstaller.py

It would simplify the GitHub Actions build process considerably if I didn't have to compile FFmpeg; yet I am not sure of the GPLv3 ramifications of offering binaries that have the GPLv3-licenced FFmpeg binary inside them, not in the source code...