[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: 64-bit version of Lilypond?
From: |
Carl Sorensen |
Subject: |
Re: 64-bit version of Lilypond? |
Date: |
Tue, 26 Feb 2019 01:07:13 +0000 |
User-agent: |
Microsoft-MacOutlook/10.10.7.190210 |
On 2/25/19, 5:25 PM, "Karlin High" <address@hidden> wrote:
On 2/25/2019 10:44 AM, Carl Sorensen wrote:
> A further look into PureDarwin's website shows that many of the Darwin
utilities in fact link to closed-source Apple libraries.
>
> So probably we can't even ship a command-line-only version of LilyPond
without having linking ability to OSX.
Now, I expect the problem with linking to closed-source Apple libraries
is that the GNU General Public License doesn't allow for it?
On a non-GPL operating system, interaction with closed-source, non-free
software can't really be avoided; where's the boundary for GPL
acceptability?
Reading from the GPL FAQ, it appears that as long as the libraries are System
Libraries (and I think the OSX SDK libraries are System Libraries), and the
libraries are linked as part of an executable, it's OK:
"Can I link a GPL program with a proprietary system library?
(#SystemLibraryException)
Both versions of the GPL have an exception to their copyleft, commonly called
the system library exception. If the GPL-incompatible libraries you want to use
meet the criteria for a system library, then you don't have to do anything
special to use them; the requirement to distribute source code for the whole
program does not include those libraries, even if you distribute a linked
executable containing them.
The criteria for what counts as a "system library" vary between different
versions of the GPL. GPLv3 explicitly defines "System Libraries" in section 1,
to exclude it from the definition of "Corresponding Source." GPLv2 deals with
this issue slightly differently, near the end of section 3."
The GPL3 definition of a System Library:
"The “System Libraries” of an executable work include anything, other than the
work as a whole, that (a) is included in the normal form of packaging a Major
Component, but which is not part of that Major Component, and (b) serves only
to enable use of the work with that Major Component, or to implement a Standard
Interface for which an implementation is available to the public in source code
form. A “Major Component”, in this context, means a major essential component
(kernel, window system, and so on) of the specific operating system (if any) on
which the executable work runs, or a compiler used to produce the work, or an
object code interpreter used to run it."
On the other hand, if you are using dynamically linked libraries, you can't
distribute them with your program:
"I'm writing a Windows application with Microsoft Visual C++ (or Visual Basic)
and I will be releasing it under the GPL. Is dynamically linking my program
with the Visual C++ (or Visual Basic) runtime library permitted under the GPL?
(#WindowsRuntimeAndGPL)
You may link your program to these libraries, and distribute the compiled
program to others. When you do this, the runtime libraries are “System
Libraries” as GPLv3 defines them. That means that you don't need to worry about
including their source code with the program's Corresponding Source. GPLv2
provides a similar exception in section 3.
You may not distribute these libraries in compiled DLL form with the program.
To prevent unscrupulous distributors from trying to use the System Library
exception as a loophole, the GPL says that libraries can only qualify as System
Libraries as long as they're not distributed with the program itself. If you
distribute the DLLs with the program, they won't be eligible for this exception
anymore; then the only way to comply with the GPL would be to provide their
source code, which you are unable to do.
It is possible to write free programs that only run on Windows, but it is not a
good idea. These programs would be “trapped” by Windows, and therefore
contribute zero to the Free World.
"
Here's a case where a library isn't a System Library:
"I'd like to modify GPL-covered programs and link them with the portability
libraries from Money Guzzler Inc. I cannot distribute the source code for these
libraries, so any user who wanted to change these versions would have to obtain
those libraries separately. Why doesn't the GPL permit this? (#MoneyGuzzlerInc)
There are two reasons for this. First, a general one. If we permitted company A
to make a proprietary file, and company B to distribute GPL-covered software
linked with that file, the effect would be to make a hole in the GPL big enough
to drive a truck through. This would be carte blanche for withholding the
source code for all sorts of modifications and extensions to GPL-covered
software.
Giving all users access to the source code is one of our main goals, so this
consequence is definitely something we want to avoid.
More concretely, the versions of the programs linked with the Money Guzzler
libraries would not really be free software as we understand the term—they
would not come with full source code that enables users to change and recompile
the program. "
"Can I write free software that uses nonfree libraries? (#FSWithNFLibs)
If you do this, your program won't be fully usable in a free environment. If
your program depends on a nonfree library to do a certain job, it cannot do
that job in the Free World. If it depends on a nonfree library to run at all,
it cannot be part of a free operating system such as GNU; it is entirely off
limits to the Free World.
So please consider: can you find a way to get the job done without using this
library? Can you write a free replacement for that library?
If the program is already written using the nonfree library, perhaps it is too
late to change the decision. You may as well release the program as it stands,
rather than not release it. But please mention in the README that the need for
the nonfree library is a drawback, and suggest the task of changing the program
so that it does the same job without the nonfree library. Please suggest that
anyone who thinks of doing substantial further work on the program first free
it from dependence on the nonfree library.
Note that there may also be legal issues with combining certain nonfree
libraries with GPL-covered free software. Please see the question on GPL
software with GPL-incompatible libraries for more information."
I'm not a lawyer, but this is what I found on the GNU website.
Carl
- Re: 64-bit version of Lilypond?, (continued)
- Re: 64-bit version of Lilypond?, David Kastrup, 2019/02/25
- Re: 64-bit version of Lilypond?, Karlin High, 2019/02/25
- Re: 64-bit version of Lilypond?, Carl Sorensen, 2019/02/25
- Re: 64-bit version of Lilypond?, Hans Åberg, 2019/02/25
- Re: 64-bit version of Lilypond?, Sven Axelsson, 2019/02/25
- Re: 64-bit version of Lilypond?, Hans Åberg, 2019/02/25
- Re: 64-bit version of Lilypond?, Karlin High, 2019/02/25
- Re: 64-bit version of Lilypond?, Hans Åberg, 2019/02/26
- Re: 64-bit version of Lilypond?, Carl Sorensen, 2019/02/25
- Re: 64-bit version of Lilypond?, Karlin High, 2019/02/25
- Re: 64-bit version of Lilypond?,
Carl Sorensen <=
- Re: 64-bit version of Lilypond?, David Kastrup, 2019/02/26
- Re: 64-bit version of Lilypond?, Karlin High, 2019/02/26
- Re: 64-bit version of Lilypond?, Werner LEMBERG, 2019/02/26
- Re: 64-bit version of Lilypond?, Karlin High, 2019/02/26
- Re: 64-bit version of Lilypond?, David Kastrup, 2019/02/26
- Re: 64-bit version of Lilypond?, Karlin High, 2019/02/26
- Re: 64-bit version of Lilypond?, Karlin High, 2019/02/27
- Re: 64-bit version of Lilypond?, David Kastrup, 2019/02/27
- Re: 64-bit version of Lilypond?, Karlin High, 2019/02/28
- Re: 64-bit version of Lilypond?, Carl Sorensen, 2019/02/24