Bug 466379

Summary: Review Request: zfs-fuse - ZFS ported to Linux FUSE
Product: [Fedora] Fedora Reporter: Uwe Kubosch <uwe>
Component: Package ReviewAssignee: Denis Leroy <denis>
Status: CLOSED NEXTRELEASE QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: medium Docs Contact:
Priority: medium    
Version: rawhideCC: denis, fedora-package-review, notting, sundaram, tcallawa, uwe
Target Milestone: ---Flags: denis: fedora-review+
j: fedora-cvs+
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2008-12-07 21:24:59 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Uwe Kubosch 2008-10-09 22:48:13 UTC
Spec URL: http://kubosch.no/~donv/zfs-fuse/SPECS/zfs-fuse.spec
SRPM URL: http://kubosch.no/~donv/zfs-fuse/SRPMS/zfs-fuse-0.5.0-2.20081009.fc9.src.rpm
Description: ZFS is an advanced modern general-purpose filesystem from Sun
Microsystems, originally designed for Solaris/OpenSolaris.

This is my first package.  Denis Leroy has offered to be my sponsor.

Comment 1 Uwe Kubosch 2008-10-09 23:40:59 UTC
I have done a Koji build at

http://koji.fedoraproject.org/koji/taskinfo?taskID=872167

Comment 2 Rahul Sundaram 2008-10-10 01:03:20 UTC
We need a legal review here to check for potential licensing incompatibility and patent issues. Blocking FE-Legal

Comment 3 Denis Leroy 2008-10-14 16:54:25 UTC
Since I work at Sun, I can try to mediate this issue. The word I'm getting here is that Sun uses patents defensively only (on patent claims against Sun products). Sun would never do patent claims against Linux. ZFS has porting and integration effort in Mac OS X and Windows, and there is no patent agreement between the parties because it is not necessary if you're reusing Sun's work under the terms of the code license, not "reimplementing" ZFS or a different filesystem that's very similar to ZFS...

If you have more specific questions, I can track down an authoritative answer from the powers-that-be over here.

Comment 4 Tom "spot" Callaway 2008-10-22 20:09:27 UTC
So, what would be very useful from Sun is some sort of explicit patent grant, rather than some handwaving about how Sun "would never" do things. If Sun were to hit hard times in a year, sell all the ZFS patents to someone else, who then sues Fedora for patent infringement, we're screwed, but if we have an irrevocable patent grant from Sun, we're covered.

Comment 5 Denis Leroy 2008-10-23 15:56:44 UTC
I'm being told to look at the patent CDDL FAQ:

Q. What does the CDDL say about patents?

The CDDL provides an explicit patent license for code released under the license. This means that you can use, modify, and redistribute code released under CDDL without worrying about any patents that the contributors of the code (including Sun) might have on the contributed technology. The license also includes a provision to discourage patent litigation against developers by revoking the rights to the code for anyone initiating a patent claim against a developer regarding code they have contributed.

Comment 6 Denis Leroy 2008-10-27 14:47:08 UTC
I exchanged emails with Sun's Open Source Community Manager and Sun's Open Source Chief Officer (Simon Phipps). The message I got from them is very clear:

- Sun would love to see fuse-zfs being added to the Fedora distribution

- There should be *no* legal issues, neither license nor patents related, that should block the review and acceptance of this package in Fedora.


To be more precise:

1) There are no license issues between Fuse-ZFS and ZFS itself. http://fuse.sourceforge.net/wiki/index.php/FAQ#Under_what_conditions_may_I_distribute_a_filesystem_which_uses_libfusex3f

2) Fuse-ZFS has no patent issues in regards to ZFS.

