Merge commit 'refs/top-bases/linux-kernel-mem' into linux-kernel-mem

This commit is contained in:
Brian Behlendorf 2009-12-11 16:23:14 -08:00
commit 7eebafc2d6
5 changed files with 4975 additions and 116 deletions

113
doc/LEGAL
View File

@ -1,113 +0,0 @@
From: Chris Dunlap <cdunlap@llnl.gov>
To: tak1@llnl.gov (James Tak)
Cc: rogers11@llnl.gov (Leah Rogers), garlick@llnl.gov (Jim Garlick),
mgary@llnl.gov (Mark Gary), kimcupps@llnl.gov (Kim Cupps)
Date: Mon, 26 Mar 2007 15:37:07 -0700
Subject: CDDL/GPL licensing issues for ZFS Linux port
James,
We want to port Sun's Zettabyte File System (ZFS) to Linux and
ultimately redistribute the source code of our work. We've been
talking with Leah about this and have a meeting scheduled with you
for this coming Thursday at 2pm. I just wanted to give you a summary
before the meeting of what we're proposing.
ZFS is part of OpenSolaris which is licensed under the Common
Development and Distribution License (CDDL):
http://www.opensolaris.org/os/licensing/cddllicense.txt
The Linux kernel is licensed under the GNU General Public License (GPL)
(specifically, under version 2 of the license only):
http://www.fsf.org/licensing/licenses/gpl.html
While these are both Open-Source licenses, the Free Software Foundation
(FSF) states they are incompatible with one another:
http://www.fsf.org/licensing/licenses/index_html
"[CDDL] is a free software license which is not a strong copyleft;
it has some complex restrictions that make it incompatible with the
GNU GPL. It requires that all attribution notices be maintained,
while the GPL only requires certain types of notices. Also, it
terminates in retaliation for certain aggressive uses of patents.
So, a module covered by the GPL and a module covered by the CDDL
cannot legally be linked together."
As an aside, Sun is reportedly considering releasing OpenSolaris under
GPL3 (i.e., the upcoming version 3 of the GNU General Public License):
http://blogs.sun.com/jonathan/entry/hp_and_sun_partnering_around
http://arstechnica.com/news.ars/post/20060130-6074.html
http://news.com.com/Sun+considers+GPL+3+license+for+Solaris/2100-1016_3-6032893.html
Since the GPL3 has not been finalized, it is unclear whether
incompatibilities will exist between GPL2 and GPL3.
Linus Torvalds (the original creator of Linux) describes his views
on the licensing of Linux kernel modules in the following email thread:
http://linuxmafia.com/faq/Kernel/proprietary-kernel-modules.html
Most of this thread is in regards to proprietary closed-source
binary-only modules for Linux. Linus generally considers modules
written for Linux using the kernel infrastructures to be derived
works of Linux, even if they don't copy any existing Linux code.
However, he specifically singles out drivers and filesystems ported
from other operating systems as not being derived works:
"It would be rather preposterous to call the Andrew FileSystem a
'derived work' of Linux, for example, so I think it's perfectly
OK to have a AFS module, for example."
"The original binary-only modules were for things that were
pre-existing works of code, i.e., drivers and filesystems ported
from other operating systems, which thus could clearly be argued
to not be derived works..."
Based on this, it seems our port of Sun's ZFS filesystem to Linux
would not be considered a derived work of Linux, and therefore not
covered by the GPL. The issue of the CDDL/GPL license incompatibility
becomes moot. As such, we should be able to redistribute our changes
to ZFS in source-code form licensed under the CDDL since this will
be a derived work of the original ZFS code. There seems to be some
dissent as to whether a binary module could be redistributed as well,
but that issue does not concern us. In this instance, we are only
interested in redistribution of our work in source-code form.
-Chris
To: Chris Dunlap <cdunlap@llnl.gov>
From: James Tak <tak1@llnl.gov>
Subject: Re: CDDL/GPL licensing issues for ZFS Linux port
Cc: rogers11@llnl.gov (Leah Rogers), garlick@llnl.gov (Jim Garlick),
mgary@llnl.gov (Mark Gary), kimcupps@llnl.gov (Kim Cupps)
Date: Thu, 29 Mar 2007 14:53:01 -0700
Hi Chris,
As per our discussion today, the ZFS port you are proposing releasing under
the CDDL license should be o.k. since it is a derivative work of the
original ZFS module (under CDDL) and is therefore also subject to CDDL
under the distribution terms of that license. While the issue of linking
has been greatly debated in the OS community, I think it is fair to say in
this instance the ZFS port is not a derivative work of Linux and thus not
subject to the GPL. Furthermore, it shouldn't be a problem especially
since even Linus Torvald has expressed that modules such as yours are not
derived works of Linux.
Let me know if you have any further questions at x27274. Thanks.
Regards,
James
James S. Tak
Assistant Laboratory Counsel for Intellectual Property
Office of Laboratory Counsel
Lawrence Livermore National Laboratory
phone: (925) 422-7274
fax: (925) 423-2231
tak1@llnl.gov

84
man/man8/zdb.8 Normal file
View File

