NixOS / NixOS/cabal2nix

Docs: LGPL section regarding GMP is misleading

Open
#511 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Haskell
Stars
402
Forks
162
PR merge metrics
No merged PRs in 30d

Description

The following quote from the linked section is misleading:

https://haskell4nix.readthedocs.io/frequently-asked-questions.html#building-ghc-with-integer-simple

According to the terms of the LGPL, paragraph 5, you may distribute a program that is designed to be compiled and dynamically linked with the library under the terms of your choice (i.e., commercially) but if your program incorporates portions of the library, if it is linked statically, then your program is a “derivative”–a “work based on the library”–and according to paragraph 2, section c, you “must cause the whole of the work to be licensed” under the terms of the LGPL (including for free).

The LGPL licensing for GMP is a problem for the overall licensing of binary programs compiled with GHC because most distributions (and builds) of GHC use static libraries. (Dynamic libraries are currently distributed only for macOS.) The LGPL licensing situation may be worse: even though The Glasgow Haskell Compiler License is essentially a “free software” license (BSD3), according to paragraph 2 of the LGPL, GHC must be distributed under the terms of the LGPL!

LGPL does allow static linking against proprietary software (or any other open license), and it doesn't make the software license to be LGPL software. Static linking is allowed under a condition that the software, whilst being distributed as a fully compiled program, also provides itself in either source code (not suitable for most distributable proprietary projects) or compiled object code that can be linked together with the LGPL code in question (suitable for most distributable projects, but requires extra work).

https://www.gnu.org/licenses/gpl-faq.en.html#LGPLStaticVsDynamic

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the FAQ section at frequently-asked-questions.html#building-ghc-with-integer-simple and compare its LGPL claims with the linked GNU LGPL FAQ. Revise the section so its explanation of static linking and distribution conditions is accurate, then verify that the surrounding discussion of GMP and GHC licensing remains consistent.

Written by the indexing model from the issue text.

Assessment

Tech stack
haskell
Domain
documentation
Issue type
Documentation
Difficulty
2/5
Estimated time
1-3 hours
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.