[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
getroot for ZFS without libzfs?
From: |
Zachary Bedell |
Subject: |
getroot for ZFS without libzfs? |
Date: |
Sun, 7 Aug 2011 21:28:30 -0400 |
Greetings all,
I've been working for the last few weeks with Grub on a Linux system using ZFS
drivers from zfsonlinux.org. One change required to Grub has been in adapting
the way the the build process detects and links to libzfs for the code in
util/getroot.c. I'd like to see the changes required included in Grub of
course, but I have some concerns about the licensing issues and also accessing
the private libzfs.
It appears that existing Grub code already links against libzfs for the benefit
of find_root_device_from_libzfs and other functions in getroot.c. It also
appears that libzfs is not used outside this file. That linkage surprises me a
bit as I would have expected GPL Grub linked against CDDL libzfs to create a
problem. Also libzfs is considered a private API and not intended to be linked
against, though admittedly what I propose (reading on-disk structures directly)
is arguably worse than accessing a private library.
As best I can tell, all of the ZFS-related functionality that getroot.c
requires was included in the GPL release that Sun made in Grub 0.97. I think
it should be relatively straight forward to modify getroot.c to use the GPL'd
ZFS code to directly access the disk and read the necessary bits out of ZFS
that it needs to configure itself. Assuming that change is made, it should be
possible to expunge Grub of all references to libzfs and have its ZFS support
operate purely on the GPL'd dump from Sun.
I'd like to dive in and make these changes, but I wanted to solicit thoughts
from other Grub devs before starting. Am I incorrect in my belief that linking
libzfs is a GPL problem for Grub? Is the CDDL/GPL problem not reciprocal and
this only a problem for CDDL ZFS using GPL kernel and not the other way around?
Does anyone see an issue with getroot.c reading the on-disk ZFS structures
directly? grub-probe already does this in its search for uberblocks and
labels, so I don't think changing getroot.c is making the situation worse.
Any other thoughts would be appreciated.
Best regards,
Zac Bedell
- getroot for ZFS without libzfs?,
Zachary Bedell <=
- Re: getroot for ZFS without libzfs?, Robert Millan, 2011/08/09
- Re: getroot for ZFS without libzfs?, Zachary Bedell, 2011/08/09
- Re: getroot for ZFS without libzfs?, Robert Millan, 2011/08/10
- Re: getroot for ZFS without libzfs?, Zachary Bedell, 2011/08/10
- Re: getroot for ZFS without libzfs?, Robert Millan, 2011/08/12
- Re: getroot for ZFS without libzfs?, Vladimir 'φ-coder/phcoder' Serbinenko, 2011/08/18
- Re: getroot for ZFS without libzfs?, Seth Goldberg, 2011/08/25