Comments (5)
It was my understanding that this was only an issue with GPLv2. Quoting from this page (https://www.gnu.org/s/readline/),
Readline is free software, distributed under the terms of the GNU General Public License, version 3. This means that if you want to use Readline in a program that you release or distribute to anyone, the program must be free software and have a GPL-compatible license.
On that final linked page, both Apache 2.0 and MIT (called "Expat License") are listed as GPL-compatible.
from rusti.
I'm no lawyer, my understanding is based on this FAQ page authored by FSF:
Does the GPL have different requirements for statically vs dynamically linked modules with a covered work? (#GPLStaticVsDynamic)
No. Linking a GPL covered work statically or dynamically with other modules is making a combined work based on the GPL covered work.
(emphasis by nodakai)
GPL-compatibility means:
- if you have independent software modules X and Y,
- X is under GPL, and
- you want to distribute an integrated work of X and Y, then
you are allowed to do so provided that
- Y is under a GPL-compatible license and
- you release the integrated work under GPL.
In the first post I wanted to say something like: even when Y is under MIT or Apache 2 License, the integrated work is no longer as permissive as Y itself.
My understanding of your case of rusti
is: when it's dynamically linked to libreadline
, there is a tight coupling between libreadline
and it, and then it becomes a "derivative work" of libreadline
(according to FSF.) So you aren't allowed to release it under any other licenses than GPL. However there's much debate about FSF's claim that a software becomes a derivative work of a library when the former is dynamically linked to the latter:
Anyways I just hope everything about licensing of your excellent work becomes clear for the day when it becomes a standard tool of all Rust programmers.
from rusti.
Yes, I'm seeing that there is conflicting information on the subject. I haven't been able to find an official or reputable source that clearly and explicitly states whether or not a software package in Rusti's situation must be released under GPL.
Also, I wonder if the fact that Rusti does not use GNU Readline headers in the compile process might be relevant. I believe that, in the recent Oracle v. Google case, it was decided that an API cannot be copyrighted.
from rusti.
There is no reason for the package to be GPL. The final product will automatically degrade to GPL but the original source here should be BSD. Also there are GPL interface compatible versions of libreadline which are not GPL licensed and APIs are not copyrightable. So no reason for this to be GPL.
from rusti.
Seems reasonable to me. Thanks to both of you for the input. Closing this for now.
from rusti.
Related Issues (20)
- install hangs: rustup run nightly-2016-08-01 cargo install --git https://github.com/murarth/rusti HOT 1
- Exit command HOT 1
- Compilation failure in Ubuntu 14.04 HOT 1
- can't build/run master HOT 6
- Couldn't run rusti compiled with multirust : error while loading shared libraries HOT 2
- Seems to also require libedit-dev HOT 2
- Cannot build with latest nightly rustc HOT 2
- Discrepancy between help output and performed actions HOT 3
- Unresolved import errors (Ubuntu 14.04, rustc 1.11.0 nightly, rusti 815b0ee) HOT 4
- LLVM ExecutionEngine no longer supported by rustc HOT 13
- Assertion failed (crash) on Windows HOT 7
- Crash when pressing Backspace on Windows HOT 5
- rusti: error while loading shared libraries: librustc_driver-c8005792.so: cannot open shared object file: No such file or directory HOT 8
- Link failure: cannot find -lncursesw [fixed] HOT 2
- Current cargo build is broken HOT 3
- Possible REPL improvements.
- Fail to build by cargo and git HOT 3
- Dead? HOT 2
- Linking error when libncurses is not installed HOT 3
- Can’t find crate for ‘rustc_llvm’ HOT 4
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from rusti.