decoration decoration
Stories

GROKLAW
When you want to know more...
decoration
For layout only
Home
Archives
Site Map
Search
About Groklaw
Awards
Legal Research
Timelines
ApplevSamsung
ApplevSamsung p.2
ArchiveExplorer
Autozone
Bilski
Cases
Cast: Lawyers
Comes v. MS
Contracts/Documents
Courts
DRM
Gordon v MS
GPL
Grokdoc
HTML How To
IPI v RH
IV v. Google
Legal Docs
Lodsys
MS Litigations
MSvB&N
News Picks
Novell v. MS
Novell-MS Deal
ODF/OOXML
OOXML Appeals
OraclevGoogle
Patents
ProjectMonterey
Psystar
Quote Database
Red Hat v SCO
Salus Book
SCEA v Hotz
SCO Appeals
SCO Bankruptcy
SCO Financials
SCO Overview
SCO v IBM
SCO v Novell
SCO:Soup2Nuts
SCOsource
Sean Daly
Software Patents
Switch to Linux
Transcripts
Unix Books

Gear

Groklaw Gear

Click here to send an email to the editor of this weblog.


You won't find me on Facebook


Donate

Donate Paypal


No Legal Advice

The information on Groklaw is not intended to constitute legal advice. While Mark is a lawyer and he has asked other lawyers and law students to contribute articles, all of these articles are offered to help educate, not to provide specific legal advice. They are not your lawyers.

Here's Groklaw's comments policy.


What's New

STORIES
No new stories

COMMENTS last 48 hrs
No new comments


Sponsors

Hosting:
hosted by ibiblio

On servers donated to ibiblio by AMD.

Webmaster
Lxrun - why wasn't it released under the GPL?
Wednesday, August 16 2006 @ 11:31 AM EDT

The other day, I wrote about ELF again, the most recent in our continuing series of articles on ELF, and the article mentioned lxrun, the Linux emulator Michael Davidson wrote for SCO. The main questions I had in my mind about lxrun were these:
1. Did lxrun use Linux ELF?

2. What license was lxrun released under?

The reason I wanted definite answers to those two questions is because if, as SCO claims, ELF header files are copyrightable, and if lxrun uses the Linux ELF header files, why wouldn't lxrun have to be licensed under the GPL? After a lot of digging, I believe I have found the answers to those questions.

When SCO first raised the ELF claims, the Linux community hooted, because header files are normally not considered part of the kernel and because they are essentially necessary, like 1, 2, 3 is necessary to count to ten and there is no other good way to get there (cf. Groklaw's July 22, 2004 article A Tall Tale About ELF,".) So no one here believed that ELF was subject to copyright, and in fact we burst out laughing. The rules for copyright on software, as you probably know, aren't exactly the same as for a novel. And in general terms, if there is only one way to do an essential step in computing, copyright won't apply.

So when I read the following on the lxrun page, I started to wonder:

Lxrun is a user-space program that allows users of SCO(r) OpenServer(tm), UnixWare(tm), and Sun(r) Solaris(tm) x86 operating systems to run ELF and a.out format Linux binaries. It was originally written by Mike Davidson of SCO. It is now maintained under the Mozilla license as an open-development effort .

I did some digging, and it turns out that originally, Davidson released it under a BSD-style license. SCO's intention was to open source it and not have to support it or be legally liable in any way. Here's a photo demonstrating that intent to open source lxrun:

When Davidson lost interest in the project, he turned the source over to Steve Ginzburg, who was a SCO intern at the time, and Steve added some things and ended up using the Mozilla license. Sun Microsystems also added some things and shipped lxrun for Solaris as well. Eventually, it ended up being put into Caldera's Skunkware, as you can see from this screenshot I took some years ago off of the then available page http://www.caldera.com/skunkware/emulators/:

Why, though, wasn't the GPL the license used? I took a look at the lxrun FAQ and found more material that added to my puzzlement:

Q0.2: How does lxrun work?

A: Quite well, actually. :-)
Seriously, it works by remapping system calls on the fly. As it turns out, there's not much difference between Linux and iBCS2 binaries. The main difference is the way in which system calls are handled. In Linux, an "int $0x80" instruction is used, which jumps to the system-call-handling portion of the Linux kernel. On other systems, "int $0x80" usually causes a SIGSEGV signal. Lxrun intercepts these signals and calls the native equivalent of the system call that the Linux program attempted. The result is that the Linux binary can be run (with the help of lxrun) with a small (usually negligible) performance penalty. All this is accomplished without modifying the kernel or the Linux binary.

Q0.2.1: What does "negligible performance penalty" mean?

A: Well, lxrun is not really an emulator, in that it's not really doing any emulation work. You can think of it more as a layer that sits between the Linux binary and the rest of the system doing a few translations here and there where it's necessary. When are these translations necessary? When the Linux binary attempts a system call. The rest of the time, lxrun is dormant and does not affect the performance of your application at all.

System calls are used for I/O, displaying things on the screen, accessing the network, etc. System calls are not used during computation. This means that computation-intensive applications (such as compilers, image processors, etc.) will show the least difference in performance....

Q0.7: Who wrote lxrun?

A: It was originally written by Michael Davidson, an engineer at SCO. In 1997, Michael released the lxrun source code to Steven Ginzburg who is continuing its development as an open source project under the Mozilla public license. Contributors to lxrun have included hobbyists and engineers from all over the world. In addition, the Santa Cruz Operation (SCO) and Sun Microsystems have both contributed engineering time and other resources to the project....

