I was trying to releasing a library with LGPL license. However I had discovered that many time ago I copied and pasted in the library a header file defining some constants. This file was found on the internet, no license on top of it, I don't know how released it. As such, the unknown author owns the full copyright (berne convention).

What should I do? Can't I release the library under LGPL license?

The constants represent the mapping of audio notes and their frequency, nothing "secret" or "hidden", so if needed, I may change the name of the constants (I know, it's embarrassing).


Indeed, the default license is “all rights reserved”. On the other hand, facts are not copyrightable.

If any reasonable representation of these facts would result in the essentially same header file, there is an argument that there is nothing copyrightable in the header file (compare the US merger doctrine concept, though there's similar case law in the EU). Copyrightable aspects might also involve the structure and organization of the file. In particular, if you're in a jurisdiction that recognizes database rights (such as the EU), a collection of facts can be copyrightable as well.

Personally, if this was as fairly small snippet (e.g. < 10 lines) I'd probably feel sufficiently comfortable using it without any license. For example, I've often copied code snippets that have no reasonable other representation like “array with the first 100 primes” or “declaration for a PI constant”. Just yesterday, I “plagiarized” the structure of a C assert() macro from the GNU libc.

In your particular example, you could likely take the frequencies from publicly available sources such as Wikipedia and write your own header file, avoiding all of these concerns. Yes, Wikipedia is also copyrighted, but you would merely use it as a source of facts.

  • So are you suggesting to rewrite the header and change the name of the variables? Actually these constants are, for example: #define NOTE_F1 44. There is not much space to meaningful rewriting unless awkward nomenclature. Apr 6 at 7:44
  • and the constants in this header are 90 Apr 6 at 7:50
  • 1
    @fabiuz7 That looks like pure data that could be reasonable to copy without a license. But depending on your use case it could make sense to only use the defines you need, or to organize the defines differently than with defines, e.g. as a struct or array. And to be super anal, the rounding of the frequencies to integers might be a creative expression.
    – amon
    Apr 6 at 17:04

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.