|
AIX and Dynix Files SCO Listed - Exhibit 4 to IBM's Report on SCO Compliance |
|
Tuesday, February 10 2004 @ 10:14 PM EST
|
This is Exhibit 4 to IBM's Report on SCO's Compliance.
*******************************************************************
List of Dynix and AIX Files Identified by SCO in Its Revised Response
Dynix Files1
kernel/sys/rclock.h
kernel/os/rclock.c
kernel/sys/kma_defer.h
kernel/os/kma_defer.c
kernel/os/kern_clock.c
kernel/i386/trap.c
kernel/i386/startup.c
kernel/i386/plocal.h
AIX Files
usr/include/jfs/inode.h
kernel/sys/vnode.h
kernel/sys/IA64/bootrecord.h
usr/include/liblvm.h
usr/include/lvmrec.h
usr/include/lvm.h
kernel/sys/hd_psn.h
kernel/sys/vgsa.h
|
|
Authored by: kberrien on Tuesday, February 10 2004 @ 10:24 PM EST |
I assume these are the 17 files we heard from oral arguments? Millions of lines
to 17 files (with some lines).
I get the feeling, in the end we'll have 3 files, and they'll all belong to
Novell. <grin>.
I assume AIX source isn't any more common than any other closed source's, so
little chance of anyone doing any analysis on these, or is any of it available
publically?[ Reply to This | # ]
|
- 17 files, infinite questions - Authored by: jgb on Tuesday, February 10 2004 @ 10:30 PM EST
- 17 files - Authored by: Anonymous on Tuesday, February 10 2004 @ 10:40 PM EST
- 17 files - Authored by: HipShot on Tuesday, February 10 2004 @ 11:09 PM EST
- 17 files - Authored by: bruce_s on Wednesday, February 11 2004 @ 05:02 AM EST
- 17 files - Authored by: Anonymous on Wednesday, February 11 2004 @ 10:23 AM EST
- 17 files - Authored by: Anonymous on Wednesday, February 11 2004 @ 05:07 AM EST
|
Authored by: Anonymous on Tuesday, February 10 2004 @ 10:34 PM EST |
And if I understand it right from the proceedings, only portions of these files
were copied, not the entire source. Nearly three quarters of the files are
headers.
If I were to see a whole lotta algorithms, I'd say, okay... they've made a point
-- albeit small. But if over half the code they are arguing about is interface
related and not algorithm specific, then what the heck? There's no way you can
get $5 bill outta that. I'd say make the best of an increasingly bad situation
and settle out of court.
What ever rights anyone thought SCO had, we've officially seen them flushed down
the toilet.
--mb
[ Reply to This | # ]
|
|
Authored by: OrlandoNative on Tuesday, February 10 2004 @ 10:38 PM EST |
Well, the .h files are no doubt header files, with the corresponding properties
we've discussed before.
The 'clock' related stuff is probably to do with the hardware clocks; that would
be dictated pretty much by the architecture, and thus would fall under
uncopyrightable due to necessity of design. Similarly, startup and trap
probably based on hardware design limitations as well. (basic interrupt handling
and bios-controlled operation before the kernel could take complete control)
Most of the aix stuff appears to be jfs and/or lvm related; none of which is
likely to have ever been in sysV.
[ Reply to This | # ]
|
|
Authored by: Anonymous on Tuesday, February 10 2004 @ 10:46 PM EST |
I will assume that the xxx.xxxx.xxx.h are header files -- please correct if I'm
wrong. IF in deed these are header files that means that 11 of the 17 are header
files. And they want *5 BILLION* for 11 header files and 6 other trivial
files?!?!?
I want to be like the Red Queen in Alice in Wonderland: Off with SCO's
head(er).
Bobcat[ Reply to This | # ]
|
|
Authored by: pooky on Tuesday, February 10 2004 @ 10:50 PM EST |
That's all well and great but do these files originate in UNIX System V or did
IBM/Sequent create them for AIX/Dynix? I assume it isn't BSD code since I don't
remember any of this being referenced as a copyright problem.
If they were created by IBM, how does SCO purport to own these to the court?
IBM's license terms and side letter are extremely clear on this matter.
-pooky
---
Veni, vidi, velcro.
"I came, I saw, I stuck around."
[ Reply to This | # ]
|
|
Authored by: RealProgrammer on Tuesday, February 10 2004 @ 11:31 PM EST |
Here is one file I found in Linux 2.4.20,
/usr/src/linux-2.4/include/linux/lvm.h.
The first thing I noticed was that the changelog started in 1997.
The second thing was it was a really long list of changes in a file that's only
700 lines, including comments.
The third thing I noticed was Christoph Hellwig's name in the list of
contributors!
/*
* include/linux/lvm.h
* kernel/lvm.h
* tools/lib/lvm.h
*
* Copyright (C) 1997 - 2002 Heinz Mauelshagen, Sistina Software
*
* February-November 1997
* May-July 1998
* January-March,July,September,October,Dezember 1999
* January,February,July,November 2000
* January-March,June,July 2001
* May 2002
*
* lvm is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2, or (at your option)
* any later version.
*
* lvm is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with GNU CC; see the file COPYING. If not, write to
* the Free Software Foundation, 59 Temple Place - Suite 330,
* Boston, MA 02111-1307, USA.
*
*/
/*
* Changelog
*
* 10/10/1997 - beginning of new structure creation
* 12/05/1998 - incorporated structures from lvm_v1.h and deleted lvm_v1.h
* 07/06/1998 - avoided LVM_KMALLOC_MAX define by using vmalloc/vfree
* instead of kmalloc/kfree
* 01/07/1998 - fixed wrong LVM_MAX_SIZE
* 07/07/1998 - extended pe_t structure by ios member (for statistic)
* 02/08/1998 - changes for official char/block major numbers
* 07/08/1998 - avoided init_module() and cleanup_module() to be static
* 29/08/1998 - seprated core and disk structure type definitions
* 01/09/1998 - merged kernel integration version (mike)
* 20/01/1999 - added LVM_PE_DISK_OFFSET macro for use in
* vg_read_with_pv_and_lv(), pv_move_pe(), pv_show_pe_text()...
* 18/02/1999 - added definition of time_disk_t structure for;
* keeps time stamps on disk for nonatomic writes (future) *
15/03/1999 - corrected LV() and VG() macro definition to use argument
* instead of minor
* 03/07/1999 - define for genhd.c name handling
* 23/07/1999 - implemented snapshot part
* 08/12/1999 - changed LVM_LV_SIZE_MAX macro to reflect current 1TB limit
* 01/01/2000 - extended lv_v2 core structure by wait_queue member
* 12/02/2000 - integrated Andrea Arcagnelli's snapshot work
* 18/02/2000 - seperated user and kernel space parts by
* #ifdef them with __KERNEL__
* 08/03/2000 - implemented cluster/shared bits for vg_access
* 26/06/2000 - implemented snapshot persistency and resizing support
* 02/11/2000 - added hash table size member to lv structure
* 12/11/2000 - removed unneeded timestamp definitions
* 24/12/2000 - removed LVM_TO_{CORE,DISK}*, use cpu_{from, to}_le*
* instead - Christoph Hellwig
* 22/01/2001 - Change ulong to uint32_t
* 14/02/2001 - changed LVM_SNAPSHOT_MIN_CHUNK to 1 page
* 20/02/2001 - incremented IOP version to 11 because of incompatible
* change in VG activation (in order to support devfs better)
* 01/03/2001 - Revert to IOP10 and add VG_CREATE_OLD call for compatibility
* 08/03/2001 - new lv_t (in core) version number 5: changed page member
* to (struct kiobuf *) to use for COW exception table io
* 26/03/2001 - changed lv_v4 to lv_v5 in structure definition (HM)
* 21/06/2001 - changed BLOCK_SIZE back to 1024 for non S/390
* 22/06/2001 - added Andreas Dilger's PE on 4k boundary alignment
enhancements
* 19/07/2001 - added rwsem compatibility macros for 2.2 kernels
* 13/11/2001 - reduced userspace inclusion of kernel headers to a minimum
*
*/
#ifndef _LVM_H_INCLUDE
#define _LVM_H_INCLUDE
#define LVM_RELEASE_NAME "1.0.5+"
#define LVM_RELEASE_DATE "22/07/2002"
#define _LVM_KERNEL_H_VERSION "LVM "LVM_RELEASE_NAME"
("LVM_RELEASE_DATE")"
[/code]
[....]
---
(I'm not a lawyer, but I know right from wrong)[ Reply to This | # ]
|
|
Authored by: Anonymous on Tuesday, February 10 2004 @ 11:57 PM EST |
Completely moot. Novell 'excused', if you will, any and all of IBM's purported
trangressions October last.
Additionally, *if* this "$ echo" documention Novell asserted today is
viable, then *all* of Caldera's or SCOG's claims just got flushed. Furthermore
SCOG will have some very interesting explaining to do when the few companies
which, according to SCOG purchased licenses, start demanding their money, with
interest back.
As Professor Moglen wrote "you can'to sue over what you don't own."
Or to put it another way, you can't charge for what you don't own.
krp[ Reply to This | # ]
|
|
Authored by: sjohnson on Wednesday, February 11 2004 @ 12:29 AM EST |
I'm by no means a Linux kernel experts, but I've been exposed to the OSs in
question.
Dynix
Files
kernel/sys/rclock.h
kernel/os/rclock.c
kernel/sys/kma_defe
r.h
kernel/os/kma_defer.c
kernel/os/kern_clock.c
kernel/i386/trap.c<
br>
kernel/i386/startup.c
kernel/i386/plocal.h
All of the Dynix
files seems to deal with Read, Copy, Update (RCU) and SMP
AIX
Files
usr/include/jfs/inode.h
kernel/sys/vnode.h
kernel/sys/IA64/boo
trecord.h
The inode and vnode include files (.h files) refer to Unix
file systems components (like Clusters and Sectors in DOS file systems). The are
a part of the JFS2 claims.
The bootrecord.h file is confusing. I believe it
refers to the bootstrap file system ( where the boot kernel lives.) The IA64 is
the confusing bit since they refer to AIX files. My guess it's from the Project
Montery source code that The SCO Group has. It's peripheral related to file
system so I'll say it part of JFS
claims.
usr/include/liblvm.h
usr/include/lvmrec.h
usr/include/lv
m.h
kernel/sys/hd_psn.h
kernel/sys/vgsa.h
These files are
definitely part of the Enterprise Storage Manager claims. The lvm files refer to
the "Logical Volume Manager". The hd_psn refers to the physical hard drives
under the LVM. And vgsa.h file refers to "Volume Groups".
A short,
simplified explaination of a Logical Storage Manager. The physical hard drives
are added into a big pool of unused storage called a Volume Group. A Volume
Group is carved into one or more units called Logical Volumes. Logical Volumes
are where file systems (like JFS2) are created and data is stored. The Logical
Volumes are what the units OS that the operating system see. [ Reply to This | # ]
|
|
Authored by: Rhys Weatherley on Wednesday, February 11 2004 @ 02:31 AM EST |
What I find amusing about this list is that the only JFS file from AIX that is
listed is "usr/include/jfs/inode.h", with no .c files backing it up. I think
that this is easily explainable.
As we know, the Linux JFS is based on the
OS/2 version, not the original AIX version. So it is quite possible that SCO
compared the original AIX version with the Linux version. Since the OS/2 and
AIX versions are completely different, the only similarity that SCO could find
was in the .h file that describes the inode layout.
The inode layout is the
same because of compatibility (OS/2 needed to be able to read AIX-formatted
disks and vice versa). So, no big surprise there. It's on a par with the
Berkeley Packet Filter code from last August: it looks the same because it is
doing the same thing, not because there was any code copying.
They are
grasping at straws again - there's no AIX JFS code in the Linux tree at all. We
knew that of course, but this submission shows that they still don't or are only
beginning to suspect.
I think they seriously thought that there was a
million lines of infringing code going into this, based on superficial
similarities. But they didn't have the technical or Copyright knowhow to split
the similarities up into categories labelled "BSD", "public domain",
"coincidence", "third-party owned code", and "other". They've since discovered
that "other" is all that they can go after and it is a very small set. That's
what happens when you lay off all your programmers and hire lawyers instead! [ Reply to This | # ]
|
- JFS files - Authored by: mflaster on Wednesday, February 11 2004 @ 10:41 AM EST
- JFS files - Authored by: BigFire on Wednesday, February 11 2004 @ 11:20 AM EST
- JFS files - Authored by: blang on Wednesday, February 11 2004 @ 11:41 AM EST
|
Authored by: Anonymous on Wednesday, February 11 2004 @ 03:51 AM EST |
I wondered a bit why SCO lists only headers ("*.h") from AIX. Could
this be because IBM has not yet supplied AIX kernel sources to SCO? Headers like
this could be available on any end-user AIX system, even if it does not have
full sources.
I hate to say, but if the above is correct, some of SCO's complaints about IBM's
responses do make sense (and not only in the domain of "SCO logic").
Remember SCO requested sources of all versions (even unreleased) of AIX, IBM
said it will provide only the relevant released versions, but if I understood
the court transcript and SCO's reply to IBM correctly, IBM has not yet provided
SCO with _any_ version of AIX, which makes it kind of hard for SCO to refer to
AIX sources, other than public headers. The IBM lawyer justified this by the
court order: "...and the reason we have not produced it, by the way, Your
Honor, is because you ordered us not to". But I cannot help sensing some
deliberate delay tactics here: why didn't IBM provide the released AIX version
before the court order went into effect at the begining of last December?
Of course, whether material in AIX that is not from System V (which SCO already
has) is incriminating, is another matter.
[ Reply to This | # ]
|
|
Authored by: Anonymous on Wednesday, February 11 2004 @ 05:17 AM EST |
...if 17 files of it are enough to turn Linux into an enterprise class software
package.
Sheesh, who do they think they're kidding?[ Reply to This | # ]
|
|
Authored by: jmichel on Wednesday, February 11 2004 @ 08:07 AM EST |
Google is good stuff. Here are some things I found just by placing rclock.h in
a search.
http://www.ai.rug.nl/~floris1/apitfmobject/header-list.html
I will assume this is a linux implementation of a file call rclock.h.
This person not the same as the person who has contributed to a kernel patch
below. There is not much information on the site, but complete headers for
several files including rclock.h.
class RClock
Interface to the systemtime More...
Definition
#include <rclock.h>
List of all Methods
Annotated List
Files
Globals
Hierarchy
Index
Public Members
operator double () const
static double time ()
static string timeString (double ts=-1.0)
Detailed Description
Interface to the systemtime
operator double ()
[const]
converts the system time to a double
double time ()
[static]
returns the system-time as a double
string timeString (double ts=-1.0)
[static]
returns the time as a time string dd-mm-yyyy
#ifndef RCLOCK_H
#define RCLOCK_H
#include <string>
#include <sys/time.h>
#include <unistd.h>
/**
Interface to the systemtime
*/
class RClock {
public:
/** converts the system time to a double*/
operator double() const;
/** returns the system-time as a double*/
static double time();
/** returns the time as a time string dd-mm-yyyy */
static string timeString(double ts=-1.0);
};
#endif
Now this one is interesting. Here are two people that have been working on RCU
methods for Linux and they have emails from...
Sequent and IBM. This must be the basis for SCO thinking that these files are
copyright infringements of SysV code.
I mean they must be infringements. Why even the unconstitutional copyright
notice tells you so.
See here.
"This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by the Free
Software Foundation; either version 2 of the License, or (at your option) any
later version."
"Author: Dipankar Sarma <dipankar@sequent.com>
(Based on a Dynix/ptx implementation by Paul Mckenney
<paul.mckenney@us.ibm.com>)"
After all no one can write code based on an implementation of anyone elses. The
entire software industry would simply colapse in light of these thoughts....
http://lse.sourceforge.net/locking/rcu/patches/rclock-2.4.1-01.patch
There is also a rclock-2.4.2-01.patch at the same site.
diff -u --recursive --new-file 2.4.1/Documentation/rclock.txt
v2.4.1-rc/Documentation/rclock.txt
--- 2.4.1/Documentation/rclock.txt Thu Jan 1 05:30:00 1970
+++ v2.4.1-rc/Documentation/rclock.txt Fri Feb 23 14:19:13 2001
@@ -0,0 +1,36 @@
+This document describes the rclock kernel patch version 0.01.
+
+To use read-copy update, install the patch on your 2.4.1 kernel
+and enable CONFIG_RCLOCK during configuration.
+
+
+While most of the read-copy update code is arch independent, a portion
+of it is arch dependent (user trap counter and SMP loca timer).
+This implementation is only for i386 architecture.
+
+While the read-copy callback maintenance code and the design is solid
+the linux implementation is somewhat lame. It needs to be cleaned
+up with more optimization for less interference by the quiescent
+state detection mechanism.
+
+Things that are known to work -
+
+1. Basic callback mechanism
+2. The kmem_deferred_free interface
+3. Basic quiescent state detection mechanism
+
+
+Things that are unknown -
+
+1. Reliability of the CPU stall detection mechanism
+2. rclock stuff under heavy load. This will be tested when our old
+ ptx test harness is ready to run on linux
+3. Did I cover all the usertraps ?
+4. How much interference the quiescent state detection mechanism has ?
+
+These are all being investigated and will be enhanced in a later released.
+
+For any problems, contact dipankar@sequent.com.
+The detailed documentation is available at
+http://lse.sourcefore.net/locking/rclock.html
+
--- 2.4.1/include/linux/kmemdef.h Thu Jan 1 05:30:00 1970
+++ v2.4.1-rc/include/linux/kmemdef.h Fri Feb 23 13:05:25 2001
@@ -0,0 +1,72 @@
+/*
+ * Support for deferred freeing of memory using Read-Copy Update
+ * mechanism.
+ *
+ * Copyright (c) International Business Machines Corp., 2001
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ *
+ *
+ * Author: Dipankar Sarma <dipankar@sequent.com>
+ * (Based on a Dynix/ptx implementation by
+ * Paul Mckenney <paul.mckenney@us.ibm.com>)
+ *
+ *
+ *
+ * For detailed explanation of Read-Copy Update mechanism see -
+ * http://lse.sourceforge.net/locking/rclock.html
+ *
+ */
+
+
+/*
+ * Read-Copy Update mechanism for mutual exclusion
+ *
+ * Copyright (c) International Business Machines Corp., 2001
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ *
+ *
+ * Author: Dipankar Sarma <dipankar@sequent.com>
+ * (Based on a Dynix/ptx implementation by
+ * Paul Mckenney <paul.mckenney@us.ibm.com>)
+ *
+ *
+ * For detailed explanation of Read-Copy Update mechanism see -
+ * http://lse.sourceforge.net/locking/rclock.html
+ *
+ */
+
+#ifndef __LINUX_RCLOCK_H
+#define __LINUX_RCLOCK_H
+ * Support for deferred freeing of memory using Read-Copy Update
+ * mechanism.
+ *
+ * Copyright (c) International Business Machines Corp., 2001
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ *
+ *
+ * Author: Dipankar Sarma <dipankar@sequent.com>
+ * (Based on a Dynix/ptx implementation by
+ * Paul Mckenney <paul.mckenney@us.ibm.com>)
+ *
+ *
+ * For detailed explanation of Read-Copy Update mechanism see -
+ * http://lse.sourceforge.net/locking/rclock.html
+ *
+ */
+
+/*
+ * Handles ``deferred'' kfree. The block to be freed is queued until
+ * it can be guaranteed that no CPU could be still holding a reference to
+ * Read-Copy Update mechanism for mutual exclusion
+ *
+ * Copyright (c) International Business Machines Corp., 2001
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ *
+ * Author: Dipankar Sarma <dipankar@sequent.com>
+ * (Based on a Dynix/ptx implementation by
+ * Paul Mckenney <paul.mckenney@us.ibm.com>)
+ *
+ *
+ * For detailed explanation of Read-Copy Update mechanism see -
+ * http://lse.sourceforge.net/locking/rclock.html
+ *
+ */
+
+
+/*
+ * Control how CPU stalls are handled.
+ */
+#ifdef DEBUG /* Make stalls panic only in debug kernel. */
+#define RCLOCK_STALL_PANIC /* Make stalls panic. */
+#endif /* DEBUG */
+
+#include <linux/types.h>
+#include <linux/kernel.h>
+#include <linux/spinlock.h>
+#include <linux/smp.h>
+#include <linux/sched.h>
+#include <linux/malloc.h>
+#include <asm/atomic.h>
+#include <asm/bitops.h>
+#include <linux/rclock.h>
+
Can a use of rclock in a algebraic expression constitute a work of prior art or
publishing the works?
http://ewic.bcs.org/conferences/1996/formalmethods/papers/paper16.pdf[ Reply to This | # ]
|
|
Authored by: HipShot on Wednesday, February 11 2004 @ 08:16 AM EST |
Has anyone here read the contract between IBM, Sequent, and SCO regarding the
Monterey Project? I'm curious about any clauses that would supercede prior
contractual issues, or any clauses that would render the contract null and void
in the presence of preexisting or conflicting contractual rights or
obligations.
It occurs to me that the Monterey Project contract could actually favor IBM
legally if SCO brought code to the table, and had to leave it there. Would that
not supercede any previous contracts regarding the same code? What is the
default position of the MP contract?[ Reply to This | # ]
|
|
Authored by: Anonymous on Wednesday, February 11 2004 @ 09:59 AM EST |
Well, at least its not all headers like before. [ Reply to This | # ]
|
|
Authored by: Anonymous on Wednesday, February 11 2004 @ 10:53 AM EST |
kernel/sys/IA64/bootrecord.h
Ah, what can we say? The file, or what it descrivbes did not
even exist until the late 1990s! This is a little after SysV. Has anyone asked
Intel about their `stealing' SCOs inefectual prosperity...
[ Reply to This | # ]
|
|
Authored by: Anonymous on Wednesday, February 11 2004 @ 12:17 PM EST |
SCO keeps harping on the fact that IBM has only given them 2 CD's of the Dynix
source code...giving me (and possibly others) the impresssion that there
is more Dynix code to be had.
If you can fit the entire source code on
2 CD's, then I suspect that this is just another attempt by SCO to confuse the
issue and whine about something for their own benefit. Despite their complaints,
however, IBM has not spoken up in court to point out that 2 CD's constitutes a
complete package of Dynix code as requested in the Discovery process. So, ergo,
I am confused & curious.
Does anyone know how much of the Dynix
code you can fit on 2 CD's? (Assuming CD-ROM, not DVD for the sake of
arguement).
Mike A.[ Reply to This | # ]
|
|
Authored by: Anonymous on Wednesday, February 11 2004 @ 07:38 PM EST |
On my Redhat 9.0 ststem with full install and kernel souurces I get 563 lines
using locate with no path names:
The only thing without copyright is a qt3.1 library example which I assume would
belong to Trolltech
Maybe I'm just being simplistic.....Sorry for the verbosity here:
___________________________________________________________________
_________________________DYNIX FILES ______________________________
___________________________________________________________________
locate rclock.h
(nothing)
locate rclock.c
(nothing)
locate kma_defer.h
(nothing)
locate kma_defer.c
(nothing)
locate kern_clock.c
(nothing)
locate trap.c
(nothing)
locate startup.c
/usr/share/doc/qt-devel-3.1.1/examples/network/remotecontrol/startup.cpp
#include "startup.h"
#include "remotectrlimpl.h"
#include "maindialog.h"
#include "ipcserver.h"
#include <qsocket.h>
#include <qlabel.h>
static const Q_UINT16 ipcPort = 54923;
StartUp::StartUp()
{
remoteCtrl = 0;
mainDialog = 0;
socket = new QSocket( this );
connect( socket, SIGNAL(connected()), SLOT(startRemoteCtrl()) );
connect( socket, SIGNAL(error(int)), SLOT(startMainDialog()) );
socket->connectToHost( "localhost", ipcPort );
}
StartUp::~StartUp()
{
delete remoteCtrl;
delete mainDialog;
}
void StartUp::startRemoteCtrl()
{
remoteCtrl = new RemoteCtrlImpl( socket );
remoteCtrl->show();
}
void StartUp::startMainDialog()
{
mainDialog = new MainDialog();
mainDialog->show();
IpcServer *server = new IpcServer( ipcPort, this );
connect( server, SIGNAL(receivedText(const QString&)),
mainDialog->description, SLOT(setText(const QString&)) );
connect( server, SIGNAL(receivedPixmap(const QPixmap&)),
mainDialog->image, SLOT(setPixmap(const QPixmap&)) );
}
locate plocal.h
(nothing)
___________________________________________________________________
_________________________AIX FILES ________________________________
___________________________________________________________________
locate inode.h
/usr/src/linux-2.4.20-8/fs/ntfs/inode.h
/*
* inode.h - Header file for inode.c
*
* Copyright (C) 1997 R�is Duchesne
* Copyright (C) 1998 Martin von Lwis
* Copyright (c) 2001 Anton Altparmakov (AIA)
*/
ntfs_attribute *ntfs_find_attr(ntfs_inode *ino, int type, char *name);
int ntfs_read_attr(ntfs_inode *ino, int type, char *name, __s64 offset,
ntfs_io *buf);
int ntfs_write_attr(ntfs_inode *ino, int type, char *name, __s64 offset,
ntfs_io *buf);
int ntfs_init_inode(ntfs_inode *ino, ntfs_volume *vol, int inum);
void ntfs_clear_inode(ntfs_inode *ino);
int ntfs_check_mft_record(ntfs_volume *vol, char *record);
int ntfs_alloc_inode(ntfs_inode *dir, ntfs_inode *result, const char *filename,
int namelen, ntfs_u32);
int ntfs_alloc_file(ntfs_inode *dir, ntfs_inode *result, char *filename,
int namelen);
int ntfs_update_inode(ntfs_inode *ino);
int ntfs_vcn_to_lcn(ntfs_inode *ino, int vcn);
int ntfs_readwrite_attr(ntfs_inode *ino, ntfs_attribute *attr, __s64 offset,
ntfs_io *dest);
int ntfs_allocate_attr_number(ntfs_inode *ino, int *result);
int ntfs_decompress_run(unsigned char **data, int *length,
ntfs_cluster_t *cluster, int *ctype);
void ntfs_decompress(unsigned char *dest, unsigned char *src, ntfs_size_t l);
int splice_runlists(ntfs_runlist **rl1, int *r1len, const ntfs_runlist *rl2,
int r2len);
/*
* NOTE: Neither of the ntfs_*_bit functions are atomic! But we don't need
* them atomic at present as we never operate on shared/cached bitmaps.
*/
static __inline__ int ntfs_test_and_set_bit(unsigned char *byte, const int bit)
{
unsigned char *ptr = byte + (bit >> 3);
int b = 1 << (bit & 7);
int oldbit = *ptr & b ? 1 : 0;
*ptr |= b;
return oldbit;
}
locate vnode.h
/usr/src/linux-2.4.20-8/fs/afs/vnode.h
/* vnode.h: AFS vnode record
*
* Copyright (C) 2002 Red Hat, Inc. All Rights Reserved.
* Written by David Howells (dhowells@redhat.com)
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version
* 2 of the License, or (at your option) any later version.
*/
#ifndef _LINUX_AFS_VNODE_H
#define _LINUX_AFS_VNODE_H
#include <linux/fs.h>
#include <linux/version.h>
#include "server.h"
#include "kafstimod.h"
#ifdef __KERNEL__
struct afs_rxfs_fetch_descriptor;
/*****************************************************************************/
/*
* AFS inode private data
*/
struct afs_vnode
{
#if LINUX_VERSION_CODE > KERNEL_VERSION(2,5,0)
struct inode vfs_inode; /* the VFS's inode record */
#else
struct inode *inode; /* the VFS's inode */
#endif
afs_volume_t *volume; /* volume on which vnode resides */
afs_fid_t fid; /* the file identifier for this inode */
afs_file_status_t status; /* AFS status info for this file */
unsigned nix; /* vnode index in cache */
wait_queue_head_t update_waitq; /* status fetch waitqueue */
unsigned update_cnt; /* number of outstanding ops that will update the
* status */
spinlock_t lock; /* waitqueue/flags lock */
unsigned flags;
#define AFS_VNODE_CHANGED 0x00000001 /* set if vnode reported changed by
callback */
#define AFS_VNODE_DELETED 0x00000002 /* set if vnode deleted on server */
#define AFS_VNODE_MOUNTPOINT 0x00000004 /* set if vnode is a mountpoint symlink
*/
/* outstanding callback notification on this file */
afs_server_t *cb_server; /* server that made the current promise */
struct list_head cb_link; /* link in server's promises list */
struct list_head cb_hash_link; /* link in master callback hash */
afs_timer_t cb_timeout; /* timeout on promise */
unsigned cb_version; /* callback version */
unsigned cb_expiry; /* callback expiry time */
afs_callback_type_t cb_type; /* type of callback */
};
static inline afs_vnode_t *AFS_FS_I(struct inode *inode)
{
#if LINUX_VERSION_CODE > KERNEL_VERSION(2,5,0)
return list_entry(inode,afs_vnode_t,vfs_inode);
#else
return inode->u.generic_ip;
#endif
}
static inline struct inode *AFS_VNODE_TO_I(afs_vnode_t *vnode)
{
#if LINUX_VERSION_CODE > KERNEL_VERSION(2,5,0)
return &vnode->vfs_inode;
#else
return vnode->inode;
#endif
}
extern int afs_vnode_fetch_status(afs_vnode_t *vnode);
extern int afs_vnode_fetch_data(afs_vnode_t *vnode, struct
afs_rxfs_fetch_descriptor *desc);
extern int afs_vnode_give_up_callback(afs_vnode_t *vnode);
extern struct afs_timer_ops afs_vnode_cb_timed_out_ops;
#endif /* __KERNEL__ */
#endif /* _LINUX_AFS_VNODE_H */
locate bootrecord.h
(nothing)
locate liblvm.h
(nothing)
locate lvmrec.h
(nothing)
locate lvm.h
/usr/src/linux-2.4.20-8/include/linux/lvm.h
/*
* include/linux/lvm.h
* kernel/lvm.h
* tools/lib/lvm.h
*
* Copyright (C) 1997 - 2002 Heinz Mauelshagen, Sistina Software
*
* February-November 1997
* May-July 1998
* January-March,July,September,October,Dezember 1999
* January,February,July,November 2000
* January-March,June,July 2001
* May 2002
*
* lvm is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2, or (at your option)
* any later version.
*
* lvm is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with GNU CC; see the file COPYING. If not, write to
* the Free Software Foundation, 59 Temple Place - Suite 330,
* Boston, MA 02111-1307, USA.
*
*/
/*
* Changelog
*
* 10/10/1997 - beginning of new structure creation
* 12/05/1998 - incorporated structures from lvm_v1.h and deleted lvm_v1.h
* 07/06/1998 - avoided LVM_KMALLOC_MAX define by using vmalloc/vfree
* instead of kmalloc/kfree
* 01/07/1998 - fixed wrong LVM_MAX_SIZE
* 07/07/1998 - extended pe_t structure by ios member (for statistic)
* 02/08/1998 - changes for official char/block major numbers
* 07/08/1998 - avoided init_module() and cleanup_module() to be static
* 29/08/1998 - seprated core and disk structure type definitions
* 01/09/1998 - merged kernel integration version (mike)
* 20/01/1999 - added LVM_PE_DISK_OFFSET macro for use in
* vg_read_with_pv_and_lv(), pv_move_pe(), pv_show_pe_text()...
* 18/02/1999 - added definition of time_disk_t structure for;
* keeps time stamps on disk for nonatomic writes (future)
* 15/03/1999 - corrected LV() and VG() macro definition to use argument
* instead of minor
* 03/07/1999 - define for genhd.c name handling
* 23/07/1999 - implemented snapshot part
* 08/12/1999 - changed LVM_LV_SIZE_MAX macro to reflect current 1TB limit
* 01/01/2000 - extended lv_v2 core structure by wait_queue member
* 12/02/2000 - integrated Andrea Arcagnelli's snapshot work
* 18/02/2000 - seperated user and kernel space parts by
* #ifdef them with __KERNEL__
* 08/03/2000 - implemented cluster/shared bits for vg_access
* 26/06/2000 - implemented snapshot persistency and resizing support
* 02/11/2000 - added hash table size member to lv structure
* 12/11/2000 - removed unneeded timestamp definitions
* 24/12/2000 - removed LVM_TO_{CORE,DISK}*, use cpu_{from, to}_le*
* instead - Christoph Hellwig
* 22/01/2001 - Change ulong to uint32_t
* 14/02/2001 - changed LVM_SNAPSHOT_MIN_CHUNK to 1 page
* 20/02/2001 - incremented IOP version to 11 because of incompatible
* change in VG activation (in order to support devfs better)
* 01/03/2001 - Revert to IOP10 and add VG_CREATE_OLD call for compatibility
* 08/03/2001 - new lv_t (in core) version number 5: changed page member
* to (struct kiobuf *) to use for COW exception table io
* 26/03/2001 - changed lv_v4 to lv_v5 in structure definition (HM)
* 21/06/2001 - changed BLOCK_SIZE back to 1024 for non S/390
* 22/06/2001 - added Andreas Dilger's PE on 4k boundary alignment
enhancements
* 19/07/2001 - added rwsem compatibility macros for 2.2 kernels
* 13/11/2001 - reduced userspace inclusion of kernel headers to a minimum
*
*/
#ifndef _LVM_H_INCLUDE
#define _LVM_H_INCLUDE
#define LVM_RELEASE_NAME "1.0.5+"
#define LVM_RELEASE_DATE "22/07/2002"
#define _LVM_KERNEL_H_VERSION "LVM "LVM_RELEASE_NAME"
("LVM_RELEASE_DATE")"
#include <linux/version.h>
/*
* preprocessor definitions
*/
/* if you like emergency reset code in the driver */
#define LVM_TOTAL_RESET
#ifdef __KERNEL__
#undef LVM_HD_NAME /* display nice names in /proc/partitions */
/* lots of debugging output (see driver source)
#define DEBUG_LVM_GET_INFO
#define DEBUG
#define DEBUG_MAP
#define DEBUG_MAP_SIZE
#define DEBUG_IOCTL
#define DEBUG_READ
#define DEBUG_GENDISK
#define DEBUG_VG_CREATE
#define DEBUG_DEVICE
#define DEBUG_KFREE
*/
#include <linux/kdev_t.h>
#include <linux/list.h>
#include <asm/types.h>
#include <linux/major.h>
#else
/* This prevents the need to include <linux/list.h> which
causes problems on some platforms. It's not nice but then
neither is the alternative. */
struct list_head {
struct list_head *next, *prev;
};
#define __KERNEL__
#include <linux/kdev_t.h>
#undef __KERNEL__
#endif /* #ifndef __KERNEL__ */
#ifdef __KERNEL__
#include <linux/spinlock.h>
#include <asm/semaphore.h>
#endif /* #ifdef __KERNEL__ */
#include <asm/page.h>
#if !defined ( LVM_BLK_MAJOR) || !defined ( LVM_CHAR_MAJOR)
#error Bad include/linux/major.h - LVM MAJOR undefined
#endif
#ifdef BLOCK_SIZE
#undef BLOCK_SIZE
#endif
#ifdef CONFIG_ARCH_S390
#define BLOCK_SIZE 4096
#else
#define BLOCK_SIZE 1024
#endif
#ifndef SECTOR_SIZE
#define SECTOR_SIZE 512
#endif
/*
* Number of guaranteed callback structs in case of extreme VM load:
*/
#define NR_LVM_CALLBACK 256
/* structure version */
#define LVM_STRUCT_VERSION 1
#define LVM_DIR_PREFIX "/dev/"
/*
* i/o protocol version
*
* defined here for the driver and defined seperate in the
* user land tools/lib/liblvm.h
*
*/
#define LVM_DRIVER_IOP_VERSION 10
#define LVM_NAME "lvm"
#define LVM_GLOBAL "global"
#define LVM_DIR "lvm"
#define LVM_VG_SUBDIR "VGs"
#define LVM_LV_SUBDIR "LVs"
#define LVM_PV_SUBDIR "PVs"
/*
* VG/LV indexing macros
*/
/* character minor maps directly to volume group */
#define VG_CHR(a) ( a)
/* block minor indexes into a volume group/logical volume indirection table */
#define VG_BLK(a) ( vg_lv_map[a].vg_number)
#define LV_BLK(a) ( vg_lv_map[a].lv_number)
/*
* absolute limits for VGs, PVs per VG and LVs per VG
*/
#define ABS_MAX_VG 99
#define ABS_MAX_PV 256
#define ABS_MAX_LV 256 /* caused by 8 bit minor */
#define MAX_VG ABS_MAX_VG
#define MAX_LV ABS_MAX_LV
#define MAX_PV ABS_MAX_PV
#if ( MAX_VG > ABS_MAX_VG)
#undef MAX_VG
#define MAX_VG ABS_MAX_VG
#endif
#if ( MAX_LV > ABS_MAX_LV)
#undef MAX_LV
#define MAX_LV ABS_MAX_LV
#endif
/*
* VGDA: default disk spaces and offsets
*
* there's space after the structures for later extensions.
*
* offset what size
* --------------- ---------------------------------- ------------
* 0 physical volume structure ~500 byte
*
* 1K volume group structure ~200 byte
*
* 6K namelist of physical volumes 128 byte each
*
* 6k + n * ~300byte n logical volume structures ~300 byte each
*
* + m * 4byte m physical extent alloc. structs 4 byte each
*
* End of disk - first physical extent typically 4 megabyte
* PE total *
* PE size
*
*
*/
/* DONT TOUCH THESE !!! */
/*
* LVM_PE_T_MAX corresponds to:
*
* 8KB PE size can map a ~512 MB logical volume at the cost of 1MB memory,
*
* 128MB PE size can map a 8TB logical volume at the same cost of memory.
*
* Default PE size of 4 MB gives a maximum logical volume size of 256 GB.
*
* Maximum PE size of 16GB gives a maximum logical volume size of 1024 TB.
*
* AFAIK, the actual kernels limit this to 1 TB.
*
* Should be a sufficient spectrum ;*)
*/
/* This is the usable size of pe_disk_t.le_num !!! v v */
#define LVM_PE_T_MAX ( ( 1 << ( sizeof ( uint16_t) * 8)) - 2)
#define LVM_LV_SIZE_MAX(a) ( ( long long) LVM_PE_T_MAX * (a)->pe_size > (
long long) 1024*1024/SECTOR_SIZE*1024*1024 ? ( long long)
1024*1024/SECTOR_SIZE*1024*1024 : ( long long) LVM_PE_T_MAX * (a)->pe_size)
#define LVM_MIN_PE_SIZE ( 8192L / SECTOR_SIZE) /* 8 KB in sectors */
#define LVM_MAX_PE_SIZE ( 16L * 1024L * 1024L / SECTOR_SIZE * 1024) /* 16GB in
sectors */
#define LVM_DEFAULT_PE_SIZE ( 4096L * 1024 / SECTOR_SIZE) /* 4 MB in sectors */
#define LVM_DEFAULT_STRIPE_SIZE 16L /* 16 KB */
#define LVM_MIN_STRIPE_SIZE ( PAGE_SIZE/SECTOR_SIZE) /* PAGESIZE in sectors */
#define LVM_MAX_STRIPE_SIZE ( 512L * 1024 / SECTOR_SIZE) /* 512 KB in sectors
*/
#define LVM_MAX_STRIPES 128 /* max # of stripes */
#define LVM_MAX_SIZE ( 1024LU * 1024 / SECTOR_SIZE * 1024 * 1024) /*
1TB[sectors] */
#define LVM_MAX_MIRRORS 2 /* future use */
#define LVM_MIN_READ_AHEAD 0 /* minimum read ahead sectors */
#define LVM_DEFAULT_READ_AHEAD 1024 /* sectors for 512k scsi segments */
#define LVM_MAX_READ_AHEAD 1024 /* maximum read ahead sectors */
#define LVM_MAX_LV_IO_TIMEOUT 60 /* seconds I/O timeout (future use) */
#define LVM_PARTITION 0xfe /* LVM partition id */
#define LVM_NEW_PARTITION 0x8e /* new LVM partition id (10/09/1999) */
#define LVM_PE_SIZE_PV_SIZE_REL 5 /* max relation PV size and PE size */
#define LVM_SNAPSHOT_MAX_CHUNK 1024 /* 1024 KB */
#define LVM_SNAPSHOT_DEF_CHUNK 64 /* 64 KB */
#define LVM_SNAPSHOT_MIN_CHUNK (PAGE_SIZE/1024) /* 4 or 8 KB */
#define UNDEF -1
/*
* ioctls
* FIXME: the last parameter to _IO{W,R,WR} is a data type. The macro will
* expand this using sizeof(), so putting "1" there is misleading
* because sizeof(1) = sizeof(int) = sizeof(2) = 4 on a 32-bit machine!
*/
/* volume group */
#define VG_CREATE_OLD _IOW ( 0xfe, 0x00, 1)
#define VG_REMOVE _IOW ( 0xfe, 0x01, 1)
#define VG_EXTEND _IOW ( 0xfe, 0x03, 1)
#define VG_REDUCE _IOW ( 0xfe, 0x04, 1)
#define VG_STATUS _IOWR ( 0xfe, 0x05, 1)
#define VG_STATUS_GET_COUNT _IOWR ( 0xfe, 0x06, 1)
#define VG_STATUS_GET_NAMELIST _IOWR ( 0xfe, 0x07, 1)
#define VG_SET_EXTENDABLE _IOW ( 0xfe, 0x08, 1)
#define VG_RENAME _IOW ( 0xfe, 0x09, 1)
/* Since 0.9beta6 */
#define VG_CREATE _IOW ( 0xfe, 0x0a, 1)
/* logical volume */
#define LV_CREATE _IOW ( 0xfe, 0x20, 1)
#define LV_REMOVE _IOW ( 0xfe, 0x21, 1)
#define LV_ACTIVATE _IO ( 0xfe, 0x22)
#define LV_DEACTIVATE _IO ( 0xfe, 0x23)
#define LV_EXTEND _IOW ( 0xfe, 0x24, 1)
#define LV_REDUCE _IOW ( 0xfe, 0x25, 1)
#define LV_STATUS_BYNAME _IOWR ( 0xfe, 0x26, 1)
#define LV_STATUS_BYINDEX _IOWR ( 0xfe, 0x27, 1)
#define LV_SET_ACCESS _IOW ( 0xfe, 0x28, 1)
#define LV_SET_ALLOCATION _IOW ( 0xfe, 0x29, 1)
#define LV_SET_STATUS _IOW ( 0xfe, 0x2a, 1)
#define LE_REMAP _IOW ( 0xfe, 0x2b, 1)
#define LV_SNAPSHOT_USE_RATE _IOWR ( 0xfe, 0x2c, 1)
#define LV_STATUS_BYDEV _IOWR ( 0xfe, 0x2e, 1)
#define LV_RENAME _IOW ( 0xfe, 0x2f, 1)
#define LV_BMAP _IOWR ( 0xfe, 0x30, 1)
/* physical volume */
#define PV_STATUS _IOWR ( 0xfe, 0x40, 1)
#define PV_CHANGE _IOWR ( 0xfe, 0x41, 1)
#define PV_FLUSH _IOW ( 0xfe, 0x42, 1)
/* physical extent */
#define PE_LOCK_UNLOCK _IOW ( 0xfe, 0x50, 1)
#define PE_LOCKED_COPY _IOW ( 0xfe, 0x51, 1)
/* i/o protocol version */
#define LVM_GET_IOP_VERSION _IOR ( 0xfe, 0x98, 1)
#ifdef LVM_TOTAL_RESET
/* special reset function for testing purposes */
#define LVM_RESET _IO ( 0xfe, 0x99)
#endif
/* lock the logical volume manager */
#if LVM_DRIVER_IOP_VERSION > 11
#define LVM_LOCK_LVM _IO ( 0xfe, 0x9A)
#else
/* This is actually the same as _IO ( 0xff, 0x00), oops. Remove for IOP 12+ */
#define LVM_LOCK_LVM _IO ( 0xfe, 0x100)
#endif
/* END ioctls */
/*
locate hd_psn.h
(nothing)
locate hd_psn.h
(nothing)
locate vgsa.h
(nothing)
[ Reply to This | # ]
|
|
Authored by: Clay on Wednesday, February 11 2004 @ 09:29 PM EST |
A simple google search gives some links.
include/linux/jfs/ref/jfs_inode.h
include/linux/evms/evms_aix.h
kernal/rclock.c
arch/i386/kernel/apic.c
kernel/timer.c
arch/i386/kernel/entry.S
arch/i386/kernel/traps.c
init/main.c
What seems to be interesting is that IBM, or
contributors from IBM/Sequent
are not even listed in the copyright notices
and header comments of these
files. If SCO is claiming that it was copied
are they saying these individuals
had access to System V code or AIX and
Dynix and copied it then took
credit?
--- ---------------------------
newObjectivity, Inc. supports the destruction
of all software patents. [ Reply to This | # ]
|
- Interesting Links - Authored by: Anonymous on Thursday, February 12 2004 @ 03:15 PM EST
|
Authored by: Anonymous on Thursday, February 12 2004 @ 09:59 AM EST |
Do these "derived work" claims replace their earlier strong suggestion
that the copyright claims were based on the POSIX
header files
errno.h
ctype.h
signal.h
......
Or are they just holding those as a backup for the failure of the "derived
works" theory? [ Reply to This | # ]
|
|
|
|
|