Slashdot Mirror


RMS On Header Files and Derivative Works

tomhudson writes "In this email from 2003, Richard Stallman says 'I've talked with our lawyer about one specific issue that you raised: that of using simple material from header files. Someone recently made the claim that including a header file always makes a derivative work. That's not the FSF's view. Our view is that just using structure definitions, typedefs, enumeration constants, macros with simple bodies, etc., is NOT enough to make a derivative work. It would take a substantial amount of code (coming from inline functions or macros with substantial bodies) to do that.' This should help end the recent FUD about the Android 'clean headers.'"

40 of 247 comments (clear)

  1. Copyrights on facts by nickovs · · Score: 4, Informative

    I've hear it suggested by a number of lawyers that the _specification_ a binary interface of a library is a statement of fact, rather than a creative work. Since copyright does not apply to statements of fact this would suggest that structure definitions and the like would not be subject to copyright, and by extension the is no issue regarding derivative works. Of course you could probably as the same lawyers on a different day (or with a different person paying the bills) and get a different answer, but the concept seems to make sense.

    --
    If intelligent life is too complex to evolve on its own, who designed God?
    1. Re:Copyrights on facts by OddJobBob · · Score: 5, Informative

      Express Logic have already been through this when Green Hills released their RTOS using the ThreadX API from Express Logic. In this case the arbitrators ruled in favour of Green Hills even though the header files were copied.

    2. Re:Copyrights on facts by tomhudson · · Score: 5, Informative
      First, despite your claim, you are not a lawyer. You have too many basic facts wrong.

      Second, facts cannot be copyrighted, any more than the rules of a game can be.

      ONLY the presentation or layout of those facts can be copyrighted. And it is ONLY the presentation or layout, not the underlying facts, that are protected.

      Unique definitions are also not sufficient of themselves for copyright in software, if that unique definition is either required for interoperability, or is the only way to do something.

      For example:

      #define ERR_ANY -1
      #define ERR_SEEK -2
      #define ERR_WRITE -3

      is not copyrightable.

      url:http://www.ivanhoffman.com/scenes.html

      Under the merger doctrine, courts will not protect a copyrighted work from infringement if the idea underlying the work can be expressed only in one way, lest there be a monopoly on the underlying idea. In such an instance, it is said that the work’s idea and expression “merge.” Under the related doctrine of scenes a faire, courts will not protect a copyrighted work from infringement if the expression embodied in the work necessarily flows from a commonplace idea….

      The Court went on, in part quoting from the famous litigation between Microsoft and Apple:

      Likewise, when similar features of a work are “as a practical matter indispensable, or at least standard, in the treatment of a given idea, they are treated like ideas and are therefore not protected by copyright.”

    3. Re:Copyrights on facts by binkzz · · Score: 5, Funny

      #define ERR_ANY -1
      #define ERR_SEEK -2
      #define ERR_WRITE -3

      is not copyrightable.

      What about:

      #define ERR_PS3 0x46DCEAD317FE45D80923EB97E4956410D4CDB2C2

      :-"

      --
      'For we walk by faith, not by sight.' II Corinthians 5:7
    4. Re:Copyrights on facts by tibit · · Score: 2

      Sorry, but no. There are countries with legal systems fucked up enough, like Poland, where a mere timetable is subject to legal protections. In Poland you can't publish a frakking bus timetable without permission (haha) from the company that runs those buses. Same goes for any other timetable. Including TV programs methinks.

      --
      A successful API design takes a mixture of software design and pedagogy.
    5. Re:Copyrights on facts by rtb61 · · Score: 2

      The reality is a lawyer will agree with any opinion the client has to make as long as there is a pay check in it. Of course that agreement will be in politispeak that can be interpreted six ways from Sunday afterwards.

      When it comes to Open Source software it most often will be only subject to community discussion, with only blatant egregious examples of copyright infringement being subject to legal review.

      The community surrounding any open source project is going to be far more interested in keeping the project going than it splitting legal hairs and turning people off from the project, that pretty much has been done by tame junk journalists at the behest of closed source proprietary software houses looking to make open source software look bad.

      --
      Chaos - everything, everywhere, everywhen
    6. Re:Copyrights on facts by UnknowingFool · · Score: 5, Informative
      The relevant case law on this is Gates Rubber v Bando.

      It established the abstraction-filtration-comparison test in whether copyright code is infringing. Abstraction is the first step and gets the relevant source code. In filtration, any part of the code that cannot be copyrighted must be eliminated for consideration. One thing that must be excluded are facts. For example, many programs that draw circles rely on using Pi. A company cannot copyright PI =3.14159 as this is a fact. Anything in the public domain are excluded. This is where SCO would have had lots of problems because even if the code was legally owned by them (it was owned by Novell), some of what they claimed to be theirs had been put into the public domain by AT&T, USL, BSD, and others over the years. Header files (especially the simple ones that are merely #include statements) can fall under scenes a faire. Standards also fall under this category. Scenes a faire are all the elements that are required for any program of the same type to run. Variable declarations for example. If a program works with files, the owner can't really claim "File file = null" is copyrightable as a variable declaration.

      Only after filtering out non-protected elements, can any comparison begin. That was one of the arguments IBM had against SCO: IBM's expert claimed that SCO's expert, SCO VP Gupta, had failed to filter out unprotected elements of code. Two examples of the alleged violating code were the IPC and ELF header files. The IPC header had been put into public domain without copyright since 1989. The ELF header was published as part of the ELF specification whose membership included SCO's predecessor, Santa Cruz. By the way, IBM's expert was Brian Kernighan who worked with Ritchie and Thompson on Unix, wrote the first book on C with Ritchie, and wrote some Unix programs like cron.

      --
      Well, there's spam egg sausage and spam, that's not got much spam in it.
    7. Re:Copyrights on facts by tomhudson · · Score: 3, Interesting

      So here's a real question: If the header files cannot be copyrighted, why did those linux people attempt to PUT copyright on it by including a copyright in the file? If it can't be copyrighted and the folks who maintain the GPL say it can't be copyrighted then why is that copyright in the file in the first place? Are the linux folks trying to use FUD here too?

      1. Because some things, like comments, etc., ARE copyrightable.
      2. Because we're only talking about a specific subset of headers here. Other headers may contain code that can be copyrighted. The kernel is a lot more than 27,000 lines.

      HTH :-)

    8. Re:Copyrights on facts by Timothy+Brownawell · · Score: 2

      So by this explanation I can link my closed-sourced program to a GPL library(dynamically). I only use it's headers!

      Depends on what's in the headers (is it *just* declarations you need for talking to the library, or is half of it macros and inline functions and such that end up in your binary), and whether you have enough spare cash/time to fend off a lawsuit.

    9. Re:Copyrights on facts by NemosomeN · · Score: 2

      Half are below average? 1, 1, 1, 1, 1, 1, 1, 1, 1, 11 What is the average of these numbers? What percentage of them is below that average? (Answers: 2, and 90%)

      --
      I hate grammar Nazi's.
    10. Re:Copyrights on facts by tomhudson · · Score: 2
      Here is your actual quote

      this is wrong. facts are copyrightable because the layout and organization of the facts can be copyrighted

      And this is wrong. ONLY the layout and organization of the facts, not the fact themselves, are copyrightable.

      No matter how you spin it, you are wrong. Facts are not copyrightable. So when you try to spin it yet again by claiming:

      no. the presentation AND the facts are the protected element in all scenarios. the presentation is not independent of the facts. the copyright to a work is the whole work. the presentation cannot be applied to a new set of facts and be protected. it would form a new work.
      e.g. bob takes alices presentation from alices protected work. puts in a new set of facts. copyright belongs to bob not to alice.
      e.g. alice takes bobs facts. puts em into a whole new presentation. copyright belongs to alice not bob.

      ... this is simply not true. The facts are not a protected element in ANY scenario. The copyright does not protect "the work as a whole", even if it is issued against the whole work. It only protects those elements that are copyrightable, the same as someone may copyright their version of the dictionary, but that doesn;t give them copyright to the word definitions, just the layout, the frontispiece, the endpapers, and any other unique creative content.

      Not only that, but your first example, bob is guilty of infringing alice's copyrights on the presentation of the facts, which is a protected element.

      So quit trying to claim you're a lawyer. Or if you are, stop posting anon so we can email a copy of this thread to all your colleagues for the lulz.

    11. Re:Copyrights on facts by tomhudson · · Score: 3, Insightful

      no. youre just ... wrong. the presentation of the facts DOES NOT EXIST WITHOUT THE FACTS. im not trying to spin anything. go read : Feist Publications, Inc., v. Rural Telephone Service Co., 499 U.S. 340 (1991) and educate yourself. besides, i'll probably send a copy of this thread around to my colleagues anyway. they should have a good laugh at your expense. i work for jones day but you may not have heard of us.

      Re Feist

      111 S. Ct. at 1288 (internal quotations and citations omitted). Like ideas and processes, facts themselves are not protectable;however, an author’s original compilation, arrangement or selection of facts can be protected by copyright. Feist, 111 S. Ct. at 1289 ; Applied Innovations, 876 F.2d at 636 . However, “the copyright is limited to the particular selection or arrangement. In no event may copyright extend to the facts themselves.” Feist, 111 S. Ct. at 1290

      The Supremes say you are full of it.

      The Feist decision only extended copyright to the layout, not the underlying facts.

      I've heard of Jones, Day - if you work for them, maybe in the mail room, but certainly not as a lawyer. Or are you now going to say that the Supremes got it wrong?

      You're wrong, and you just keep giving me more ammunition to shoot you down with every time. You're as bad as Florian Mueller.

    12. Re:Copyrights on facts by tomhudson · · Score: 2

      please just go read feist. and avoid reading excerpts. an author’s original compilation, arrangement or selection of facts can be protected by copyright wtf does this mean ? IT MEANS YOU ARE AN IDIOT. are they going to award damages based on only the infringing potions or the whole work ? YOU DUMB SHIT BAG. THE WHOLE WORK IS PROTECTED. read the fucking text and interpret it you moron.

      The Supreme Court says otherwise.

      The original court, and the appeals court, agreed with your stand. The Supreme Court reversed it - the "collections copyright" doctrine was overthrown. You could no longer claim a copyright on both the layout and the underlying facts, as the Supreme Court ruled that facts are not subject to copyright in Feist vs Rural.

      Exerpts.

      Although Feist altered many of Rural's listings, several were identical to listings in Rural's white pages. The District Court granted summary judgment to Rural in its copyright infringement suit, holding that telephone directories are copyrightable. The Court of Appeals affirmed.

      Held:

      Rural's white pages are not entitled to copyright, and therefore Feist's use of them does not constitute infringement. Pp. 344-364.

      (a) Article I, 8, cl. 8, of the Constitution mandates originality as a prerequisite for copyright protection. The constitutional requirement necessitates independent creation plus a modicum of creativity. Since facts do not owe their origin to an act of authorship, they are not original, and thus are not copyrightable. Although a compilation of facts may possess the requisite originality because the author typically chooses which facts to include, in what order to place them, and how to arrange the data so that readers may use them effectively, copyright protection extends only to those components of the work that are original to the author, not to the facts themselves. This fact/expression dichotomy severely limits the scope of protection in fact-based works. Pp. 344-351.

      So, the Supreme Court didn't affirm the Appeals Court decision. They explained where past courts had gone wrong in awarding copyright to compilations of mere facts.

      Lower courts that adopted a "sweat of the brow" or "industrious collection" test - which extended a compilation's copyright protection beyond selection and arrangement to the facts themselves - misconstrued the 1909 Act and eschewed the fundamental axiom of copyright law that no one may copyright facts or ideas. Pp. 351-361.

      (c) Rural's white pages do not meet the constitutional or statutory requirements for copyright protection. While Rural has a valid copyright in the directory as a whole because it contains some forward text and some original material in the yellow pages, there is nothing original in Rural's white page
      ...
      916 F.2d 718, reversed.

      So, while Rural had a copyright on parts of their work, they didn't have a copyright on the facts themselves. As tghe supremes pointed out above, it is a fundamental axiom of copyright law that no one may copyright facts or idea

      Further on,

      The District Court granted summary judgment to Rural, explaining that "[c]ourts have consistently held that telephone directories are copyrightable" and citing a string of lower court decisions. 663 F.Supp. 214, 218 (1987). In an unpublished opinion, the Court of Appeals for the Tenth Circuit affirmed "for substantially the reasons given by the district court." App. to Pet. for Cert. 4a, judgt. order reported at 916 F.2d 718 (1990). We granted certiorari, 498 U.S. 808 (1990), to determine whether the copyright in Rural's directory protects the names, towns, and telephone numbers copied by Feist.
      ...
      This protection is subject to an important limitation. The mere fact that a work is co

    13. Re:Copyrights on facts by Unequivocal · · Score: 2

      Yes but. My reading of Google's process for the Linux headers is that they specifically strip out all the comments and complex macros such as what you describe. Their readme even describes how they optimize some macros to make them simple (by short circuiting or otherwise). Presumably they do this to optimize but also to make them trivial and therefore free to distribute in a non-gpl header.

  2. Re:f u by Shikaku · · Score: 3, Informative

    You can say fuck on slashdot dude. Hell, you can type anything you want at zombocom er slashdot.

  3. Re:How the fuck do we define a "substantial amount by Anonymous Coward · · Score: 5, Funny

    How the fuck do we decide what a "substantial amount of code" actually is? Where exactly is the boundary?

    Free Software zealot: "substantial amount of code" == one line

    Corporate America: "substantial amount of code" == entire program.

    IP Lawyers: "substantial amount of code" == new Porsche.

  4. Re:end FUD ? by tomhudson · · Score: 4, Insightful

    This should help end the recent FUD about the Android 'clean headers.

    you must be new here..

    No, I just believe that the FUD-packers will now try something else.

    They don't seem to get it - that there are now a critical mass of people who not only don't buy into the FUD, but have an ideological interest in exposing the FUD for what it is.

    Now that we've got the numbers, FUD not only becomes less effective for the other side, but draws attention to just how much of a threat open source is to them, and how hollow their arguments really are.

    Think of it. This was an attack on Android specifically designed to get hand-set vendors worried that they would have to share their source, not just the usual "linux may have copyright problems blah blah blah". It failed, and in doing so discredits all the other similar FUD. People like Florian Mueller are the internet version of the boy who cried wolf - at this point, even if he did find something, who'd believe him?

  5. Re:not so fast by Anonymous Coward · · Score: 3, Insightful

    Uh, what relevance does the original copyright license hold if the modified headers are no longer considered to be under copyright?

  6. Re:end FUD ? by tomhudson · · Score: 5, Informative
    Copyright law already addresses this in the general case. RMS got his opinion from lawyers who know about the specifics of copyright law, that there are plenty of things that are not copyrightable. And yes, in the US this IS settled law, unless you know of a higher court than the Supreme Court of the USofA.

    In the more specific case of linux, you might also want to see the COPYING file, which is a modified version of the GPL v2 that explicitly states that using the header files to access kernel services doesn't create a derivative work, which was the whole point of the FUD-packers campaign, to convince handset manufacturers that there was a risk that their Android code was a derivative work and they'd have to share their source.

    Hope this clears it up a bit :-

  7. WARNING - that is NOT the GPL that linux uses. by tomhudson · · Score: 4, Insightful
    No, that is NOT the version of the GPL that linux uses. Linux uses a non-standard version of the GPL, that begins with this exemption (taken from the latest COPYING file in the kernel sources off my hard drive):

    NOTE! This copyright does *not* cover user programs that use kernel
    services by normal system calls - this is merely considered normal use
    of the kernel, and does *not* fall under the heading of "derived work".
    Also note that the GPL below is copyrighted by the Free Software
    Foundation, but the instance of code that it refers to (the Linux
    kernel) is copyrighted by me and others who actually wrote it.

    Also note that the only valid version of the GPL as far as the kernel
    is concerned is _this_ particular version of the license (ie v2, not
    v2.2 or v3.x or whatever), unless explicitly otherwise stated.

    Linus Torvalds

    GNU GENERAL PUBLIC LICENSE
    Version 2, June 1991

    So, using the headers to access kernel services does not create a derivative work.

    This is over and above that the files in question have been stripped of copyrightable content.

    1. Re:WARNING - that is NOT the GPL that linux uses. by Chemisor · · Score: 2

      That quote mentions programs that "use kernel services by normal system calls". Nothing is said about actually including kernel headers.

  8. Re:My class defs are in .h, you insensitive clod! by sribe · · Score: 2

    I guess people are talking C? I program C++ with the classes in the .h files, using the .cpp files only to determine which root classes get created. Criticize me for not following good practices, but I do this to simplify translation of programs between C++ and Java, where everything is done in terms of classes and there is only the one .java type source file.
    So at least in C++, the header files could just specify interfaces or they could specify the entire program source code.

    Right, consider templates... The "header files are often not copyrightable" refers to the kinds of header files that include only simple declarations, not implementations. It's not really "header files" that are not copyrightable, it's the kind of API description & definitions that are often (but not always) the sole content of header files.

  9. Re:Copyright removed or not? by sribe · · Score: 2

    I thought the initial news was that copyrights were removed from the Android glib files and replaced by a mention it's public domain. If they are not removed there is no reason indeed to talk about this (except the news was false). If they are removed most of the comments about "including headers creates derived work or not" is not related to the subject IMO, then the main subject is that Google tried to removed the copyrights.

    That is the main subject, but the question of whether or not the copyright notices were legitimate to begin with is certainly relevant to google's removal of them... You can slap a copyright notice on anything, but if it's material not subject to copyright to begin with, your notice will not bend copyright law to cover it, no matter how much you may desire it to do so.

  10. Re:Stallman has changed his mind by phantomfive · · Score: 3, Funny

    Theo, is that you?

    --
    "First they came for the slanderers and i said nothing."
  11. Re:end FUD ? by Chemisor · · Score: 2, Funny

    > unless you know of a higher court than the Supreme Court of the USofA

    Yes, I wonder what God thinks about this whole issue.

  12. Re:Stallman has changed his mind by Anonymous Coward · · Score: 2, Interesting

    Around 1994, they allowed viral-free bison output.

  13. Re:Smackdown, on Florian by tomhudson · · Score: 3, Funny

    Who else is fed up by Florian Mueller's antics?

    I sense a new slashdot poll

    What do you think of Florian Mueller's antics?
    [_] Florian Mueller's blog is the new goatse link. "Oww! My MIND! Quick, get the brain bleach!"
    [X] I just want to know who's paying for it.
    [_] "I'm an anonymous coward and I approve" -- Florian Mueller
    [_] "Damn, forgot to check 'Post Anonymously' -- Florian Mueller
    [_] Hey, it generates page hits and sells ads -- editors
    [_] I am Steve Ballmer and I approve of Florian Mueller's antics
    [_] In Soviet Russia, everyone trolls Florian Mueller.
    [_] Florian Mueller had an original idea that wasn't a troll. It died of loneliness.
    [_] A grue ate him. Nothing of consequence was lost.
    [_] 104% of 42 respondents preferred CowboyNeal.

    This latest attempt to generate FUD pretty much seals the deal - his 15 minutes are SO over.

  14. Re:Standing? by Dogtanian · · Score: 2

    I guess the Linux kernel could be an exception with some statement like "by submitting this patch you agree to transfer copyright to Linus Torvalds".

    I believe that something similar is the case with some programs that offer themselves on a GPL or a non-GPL license, e.g. MySQL, if you want to get your code accepted into the "official" distribution. However, AFAIK this has never been the case with Linux, and at this stage it's incredibly unlikely that they'd get all the kernel contributors to agree to retrospectively turn over their copyright to Linus (or whoever)- so short of a massive rewrite that rewrote/replaced all contributions not reassigned to Linus, it ain't gonna happen.

    --
    "Slashdot - News and Chat Sites Deviant". (Click "homepage" link above for details).
  15. Re:How about a mathematical attempt at defining... by armanox · · Score: 2

    d(work)/dx ?

    --
    I'm starting to think GNU is the problem with "GNU/Linux" these days.
  16. Re:My class defs are in .h, you insensitive clod! by shutdown+-p+now · · Score: 2

    You can't put method bodies in a separate .cpp file if you use templates. When your library is mostly templates (like Boost), then all its code must necessarily be in the header files.

    This does not mean that the code in the headers can "still be reduced to just the interface facts".

  17. Re:Stallman has changed his mind by shutdown+-p+now · · Score: 4, Informative

    It wasn't because of header files. It was because the code generated by Bison (actual .c files) would be licensed under GPL, because it was a derived work of a GPL-licensed template, and included the GPL copyright comment.

    Due to problems with this arrangement, they have added this bit to the output:

    /* As a special exception, when this file is copied by Bison into a
        Bison output file, you may use that output file without restriction.
        This special exception was added by the Free Software Foundation
        in version 1.24 of Bison. */

    but this was after 1990.

    In any case, this has absolutely nothing to do with header files.

  18. Re:All works are derivative by marcello_dl · · Score: 2

    Copyright works in theory, it's not insane per se. It is abused, ok, and patents on obvious things are even worse, ok. But abolition of copyright is the removal of a rule: maybe it works, maybe when you remove too many rules you make room for the only rule that can't be touched: the stronger wins.

    --
    ---- MISSING MISCELLANEOUS DATA SEGMENT --- [sigdash] trolololol
  19. Re:There's a slight problem though by msauve · · Score: 2

    "The FSF is NOT the copyright holder of the Linux _kernel_ "

    No, but they wrote the license under which the kernel is distributed. Seems to me that their opinion on how that license is meant to apply is pretty authoritative.

    --
    "National Security is the chief cause of national insecurity." - Celine's First Law
  20. Re:end FUD ? by Belial6 · · Score: 5, Funny

    I agree with RMS on this one. So, now you have it from the highest source.

  21. Re:end FUD ? by MachDelta · · Score: 4, Funny

    "Clearly this evolution thing needs more bug testing. I've created a race largely composed of idiots."

  22. Importing is not copying by gilesjuk · · Score: 2

    Thing is, Stallman is saying that just including a header file. eg. #include "stdio.h" does not make the program a derivative of stdio.h.

    It doesn't however mean you can get stdio.h, remove all the comments and copyrights then pass that off as your own file, which is what Google have allegedly done.

  23. Re:end FUD ? by lostmongoose · · Score: 2

    The International Court of Justice?

    I lol'd. Good luck with that.

  24. Re:Incorrect - US Sup cases are NOT on point. by tomhudson · · Score: 2
    The Supreme Court, in Feist vs Rural, reversed the Court of Appeals and said that facts are not copyrightable, even if the work in which they are found is copyrightable, whether it is a newspaper story or a compilation of facts and protected elements.

    Any facts in header files are simply not eligible for copyright protection, even when embedded in a copyrighted header file.

    Facts are such things as POSIX identifiers, various data structures, etc. Bionic strips out the stuff eligible for protection, and leaves "just the facts" and other non-copyrighted entities.

    And no, we've pretty much demolished your claims of being a lawyer. You have continually claimed that Feist vs Rural says that copyright extends to both the layout and presentation PLUS the underlying facts, despite the the judgment saying the exact opposite, as anyone who follows the above link will see.

  25. I've asked RMS about Android by exa · · Score: 2

    He kindly told me that he thought about it, and this is not a case of violation.
    However, he did not tell me anything about header files, so I suppose
    we must assume he still thinks the same on this since 2003.

    From what I gather in his 2003 e-mail, I believe their lawyer must have
    thought of the "fair use" exceptions in copyright law, and indeed
    simply quoting a few typedefs would fall under fair use (since it is not a
    substantial portion). On the other hand, I have a hard time believing
    that this goes for anything in "header files", in general. I think you
    would have to ask him about the opinion of the FSF on header files,
    and interface definitions in general in any language. Note that he did
    not mention "function declarations". Read what he says carefully:

    > Someone recently made the claim that including a header file always
    > makes a derivative work.
    >
    > That's not the FSF's view. Our view is that just using structure
    > definitions, typedefs, enumeration constants, macros with simple
    > bodies, etc., is NOT enough to make a derivative work. It would take
    > a substantial amount of code (coming from inline functions or macros
    > with substantial bodies) to do that.

    He explicitly says that for there to be a derivative work, it would take
    a substantial amount of code. So, you can't just take a substantial
    portion of a GPL'd program's (either an application of a library) *interface*
    and release it under an arbitrary license. That is simply not permitted by the license.

    I think there are trolls from some companies here that are trying to make it seem as
    if you can use GPL'd libraries in any proprietary program. I am beginning to
    suspect they already do that in other ways.

    Best,

    --
    --exa--
    1. Re:I've asked RMS about Android by ledow · · Score: 2

      "He explicitly says that for there to be a derivative work, it would take a substantial amount of code. So, you can't just take a substantial portion of a GPL'd program's (either an application of a library) *interface* and release it under an arbitrary license."

      No, he says it would take a substantial amount of CODE. Meaning actual bodies of functions (he says so in the same line).

      A header file, by convention, contains no code. It has interface definitions (X expects an integer), it has data structures (A user account consists of alphabetical username and password and a numerical ID), and it has definitions (Pi is 3.141592). It does not and should never contain any substantial amount of code (or, really, lots of macro tricks). Everyone routinely distributes header files to closed-source DLL's, libraries etc. because it's not copyrightable and allows people to use those libraries (it is, in fact, necessary). But the header file is likely NOT covered by copyright at all (even if it says it is) because the information therein is not expressive (i.e. there are tools that can extract a "header" file you can use from a binary, it's just not as useful).

      What he's saying is that:

      long print_squared(int x);

      is not copyrightable. And almost every court in the land (including the SCO debacle) confirms that. It's not copyrightable because it's not expressive - it's merely fact and convention and interface. In the same way, a quadratic formula is not copyrightable but a book "Solving quadratics" or even a short except might well be copyrightable (and most probably is).

      The interface, as specified in a header file, is uncopyrightable on its own (though that doesn't stop people putting notices on it, it just doesn't mean they are "true"). The *body* - in programming terms - of a function (or the programmer's expression of his particular way of performing a certain procedure) is copyrightable, the *definition* or *prototype* is not.

      Otherwise every piece of software in the world is either a) infringing or b) GPL by extension (e.g. I use the SDL header in a closed-source program to know what functions to call and what parameters they expect - it doesn't mean that the SDL code is included except in a self-contained "closed" DLL or that the SDL licence applies to my entire program).

      And Google specifically said - they took a header file (which is 99.9% uncopyrightable - see SCO vs IBM etc.) and extracted JUST the function prototypes (so no question of macros, stray function bodies, etc. playing a part) and used that list of uncopyrightable "X does Y" to enable interfacing to a piece of code that was ENTIRELY under another licence. You can take ALL of the function prototypes in that way if you want. But you can't take a SINGLE LINE of function body without risking using copyrightable (and therefore copyright) material.

      Header files have one purpose - to provide the facts necessary to describe the *interface* to a set of code without needing the code present. Because they are facts, non-expressive and necessary for interoperability, they are uncopyrightable. If the GPL covered them, an awful lot of commercial games are in for a shock because they almost certainly used or include the SDL header, or the Allegro header, or any one of a million and one headers (including "windows.h"!) and thus become subject to the licensing terms on it. The SDL header even re-states the LGPL licence, for instance.

      Attempting to sue over header files and/or data derived from header files will end in humiliation. That said, certain parts of certain header files that contain macro code could easily be copyrightable. But that's no relevant - Google stripped out anything that wasn't a function prototype, from what they said.