Skip to content

Extend licensing scheme, install & package licenses, and more

Nirbheek Chauhan requested to merge nirbheek/cerbero:install-licenses into master

Extend licensing scheme, install & package licenses (commit c174ef97)

Licensing was incorrect, incomplete, and at best, ambiguous. Some recipes were picking one license when there were many, others were listing all the licenses and you had to pick one.

On the other hand, many projects are licensed under multiple BSD-like licenses, and you must adhere to the terms of all of them, and there was no way to know how from the binary packages.

Now we have an extended syntax for declaring the licensing properties of a recipe. The licenses array can now also contain dictionaries with License enums as keys and relative paths to files in the source tree as values. All files specified in this way will be copied into share/licenses/$recipe_name.

Common license texts which are copied verbatim by projects without adding any specific author/copyright information have been copied into data/licenses/ and will be copied into share/licenses/$recipe_name when a license is specified without a corresponding source tree file.

share/licenses/$recipe_name/README-LICENSE-INFO.txt contains a disclaimer that this is not legal advice, and uses (AND) and (OR) operators to declare the combinations of licenses you can pick when adhering to the license requirements of a project. share/licenses/$recipe_name is, of course, now also copied into the devel binary packages.

I have made an effort to check and update the licenses in each recipe, but I have probably missed things. Reviews and updates are welcome. I also did not bother updating the toolchain recipe licenses too carefully since we do not ship them with our binary packages; except mingw-runtime.recipe (which does have an updated license).

recipes: Ensure that post_install is always chained up (commit 2e1f8241)

We already do some things in post_install, but we currently only do this for gstreamer recipes, but that's overall a bit flaky. This will allow us to do more things in post_install and make things consistent.

licenses: Fix a couple of licenses and remove unused enums (commit 21bc9577)

freetype: You have to pick between FTL and GPLv2

frei0r-plugins: It's GPLv2+, not LGPL

openssl: Obviously, OpenSSL not BSD

harfbuzz: Actually BSD, not LGPLv2+

lame: transitioned to LGPL2, no longer GPL

nettle/gmp: licensed under all three licenses

osx-framework: No license, just copying of files from other recipes

gst-shell, vsintegration, etc: Match with gstreamer's license

toolchain: All LGPLv2+, GPLv2+, or GPLv3+

other recipes: verified by diff -uw on license

Remove most unused license enums, except Proprietary

Other misc changes, please see commits

@ylatuya if you have some spare cycles, a review would be appreciated :)

Merge request reports