Slashdot Mirror


IP Theft in the Linux Kernel

Søren Schmidt was browsing through the 2.4.10 linux kernel source when he saw something that looked a bit familiar. Too familiar in fact. Søren is the principle developer of FreeBSD's ATA drivers, including FreeBSD's support for ATA RAID cards, and as he looked through the linux/drivers/ide/ files the sense of deja vu was overwhelming. Read on for more.

"They just took my code and filed off the copyright" said Søren. "This is clearest with the two header files hptraid.h and pdcraid.h. Compare these with FreeBSD's ata-raid.h, and just look at the similarities." And it's true that these two header files certainly look like a chopped up copy of the FreeBSD header, after a quick search-and-replace. "The reading of the RAID config from the disks is their own code, but is clearly "inspired" from our code," said Søren, "but that's encouraged by the license. It's the verbatim use of the other code without retaining the copyright that's the problem."

ata-raid.h, and the other files, are copyright Søren, and released under the three clause BSD license, which includes the restriction "Redistributions of source code must retain the above copyright notice". So using these files, or significant portions of them, in your own code, without retaining the copyright information, as has happened here, is prohibited.

You may be thinking "This is only a couple of header files, what's the big deal?". As Søren says "The problem here is that the structures in the headers is the whole story. That info tells how you read the proprietary struct off the disks, and was reverse engineered and documented by me after a lot of effort." Søren's intellectual property is tied up in those files.

Right now, Søren is in discussions with the authors of the Linux ATA drivers (employed by RedHat) to ensure that his copyright notice is returned to these and other files, and to ensure that this situation does not recur. And it is hoped that an amicable solution can be reached.

