Oh, Please! Not More FUD!

Would you believe it? Folks are claiming that software that uses the Linux API violates the GPL… The API is obviously open. In a *NIX system one needs those symbols to write drivers and libraries that use the services provided by the Linux kernel. The FUDsters apparently seek to discourage folks from using Android or writing software for it. Good luck to them. Only idiots and fools will listen to this FUD.

“Welcome to Bionic, Android’s small and custom C library for the Android platform.

Bionic is mainly a port of the BSD C library to our Linux kernel with the following additions/changes:

– no support for locales
– no support for wide chars (i.e. multi-byte characters)
– its own smallish implementation of pthreads based on Linux futexes
– support for x86, ARM and ARM thumb CPU instruction sets and kernel interfaces

Bionic is released under the standard 3-clause BSD License

Bionic doesn’t want to implement all features of a traditional C library, we only add features to it as we need them, and we try to keep things as simple and small as possible. Our goal is not to support scaling to thousands of concurrent threads on multi-processors machines; we’re running this on cell-phones, damnit !!

Even the Linux kernel (GPLv2) permits modification and redistribution under the same terms. Nothing in the GPL says you cannot rewrite the header files. You could if you wanted rewrite every line of code or delete them and still call it Linux. The important thing is that the modified code be redistributed under the same licence.

The kernel is licensed GPLv2:
“The Linux 2.6.x Kernel is licensed as follows:

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”.”

This is the errno.h etc. that SCO v World fizzled. The headers are not copyrightable because they do not constitute an intellectual creation, just a bunch of constants:
/****************************************************************************
****************************************************************************
***
*** This header was automatically generated from a Linux kernel header
*** of the same name, to make information necessary for userspace to
*** call into the kernel available to libc. It contains only constants,
*** structures, and macros generated from the original header, and thus,
*** contains no copyrightable information.
***
****************************************************************************
****************************************************************************/
#ifndef _ASM_GENERIC_ERRNO_H
#define _ASM_GENERIC_ERRNO_H

#include

#define EDEADLK 35
#define ENAMETOOLONG 36
#define ENOLCK 37
#define ENOSYS 38
#define ENOTEMPTY 39
#define ELOOP 40
#define EWOULDBLOCK EAGAIN
#define ENOMSG 42
#define EIDRM 43
#define ECHRNG 44
#define EL2NSYNC 45
#define EL3HLT 46
#define EL3RST 47
#define ELNRNG 48
#define EUNATCH 49
#define ENOCSI 50
#define EL2HLT 51
#define EBADE 52
#define EBADR 53
#define EXFULL 54
#define ENOANO 55
#define EBADRQC 56
#define EBADSLT 57

#define EDEADLOCK EDEADLK

#define EBFONT 59
#define ENOSTR 60
#define ENODATA 61
#define ETIME 62
#define ENOSR 63
#define ENONET 64
#define ENOPKG 65
#define EREMOTE 66
#define ENOLINK 67
#define EADV 68
#define ESRMNT 69
#define ECOMM 70
#define EPROTO 71
#define EMULTIHOP 72
#define EDOTDOT 73
#define EBADMSG 74
#define EOVERFLOW 75
#define ENOTUNIQ 76
#define EBADFD 77
#define EREMCHG 78
#define ELIBACC 79
#define ELIBBAD 80
#define ELIBSCN 81
#define ELIBMAX 82
#define ELIBEXEC 83
#define EILSEQ 84
#define ERESTART 85
#define ESTRPIPE 86
#define EUSERS 87
#define ENOTSOCK 88
#define EDESTADDRREQ 89
#define EMSGSIZE 90
#define EPROTOTYPE 91
#define ENOPROTOOPT 92
#define EPROTONOSUPPORT 93
#define ESOCKTNOSUPPORT 94
#define EOPNOTSUPP 95
#define EPFNOSUPPORT 96
#define EAFNOSUPPORT 97
#define EADDRINUSE 98
#define EADDRNOTAVAIL 99
#define ENETDOWN 100
#define ENETUNREACH 101
#define ENETRESET 102
#define ECONNABORTED 103
#define ECONNRESET 104
#define ENOBUFS 105
#define EISCONN 106
#define ENOTCONN 107
#define ESHUTDOWN 108
#define ETOOMANYREFS 109
#define ETIMEDOUT 110
#define ECONNREFUSED 111
#define EHOSTDOWN 112
#define EHOSTUNREACH 113
#define EALREADY 114
#define EINPROGRESS 115
#define ESTALE 116
#define EUCLEAN 117
#define ENOTNAM 118
#define ENAVAIL 119
#define EISNAM 120
#define EREMOTEIO 121
#define EDQUOT 122

