Microsoft lifts GPL code, uses in Microsoft Store tool
Update 11/7: The example I provided yesterday (ReadBytes) was replaced with a new one. Note that it is only an example. I’m not here to prove my case in a huge exhaustive post for you. That’s left as an exercise for the reader.
Update 11/7 (2): The code in question is not a part of the IMAPIv2 Code Samples. If you visit Codeplex and actually download the source code, you’ll see this code is separate.
Update 11/7 (3): ImageMaster UDF parsing is a valid derivative work licensed under GPL. The original parsing code is from LGPL 7zip. Here’s a comparison. And another.
Update 11/9: Microsoft has pulled the tool pending further investigation.
Update 11/13: Microsoft has acknowledged the code use, see Port 25 for more details.
While poking through the UDF-related internals of the Windows 7 USB/DVD Download Tool, I had a weird feeling there was just wayyyyyyyyy too much code in there for such a simple tool. A simple search of some method names and properties, gleaned from Reflector’s output, revealed the source code was obviously lifted from the CodePlex-hosted (yikes) GPLv2-licensed ImageMaster project. (The author of the code was not contacted by Microsoft.)
I see two problems here. (I’m not a FSF professional, so there may be more.)
First, Microsoft did not offer or provide source code for their modifications to ImageMaster nor their tool. According to GPLv2:
3. You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following:
a) Accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or,
b) Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or,
c) Accompany it with the information you received as to the offer to distribute corresponding source code. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form with such an offer, in accord with Subsection b above.)
Second, Microsoft glued in some of their own licensing terms, further restricting your rights to the software (TermsOfUse.rtf). According to their terms:
1. Scope of License. The software is licensed, not sold. This agreement only gives you some rights to use the software. Microsoft reserves all other rights. Unless applicable law gives you more rights despite this limitation, you may use the software only as expressly permitted in this agreement. In doing so, you must comply with any technical limitations in the software that only allow you to use it in certain ways. You may not
· work around any technical limitations in the software;· reverse engineer, decompile or disassemble the software, except and only to the extent that applicable law expressly permits, despite this limitation;
· make more copies of the software than specified in this agreement or allowed by applicable law, despite this limitation;
· publish the software for others to copy;
· rent, lease or lend the software;
· transfer the software or this agreement to any third party; or
· use the software for commercial software hosting services.
I understand Microsoft is a big company and that this could have been externally contracted work, but someone dropped the ball during code review/licensing. Cue the fail horns, Drew.
Example of reflected Microsoft tool code and ImageMaster source code on CodePlex

