lilypond-devel
[Top][All Lists]
Advanced

[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




     


reply via email to

[Prev in Thread] Current Thread [Next in Thread]