@ -0,0 +1,84 @@
'\" te
.\" Copyright (c) 2004, Sun Microsystems, Inc. All Rights Reserved.
.\" The contents of this file are subject to the terms of the Common Development and Distribution License (the "License"). You may not use this file except in compliance with the License.
.\" You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE or http://www.opensolaris.org/os/licensing. See the License for the specific language governing permissions and limitations under the License.
.\" When distributing Covered Code, include this CDDL HEADER in each file and include the License file at usr/src/OPENSOLARIS.LICENSE. If applicable, add the following below this CDDL HEADER, with the fields enclosed by brackets "[]" replaced with your own identifying information: Portions Copyright [yyyy] [name of copyright owner]
.TH zdb 1M "31 Oct 2005" "SunOS 5.11" "System Administration Commands"
.SH NAME
zdb \- ZFS debugger
.SH SYNOPSIS
.LP
.nf
\fBzdb\fR \fIpool\fR
.fi
.SH DESCRIPTION
.sp
.LP
The \fBzdb\fR command is used by support engineers to diagnose failures and gather statistics. Since the \fBZFS\fR file system is always consistent on disk and is self-repairing, \fBzdb\fR should only be run under the direction by a support engineer.
.sp
.LP
If no arguments are specified, \fBzdb\fR, performs basic consistency checks on the pool and associated datasets, and report any problems detected.
.sp
.LP
Any options supported by this command are internal to Sun and subject to change at any time.
.SH EXIT STATUS
.sp
.LP
The following exit values are returned:
.sp
.ne 2
.mk
.na
\fB\fB0\fR\fR
.ad
.RS 5n
.rt
The pool is consistent.
.RE
.sp
.ne 2
.mk
.na
\fB\fB1\fR\fR
.ad
.RS 5n
.rt
An error was detected.
.RE
.sp
.ne 2
.mk
.na
\fB\fB2\fR\fR
.ad
.RS 5n
.rt
Invalid command line options were specified.
.RE
.SH ATTRIBUTES
.sp
.LP
See \fBattributes\fR(5) for descriptions of the following attributes:
.sp
.sp
.TS
tab() box;
cw(2.75i) |cw(2.75i)
lw(2.75i) |lw(2.75i)
.
ATTRIBUTE TYPEATTRIBUTE VALUE
_
AvailabilitySUNWzfsu
_
Interface StabilityUnstable
.TE
.SH SEE ALSO
.sp
.LP
\fBzfs\fR(1M), \fBzpool\fR(1M), \fBattributes\fR(5)

3065
man/man8/zfs.8 Normal file

File diff suppressed because it is too large Load Diff

1799
man/man8/zpool.8 Normal file

File diff suppressed because it is too large Load Diff

View File

@ -9,6 +9,8 @@ trap die_int INT
RELEASE=$1
PROG=update-zfs.sh
REMOTE_DOC_FILE=man-sunosman-20090930.tar.bz2
REMOTE_DOC=http://dlc.sun.com/osol/man/downloads/current/${REMOTE_DOC_FILE}
REMOTE_SRC=http://dlc.sun.com/osol/on/downloads/${RELEASE}/on-src.tar.bz2
die() {
@ -26,36 +28,51 @@ if [ `basename $DST` != "scripts" ]; then
die "Must be run from scripts directory"
fi
if [ ! "$RELEASE" ]; then
die "Must specify ZFS release build"
fi
SRC=`mktemp -d /tmp/os-${RELEASE}.XXXXXXXXXX`
DST=`dirname $DST`
echo "----------------------------------------------------------------------"
echo "----------------------------------------------------------------"
echo "Remote Source: ${REMOTE_SRC}"
echo "Remote Docs: ${REMOTE_DOC}"
echo "Local Source: ${SRC}"
echo "Local Dest: ${DST}"
echo
echo "------------- Fetching OpenSolaris ${RELEASE} archive ----------------"
wget ${REMOTE_SRC} -P ${SRC} ||
wget -q ${REMOTE_SRC} -P ${SRC} ||
die "Error 'wget ${REMOTE_SRC}'"
echo "------------- Fetching OpenSolaris documentation ---------------"
wget -q ${REMOTE_DOC} -P ${SRC} ||
die "Error 'wget ${REMOTE_DOC}'"
echo "------------- Unpacking OpenSolaris ${RELEASE} archive ---------------"
tar -xjf ${SRC}/on-src.tar.bz2 -C ${SRC} ||
die "Error 'tar -xjf ${SRC}/on-src.tar.bz2 -C ${SRC}'"
echo "------------- Unpacking OpenSolaris documentation --------------"
tar -xjf ${SRC}/${REMOTE_DOC_FILE} -C ${SRC} ||
die "Error 'tar -xjf ${SRC}/${REMOTE_DOC_FILE} -C ${SRC}'"
SRC_LIB=${SRC}/usr/src/lib
SRC_CMD=${SRC}/usr/src/cmd
SRC_CM=${SRC}/usr/src/common
SRC_UTS=${SRC}/usr/src/uts
SRC_UCM=${SRC}/usr/src/uts/common
SRC_ZLIB=${SRC}/usr/src/uts/common/fs/zfs
SRC_MAN=${SRC}/man
DST_MOD=${DST}/module
DST_LIB=${DST}/lib
DST_CMD=${DST}/cmd
DST_MAN=${DST}/man
umask 022
rm -Rf ${DST}/zfs
echo
echo "------------- Updating ZFS from OpenSolaris ${RELEASE} ---------------"
echo "* module/avl"
mkdir -p ${DST_MOD}/avl/include/sys/
@ -150,6 +167,13 @@ echo "* cmd/ztest"
mkdir -p ${DST_CMD}/ztest
cp ${SRC_CMD}/ztest/*.c ${DST_CMD}/ztest/
echo "* man/"
mkdir -p ${DST_MAN}/man8
cp ${SRC_MAN}/man1m/zfs.1m ${DST_MAN}/man8/zfs.8
cp ${SRC_MAN}/man1m/zpool.1m ${DST_MAN}/man8/zpool.8
cp ${SRC_MAN}/man1m/zdb.1m ${DST_MAN}/man8/zdb.8
chmod -R 644 ${DST_MAN}/man8/*
echo "${REMOTE_SRC}" >${DST}/ZFS.RELEASE
rm -Rf ${SRC}