Mate, I’d be prepared to accept that this is the case, but seriously: a ReadBytes method? There are only so many ways you can skin that particular cat.
Are there other, more damning pieces of evidence there?
I would wager that this was outsourced to another company. However, it could end up making Microsoft look foolish, similar to when someone found audio content in Windows XP that had been edited with a pirated version of Sound Forge.
http://techrepublic.com.com/5208-11183-0.html?forumID=89&threadID=173539&messageID=1765547
@Gleason: If that was all, it would implyMicrosoft copied a simple ReadBytes method from ImageMaster instead of making one themselves. Yeah right.
I think the screenshot is just a sample of what he found. Reflector is easy enough to use if you want to take a look yourself.
Yeah, except it’s arguably a license violation on its own there. I’m asking. If there’s better evidence, show it. Cos that’s a method that could have come from an MSDN sample in the first place… just saying.
So now you’re suggesting the use of GPL on ImageMaster might be invalid, and THEY might have stolen code from Microsoft? Umm… *snirk* ok. I don’t find that very likely, myself.
Maybe there’s other evidence here, but I agree with @Gleason…a ReadBytes method? I wouldn’t be surprised if ImageMaster used an MSDN code sample copy/paste for their method. Again, sounds like there’s more evidence, but if so, I would have used something other than a ReadBytes method to point to.
Dan: Asking about more compelling evidence than the ReadBytes method, which I’m saying looks generic enough that it’s practically a canonical implementation of it.
And yes, perhaps it’s an MDSN example. To wit: If someone’s MSDN-copy-paste ends up protected under GPL, what’s the legality there?
But I’m also noting that the rights explicitly disallowed by Microsoft’s license agreement appear to have been ignored by disassembling the program as well.
If they did indeed violate terms of the GPL, then it’s arguable they can prevent that right, but if not, then not. And at the moment, if ReadBytes is the most damning evidence available, storm meets teacup.
Let me be clear: I don’t know it’s MSDN. It’s just taht there’s not a lot of complexity to the average ReadBytes method.
@Gleason: Note the exact language of Microsoft’s posted license snippet: “You may not … reverse engineer, decompile or disassemble the software, except and only to the extent that applicable law expressly permits, despite this limitation”. Applicable law, in the US at least, protects reverse engineering pretty broadly. I’m almost sure decompilation counts. Microsoft includes language like that in their licenses (a) to scare people (b) in case they can catch someone operating in a place with different laws (c) in case the laws change.
Many parts of EULAs are like this, even if you take for granted that their terms are binding at all, and that the standard, “This software is licensed, not sold,” line actually carries weight.
Looks like Rafael posted a better example.
Here’s the image link if the left end gets cut off (it does for me):
http://www.withinwindows.com/wp-content/uploads/2009/11/example.png
I switched the example image and turned off Slimbox, leaving the browser to resize.
Email Microsoft and ask for the source code.
Premise: I work for MS as dev.
I don’t agree with this statement:
<>
Are you saying that when we contract something or when we do code review the licensor/reviewer must be aware of all code out there published under GPL? What about code “stolen” through reflector, then?
I am just saying that things like this can happen, I don’t see how besides doing due diligence you can prevent one single guy to do things like this. I can guarantee though that the appropriate corrective steps will be taken for sure… :)
(this quote was stripped from the comment above: “but someone dropped the ball during code review/licensing”)
From the ImageMaster credits.txt:
IBurn
by Microsoft
IMAPIv2 Code Samples(Windows SDK).
http://www.microsoft.com/downloads/details.aspx?FamilyID=4377F86D-C913-4B5C-B87E-EF72E5B4E065&displaylang=en
and
Miscellaneous
MSDN Forums
http://social.msdn.microsoft.com/Forums/en-US/categories
This guy is using code from MS. I would HIGHLY doubt that MS lifted code from him.
@Joe: The IMAPIv2 code samples are separate (see Codeplex).
That piece of UDF logic has been around forever.
http://www.sfr-fresh.com/unix/privat/7z904.tar.gz:a/CPP/7zip/Archive/Udf/UdfIn.cpp
BTW, ImageMaster did get the UDF parsing code from the 7-zip .CPP mentioned above.
http://social.msdn.microsoft.com/Forums/en-US/windowsopticalplatform/thread/421f3137-c9aa-45fb-8c5a-ec5dd6860036
It would be nice if you gave some comment of the extent. I mean a ReadBytes isn’t a lot, so this might be coincidence, or a coder who thought “no one will ever notice.” However if this is on the scale of say about a thousand lines of code, it might be a bit more meat on this one.
It’s hard to gauge extent when all I have is reflected output. I can’t do a diff as the reflected output is not syntactically identical to the source code and I sure as hell can’t do this via my eyeballs.
Suggestions are welcome.
Since you currently have not gauged the extent past a few code snippets, may I recommend a less inflammatory headline for the moment?
Element109 wrote on: http://social.msdn.microsoft.com/Forums/en-US/windowsopticalplatform/thread/421f3137-c9aa-45fb-8c5a-ec5dd6860036
The iso and udf parsing portions were ported from the 7-zip project. The credits.txt file contains all the sources used in creating my project.
7z
by Igor Pavlov
7-Zip is a file archiver with a high compression ratio.
http://www.7-zip.org
There are links to his source on his homepage. 7-zip is hosted on the SourceForge website.
If you checkout my initial upload there is a file in the reader directory that is a very early stage of the initial udf port. I had excluded it from the VS environment and forgot about it. It is the file I deleted in the latest changeset.
Okay…
I suggest someone just approach microsoft and ask for the source code, remember to download the binary first. Be polite.
This is not the first time those micro$haft scumbags have used GPL code without following the rules.
I’m very pleased to say I haven’t used their closed-source software in many years.
And thanks to open-source, the GPL, and Creative Commons Licenses I will never have a need to use M$ proprietary crap ever again.
Piss-Off Ballmer & Bill! }:>
You guys are not realizing, Rafael isn’t just pointing out that the function is lifted. If you look closely, they use the same exact class names for objects used in those methods. I’m willing to bet the code to those objects is identical too. This is clearly a cut and paste and Microsoft needs to release their tool under the GPL, imo.
As other people have suggested, perhaps both Microsoft and the other guy got the code from some independent 3rd source. Why do you assume that ImageMaster guy wrote all of his code?
The ImageMaster developer has carefully separated and identified code he used from external locations. The code in question does not fall into this category. Regardless, it’s all licensed GPL. Who it came from is moot.
No Rafael, where it came from is actually very important.
If the original version was :
a) from Microsoft itself
b) from a public domain source
c) from a BSD source
…
Then Microsoft has every right to use that code without giving the source code.
The ImageMaster copy is under GPL, the original copy might not be.
Are you suggesting that Microsoft made an identical port of the “original” code that just, out of coincidence, looks identical to the ImageMaster dev’s copy? Give me a break.
I’ve created a RCS diff between the versions, only the lines up to the end of the Microsoft version.
They are quite similar. However, as mentioned, it could still be some kind of sample code, or not written by ImageMaster. It would however not surprise me if Microsoft got an outside contractor to do this work.
http://dl.dropbox.com/u/1134084/MS-Diff.txt
Tom O. – looks like this diff is presenting exactly the same code, just one “if” is placed differently due to optimalization and constants are changed into values in disassembled code. Even names discovered by Reflector are the same – others probably couldn’t be discovered and were replaced to item* and num*.
My error, it’s not an RCS diff it’s a side-by-side diff (created using diff -y). Here is a better diff, anyway.
http://dl.dropbox.com/u/1134084/Better-MS-Diff.txt
What tool where you using to disassemble the Microsoft code?
If you’re not here to prove your case, as you say in an update on 11/7/2009, why are you making accusations? This is not to say that I disagree with you, but if you’re going to make an argument don’t dismiss questions about the validity of that argument with “why don’t you go research it yourself”.
Microsoft appear to have modified their code from the other stuff, so I think that they should release it under GPL at least. Assuming it was originally GPL, though.
@Charles: My intention was to address comments from the community about “lack of evidence” in the post. I provided an example to encourage readers to download the tool and have a look. It’s difficult to do a comparison of reflected source code and real source code.
OK let me make this clear, since a lot of people aren’t getting it:
1) The code in ImageMaster is licensed under the GPL.
2) The code in Microsoft’s tool is not.
3) If any code licensed under the GPL used in another project, all code needed to compile the project must be licensed under the GPL (AFAIK, IANAL, etc).
So this means one of two things:
1) Microsoft is violating the GPL, as described, whether themselves or through contractors who violated the GPL.
or
2) ImageMaster incorrectly used non-GPL code, either from Microsoft or a third party, in their project, and attempted to relicense it under the GPL which they are legally unable to do since they don’t own the rights to it. Using that code in a GPL’d app is likely a violation of whatever license the code was really under (although whatever license or total lack-of-license may permit it). Microsoft may be able to use the original code as they are using it if it was originally not licensed under the GPL by whoever first made it, and they got the code from them.
Assuming the #1 did not occur as some people seem to be doing… for #2, unless it was perfectly alright that the code be GPL’d by ImageMaster devs, and that the original code itself was not GPL, and that Microsoft were within their rights to use it… if just one of those three aren’t true, there’s still a problem.
Just stating the obvious – I think that there is no way MS would willfully use GPL code – it’s inclusion has to be independent plagarism by a contractor or employee.
even if it was, microsoft is (assuming it IS GPL) legally on the hook for it. makes no difference whether it was an employee or contractor.
Excuse me but have You all forgotten that not a long time ago Microsoft was forced to open source Hyper-V driver because of GPL violation??
In spite of Ballmer’s suggestion that FOSS is like a cancer, it is not. Just because something is published somewhere under the GPL doesn’t mean that something using the same code is tainted. As pointed out, the code referenced was likely obtained from some published sample, probably by MSDN itself. Anything that is to be protected by a copyright, as the GPL relies on at its core, has to be a “unique expression, fixed in a media”. That generally covers binary copying, but using source is quite another thing.
The idea behind the source is not protected by copyright. So if there is a small section of code that has been at least paraphrased and made into another form, such as porting from C to C# or java, it is easy to defend on the basis that the copier merely took the pains to first understand the source and then used that understanding to create a clone. That is not any violation of the GPL or copyright in general.
The original source appears to be 7zip, as mentioned earlier by some readers. Check out http://www.withinwindows.com/files/gpl/comparison_1.txt. Help clarify things?
Stop the fucking fuck arguing. You just need an insight on compilers to know that code is ripped. If you can find it in the MSDN, then post it (but in that case I’d be sure M$ ripped it also).
Asking the poster for proof of his point when you’re unable to give one defending your own is lame.
There’s a proverb: “Think the worse and you’ll be right”
So MS has to prove they are innocent but their accuser doesn’t have to prove they are guilty? Sorry, Branno, it just doesn’t work that way.
OMG!!11!!1!11 Mirosoft killed jews!!11!11!!11ONE111!!1!ELEVEN!!1!1!!!!11!!!!
Dan
We have no proof of #2, and I did some google searches for this “original source”. I think it’s safe there is a good chance that Microsoft has some kind of GPL violation here. GPL violation is violating the terms of the license: copyright infringement. It was probably an honest mistake, this kinds of things happen. Microsoft will probably offer to settle this for a couple Gs in compensation with the author.
The object identifiers(!) are the same. I call it a carbon copy. It’s been slightly altered, perhaps to optimise it, or perhaps because the author felt it had to be original in some way.
seriously. this is one function. Like… common.
so next time i see int main (void){ —- do i say that is a violation….
I agree that the function looks similar, but there simply isn’t enough evidence here to say either way.
One function simply isn’t enough.
Sigh. I’m getting tired of people commenting without reading.
better example –> probably memcpy. ;)
If it does turn out a GPL violation, good call. The evidence looks good, and I agree it is important to call out the ‘mega-corps’ in situations like this, and especially in situations like this. OTOH, as many others have suggested, any violation here likely has more to do with a rogue 3rd party operator or an innocent mistake than of any wilful wrongdoing on the part of MS Corp. It may get the anti-M$ crowd riled up, but in the grand scheme of things it amounts to… not much.
Business matters aside, it seems evident that MS Corp. makes a great effort to hire the most intelligent and morally sound people they can get. They pay a great deal to so, and their existence is arguably a strong positive to the cause of ’science’. In my mind, the most interesting part of the story (if it so plays out), would be the fact that one (or another) of their hires lifted GPL code… it seems incongruous when you are talking about the best and the brightest. But then again. MS Corp. employs nearly 100k people. Something like this occurring is well within the realm of all probability.
They may not be stupid. It may just be the M$ FUD crew attacking the site to throw people off of Microsoft’s obvious scent.
Perhaps, but it’s not very plausible. Occam’s Razor suggests they’re just talking about something they know nothing about, and/or idiotic.
It should be pretty obvious from the picture that the code samples are almost identical. Only 1 or 2 variable names are changed and most are replaced by constant numbers. Not sure if that’s because of decompiling or or if the actual MS code is like that (in which case it’s a good example of poor programming – it will probably work only for certain situations and file systems). It’s pretty obvious that the code was copied and modified.
Again, what tool where you using to disassemble the Microsoft code?
Setting Sun :
They use Reflector
http://www.red-gate.com/products/reflector/
Of course you all realize how stupid it is to discuss copyright infringement on a blog? Its a really nice open-source thing that all discussion is open, but a copyright infringement is no longer in the fiefdom of open-source but that of the lawyers, and different communities have different rules. By discussing copyright infringement on a publicly archived blog you’re giving the opponents lawyers all the arguments or grounds to counter sue you
D.
As I understand, both ImageMaster and Microsoft used code from 7zip , which itself is licensed under LGPL. If this is indeed so, it would _seem_ (emphasis goes here, since I do not know much about LGPL) that Microsoft had use the code rightfully, while ImageMaster was in the wrong. Of course, ask a lawyer to be sure. I think someone might just do it.
All people here are just trashtalking. D. is right, there’s no reason to argue about this here.
D,
No, it’s not stupid to discuss copyright infringement on a blog. Law exists to serve the people. While lawyers are sometimes needed to translate the effects of the law, copyright infringement is not their domain, anymore than speed limits are their domain. Though they can be useful in both cases. Discussing copyright infringement on a public blog does not give your opponent’s lawyers grounds to counter sue. In fact it gives them problems when and if the case comes to trial, because the work done to determine if a problem does in fact exist is public, and since so many people are involved in checking, they cannot argue that the lab in question was some small, underfunded operation, which didn’t know what it was doing.
Unlike The SCO Group’s MIT Rocket Scientists, we actually exist, and are identifiable.
Did any of you actually email microsoft and ask for the source code?
The GPL and LGPL is invoked upon distribution. Ask for the source.
It doesn’t matter if I ask or not, it’s still a violation due to the missing (required) markings, license text, etc.
It seems pretty straight copy to me. Functions with same names, very similar variable names,
same code block structure, i’d say someone cheated on this.
I’d bet this wasn’t written by MS itself but by a third party employing copy-paste gurus!
Nevertheless you should trust who you employ, and if indeed there was a copy, Microsoft could blame the third party, ask public excuses and re-write the code in “good will” and i bet some judge would dismiss claims.
PS: It would be funny if there’s someone developing an automated tool to check function names in decompiled code (for a list of files) against a DB of open source software. And then maybe some logical checks to see if their logic is too similar and submit for human review…
I bet there are a LOT of interesting things to be found out there!!! =)
Part of releasing any product to the public, is ensuring you can prove you are the original author. There are simple and inexpensive ways to do this, such as sealing a copy and mailing it to yourself, or having it notarized. If any of the parties mentioned above skipped this step, then they can’t prove anything and get what they deserve for being lazy.
I have probably spent more hours doing GPL enforcement than anyone on the planet. If I were to proceed with this case, I’d want to gather more evidence, and talk directly with the copyright holder about what they think. Remember that only the copyright holders themselves have the power to enforce the GPL. I appreciate Rafael’s effort to expose a potential GPL violation, but we should gather more details and open an enforcement action in a friendly way before damning anyone. (As a side note, I generally find that public condemnation of a would-be violator while still gathering the facts only serves to make enforcement more difficult.)
Anyway, if the copyright holders want my help and expertise in GPL enforcement, I presume they know or can quickly figure out how to reach me.
I honestly don’t see too much evidence. I agree the code is similar, but the utilities do a similar operation and there are only so many ways to do something.
This situation led me to write a blog post with some suggestions on how to deal with GPL violations when you find them.
Wow, and to believe that pretty much the worst case scenario is that MS says sorry and open sources the tool. Problem solved…
Sandeep: It’s because of compiling. You always replace constants with their value when compiling, and it’s impossible to reverse this process because the constants aren’t in the compiled code, just the numbers. So the code sample fits with the reflected code.
I’d like to see someone implement the algorithm in question and post the implementation, so we can see just how many ways there are of implementing this portion of the UDF standard SENSIBLY without being very similar to the code snippets in question.
Any volunteers?
Sure Maxam, I’ve got nothing better to do for the next month than write some code that doesn’t need writing, and that I have no need for, in order to prove a point that should be entirely obvious from inspection. I’ll volunteer* (*for $10,000).
We’ve already been order this Maxam… the specs don’t say how to implement, just WHAT to implement. The code samples have the same function names, class names, groupings of functions in classes (UdfHelper), and some variable names. I am not an expert on MSIL, but I suspect some variables are optimized out when compiled, forcing Reflector to use generic names (like num, num2, num3, item, flag, etc).
If you’re wondering what happened to the tool…..
After reading this, I went and emailed the DoJ, FSF, and Microsoft.
Microsoft and I have been dialogging back and forth. More like shuffling me to another department, then oops, the link doesn’t work.
http://www.theregister.co.uk/2009/11/10/microsoft_gpl_violation_imagemaster/
in case anyone is interested.
So basically you’ve caused a useful piece of software to be removed for a pretty poor reason.
Well done
According to sources at Microsoft and the BSA, Copyright violation is serious business.
@Richard: it would be so easy for Microsoft as publishing his tool under the same GPL License. Soooo easy!
If 7Zip used the LGPL, and the snippets of code used by ImageMaster and Microsoft came from that LGPL code, then neither needs to (a) include any kind of source notice nor (b) restrict themselves to publishing open source software. The LGPL does not require any kind of notice or copyright statement, and it is completely fine to use LGPL code in a proprietary project without any reference whatsoever to the original author. If ImageMaster chose to publish under the GPL, its use of some LGPL code does not conflict with that at all. Similarly, if Microsoft chose to publish under a proprietary license, its use of some LGPL code does not conflict with that at all. Both are allowed under the LGPL.
I can’t believe that this is the first link to the LGPL in this thread:
http://www.gnu.org/licenses/lgpl-3.0.txt
About the only comment that I actually take exception to is the one claiming that Microsoft “hires the best and brightest”, and then pays them accordingly. Work for them for awhile before you go around making statements like that. You are clearly uninformed.
I haven’t read the lgpl but I linked to it so I obviously know what it means.
stupidscript, read the license before you post.
@Fake Me … whoever you are
To what are you referring? (BTW: There is no other link to the LGPL in this article or comment thread.)
Basically, and please DO read the license text and reply with more detail if you disagree, the LGPL states that any code licensed under it may be used in any project using any licensing scheme, as long as the original LGPL code remains under the LGPL license. Do you disagree with that? How does that restrict ImageMaker from using 7-Zip code in their GPL product or Microsoft from using it in their proprietary product?
@Stupidscript: What you are missing is that ImageMaker contains code that is a derivative work (UDF parsing code ported to C#). This derivative is licensed GPL, not LGPL. This does not allow Microsoft to include that code in their proprietary product.
The LGPL code remains LGPL, regardless of what it is wrapped in.
If you are saying that the code in question is NOT the 7-Zip example, and that the code has always existed in some more restrictive form under a more restrictive license, then I agree with you. But if this is all about some 7-Zip code, it’s LGPL, and I maintain my position.
The LGPL is in C++, there’s no wrapper. The author ported it to C#. He decided to license his work GPL, in compliance with Section 2.
Here’s an easier-to-understand pictorial:
7zip code [LGPL] — ported –> ImageMaster UDF C# [GPL] — stolen –> Microsoft USB tool.
LGPL = LGPL, then. It really doesn’t matter what licensing scheme the author chose AFTER he used it … the original LGPL work remains LGPL. And remember that no notice is required … the code just remains LGPL. Seriously … no offense, but regarding your welcoming comment to me … who hasn’t read and understood the LGPL, here?
Not sure I understand your ‘welcoming comment’ — that wasn’t me who impersonated you earlier.
I agree the LGPL code is still LGPL. No dispute there, we’re talking about copies here. The [derivative copy] that the ImageMaster author created (via porting) is not LGPL licensed. As clearly stated in LGPL Section 2, it is permissible for the copy to be distributed under a less restrictive GPL license, which the author did. Am I reading it incorrectly?
Reference my pictorial above. I believe it’s still correct.
Sorry. My mistake, and no harm, I hope.
[shakes fist at still-unknown welcomer]
Is it possible that we have a different understanding of the severability of the LGPL code from the GPL package? And to add to the confusion, perhaps mine, is my understanding that the LGPL application does not depend on the proxy source of duplication (ImageMaster), but is always maintained by the original source (7-Zip … and maybe other points LGPL-ward, within the source tree of that program)? So, perhaps …
Ohhhhh … maaannn. After writing all of that, your little drawing makes some sense, now, doesn’t it?
7zip code [LGPL]
- Available to all from the source provided by 7-Zip
ImageMaster UDF C# [GPL]
- Snagged the 7-Zip code and used it correctly within the scope of the LGPL license
Microsoft USB tool [Proprietary]
- Did NOT use the LGPL 7-Zip code … but rather, snagged (or “stole”) the GPL C# PORTED CODE from ImageMaster, which, while it had at its source the LGPL 7-Zip snippet, had been MODIFIED by ImageMaster (ported to C#) for use in the GPL program. By snagging the C# port instead of the original 7-Zip source, Microsoft may have violated the GPL under which ImageMaster’s product was licensed.
Soooo … this really doesn’t have anything to do with the LGPL, right? ;)
Onward!
Your second half came from a Canadian IP address. He’s clearly a fan of yours. ;)
Your summary is exactly in tune with my thinking. I *think* it’s right, but sadly all these licenses are written in a language that is barely English.
True dat.
Man, sometimes these threads get like a million lines of code … and I missed a semi-colon, somewhere.
It ^@#%s stuff up all the way down the line! Thanks for sticking with me, Rafael.
Remember, when Microsoft CEO Ballmer claims open source software like Linux is infringing by using Microsoft hidden source code! Only when everyone asked, show me the evidence, since open source code is “open for review” Microsoft NEVER came forward. Now, it’s been found Microsoft is taking the work of open source intellectual property and then pushing it out their doors as their own software!
So the big question, just how much more is Microsoft infringing upon since their source code is hidden for the public to review?
Just how much more of “Windows” 95/98/2000/ME/XP/Vista/Vista 2 had been “borrowing” without permission open source intellectual property?
Microsoft has already been found guilty of intellectual property theft before, and certainly here by copy and paste the works of other open source developers, so why shouldn’t there be an investigation going on regarding the source code in Microsoft Windows operating systems?
In fact, why is public software sold as hidden source code, especially in an open society, the land of liberty and freedom, right?
Why does Microsoft get the right to hide it’s source code, blame FOSS (Free Open Source Software) as infringes of intellectual property?
For anyone not familiar with FOSS, visit http://www.groklaw.net and see how much Microsoft actually restricts innovation by limiting everyone in society to contribute! But, wait, there are other additional reasons, posted here: http://en.windows7sins.org (The case against Microsoft and proprietary software) and here as well: http://www.free-culture.cc (How Big Media Uses Technology and the Law to Lock Down Creativity).
Rafael & stupidscript -
Just to clarify GPL & LGPL – the 5 second basic overview: You *may not* statically link a proprietary product with either GPL or LGPL code & distribute. This means including the code in the same binary file. LGPL may be linked with a proprietary product, but only at runtime in the form of a shared library (such as a DLL), as a separate binary file.
@convivialdingo
That’s a common myth actually. The LGPL does not forbid static linking by a closed source work, HOWEVER, it does require that a distribution provide means for an end user to relink against a modified version of the LGPL library. This is obviously most easily achieved by dynamic linking, however it can also be done by providing the object files for the program.
Thanks for helping take down an incredibly useful tool over a technicality. Solid work proving to the world you are smart and in the process taking away something that just worked and was quite useful and functional.
I won’t be visiting your web site again.
Sorry you believe this is merely a technicality. I have a copy of the tool, should you really need it. (I suspect you’re just here to bitch and moan.)
HAHAHA DISREGARD THAT, I, WELL, YOU KNOW…
[begone, demon imposter!]
I don’t visit web sites to bitch and moan, That being said, I do however on occasion call out jackasses that like to look smart and cause ill effect on others and remove access to very helpful tools such as this.
You offer to distribute the tool to me is also a copyright violation isn’t it? Perhaps I should take you up on that offer and then request that this web site be take down also?
OMG I just realized I am soooo cool for finding out this tool utilized something open source for the benefit of the IT community. I can’t wait to get famous all over the web by posting how smart I am and getting this tool taken down!! Holy cow, I may actually get a girlfriend from this!!!
(in reality – I have no security on my comments section and anyone can appear to be someone else – I am in fact pretty stupid for setting this up like this)
@Thanks Jackass
Everyone can plainly sees the problem of of having Microsoft claim the work of other developers as their own. Rafeal stood up for what was just and right, which makes him have my support and endorsement. We need more individuals in society willing to do the right thing. As for a tool to install Windows 7, Microsoft has the resources and technical means to develop their own software solution whom are PAID, which they don’t need to steal the work of other developers NOT paid by Microsoft.
Another tool called WintoFlash.exe (another FREE solution by free open source code software) also provides the means to convert a DVD ISO over into a bootable USB Flash drive. As many end uses know, there are many solutions. The fact is Microsoft didn’t care themselves to insure their customers would have the means to install the operating system on netbooks without a DVD drive. This isn’t the GPL or LGPL fault, it’s was Microsoft’s own failure. Microsoft knew most of the netbooks (8″, 10″, 13″) don’t all have DVD drives.
bah, i don’t freaking care if they’re using gpl code or about the licenses, but now ‘coz of that i can’t install windows 7 in my netbook, thanks sir.
Microsoft are quite happy to demonize copyright infringers, willing or not. This is just role reversal. And it’ll only be temporary while they either rewrite or license the offending code, so chill out.
dont listen to the haters. its responsible what you did.
@Thanks Jackass
Heard that windows 7 is also an “incredibly useful tool”. Why don’t microsoft make it available to the world for free and in the process give us something that just works and is quite useful and functional.
Look everyone, Microsoft obviously took the source code of ImageMaster and made a CARBON COPY of its routines and classes. It doesnt take much of a programmer to work out that the two are more or less the same. I guess they didnt expect people to open it up with red tools reflector.
If I was Microsoft I would have:
1- Made sure that code was obviously not used from somewhere else, and if it was, that it was released under the same license
2- If i was evil, I would have continued with this and protected the EXE from being decomplied in tools such as Reflector. Very sloppy work Microsoft.
Either way Microsoft used GPLd code and did not notify the origanal developer of the project, and WOW its like cheating on your own client base??? CodePlex??? They could have at least ripped off from Google Code instead!?!
If i was the ImageMaster creator I would have filed a lawsuit already haha!
Not to stir up more trouble here, but if you look deep into the internals using reflector of Windows Media Center DLLS and EXEs, there is some similar code to a project I saw a year back (if anyone knows the name of this media program jog my memory of it please)
@emucosmos, & ThanksJackass, I don’t much care what you and your ilk think. You are obviously only concerned with your own self interest, and not the interests of everyone in general. So you can’t install 7 on your netbook, cry me a river. I would advise you to either take up the issue with MS, or go and learn how to do what needs to be done. There are more than one ways to skin this cat. You are either too dumb or too lazy to figure out another way. The fact that you are inconvenienced by this pesky little license thing bothers me not one bit.
If it is in fact true that MS was infringing on GPL code, I am sure it is an oversight, ie some contractor or individual did it, either willfully or not; and from there it slipped past review. Not that it would bother MS a lot, or that MS haven’t done it before, but that it is a big risk for MS to take, for such a small gain. What they do about it will be interesting to see.
and more importantly, the bigger issue here is such blatant violation of the GPL undermines ALL available open source software. if you want to have authors continue to create open source software, you need to prevent stealing it and charging for it. the original author could have charged for it in the first place, but chose not to. … @thanks jackass — you’d repay him by …. stealing his software? sounds like a great idea …
microsoft can do what everyone else does. either use open source code and leave the code open, or create proprietary code, and leave it closed. they can’t have their cake and eat it too.
Oh man. Microsoft… Did what we all thought was unlikely [O.O]
http://port25.technet.com/archive/2009/11/13/update-on-the-windows-7-download-tool-or-microsoft-to-open-source-the-windows-7-download-tool.aspx
I wonder if all the doubters who insulted Rafael will apologize now.
I wonder why ImageMaster source code isn’t available from codeplex anymore!!! ketching!!!
Microsoft has stepped up to the plate. I’m sure there are people here who would be dissappointed with anything less than an execution. I’m sure that Microsoft will do better next time, but that mistakes like this will continue to happen in the future at a reduced rate.
It’s clear that many of the people posting here need to leave their parents basement and live in the real world for a while. If you worked at Microsoft (cue the 5-year-olds to say they would never work at M$) and it was your responsibility to keep this from happening, how would you do it. Really, how. There are probably hundreds of millions of lines of open source code, if not billions. I’m certain that Microsoft’s legal department requires a complete code review, but no business process is perfect. The legal system does not expect perfection from people or companies. The legal system discourages actions on trivial matters, and generally seeks to make someone whole again after a wrong is done to them. If this were based on closed source code, and the developers lost money because of Microsoft’s actions, then Microsoft would be expected to replace their lost income (Of course lawyers so pervert the course of justice, that it matters only a little who is right and who is wrong, but that’s another subject). So sorry to dissappoint those looking for an excution.
Anyone who really thinks that Microsoft would intentionally steal GPL code should go jump off a cliff now to help improve the average intelligence in the world. The only asset that Microsoft has is Intellectual Property. That’s it. They would like to make IP laws even stronger, not weaken them.
Thanks to Rafael for his service in uncovering this. I read about this at another blog and came here. On the other blog it made it seem that he was subjected to terrible harassment and scorn for even suggesting this, but that’s not the case. I think that most comments questioning this were restrained and reasonable. On the other hand, some of the anti-Microsoft comments are truly outlandish.
I don’t know how to break this to a lot of you, but computers are a tool. They are like a hammer or a screwdriver or an extension cord. They are not a religion. They are not objects that are shrines, nor are they alters at which you should worship.
I personally use both Linux and Windows, and I use open source software daily and I really enjoy using it, but I don’t pray to it every day. It’s just a tool.
There are a lot of really smart people who use Linux, and a lot of really smart people who use Windows. And there are social misfits who use each one as well. For some reason the social misfits seem to be drawn in one direction. I’ll allow each of you to pick whichever side you want as the one that draws the social misfits. But you do know that it’s true.
That the project has disappeared off codeplex is a worry. Hopefully this has not displayed another issue. Ie have project on codeplex find a issue with MS distribution stops from codeplex until fixed.
Big thing here this should be a clear warning to people using .net. Their code is not secret it can be compared to other projects out there. Steal while using .Net expect to get caught. You might as we release the source code of .net programs anyhow. This way if there is something wrong in there is just a minor notice no major head hunt.
.Net is no more secrets. It is designed that way. MS need to be able to audit code for secuirty flaws to stay ahead of game. So methods for hiding what code was made from is missing from .net. Idea while using .net bytecode you can protect from Reflector pull apart is wrong.
One way slow down pull apart is use native code. But items like IDA are getting better at pulling that apart as well.
Final one is encrypt the binary and make sure no one can get the key to decode.
There are Misfits on the MS side as well. MS cannot have done anything wrong people. Or MS did not know about it. Licences don’t care about did you know about it or not. It is if you did wrong or not.
If I was microsoft, I’d sue the hell out of the programmer who included open source code in one of the company’s programs without disclosing it. He has tarnished Microsoft’s image, there is no excuse and no possible redemption for this.
Sue him to death, make sure his life is hell from now until the day he dies ! And, then, throw him to the dogs !
ROFL
errare humanum est, sed perseverare diabolicum
license crap ;] what dumbs still cares about it
Microsoft claims, “We have furthermore conducted a review of other code provided through the Microsoft Store and this was the only incident of this sort we could find”, but that is taking credit away from Rafael report, which he had found the illegal code claimed as Microsoft’s own.
To add more salt to the wound, Microsoft goes on in the first paragraph, stating “Windows 7 USB/DVD Download Tool, might contain GPLv2 code” and then in the second paragraph states, “After looking at the code in question, we are now able to confirm this was indeed the case”!
So here Microsoft wasn’t able to deny the FACT, but they try to limit the damage of them stealing the open source code to claim it as their own.
Why is Microsot “we’ve been investigating a report that the Windows 7 USB/DVD Download Tool”, as clearly they NEVER did before, NOT until it was reported by Rafeal’s Within Windows webpage. This is matter of the courts to investigate, NOT Microsoft, because Microsoft BROKE th LAW, and having the abuser download play the criminal behavior to be made judge and jury is completely biases of the FACTS, which they have been serving themselves in favor of!
Why doesn’t this go to court, as damages were done against GPL laws. Or is it that Microsoft dosn’t need to follow the laws, it’s above “justice”?
Microsoft also claimed “As you’ve likely read” from PC Magazine! Huh? Why is Microsoft posting a link to PC Magazine, when in FACT, the discover was made by Rafeal who posted it on his Within Windows website!
The PC Magazine article claims “several concerns” instead of reporting the truth, that Microsoft stole GPL code, and then PUSH it out their doors in the Microsoft Store as their own tool!
Where is ImageMaster?
Of course I would need a util. right at the time Microsoft decides to kill it…
WinToFlash Turns Your Windows Installation DVD into a USB-Based Installer
WinToFlash (wintoflash.com) starts a wizard that will help pull over the contents of a windows installation CD or DVD and prep the USB drive to become a bootable replacement for the optical drive. It can also do this with your LiveCD.
http://www.downloadsquad.com/2009/08/27/make-a-bootable-usb-installer-for-windows-xp-vista-7-with-wint/
It’s amazing, how Windows 7 end users need to be rescued, and by open source software tools! No wonder Linux works better, because Linux is built and used by geeks with knowledge, who can figure things out, and resolve issues without waiting for Microsoft to get around to providing a solution stolen from free software tools.
Yes, Microsoft stole the work of other developers, but claimed it as their own, totally breaking the law to grant everyone using the free software the same free rights! Instead, Microsoft change the free rights into their own limited and restricted rights denying everyone else what you can do with th stolen free software.
How else to put it, but Microsoft still hasn’t shown remorse, where is the justice for those developers working to make free software for all? If we don’t support them (free software developers, if only by insuring these rights remain the same legal rights for everyone else), then don’t come crying here later complaining about how you are extorted our of money to afford software tool solutions, since you didn’t care or concern yourself to help when needed now!
Stand up for justice, stand up for Rafeal and stand up for GPL legal laws, which help you have the legal rights, that Microsoft DENIES you!!!
oiaohm: “MS need to be able to audit code for secuirty flaws to stay ahead of game. ”
I don’t think so.
On the rest of oiaohm’s post: Note that the same is true for Java bytecode too, which also can be decompiled in pretty much the same way.
“Final one is encrypt the binary and make sure no one can get the key to decode.”
In fact, there is indeed both .NET and Java code obfuscators.
I’m NOT surprised!!
Often I commented about the old and good PCTolls 4.0 Deluxe, Norton Disk Doctor, Word Star, and others and people said I was crazy!!!
No, I am NOT!!!
If we really dig on deeper in the redmond company, we’ll find much more!!!
I have something else to comment, I found in the web that they registered the “sudo” command, that doesn’t even work on win systems. Can you believe that???
Regards,
Very nice find. Open source should remain open source.
StopenCould this be why Microsoft products are closed sourced? As most of us know, Window’s 7 is just a repackaged Window’s XP. Raphael, what other things are you working pertaining MS that may reveal more the little dirty source secrets.
Great job!
M Saun
http://port25.technet.com/archive/2009/11/13/update-on-the-windows-7-download-tool-or-microsoft-to-open-source-the-windows-7-download-tool.aspx
Microsoft Code review process was not OK
Microsoft is now fixing their code review
Microsoft will release code modification under GPL2
Microsoft do what they had to do when they discover this borrowing of GPL code
Compare Microsoft to SONY when it come to handle “stolen” GPL code.
1 Microsoft was told about “borrowing of GPL code”
2 Microsoft investigate
3 Microsoft discover error in Code Review process
4 Microsoft is fixing/changing Code Review process
5 Microsoft releasing modification to GPL code under GPL
6 Microsoft make a statement “We apologize to our customers for any inconvenience this has caused”
7 Microsoft did not “apologize” to FSF for breaking GPL
I think microsoft behave well when they have to ……….
Microsoft is a Pirate, for having pirated open source code software, and by pushing stolen code on their Microsoft Store as if it was their own! That clearly shows after all these years you still cannot trust Microsoft who clearly knows better for having told everyone else, NOT to steal their software!
I’m sure we all know the reasons behind Windows activation, Windows Update validation, Windows Genuine Advantage, DMI, TPM, WAT and of course HDCP all built into windows, and yet Microsoft went ahead and ripped off open source developer code, claimed it as their own, repackaged by adding their own Microsoft branding and criticizes GPL as “Cancer” when in FACT, it’s been Microsoft itself doing the harm all along!
Harming developers everyone, by locking them into Windows only, pre-load and pre-installed without refunds, even when you don’t agree to the EULA end user license agreement) having pre-paid for the Microsoft license if you wanted it or not. But wait, to insure open source cannot work with Windows, Microsoft forces it’s own digital signatures, knowing full well the cost of applying for the right to incude FREE open source code solutions to the public would prohibit developers working for free, to afford the huge high cost code signing certificates only Microsoft allows, as it holds the root keys, which come pre-installed and pre-loaded on Windows.
That makes FREE software anti-competitive, as it is forced by Microsoft to pay the Microsoft tax, and it’s more than you think, costing hundreds to thousands of dollars, yearly!
It’s also the same issues with patents, as the cost are greater than the public can afford, insuring Microsoft with it’s vast fortunes has claimed more than 6000 patents. What other software developer is going to be able to innovate knowing 6000 reasons why you cannot use those benefits, and yet is required to use Microsoft’s tools like .Net Framework, to build upon, instead only by Microsoft’s methods?
Microsoft couldn’t be worse, it has killed off developers and it’s gotten so bad, even Rafeal had noticed Microsoft isn’t developing it’s own solutions anymore, it’s stealing them from other developers. Why should open source developers produce free software for Microsoft to profit and gain only having stolen their work?
Just how many other open source software programs did Microsoft pirated into it’s hidden source code?
I’m a PC, pirated computer from Microsoft!
@ Jo Doe
Microsoft is NOT fixing “their code” it wasn’t theirs from the beginning! Microsoft stole the source code and claimed it as their own. Microsoft NEVER checked because they KNEW they had repackaged the source code, it wasn’t by accident, it had to be planned, premeditated in advance, as evident of the copy and paste tactics involved.
Microsoft didn’t “borrow” the works of other developers at all, they claimed it as their own!
Nobody should compare Microsoft with Sony, this was Microsoft’s own fault, they were the criminals, who stole the works of others claiming as their own.
That statement of apologizing is insufficient, as it’s no different than robbing a bank and then expecting to say, if I apologize by stealing the money, I get to keep it now?
Why should Microsoft be allowed to use the works of others to claim it as their own? Microsoft broke the law, and admited it, sonce they could hide it from the public anymore!
Rafeal is a hero, Microsoft should has been found guilty, and for that crime of stealing the works of others, having become pirates, they think just by saying no harm was done, that those developers work was stolen, just who are they kidding?
And “Jo Doe” thinks Microsoft “behaved well” as pirates, stealing the works of others, claiming the source code was their own!!!
We demand Justice! – Independent Business Foundation for Law and Order
Cool down folks. If people sued over a minor infraction such as this, when the other side has made clear intentions to fix their error, that just looks petty. I’d sure like a good reason to see them fail too, but not like this.
On the other hand, they are taking their time with the source release.
No code review in the world is going find GPL code in a software product unless they are looking for it and know what they are looking for. To expect a Microsoft code review of a contracted out piece of software (that’s right…Microsoft did NOT write the code for the tool themselves) to catch a GPL violation would require the reviewers to know and recognize all GPL code dealing with disc mastering. Maybe next time they’ll include a clause in the contract specifying no open source code used.
I image they probably said something along the lines of “build us a tool that does X for X amount of dollars”. They then did a code review to check stability of the product and then took delivery. Once brought to their attention they acted in the manner consistent with the GPL. News @ 11.
its funny they cant even release in the week time frame they claimed now its going to be weeks which means they are recoding the whole project.
fucking lame microsoft!!!!
Microsoft now plans to issue a new version of Windows 7 USB/DVD Download Tool (WUDT) in the “next few weeks,” said Peter Galli, Microsoft’s open-source community manager in a post to the firm’s Port25 blog last Friday.
Microsoft admits acknowledging the source of the code embedded in WDUT, and by not sharing the source code for its modifications, or the tool itself, as required by the terms of GPL (GNU General Public License).
Galli also promised on November 13, 2009 that Microsoft would make the source code and the binaries for WDUT available the following week under the GPLv2 terms.
Why should anyone respect Microsoft for stealing open source code software, for breaking the law, for claiming the code was their own solution and for not keeping their word as promised to make available within the time frame the source code under the General Public License?
http://images2.store.microsoft.com/prod/clustera/framework/w7udt/1.0/en-us/Windows7-USB-DVD-tool.exe (947KB file)
MD5: D5813F05661542E546133250172785DF
It’s very clear and obviously to everyone, by stealing the works of others and by claiming the code was their own, that makes Microsoft a Pirate of software! It’s disgusting because Microsoft own code review failed to discover their theft of software, making you wonder had Microsoft planned this all along, as they didn’t develop their own solution, despite being the world largest software developers or someting along those lines to that effect.
Nope, instead, Microsoft clearly sought and want after the works of other open source code developers, claimed it as their own, branded as Microsoft’s own and downplays th whole event as if breaking the law is okay for them to get away with. Perhaps, that explains why Microsoft has been found guilty in so many courts all over the world of wrong doing, having broken the laws in penalties greater than the sum of some 12 billion dollars! That’s a long history of breaking a lot of laws folks. There is more than enough good reason to surmise Microsoft cannot be trusted with it;s long, long history of infringement activities and anti-competitive behavior.
Embrace, extend and extinguish has remained a core strategy of Microsoft corporation. Let’s this be a lesson to all open source code software developers, NEVER trust Microsoft!
Just how much more open source intellectual property has Microsoft been hiding in it’s hidden proprietary software code?
What gives Microsoft the right to hide the evidence when they have been found guilty so many times? Nobody wants to hold them accountable, because they control a monopoly? So with this logic, the same would be said for Kim in North Korea, making nobody want to end that regime of oppression?
You really got to ask yourself, why didn’t Microsoft develop it’s own software solution to install Windows 7 without stealing the works of other developers?
Microsoft has had a long, a very long history of litigation, court orders, patent infringements and antitrust lawsuits against it since the very beginning of its history.
http://www.theinquirer.net/inquirer/news/1048246/microsoft-lawsuit-payouts-usd9-billion (Thursday, 14 July 2005)
Should Microsoft be rewarded for breaking the law, stealing the works of others, repackaging the code as their own, claiming the software tool as their own solution, failing to catch the stolen code in their own review process, and failing to follow through on time to release under the GPL license the source code as promised?
This is justice?