24 of 1,000 comments (clear)

  1. Won't be the last time. by proxima · · Score: 4, Interesting

    Granted, I think most of us expect code to be stolen from GPL products and stuck into proprietary products. It struck me as odd that BSD code would actually be put into a GPL program improperly, considering the only requirement to my knowledge is the copyright notice they discussed.

    It was mentioned that the authors of the Linux kernel code worked for Red Hat. We can't be certain but I speculate that they didn't want to appear "lazy" by "stealing" anyone elses code, regardless that it was completely free. Perhaps it was just an oversight. I hope we see an update in a slashback in the future.

    --
    "The universe seems neither benign nor hostile, merely indifferent." --Carl Sagan
  2. Stolen code??? by Quasar1999 · · Score: 2, Interesting

    Certain code, although originally discovered/written by one individual will look a lot like the code of others, especially when that code is interfacing with hardware. I can only initialize a video card one way, with all the registers being set in the same order... Now if I don't consult the web, or anyone elses source code, and write a video driver, someone else, who wrote one for the same hardware first, could claim that I cut and paste his code... Even though I haven't even seen it.

    Just because the code looks the same, doesn't mean it was stolen... There are only a limited number of ways to get certain hardware to work in software, and most code reflects this.

    --

    ---
    Programming is like sex... Make one mistake and support it the rest of your life.
  3. Re:Er... (BSD License vs the GPL) by thedward · · Score: 2, Interesting

    The BSD license has an "advertisment" clause that requires the software give credit to the developers.
    This is contrary to the GPLs "no additional restrictions" clause. Thus you cannot just take code from a BSD licensed project and import it into a GPL licensed project. Not legally at least.

    --
    Remember, no matter where you go, there you are.
  4. Re:And yet... by Spankophile · · Score: 3, Interesting

    There's only a few comments in here right now, but the sentiment seems to be:

    "I'm speechless. THis sort of thing shouldn't happen. Give the guy his due credit. Now let's move on."

    If it really *had* been done in Windows, and someone found out, I bet people here would be screaming for blood, waving the evil empire flag, and talking about how only an MS employee would do such a thing.

    Crow is good for you.

  5. A common source? by MarkusQ · · Score: 2, Interesting
    Before we get too up in arms, is it possible that they both drew from a common source (app notes, published specs, etc.)? Code can look similar for many reasons. I recall, for example, a university "cheater detection" program that "caught" a large number of cheaters--in a course on code reuse--because they had used identical variable names, layout, etc. It was subsequently discovered that they had all noticed that the problem given was a minor variation on an example given in their textbook, and had used that as a starting point.

    -- MarkusQ

  6. But it can't be done "properly" by John+Harrison · · Score: 2, Interesting
    Your post raises an interesting issue. Can BSD code be put into a GPL program? Not accoring to the statement on gnu.org about the original BSD license, which is the license in question. It is listed in the GPL-Incompatible section.

    It is the requirement you mention (inserting the copyright notice) that makes the two incompatible. A GPL'd program can't have that "restriction".

    If you are cynical you could say that this is an example of the viral nature of the GPL and that RMS wants to take over the world!

  7. Re:So tell me by Anonymous Coward · · Score: 2, Interesting

    1) In case you haven't noticed, Slashdot is the scandal rag tabloid of the open source community. This is a scandal, it should be printed here. (Every other known licence violation gets press here -- should this one be supressed for political reasons?)

    2) Nobody on Linux-kernel wants a bunch of technically-ignorant flamers invading their list. What passes for Insightful here will get you killfiled there. Anyone who might be interested in linux-kernel is smart enough to find it. Don't point them there.

  8. Re:One question by Anonymous Coward · · Score: 1, Interesting

    He has no IP on that it was reversed engineered anyway!!! Did he invent a thing? - NO

  9. Stripping off copyrights sadly common by mikosullivan · · Score: 4, Interesting
    W/o implying that the Linux folks had any innappropriate intentions, stripping off copyright notices is sadly common.

    I write and run the Idocs Guide to HTML which contains a lot of JavaScript. I give away the JavaScripts for free, asking only that the copyright notice be kept in place. The copyright notices are in the JavaScript comments, so there's no effect on the user-interface. Nevertheless, I have seen many places where my scripts are used but the copyright gone.

    One person even asked for help on using a script while blatantly refering me to a page where the copyright was gone. Sheesh.

    --
    Miko O'Sullivan
  10. IP theft is a bug too by stud9920 · · Score: 2, Interesting

    Well, IP theft could be considered a kind of bug. This is kind of yet another proof open source software is great : like any other bug, it was eventually detected by someone competent about the subject (being ATA here), and is now being fixed.

    It would never have been detected in the first place in closed source software. Not even by reverse engineering (illegal in the US thanks to DMCA) as copyright notices reside in uncompiled comments.

  11. Er, I thought the BSD license permitted this... by weave · · Score: 3, Interesting
    Isn't the big thing about the BSD license is that it doesn't suppose to have restrictions like this? As in, any company can take the code, wrap it into their own code, and not pay, give credit, whatever?

    If so, then nothing wrong has occured. It can also be recopyrighted under GPL. Don't like it, just copy and make use of the original BSD one that doesn't have that restriction.

    I don't see Microsoft making the source for BSD bits they lift available for others, nor do they have to. BSD allows you to do whatever you want with the code, including sell it, right?

    This isn't meant as a troll, if I'm mistaken, let me know. I'm just interpreting the numerous open-source vs free-source, BSD-vs-GPL flame wars that have been going on here forever...

  12. Re:And yet... by Anonymous Coward · · Score: 1, Interesting

    You are misinformed regarding WinNT source code unavailability. Microsoft has licensed WinNT source code to various companies and Universities. Even students who sign NDA's have access to the source while working on the licensed projects.

  13. Re:Er...yes by Siva · · Score: 2, Interesting

    CTRL-V 248 in insert mode seemed to work just fine for me (using vim) :P granted, i had to look it up, but thats what help is for :)

    yes im a vi whore yadda yadda

    --Siva

    --

    Keyboard not found.
    Press F1 to continue.
  14. That's not paticularly smart... by Sj0 · · Score: 3, Interesting

    You may be thinking "This is only a couple of header files, what's the big deal?". As Søren says "The problem here is that the structures in the headers is the whole story. That info tells how you read the proprietary struct off the disks, and was reverse engineered and documented by me after a lot of effort." Søren's intellectual property is tied up in those files.

    Am I the only one who found this strange? The idea that by reverse engineering a piece of hardware, you are suddenly the IP holder? I could see the hardware manufacturers making such a claim, but a third party driver writer? I did some engineering to make a fast video routine for modeX, and I hardly think that I can claim IP rights over the modeX architecture...

    On the other hand, if the person who wrote it wants some credit, give him some credit. That's all I ask for when I give code away, so I can see why that could be annoying. It probably was an honest mistake on the part of the kernel developer though, I know that a couple times I've released a program and forgotten to put some copyright or some such in it. Incidently, that's why I usually just write my own code from scratch now.

    --
    It's been a long time.
  15. Make copyright acknowledgement easier: an idea ... by Anonymous Coward · · Score: 2, Interesting
    Set up a repository of copyright boilerplate at gnu.org and freebsd.org etc. so that all you need is
    a single line with an md5 digest to refer to a chunk of copyright text filed in the respository as a file with the md5 as the file name.

    Very simple, and no mistaking what text is referred to. E.g., a single line with an URL something like:

    // Copyright included by reference: http://freebsd.org/copyrights/70ae74fca3ee7f555acf 7f556ee425a0.txt

    (The ".txt" is just to make it easy for windows folks). The single line would eliminate a lot of the ridiculous cases where the license text is twice the size of the source code.

  16. Re:Hope it was an oversight... by yesthatguy · · Score: 2, Interesting

    I don't know if this is the case everywhere, but my high school has taken a very strong stance against plagiarism. We're required to give major papers in on paper as well as in electronic form, so that our teachers can easily run a check with plagiarism.org. The consequences for plagiarism basically reduce to: first offense - 0 for the term, second offense - 0 for the course.

    I never really had any desire to rip off other people's work anyway, since I feel that I can write better than the people who give their papers away for free over the internet, but having such punishment is actually a comforting incentive to do one's own work.

    --
    Yes! That guy!
  17. Re:And yet... by j7953 · · Score: 3, Interesting
    From the BSD license:
    Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.

    I wonder where Microsoft (or anyone else distributing binary BSD-licensed software) does this. At least I didn't find it in Windows 2000's documentation (both online and offline). I have only the OEM version so my only manual is a quick start guide, but still the notice should be somewhere if Microsoft doesn't break the license.

    BTW, I think this is one of the worst clauses of the BSD license. I don't see how it makes sense to expect licensees to fill up the last pages of their user manuals with things like "This software contains software licensed to [Company] under the following license agreement: ..."

    Requiring a notice such as "Parts of this software copyright ..." would be ok, but requiring a reprint of the license agreement that allowed the use of that software is ridiculous. Or maybe I misinterprete the license?

    --
    Sig (appended to the end of comments I post, 54 chars)
  18. Re:Er... by raoulortega · · Score: 3, Interesting

    If Microsoft did it, I'd expect them to do the same, but Microsoft would probably do it to force the issue, make the EFF take them to trial to define the limits of open source, the BSD liscence , and the GPL liscense. That's the difference - this will be taken care of by peers, while Microsoft conflicts almost always involve lawyers.

    It may surprise you, but Microsoft has actually killed projects because some of the code was unintentionally tainted by the GPL license (like by the inclusion of GPL'd libraries). A major reason was to not give the Microsoft haters an excuse to sue, like they constantly threaten.

    As for "asshole celebrities"-- when you've got deep pockets, you are more likely to get sued for trivial reasons by "an honest citizen" looking for some quick bucks.

  19. Re:wow, this is a shame by Jucius+Maximus · · Score: 2, Interesting
    " this is crazy, linux developers need to give props where props is due."

    Or more generally, anyone who writes anything needs to give props where props is due.

  20. Re:And yet... by jrockway · · Score: 2, Interesting

    He asked you first ;) Seriously though, you're innocent until proven guilty. At least give M$ the benifet of the doubt.

    Moderators: I use linux so don't mod me down for being resonable regarding microsoft. I don't even own an x86 machine :P

    --
    My other car is first.
  21. Doesn't matter. by booch · · Score: 3, Interesting

    It doesn't matter how much code or ideas you borrow. With Open Source code, all you really have to do is give credit where credit is due. (Assuming the licenses are compatible, which they generally are when using Open Source.) And you should really be crediting people for what they've done to help you even if it isn't required.

    --
    Software sucks. Open Source sucks less.
  22. Re:There is no "IP" Wake up. by topham · · Score: 3, Interesting
    First, it is quite possible the programmer involved simply copied the relevent lines and pasted into into a new project.


    It is also quite possible someone else documented the structures and the programmer re-build the header file from said documentation. The structures themselves would likely end up with the same names, and depending on the prevalining naming convention at the time it may look as close as it does without actually being a direct violation.


    Header files of this nature are ALWAYS going to look very similar when it is for the same device. As for 'his IP' based on reverse engineering the interface. Sure, except copyright doesn't exist for anything except the actual implementation. documenting it and redeveloping it IS NOT a copyright violation.


    A header file such as this is close to simply respecified facts.

  23. Re:This issue was resolved already by LinuxATA · · Score: 2, Interesting

    Arjan,

    It is a NOP. Delete the headers and I will generate the correct "Legal" ones that are derived from the true owners of the IP, Promise Technologies.

    Regards,

    Andre Hedrick
    Linux ATA Development

  24. reverse engineering and intellectual property by Anonymous Coward · · Score: 1, Interesting


    "The problem here is that the structures in the headers is the whole story. That info tells how you read the proprietary struct off the disks, and was reverse engineered and documented by me after a lot of effort." Søren's intellectual property is tied up in those files.
    </snip>

    Whose intellectual property is the outcome of a reverse engineering process really?

    --
    jonmartin.solaas@mail.link.no