#define ENOMEDIUM 123
#define EMEDIUMTYPE 124
#define ECANCELED 125
#define ENOKEY 126
#define EKEYEXPIRED 127
#define EKEYREVOKED 128
#define EKEYREJECTED 129

#define EOWNERDEAD 130
#define ENOTRECOVERABLE 131

#endif

Give it a break, guys.

UPDATE Here’s SJVN’s take.

UPDATE Here’s RMS’ take

About Robert Pogson

I am a retired teacher in Canada. I taught in the subject areas where I have worked for almost forty years: maths, physics, chemistry and computers. I love hunting, fishing, picking berries and mushrooms, too.
This entry was posted in technology. Bookmark the permalink.

29 Responses to Oh, Please! Not More FUD!

  1. I have moved about in my time. I am a little tired of that. This is home base and I rent elsewhere.

  2. Dann says:

    I hope you find a job in good time. Is moving a possibility if you find employment elsewhere? (Like SK, AB, ON… etc)

  3. Ray says:

    Agreed.

  4. They are too darn lazy. I have the government bureaucrats chasing them now. Guys like those should not be allowed to hire employees if they won’t do the paperwork, IMHO.

  5. oldman says:

    “My previous employer, bless them, have not done the termination paperwork to the satisfaction of my employment insurance”

    Oh crap…. can you at least get your former employers to fix the paperwork?

  6. No luck. My short list went to zero when they did a lateral transfer. This is a difficult time of the year to get a teaching job because budgets are running out. It helps to balance the budget to be a teacher short and if they can slide someone over they save hiring costs. Another suitable position was recently advertised and I applied. Openings for September are appearing but I may not be able to last that long… My previous employer, bless them, have not done the termination paperwork to the satisfaction of my employment insurance.

  7. I am sure all this was checked out ages ago. The FUDsters have just found something smelly in the trash.

  8. oldman says:

    BTW Pog:

    Any updates on the job hunting?

  9. oldman says:

    “Until then, we should ignore the FUD IMHO. One doesn’t stay indoors because some nut-case says “The sky is falling!”

    Fair enough. However I personally hope that Google makes some statement to its Client ISV’s that will at least clarify what they view is their legal position vs. the merits of this claim.

    Remember Pog, it may be FUD to you, but when companies have money and intellectual property involved, they are going to protect their interests. accordingly based on the risks as they see them.

  10. Until then, we should ignore the FUD IMHO. One doesn’t stay indoors because some nut-case says “The sky is falling!”.

  11. oldman says:

    “You disagree with the SCOTUS about what is copyrightable?

    Copyright does not cover input data.”

    Pog, even if you are correct, your reading here is only an opinion. It may indeed be the case that you or crocklaw or any of us for that matter are right, but as far as the law is concerned, all this means nothing until the courts actually rule and all appeals from all rulings are exhausted.

    The law is the law, after all.

  12. You disagree with the SCOTUS about what is copyrightable? Executable code is an expression of the thoughts of the writer. Conditional compilation is not because the builder of the code can change the result without rewriting anything. It’s like a writer leaving blanks in a work. “_____ had a little lamb” could become “Jack had a little lamb”. The original authour has nothing to say about “Jack”. It is not a derived work. Copyright does not cover input data.

  13. saulgoode says:

    “ifdef is a macro but it is not about executable code, just choices made at compile-time. So it is not an expression of anything.”

    Copyright is not about “executable code”, it is about creative expression in works of authorship. The choice made of including an ifdef block in software is a creative one, and the resulting work is an expression of that creativity. Likewise, programmers make creative decisions when they design structs to hold their data, and conceive ways of arranging such structs and create macros which manipulate their data.

    If Google wishes to do a clean room implementation of the Linux kernel headers — removing all of the creativity decision-making that was incorporated into the headers and substituting their own — that might be permissible under copyright law. Copying of the creative elements in the headers and releasing them under different licensing terms is not.

    I fully expect Google to be updating the licensing of their Bionic header files to comply with the licensing of the works from which it is derived.

  14. In the old days, this=that was all you needed in a header. With more complex interfaces, more complex headers are required. The “that” may be a function or relation, just maths/logic. That folks intend those to be used in non-derived works means they are not excluded from others’ use by copyright. ie. Google has permission to use them. If that were not so, no one would be able to build software that depends on Linux and there would be no GNU/Linux or anything else using Linux. Linux needs the headers to go to builders of software to run on Linux. I can write software that will run on Linux but I call libraries that use those headers.

    ifdef is a macro but it is not about executable code, just choices made at compile-time. So it is not an expression of anything. You can write something like “Mary had a little lamb” and claim copyright on it but that does not give you copyright on “Mary had a little frog”. The macros depend on variables set by the builder of the software who is not the copyright holder of the Linux headers. These headers are like the alphabet. You can express a lot with them but they are not really expressions of anything and not copyrightable.

  15. Those are Google’s headers used in building their software. They give permission to use, modify and to distribute those same headers.

  16. I did read it. It is superficial and ignores all that was learned in SCO v World.

    IBM, in SCO v World quoted Feist.
    “Petitioner Feist Publications, Inc., is a publishing company that specializes in area-wide telephone directories covering a much larger geographic range than directories such as Rural’s. When Rural refused to license its white pages listings to Feist for a directory covering 11 different telephone service areas, Feist extracted the listings it needed from Rural’s directory without Rural’s consent. 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. 499 U. S. 344-364.”

    The Supremes are lawyers, last time I checked. A header file is like a telephone directory, this=that is the same as so-and-so has phone number.

    See Groklaw
    “First Motion Heard — Is This All There Is?

    In the first motion, we learn a bit more about those 326 lines of code. Of those 326 lines, most are comments, not code. Allegedly, those lines of code infringe 320 lines of Unix code. But they aren’t copyrightable, IBM says, because they are dictated by externalities, they are unoriginal and they are merger material. Even if they were protected by copyright, those 320 lines don’t result in substantial similarity between Linux and Unix.

    More details: As for the 326 lines, 11 of 12 files are header files, which aren’t copyrightable. Header files don’t do anything, IBM’s attorney David Marriott explains. You can’t run a header file or execute a header file. Header files are just descriptive of how information is shared among the components of an operating system.

    Now, the header files themselves are of three types, #define statements, structure declaration, and function prototypes. The first specifies abbreviations. 121 of the 326 lines are #define headers.”

    IBM’s team are lawyers, too. IBM’s motion with respect to those header files was stayed with the filing of bankruptcy by SCOG so a court has not ruled on them but the Feist reference seems definitive.

  17. saulgoode says:

    If there is nothing in the header files which is deserving of copyright protection, then on what basis is Google claiming copyright on their “Bionic” headers?

  18. Yonah says:

    “There is nothing copyrightable about lists of phone numbers or symbols defined in header files.”

    Via the BrownRudnick Advisory PDF:

    “In the case of the Linux kernel header files, most would likely be copyrightable (even with comments removed) because the headers include many macros, inline functions, and other logic that clearly qualifies as expression.”

    The Advisory then goes on to list numerous court ceases that back up that assertion.

  19. oldman says:

    Pog:

    You and all else may indeed be correct, however you are NOT a lawyer, nor are you a court of law. It is in a court of law where this will be decided, unless the FSF makes a declaration similar to what I proposed.

    I ask again, did you read the legal analysis?

  20. The files in question are headers, not the code itself. There is nothing copyrightable about lists of phone numbers or symbols defined in header files. The purpose of copyright is to protect original creations. There is nothing original about this=that where that is some number or other symbol. There is no process or composition of matter involved, so it’s not patentable either. It’s just information. Copying it is not violation of copyright any more than it is violation of copyright to build an application for any modern OS. Even back in the 1970s one of my first jobs was rewriting software for a newer machine. The old symbols were copied unchanged. They are not protected works but information needed to interface to a protected work.

  21. oldman says:

    “Nonsense. Lawyers don’t understand the technology. ”

    “Pure garbage.”

    “Pay any of these so called “experts” enough money and they’ll say anything you want.”

    First off, did any of you read the legal analysis, or are you just getting all bent out of shape by this?

    You can say what you want about this gentlemen, but in the end someone may have to get the courts to rule on this.

    Of course this all could be set to rest if the Free Software Foundation could simply state that they will never pursue a GPL enforcement actions against any non free applications/closed binaries developed on the android platform.

    The question is, would they?

  22. Ray says:

    Lpbear:

    No, this time, instead of Linux accused of copying someone code, it’s the other way around. Let’s wait and see if it’s true or just FUD.

  23. lpbbear says:

    “I too thought this was bushwah until I read the legal analysys of one of the people cited at:”

    Good lord! All this is is “SCO the sequel” to the “2nd Edition” to the “Return Of”.

    ITS THE SAME OLD CRAP SCAM THAT IT WAS SEVERAL YEARS AGO.

    Yet another Microsoft funded backed PR campaign that attempts to “compete” with a superior product just like Microsoft always “competes”. By trash talking, threatening, waving the patent/copyright flag etc. planting stories in the MS funded Tech rags etc. etc.

    Pay any of these so called “experts” enough money and they’ll say anything you want.

    Same thing happened at the beginning of the SCO scam. Nothing new.

    Pure garbage.

  24. Nonsense. Lawyers don’t understand the technology. We have seen that for 8 years in SCO v World. They sued for $billions and did nothing but ruin their own business. They did not even understand that they did not own the copyrights they were suing over.

    There are two cases in this instance. Oracle v Google is mostly about Google whipping up the Dalvik virtual machine that does not run Java code. Folks translate their apps to a language that Dalvik can run. Basically, Oracle is suing over a tiny percentage of code in files being copied. These are non-essential files included for testing. Oracle is suing over some software patents which are baseless. Interpreters have been around since the 1960s. There’s nothing new there.

    The other case is potentially Linux v Google or these fudsters want it to be that. In fact Linus Torvalds and many of his friends want Linux to be used and they don’t much care for Free Software. They are not going to sue because Google used some header files. You cannot build the code to run in Linux without those files. That’s not copyright violation. It’s using the published API of Linux. There’s nothing there.

    This is another reason why it would have been better to use GPL for Android. The FUD would have no legs at all. Now the media will run with this and PHBs all over the world will delay projects while they have lawyers go to GPL-school. This is just another attack against FLOSS by its enemies. Google went out of its way to avoid the GPL as much as possible for no particular advantage that I can see. They dragged in BSD and Apache stuff instead of GNU stuff and the result is FUD. Who would have given this story any space if Android were GPL? I looked at the code. I have it all indexed and searchable. Google was fastidious to keep Linux in one pile and Android in another taking care to keep track of licensing. That was extra effort for no benefit. They are giving away use of the code in any event. It’s obvious they chose to use Linux so they did not have to reinvent the wheel. Why did they not use the same licence throughout when they could have done that? Now they have mixed licensing and a forked kernel which is going to make extra work to merge.

  25. oldman says:

    Pog:

    I too thought this was bushwah until I read the legal analysys of one of the people cited at:

    http://www.brownrudnick.com/nr/pdf/alerts/Brown%20Rudnick%20Advisory%20The%20Bionic%20Library-Did%20Google%20Work%20Around%20The%20GPL.pdf

    I recommend theading it with an open mind. If this gentleman is correct, Google may have created a bigger problem for themselves and the commercial ISV’s who are looking to Android based gadgets as a new market. Calling it FUD is misguided, because none of us, myself included are lawyers, and in any case all are opinions until the a case is brought to cort and ruled on.

    Potentially not good.

    IN the meanwhile, we see how this plays out.

  26. These are header files. You cannot use the software underneath without having those headers in the code you create and build. The software that is not GPL or is GPL has to have the information in the headers. That is explicitly permitted. errno.h, for instance is part of the POSIX standard.

  27. Richard Chapman says:

    We can expect Microsoft to leave no FUD unturned as they slide further into irrelevance.

  28. Ray says:

    Well, if they did copy files from Linux, scrubbed them, and released it under the BSD license, it would technically considered violating the GPL.

    We should probably listen to them though, as once in a while they might have something that will violate the GPL.

  29. Bender says:

    This is standard FUD from Florian Mueller. I wonder who pays him to spew all that crap from his mouth… Does the Redmond city come to mind?

Leave a Reply