Please create an account to participate in the Slashdot moderation system

 



Forgot your password?
typodupeerror
×
BSD Operating Systems Software Linux

IP Theft in the Linux Kernel 1000

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.

This discussion has been archived. No new comments can be posted.

IP Theft in the Linux Kernel

Comments Filter:
  • by JEDi_ERiAN ( 79402 ) on Tuesday September 25, 2001 @01:31PM (#2347849) Homepage
    this is crazy, linux developers need to give props where props is due.

    E.
  • Er... (Score:4, Insightful)

    by Legion303 ( 97901 ) on Tuesday September 25, 2001 @01:35PM (#2347884) Homepage
    Can someone explain to me *why* a developer would strip off copyright info? It's not like there are licensing fees; the guy just wants his code to be recognized and attributed. It doesn't make much sense to me...could it have been an honest mistake or a coincidence? (I'm not a programmer, so I haven't looked at the two files in question, which would mean nothing to me anyway.)

    -Legion

  • by hokie93 ( 249796 ) on Tuesday September 25, 2001 @01:38PM (#2347912) Homepage
    Agreed. There are bound to be a lot of trolls on this discussion and some inflamatory rhetoric but it is pretty simple. For the most part, when you use the source code from any open source program, you are bound by the terms of the license agreement.

    By removing the advertising clause, the BSD license is compatable with the GPL but there are still obligations that must be met.

  • by jekk ( 15278 ) <mcherm@mcherm.com> on Tuesday September 25, 2001 @01:41PM (#2347972) Homepage
    Please folks, remember this the next time /. posts some s [slashdot.org] t [slashdot.org] o [slashdot.org] r [slashdot.org] y [slashdot.org] about a violation of the GPL liscense. Give them a chance, after it's been pointed out, to resolve things peacefully.

    Of course, I wouldn't propose that we allow violations of open source liscenses to continue unchecked, just that the opportunity for good faith resolutions be allowed before crying "Boycott!".

  • by digitalmuse ( 147154 ) on Tuesday September 25, 2001 @01:43PM (#2347987)
    This should really be addresses as a wider issue in the Linux community. While we all place great importance on the 'open-source' movement, we also need to ensure that Linux polices it's own code-base and keeps itself in compliance with the GPL, and other license-of-the-week trends.
    We must try and validate our work in in the eyes of the corporate (and IP-trigger-happy) environment that we are trying to penetrate if we want to get accepted as a viable option.
    hmmm, where will we find this kind of un-attributed code violations next? I sure as hell don't want to have Microsoft breathing down my neck because someone recycled propriatry code and invited the bull into the china shop.

    food for thought
    (caffine for action)
  • by melquiades ( 314628 ) on Tuesday September 25, 2001 @01:43PM (#2347990) Homepage
    Developers give all kinds of reasons for developing free software -- noble spirit, peer respect, etc. -- but one of the big ones is all the shit you don't have to deal with.

    Case in point: there is every reason to think that this author's name will be included with his code in the next release of the Linux kernel source. Think how vastly different this situation would be if this were about theft of proprietary code. Here, nobody's company is at stake, and nobody stands to lose by doing the right thing -- so there are no stupid lawsuits and no hard feelings. At least, I hope it plays out this way ... but the odds are with it.

    Forget all this paranoia about the venemous GPL. Proprietary code has a really, really high cost of ownership; at a certain point, it's just not worth it. Free is just so ... easy. Yay!
  • by z7209 ( 305927 ) on Tuesday September 25, 2001 @01:45PM (#2348012)
    Bravo to Soren: he wants credit for the hard work he did. I 100% agree that it should have been done and is deplorable that it wasn't.

    I would like to point out though that there is a strong argument that it was precisely that hard work rather than intellectual property that was stolen. Bear with me, and no knee-jerk mods please:

    (1) A structure is just that: a structure. If there is intellectual property there it is in the original designer of the structure.

    If this was a structure in nature (such as the human genome or what have you) then there are plenty of people who disagree with it being anyone's IP at all. Unfortunately, in the wisdom of capitalist democracy some people think that they *own* all of our tomatoes.

    But this isn't nature, and someone did plan and write these structures and deserves credit. And Soren deserves plenty too for figuring it out and giving it to the world.

    (2) You could say that his comments are IP, and that's a pretty strong argument. So perhaps there is more than just good old hard work here. However, it's possible these are just titles of the data structure elements, and titles aren't exactly covered by the same IP standards as other IP.

    Oh well. I don't want to take away from the important work, and certainly nothing from Soren's credit. Just some food for thought.

  • Oh come on (Score:1, Insightful)

    by mocm ( 141920 ) on Tuesday September 25, 2001 @01:48PM (#2348045)
    The BSD people did the same thing with the bttv driver. As long as you don't copy verbatim, as NVIDIA did it (they even left the comments in) and claim that this is all your property, you can't really say anything. Some things have to be coded in a certain way, especially drivers. You can't do it differently if you want to access the hardware.
    I haven't seen the code segments they are talking about, so I don't know how far the copying goes, but if it doesn't go beyond what is required by the hardware you can't complain too much. If they learned it from the BSD code how to access the hardware they should mention it somewhere,though. Not that people always do that.

    Marcus
  • by mrbill ( 4993 ) <mrbill@mrbill.net> on Tuesday September 25, 2001 @01:48PM (#2348046) Homepage
    When did Slashdot suddenly become "The Place" to
    complain about license and copyright violations?

    "Oh my god, its a license violation! Get
    Slashdot on the phone IMMEDIATELY!"

    Surprised I havent seen a "do , or we'll post
    about you on slashdot" yet.

    In this case, I agree with the author of the
    code about getting proper credit for his work
    since it was reused - but all of these GPL/
    license/embedded linux stories lately are
    getting tiring.

    BRING BACK THE QUICKIES!
  • by Helmholtz ( 2715 ) on Tuesday September 25, 2001 @01:49PM (#2348070) Homepage
    I really hope this was simply a stupid oversight. I do think that too often people simply take licenses and plagerism very lightly. Often high school papers read like a poorly chopped and pasted encyclopedia, and rarely is anyting done to curtail this.

    IP is important. Copyright is important. Licensing is important. Unfortuantely defenders of all these things are often cast in a bad light because of a perceived association with other groups who misuse these tools.

    Just my 2c

  • by Anonymous Coward on Tuesday September 25, 2001 @01:50PM (#2348078)
    Look, it's this simple: You make your source code publicly and freely (zero cost) available, and at least some people will use it however they damn well want, regardless of what the license says.

    This is a widely recognized fact in the computer book business, where it's known that no matter what license or restrictions you try to apply to your source code that's included with the book, people will treat it as if it's public domain.

    The open/free zealots love to speculate in public about how much of their code has been stolen by MS and other big, bad companies, but how many more incidents like this do you think you would uncover if you ran an enormous pattern-matching check against all the open/free projects? My guess is you'd find quite a few.

  • by ctimes2 ( 38940 ) on Tuesday September 25, 2001 @01:53PM (#2348111) Homepage
    The kernel with the offending code was released today. It was noticed today. Wait for the response before bundling all your (well founded) anger and firing it at the linux crowds. I mean seriously, give 'em a chance to respond to the problem before condeming them for it. I suspect this was an honest mistake by everyone except the guy who tried to slip it in.

    I for one hope they pull the kernel down now and rework it without the offending code, or not put it back up until sorenson is satisfied with the result.

    Ctimes2
  • by gmhowell ( 26755 ) <gmhowell@gmail.com> on Tuesday September 25, 2001 @01:54PM (#2348121) Homepage Journal
    It's probably been stated, but...

    With a name spelled like that, it is quite possible that Søren lives/works outside of the US, and nobody gives two farts about the DMCA where he is.

    Also, I believe that the DMCA only outlawed the breaking of protection or encryption or some such.

  • Re:Er... (Score:5, Insightful)

    by JWhitlock ( 201845 ) <`John-Whitlock' `at' `ieee.org'> on Tuesday September 25, 2001 @02:03PM (#2348209)
    Can someone explain to me *why* a developer would strip off copyright info? It's not like there are licensing fees; the guy just wants his code to be recognized and attributed. It doesn't make much sense to me...could it have been an honest mistake or a coincidence? (I'm not a programmer, so I haven't looked at the two files in question, which would mean nothing to me anyway.)

    I think it was more of a matter of lazy programming than evil intentions. The header files define structures, a few constants, etc. They encode a bit of knowledge, such as data formats and the meaning of that data, but some people wouldn't consider it code. More of an interface description. Of course, if it was a document describing an interface, then most people would automatically consider the copyright to hold...

    It's a bit like other forms of online "theft". Some folks think that if you download the html for a popular site, remove all the text and images, and use the layout on their own site, then it's not theft, because the copyrightable parts (images, text) were removed, and only the framework retained. But, like HTML framework, headers are the work of the programmer, and any desired copyright should be respected.

    Again, I'm in the "simple mistake, fix it, move on" camp, and would like to add that Red Hat and the rest should add a line to their policy about reusing "open source" code, to retain copyrights.

    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's the difference between getting rear-ended by an honest citizen (with or without the insurance companies getting involved), vs. an asshole celebrity who thinks the little people should take their licks and not annoy the "important people" with trivial matters like car bills and possible medical expenses.

  • Re:And yet... (Score:0, Insightful)

    by Nail ( 1195 ) on Tuesday September 25, 2001 @02:03PM (#2348213) Homepage
    Not that it is material to this argument, but how the hell would you know?

    Even if you are/were an MS employee, am I to believe you have read all of the source code that is/was Windows and can authoritatively say that it is all properly attributed?

    Please!

    As you state, involving MS in this is LAME as it has nothing at all to do with them, but so is your defense of MS (especially since it doesn't apply). You probably should have submitted your second paragraph alone.
  • Re:Er... (Score:3, Insightful)

    by Alien54 ( 180860 ) on Tuesday September 25, 2001 @02:06PM (#2348231) Journal
    Can someone explain to me *why* a developer would strip off copyright info

    For it to make sense, you have to accept the idea that there may be people who seem to be part of your community, but are not, because they do not share your sense of ethics and fairplay.

    If you have a couple of newbie developers who want to show off their programming skilz and want to short cut the process of doing the work themselves. Then it is easy to cut'n'paste and hope you don't get caught.

    In this case, because of the conscious choice that has to be made when you select to do a cut'n'paste, you have to assume a conscious choice was made to omit the copyright data. You certainly would not want an unconscious choice being made.

    The response to this by the original author is very generous, he just needs his work properly credited.

    But honestly, all the other work of those developers is now under suspicion. It will have to be gone over to make sure they didn't do this someplace else. This is a real drag for RedHat, and the crew that has to go pick through the work. These guys also have to develop a sense of ethics and fairplay.

    Maybe they have a future at MS... [joke!]

    ;-)

  • Copied? (Score:2, Insightful)

    by Todd Knarr ( 15451 ) on Tuesday September 25, 2001 @02:07PM (#2348243) Homepage

    The structures do look similar, and if the Linux headers were copied then I hope they smack the guy responsible and reinstate the copyright notice. If the files were cut-n-paste copied it should be possible to nail this down, and copying something this cut-and-dried is stupid enough to merit a serious LARTing.

    OTOH, if you give two programmers the same specs for a data structure and they have to follow the same coding and indentation style, you're likely to get two very similar structures, right down to the names in obvious cases, even if they don't copy each others' work. The fields themselves have to be specific types in a specific order because that's the way it's laid out on disk, and the coding style's pretty much fixed by the Linux kernel coding standards, and things like dummy_1, dummy_2 for filler fields are pretty standard (those're what I'd pick without seeing any other code, for example), how much variation in the structures is actually possible?

    For a real-world example, look at any two independent implementations of the CRC32 algorithm. They're probably identical in everything but some variable names and indentation, because there's only one really fast way of writing that algorithm and everybody uses it automatically. Nigh-identical code, no copying done or required to get it.

  • by Anonymous Coward on Tuesday September 25, 2001 @02:11PM (#2348271)
    But we have to boycott linux for doing this! EVERYONE BOYCOTT LINUX!! Linux steals source from BSD and lies it is its own, this must mean BSD is better!!! EVERYONE MOVE TO BSD NOW!!!!
  • Re:And yet... (Score:4, Insightful)

    by DarkZero ( 516460 ) on Tuesday September 25, 2001 @02:12PM (#2348286)
    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.

    I think the main difference here is that we actually have confidence that this problem will be fixed, which is a confidence that we would not have if Microsoft had been the perpetrator. If Microsoft had done it, we'd be out for blood because we'd HAVE to be out for blood in order to get a result. We'd have to be screaming to the heavens to get any form of popular media possible to listen to us, in order to convince Microsoft to do the right thing. Conversely, we trust Linux developers, and we're confident that they'll do the right thing in the end, so we really have no reason to be out for blood.

  • by AndrewHowe ( 60826 ) on Tuesday September 25, 2001 @02:28PM (#2348410)
    "It was plagiarism -- essentially they took some of Soren's parts (which were free for the taking), filed off the serial numbers, then stamped their own on."
    I can't agree with you here. Søren's code was not free for the taking. If it was in the public domain, it would be free for the taking. But this code was not in the public domain, it was distributed under the BSD license. It's only free to use if you abide by the terms of the license!
    Imagine the uproar if I went around using GPL'd code in my proprietary applications, as if it was "free for the taking"!
  • by p3d0 ( 42270 ) on Tuesday September 25, 2001 @02:45PM (#2348566)
    Ok, I have had it. From this point on, I'm going to moderate these "Slashdot hypocricy" posts as redundant. It has been said a million times, and it's true, but it's not news to anyone. If you have actual insightful comments, make them.
  • Re:Er... (Score:3, Insightful)

    by TheCarp ( 96830 ) <sjc@caCOMMArpanet.net minus punct> on Tuesday September 25, 2001 @02:47PM (#2348578) Homepage
    Perhaps they didn't strip it off... perhaps they just didn't opy it.

    You know how it is... your working on somthing, you stop to consider how your going to do this next peice... you seem some code that will drop in fine... then you see a little more...

    maybe they just never thought to go back and grab the copyright. Really... its such a little thing. The code works without it. Very easy to forget, especially when your involved in a real problem (like coding or debugging or just plain testing).

    "Never attribute to malice that which can be adequetly explained by stupidity". I think this can adequetly be explained by stupidity... its really a pretty simple oversight for a programmer (if not a lawyer)

    -Steve
  • by defile ( 1059 ) on Tuesday September 25, 2001 @02:48PM (#2348586) Homepage Journal

    I just said that we don't know the full story.

    Any number of things could have happened that led the developer to ultimately violate the BSD license without being aware of it.

    Ruling out the possibility is completely naive. Somehow I don't think stealing BSD code to include into Linux is all that foolproof of a devious plan -- leading me to believe that it's much more likely an accident. What possible motive could he have had?

    Do you really think the developer said to himself "It is clearly worth risking my reputation by violating the easy-to-comply-with BSD license for my own personal gain of giving code away for free!"?

    So yes, 10:1 that this was an accident. I'm not ruling out the possibility of malice, just that it's a lot less plausible.

  • by ReelOddeeo ( 115880 ) on Tuesday September 25, 2001 @03:00PM (#2348673)
    I haven't looked at the two sources in question, so I can't comment about how "close" they appear to be to each other.

    Suppose Bob writes an open source program. Then along comes John and examines Bob's program, and learns crucial things from it. Such as how the frobulator encoder works. John then writes his own program which has a frobulator encoder, whose concepts are influenced heavily from what he learned by studying Bob's work.

    At what point is John stealing Bob's work?

    • When he studies Bob's source? (Thus carrying away intellectual property in his head! Worse, maybe even violating copyright from inside his brain.)
    • When he uses Bob's concepts? Especially if Bob worked hard to come up with some novel approach. Or if a significant part of Bob's effort was laying out the structure in a particular way?
    • If he uses the same identifiers, or identifier structure as Bob did? (What if John types in his own original code?)
    • If he simply cut&paste's a few lines from Bob's code. (How many? 1 line, 5 lines, 5000 lines?)

    This is a loaded question. (Just like: When does life begin, at conception or birth, or where inbetween.) Except our question here isn't quite as emotionally charged. (Well, maybe it is for us.)

    Back in 1979, I would help other students with their programs. Sometimes after making sure they understood the algorithm, and were writing the code, we would end up with what basically amounts to my design. Should I just make sure that I use different variable names? Should I introduce frivolous structural changes to the program so the instructor doesn't think someone is cheating? (Of course, I became so notorious with my instructors that this problem never came up -- they knew me well enough.) And the other student did end up actually accomplishing the learning.

    Returning to my above example. Should John make sure to rename the members of the structure? Alter it stylistically? After all, Bob did the hard gruntwork. In some sense Bob should get credit. What if Bob doesn't want to license or give any permission? Can Bob withhold the know how of how the frobulator encoder works -- especially if it is embedded within open source?

    Cearly, the ideal thing would be for John to contact Bob. But this takes time and effort. If John had simply renamed identifiers and altered the style, would an issue ever be raised on Slashdot in the future? (Even if Bob someday examined John's code and noticed the similarity, of concepts, if not actual cut&paste lines?)

    And as I first stated, I haven't examined the sources, and this may be a very clear case of cut&past without any credit given. These questions are intended to be hypothetical. Any resemblance to actual persons or events is purely cooincidental and unintentional.
  • Re:And yet... (Score:3, Insightful)

    by bero-rh ( 98815 ) <{bero} {at} {redhat.com}> on Tuesday September 25, 2001 @03:02PM (#2348686) Homepage
    Don't get me wrong, if they did copy the code and remove the copyright, that's a bad thing(tm).
    But Microsoft doing the same thing would be worse.
    Taking some open source code and releasing it as open source forgetting about the credits is not exactly the same as
    taking open source code proprietary and not even bothering to mention where it was taken from.
  • by 3247 ( 161794 ) on Tuesday September 25, 2001 @03:05PM (#2348699) Homepage
    "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."

    This is not what copyright laws protect. Copyright laws protect "works of authorship", i.e. some kind of individual creation. Facts, such as the information how some information is organized on disk or even algorithms are not protected (hence the whole patent issue), at least not by copyright law. (See e.g. Copyright FAQ - What is copyrightable? [mit.edu].)

    If someone would create a header file from the same information, it would probably look extremly similar. This is a good indication that the header file is not a "work of authorship".

    On the other hand, if the author used something - be it code or only information - from Søren, it would at least be fair to give proper credit.

  • by mperrin ( 41687 ) on Tuesday September 25, 2001 @03:05PM (#2348701) Homepage
    (1) A structure is just that: a structure.

    Au contraire. Compare the following two snippets of code, taken arbitrarily from one of the other raid header files in the kernel:



    struct m {
    int a;
    int b;
    kdev_t c;
    int d;

    /*
    * State bits:
    */
    int e;
    int f;
    int g;

    int h;
    };

    And:


    struct mirror_info {
    int number;
    int raid_disk;
    kdev_t dev;
    int head_position;

    /*
    * State bits:
    */
    int operational;
    int write_only;
    int spare;

    int used_slot;
    };



    Those are the same exact structure, no? Exact same data types and everything. I even left in the comments. Now, which of those would you rather have to program with? A structure is *not* just a structure; different source codes for the same structure can be of radically different usefulness. There's definitely intellectual property there.

  • Re:Oh come on... (Score:2, Insightful)

    by Blowit ( 415131 ) on Tuesday September 25, 2001 @03:12PM (#2348746)
    > In fact, has anyone heard anything from the responsible linux developers about this? It seems they've already been tried and convicted being evil, stealing code and "stripping off copyright". Although the latter might me legally true, I doubt this was their intention.

    I don't know about you, but if these were responsible linux developers, they would have left the header file intact and appended their comments to the file pertaining to the GPL as well. If you strip out information that is requested/demanded not to be removed, then the developers/code stealers are responsible for their actions and must be dealt with accordingly. Re add the headers or face copywrite infringment.
  • Re:And yet... (Score:5, Insightful)

    by lupercalia ( 310569 ) on Tuesday September 25, 2001 @03:14PM (#2348757)
    This is clearly the fault of just one PROGRAMMER.

    Does your boss see all the code you write, and if s/he did would s/he recognize BSD ATA code? Mine sure wouldn't.
  • Re:And yet... (Score:2, Insightful)

    by syates21 ( 78378 ) on Tuesday September 25, 2001 @03:20PM (#2348802)
    Actually it is exactly the same.

    Both violate copyright in exactly the same way. You just happen to "like" one way better than another.
  • by Quixotic Raindrop ( 443129 ) on Tuesday September 25, 2001 @03:40PM (#2348917) Journal

    Maybe its me, but something seems kinda strange with this situation. What he seems to be saying is "Reverse engineering is ok, but don't reverse engineer my code."

    He didn't say that reverse engineering is okay only if he does it; he's saying that you can't use his reverse engineering, verbatim, without giving him credit for it. In fact, there wouldn't be any issue here at all if the ATA code monkeys in this case reverse engineered it themselves. They didn't do that, apparently.

  • by Andy ( 2990 ) on Tuesday September 25, 2001 @04:16PM (#2349177)
    Playing fast and loose with contributions (or in this case plagarized code) is something that Open Source adherents do in the name of speed and "getting something done". The FSF is far more diligent in documenting contributions and making sure that copyright is signed over to prevent things like this from happening.
  • by Eric Seppanen ( 79060 ) on Tuesday September 25, 2001 @04:19PM (#2349205)
    While it sure would be nice, and right, to give credit, I'm not convinced that it's legally necessary.

    It seems likely to be that header file structure definitions are a functional description of how a piece of hardware works. And if that's the case, that information is no more copyrightable than the telephone book. And if it's not copyrightable, it's perfectly legal to remove the credits and license and redistribute however you want. Not right, mind you, but legal.

    Looks to me like he's screaming about copyright infringement and/or license violations without understanding the limited scope of copyright.

  • by jd ( 1658 ) <[moc.oohay] [ta] [kapimi]> on Tuesday September 25, 2001 @04:25PM (#2349220) Homepage Journal
    The BSD license permits the obtainer of the code to basically do what they like. Which implies that that would include, say, filing off the copyright and republishing the code under a different license.


    On the one hand, I feel that Soron deserves the credit for his work. Reverse-engineering is NOT trivial, and has been made much more difficult under recent US legislation (eg: the DMCA).


    On the other hand, it's hard to villify the Red Hat coders for doing something the license permits, however unethical.


    This is one reason I strongly support the GPL. It leaves no grey areas of relicensing and "IP theft".


    However, Soron prefers the BSD license. This leaves two choices - debug the license, or accept that things like this can (and probably will) happen, precicely for the reasons I sympathise with him. It IS hard work, and copying is much easier than creating.


    My last thought on this is that the notion of "IP theft", with "Open Source" code, should be impossible. We are either all working for a unified goal, or we aren't. If we aren't, then the very notion of "Open Source" is ripped to shreds, and the Bazaar is crushed by the weight of the Cathedral.


    On the other hand, if we ARE working to the same ends, then there is no Intellectual Property, and thus there can be no theft of it. If we have abolished private, proprietary notions, in favour of an open, shared environ, then there is no property to steal. There is only a shared resource to access.


    And this, dear readers, is the crux of all such arguments. Until people are consistent within their own minds on the issue of ownership, and until some sort of consensus is reached, you can expect the perils of IP to get worse, not better.

  • by pjrc ( 134994 ) <paul@pjrc.com> on Tuesday September 25, 2001 @04:28PM (#2349234) Homepage Journal
    A couple days ago, I started some work to port Nullsoft's NSIS Win32 Installer Builder [nullsoft.com] to a native linux app (that builds win32 installers). After converting several HANDLEs into FILE*'rs and just ifdef'ing out a few difficult bits that I don't care about, I ran into all sorts of constants that get defined somewhere in the giant mess that is #include<windows.h>. Lots of things like MB_OKCANCEL, MB_YESNOCANCEL, SW_SHOWMAXIMIZED, IDCANCEL, HOTKEYF_ALT, FILE_ATTRIBUTE_ARCHIVE, etc.

    After a few grim moments of comtemplating actually buying and installing Visual C++, it occured to me that these things are probably defined somewhere in the mingw stuff. Sure enough, I found them all in various headers within the mingw package. I copied all these (and a bunch of other little win32 kludges) into a win32stuff.h file that I started including in the various .cpp files.

    So did I cross the line? I copied a few dozen lines from various header files in the mingw package (I didn't mention in the file that I got them from the mingw project, but I probably should before I release the port to anyone). Did the the mingw guys copy this stuff from somewhere in all the stuff included by #include <windows.h> ??

    Ok, I'll admit that a bit struct that represents the on-disk format of something that was reverse engineered is a bit more substantial than a bunch of constants... but calling it "IP Theft" seems to be leaping to some strong conclusions. Even if both programmers did their reverse engineering independently, aside from using different names, there's not a lot of different ways the struct could look. Even if the linux developer did look at the BSD header file to learn the data formats, how different could one expect his code to possibly be ?? If it's an algorithm with some creative implementation, I can see the accusation, but over a header file that simply documents simple facts seems a bit much. Sure, it can be hard work to get those facts by reverse engineering, but still, the "IP Theft" is simple facts (not really protected by copyright, in my limited understanding of copyright law... IANAL).

    And finally, if Søren really does hope "an amicable solution can be reached", why's he turning this into a bunch of bad PR for linux and redhat ?? It's sounds to me like a case of getting mad and posting flames instead of cooling off for a day and thinking it through more carefully.

    As far as my porting work for Nullsoft's really cool (SuperPiMP) installer, I hit a big block of very win32 specific code, CEXEBuild::do_add_file at the end of script.cpp. Unlike many of the other bits that I ifdef'd out, this is the one that actually puts the files into the install image, so I can't just chop it off. I will need to completely rewrite this using unix/posix APIs, probably using C library regex patterns instead of whatever wildcard matching win32's FindFirstFile does. I'll probably get back to porting NSIS in a week or two... I might even try rebooting and running it in windows a few times! And, I'm not going to lose any sleep over copying a few dozen constants out of someone else's header files.

  • Re:And yet... (Score:5, Insightful)

    by Jabes ( 238775 ) on Tuesday September 25, 2001 @04:30PM (#2349244) Homepage
    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.

    I don't know about Windows 2000, but I've got RTM Windows XP here. On the CD in the root directory is a README file. Here's some of it...

    Acknowledgements Portions of this product are based in part on the work of Mark H. Colburn and sponsored by the USENIX Association. Copyright © 1989 Mark H. Colburn. All rights reserved.

    This product includes software developed by the University of California, Berkeley and its contributors.

    Portions of this product are based in part on the work of the Regents of the University of California, Berkeley and its contributors. Because Microsoft has included the Regents of the University of California, Berkeley, software in this product, Microsoft is required to include the following text that accompanied such software:

    Copyright © 1985, 1988 Regents of the University of California. All rights reserved.

    Redistribution and use in source and binary forms are permitted provided that the above copyright notice and this paragraph are duplicated in all such forms and that any documentation, advertising materials, and other materials related to such distribution and use acknowledge that the software was developed by the University of California, Berkeley. The name of the University may not be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.

    Portions of this product are based in part on the work of Greg Roelofs. Because Microsoft has included the Greg Roelofs software in this product, Microsoft is required to include the following text that accompanied such software:

    Copyright © 1998-1999 Greg Roelofs. All rights reserved.

    This software is provided "as is," without warranty of any kind, express or implied. In no event shall the author or contributors be held liable for any damages arising in any way from the use of this software.

    Permission is granted to anyone to use this software for any purpose, including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:

    Redistributions of source code must retain the above copyright notice, disclaimer, and this list of conditions.

    Redistributions in binary form must reproduce the above copyright notice, disclaimer, and this list of conditions in the documentation and/or other materials provided with the distribution. All advertising materials mentioning features or use of this software must display the following acknowledgment:

    This product includes software developed by Greg Roelofs and contributors for the book, PNG: The Definitive Guide, published by O'Reilly and Associates.

    Portions of this software are based in part on the work of Hewlett-Packard Company. Because Microsoft has included the Hewlett-Packard Company software in this product, Microsoft is required to include the following text that accompanied such software:

    Copyright © 1994 Hewlett-Packard Company

    Permission to use, copy, modify, distribute and sell this software and its documentation for any purpose is hereby granted without fee, provided that the above copyright notice appear in all copies and that both that copyright notice and this permission notice appear in supporting documentation. Hewlett-Packard Company makes no representations about the suitability of this software for any purpose. It is provided "as is" without express or implied warranty.

    Portions of this software are based in part on the work of the University of Southern California. Because Microsoft has included the University of Southern California software in this product, Microsoft is required to include the following text that accompanied such software:

    Copyright © 1996 by the University of Southern California. All rights reserved.

    Permission to use, copy, modify, and distribute this software and its documentation in source and binary forms for any purpose and without fee is hereby granted, provided that both the above copyright notice and this permission notice appear in all copies - and that any documentation, advertising materials, and other materials related to such distribution and use acknowledge that the software was developed in part by the University of Southern California, Information Sciences Institute. The name of the University may not be used to endorse or promote products derived from this software without specific prior written permission.

    THE UNIVERSITY OF SOUTHERN CALIFORNIA makes no representations about the suitability of this software for any purpose. THIS SOFTWARE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.

    Portions of this software are based in part on the work of Luigi Rizzo. Because Microsoft has included the Luigi Rizzo software in this product, Microsoft is required to include the following text that accompanied such software:

    © 1997-98 Luigi Rizzo (luigi@iet.unipi.it)

    Portions derived from code by Phil Karn (karn@ka9q.ampr.org), Robert Morelos-Zaragoza (robert@spectra.eng.hawaii.edu) and Hari Thirumoorthy (harit@spectra.eng.hawaii.edu), Aug 1995

    Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

    Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 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.

    THIS SOFTWARE IS PROVIDED BY THE AUTHORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

    Portions of this software are based in part on the work of Massachusetts Institute of Technology. Because Microsoft has included the Massachusetts Institute of Technology software in this product, Microsoft is required to include the following text that accompanied such software:

    Copyright © 1989,1990 by the Massachusetts Institute of Technology. All Rights Reserved.

    WITHIN THAT CONSTRAINT, permission to use, copy, modify, and distribute this software and its documentation for any purpose and without fee is hereby granted, provided that the above copyright notice appear in all copies and that both that copyright notice and this permission notice appear in supporting documentation, and that the name of M.I.T. not be used in advertising or publicity pertaining to distribution of the software without specific, written prior permission. M.I.T. makes no representations about the suitability of this software for any purpose. It is provided "as is" without express or implied warranty.

    Under U.S. law, this software may not be exported outside the US without license from the U.S. Commerce department.

    Portions of this software are based in part on the work of Regents of The University of Michigan. Because Microsoft has included the Regents of The University of Michigan software in this product, Microsoft is required to include the following text that accompanied such software:

    Copyright © 1995,1996 Regents of The University of Michigan. All Rights Reserved.

    Permission to use, copy, modify, and distribute this software and its documentation for any purpose and without fee is hereby granted, provided that the above copyright notice appears in all copies and that both that copyright notice and this permission notice appear in supporting documentation, and that the name of The University of Michigan not be used in advertising or publicity pertaining to distribution of the software without specific, written prior permission. This software is supplied as is without expressed or implied warranties of any kind.

  • by mj6798 ( 514047 ) on Tuesday September 25, 2001 @04:36PM (#2349290)
    By that argument, it would have been impossible to build Linux or Wine, because both needed to use structures whose fields had names compatible with UNIX and Windows.

    Generally, such names are viewed as not being creative, and hence creating compatible software is possible. I very much hope your view won't start getting adopted because it would endanger almost all open source efforts.

  • by Jboy_24 ( 88864 ) on Tuesday September 25, 2001 @04:50PM (#2349370) Homepage
    I agree with you that structures can have IP inside of them, but I think you have drawn up a straw man with your example. If perhaps the other code looked like

    struct cloneDriveData {
    kdev_t typeD;
    int16 positionOfReader;
    int16 sysId;
    int16 controllerId;

    /* boolean bits */

    boolean notReadOnly;
    boolean extraNotUsed;
    boolean working;
    struct mirror_info {
    int number;
    int raid_disk;
    kdev_t dev;
    int head_position;

    /*
    * State bits:
    */
    int operational;
    int write_only;
    int spare;

    Now you ask, did I copy your IP or did I reverse engineer this?

    If I just finished reverse engineering this and found that a very simular operating system, with code already developed and working, had been published I think it would be irresponsible for me to continue with my naming convention. Why? Because it would only make it more dificult for drivers to be writen if for every simular device we had vastly different names for it. I would just use the other guys naming style and be done with it.

    If I just copied you spec and renamed everything, then how are you going to prove it? Because since there is only one structure that could be derived from the device that would work (as it is the original device author's) you would assume an indepenant attempt to reverse engineer would come up with nearly and idential structure, save for the names of the variables. So if you just change the variable names, your free from the IP claim.

    Going back to the first case, it now seems obvious that if you want to get credit for your work, you have to create vastly different naming conventions and interject your personal style to the point that it supercedes any usablility or perfomance issues otherwise claims of 'copying' will be made.

    So remember when you create your next program, scan all the available code that is simular and make sure your naming conventions and coding style are uniquely identifiable. You can do this by obfusticating your variables and write at least wrappers for libararies so that your calls will be different. Of course you will have to do this AFTER you have coded, because you shouldn't be looking at other peoples code before you start or else your work would just be a copy of theirs.

  • by georgeb ( 472989 ) on Tuesday September 25, 2001 @04:51PM (#2349381) Journal
    Hope this situation gets fixed. And I hope this was an accient merely. If it isn't, then we're facing a problem.

    The community cannot possibly get any respect from the world if it's members do not respect plain simple licences. We need to obey other people's licencing habbits.
  • by talks_to_birds ( 2488 ) on Tuesday September 25, 2001 @05:03PM (#2349466) Homepage Journal
    ...the most succinct analysis of this whole big buzz:
    • "Even if both programmers did their reverse engineering independently, aside from using different names, there's not a lot of different ways the struct could look. Even if the linux developer did look at the BSD header file to learn the data formats, how different could one expect his code to possibly be?? If it's an algorithm with some creative implementation, I can see the accusation, but over a header file that simply documents simple facts seems a bit much. Sure, it can be hard work to get those facts by reverse engineering, but still, the "IP Theft" is simple facts (not really protected by copyright, in my limited understanding of copyright law... IANAL).

      And finally, if Søren really does hope "an amicable solution can be reached", why's he turning this into a bunch of bad PR for linux and redhat ?? It's sounds to me like a case of getting mad and posting flames instead of cooling off for a day and thinking it through more carefully...."

    And of course /. gets to run an "article" that generates hundreds of inflamed posts.

    Nothin' like mass posts to keep the advertising rates up...

    t_t_b

  • by crucini ( 98210 ) on Tuesday September 25, 2001 @05:27PM (#2349631)
    It's been said a million times, but that doesn't make it true. What these anti-hypocrites need to learn is:
    1. There is more than one person posting on slashdot. If Alice says the weather is cold, and Bob says the weather is hot, this does not make Alice and Bob hypocrites.
    2. Things change. If Alice says it's hot, and tomorrow Alice says it's cold, she is not necessarily a hypocrite. Maybe it got colder.
    3. People change. If Alice says it's hot, then five minutes later she says it's cold, and the temperature is constant, maybe her perception of temperature has changed.
  • No! (Score:2, Insightful)

    by jasonzzz ( 415795 ) on Tuesday September 25, 2001 @06:01PM (#2349863) Homepage
    Read it again - this does not qualify as "work of authorship". It's merely a collation of facts or maybe discovery. There is no copyright on things that you discover. You can't collate a list of songs and call that an original work as much as you can collate a list of phone numbers or cataloging how a particular interface works.

    There is no doubt to Soren's claim that he did lots of work, but it's not enough to get a license, and neither does it qualify as IP... he deserves credit for the work of getting it, but bully to actually claiming "original" work in putting together the interface description.

    Note that he *did not* invent the interface, he catalogued its behaviour. Someone else invented the interface should get the credit of IP and licensing, etc.
  • Re:Er... (Score:2, Insightful)

    by error0x100 ( 516413 ) on Tuesday September 25, 2001 @07:26PM (#2350276)

    I think you're being rather unfair, jumping to conclusions with no evidence whatsoever that this was deliberate.

    This could easily be a mistake. As a programmer myself, I can imagine I might easily make a mistake like that; when you're coding, you tend to concentrate and focus on the *code*, on the technical problem itself and its solution, and getting the stuff to work. I don't think about stuff like the copyright info etc when I program - its not part of the problem I'm focusing on, its not "real stuff", its almost like some "unnecessary administrative fluff" that has nothing to do with the actual task at hand, its an overhead. I often forget in my own code to put the copyright notices in, and none of the other programmers at work ever remember to put the works copyright notice in at all - I usually run round adding that to all the source code files afterwards, in one go near the end of a project. Programmers aren't by default thinking about "administrative overhead" stuff like software licenses, they're thinking about the problem, about structs/classes/functions/algorithms etc. Heck, many programmers don't even think much about putting human-readable comments in the code. So it seems to me far more likely that this person opened the original file and cut-n-paste the *struct*, possibly without even reading the "administrative fluff" (programmers usually being in a hurry to get something working). I doubt they copied the file and physically removed the copyright notice. Its much more likely it was the other way round, that the copyright notice never even got there because only the struct was copied over. Perhaps the guy intended to put the copyright notice back but forgot by getting distracted by the task of getting things to work.

    Programmers very often work under unreasonably tight deadlines too, compounding the problem. Many programmers I know code "in a hurry".

    Yes, programmers should learn that they need to think about intellectual property issues. But almost no programmers *by default* gives consideration to IP issues, that needs to be taught, and the majority of computer courses I know of either don't treat the issue at all, or have a very tiny "token" course on IP issues.

    I doubt this wasn't an honest mistake, given the information I have I would give the guy the benefit of the doubt in this. I think its unfair to make public accusations on /. as if they were fact. Neither you nor I know for sure; it just seems the most *likely* to me that this was not foulplay but ignorance/carelessness. You act as if you *know* thats what happened!?! Not only is it pure conjecture, but you then go so far as to extend that conjecture to apply to ALL related developers, which is quite ridiculous. Guilt by association. Be fair; apply the "innocent until proven guilty" reasoning. Peoples lives can be ruined by someone making false public accusations that never get proven (usually paedophile-related issues, but the same principle applies in general), so just hope that should you ever fall into a situation where you've made a mistake and it doesn't make you look good that nobody like you is around publicly claiming you're guilty.

  • by mmol_6453 ( 231450 ) <short DOT circui ... OT grnet DOT com> on Tuesday September 25, 2001 @09:07PM (#2350697) Homepage Journal
    Notice that he justified his "me too" stance.

    His point was, and I quote linux developers need to give props where props is due.

    And I too, agree. Why do we support the GPL being enforced, and then turn around dis a different open-source license? I'm ashamed.

    I'm not one of the people whose decisions caused this (indeed, I'm just a Senior in High School), but any action by any member of a community reflects on the other members of that cummunity. This also applies to the open-source community.

    In my opinion, this needs to be persued, to show that open-source developers stick to their guns when it comes to their licenses.
  • Aww, cmon (Score:1, Insightful)

    by Anonymous Coward on Tuesday September 25, 2001 @11:15PM (#2351086)
    This is almost certainly a simple error. The files in the example were obviously chosen for shock value.

    They're just a couple of data structures. you have to give the elements meaningful names, and there arent many choices.

    Im sure the attrib will be fixed. Now, lets not infight and get on with developing two decent Open Source OSes.
  • Re: And yet... (Score:2, Insightful)

    by Inthewire ( 521207 ) on Tuesday September 25, 2001 @11:29PM (#2351138)
    Really? Hrm...seems to be a taint of the we find and fix all flaws in record time belief that Open Source advocates hold so dear...maybe there are things that can't be done by the community.
    Yes, I know record time isn't the same as instantly.
  • Re: And yet... (Score:3, Insightful)

    by Zardus ( 464755 ) <yans@yancomm.net> on Tuesday September 25, 2001 @11:40PM (#2351163) Homepage Journal
    What you just reffered to deals with software, not source copying. However, if you wanna apply that to this:

    2 days ago Linux Kernel 2.4.10 was released. Already this problem has been caught and is being dealt with. I would say that that's pretty dang quick, wouldn't you? Imagine that a close-source company released some binary files that had code in it that they had "stolen". How long do you think it'd be before that problem was revealed? Definitely not 2 days.
  • by Anonymous Coward on Wednesday September 26, 2001 @01:40AM (#2351411)
    Andre,

    I think it is unfair to punish BSD for mistakes
    of one pimple-faced undernurished infantile retard
    coming by the nick of Nik. He is not representative
    of BSD as a whole. I worked with a number of BSD
    people and all of them were pretty decent.

    -- Pete

  • by Anonymous Coward on Wednesday September 26, 2001 @06:41AM (#2351751)
    As painful s it may be to some people, the truth is that BSD really s dying. This Søren guy realizes it, leading to his pathological rage. It is somewhat understandable, sort of like he bet all his money on black and the wheel came up red. Nvertheless, Søren's public temper tantrum is disgraceful. Søren's duplicity in this manner is a blot on the BSD community at large. Although the BSD community may be in decline with respect to marketshare and user base, it must not be allowed to decline in civility.
  • by aphor ( 99965 ) on Wednesday September 26, 2001 @09:40AM (#2352142) Journal

    BSD is not dying. The KAME IPv6 stack, as integrated into BSD OS's, for prima facie example, is the reference for how all other OS will implement IPv6. BSD is already (and always has been) as dead as it is going to get: note the sarcasm.

A list is only as strong as its weakest link. -- Don Knuth

Working...