Fuse-ZFS is CDDL, and as such receives all the patent protection that CDDL grants. This is explicit in the CDDL license, 2.1.b and 2.2.b (http://www.sun.com/cddl/cddl.html). The patent protection applies to ZFS modifications and derivative works as well. This means that Fuse-ZFS can be modified, can be redistributed, or even forked for that matter. As long as the modifications are made public, just as with the GPL.

Comment 7 Tom "spot" Callaway 2008-10-27 17:39:45 UTC
CDDL as a patent grant is fine. Lifting FE-Legal.

Comment 8 Rahul Sundaram 2008-10-28 00:31:58 UTC
Denis Leroy - Thanks for taking the time to address some of the concerns.

Spot - Have you confirmed that the license incompatibility between CDDL and GPL does not affect us here?

I am concerned that we are setting precedent for vendors to create proprietary drivers that use the fuse interface to bypass GPL requirements.

Comment 9 Tom "spot" Callaway 2008-10-29 16:47:20 UTC
The fuse libraries are LGPLv2+, so there should not be any license compatibility concerns.

Comment 10 Tom "spot" Callaway 2008-10-29 16:48:22 UTC
(In reply to comment #8)

> I am concerned that we are setting precedent for vendors to create proprietary
> drivers that use the fuse interface to bypass GPL requirements.

Yes, well, I'm not a big fan of this move either. I wish Sun would learn to play nice with the Linux kernel, but I'll just have to add this to my long list of "someday" items. There's no legal barrier here.

Comment 11 Rahul Sundaram 2008-10-29 18:35:18 UTC
To be clear, I am not talking about the FUSE library itself but the actual kernel module that sits on top of the library. That module itself is under CDDL since this is not a rewrite but a port of the original codebase. GPLv2 and CDDL are incompatible. I don't think sticking a LGPL library in-between otherwise incompatibly licensed code bases would free them of the requirements of one of the licenses. I would like Red Hat Legal to confirm this. Have they?

Comment 12 Denis Leroy 2008-10-29 19:38:28 UTC
> but the actual kernel module that sits on top of the library

Rahul, you're misunderstanding the situation. There is no kernel module sitting on top of FUSE. This is a user-space library.

Also your comment #8 seems to imply you consider ZFS to be a "proprietary" driver. This is simply not true. CDDL is a free and open-source license.

Comment 13 Rahul Sundaram 2008-10-29 19:49:16 UTC
Let's not argue about terminology. Call it whatever you want, my main point is this: There is CDDL licensed codebase (zfs) using the LGPL'ed libraries (fuse) which in turn uses a GPL'ed licensed codebase (ie) the Linux kernel. 

If the CDDL/GPL incompatibility can be bypassed by sticking a LGPL'ed library in between, we are setting precedent for others to do the same thing including proprietary kernel drivers. No, that does not imply ZFS is proprietary. I am very well aware that is it under a free and open source but GPL incompatible license aka CDDL.

Comment 14 Tom "spot" Callaway 2008-10-29 19:54:17 UTC
Well, there is a kernel module in this stack:

/lib/modules/2.6.27.4-61.fc10.x86_64/kernel/fs/fuse/fuse.ko

Sun is clearly working around the incompatibility between CDDL and GPL (one they explicitly created), but circumventing license incompatibility like this is not forbidden, in fact, it is almost certainly the main reason why the Fuse userspace is not GPL. In fact, they explicitly permit the scenario that Rahul is so concerned about in Comment #13: http://fuse.sourceforge.net/wiki/index.php/FAQ#Under_what_conditions_may_I_modify_or_distribute_FUSEx3f.

There was never any requirement that any userspace code that leverages kernel code be compatible with the kernel license, for anything, otherwise, we'd have nothing but GPL compatible userspace. If it linked to GPL code, this would be a different scenario, but it does not.

Nevertheless, I bounced this issue to RH Legal to get their feedback.

Comment 15 Denis Leroy 2008-10-29 20:00:07 UTC
Rahul, your reasoning is not correct. There's a difference between "using" and "linked with". If the fuse user-space libraries were "linked" with the fuse kernel module (assuming this were technical possible, which it is not), your reasoning would be correct. Except they are not. The fuse user-space library interacts with the fuse kernel module, in much the same way all user-space components interact with kernel components, like NetworkManager interacts with wireless drivers for example.

Comment 16 Rahul Sundaram 2008-10-29 20:11:08 UTC
Derivative work is not merely confined to "linking" and IMO, there is a difference between a ported kernel module and other user-space applications regardless of anything in between like the stubs that Nvidia proprietary driver uses or others using fuse libraries. Anyway, there is no pointing in us arguing about it. I have expressed my concern and I will defer to Red Hat Legal who has the final say in this matter.

Comment 17 Denis Leroy 2008-10-29 22:26:46 UTC
Uwe, some initial comments.

First of all, this looks very good. You did a thorough job following the Fedora guidelines.

- I wish the package were called "fuse-zfs" to be more similar with existing fuse packages, but in the absence of Fuse-specific package guidelines, it probably makes more sense to follow the upstream name for now...

- Are you sure about the ppc* ExcludeArch's ? Existing fuse packages don't do it. Did you run into ppc-specific build issues ?

- I wouldn't package the contrib init file, since you provide your own LSB-compliant one.

Comment 18 Tom "spot" Callaway 2008-10-30 13:21:03 UTC
(In reply to comment #14)

> Nevertheless, I bounced this issue to RH Legal to get their feedback.

RH Legal confirms that this is not a problem.

Comment 19 Uwe Kubosch 2008-10-30 23:10:27 UTC
I have talked to the upstream project, and renaming the upstream project seems unlikely, but they encourage us to rename our package if it makes a positive difference.  I'll keep the name until there is a Fuse naming guideline.  OK?

Regarding the ExcludeArch's I got this from upstream:

"Yes, zfs-fuse doesn't have PPC and PPC64 implementations for atomic
instructions, hence it won't build on those architectures. It will only
build on x86, x86-64 and sparc64 at the moment."

I'll look at removing the contrib init file.

But really, the package is good to go?

Comment 20 Denis Leroy 2008-10-31 09:12:45 UTC
I'll do the formal review within the next couple of days. The package will be officially reviewed and accepted when I set the "fedora-review" flag to "+".

Comment 21 Denis Leroy 2008-11-07 08:16:22 UTC
MUST item:

- rpmlint output OK (init incoherent-subsys warning is a false positive)
- name is according to guidelines
- spec file name is ok
- package meets packaging guidelines
- license is CDDL
- spec file is legible
- source URL following svn snapshot guidelines
- compile and builds
- builds in mock
- ldconfig called property
- owns all directories
- no duplicates
- file props ok
- clean section cleans buildroot
- no libraries, header fiels or GUI apps
- no ownership conflicts
- filenames are UTF-8
- ppc Archexclude ok, not supported by upstream


Package is APPROVED.

(please remove contrib directory as mentioned in comment #17).


Uwe, you should now go into https://admin.fedoraproject.org/accounts/ and create yourself an account.

Comment 22 Denis Leroy 2008-11-07 08:24:22 UTC
Oops sorry, incorrectly set the flag, not sure how that happened...

Comment 23 Uwe Kubosch 2008-11-07 18:17:02 UTC
New Package CVS Request
=======================
Package Name: zfs-fuse
Short Description: ZFS is an advanced modern general-purpose filesystem from Sun
Microsystems, originally designed for Solaris/OpenSolaris.
Owners: donv
Branches: F-10
InitialCC:

Comment 24 Kevin Fenzi 2008-11-07 21:26:08 UTC
I don't see donv in the packager group. 

Denis: Do you intend to sponsor them?
Please reset the cvs flag once they are sponsored.

Comment 25 Denis Leroy 2008-11-09 23:23:41 UTC
Kevin, yes I sponsored him.

Comment 26 Kevin Fenzi 2008-11-10 16:38:48 UTC
cvs done.

Comment 27 Denis Leroy 2008-11-27 12:04:11 UTC
Uwe, now that the package was pushed to the testing repo, you should close this ticket. Thanks!

Comment 28 Uwe Kubosch 2009-11-27 23:29:52 UTC
Package Change Request
======================
Package Name: zfs-fuse
New Branches: F-12 EL-5
Owners: donv

Comment 29 Jason Tibbitts 2009-12-01 19:08:05 UTC
There's already an F-12 branch for this package; I'm not sure why it's being requested here.  Make sure you do "cvs update -d" to get any newly created directories when you update.

I've made the EL-5 branch.

Comment 30 Uwe Kubosch 2009-12-03 23:38:45 UTC
I forgot the -d option on cvs update...

Thank you for the EPEL-5 branch.