lilypond-user
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Lilypond \include statements and the GPL


From: Anthonys Lists
Subject: Re: Lilypond \include statements and the GPL
Date: Tue, 02 Apr 2013 22:38:42 +0100
User-agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:17.0) Gecko/20130307 Thunderbird/17.0.4

On 02/04/2013 22:01, Joseph Rushton Wakeling wrote:
On 04/02/2013 09:50 PM, Tim McNamara wrote:
OK, now let's consider a specific example. Here's a bit of C code that generates 100 random numbers and calculates their sum. ////////////////////////////////////////////////////////////////////////////////////// #include <stdio.h> #include <gsl/gsl_randist.h> double random_number_sum(const gsl_rng *r, size_t n) { size_t i; double x = 0.0; for(i=0; i<10; ++i) x += gsl_ran_flat(r, 0.0, 1.0); return x; } int main(void) { size_t n = 100; gsl_rng *r = gsl_rng_alloc(gsl_rng_default); double x = random_number_sum(r, n); printf("The sum of %lu random numbers in [0, 1) is %g\n", n, x); gsl_rng_free(r); return 0; } ////////////////////////////////////////////////////////////////////////////////////// Let's go through it line by line. The first line tells the compiler, when compiling, to make use of the standard library header describing input and output. That doesn't matter -- it's a system library and therefore irrelevant as far as licensing is concerned. The second line tells the compiler to make use of the header file describing the functions from the GNU Scientific Library (GSL) that implement random number distributions.

Which is a header file, and probably not copyrightable.

Then you have a function which takes as part of its input a pointer to the gsl-defined random number generator type, and which calls internally the GSL function to generate a pseudo-random number from a uniform distribution. Inside the main() function, there are calls to the GSL functions to allocate and free memory in which to store a random number generator. Now, just as in your case, I've not copied either stdio.h or gsl_randist.h. I've not given them to you, either. It's just an instruction to your compiler to look for these files when trying to build the program, and if you try and compile this program without those files present on your system, the compilation will fail. Nor does this program contain any copyrighted content from those files.

(Function names and APIs are generally considered to be uncopyrightable.) However, I think the consensus of opinion about free software licensing would be that, in distributing to you this little program, purely in source code form, not compiled or linked in any way, I am still obliged to offer it to you under licensing terms that are GPL-compatible, or else lose my right to use the GNU Scientific Library.

You've just answered your own question. You have just said that this program does NOT contain ANY copyrighted content from the gsl.

As such, it is not a derivative work. That's what the law says. If the gsl people want to stop you using their library, they need the law on their side. And the Judge will say "that's not a derivative work. go away - oh and costs are awarded against you for a frivolous lawsuit, too!".

Cheers,
Wol



reply via email to

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