Google Didn't Ship Relicensed Java Code After All
RedK writes "In a follow up to yesterday's news about Google apparently relicensing confidential Oracle code found in Java under the ASL, it seems that the blogger who initially reported the issue was plain wrong, as the files he indicated were in breach of Oracle's copyright do not actually ship with Android. Google has also deleted many of these files, which were mostly used as unit tests."
If Google distributed the source at any point, it's a copyright violation, whether or not it shipped in a handset.
I'll do a couple of follow-up posts on my blog these days to respond to some of the misconceptions and misinformation out there.
My blog never made a specific claim about Android devices containing certain code. From a copyright law point of view, however, putting software online for everyone to download means "to distribute", or "to ship", such code, and distributing, or shipping, infringing code makes someone liable.
Ed Burnette, whose post is referenced here, does not seem to understand even basic copyright-related terminology and concepts. He's wrong on almost everything he wrote and I'll debunk itI already left some comments below his article.
It's also wrong, as stated above, that Google "deleted" those files. They are still in the Froyo (Android 2.2) and Gingerbread (2.3) trees. At least they were when I last checked, which was yesterday. They are just not in the tree for future versions.
There is so much out there that's wrong, and I'll deal with it step by step.
this is pure speculation but...
one wonders whether Eric Schmidt's (former Sun executive) and his very probable push for Java on Android was not behind his resignation. From any angle Android's Java reliance seams like a bad move.
it seems that the blogger who initially reported the issue was plain wrong
Florian Mueller produced two blatantly erroneous stories in about as many days. I hope this high error rate keeps Slashdot from promiscuously posting his stuff for a while. I'm not counting on miracles, but this guy was given two chances on Slashdot and he blew it badly each time. Even if Slashdot's goal is to troll for eyeballs, they can find someone more competent to do the trolling.
I hope Google gets its way on court, scales up the Dalvik VM and we stop using anything coming from Oracle. Tomcat would run happily on it and we would use a completely Free/Free/No patents virtual machine. Kind of like they are doing with WebM. That would result in companies becoming really careful when trying to take open source code and screw up with it.
When his defense asked, "Which computer has Jon Johansen trespassed upon?" the answer was: "His own."
Yes, they are liable, but liable for what? What damages case can you make for files that aren't actually used?
Fines/Damages/Fees/"Whatever your legal system calls it" usually depend on how often you copied it and what money you made from it.
So if there are only those files, all they did was making them available in the source code repository, so that might be some large one-time sum.
If that code was in every single android device or only many android devices had code somehow based on this one or derived from it or otherwise extending the copyright of those file to what is shipped with those devices, then Oracle could have hope to get some money for every single Android devices shipped. Both from google and from the manufacturers, who might want to get that money back from google.
I think this difference is relevant.
found in the unit test area? Does that mean EMI (who owns the copyrights for the Beatles songs) could sue Google for copyright violation and get a percentage for each android handset even though the song "All You Need is Love" is not used in Android in any way whatsoever?
this seems like a perfectly valid counter to the zdnet piece:
http://www.engadget.com/2011/01/21/android-source-code-java-and-copyright-infringement-whats-go/
From a legal perspective, it seems very likely that these files create increased copyright liability for Google, because the state of our current copyright law doesn't make exceptions for how source code trees work, or whether or not a script pasted in a different license, or whether these files made it into handsets. The single most relevant legal question is whether or not copying and distributing these files was authorized by Oracle, and the answer clearly appears to be "nope" -- even if Oracle licensed the code under the GPL. Why? Because somewhere along the line, Google took Oracle's code, replaced the GPL language with the incompatible Apache Open Source License, and distributed the code under that license publicly. That's all it takes -- if Google violated the GPL by changing the license, it also infringed Oracle's underlying copyright. It doesn't matter if a Google employee, a script, a robot, or Eric Schmidt's cat made the change -- once you've created or distributed an unauthorized copy, you're liable for infringement.*
I really don't understand this bias against Oracle.
If any other company was the victim of a GPL violation, for whatever reason and whereever the code was distributed, Slashdot would cry foul. I guess as long as it's done to Oracle, it's OK.
It doesn't matter if you distribute the code as part of a product that makes money or if you use it internally. If you slap an Apache license header on GPL code, you're violating the GPL. Copyright law doesn't require you to make money in order to infringe. Why do you think the RIAA is going after P2P users and getting massive settlements?
This space left intentionally blank.
My blog never made a specific claim about Android devices containing certain code.
That's not what your blog post reads like. If they're not part of the codebase used on an Android device, you should have explicitly stated so, seeing as quite obviously "The Android versions of those files" by default suggests that those files are a part of the Android OS.
Maybe you can admit you were wrong or at the very least unclear in certain places, rather than quite childishly trying to bullshit your way out of this?
It's also wrong, as stated above, that Google "deleted" those files. They are still in the Froyo (Android 2.2) and Gingerbread (2.3) trees. At least they were when I last checked, which was yesterday. They are just not in the tree for future versions.
That's kind of how source repositories work when you delete things.
Statutory damages, probably. "The basic level of damages is between $750 and $30,000 per work," but "statutory damages are only available in the United States for works that were registered with the Copyright Office prior to infringement." If they can't claim statutory damages, they would probably only be able to claim either lost earnings, or whatever profit Google made from the infringing distribution, neither of which are likely to add up to very much.
Please name one Android device that ships with this code.
I'm looking for clarity regarding the impact of any possible infringement. Willful infringement of code central to Android devices could stop shipments. Incidental infringement of peripheral code is another matter. It should be resolved, of course, but would have little impact on the market.
Do Android devices contain infringing code? Do they contain infringing code that could be easily replaced? Or do they contain infringing code that is central to their operation?
Of course we can troll mod him out of existence. He's the original troll.
He doesn't get any special brownie points.
A Pirate and a Puritan look the same on a balance sheet.
Nono. Please don't. I don't think I can cope with any more of your 'creative' view of the IT world :(
Sounds much like you're trolling. Copyrighted files can be distributed if the copyright holder allows it.
Have you got your LWN subscription yet?
What you said was:
Android contains, under the Apache license, code that is essentially just decompiled code of Oracle/Sun software that was never licensed to Apache.
Now, with some creative interpretation, you can likely indeed weasel out of it and say that this doesn't really mean that files were shipped to end users as part of Android. But it certainly wasn't the impression from your original post, and nowhere did you highlight that very important detail. What more, you contrasted your newly discovered files with PolicyNodeImpl.java, from which the "decompiled unlicensed copy" story started - and why it wasn't big deal back in the day was that it didn't ship on devices.
A lot of readers interpreted your words in the same way as TFA, which leaves one to wonder if that was an honest mistake (but then why not just admit that and correct the story?), an attempt to sound more sensationalist than it really is by omitting details that make it mundane, or deliberate FUD. I was one of those readers, and I now have to apologize to fellow Slashdot readers for spreading this misinformation. Are you going to apologize for starting it?
The burden of proof goes the other way. Oracle would need to prove that this distribution did cause damage. It is not Google's (or anyone else's) job to prove lack of damages. They could maybe get server logs to determine # of downloads, but that's only useful for statutory damages.
The files discovered in the Android code repository are unequivocally Oracle's IP, with an inappropriately modified license. This means, that for these at least, Google is almost certainly liable for infringement. However, since none of those files ever went into an Android handset, their presence, in a legal sense, is most likely completely irrelevant with regards to Oracle's main aim, which is to extract court-mandated royalties from Google and/or handset manufacturers for each Android device they produce. It would be like the RIAA trying to collect royalties on music that I wrote and produced on my own, because they found pirated music on one of my computers.
Does that sound about right, or am I way off-base here?
I very much want to see Larry take his Java patents to court and get smacked down on abundant prior art.
I hope you meant Larry Ellison and not Larry Page.
Falcon
Should there be a Law?
Okay, maybe not creative. We'll go with "incorrect" then.
Yes, it is. The correct name is AOSP, or more correctly, the AOSP repository. You could get away with 'Android repository' but that would be confusing. Android is a term given to a set of derived operating systems. It is neither open source nor a codebase (most Android distributions are closed source).
I'd be surprised if these files were individually registered with the US Copyright Office, but I could be wrong. If they were registered as a group, distributing a portion of the files for testing purposes likely doesn't even qualify as copyright infringement.
Statutory damages can also go as high as $150,000 per infringement under the right circumstances, but the number of infringements don't matter. Only the number works infringed.
I'm not really sure what Oracle is going for here, are they really that hard up for cash that they'll spend hundreds of thousands of dollars to squeeze Google for $150k?
Security is mostly a superstition... Avoiding danger is no safer in the long run than outright exposure. - Helen Keller
It's also wrong, as stated above, that Google "deleted" those files. They are still in the Froyo (Android 2.2) and Gingerbread (2.3) trees. At least they were when I last checked, which was yesterday. They are just not in the tree for future versions.
Wow Florian, that's a creative interpretation of "not deleted". I presume that you mean, a user can still check out an older repository version and that version would contain the files in question. Let me make an equally creative counter-proposition. If the files were deleted from the tip of the repository but not from the history, that simply provides a historical record of exactly what was deleted. You can't make the information vanish from the past you know, unless you are also proposing some kind of time travel. You can only make information vanish from the present, that is, tip of tree.
Have you got your LWN subscription yet?
even if that means having to remove access to previous revisions of the source tree.
That's not really an option, given the fact that most Android devices still use pre-2.3 versions of the OS.
I think the wisest option is exactly what they are doing: leave the old stuff alone, remove them from the new stuff, and wait for the injunction that may or may not ever come. Here's a hint - since the source is so "out there" already, it will probably never come.
Security is mostly a superstition... Avoiding danger is no safer in the long run than outright exposure. - Helen Keller
You can be sure the damage award would not be zero even if nobody ever used it.
For an inadvertent inclusion of an incorrect license on GPLed code? I can't be sure of what you suggest at all, in fact the opposite seems considerably more likely. Looks to me like you're pretty far out on a limb on this, I would suggest backing slowly away.
Have you got your LWN subscription yet?
My blog never made a specific claim about Android devices containing certain code.
That's not what your blog post reads like. If they're not part of the codebase used on an Android device, you should have explicitly stated so,
Being in the repository is being part of the codebase.
seeing as quite obviously "The Android versions of those files" by default suggests that those files are a part of the Android OS.
The repository is the OS. It's just not the binary that the end-user receives. It is the OS the developer receives when they modify Android, or develop apps for it, or downloads it for whatever reason they choose to. That's how Open Source works.
It's also wrong, as stated above, that Google "deleted" those files. They are still in the Froyo (Android 2.2) and Gingerbread (2.3) trees. At least they were when I last checked, which was yesterday. They are just not in the tree for future versions.
That's kind of how source repositories work when you delete things.
Which is another way of saying, he's absolutely correct. The files are still there and still violating copyright. I'm not sure exactly how that's supposed to be a rebuttal.
This is why I decided not to be a lawyer. You made up some bullshit blog post that definately gave people the impression that Android was using stolen code. You know.. in the phone...
Then when someone calls you on your bullshit you use a bunch of legalese to try to weasel your way out of any responsibility for what you said.
"I never said it was on a phone"
Well you never said it wasn't and your blog post gave the impression that it was.
This type of shit may fly on Engadget, but slashdot users aren't retarded. Not all of us anyway.. Every time I think I want to post a comment on Engadget I read the incredibly stupid stuff that has already been posted and I just give up.
Happy to clarify. I was talking about misuse of mod points. The purpose of mod points is to rate posts by their content (as opposed to holding an overall popularity vote on the author). Rating a reasonable contribution to a discussion as a "troll" post constitutes misuse because it means an unjustified rating, with the effect that readers are less likely to get access to useful information. It's anti-social behavior because it adversely affects the quality of the information people are likely to see here.
From any angle Android's Java reliance seams like a bad move.
.NET.
Any sensible move would have had them developing to a more open platform like
I'm a big tall mofo.
False, they copyright holder did *not* allow it. That's the whole point.
The whole spin you mean. The fact is, Oracle licensed the code in question for distribution under some license. That by itself pretty much takes the wind out of the sails of any argument that Oracle never intended the source to be distributed. Then it gets down to niggling about the license, intent, copyleft, tip of tree, all that. Interesting but not earth shattering, in spite of how much various trolls wish it were.
There is great danger for Oracle in all this: they may be perceived as gaming the spirit of the GPL. In fact, that is how I perceive them. How much do you suppose our free software friends appreciate having their name being used in vain by Oracle, no friend of free software?
Have you got your LWN subscription yet?
False, they copyright holder did *not* allow it. That's the whole point.
The whole spin you mean.
How is "the truth" spin? Oracle (previously, Sun) had licensed code under the GPL. The only right people had to redistribute that code was under the terms of the GPL. Google violated those terms. There is no wiggle room here, and the fact is that Google broke the license.
The fact is, Oracle licensed the code in question for distribution under some license. That by itself pretty much takes the wind out of the sails of any argument that Oracle never intended the source to be distributed.
Not a single person on the planet has claimed the source was never intended to be distributed.
Then it gets down to niggling about the license, intent, copyleft, tip of tree, all that. Interesting but not earth shattering, in spite of how much various trolls wish it were.
Take Linux, fork it, and redistribute it under the Apache license (like Google did with Oracle's files), or heck, even under the GPLv3, and see how well that goes over.
This isn't "niggling about the license", copyright is always about the license. Always, always, always. Oracle didn't license the code to be distributed in the way Google distributed it. It's not "tolling" or "spinning" or anything else. It's always about the license. Google violated the license.
There is great danger for Oracle in all this: they may be perceived as gaming the spirit of the GPL.
Certainly they will be perceived as doing this. But that's only because no matter what Oracle does, they will be "perceived" as doing something evil. On the other hand, any other time GPL code gets relicensed, Slashdot will be up in arms defending the GPL licensor, and wax hyperbolic against the offender.
In fact, that is how I perceive them. How much do you suppose our free software friends appreciate having their name being used in vain by Oracle, no friend of free software?
Exactly, silly accusations against the victim, solely because they are Oracle.
I agree with your point about distribution. However, that misses my point regarding the practical effects.
If test code was infringed, then Google would be required to stop distributing it, and pay Oracle for any damage done. Which might not be much; even if it is, Google can afford to pay.
If infringing code was shipped in phones, then the sale of those phones can be blocked. If the phones don't contain infringing code, then they can ship. That's the critical issue for Oracle, Google, phone manufacturers, and buyers of phones.
Take Linux, fork it, and redistribute it under the Apache license...
Google didn't take Linux and redistribute it under the Apache license or anything remotely like that. See what I mean about "spin"?
Yes, they did "something remotely like that". They took Oracle's copyrighted files, changed the copyright (which they do not have the right to do) then redistributed them under that license (which they do not have the right to do.
That's exactly like taking something else under the GPL (like Linux) and changing its license, and redistributing it. See what I mean about facts?
...silly accusations against the victim, solely because they are Oracle.
Haha, that's rich. Oracle... victim... like it wasn't Oracle who sued Google over using Java, thus pissing off the entire free software and open source community in one go...
Right. I'm weeping for Larry at this very moment or maybe not.
And again, you are proving my point. Google violated Oracle's license, but because it's Oracle that's being wronged (and Google that's doing the wrong, but Slashdot's hate for Oracle exceeds their love for Google), then fuck them.
*THAT'S* the very definition of "spin".
Most GPL violations are solved with a quick appology and direct remediation of the violation. Typically the violation is the failure to disclose source and such disclosure then happens. Damaged or headers are not uncommon, and in case of individual stupidity (not every guy checking stuff into version control is a jet-fuel genius) or honest mistake (not every guy checking stuff into version control is fully versed in copyright law), then reasonable people just go "eh, dude, that needs to be fixed" and then someone else replies "ok, cool, I'll fix that".
So the change of license was wrong, and needs to be fixed. Neither license is particularly incompatible with the other. Reasonable people, finding an issue _this_ minor are expected to act reasonably.
Of course Orace is involved so that's expecting rather a lot.
For the most part, if the actual complaint was this mis-licensing, between typical and reasonable GPL entities, then there would have been a check-in with the corrected headers.
So no matter what the other facts may be, the damage threshold is nascent to non-existent, and the "reasonable behavior" test has not been met by Oracle.
This whole thing is Oracle FUD to damage Android for no apparent reason than the fact that Oracle doest that kind of thing.
Innocent people shouldn't be forced to pay for inferior software development.
--"Code Complete" Microsoft Press
As some have noted, having the files in the source they distributed is a possible copyright violation, even if the files aren't actually put on Android devices. And as others have noted, the liability would just fall on Google, not on the vendors of Android devices, and the damages would likely be small, so these copyright claims won't be a noticeable money maker for Oracle even if true.
I believe that Oracle doesn't really care much about the alleged copyright violations. They are just in there as a trial tactic. What Oracle is banking on are the patents. Throwing in the copyright claims does two things that are good for Oracle and bad for Google.
First, there is much that is subjective when it comes to patent infringement. Both sides will present as part of their cases an argument for what damages should be. Oracle will have an expert showing how Google should have to pay an astronomical amount. Google will have an expert arguing that if Google is found to have infringed, the damages should be very small. Determining which damage number to believe is rather subjective (and the jury will be able to go for something in between, too).
The jury will take into account, at least subconsciously, what they think of Google and Oracle. They can't avoid doing this--they are human beings, and that's how humans work. If Oracle can show that Google violated copyrights and patents, that will tend to make the jury see Google in a more negative light than if they just violated patents. Google will want to be seen, if found to infringe the patents, as a company that takes IP seriously and tried hard to not step on Oracle's rights, and the patent infringement was accidental. Oracle wants Google to be seen as a company with wanton disregard for other's IP.
Second, each side has limited time for its case. Some courts even go so far as to use chess clocks to track each side. Oracle can present a prima facie case for copyright infringement pretty quickly. Name some files. Show that they are the copyright owners. Show that they have registered the copyrights. Put up on the projector some diffs showing their files and Google's alleged copies. Point out the massive similarities. Sit down. Now Google gets to stand up, explain the concept of Java boilerplate code to the jury. Take them through the files showing that the commonalities are in boilerplate. For those things not in boilerplate, explain what they are doing and how there are just a few well-known good ways to do them and so it is quite likely different programmers would come up with the same structure. Explain naming conventions and show that they might reasonably even pick the same names.
Note that Google's defense of the copyright issues is likely to take longer to present than Oracle's accusation. If Oracle can spend 10 minutes on it, and Google needs 90 to respond, that's a damn good investment by Oracle. It's 90 minutes less time for Google to spend attacking the validity of Oracle's patents, or trying to show Google doesn't infringe, or to spend on a good closing argument to cement their case.
The problem with this argument is that if the code was GPLed the source has to be freely available. In which case Google is not in violation of distributing the source code.
It was wrong the license was changed but the code being distributed was not wrong. One of the complaints against Google illegally distributing the source code.
Falcon
Should there be a Law?
The GPL is not an EULA, it's a distribution license.
You're free to use GPL'd software any way you like without agreeing to the GPL, you just can't distribute it.
Advanced users are users too!
No they didnt.
They didnt take a full OS or product and relicensed it.
They took 7 files. Those files arent even used.
Yes its probably a mistake or a very bad judgement. In no way this decision was to give Google a competitive advantage, a better product or etc. Nothing like taking a full product from someone else and reusing it.
Comply with the license (mostly done). Optionally pay a reasonable fee and move on. Not a full scale SCO lawsuit for 7 files again please. Thatsick.
(for the lawsuit, please go on, because there are other argumentrs. But that one seems moot).
Sneak teach kids Algebra using a game