Did Microsoft Borrow GPL Code For a Windows 7 Utility? 493
Goatbert writes "Rafael Rivera over at WithinWindows.com has found evidence that Microsoft has potentially stolen code from an open source/GPL'd project (ImageMaster) for a utility made available on the Microsoft Store to allow download customers to copy the Windows 7 setup files to a DVD or USB Flash Drive. If Rivera's evidence holds up, this could be some serious egg in the face for Microsoft at a time when they're getting mostly good press from the tech media."
"Obviously lifted" not so obvious (Score:4, Insightful)
The code in question seems to be called into scrutiny because the two areas of code bear the same name (ReadBytes) and operate similarly.
The longer you work in the development of software, the less magical it all becomes. The first time you plugged some code into a terminal and it worked, it seemed like an amazing amount of wizardry and behind-the-scenes stuff that you could never fully fathom. Compilers, binary code, arcane source languages, electronic signals. It's amazing to a neophyte just how much stuff is going on.
But the longer you plug away at it, the more you realize that it's just code. Nothing special is really going on. You're mostly moving data from one area of memory to another. It's almost a form of Nirvana once you reach this point.
So when someone comes along and says "OMG YOUR READBYTES METHOD IS JUST LIKE THIS ONE IN SOME GPL CODE!!!!11", it kind of pegs that person as someone who doesn't really have much experience with real programming. Sure, they may use a lot of tools, and know how to recompile their kernel, but they really don't have a firm grasp of what and why they are doing what they are doing.
Knee jerk (Score:5, Insightful)
So the evidence is a ReadBytes snippet?
I'll wait till there's evidence before even commenting about the ramifications of something like this. This is just wild speculation at this point.
Re:"Obviously lifted" not so obvious (Score:5, Insightful)
The code in question seems to be called into scrutiny because the two areas of code bear the same name (ReadBytes) and operate similarly.
(bold mine)
Actually, if the function is just something called "ReadBytes(char *buf)" or similar, then that's a bit strange. If it was truly Microsoft-written, it would be:
WINAPI DWORD ReadBytesW(LPCSTRWRAAXA szCharBufW_x, struct READBYTESINFO *srbinfArgs).
Re:not sureprised (Score:2, Insightful)
They never lie, cheat, or steal. Never, ever, ever.
Microsoft is evil. Always has been. Always will be.
It's not "stealing"...right? (Score:5, Insightful)
Come on people, you can't have it both ways. If you can't "steal" music, you can't "steal" code. MS "stealing" this code didn't deprive the Open Source community from using the code (i.e. stealing my car), or at least that's the argument /.er use whenever the word is used in conjunction with music and movies. Eat your own dog food.
Re:not sureprised (Score:4, Insightful)
Maybe you're very young, but I seem to recall that Microsoft was at one time held as a sort of liberator from IBM's hegemony. I guess it's all a matter of perspective...
Re:not sureprised (Score:4, Insightful)
Re:no big deal (Score:4, Insightful)
Uh, they kind of have to *prove* that Microsoft actually copied their code first. You're missing a crucial step to the process in your scenario.
Re:not sureprised (Score:4, Insightful)
By whom?
My memory of the early days of Microsoft was surprise that their nasty behaviour was tolerated.
That's his evidence? (Score:5, Insightful)
Re:It's not "stealing"...right? (Score:5, Insightful)
I don't think everyone here believes you can't steal music, first off. I believe you can steal music, books, printed art, all kinds of artwork. I come from a fairly serious artist background, and I know folks personally who have been scraping by for years on the meagre earnings of an average artist. It's not a fun life.
I believe large record syndicates are creeptastic and digital media is equation-changing, but that doesn't mean there's no evil in stealing non-physical works. Artists, unless they happen to be the pretty-close-to-literally one in a million shot, make almost nothing and they make a huge difference in how livable a society is. That's not changed by the fact that they can deliver media via digital channels; only people's expectations of the cost involved is changed. The number of consumers shrinks, but so does their expected price point. It's one of the reasons why there are still a lot of physical-media artists (the others including nobody's come up with good, cheap 3 dimensional sound, graphics, or texture delivery systems, physical media still work in some contexts, and art is large a physical act).
And if you can steal art, you can certainly steal code. Of course, in this case it's probably going to have no repercussions because you'd have to educate people on the struggle of open source in terms that wouldn't make a lawyer cry before you could really even get into it, but those of us who've self-selected have at least a notion of the violation and its meaning. And, happily, the irony - if MS really is using open source in its first "better" product in a long time, that's a fun little fact to know.
Re:not sureprised (Score:5, Insightful)
Probably those who get paid to work on GPL software...
Your point is? Do you have an accusation to make?
Re:It's not "stealing"...right? (Score:3, Insightful)
Please stop anthropomorphizing corporations. They get really pissed off when you do that.
I agree there was no corporate agenda to steal a dozen lines or so of code from the open source community. However, I could see the following:
1) Product A is behind schedule
2) Code Monkey B is under huge pressure to complete some feature for Product A. Luckily he finds some code on a blog which finishes off the routine he's working on. He doesn't perform due diligence to determine if this is GPL'd code or not. The blog doesn't provide references.
3) Manager C forgoes the code review process to ship Product A on time.
Re:Knee jerk (Score:5, Insightful)
Moderated 'Flamebait.' 0 points left.
Seriously, whoever decided that we just get one dropdown and no 'confirm' button needs to be taken out back and shot. And I'd just used my other points on some actual trolls upthread, too. :(
Did a GPL project steal code from Microsoft? (Score:5, Insightful)
With the amount of "evidence" in the article, the same accusation could be made against the GPL project. Perhaps the author of that project illegally gained access to Microsoft code and used it as a starting point for ImageMaster.
Re:not sureprised (Score:3, Insightful)
Ever think that if this code was stolen it was done by a lower level employee and not an executive. It is way more likely that a small group of employees couldn't hit a deadline or something and so they borrowed code form other places to get it done. I know executives and have heard many executives speak... they don't like legal exposure, they don't want to do things wrong because it is their neck on the line. It is way more likely that it was the average slashdot user who did this than it was a "Microsoft Corporation" decision.
I also don't know the validity of these claims but I read some posts saying that this stuff was outsourced. aka Microsoft didn't even claim to code it, they just bought botched code. Good going with your theory... it appears even more that the "evil" people in this situation are lowlife developers and not the "Corporate Suits" that your agenda is pushing.
Microsoft as a corporation is the victim here TBH.
Re:not sureprised (Score:2, Insightful)
Considering the existence of laws such as the "The Artists' Rights and Theft Prevention Act of 2005", the "The Digital Theft Deterrence and Copyright Damages Improvement Act of 1999", and various others, it seems clear that the US Congress disagrees with you.
Re:It's .NET code (Score:5, Insightful)
It's .NET code. It's already "Open Source" by virtue of tools like Reflector [red-gate.com] existing.
I do not think that that is what "Open Source" is generally taken to mean.
Re:It's not "stealing"...right? (Score:5, Insightful)
This is the correct argument, but you have it backward. If it's OK for MS to "steal" (by the definition that MS accepts for the word) then MS should allow people to "steal" Windows, and stop complaining about, trying to stop, prosecuting, software piracy. They should amend their EULA to allow users to decompile, reverse engineer, and modify their binaries.
Besides, it's not as though GPL code is anti-copyright.
Re:It's not "stealing"...right? (Score:5, Insightful)
I'm fairly sure that by accepting money for someone else's property, you are stealing money from that person, whether you deprived that person of the property or not.
The actual code isn't anyone's property, only the copyright on the code is.
Plagiarizing != stealing != copying. (Score:5, Insightful)
I don't think everyone here believes you can't steal music, first off.
Speak for yourself. I do believe you can't steal music.
You could steal the original copies. You could steal a famous painting. But "stealing" music? For instance, what IS music? It's nothing but a mathematical concept involving harmonics and sound.
What are words? You can't "steal" what I said. This isn't like the little mermaid where you could steal someone's voice and leave him/her mute.
Non-physical works CANNOT be stolen. Unless you're talking about a PHYSICAL COPY, you cannot steal it by definition. Copying a work? That's completely different. But if it's a non-destructive process, you're not stealing it. You're just COPYING it.
If you want to use an appropriate term for what Microsoft supposedly did with this GPL code, it's called plagiarism [wikipedia.org]. Sure, it's called "stealing" nowadays, but using this word is oversimplifying.
Re:"Obviously lifted" not so obvious (Score:3, Insightful)
Especially in this case: the example code is part of a parser. Guess what, when you write a parser for any kind of file format without using a formal grammar tool, the most natural way to do it is read the individual components in the order the file format presents them. So the structure of the code is very much determined by the file format, and you have to expect a lot of similarities between different implementations, even if they were done completely independent of each other. Constants like the value 400 seem like arbitrary choices at first glance, until you realize that those offsets are part of the file format spec...
The code snippet that is provided in TFA stops in the middle of a for loop. I wonder why? Was the rest just not similar enough for a sensationalist article?
"borrow"? (Score:1, Insightful)
Did Microsoft Borrow...
Microsoft borrows, everyone else steals?
I wonder if I can try that with the RIAA/BSA?
From TFA (Score:2, Insightful)
You may not ... reverse engineer, decompile or disassemble the software, except and only to the extent that applicable law expressly permits, despite this limitation;
Which seems to be exactly what the Author has done. Sucks to be him, or anyone else trying to find out if M$ has stolen your code and violated your license, since the only way to find out, is to violate M$'s license agreement. Have fun in court.
Re:not sureprised (Score:3, Insightful)
Yes, after reading the original letter I have one: how does that letter prove that Microsoft is evil? The only thing Gates is saying is that he and his company has invested around $40000 in building and supporting the software, and the return was so small, it was just enough to break even. The pay, he states, was $2 an hour. If you don't mind working for $2 an hour, that's ok of course, but most people probably wouldn't go to the university to learn computer science if their pay was less than that of a mcdonalds employee.
Re:not sureprised (Score:3, Insightful)
Stealing is stealing. Period.
Yes, and copyright infringement ain't it, no matter how much your employer wishes otherwise.
Re:not sureprised (Score:4, Insightful)
No, there is one major difference. If I steal your car, you can't use it any more. If I copy your software, you can still use it. I don't take something away. In most cases, the copyright holder doesn't even notice.
It's the copyright holders that are trying to mislead people and contort the English language by saying stealing is the same as copying.
Re:"Obviously lifted" not so obvious (Score:3, Insightful)
Re:not sureprised (Score:3, Insightful)
the US Congress is free to be as wrong as it wants to be.
Re:not sureprised (Score:4, Insightful)
The differences you fail to make clear is that copyright infringement isn't stealing something physical as in all your cases. Copyright infringement is making a copy without the permission of the copyright holder. It isn't like you denied the copyright holder any of their possessions as NO ONE can guarantee that the infringer would have bought the work to begin with. This is well a established precept.
Bad press? Nobody gives a crap. (Score:2, Insightful)
It's not "stolen" code, by the way (Score:2, Insightful)
Copyright infringement isn't theft, as the pirates always tells us on Slashdot, so nothing was "stolen."
Re:not sureprised (Score:3, Insightful)
Luckily IBM never lowered themselves to such despicable practices.
This isn't about IBM. We're over them. Microsoft is still an overwhelming force in the industry.
They abused their monopoly by forcing OEMs to give them unfair advantages over competition. This isn't just an opinion... the only real competitor (Apple) has complete control over their hardware systems, and that's why they can compete.
Re:"Obviously lifted" not so obvious (Score:3, Insightful)
His new example is pretty weak too. It's another function to read some sort of header, and, surprise, the code operates in a similar way. Well, it pretty much has to... it's reading the same kind of header.
So far it's all pretty poor evidence.
Re:not sureprised (Score:4, Insightful)
Re:not sureprised (Score:5, Insightful)
Copyright infringement IS stealing
No, it isn't. Here is a handy guide illustrating the difference. [cslacker.com]
it just has a different legal definition.
And you know *why* that is? Because *IT'S NOT THE SAME*. If copyright infringement *WAS* the same as theft, we wouldn't need a special law dealing with it - it could be covered by theft laws. The fact that it isn't should tell you something.
It literally fits the non-legal definition.
No, it doesn't. It fits the propaganda term. Just because some media trade groups misapply a term as an act of propaganda does not make it so.
Re:not sureprised (Score:4, Insightful)
Re:not sureprised (Score:4, Insightful)
You are believing "facts" quoted by Gates that you can't check. (I'll believe that he hired people for $2 / hr. I won't believe that that was *his* recompense...though he *might* have been living on his family.)
Still, his "open letter" wasn't as bad as his business practices at the same time...though that got a lot less publicity.
Companies that trusted MS tended to go out of business even then. MS was still small, though, so many of them just had trade secrets stolen, and their going out of business was delayed until MS became a more significant competitor. Also: Gates didn't invent dumpster diving, but he practiced it.
Still, there was a period when I though MS would be a less abusive company to deal with than IBM. And for around five-seven years it was true. This was probably because IBM wasn't allowed to compete by a consent decree, so IBM basically ignored the personal computer.
Re:not sureprised (Score:3, Insightful)
So it's Okay for MS to use open source code but any open source project that uses MS code can be hounded and threatened? Let's see, is it 238 patents [cnet.com] MS complains open source uses of MS's?
Falcon
Re:not sureprised (Score:3, Insightful)
We aren't "over IBM". They are still one of the dominant forces in the industry. But IBM *did* actually reform. It took them decades, but they did. So far MS has shown no indication of even wanting to (outside of PR moves).
GPL Quiz (Score:3, Insightful)
It's that time again. Before anyone comments on GPL lifting, please take the GPL quiz:
The GPL Quiz [gnu.org]
Anyone who gets a perfect score may comment in this thread, all others please keep uninformed conclusions out.
Re:not sureprised (Score:5, Insightful)
I think most people think Outlook is pretty bad, until they actually have to *use* Notes... believe me, if you believe Outlook sets a low bar, Notes' bar is underground.
I'm certainly not going to suggest Outlook is perfect, or even good. But compared to the alternative, it's incredible.
Absolutely no indication of 'theft' here. (Score:3, Insightful)
Look, when you take to functions that do essentially the same thing, and you compile them, to optimized code, there is a good chance, if the compiler is doing its job that the compiled byte code looks a lot a like. This code HAS to act the same, its reading the same data format. Its no surprised that when you decompile different versions that they look the a like, I would be concerned if they didn't.
Go ahead and decompile it, so you aren't seeing the original source, you're seeing a decompilers version of the optimized code.
I could probably write that function 100 different ways in one day and get the exact same thing out after compiling it to optimized byte code and then decompiling it. Its a rather specific process at that point for dealing with a standard. You almost HAVE to do things in that function that way in order for your code to actually work. There are a few changes that could be made, some branches could be done in different orders, but once you throw the optimizer at it, those branches are likely going to be reordered the same way to reuse registers and such rather than wasting extra ones.
The author of the article is a newbie at best. Its fairly clear that he doesnt' actually understand what has happened in this process and has provided no evidence other than 'the end result looks the same!'. It could have went both ways, neither project was the first to write a UDF reader. My guess would be the first C# UDF code was actually a port of some C code to do it anyway.
Finally if you read the comments section of the article, the ImageMaster credits.txt contains a link to MS source, while I haven't bothered to download the linked SDK, its a safe bet that the reason the code looks the same is because it probably is, ImageMaster PROBABLY pulled that function from an MS example. It happens ALL THE TIME.
There is no MS conspiracy, just some douche bag blogger wanting to get posted on the front page of slashdot to increase his ad revenue.
The proper thing to do is to remove this story from the front page to deny that traffic to him.
Re:Gpl violation (Score:2, Insightful)
it's interesting how the FOSS movement delightfully and intentionally has made every piece of GPL3 code a trojan horse that can destroy a company's business model if a single programmer without the knowledge of the business copies a snippet of code to make his job easier.
It's interesting how companies that produce proprietary code have made all their code a trojan horse that can destroy anyone who copies their code and uses it.
Re:not sureprised (Score:4, Insightful)
Because people are making money off it.
Because the people violating that copyright are invariably the same people campaigning for the death penalty for other copyright violations.
There are other, less obvious rteasons. But in summary, there are a lot of differences between the two situations, assuming you're comparing this and the mp3 issue.
Re:"Obviously lifted" not so obvious (Score:4, Insightful)
a) I am not the one making wild claims about out somebody - the author of TFA does. I mean I get it - we don't like MS here on /., blah, blah. Still, if he makes claims, the burden of proof is on him, not on people not on everybody else to disprove him.
b) I don't run windows, so getting everything set up with a .NET architecture would in fact be quite a pain in the ass.
Re:not sureprised (Score:3, Insightful)
Everyone Disassembles (Score:3, Insightful)
It looks like Microsoft's defence will be that the EULA says ""You may not reverse engineer, decompile or disassemble the software". They'll probably charge the guy with a DMCA violation...
Legally speaking, what does it mean to disassemble a program? Is it to convert its machine representation into a more readable format? Every processor in every computer does this, it just disassembles to a language that is not composed of English words and numbers. \
If someone owns Visual Studio and another program on their system crashes, what happens? A little dialog box asks the user if they want to debug. If they say yes, Visual Studio fires up with a disassembly view of the program that crashed!
Isn't the entire Wine project basically reverse engineering the Windows APIs?
Re:not sureprised (Score:5, Insightful)
You make it sound like the evilness (read: utter lack of ethics) were a funny meme, not a plain, cold fact.
You are displaying irrational MS hating behaviors. (Score:3, Insightful)
You're calling me an idiot and I'm the one displaying irrational hating behaviors?
Calling names is irrational.
Falcon
Re:not sureprised (Score:2, Insightful)
That's crap. You do too take something away - you take away the renumeration you should have paid.
That's crap. Not giving something is not the same as taking something away.
And "renumeration" is not a word.
Re:not sureprised (Score:3, Insightful)
No, there was a cheap and nasty OS based on a hacked version of CP/M that came with the original IBM PCs.
When the PC and PC clone market took off, the company making it went along for the ride. They got lucky.
Re:"Obviously lifted" not so obvious (Score:5, Insightful)
Don't even get me started on the dual-version ANSI and Unicode functions,
Transitioning from a system where strings were assumed to be in the local legacy encoding to a unicode based system (a transition all operating systems relavent today have had to go through) is a difficult problem with essentially no good soloution.
The way unix-like systems went for is to use UTF-8 and treat it as if it was just another legacy encoding. The problem with this approach is that it means that systems configured for unicode and systems configured for legacy use different encodings which tends to break stuff.
The way windows went for is to introduce duplicate APIs for unicode, this has the advantage that nothing that worked before breaks but requires all apps that want unicode support to be updated.
Can you think of any better soloutions?
Re:not sureprised (Score:4, Insightful)
"But IBM *did* actually reform."
Really, how so?
IBM really were a malign force in this industry when they were dominant, using grossly unethical tactics against competitors and stifling innovation to an extraordinary extent. Between 1960 and 1980 IBM were the evil empire - probably worse than Microsoft have ever been. These days, ethically, IBM seems to be an 'average company'. It does some good stuff, it acts on the whole as a good citizen, it contributes to standards processes and mostly abides by the standards that are agreed. Of course, this may simply be because it no longer has the power to bully and intimidate like it once did - but this is nevertheless a huge change.
However, 'better' does not necessarily mean 'good', particularly if you start from where IBM started from.
And being 'not quite as bad as IBM at it's worst' doesn't make Microsoft good, either - they have always, from the very beginning, been an exceptionally unethical company.
Re:not sureprised (Score:3, Insightful)
Saved your life!
See, I was going to kill you but I didn't, so I saved your life.
Wait, what? (Score:3, Insightful)
the Corporation of Microsoft behaves in an aberrant, selfish fashion. If there is GPL code that is being misused, it is not because "Microsoft is Evil', but more likely because they hired a contractor who lifted some open source code and though it would not get noticed. MS may be sociopathic and short sighted, but they are not going to as a official policy do something like this.
I have said it before here, Microsoft does some really stupid shit. Don't just assume that everything that looks bad is their fault though. That is just being lazy.
Re:not sureprised (Score:3, Insightful)
No, some companies try to make good products.