Slashdot Mirror


Claimed Proof That UNIX Code Was Copied Into Linux

walterbyrd writes "SCO's ex-CEO's brother, a lawyer named Kevin McBride, has finally revealed some of the UNIX code that SCO claimed was copied into Linux. Scroll down to the comments where it reads: 'SCO submitted a very material amount of literal copying from UNIX to Linux in the SCO v. IBM case. For example, see the following excerpts from SCO's evidence submission in Dec. 2005 in the SCO v. IBM case:' There are a number of links to PDF files containing UNIX code that SCO claimed was copied into Linux (until they lost the battle by losing ownership of UNIX)." Many of the snippets I looked at are pretty generic. Others, like this one (PDF), would require an extremely liberal view of the term "copy and paste."

24 of 578 comments (clear)

  1. Re:First post by Anonymous Coward · · Score: 3, Insightful

    Yeah, because open-source developers can just see and copy the proprietary closed-source code - oh wait...

  2. Re:What's so liberal about it? by Nikker · · Score: 4, Insightful

    Nah it's a joke. The only thing highlighted were the function / subroutine definitions and not even across the board. Just because 2 programs have hooks or functions called "ReadX" does not mean there was any copying involved. They even highlighted include statements and data structures. It's almost like suing an author for starting with "Once upon a time". I guess they just figured no judge would be able to clue in on this kind of stuff and they would be able to sift through junk like this for decades. Hell they could use the same reasoning against pretty much any software and win if that is all the proof he needed. I guess Unix was truly the precursor to all the code ever written so Novell can truly say "all your base are belong to us".

    --
    A loop, by its nature, continues. If that didn't make sense, start reading this sentence again.
  3. Oh Good by bky1701 · · Score: 3, Insightful

    More news about imaginary property. How much time and money does our society waste on propping up this outdated concept that you can own an idea? "#include " constitutes copy and pasting? I guess every program on earth violates the copyright of the guy who first wrote "int main(", and whoever started the convention of naming C++ files cpp or cxx should be hiring a lawyer about now. Money is to be made.

    1. Re:Oh Good by bky1701 · · Score: 4, Insightful

      "It's not an "outdated idea". If you really think that copyrights and patents are a bad idea, you need only look at countries where they did not exist -- like Russia during its peak of Socialist power -- to see how that works out economically. Hint: it doesn't. "

      You're seriously assigning all the problems with the Soviet economy to their lack of copyright? You, sir, take the cake. That's the most absurd statement in support of copyright I have ever heard.

      "The idea being that those who ignore (or don't know) their history, will be doomed to repeat it. And you obviously don't know your history, or I am about as certain as the sun will come up tomorrow that you would change your mind on that issue. "

      Given your interpretation of the history of economics is rather... I'll be nice and say 'intriguing', I guess I have to agree that I don't know it. I don't see how the lack of copyright led to Stalin screwing the country over, but I guess I am just dense.

      "The fact that some laws have been corrupted, like the duration of copyrights for example, is not justification for elimination of all such laws. Sure, it needs to put back the way it was, but not eliminated."

      But the fact they are built on the concept of preventing free flow of information - and the fact they can no longer be enforced even by companies with more power than some countries - DOES make copyright and patents outdated. That ship has sailed.

      "Copyrights and patents were established for the public good, and believe me, in the places where there are none, there is also damned little public good."

      The entire world prior to about the 18th century begs to differ with you. On the other hand, I don't know history, so don't listen to me; nothing of merit was produced before copyright! The Greek epics, countless thousands of books, paintings, songs, architecture, machine designs, all came to exist about 300 years ago, right around the time copyright was invented. Not one before it was established. Thank you for setting the record straight!

    2. Re:Oh Good by Anonymous Coward · · Score: 5, Insightful

      Sorry, Jane. You are wrong. Not your fault, really, since you are just repeating what you've been told many times over the years. But it is wrong.

      Your appeal to socialist Russia as an example of why copyrights are needed is laughable. The Soviet system failed mainly for many reasons, but lack of copyright recognition wasn't one of them.

      The fact is that the idea that copyrights and patents are a benefit to society is based on no evidence at all. It is one of those ideas that were accepted for a long time without being examined in any detail. There are many examples of places and times where copyrights and patents did not exist and innovation there certainly was not harmed, and careful studies have found pretty good evidence that innovation was helped by their absence. The site techdirt.com discusses these issues regularly, frequently pointing to academic research in peer reviewed journals so you can check out the research yourself if you don't trust the reporting. But you don't have to depend only on research. There are examples today where industries thrive in the absence of copyrights or patents. One easy to understand example is the fashion business. No copyrights or patents. Lots of copying, yet good money is being made by many players. And there's certainly no lack innovation there.

      It certainly is true that eliminating copyrights and patents would be kind of disruptive, since some large businesses have come to depend on the artifical monopoly authorized by copyright and patents. But there is reason to believe that we would be better off now had they never been invented. Whether the disruption that would come from eliminating them is reason enough to keep them is questionable. I am pretty sure we would quickly adjust to their absence if they were abolished tomorrow, and be better off, on the whole. Of course, that is unlikely to happen because our government is bought and paid for by the businesses that depend on copyrights and patents, so we will have to suffer the burden of these government-granted monopolies for some considerable time to come.

    3. Re:Oh Good by ignavus · · Score: 3, Insightful

      "It's not an "outdated idea". If you really think that copyrights and patents are a bad idea, you need only look at countries where they did not exist -- like Russia during its peak of Socialist power -- to see how that works out economically. Hint: it doesn't. "

      A wild thought. It is *JUST* possible that some other aspect of communism, besides the lack of copyright, was responsible for the slow rate of development in the Soviet Union.

      Your reasoning would lead us to conclude that the high rate of alcoholism and consumption of vodka was caused by the lack of copyrights ... and that Mr Gorbachev need only turn back the clock, implement a proper copyright system, and become a Hero of the Soviet Union by saving them all from economic perdition.

      --
      I am anarch of all I survey.
  4. Re:SCO! by lostmongoose · · Score: 3, Insightful

    How do you kill that which is already dead?

  5. Why the fuck are we wasting more time on this by haruchai · · Score: 4, Insightful

    this fiaSCO has been running on for nearly 8 years - what the hell is up with the courts that they keep this bullshit alive.
    Kill -9 all | sort > /dev/null

    --
    Pain is merely failure leaving the body
  6. Re:More details and downloadable archive by Runaway1956 · · Score: 3, Insightful

    Ho-hum.

    I'm not a coder. I couldn't create a kernel if my life depended on it. I couldn't code a hungry cat to catch a mouse. 1/2 or more of what I read in code is gibberish to me.

    But, one thing is pretty sure. Linus Torvalds wrote Linux, and his programming background came directly from Unix. OF COURSE he is going to write the same commands he has used a thousand times in the same way. OF COURSE there are going to be lines that look very much the same, sometimes even identical.

    Now, open any dozen books that are 50,000 words in length. Search for strings that are duplicated between the books. Entire sentences, or phrases, it hardly matters. Just do the search. Anyone who is used to playing with databases can probably search those dozen books, and find numerous instances of phrases that were copy/pasted from one author's book to another. In fact, I'll bet that technical and factual books will have a higher incidence of matching phrases and sentences than works of fiction - but fiction will have it's share as well.

    And, before we do this data base mining, we need to set up some method of assigning a variable string for proper names. In the wife's romance novels, we would be looking for " $ kissed $ ". It will be repeated so often that you can't help seeing the plegiarism. One author after another rips it from his predecessors.

    50 instances are claimed for "copying". Out of how many lines of code? Good grief. I guess it should have been mandatory that Linus write any code not only in a different programming language, but in a different language than English. Then, he MIGHT have been safe. Maybe. Not likely though, because SCO can probably read Chinese, or hire some scumbag lawyer who can.

    --
    "Windows is like the faint smell of piss in a subway: it's there, and there's nothing you can do about it." - Charlie Br
  7. Re:What's so liberal about it? by marcansoft · · Score: 4, Insightful

    No one cares whether it's a public spec or not (it may be, I do not know). It's a OS header file. The functions have to be named the same way in order for end-user programs to be source-compatible. If you've been programming for 20 years, this shouldn't be too hard to grasp.

    If SCO were allowed to claim copyright over this, then it would be simply impossible for Linux to provide a compatible libelf. This means you'd essentially prevent anyone from ever making compatible OS libraries, as they'd be infringing on the original author's copyright. That would be ridiculous. Public function names and prototypes (documented or not, standardized or not) are not considered copyrightable.

    Another example: is Wine, according to you, a humongous violation of Microsoft's copyrights? After all, it implements the Windows API with identical function names and prototypes, undocumented features and all (which is nowhere near a published standard of any sort).

  8. Re:What's so liberal about it? by Anonymous Coward · · Score: 3, Insightful

    Interface names needed for interoperability are fair game. Interfaces once published are public domain. The specific document is not.

    Software is copyrightable but it is not a work of fiction where more protection is given. Writing a book on physics protects the specific wording in that book but it doesn't keep others from using the word "relativity" with the same meaning or your specific name for the speed of light -c- to explain the same exact phenomenon your original book described.

    Guess what? Wine contains a function named MessageBoxW and I can't remember the parameter types, but I assure you they are the same as in Windows source. That Microsoft hasn't done anything about it, should tell you how much legal standing a suit on struct member names or function behavior would have.

  9. 10 words that tell it all. by Fr33thot · · Score: 3, Insightful

    "until they lost the battle by losing ownership of UNIX" Those are all the words you needed to read. You cannot loose ownership of that which you never did own. SCOs gambit was to gain ownership by bamboozling everyone. You know when one party is blowing smoke in these issues when they refuse to point to the infringing code outside of court. If the quote included is to be believed, they lost on appeal and now that they have filed yet another appeal they are suddenly going to show us all the holy grail of "infringing" code. In each case where they've brought up "infringing" code, it was either released by themselves, or was code they didn't own in the first place.

  10. Re:variable names and data structures. by Fizzl · · Score: 4, Insightful

    This does arouse suspicion. even if you forget the variable names for a moment, any pattern like bool,real,real, *real, int, *char,*char,*bool,.... that is identical between two structs would be an improbable occurence. and when you see it in back to back structs it becomes nearly impossible to happen by chance.

    Umm, no. This is only logical. If he had the documentation to data types, or even if he reverse engineered them, they would be identical. I have done some trampolining of functions to/from code which i only have binary access. If I am handling a struct, I would examine the structure in memory and make my struct identical so I could copy it with simple memcpy(to, fro, sizeof(struct)), or replace references by just changing the pointer to different place.

  11. Re:More details and downloadable archive by tomhudson · · Score: 3, Insightful

    Except that gcom didn't ship Caldera's STREAMS implementation. They shipped a loadable module (driver) that intercepted calls made by legacy apps to the STREAMS api and translated them to calls that linux could fulfill. In other words, no STREAMS code necessary in either the LiS product or in linux, and not even code to emulate STREAMS - just translate the call and forward it.

  12. Re:First post by kdemetter · · Score: 4, Insightful

    Since we have to rely on this PDF , and there is no way to prove that that code was actually in UNIX at the moment ( as it's closed , there's no way to check ) .

    I am left to conclude that it's much easier to copy from Linux (which is open ) , than from UNIX ( which is closed ).
    In other words , using this PDF , i could also claim to SCO stole from Linux , and then implemented it in their commercial product , thus violating the GPL .

  13. Re:First post by Z00L00K · · Score: 5, Insightful

    Header files are public - but they seldom contains any advanced functionality. They are just a definition of the calls available, defined data types and constants.

    If the header files didn't contain the same (or very similar) definitions then the API wouldn't work. I expect the same header definitions to reappear in many other operating systems with minor differences - many even in Windows (Which do have a Posix API)

    But of course - a lawyer wouldn't understand that, it's just a question of money.

    --
    If builders built buildings the way programmers wrote programs, then the first woodpecker would destroy civilization.
  14. Re:Shocking by mpe · · Score: 5, Insightful

    This was the first time I had a chance to see any of their "evidence". How exactly did this make it all the way to court?

    Especially given that "original" files appear to have been altered to contain comments to the effect that a USL copyright statement somehow proves that the information is "UNPUBLISHED PROPRIETARY SOURCE CODE" together with a meaningless statement about the existance of a copyright statement not implying publication.
    It looks as though they have "mailmerged" part of their claims into their supposed evidence. Shouldn't this have resulted in the judge throwing this out as null and void?

  15. Re:More details and downloadable archive by pugugly · · Score: 4, Insightful

    I'm all for strict ethical standards, and I won't claim to have gone through more than a half dozen of these PDF's checking them.

    That said - the six or so files I looked at were exclusively issues about some fairly well established naming conventions, the repetition of which is about as unlikely as finding an elm street and sycamore street 'coincidentally' close to each other in both our home towns and calling it 'evidence' the city planner of one stole the plans of the city planner of the other.

    I've heard people claim in several posts that "Well, if you looked at the PDF's that weren't cherry picked for ridiculousness ..." there are 'obvious' copying of code. That may be, but I'd like someone to actually link to a pdf with this obvious copying of code - burying the evidence in bullshit data is what you do when the evidence is against you and you *don't* want the other side to find it, not when it's in your favor and you're trying to make your case.

    At a minimum, the fact that he has buried his 'evidence' in with other bs data doesn't make it very clear he knows what actual evidence of copying would look like.

    Pug

    --
    An Invisible Entity of Vast Power whose existence must be taken on faith alone: Liberal Media
  16. Re:First post by Z00L00K · · Score: 3, Insightful

    I did see the code - and the filenames, but the majority of that was header files that are containing definitions that have to be identical for portability reasons.

    And the few code snippets that did contain actual functions didn't contain any real and obvious surprises. The working code was hardly something that you can call "advanced" by itself.

    And then there is the issue of which way some code actually did go. From Unix to Linux or the opposite way.

    --
    If builders built buildings the way programmers wrote programs, then the first woodpecker would destroy civilization.
  17. Re:First post by jbolden · · Score: 4, Insightful

    They both had a common parent which was public with those structures. Remember these were public APIs, no one is disputing that the structures were similar. The question is whether the implementations were copyright violations.

  18. Re:First post by SpazmodeusG · · Score: 4, Insightful

    "it was certainly a matter of one window with unix source to read from, the other window with linux source to write"
    Hell no. That's a bullshit accusation.

    Here we likely have a programmer who has never seen the SCO code (was it even released publicly back then?) but knows that applications can call functionY from libraryX from the interface documentation. If he creates a new libraryX containing a compatible functionY he isn't violating copyright. It is established that creating code with a compatible API interface isn't a copyright violation unless you actually do copy the code.
    Indeed it appears this is exactly what is happening in the linked elflib files. The filenames are the same because they have to be (note both the redhat_libelf.h and SCO_libelf.h are actually referred to by just libelf.h in code and elflib.h is what applications need to link to) and the functions are the same because they have to be or else applications will be calling functions that don't exist.

    This also happens with the WINE project. People there are creating the same header filenames and inside those headers the exact same function names. They aren't working off a split screen setup and blatantly copying Microsofts closed source code. They are merely recreating the functions that applications can call in Windows.

    A similar thing happened years ago with Compaqs IBM compatible BIOS. Compaq re-created the IBM BIOS to get around having to buy the IBM BIOS. Both BIOSes responded to the same application calls in the same way with the same return values and messages. Despite this Compaq didn't break copyright because they still re-wrote the code. In fact Compaq hired engineers specifically for the fact they had never seen IBM BIOS code. This way it could be easily established that they didn't copy the code but instead just wrote the same code that performed the same task.

  19. Re:First post by Chrisq · · Score: 4, Insightful

    OK show me something that is not a header, non obvious, and not found in an open common variant such as BSD. post should be modded ignorant.

  20. Re:More details and downloadable archive by Anonymous Coward · · Score: 4, Insightful

    Because in FORTRAN, variable names beginning with letters I through N meant integers, and all other meant floating-point. For those with some FORTRAN experience, naming the first 6 loop counters "i,j,k,l,m,n" is automatic.

  21. Re:More details and downloadable archive by Chapter80 · · Score: 3, Insightful

    So use a REAL tab character in your code like $DIETY intended, and set your editor to "show tab character". We have wide screens now - there's NO excuse for using anything except a real tab any more.

    Actually, there are several huge reasons for not using real tab.

    1) Tab means different things to different people. Even when you spell it out, people interpret it differently. In the original sense (i.e. old Underwood typewriters, and the like), tab meant to release the carriage and let it move thanks to the spring, until it was stopped by a tab stop. This means that if you set your tab stop at position 5, and 60, and you pressed tab when positioned anywhere from position 1 to 4, it skipped to 5. Pressing tab when positioned at 5 through 59 (in this example) skipped you to position 60. So, in it's original sense, tab relied on tab stops (literally tiny "tabs" on the top of the typewriter). However, there are few standard document formats (especially for source code) that define the tab stops. You don't see a line in an ASCII or Unicode source code file that says "the tabs for this document are at position 5 and 60". There's no common convention for this.

    So people invented arbitrary tab stop conventions. Like "tab stops are every 4 characters" or "tab stops are every 8 characters". But a small difference like this can change the meaning of your document! If you line up code and comments with "real tab characters" every 4 characters, and then someone opens your document with tab stops every eight characters, then the issue is NOT just that things are moved right. The issue is that things do not line up! If I create a nice comment section with a table explaining something, and use tab characters counting on a tab stop every 4 characters, and you open it with tab stops every 8 characters, the MEANING of the comments may change.

    Example:
    /* Here is a table of all the fields and whether they are changed by this function:

    [tab][tab]Passed to function[tab]Returned from function[tab]Changed by function
    [tab][tab]------------------[tab]----------------------[tab]-------------------
    A[tab][tab][space][space][space]Yes[tab][tab][tab][space][space][space]Yes
    longer[tab][tab][space][space][space]Yes

    */

    These comments will mean different things depending on the tab stop assumptions!

    2) The designers of some editors mis-understood how tab-stops worked, and instead, some made tabs equivalent to a fixed number of spaces. For instance, for some editors a tab is instantly interpreted as 4 spaces. But in the original definition of tabs, it was a "variable" amount of spacing, which took you to a predictable column. These are two vastly different concepts.

    3) Those who are smart enough to realize that there is confusion are really annoyed by those who are clueless and inserting real tab characters without knowing that there's an issue.