Skip to content
Snippets Groups Projects

Draft: don't build GPL modules in LGPL builds

Closed Martin Finkel requested to merge mfkl/vlc:lgpl-modules-build-fix into master
1 unresolved thread

Draft with a single GPL module to get feedback.

Will handle the remaining modules after initial positive feedback on this.

Merge request reports

Merge request pipeline #514960 failed

Merge request pipeline failed for abba54f5

Approval is optional
Ready to merge by members who can write to the target branch.

Merge details

  • 1 commit and 1 merge commit will be added to .
  • Source branch will not be deleted.

Activity

Filter activity
  • Approvals
  • Assignees & reviewers
  • Comments (from bots)
  • Comments (from users)
  • Commits & branches
  • Edits
  • Labels
  • Lock status
  • Mentions
  • Merge request status
  • Tracking
  • Steve Lhomme changed milestone to %4.0

    changed milestone to %4.0

    • This sort of thing was already discussed and rejected previously. We have no reasonable way to check the dependencies anyhow, so this has to be managed at a bigger scope/higher level

    • And we don't normally had individual flags for modules without deoendencies. That's not tenable.

    • The simplest way I see would be to not install symbols that have the license module descriptor == GPL (or any other license from configure argument)

    • This wouldn't protect against dependencies and their own dependencies licence contaminations that would need to be audited everytime we update them.

    • If that case happens, that means the module descriptor is not correct.

    • If you're assuming that the SDK contains no copyleft and no nonredistributable depedency, then you can select the license in contribs. There is no point adding configure flags.

      If the SDK does contain problematic libraries, we have no way to check in configure.

      So either way this is pointless. That's why it was rejected in the past already.

    • If you're assuming that the SDK contains no copyleft and no nonredistributable depedency, then you can select the license in contribs

      This is not possible when using prebuilt contribs. Maybe prebuilt should be disabled when forcing a license. Or we could include something in the prebuilt tarball saying which license it was compiled for.

    • This is not possible when using prebuilt contribs.

      Generally speaking, disabling GPL can also change how contribs are built (FFmpeg has such an option), or which dependencies get selected, so you have to rebuild anyway.

    • If that case happens, that means the module descriptor is not correct.

      The module descriptor cannot be correct by your understanding. The configure script does not know which license a given dependency has, and neither do module descriptors.

      We have several modules under LGPL depending on GPL libraries, or under v2+ depending on v3+ libraries.

      Edited by Rémi Denis-Courmont
    • Author Contributor

      The configure script does not know which license a given dependency has, and neither do module descriptors.

      But we do. All I'm doing is adding the ability to NOT build some modules. Users can choose which ones.

      We have several modules under LGPL depending on GPL libraries, or under v2+ depending on v3+ libraries.

      That's easy. We can disable these modules for the LGPL builds, since they are essentially GPL anyway in the end.

    • Very clearly not, and this was discussed previously.

    • Author Contributor

      Very clearly not

      Feel free to explain why or suggest a better approach then.

      this was discussed previously.

      Yes, licensing considerations are a moving target and a regular topic of interest and conversation. You can expect it to happen again in the future until an acceptable solution is found.

    • Since we require a license in build.sh we could hook the installation part from there and remove the DLLs post build. That means we need a (cross-platform) tool that will read the license in the DLLs...

    • Feel free to explain why or suggest a better approach then

      As explained you cannot know at configure/build time licence contamination by third parties because it's impossible to audit all their dependencies or check that the build lib include those or not. Only the builder can know its build environment. This would be possible if we were buildroot where we build, patch and configure everything but we aren't especially since contribs aren't even built if they are present in your system. Also I'd rather avoid starting a gstreamer's good bad and ugly mess now. And finally code can be licenced to whatever the author wants regardless of its dependencies only it's user needs to comply so using the licence of a module can end up being misleading anyway.

      The only solution is a theoretical postinst script or manual removal. This is what we end up concluding everytime the discussion comes back.

      Edited by Denis Charmet
    • Author Contributor

      The only solution is a theoretical postinst script or manual removal.

      I don't know how that would work on Android, though, with all plugins inside a libvlc.so.

    • Android culls the unwanted modules before putting them in the lib and this is what I mean by postinst script.

      Edited by Denis Charmet
    • Please register or sign in to reply
  • Martin Finkel changed title from Draft: don't build dolby audio filter in lgpl version to Draft: don't build GPL modules in LGPL builds

    changed title from Draft: don't build dolby audio filter in lgpl version to Draft: don't build GPL modules in LGPL builds

  • Martin Finkel added 1 commit

    added 1 commit

    Compare with previous version

  • Martin Finkel mentioned in merge request !6090 (closed)

    mentioned in merge request !6090 (closed)

Please register or sign in to reply
Loading