Q1.0: What does lxrun need in order to work?

A: To run most Linux programs, lxrun requires the help of the Linux dynamic loader (ld-linux.so.*) and whatever Linux shared libraries are required by the program. Effectively, you need to set up a "Linux environment" that looks enough like a real Linux system to fool the program you are trying to run. For more information, see the section below on Linux environments.

So, lxrun does not include any Linux kernel code per se but it does include copies of selected fragments of certain Linux kernel header files such as errno.h, signal.h etc which define the precise binary data structures and binary values that are used by the Linux system call interface. Yes, those are on the list of files SCO claims it has copyrights to and it claims are not allowed to be used in Linux. But here in the first photo, you can see that lxrun, which includes those very files, was open sourced, and by SCO itself. How can SCO, newSCO, not know that?

At the time lxrun was written, no one at SCO thought about elements that are necessary to define system call interfaces, and which by then were at least in part described in public standards, as being protectable under copyright, obviously, so they felt free to use Linux ELF and then put a BSD-like license on the lxrun project. If those header files were really copyrightable, lxrun would, I believe, have to be GPL'd. At a minimum, the headers would have to be.

At the moment, I think SCO stands alone in making the claim that ELF can be copyrighted, but the point I'm making is this: there is a serious disjoint in this picture. If ELF can, in fact, be copyrighted, then the Linux ELF files are copyrighted and then licensed under the GPL, so SCO would have violated the GPL when it released lxrun under a BSD license instead. You can still get lxrun, of course, as a free download.

Now SCO might tell me that those ELF headers were theirs to begin with. Groklaw has amply answered that claim. And recall that Sun also released lxrun. HP has its own Linux affinity project.1 So any copyright infringement claims over headers in lxrun seem dead in the water. But even if what SCO says were true, we now see that it itself released those very same ELF files under a BSD license with lxrun. They are still available from the man SCO handed the source code to, now under the Mozilla license. It was oldSCO's intent to open source lxrun, which includes the Linux ELF header files, or parts thereof.

So, no matter how we slice and dice it, SCO has painted itself into yet another tight corner. Their ELF claim is not only doomed, from all I can see, but SCO appears to be vulnerable to a claim of copyright infringement with respect to lxrun, if SCO's copyright theories regarding ELF ever were to stand.

Ironic, no? SCO just can't win for losing.

So, the answers I came up with to my two questions are, yes, Linux ELF is in lxrun, and it was released first under a BSD-like license and then under the Mozilla license. It wasn't released under the GPL because a) header files aren't part of the Linux kernel, b) SCO didn't think header files were copyrightable, and c) I think they were absolutely right about that.


1 Google cache provides this paper, "Linux Affinity", which tells a bit about lxrun, and IBM's, Sun's and HP's approaches to Linux emulation:

The three vendors have taken similar approaches to Linux affinity. HP-UX provides libhplx, which is a library that contains about 200 Linux-compatible APIs, related file headers, and their sources. This library is a set of APIs not available with HP-UX, taken from GNU 2.1.3, and is available under the GNU Public License (GPL). At LinuxWorld Expo in February, HP announced that they will be shipping the open source Ximian GNOME Desktop as their default desktop for HP-UX workstations. HP also announced they will be using GNOME as the open standard to provide a common desktop for both their HP-UX and HP Linux workstations. Similarly, Sun has announced that it will be using a GNOME-based desktop for Solaris. Gnome provides Solaris with programming libraries, and access to Sun's Star Office desktop office suite. The intent is that the user will not be able to tell if he's running RedHat Linux or Solaris under the hood (ZDNet). As the result of collaboration between Sun and the open source lxrun project, the lxrun utility allows Linux binaries to run without modification on Solaris Operating Environment on Intel platforms. lxrun is a software layer that sits between Solaris and the Linux Intel binary executable and remaps system calls "on the fly" allowing them to run unmodified on Solaris (http://www.sun.com). lxrun appears to provide a robust environment, supporting such diverse applications as WordPerfect, GNOME, GIMP, and Quake III.

If you visit HP's site, you will find libhplx for download, and this page tells us a bit about what is in there [Note update below, for working links as of 2010]:

Description: libhplx contains almost 200 Linux-compatible APIs in libhplx.sl, the related header files, and the library sources. These Linux-compatible APIs were derived from the GNU libc 2.2.4, and are not currently available on HP-UX, and can be used in concert with the existing HP-UX libraries and the HP-UX development tools.

It's released under the GPLv2. More details here. My question for HP is, when SCO made its public claim to copyright over ELF and all the other claims, exactly when were you going to stand up and tell the world that SCO was wrong on the tech? I think it's time to make manifest where HP stands. HP sponsored SCOforum, and it's time to begin to notice, I think, how HP is presenting itself on the SCO issue. Ditto for Sun. When SCO claimed ownership of ELF, why didn't Sun speak up too and inform us that it too released lxrun and that ELF was in there? Here's where you can find info on lxrun from Sun's website. For example, here's their technical paper on lxrun. Folks may say, it's just business. But FOSS business isn't done the way proprietary business is done, not if you wish to make money. The community believes in ethical behavior, and it will notice who does and who does not honor FOSS ethics. Just so you know.

Update: The HP page I linked to has changed. You can still find the information, however, on Internet Archive. Here's how it looked in February of 2002. And here's the same page exactly one year later. And here's the last link for that page, in December 2005. For the licensing information regarding the LGPL, you can still find it here.


  


Lxrun - why wasn't it released under the GPL? | 271 comments | Create New Account
Comments belong to whoever posts them. Please notify us of inappropriate comments.
Corrections thread
Authored by: hardmath on Wednesday, August 16 2006 @ 11:37 AM EDT

Please indicate error in subject line, so duplication can be avoided and give
any additional detail in the msg body.

regards, hm


---
Please be honest with us as trust is our watchword in this transaction. (a
Senior Credit Officer, sharing vast sums of money owed to a deceased client)

[ Reply to This | # ]

Off Topic
Authored by: hardmath on Wednesday, August 16 2006 @ 11:38 AM EDT

If you gottem, makem clicky:

<a href="http://www.example.com/">Like this</a>

by posting in Post Mode = HTML.

regards, hm


---
Please be honest with us as trust is our watchword in this transaction. (a
Senior Credit Officer, sharing vast sums of money owed to a deceased client)

[ Reply to This | # ]

Lxrun - HP & Sun
Authored by: rsteinmetz70112 on Wednesday, August 16 2006 @ 11:55 AM EDT
It seems to me that allowing Sun and HP to use lxrun is entirely consistent with
SCOG position. HP and Sun are Unix Licensees and have paid for the ability to
use Unix.

If lxrun, the headers and libraries are part of Unix then the Sun and HP already
have licenses.

The part about the BSD/Mozilla license is more problematic. It seems SCO had no
intention of limiting access even if they did have a copyright on this tool
(which they probably did on at least part of it).

The time line on this is interesting. lxrun was written in 1997, well before
Caldera acquired the Unix portion of SCO in 2001 and well after SCO bought USL
from Novell in 1995.

---
Rsteinmetz - IANAL therefore my opinions are illegal.

"I could be wrong now, but I don't think so."
Randy Newman - The Title Theme from Monk

[ Reply to This | # ]

Time to call it off
Authored by: Anonymous on Wednesday, August 16 2006 @ 12:07 PM EDT
Ok, Big Linux - it's time to call off the dogs. Let's quit pushing around small
innovators like SCO that are just out there struggling to make a buck.

Just remember, corporate might does NOT make right.

Maybe we should take PJ's favorite linux distro and put IT under the microscope
and analyze the licensing of every single included package? Would you like that?
Didn't think so.

[ Reply to This | # ]

The licence on the source code of Lxrun
Authored by: Chris Lingard on Wednesday, August 16 2006 @ 12:39 PM EDT

Just downloaded the latest source package, to see what the licence says. It showns that it is freely available to anyone who wants to use it:

MOZILLA PUBLIC LICENSE Version 1.0 ----------------

1. Definitions.

1.1. ``Contributor'' means each entity that creates or contributes to the creation of Modifications.

1.2. ``Contributor Version'' means the combination of the Original Code, prior Modifications used by a Contributor, and the Modifications made by that particular Contributor.

1.3. ``Covered Code'' means the Original Code or Modifications or the combination of the Original Code and Modifications, in each case including portions thereof.

1.4. ``Electronic Distribution Mechanism'' means a mechanism generally accepted in the software development community for the electronic transfer of data.

1.5. ``Executable'' means Covered Code in any form other than Source Code.

1.6. ``Initial Developer'' means the individual or entity identified as the Initial Developer in the Source Code notice required by Exhibit A.

1.7. ``Larger Work'' means a work which combines Covered Code or portions thereof with code not governed by the terms of this License.

1.8. ``License'' means this document.

1.9. ``Modifications'' means any addition to or deletion from the substance or structure of either the Original Code or any previous Modifications. When Covered Code is released as a series of files, a Modification is:
A. Any addition to or deletion from the contents of a file containing Original Code or previous Modifications.

B. Any new file that contains any part of the Original Code or previous Modifications.

1.10. ``Original Code'' means Source Code of computer software code which is described in the Source Code notice required by Exhibit A as Original Code, and which, at the time of its release under this License is not already Covered Code governed by this License.

1.11. ``Source Code'' means the preferred form of the Covered Code for making modifications to it, including all modules it contains, plus any associated interface definition files, scripts used to control compilation and installation of an Executable, or a list of source code differential comparisons against either the Original Code or another well known, available Covered Code of the Contributor's choice. The Source Code can be in a compressed or archival form, provided the appropriate decompression or de-archiving software is widely available for no charge.

1.12. ``You'' means an individual or a legal entity exercising rights under, and complying with all of the terms of, this License or a future version of this License issued under Section 6.1. For legal entities, ``You'' includes any entity which controls, is controlled by, or is under common control with You. For purposes of this definition, ``control'' means (a) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (b) ownership of fifty percent (50%) or more of the outstanding shares or beneficial ownership of such entity.

2. Source Code License.
2.1. The Initial Developer Grant.

The Initial Developer hereby grants You a world-wide, royalty-free, non-exclusive license, subject to third party intellectual property claims:
(a) to use, reproduce, modify, display, perform, sublicense and distribute the Original Code (or portions thereof) with or without Modifications, or as part of a Larger Work; and

(b) under patents now or hereafter owned or controlled by Initial Developer, to make, have made, use and sell (``Utilize'') the Original Code (or portions thereof), but solely to the extent that any such patent is reasonably necessary to enable You to Utilize the Original Code (or portions thereof) and not to any greater extent that may be necessary to Utilize further Modifications or combinations.
2.2. Contributor Grant.

Each Contributor hereby grants You a world-wide, royalty-free, non-exclusive license, subject to third party intellectual property claims:
(a) to use, reproduce, modify, display, perform, sublicense and distribute the Modifications created by such Contributor (or portions thereof) either on an unmodified basis, with other Modifications, as Covered Code or as part of a Larger Work; and

(b) under patents now or hereafter owned or controlled by Contributor, to Utilize the Contributor Version (or portions thereof), but solely to the extent that any such patent is reasonably necessary to enable You to Utilize the Contributor Version (or portions thereof), and not to any greater extent that may be necessary to Utilize further Modifications or combinations.
3. Distribution Obligations.
3.1. Application of License.
The Modifications which You create or to which You contribute are governed by the terms of this License, including without limitation Section 2.2. The Source Code version of Covered Code may be distributed only under the terms of this License or a future version of this License released under Section 6.1, and You must include a copy of this License with every copy of the Source Code You distribute. You may not offer or impose any terms on any Source Code version that alters or restricts the applicable version of this License or the recipients' rights hereunder. However, You may include an additional document offering the additional rights described in Section 3.5.

3.2. Availability of Source Code. Any Modification which You create or to which You contribute must be made available in Source Code form under the terms of this License either on the same media as an Executable version or via an accepted Electronic Distribution Mechanism to anyone to whom you made an Executable version available; and if made available via Electronic Distribution Mechanism, must remain available for at least twelve (12) months after the date it initially became available, or at least six (6) months after a subsequent version of that particular Modification has been made available to such recipients. You are responsible for ensuring that the Source Code version remains available even if the Electronic Distribution Mechanism is maintained by a third party.

3.3. Description of Modifications. You must cause all Covered Code to which you contribute to contain a file documenting the changes You made to create that Covered Code and the date of any change. You must include a prominent statement that the Modification is derived, directly or indirectly, from Original Code provided by the Initial Developer and including the name of the Initial Developer in (a) the Source Code, and (b) in any notice in an Executable version or related documentation in which You describe the origin or ownership of the Covered Code.

3.4. Intellectual Property Matters
(a) Third Party Claims. If You have knowledge that a party claims an intellectual property right in particular functionality or code (or its utilization under this License), you must include a text file with the source code distribution titled ``LEGAL'' which describes the claim and the party making the claim in sufficient detail that a recipient will know whom to contact. If you obtain such knowledge after You make Your Modification available as described in Section 3.2, You shall promptly modify the LEGAL file in all copies You make available thereafter and shall take other steps (such as notifying appropriate mailing lists or newsgroups) reasonably calculated to inform those who received the Covered Code that new knowledge has been obtained.

(b) Contributor APIs. If Your Modification is an application programming interface and You own or control patents which are reasonably necessary to implement that API, you must also include this information in the LEGAL file.

3.5. Required Notices .

You must duplicate the notice in Exhibit A in each file of the Source Code, and this License in any documentation for the Source Code, where You describe recipients' rights relating to Covered Code. If You created one or more Modification(s), You may add your name as a Contributor to the notice described in Exhibit A. If it is not possible to put such notice in a particular Source Code file due to its structure, then you must include such notice in a location (such as a relevant directory file) where a user would be likely to look for such a notice. You may choose to offer, and to charge a fee for, warranty, support, indemnity or liability obligations to one or more recipients of Covered Code. However, You may do so only on Your own behalf, and not on behalf of the Initial Developer or any Contributor. You must make it absolutely clear than any such warranty, support, indemnity or liability obligation is offered by You alone, and You hereby agree to indemnify the Initial Developer and every Contributor for any liability incurred by the Initial Developer or such Contributor as a result of warranty, support, indemnity or liability terms You offer.

3.6. Distribution of Executable Versions.

You may distribute Covered Code in Executable form only if the requirements of Section 3.1-3.5 have been met for that Covered Code, and if You include a notice stating that the Source Code version of the Covered Code is available under the terms of this License, including a description of how and where You have fulfilled the obligations of Section 3.2. The notice must be conspicuously included in any notice in an Executable version, related documentation or collateral in which You describe recipients' rights relating to the Covered Code. You may distribute the Executable version of Covered Code under a license of Your choice, which may contain terms different from this License, provided that You are in compliance with the terms of this License and that the license for the Executable version does not attempt to limit or alter the recipient's rights in the Source Code version from the rights set forth in this License. If You distribute the Executable version under a different license You must make it absolutely clear that any terms which differ from this License are offered by You alone, not by the Initial Developer or any Contributor. You hereby agree to indemnify the Initial Developer and every Contributor for any liability incurred by the Initial Developer or such Contributor as a result of any such terms You offer.

3.7. Larger Works.

You may create a Larger Work by combining Covered Code with other code not governed by the terms of this License and distribute the Larger Work as a single product. In such a case, You must make sure the requirements of this License are fulfilled for the Covered Code.

4. Inability to Comply Due to Statute or Regulation.
If it is impossible for You to comply with any of the terms of this License with respect to some or all of the Covered Code due to statute or regulation then You must: (a) comply with the terms of this License to the maximum extent possible; and (b) describe the limitations and the code they affect. Such description must be included in the LEGAL file described in Section 3.4 and must be included with all distributions of the Source Code. Except to the extent prohibited by statute or regulation, such description must be sufficiently detailed for a recipient of ordinary skill to be able to understand it.
5. Application of this License.
This License applies to code to which the Initial Developer has attached the notice in Exhibit A, and to related Covered Code.
6. Versions of the License.
6.1. New Versions. Netscape Communications Corporation (``Netscape'') may publish revised and/or new versions of the License from time to time. Each version will be given a distinguishing version number.
6.2. Effect of New Versions. Once Covered Code has been published under a particular version of the License, You may always continue to use it under the terms of that version. You may also choose to use such Covered Code under the terms of any subsequent version of the License published by Netscape. No one other than Netscape has the right to modify the terms applicable to Covered Code created under this License.
6.3. Derivative Works. If you create or use a modified version of this License (which you may only do in order to apply it to code which is not already Covered Code governed by this License), you must (a) rename Your license so that the phrases ``Mozilla'', ``MOZILLAPL'', ``MOZPL'', ``Netscape'', ``NPL'' or any confusingly similar phrase do not appear anywhere in your license and (b) otherwise make it clear that your version of the license contains terms which differ from the Mozilla Public License and Netscape Public License. (Filling in the name of the Initial Developer, Original Code or Contributor in the notice described in Exhibit A shall not of themselves be deemed to be modifications of this License.)
7. DISCLAIMER OF WARRANTY.
COVERED CODE IS PROVIDED UNDER THIS LICENSE ON AN ``AS IS'' BASIS, WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, WITHOUT LIMITATION, WARRANTIES THAT THE COVERED CODE IS FREE OF DEFECTS, MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE OR NON-INFRINGING. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE COVERED CODE IS WITH YOU. SHOULD ANY COVERED CODE PROVE DEFECTIVE IN ANY RESPECT, YOU (NOT THE INITIAL DEVELOPER OR ANY OTHER CONTRIBUTOR) ASSUME THE COST OF ANY NECESSARY SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS LICENSE. NO USE OF ANY COVERED CODE IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS DISCLAIMER.
8. TERMINATION.
This License and the rights granted hereunder will terminate automatically if You fail to comply with terms herein and fail to cure such breach within 30 days of becoming aware of the breach. All sublicenses to the Covered Code which are properly granted shall survive any termination of this License. Provisions which, by their nature, must remain in effect beyond the termination of this License shall survive.
9. LIMITATION OF LIABILITY.
UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER TORT (INCLUDING NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL THE INITIAL DEVELOPER, ANY OTHER CONTRIBUTOR, OR ANY DISTRIBUTOR OF COVERED CODE, OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE LIABLE TO YOU OR ANY OTHER PERSON FOR ANY INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF GOODWILL, WORK STOPPAGE, COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER COMMERCIAL DAMAGES OR LOSSES, EVEN IF SUCH PARTY SHALL HAVE BEEN INFORMED OF THE POSSIBILITY OF SUCH DAMAGES. THIS LIMITATION OF LIABILITY SHALL NOT APPLY TO LIABILITY FOR DEATH OR PERSONAL INJURY RESULTING FROM SUCH PARTY'S NEGLIGENCE TO THE EXTENT APPLICABLE LAW PROHIBITS SUCH LIMITATION. SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION OR LIMITATION OF INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO THAT EXCLUSION AND LIMITATION MAY NOT APPLY TO YOU.
10. U.S. GOVERNMENT END USERS.
The Covered Code is a ``commercial item,'' as that term is defined in 48 C.F.R. 2.101 (Oct. 1995), consisting of ``commercial computer software'' and ``commercial computer software documentation,'' as such terms are used in 48 C.F.R. 12.212 (Sept. 1995). Consistent with 48 C.F.R. 12.212 and 48 C.F.R. 227.7202-1 through 227.7202-4 (June 1995), all U.S. Government End Users acquire Covered Code with only those rights set forth herein.
11. MISCELLANEOUS.
This License represents the complete agreement concerning subject matter hereof. If any provision of this License is held to be unenforceable, such provision shall be reformed only to the extent necessary to make it enforceable. This License shall be governed by California law provisions (except to the extent applicable law, if any, provides otherwise), excluding its conflict-of-law provisions. With respect to disputes in which at least one party is a citizen of, or an entity chartered or registered to do business in, the United States of America: (a) unless otherwise agreed in writing, all disputes relating to this License (excepting any dispute relating to intellectual property rights) shall be subject to final and binding arbitration, with the losing party paying all costs of arbitration; (b) any arbitration relating to this Agreement shall be held in Santa Clara County, California, under the auspices of JAMS/EndDispute; and (c) any litigation relating to this Agreement shall be subject to the jurisdiction of the Federal Courts of the Northern District of California, with venue lying in Santa Clara County, California, with the losing party responsible for costs, including without limitation, court costs and reasonable attorneys fees and expenses. The application of the United Nations Convention on Contracts for the International Sale of Goods is expressly excluded. Any law or regulation which provides that the language of a contract shall be construed against the drafter shall not apply to this License.
12. RESPONSIBILITY FOR CLAIMS.
Except in cases where another Contributor has failed to comply with Section 3.4, You are responsible for damages arising, directly or indirectly, out of Your utilization of rights under this License, based on the number of copies of Covered Code you made available, the revenues you received from utilizing such rights, and other relevant factors. You agree to work with affected parties to distribute responsibility on an equitable basis.
EXHIBIT A.
``The contents of this file are subject to the Mozilla Public License Version 1.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/
.
Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License.
.
The Original Code is lxrun, the Linux x86 Binary Emulator.
.
The Initial Developer of the Original Code is Michael Davidson. Portions created by Michael Davidson are Copyright (C) by Michael Davidson. All Rights Reserved.
.
Contributor(s): ______________________________________.''

[ Reply to This | # ]

Lxrun - and other footguns
Authored by: dyfet on Wednesday, August 16 2006 @ 12:44 PM EDT
Their ELF claim is not only doomed, from all I can see, but SCO appears to be vulnerable to a claim of copyright infringement with respect to lxrun, if SCO's copyright theories regarding ELF ever were to stand.

This is both true and probably irrelevant in the case of SCO. They strike me as more interested in "poisoning the well" on behalf of a third party anyway, so if they somehow succeeded, even the fact that they poisoned their own well in the process would probably not matter to them. After all, this normally would never happen because a litigant actually does intend to be in business after and so would not shoot their own business from under themselves in the process. I still think the pipe fairy remains the real key to SCO legal efforts, and this exercise offers further evidence of that theory.

[ Reply to This | # ]

Don't forget...
Authored by: Anonymous on Wednesday, August 16 2006 @ 01:31 PM EDT

... Linus and the Kernel Group's clarification / disclaimer which is right at the start of the License file (the standard 'COPYING' file) which accompanies the source tree for the Linux kernel.

For those without a copy, this is the clarification from the 2.6.17 source:

NOTE! This copyright does *not* cover user programs that use kernel services by normal system calls - this is merely considered normal use of the kernel, and does *not* fall under the heading of "derived work". Also note that the GPL below is copyrighted by the Free Software Foundation, but the instance of code that it refers to (the Linux kernel) is copyrighted by me and others who actually wrote it.

...

lxrun is a user program. The extent to which lxrun "uses kernel services by normal system calls" is by no means clear, although I'd wager a determined lawyer could get the aforementioned errno-related usage through on that one. I don't think the situation is as clear a breach as is being implied.

[ Reply to This | # ]

Caldera link still works.
Authored by: Anonymous on Wednesday, August 16 2006 @ 01:48 PM EDT
This link "http://www.caldera.com/skunkware/emulators" still works. Link

An InvestorVillager

[ Reply to This | # ]

Sun, HP - give them the benefit of the doubt
Authored by: brendthess on Wednesday, August 16 2006 @ 02:00 PM EDT
After all, what would have been required for Sun/HP to identify *with specificity*, and announce, that they are using the same interfaces that are part of SCO's suit against IBM in some of their own Open Source code?

  1. Someone notices that the interfaces are in question in the lawsuit
    Normally, this would be a reader of Groklaw, since scanning most other news sources for accurate details in the SCO/IBM case is an exercise in frustration
  2. Someone realizes that the interfaces are in use in Open Source applications distributed by their company
    I don't know about other developers in large companies, but *I* don't know all of the bits that are in the code here, and the company that I work for is not that large yet. You would be talking about a senior SW engineer at this point, or someone who has worked with the code in the past year (probably).
  3. Someone with authority to make a press release decides to do so
    This is probably the biggest disconnect in the sequence. Normally, Software techs cannot make press releases in the name of their company. This would mean that the person who notices would have to convince someone with greater authority (but probably less technical knowledge or interest in the SCO case) that releasing this information is appropriate
  4. Legal approves the press release
    After all, this is about one of the bigger Software lawsuits around (at least as far as we know - after all, isn't that what SCO has been claiming all along?) Getting Legal's imprimatur for the press release announcing that you are distributing something that SCO claims is the basis of their suit against IBM is (IMHANAL opinion) not very likely.
So, even if someone thought about doing that, the likelihood that their company would let them do so is about... what? The likelihood of someone winning a 5 of 6 lottery pick? In any case, given that we are talking 2 chances (Sun, HP) to hit those odds.... my assessment is that Extremely Unlikely covers the situation.

---
I am not even vaguely trained as a lawyer. Why are you listening to me?

[ Reply to This | # ]

Thunk
Authored by: DaveAtFraud on Wednesday, August 16 2006 @ 02:01 PM EDT
lxrun is an example of what is generally called a "thunk". That is, a
layer of software that simply maps calls in one vernacular to another. As an
example, 32-bit Windows support for old, 16-bit programs uses a similar layer to
map 16-bit calls in the old applications to the new 32 bit implementation.

Note that wine means Wine Is Not and Emulator so wine should also be considered
a thunk. The problem with using a thunk instead of a true emulator is the
mapped system calls may not behave the same is some subtle (or not so subtle)
way as the original. The benefit is that the effort required to just map the
system calls is usually much less than writing a true emulator.

I just like to see the right word used.

Cheers,
Dave

---
Quietly implementing RFC 1925 wherever I go.

[ Reply to This | # ]

That Caldera link still works.
Authored by: Anonymous on Wednesday, August 16 2006 @ 02:31 PM EDT
I saw a post about it the other week. Link

[ Reply to This | # ]

Binary-only Drivers
Authored by: Anonymous on Wednesday, August 16 2006 @ 04:36 PM EDT
It wasn't released under the GPL because a) header files aren't part of the Linux kernel,. . .

Then what's all the fuss about binary-only modules? They only use the kernel header files.

[ Reply to This | # ]

Lxrun 0.8.6, available since Sep 08 1997
Authored by: IMANAL on Wednesday, August 16 2006 @ 04:55 PM EDT
As reported on a Hungarian 'Linux list' ('http://www.cab.u-szeged.hu/linux/lista/www/1997/szeptember-37.het/0103.html' ):


"Czako Krisztian (slapic@orion.fido.hu)
Tue, 9 Sep 1997 15:32:28 +0200 (CEST)
* Messages sorted by: [ date ][ thread ][ subject ][ author ]
* Next message: Ingo Molnar: "[offtopic] Re: SURGOS! ldso problema"
* Previous message: Gergely Madarasz: "Re: SURGOS! ldso problema"

http://www.sco.com/skunkware/emulators/index.html

Im e :

Last Updated: Monday Sep 08, 1997 at 17:20:57 PDT

Welcome to the SCO Skunkware emulators. This category contains software which emulates other operating platforms, thus allowing the end-user to run binary applications intended for that platform. For instance, one of the packages contained herein allows users of SCO OpenServer or SCO UnixWare systems to run binary applications intended for use on Linux systems.

Package List

Name Description Version OSR5 UnixWare
lxrun Linux Emulator 0.8.6 Yes Yes

------------------------------------------------------------------- -----

Lxrun - Linux Emulator

Lxrun is a Linux emulator for SCO OpenServer and SCO UnixWare platforms which understands Intel Linux a.out and ELF format binaries. To run most Linux programs, lxrun requires the help of the Linux dynamic loader (ld.so) and whatever Linux shared libraries are required by the program.

[OpenServer Distribution] osr5/emulators/lxrun/

[Original source code] ftp://ftp.sco.com/skunkware/src/emulators/lxrun-0.8.6.tar.gz


" That is some time earlier than the official lxrun site which is "proudly serving the open-source community since October 1, 1997"

So, Lxrun was out in the wild before Ginzburg took over maintenance! Wonder what licence it had back then?





---
--------------------------
IM Absolutely Not A Lawyer

[ Reply to This | # ]

  • Lxrun 0.8.6, available since Sep 08 1997 - Authored by: Anonymous on Wednesday, August 16 2006 @ 10:46 PM EDT
    • BSD? - Authored by: Anonymous on Thursday, August 17 2006 @ 03:42 AM EDT
      • BSD? - Authored by: Anonymous on Thursday, August 17 2006 @ 12:37 PM EDT
        • Ok, but.. - Authored by: Anonymous on Thursday, August 17 2006 @ 04:41 PM EDT
I think the main reason ...
Authored by: tanstaafl on Wednesday, August 16 2006 @ 06:33 PM EDT
... that SCO keeps stepping all over its case is that management there does
_/not/_ listen to its coders. PJ pointed out that Ron Record is still there,
and has been there since 1983; that makes him just like me - older than dirt -
and us old coots have a hard time getting hired, unless we're terminally famous
(INfamous only works in show biz and terrorism). The point is that I think the
folks they have coding now are there because, for whatever reasons, they _have_
to be, management _knows_ this, and therefore feels no obligation to listen to
them. After all, they're only wage slaves, not shiny management
'super-stars.'

[ Reply to This | # ]

Too much for them to remember
Authored by: seraph_jeffery on Wednesday, August 16 2006 @ 11:57 PM EDT
"If you tell the truth, you don't have to remember anything."
~ Mark Twain

[ Reply to This | # ]

Header files *are* copyrightable
Authored by: Maot on Thursday, August 17 2006 @ 05:28 AM EDT
I'm sorry I may misunderstand, or perhaps be being pedantic but AFAIK header
files most certainally are copyrightable. I think any code anyone writes should
be copyrightable under whatever license suits the author. I don't however think
that interfaces should be copyrightable, however there isn't a one to one
mapping between an interface and a header file.

For an extreme example there is nothing from stopping me from putting all of my
code in a header file - the whole project if I wanted.

More sensibly however it's often common to have pieces of logic and code in
header files in order to have them inline. Less a priority these days with
modern compilers and linkers which can inline across object boundaries. Also
templates used to pretty much have to sit in the header files.

In a clean code base for a library, or of course and operating system there are
often at least two different types of header files. Internal header files which
are effectivley private to the project internals itself and then interface
header files. The internal header files most certainally should be
copyrightable (or copyleftable ideally).

The interface header files are indeed the ones we are discussing here, hence why
you may think me pedantic. These files describe how this one body of code can
communicate with any other outside body of code be it running on the same
machine or even running on a different machine with a different architecture on
the other side of the world. I'm not sure if those header files should be
copyrightable, I'm leaning towards thinking that they should. However the
interface that they describe itself is what shouldn't be copyrightable. To
allow such things would IMHO stifle innovation, choice and competition by
providing a route for vendor lock in.

Unfortunatley though it seems that currently even these interfaces are
copyrightable as demonstrated by Microsoft's seeming ability even when forced to
document these interfaces by the EU to maintain rights over those interfaces and
documentation such that it appears incompatible to be used by people wanting to
use the GPL.

[ Reply to This | # ]

What shape is SCO in?
Authored by: IANAL on Thursday, August 17 2006 @ 07:35 AM EDT
So, no matter how we slice and dice it, SCO has painted itself into yet another tight corner.

Surrounded by so many tight corners just what shape has SCO found itself in.

---
But your Honour they are trying to hold us to our own statements. It's not fair! [Stamps foot and pouts]

[ Reply to This | # ]

Lxrun - why wasn't it released under the GPL?
Authored by: Anonymous on Thursday, August 17 2006 @ 07:40 AM EDT
Goto docsrv.sco.com.

On the bottom of the page there is a text:

Technical Publications
Attn: Customer Feedback Team
The Santa Cruz Operation, Inc.
PO Box 1900
Santa Cruz, California 95061-9969
USA

The didn't event bother to update the text after the purchase the sco
bussiness.


Anyway...
The link "http://docsrv.sco.com/SDK_cprog/CONTENTS.html", shows
information about C programming

here: http://docsrv.sco.com/SDK_cprog/CTOC-ObjFls.html
there is publicly availbe information about elf structure without any
restriction.

There is a copyright page, but no mention of usage restriction.

Btw there is a copyright page wich mention:
"UNIX are registered trademarks and the X Device is a trademark of The Open
Group in the United States and other countries"

[ Reply to This | # ]

I think it's time to make manifest where HP stands.
Authored by: markpmc on Thursday, August 17 2006 @ 08:58 AM EDT
Damn. I was just looking into an HP box since I wanted an AMD CPU. Oh well.

From my point of view.
I'm less disturbed by HP trying to sell intel hardward to SCO users. Makes
sense, it's business. Still bothers me.

Now Sun flat out bothers me alot. These are the guys who routinely point out
thier contributions to Open Source.

Mark

[ Reply to This | # ]

libhplx does not provide binary compatibility
Authored by: Anonymous on Friday, August 18 2006 @ 12:42 AM EDT
I'm a little surprised that nobody has pointed this out, yet. Perhaps I shouldn't be, since HP-UX has relatively little mind-share. HP's Linux porting kit, of which libhplx is a part, does not have anything to do with running Linux binaries.

It is an API compitibility layer, not an ABI compatibility layer. HP-UX doesn't even run on x86 architecture hosts. So, ABI compatibility wouldn't even be worth much. I don't know for certain, but I doubt that it uses Linux ELF headers.

All libhplx provides is an HP-UX-native port of some glibc APIs that would not otherwise be present on HP-UX. HP openly acknowledges that this is a derived work of glibc. Not the Linux kernel.

This is a tool to allow re-compilation/re-building of user-space GNU/ Linux apps under HP-UX. If there's anything in glibc that depends on the Linux ABI, libhplx would probably have to contain an alternate version that uses the HP-UX ABI. It's also ELF-based, now, but it's not the same.

You can see here, up near the top that HP says

Note: The Linux Porting Kit will help port Linux user space applications to HP- UX; however, it will not at this time, support Linux kernel applications such as drivers, privileged applications, or Linux architecture-dependent applications.

The list of APIs provided is here.

If you want to, you can also see their Porting Guide. Note how it says you have to rebuild the application.

I'm not an advocate of HP in any way. There are plenty of reasons to be annoyed with HP. It would be better to pick one with a factual basis.

[ Reply to This | # ]

You can distribute GPL-stuff however you like ...
Authored by: Anonymous on Friday, August 18 2006 @ 06:21 AM EDT
If you are the copyright owner ...

You are even free to allow others to distribute your work however they like.
Just that some software was released under GPL doesnt say that it cannot be
distributed in other ways. And if SCO *is* [1] the the copyright holder of the
files in question they have every right to redistribute it in any way they
like.

[1] which is the point this case all about

Christian

[ Reply to This | # ]

Silly pot-shot at HP
Authored by: Anonymous on Friday, August 18 2006 @ 11:11 AM EDT
Description: libhplx contains almost 200 Linux-compatible APIs in libhplx.sl, the related header files, and the library sources.

It's under the GPL because it includes library code. Not because it includes header files.

My question for HP is, when SCO made its public claim to copyright over ELF, exactly when were you going to stand up and tell the world that you released libhplx with its Linux ELF files under the GPL?

It's "Linux ELF files"? Libhplx doesn't contain ANYTHING related to ELF. It mostly contains some GNU-specific parts of glibc (the standard C library) so that Linux programs written to that specific C library can run on HP-Unix. (There's a complete list of which exact library calls right here.) This has little to do with Linux in particular (most of it is compatibility with GNU library extensions, not Linux ones). Secondly it has nothing to do with ELF. This has nothing in common with lxrun.

Lxrun is a program for running binary (i.e. already compiled) Linux programs on SCO machines. (Which *does* involve parsing ELF files, since that's what the program binary is) Binary compatibility.

Liblxhp is a library used when compiling source code that was created to use certain GNU/Linux libraries. Source compatibility.

My question for PJ is: When you made your public claims about HP distributing Linux's ELF code, had you actually bothered to check first if they were actually doing so? Seems to me that you've decided that HP is pro-SCO and now you're just looking for ways to criticize them, even if it means using arguments as thin as SCO's.

Besides which, the request that HP would jump up and say something even if they had been distributing Linux's ELF code is in itself ridiculous. Should the whole software industry jump up and down in public to discredit and dismiss every bogus legal theory that SCO puts forward? This whole case dropped off the radar years ago. And people weren't taking those claims seriously before that, either.

[ Reply to This | # ]

Groklaw © Copyright 2003-2013 Pamela Jones.
All trademarks and copyrights on this page are owned by their respective owners.
Comments are owned by the individual posters.

PJ's articles are licensed under a Creative Commons License. ( Details )