Compare commits

...

24 Commits

Author SHA1 Message Date
Fabian Grünbichler
93440c1975 bump version, update changelog 2016-06-28 15:41:47 +02:00
Fabian Grünbichler
8d4db41b48 fix make upload target 2016-06-28 15:27:06 +02:00
Fabian Grünbichler
d5aecb0120 add make deb target 2016-06-28 14:35:56 +02:00
Fabian Grünbichler
787eca93c4 update make upload target 2016-06-28 14:35:35 +02:00
Fabian Grünbichler
e2380c2a18 update source archives 2016-06-28 14:35:23 +02:00
Fabian Grünbichler
9ccb7a65af update changelogs 2016-06-28 14:35:12 +02:00
Fabian Grünbichler
b6cafe691d update changelogs 2016-06-28 13:51:08 +02:00
Fabian Grünbichler
6d5485395f drop unneeded/non-upstream pull requests
- #1099: iSCSI support for ZoL
- #1476: Change sharesmb to use REGISTRY shares for better
  control by user/admin
- #2790: Rewrite of nfs.c to keep options per host separated.
- #3238: Allow "zfs unshare <proto> -a" much like "zfs share
  <proto> -a" (WIP)
2016-06-28 13:50:15 +02:00
Fabian Grünbichler
e34fbf907c update to zfs/spl 0.6.5.7
update pkg-zfs to zfs-0.6.5.7-8-wheezy
update pkg-spl to spl-0.6.5.7-3-wheezy

change package versioning scheme

drop cherry-pick workarounds
2016-06-28 13:49:32 +02:00
Dietmar Maurer
a96c6ce442 update to zfs/spl 0.6.5.6 2016-03-30 11:34:48 +02:00
Dietmar Maurer
a0ba3b44a3 update to 0.6.5.4 2016-01-17 15:32:47 +01:00
Dietmar Maurer
8b01c7a110 update to 0.6.5.2 2015-10-09 10:25:57 +02:00
Dietmar Maurer
69aebd7324 update to 0.6.4.2 2015-07-21 08:01:23 +02:00
Dietmar Maurer
0ca48f6b95 update to 0.6.4.1 2015-04-30 07:32:22 +02:00
Dietmar Maurer
4b9f6205df fix typo 2015-04-14 10:20:51 +02:00
Dietmar Maurer
ead682fb07 remove DKMS settings from /etc/default/zfs 2015-04-14 08:00:31 +02:00
Dietmar Maurer
2f2b265609 fix changelogs 2015-04-14 07:56:26 +02:00
Dietmar Maurer
cefdaf9301 remove unused files 2015-04-13 08:35:28 +02:00
Dietmar Maurer
e37bd2ebdc use packages from github 2015-04-13 08:31:33 +02:00
Dietmar Maurer
cc8c8584d9 bump version to 0.6.4-1~wheezy 2015-04-12 09:40:23 +02:00
Dietmar Maurer
532f0e92a0 update sources to 0.6.4 2015-04-12 09:27:14 +02:00
Dietmar Maurer
67f0ab4538 set RELEASE=3.4 2015-03-15 15:01:54 +01:00
Dietmar Maurer
eb1b8b66b7 bump zfs package version to 0.6.3-3 2015-03-15 14:57:38 +01:00
Dietmar Maurer
a7c83d2c0c install init.d file for zed 2015-03-15 14:55:53 +01:00
66 changed files with 474 additions and 3734 deletions

View File

@ -1,35 +1,40 @@
RELEASE=3.3
RELEASE=3.4
# source form https://github.com/zfsonlinux/
ZFSVER=0.6.3-1.2
ZFSPKGREL=2~wheezy
SPLPKGREL=1~wheezy
ZFSPKGVER=0.6.3-${ZFSPKGREL}
SPLPKGVER=0.6.3-${SPLPKGREL}
# also update version in
# zfs-changelog.Debian and spl-changelog.Debian
ZFSVER=0.6.5.7
ZFSPKGREL=5~bpo70
SPLPKGREL=5~bpo70
ZFSPKGVER=${ZFSVER}-${ZFSPKGREL}
SPLPKGVER=${ZFSVER}-${SPLPKGREL}
SPLDIR=spl-spl-${ZFSVER}
SPLSRC=spl-${ZFSVER}.tar.gz
ZFSDIR=zfs-zfs-${ZFSVER}
ZFSSRC=zfs-${ZFSVER}.tar.gz
SPLDIR=pkg-spl
SPLSRC=pkg-spl.tar.gz
ZFSDIR=pkg-zfs
ZFSSRC=pkg-zfs.tar.gz
SPL_DEBS= \
SPL_DEBS= \
spl_${SPLPKGVER}_amd64.deb
ZFS_DEBS= \
ZFS_DEBS= \
libnvpair1_${ZFSPKGVER}_amd64.deb \
libuutil1_${ZFSPKGVER}_amd64.deb \
libzfs2_${ZFSPKGVER}_amd64.deb \
libzfs2_${ZFSPKGVER}_amd64.deb \
libzfs-dev_${ZFSPKGVER}_amd64.deb \
libzpool2_${ZFSPKGVER}_amd64.deb \
zfs-doc_${ZFSPKGVER}_amd64.deb \
zfs-initramfs_${ZFSPKGVER}_amd64.deb \
zfs-dbg_${ZFSPKGVER}_amd64.deb \
zfs-initramfs_${ZFSPKGVER}_amd64.deb \
zfsutils_${ZFSPKGVER}_amd64.deb
DEBS=${SPL_DEBS} ${ZFS_DEBS}
all: ${DEBS}
.PHONY: deb
deb: ${DEBS}
.PHONY: dinstall
dinstall: ${DEBS}
dpkg -i ${DEBS}
@ -38,26 +43,33 @@ dinstall: ${DEBS}
spl ${SPL_DEBS}: ${SPLSRC}
rm -rf ${SPLDIR}
tar xf ${SPLSRC}
cp -a spl-debian-pve ${SPLDIR}/debian
cd ${SPLDIR}; dpkg-buildpackage -b -uc -us
mv ${SPLDIR}/debian/changelog ${SPLDIR}/debian/changelog.org
cat spl-changelog.Debian ${SPLDIR}/debian/changelog.org > ${SPLDIR}/debian/changelog
cd ${SPLDIR}; ln -s ../spl-patches patches
cd ${SPLDIR}; quilt push -a
cd ${SPLDIR}; rm -rf .pc ./patches
cd ${SPLDIR}; ./debian/rules override_dh_prep-base-deb-files
cd ${SPLDIR}; dpkg-buildpackage -b -uc -us
.PHONY: zfs
zfs ${ZFS_DEBS}: ${ZFSSRC}
rm -rf ${ZFSDIR}
tar xf ${ZFSSRC}
cp -a zfs-debian-pve ${ZFSDIR}/debian
mv ${ZFSDIR}/debian/changelog ${ZFSDIR}/debian/changelog.org
cat zfs-changelog.Debian ${ZFSDIR}/debian/changelog.org > ${ZFSDIR}/debian/changelog
cd ${ZFSDIR}; ln -s ../zfs-patches patches
cd ${ZFSDIR}; quilt push -a
cd ${ZFSDIR}; rm -rf .pc ./patches
cd ${ZFSDIR}; ./debian/rules override_dh_prep-base-deb-files
cd ${ZFSDIR}; dpkg-buildpackage -b -uc -us
.PHONY: download
download:
#git clone https://github.com/zfsonlinux/pkg-spl.git
#git clone https://github.com/zfsonlinux/pkg-zfs.git
##git checkout master/ubuntu/precise
##git checkout master/debian/wheezy
rm spl-*.tar.gz
rm zfs-*.tar.gz
wget https://github.com/zfsonlinux/spl/archive/${SPLSRC}
wget https://github.com/zfsonlinux/zfs/archive/${ZFSSRC}
rm -rf pkg-spl pkg-zfs ${SPLSRC} ${ZFSSRC}
git clone -b master/debian/wheezy/0.6.5.7-3-wheezy https://github.com/zfsonlinux/pkg-spl.git
git clone -b master/debian/wheezy/0.6.5.7-8-wheezy https://github.com/zfsonlinux/pkg-zfs.git
tar czf ${SPLSRC} pkg-spl
tar czf ${ZFSSRC} pkg-zfs
.PHONY: clean
clean:
@ -69,27 +81,4 @@ distclean: clean
.PHONY: upload
upload: ${DEBS}
umount /pve/${RELEASE}; mount /pve/${RELEASE} -o rw
mkdir -p /pve/${RELEASE}/extra
rm -f /pve/${RELEASE}/extra/spl_*.deb
rm -f /pve/${RELEASE}/extra/spl-dkms_*.deb
rm -f /pve/${RELEASE}/extra/libnvpair1_*.deb
rm -f /pve/${RELEASE}/extra/libnvpair1-dbg_*.deb
rm -f /pve/${RELEASE}/extra/libuutil1_*.deb
rm -f /pve/${RELEASE}/extra/libuutil1-dbg_*.deb
rm -f /pve/${RELEASE}/extra/libzfs2_*.deb
rm -f /pve/${RELEASE}/extra/libzfs2-dbg_*.deb
rm -f /pve/${RELEASE}/extra/libzfs-dev_*.deb
rm -f /pve/${RELEASE}/extra/libzpool2_*.deb
rm -f /pve/${RELEASE}/extra/libzpool2-dbg_*.deb
rm -f /pve/${RELEASE}/extra/zfs_*.deb
rm -f /pve/${RELEASE}/extra/zfs-dkms_*.deb
rm -f /pve/${RELEASE}/extra/zfs-doc_*.deb
rm -f /pve/${RELEASE}/extra/zfs-initramfs_*.deb
rm -f /pve/${RELEASE}/extra/zfsutils_*.deb
rm -f /pve/${RELEASE}/extra/zfsutils-dbg_*.deb
rm -f /pve/${RELEASE}/extra/Packages*
cp ${DEBS} /pve/${RELEASE}/extra
cd /pve/${RELEASE}/extra; dpkg-scanpackages . /dev/null > Packages; gzip -9c Packages > Packages.gz
umount /pve/${RELEASE}; mount /pve/${RELEASE} -o ro
tar -cf - ${DEBS} | ssh repoman@repo.proxmox.com upload --dist wheezy

6
README
View File

@ -1,12 +1,12 @@
Proxmox VE packaging for ZFS on Linux
This is based of code from:
This is based on code from:
https://github.com/zfsonlinux/pkg-spl.git
https://github.com/zfsonlinux/pkg-zfs.git
We merged updates from the precice branch into the older wheezy
branch.
We removed the dkms/modules related code, because we ship the
modules with the kernel.
For licensing questions, see:

BIN
pkg-spl.tar.gz Normal file

Binary file not shown.

BIN
pkg-zfs.tar.gz Normal file

Binary file not shown.

Binary file not shown.

61
spl-changelog.Debian Normal file
View File

@ -0,0 +1,61 @@
spl-linux (0.6.5.7-5~bpo70) unstable; urgency=low
* rebuild using wheezy
-- Proxmox Support Team <support@proxmox.com> Tue, 28 Jun 2016 15:41:00 +0200
spl-linux (0.6.5.7-4~bpo70) unstable; urgency=low
* update pkg-spl to spl-0.6.5.7-3-wheezy
* change versioning scheme to allow upgrades from PVE 3.4 to PVE 4.2
-- Proxmox Support Team <support@proxmox.com> Tue, 28 Jun 2016 13:45:00 +0200
spl-linux (0.6.5-3~wheezy) unstable; urgency=low
* update to 0.6.5.6
-- Proxmox Support Team <support@proxmox.com> Wed, 30 Mar 2016 11:32:38 +0200
spl-linux (0.6.5-2~wheezy) unstable; urgency=low
* update to 0.6.5.4
-- Proxmox Support Team <support@proxmox.com> Sun, 17 Jan 2016 14:44:31 +0100
spl-linux (0.6.5-1~wheezy) unstable; urgency=low
* update to master/debian/wheezy/0.6.5-1-wheezy
-- Proxmox Support Team <support@proxmox.com> Fri, 09 Oct 2015 10:03:25 +0200
spl-linux (0.6.4-4~wheezy) unstable; urgency=low
* update to 0.6.4.2 (snapshot/debian/wheezy/0.6.4-6-37d7cd-wheezy)
-- Proxmox Support Team <support@proxmox.com> Tue, 21 Jul 2015 07:16:12 +0200
spl-linux (0.6.4-3~wheezy) unstable; urgency=low
* update to 0.6.4.1
-- Proxmox Support Team <support@proxmox.com> Thu, 30 Apr 2015 07:31:14 +0200
spl-linux (0.6.4-2~wheezy) unstable; urgency=low
* include original zol changelog files
-- Proxmox Support Team <support@proxmox.com> Tue, 14 Apr 2015 07:38:02 +0200
spl-linux (0.6.4-1~wheezy) unstable; urgency=low
* update to 0.6.4 (keep Proxmox VE versioning schema)
-- Proxmox Support Team <support@proxmox.com> Sun, 12 Apr 2015 09:32:24 +0200
spl-linux (0.6.3-1~wheezy) unstable; urgency=low
* first version for Proxmox VE
-- Proxmox Support Team <support@proxmox.com> Sat, 10 Jan 2015 14:06:34 +0100

View File

@ -1,6 +0,0 @@
spl-linux (0.6.3-1~wheezy) unstable; urgency=low
* first version for Proxmox VE
-- Proxmox Support Team <support@proxmox.com> Sat, 10 Jan 2015 14:06:34 +0100

View File

@ -1 +0,0 @@
7

View File

@ -1,34 +0,0 @@
Source: spl-linux
Section: kernel
Priority: extra
Maintainer: Proxmox Support Team <support@proxmox.com>
Build-Depends: autotools-dev,
autoconf,
autogen,
automake,
debhelper (>= 8),
dh-autoreconf,
dkms (>= 2.2.0.2),
libtool,
Standards-Version: 3.9.5
Homepage: http://www.zfsonlinux.org/
Package: spl-dkms
Architecture: all
Depends: ${misc:Depends}, dkms (>= 2.2.0.2), file, lsb-release
Recommends: spl
Description: Solaris Porting Layer kernel modules for Linux
The Solaris Porting Layer (SPL) is a Linux kernel module which provides many of
the Solaris kernel APIs. This shim layer makes it possible to run Solaris
kernel code in the Linux kernel with relatively minimal modification.
.
The Solaris Porting LAyer Tests (SPLAT) is a Linux kernel module which provides
a testing harness for the SPL module.
Package: spl
Architecture: any
Conflicts: spl-dev
Depends: ${shlibs:Depends}, ${misc:Depends}
Description: Solaris Porting Layer utilities for Linux
This package provides the userspace utilities for the SPL and SPLAT Linux
kernel modules.

View File

@ -1,147 +0,0 @@
Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
Upstream-Name: Solaris Porting Layer for Linux
Upstream-Contact: Brian Behlendorf <behlendorf1@llnl.gov>
Source: https://github.com/zfsonlinux/zfs/
Disclaimer:
This work was produced at the Lawrence Livermore National Laboratory
(LLNL) under Contract No. DE-AC52-07NA27344 (Contract 44) between
the U.S. Department of Energy (DOE) and Lawrence Livermore National
Security, LLC (LLNS) for the operation of LLNL.
.
This work was prepared as an account of work sponsored by an agency of
the United States Government. Neither the United States Government nor
Lawrence Livermore National Security, LLC nor any of their employees,
makes any warranty, express or implied, or assumes any liability or
responsibility for the accuracy, completeness, or usefulness of any
information, apparatus, product, or process disclosed, or represents
that its use would not infringe privately-owned rights.
.
Reference herein to any specific commercial products, process, or
services by trade name, trademark, manufacturer or otherwise does
not necessarily constitute or imply its endorsement, recommendation,
or favoring by the United States Government or Lawrence Livermore
National Security, LLC. The views and opinions of authors expressed
herein do not necessarily state or reflect those of the Untied States
Government or Lawrence Livermore National Security, LLC, and shall
not be used for advertising or product endorsement purposes.
Files: *
Copyright: Lawrence Livermore National Security, LLC.
The Regents of the University of California
License: GPL-2+
Files: config/config.guess
Copyright: Free Software Foundation, Inc.
License: GPL-2+
Files: config/config.sub
Copyright: Free Software Foundation, Inc.
License: GPL-2+
Files: config/deb.am
Copyright: Lawrence Livermore National Security, LLC.
License: GPL-2+
Files: config/depcomp
Copyright: Free Software Foundation, Inc.
License: GPL-2+
Files: config/install-sh
Copyright: 1994 X Consortium
License:
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to
deal in the Software without restriction, including without limitation the
rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
sell copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
.
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC-
TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
.
Except as contained in this notice, the name of the X Consortium shall not
be used in advertising or otherwise to promote the sale, use or other deal-
ings in this Software without prior written authorization from the X Consor-
tium.
Files: config/ltmain.sh
Copyright: Free Software Foundation, Inc.
License: GPL-2+
Files: config/missing
Copyright: Free Software Foundation, Inc.
License: GPL-2+
Files: config/tgz.am
Copyright: Lawrence Livermore National Security, LLC.
License: GPL-2+
Files: debian/*
Copyright: Darik Horn <dajhorn@vanadac.com>
Source: https://github.com/dajhorn/pkg-spl/
License: GPL-2+
Files: include/linux/zlib_compat.h
Copyright: Lawrence Livermore National Security, LLC.
License: GPL-2+
Files: include/rpc/xdr.h
Copyright: Sun Microsystems, Inc.
License: GPL-2+
Files: include/sys/extdirent.h
Copyright: Lawrence Livermore National Security, LLC.
License: GPL-2+
Files: include/sys/fcntl.h
Copyright: Lawrence Livermore National Security, LLC.
License: GPL-2+
Files: include/sys/idmap.h
Copyright: Lawrence Livermore National Security, LLC.
License: GPL-2+
Files: include/sys/tsd.h
Copyright: Lawrence Livermore National Security, LLC.
License: GPL-2+
Files: include/sys/zmod.h
Copyright: Jean-loup Gailly
Mark Adler
License:
This software is provided 'as-is', without any express or implied
warranty. In no event will the authors be held liable for any damages
arising from the use of this software.
.
Permission is granted to anyone to use this software for any purpose,
including commercial applications, and to alter it and redistribute it
freely, subject to the following restrictions:
.
1. The origin of this software must not be misrepresented; you must not
claim that you wrote the original software. If you use this software
in a product, an acknowledgment in the product documentation would be
appreciated but is not required.
.
2. Altered source versions must be plainly marked as such, and must not be
misrepresented as being the original software.
.
3. This notice may not be removed or altered from any source distribution.
Files: module/spl/spl-tsd.c
Copyright: Lawrence Livermore National Security, LLC.
License: GPL-2+
Files: module/spl/spl-xdr.c
Copyright: Sun Microsystems, Inc.
License: GPL-2+
Files: module/splat/splat-linux.c
Copyright: Lawrence Livermore National Security, LLC.
License: GPL-2+

View File

@ -1,35 +0,0 @@
AUTOINSTALL="yes"
PACKAGE_NAME="spl"
PACKAGE_VERSION="#MODULE_VERSION#"
PRE_BUILD="configure
--prefix=/usr
--with-config=kernel
--with-linux=$(case `lsb_release -is` in
(Debian)
if [ -e ${kernel_source_dir/%build/source} ]
then
echo ${kernel_source_dir/%build/source}
else
# This is a kpkg exception for Proxmox 2.0
echo ${kernel_source_dir}
fi
;;
(*)
echo ${kernel_source_dir}
;;
esac)
--with-linux-obj=${kernel_source_dir}
"
POST_INSTALL="cp
${dkms_tree}/${PACKAGE_NAME}/${PACKAGE_VERSION}/build/spl_config.h
${dkms_tree}/${PACKAGE_NAME}/${PACKAGE_VERSION}/build/module/Module.symvers
${dkms_tree}/${PACKAGE_NAME}/${PACKAGE_VERSION}/${kernelver}/${arch}/
"
REMAKE_INITRD="no"
MAKE[0]="make"
BUILT_MODULE_NAME[0]="spl"
BUILT_MODULE_LOCATION[0]="module/spl/"
DEST_MODULE_LOCATION[0]="/extra/spl/spl"
BUILT_MODULE_NAME[1]="splat"
BUILT_MODULE_LOCATION[1]="module/splat/"
DEST_MODULE_LOCATION[1]="/extra/splat/splat"

View File

@ -1,28 +0,0 @@
From 7559daf38acc293474d3d2a13ecf746bc7507a11 Mon Sep 17 00:00:00 2001
From: Darik Horn <dajhorn@vanadac.com>
Date: Tue, 11 Oct 2011 18:32:58 -0500
Subject: [PATCH 1/2] Revert "Remove /etc/hostid missing warning"
This reverts commit 6b3b569df30d13ed7bbbff877cffc71290a52f12.
---
module/spl/spl-generic.c | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
Index: b/module/spl/spl-generic.c
===================================================================
--- a/module/spl/spl-generic.c
+++ b/module/spl/spl-generic.c
@@ -471,8 +471,12 @@
file = kobj_open_file(spl_hostid_path);
- if (file == (struct _buf *)-1)
+ if (file == (struct _buf *)-1) {
+ printk(KERN_WARNING
+ "SPL: The %s file is not found.\n",
+ spl_hostid_path);
return -1;
+ }
result = kobj_get_filesize(file, &size);

View File

@ -1 +0,0 @@
0001-Revert-Remove-etc-hostid-missing-warning.patch

View File

@ -1,63 +0,0 @@
#!/usr/bin/make -f
NAME := $(shell awk '$$1 == "Name:" { print $$2; }' META)
VERSION := $(shell dpkg-parsechangelog \
| awk '$$1 == "Version:" { print $$2; }' | cut -d- -f1)
REVISION := $(shell dpkg-parsechangelog \
| awk '$$1 == "Version:" { print $$2; }' | cut -d- -f2-)
%:
dh $@ --with autoreconf
override_dh_auto_configure:
@# Embed the downstream version in the module.
@sed \
-e 's/^Version:.*/Version: $(VERSION)/' \
-e 's/^Release:.*/Release: $(REVISION)/' \
-i.orig META
@# Create the makefiles and configure script.
./autogen.sh
@# Build the userland, but don't build the kernel modules.
dh_auto_configure -- --with-config=user
override_dh_auto_test:
# scripts/check.sh tries insmod and rmmod, so it cannot
# run in an unprivileged build environment.
override_dh_auto_install:
@# Install the utilities.
make install DESTDIR='$(CURDIR)/debian/tmp'
@# Create a dummy hostid file for the zfs-initramfs package.
@# NB: Commentary in the spl.postinst script.
mkdir -p '$(CURDIR)/debian/tmp/etc/'
/usr/bin/printf '\xFF\xFF\xFF\xFF' >'$(CURDIR)/debian/tmp/etc/hostid'
@# Get a bare copy of the source code.
@# This creates the $(CURDIR)/$(NAME)-$(VERSION)/ tree.
make distdir
@# Delete boilerplate to satisfy the lintian extra-license-file check.
rm '$(CURDIR)/$(NAME)-$(VERSION)/COPYING'
@# This shunt allows DKMS to install the Module.symvers and spl_config.h
@# files to the ${dkms_tree} area through the POST_INSTALL directive.
echo '#!/bin/sh' >'$(CURDIR)/$(NAME)-$(VERSION)/cp'
echo 'cp "$$@"' >>'$(CURDIR)/$(NAME)-$(VERSION)/cp'
chmod 755 '$(CURDIR)/$(NAME)-$(VERSION)/cp'
# Install the DKMS source.
mkdir -p '$(CURDIR)/debian/tmp/usr/src/'
mv '$(CURDIR)/$(NAME)-$(VERSION)' '$(CURDIR)/debian/tmp/usr/src/'
# Install the dkms.conf file.
dh_dkms -V $(VERSION)
override_dh_auto_clean:
dh_auto_clean
@if test -e META.orig; then mv META.orig META; fi
%:
dh $@

View File

@ -1,3 +0,0 @@
usr/src/spl-*/AUTHORS usr/share/doc/spl-dkms/
usr/src/spl-*/DISCLAIMER usr/share/doc/spl-dkms/
usr/src

View File

@ -1,3 +0,0 @@
#!/bin/sh -e
#DEBHELPER#

View File

@ -1,3 +0,0 @@
#!/bin/sh -e
#DEBHELPER#

View File

@ -1,3 +0,0 @@
etc/hostid
usr/sbin
usr/share/man

View File

@ -1,59 +0,0 @@
#!/bin/sh -e
# The hostname and hostid of the last system to access a ZFS pool are stored in
# the ZFS pool itself. A pool is foreign if, during `zpool import`, the
# current hostname and hostid are different than the stored values thereof.
#
# The hostname and hostid on Solaris are intrinsic, but they are not on Linux,
# so the spl kernel module invokes /bin/hostname and /usr/bin/hostid from the
# userland in its initialization routine.
#
# However, these two indentifiers are usually undefined in the Linux initramfs
# environment, so the /etc/hostname and /etc/hostid files must be added to the
# initrd. Things like a DHCP lease change can affect the hostid too.
#
# ZFS requires stable values for hostname and hostid, but basic Linux systems
# do not. The hostid is therefore stabilized by creating the /etc/hostid file
# in the regular environment if it does not already exist. An undefined
# hostname is usuallly stable.
#
# Neither /etc/hostname nor /etc/hostid are controlled configuration files in
# Debian distributions, but the spl package nevertheless installs a dummy
# /etc/hostid file that contains the HW_INVALID_HOSTID sentinal value so that
# the package manager will track it.
# This result is always an eight-character hexadecimal number sans the 0x
# prefix. Remember that /usr/bin/hostid generates a value if the /etc/hostid
# file doesn't exist or is malformed.
HOSTID=$(hostid)
if [ -f /etc/hostid -a "0x$HOSTID" != "0xffffffff" ]
then
# This system already has a stable hostid.
exit 0
fi
# Truncate the dummy file and generate the actual system hostid.
: >/etc/hostid
HOSTID=$(hostid)
# @TODO: Check whether this method is appropriate for gethostid(2) on big
# endian systems. (Update: It isn't.)
#
# The /etc/hostname file on i386 and amd64 systems must be a little endian
# integer of exacly four bytes. Regardless, a consistent hostid is more
# important than a correct byte order here.
# Conveniences like a ${HOSTID:$ii:2} substring range or a `sed` one-liner
# are prohibited here because this file must be dash-compatible by policy.
AA=$(echo $HOSTID | cut -b 1,2)
BB=$(echo $HOSTID | cut -b 3,4)
CC=$(echo $HOSTID | cut -b 5,6)
DD=$(echo $HOSTID | cut -b 7,8)
# Invoke the external printf because the dash builtin lacks the byte format.
"$(which printf)" "\x$DD\x$CC\x$BB\x$AA" >"/etc/hostid"
# @ASSERT: [ "$HOSTID" = "$(hostid)" ]
#DEBHELPER#

119
spl-patches/fix-control Normal file
View File

@ -0,0 +1,119 @@
Index: new/debian/rules
===================================================================
--- new.orig/debian/rules 2015-10-09 10:02:21.000000000 +0200
+++ new/debian/rules 2015-10-09 10:12:04.000000000 +0200
@@ -22,9 +22,7 @@
KVERS=$(shell uname -r | sed 's/-$(DEB_HOST_ARCH)//')
endif
-CFG_OPTS=--without-selinux \
- --with-linux=$(KSRC) \
- --with-linux-obj=$(KOBJ)
+CFG_OPTS=--without-selinux
non_epoch_version=$(shell echo $(KVERS) | perl -pe 's/^\d+://')
PACKAGE=spl
@@ -33,7 +31,7 @@
KIMGVER=$(shell dpkg -s linux-image-$(KVERS)-$(DEB_HOST_ARCH) | grep ^Version | sed 's/.*: //')
%:
- dh $@ --with dkms --parallel
+ dh $@ --parallel
override_dh_prep-base-deb-files:
sed -e 's/##SHLIB_MAJOR##/$(SHLIB_MAJOR)/g' < debian/control.in > debian/control
@@ -75,59 +73,6 @@
@# contain the userland sources. NB: Remove-userland-dist-rules.patch
$(MAKE) distdir
- @# Install the DKMS source.
- @# We only want the files needed to build the modules
- mkdir -p '$(CURDIR)/debian/tmp/usr/src/$(NAME)-$(VERSION)'
- touch '$(CURDIR)/debian/tmp/usr/src/$(NAME)-$(VERSION)/.nogitrelease'
- cp '$(CURDIR)/autogen.sh' '$(CURDIR)/debian/tmp/usr/src/$(NAME)-$(VERSION)/'
- ( for d in include module config; do \
- rm -Rf $(CURDIR)/debian/tmp/usr/src/$(NAME)-$(VERSION)/$$d; \
- done)
- $(foreach file,$(DKMSFILES),mv '$(CURDIR)/$(NAME)-$(VERSION)/$(file)' '$(CURDIR)/debian/tmp/usr/src/$(NAME)-$(VERSION)' || exit 1;)
- @# Hellish awk line:
- @# * Deletes from configure.ac the parts not needed for building the kernel module
- @# * It deletes from inside AC_CONFIG_FILES([]) everything except:
- @# (Makefile$|include/|module/|*.release$)
- @# * Takes care of spaces and tabs
- awk '/^AC_CONFIG_FILES\(\[/,/^\]\)/ { if ($$0 !~ /^(AC_CONFIG_FILES\(\[([ \t]+)?$$|\]\)([ \t]+)?$$|([ \t]+)?(include\/|module\/|Makefile([ \t]+)?$$|spl\.release([ \t]+)?$$))/){next} } {print}' \
- '$(CURDIR)/$(NAME)-$(VERSION)/configure.ac' > '$(CURDIR)/debian/tmp/usr/src/$(NAME)-$(VERSION)/configure.ac'
- @# Set "SUBDIRS = module include" for CONFIG_KERNEL and remove SUBDIRS for all other configs.
- sed '1,/CONFIG_KERNEL/s/SUBDIRS.*=.*//g;s/SUBDIRS.*=.*/SUBDIRS = module include/g;' \
- '$(CURDIR)/$(NAME)-$(VERSION)/Makefile.am' > '$(CURDIR)/debian/tmp/usr/src/$(NAME)-$(VERSION)/Makefile.am'
- @# Sanity test
- grep -q 'SUBDIRS = module include' '$(CURDIR)/debian/tmp/usr/src/$(NAME)-$(VERSION)/Makefile.am'
- @# Run autogen on the stripped source tree
- cd '$(CURDIR)/debian/tmp/usr/src/$(NAME)-$(VERSION)'; ./autogen.sh
- rm -fr '$(CURDIR)/debian/tmp/usr/src/$(NAME)-$(VERSION)/autom4te.cache'
-
- @# This shunt allows DKMS to install the Module.symvers and spl_config.h
- @# files to the ${dkms_tree} area through the POST_INSTALL directive.
- echo '#!/bin/sh' >'$(CURDIR)/debian/tmp/usr/src/$(NAME)-$(VERSION)/cp'
- echo 'cp "$$@"' >>'$(CURDIR)/debian/tmp/usr/src/$(NAME)-$(VERSION)/cp'
- chmod 755 '$(CURDIR)/debian/tmp/usr/src/$(NAME)-$(VERSION)/cp'
-
- @# Duplicate the dkms directory for module-assistant source package
- install -d $(CURDIR)/debian/tmp/usr/src/modules
- cp -r $(CURDIR)/debian/tmp/usr/src/$(NAME)-$(VERSION) $(CURDIR)/debian/tmp/usr/src/modules/$(PACKAGE)
- mkdir -p $(CURDIR)/debian/tmp/usr/src/modules/$(PACKAGE)/debian
- cp debian/copyright debian/module/* \
- $(CURDIR)/debian/tmp/usr/src/modules/$(PACKAGE)/debian/
- sed 's/^spl-linux /spl-modules /' debian/changelog \
- > $(CURDIR)/debian/tmp/usr/src/modules/$(PACKAGE)/debian/changelog
- chmod 755 $(CURDIR)/debian/tmp/usr/src/modules/$(PACKAGE)/debian/rules
- chown -R root.src $(CURDIR)/debian/tmp
- find $(CURDIR)/debian/tmp/usr/src -type d | xargs chmod 755
- find $(CURDIR)/debian/tmp/usr/src -type f -perm -100 | xargs chmod 755
- find $(CURDIR)/debian/tmp/usr/src -type f -not -perm -100 | xargs chmod 644
- chmod 775 $(CURDIR)/debian/tmp/usr/src/modules
- cd $(CURDIR)/debian/tmp/usr/src && tar cf $(PACKAGE).tar modules
- rm -Rf $(CURDIR)/debian/tmp/usr/src/modules
- bzip2 $(CURDIR)/debian/tmp/usr/src/$(PACKAGE).tar
- chmod 644 $(CURDIR)/debian/tmp/usr/src/$(PACKAGE).tar.bz2
- install -d $(CURDIR)/debian/spl-modules-source/usr/src
- mv $(CURDIR)/debian/tmp/usr/src/$(PACKAGE).tar.bz2 $(CURDIR)/debian/spl-modules-source/usr/src/
- rm -Rf $(CURDIR)/debian/spl-modules-source/usr/src/$(NAME)-$(VERSION)
-
override_dh_dkms:
dh_dkms -V $(VERSION)
Index: new/debian/control.in
===================================================================
--- new.orig/debian/control.in 2015-10-09 10:02:21.000000000 +0200
+++ new/debian/control.in 2015-10-09 10:12:44.000000000 +0200
@@ -35,30 +35,6 @@
This package provides the source to the SPL kernel module in a form
suitable for use by module-assistant or kernel-package.
-Package: spl-dkms
-Architecture: all
-Depends: linux-headers-amd64, libc6-dev, ${misc:Depends}, dkms (>> 2.1.1.2-5), lsb-release, file
-Recommends: spl (>= ${source:Upstream-Version})
-Provides: spl-modules
-Conflicts: spl-modules-source
-Replaces: spl-modules-source
-Description: Solaris Porting Layer kernel modules for Linux
- The Solaris Porting Layer (SPL) is a Linux kernel module which provides
- many of the Solaris kernel APIs. This shim layer makes it possible to
- run Solaris kernel code in the Linux kernel with relatively minimal
- modification. The Solaris Porting LAyer Tests (SPLAT) is a Linux kernel
- module which provides a testing harness for the SPL module.
- .
- SPL can be particularly useful when you want to track upstream Illumos
- (or any other OpenSolaris fork) development closely and don't want the
- overhead of maintaining a large patch which converts Solaris primitives
- to Linux primitives.
- .
- This package contains the source code for the SPL and SPLAT Linux kernel
- modules, which can be used with DKMS, so that local kernel modules are
- automatically built and installed every time the kernel packages are
- upgraded.
-
Package: spl
Architecture: linux-any
Depends: ${shlibs:Depends}, ${misc:Depends}

1
spl-patches/series Normal file
View File

@ -0,0 +1 @@
fix-control

Binary file not shown.

85
zfs-changelog.Debian Normal file
View File

@ -0,0 +1,85 @@
zfs-linux (0.6.5.7-5~bpo70) unstable; urgency=low
* rebuild using wheezy
-- Proxmox Support Team <support@proxmox.com> Tue, 28 Jun 2016 15:41:00 +0200
zfs-linux (0.6.5.7-4~bpo70) unstable; urgency=low
* update pkg-zfs to 0.6.5.7-8-wheezy
* drop unneeded/non-upstream pull requests:
- #1099: iSCSI support for ZoL
- #1476: Change sharesmb to use REGISTRY shares for better control by user/admin
- #2790: Rewrite of nfs.c to keep options per host separated.
- #3238: Allow "zfs unshare <proto> -a" much like "zfs share <proto> -a" (WIP)
* change versioning scheme to allow upgrades from PVE 3.4 to PVE 4.2
-- Proxmox Support Team <support@proxmox.com> Tue, 28 Jun 2016 13:45:00 +0200
zfs-linux (0.6.5-3~wheezy) unstable; urgency=low
* update to 0.6.5.6
-- Proxmox Support Team <support@proxmox.com> Wed, 30 Mar 2016 11:32:59 +0200
zfs-linux (0.6.5-2~wheezy) unstable; urgency=low
* update to 0.6.5.4
-- Proxmox Support Team <support@proxmox.com> Sun, 17 Jan 2016 14:44:55 +0100
zfs-linux (0.6.5-1~wheezy) unstable; urgency=low
* update to master/debian/wheezy/0.6.5.2-2-wheezy
-- Proxmox Support Team <support@proxmox.com> Fri, 09 Oct 2015 10:04:04 +0200
zfs-linux (0.6.4-4~wheezy) unstable; urgency=low
* update to 0.6.4.2 (snapshot/debian/wheezy/0.6.4-21-53b1d9-wheezy)
* use upstream version of /etc/default/zfs
-- Proxmox Support Team <support@proxmox.com> Tue, 21 Jul 2015 07:17:40 +0200
zfs-linux (0.6.4-3~wheezy) unstable; urgency=low
* update to 0.6.4.1
-- Proxmox Support Team <support@proxmox.com> Thu, 30 Apr 2015 07:31:44 +0200
zfs-linux (0.6.4-2~wheezy) unstable; urgency=low
* cleanup /etc/default/zfs
* include orignial zol changelog files
-- Proxmox Support Team <support@proxmox.com> Tue, 14 Apr 2015 07:30:59 +0200
zfs-linux (0.6.4-1~wheezy) unstable; urgency=low
* update to 0.6.4
-- Proxmox Support Team <support@proxmox.com> Sun, 12 Apr 2015 09:33:13 +0200
zfs-linux (0.6.3-3~wheezy) unstable; urgency=low
* install init.d file for zed daemon
-- Proxmox Support Team <support@proxmox.com> Sun, 15 Mar 2015 14:57:30 +0100
zfs-linux (0.6.3-2~wheezy) unstable; urgency=low
* use /sbin/modprobe to avoid warning inside initrd
* fix warning about undefined values inside initrd
-- Proxmox Support Team <support@proxmox.com> Wed, 14 Jan 2015 19:03:04 +0100
zfs-linux (0.6.3-1~wheezy) unstable; urgency=low
* first version for Proxmox VE
-- Proxmox Support Team <support@proxmox.com> Sat, 10 Jan 2015 14:06:34 +0100

View File

@ -1,14 +0,0 @@
zfs-linux (0.6.3-2~wheezy) unstable; urgency=low
* use /sbin/modprobe to avoid warning inside initrd
* fix warning about undefined values inside initrd
-- Proxmox Support Team <support@proxmox.com> Wed, 14 Jan 2015 19:03:04 +0100
zfs-linux (0.6.3-1~wheezy) unstable; urgency=low
* first version for Proxmox VE
-- Proxmox Support Team <support@proxmox.com> Sat, 10 Jan 2015 14:06:34 +0100

View File

@ -1 +0,0 @@
7

View File

@ -1,178 +0,0 @@
Source: zfs-linux
Section: kernel
Priority: extra
Maintainer: Proxmox Support Team <support@proxmox.com>
Build-Depends: autotools-dev,
autoconf,
autogen,
automake,
debhelper (>= 8),
dh-autoreconf,
dkms (>= 2.2.0.2),
libselinux1-dev,
libtool,
uuid-dev,
zlib1g-dev,
Standards-Version: 3.9.5
Package: libnvpair1
Section: libs
Architecture: linux-any
Depends: ${misc:Depends}, ${shlibs:Depends}
Replaces: libnvpair0
Description: Solaris name-value library for Linux
This library provides routines for packing and unpacking nv pairs for
transporting data across process boundaries, transporting between
kernel and userland, and possibly saving onto disk files.
Package: libnvpair1-dbg
Section: debug
Architecture: linux-any
Depends: ${misc:Depends}, libnvpair1 (= ${binary:Version})
Replaces: libnvpair0-dbg
Description: Debugging symbols for libnvpair1
This library provides routines for packing and unpacking nv pairs for
transporting data across process boundaries, transporting between
kernel and userland, and possibly saving onto disk files.
.
This package contains the debugging symbols for libnvpair1.
Package: libuutil1
Section: libs
Architecture: linux-any
Depends: ${misc:Depends}, ${shlibs:Depends}
Replaces: libuutil0
Description: Solaris userland utility library for Linux
This library provides a variety of glue functions for OpenZFS on Linux:
* libspl: The Solaris Porting Layer library, which provides APIs that make it
possible to run Solaris user code in a Linux environment with relatively
minimal modification.
* libavl: The Adelson-Velskii Landis balanced binary tree manipulation
library.
* libefi: The Extensible Firmware Interface library for GUID disk
partitioning.
* libshare: NFS and SMB service integration for OpenZFS.
Package: libuutil1-dbg
Section: debug
Architecture: linux-any
Depends: ${misc:Depends}, libuutil1 (= ${binary:Version})
Replaces: libuutil0-dbg
Description: Debugging symbols for libuutil1
This library provides a variety of glue functions for OpenZFS on Linux:
* libspl: The Solaris Porting Layer library, which provides APIs that make it
possible to run Solaris user code in a Linux environment with relatively
minimal modification.
* libavl: The Adelson-Velskii Landis balanced binary tree manipulation
library.
* libefi: The Extensible Firmware Interface library for GUID disk
partitioning.
* libshare: NFS and SMB service integration for OpenZFS.
.
This package contains debugging symbols for libuutil1.
Package: libzfs-dev
Section: libdevel
Architecture: linux-any
Depends: ${misc:Depends}, libzfs2 (= ${binary:Version})
Provides: libnvpair-dev, libuutil-dev
Replaces: libefi1,
libnvpair1,
libshare1,
libspl1,
libunicode1,
libuutil1,
libzavl1,
libzfs2,
libzpool2,
Description: Native OpenZFS filesystem development files for Linux
Header files and static libraries for compiling software
against libzfs.
Package: libzfs2
Section: libs
Architecture: linux-any
Depends: ${misc:Depends}, ${shlibs:Depends}
Replaces: libzfs0, libzfs1
Description: Native OpenZFS filesystem library for Linux
The ZoL management library.
Package: libzfs2-dbg
Section: debug
Architecture: linux-any
Depends: ${misc:Depends}, libzfs2 (= ${binary:Version})
Replaces: libzfs0-dbg, libzfs1-dbg
Description: Debugging symbols for libzfs2
The ZoL management library.
.
This package contains the debugging symbols for libzfs2.
Package: libzpool2
Section: libs
Architecture: linux-any
Depends: ${misc:Depends}, ${shlibs:Depends}
Replaces: libzpool0, libzpool1
Description: Native OpenZFS pool library for Linux
The zpool management library.
Package: libzpool2-dbg
Section: debug
Architecture: linux-any
Depends: ${misc:Depends}, libzpool2 (= ${binary:Version})
Replaces: libzpool0-dbg, libzpool1-dbg
Description: Debugging symbols for libzpool2
The zpool management library.
.
This package contains the debugging symbols for libzpool2.
Package: zfs-dkms
Section: kernel
Architecture: linux-any
Pre-Depends: spl-dkms (>= ${source:Upstream-Version})
Depends: ${misc:Depends}, dkms (>= 2.2.0.2)
Replaces: lzfs, lzfs-dkms
Provides: lustre-backend-fs, lzfs, lzfs-dkms
Conflicts: lzfs, lzfs-dkms
Description: Native OpenZFS filesystem kernel modules for Linux
An advanced integrated volume manager and filesystem that is designed for
performance and data integrity. Snapshots, clones, checksums, deduplication,
compression, and RAID redundancy are built-in features.
.
Includes the SPA, DMU, ZVOL, and ZPL components of OpenZFS.
Package: zfs-doc
Section: doc
Architecture: linux-any
Depends: ${misc:Depends}
Description: Native OpenZFS filesystem documentation and examples.
Shared boilerplate files for OpenZFS on Linux that are not required at runtime.
Package: zfs-initramfs
Section: kernel
Architecture: linux-any
Depends: ${misc:Depends}, zfsutils
Description: Native OpenZFS root filesystem capabilities for Linux
This package adds OpenZFS to the system initramfs with a hook
for the initramfs-tools infrastructure.
Package: zfsutils
Section: admin
Architecture: linux-any
Depends: ${misc:Depends}, ${shlibs:Depends}
Suggests: samba-common-bin (>= 3.0.23), nfs-kernel-server, zfs-initramfs
Conflicts: zfs, zfs-fuse
Replaces: zfs
Description: Native OpenZFS management utilities for Linux
This package provides the zpool and zfs commands that are used to
manage OpenZFS filesystems.
Package: zfsutils-dbg
Section: debug
Architecture: linux-any
Depends: ${misc:Depends}, zfsutils (= ${binary:Version})
Replaces: zfs-dbg
Description: Debugging symbols for zfsutils
This package provides the zpool and zfs commands that are used to
manage OpenZFS filesystems.
.
This package contains the debugging symbols for zfsutils.

File diff suppressed because it is too large Load Diff

View File

@ -1 +0,0 @@
lib/libnvpair.so.*

View File

@ -1 +0,0 @@
lib/libuutil.so.*

View File

@ -1,4 +0,0 @@
lib/*.a
lib/*.la
lib/*.so
usr/include

View File

@ -1,2 +0,0 @@
lib/libzfs.so.*
lib/libzfs_core.so.*

View File

@ -1 +0,0 @@
lib/libzpool.so.*

View File

@ -1,71 +0,0 @@
From: Darik Horn <dajhorn@vanadac.com>
Date: Tue, 17 Jan 2012 19:45:07 -0600
Subject: Prevent manual builds in the DKMS source.
Print an instructive error messsage and exit if the `dkms.conf` file
exists when the userland is configured. (ie: `--with-config=user`)
A non-trivial number of people try to rebuild ZoL from the
`/usr/src/zfs` tree, which is modified to better satisfy Debian
packaging policy and contains only the module sources for DKMS.
Regardless, local installations usually break managed installations,
so this autotools test could be further enhanced to check whether
ZFS has a DKMS registration.
---
config/dkms.m4 | 14 ++++++++++++++
config/user.m4 | 1 +
config/zfs-build.m4 | 6 +++---
3 files changed, 18 insertions(+), 3 deletions(-)
create mode 100644 config/dkms.m4
diff --git a/config/dkms.m4 b/config/dkms.m4
new file mode 100644
index 0000000..cfa1152
--- /dev/null
+++ b/config/dkms.m4
@@ -0,0 +1,14 @@
+dnl #
+dnl # Prevent manual building in DKMS source tree.
+dnl #
+AC_DEFUN([ZFS_AC_DKMS_INHIBIT], [
+ AC_MSG_CHECKING([for dkms.conf file])
+ AS_IF([test -e dkms.conf], [
+ AC_MSG_ERROR([
+ *** ZFS should not be manually built in the DKMS source tree.
+ *** Remove all ZFS packages before compiling the ZoL sources.
+ *** Running "make install" breaks ZFS packages.])
+ ], [
+ AC_MSG_RESULT([not found])
+ ])
+])
diff --git a/config/user.m4 b/config/user.m4
index 3802437..f5a8827 100644
--- a/config/user.m4
+++ b/config/user.m4
@@ -2,6 +2,7 @@ dnl #
dnl # Default ZFS user configuration
dnl #
AC_DEFUN([ZFS_AC_CONFIG_USER], [
+ ZFS_AC_DKMS_INHIBIT
ZFS_AC_CONFIG_USER_UDEV
ZFS_AC_CONFIG_USER_SYSTEMD
ZFS_AC_CONFIG_USER_SYSVINIT
diff --git a/config/zfs-build.m4 b/config/zfs-build.m4
index 5ec94a0..41eec88 100644
--- a/config/zfs-build.m4
+++ b/config/zfs-build.m4
@@ -87,10 +87,10 @@ AC_DEFUN([ZFS_AC_CONFIG], [
ZFS_AC_CONFIG_ALWAYS
case "$ZFS_CONFIG" in
- kernel) ZFS_AC_CONFIG_KERNEL ;;
user) ZFS_AC_CONFIG_USER ;;
- all) ZFS_AC_CONFIG_KERNEL
- ZFS_AC_CONFIG_USER ;;
+ kernel) ZFS_AC_CONFIG_KERNEL ;;
+ all) ZFS_AC_CONFIG_USER
+ ZFS_AC_CONFIG_KERNEL ;;
srpm) ;;
*)
AC_MSG_RESULT([Error!])

View File

@ -1,70 +0,0 @@
From: Darik Horn <dajhorn@vanadac.com>
Date: Sat, 18 Oct 2014 14:23:11 -0500
Subject: Check for META and DCH consistency in autoconf.
If a debian/ packaging overlay exists, then the software versions defined in
the META and debian/changelog files must be the same to ensure that DKMS uses
correct paths and that users see the same version everywhere.
---
config/zfs-meta.m4 | 34 +++++++++++++++++++++++++++++-----
1 file changed, 29 insertions(+), 5 deletions(-)
diff --git a/config/zfs-meta.m4 b/config/zfs-meta.m4
index 7c92dd5..d174ccc 100644
--- a/config/zfs-meta.m4
+++ b/config/zfs-meta.m4
@@ -1,9 +1,10 @@
dnl #
dnl # DESCRIPTION:
-dnl # Read meta data from the META file. When building from a git repository
-dnl # the ZFS_META_RELEASE field will be overwritten if there is an annotated
-dnl # tag matching the form ZFS_META_NAME-ZFS_META_VERSION-*. This allows
-dnl # for working builds to be uniquely identified using the git commit hash.
+dnl # Read meta data from the META file or the debian/changelog file if it
+dnl # exists. When building from a git repository the ZFS_META_RELEASE field
+dnl # will be overwritten if there is an annotated tag matching the form
+dnl # ZFS_META_NAME-ZFS_META_VERSION-*. This allows for working builds to be
+dnl # uniquely identified using the git commit hash.
dnl #
dnl # The META file format is as follows:
dnl # ^[ ]*KEY:[ \t]+VALUE$
@@ -49,6 +50,7 @@ AC_DEFUN([ZFS_AC_META], [
_zfs_ac_meta_type="none"
if test -f "$META"; then
_zfs_ac_meta_type="META file"
+ _dpkg_parsechangelog=$(dpkg-parsechangelog 2>/dev/null)
ZFS_META_NAME=_ZFS_AC_META_GETVAL([(Name|Project|Package)]);
if test -n "$ZFS_META_NAME"; then
@@ -66,8 +68,30 @@ AC_DEFUN([ZFS_AC_META], [
AC_SUBST([ZFS_META_VERSION])
fi
+ if test -n "${_dpkg_parsechangelog}"; then
+ _dpkg_version=$(echo "${_dpkg_parsechangelog}" \
+ | $AWK '$[]1 == "Version:" { print $[]2; }' \
+ | cut -d- -f1)
+ if test "${_dpkg_version}" != "$ZFS_META_VERSION"; then
+ AC_MSG_ERROR([
+ *** Version $ZFS_META_VERSION in the META file is different than
+ *** version $_dpkg_version in the debian/changelog file. DKMS and DEB
+ *** packaging require that these files have the same version.
+ ])
+ fi
+ fi
+
ZFS_META_RELEASE=_ZFS_AC_META_GETVAL([Release]);
- if test ! -f ".nogitrelease" && git rev-parse --git-dir > /dev/null 2>&1; then
+
+ if test -n "${_dpkg_parsechangelog}"; then
+ _dpkg_release=$(echo "${_dpkg_parsechangelog}" \
+ | $AWK '$[]1 == "Version:" { print $[]2; }' \
+ | cut -d- -f2-)
+ if test -n "${_dpkg_release}"; then
+ ZFS_META_RELEASE=${_dpkg_release}
+ _zfs_ac_meta_type="dpkg-parsechangelog"
+ fi
+ elif test ! -f ".nogitrelease" && git rev-parse --git-dir > /dev/null 2>&1; then
_match="${ZFS_META_NAME}-${ZFS_META_VERSION}"
_alias=$(git describe --match=${_match} 2>/dev/null)
_release=$(echo ${_alias}|cut -f3- -d'-'|sed 's/-/_/g')

View File

@ -1,41 +0,0 @@
From: Darik Horn <dajhorn@vanadac.com>
Date: Sat, 18 Oct 2014 19:48:46 -0500
Subject: Add libuutil to LIBADD for libzfs and libzfs_core
Resolve spurious dpkg-shlibdeps warnings like this:
warning: symbol strlcpy used by libzfs_core.so found in none of the libraries
This happens because dpkg-shlibdeps does not recursively search for symbols.
Signed-off-by: Darik Horn <dajhorn@vanadac.com>
---
lib/libzfs/Makefile.am | 1 +
lib/libzfs_core/Makefile.am | 3 ++-
2 files changed, 3 insertions(+), 1 deletion(-)
diff --git a/lib/libzfs/Makefile.am b/lib/libzfs/Makefile.am
index 8b1f517..efdf84b 100644
--- a/lib/libzfs/Makefile.am
+++ b/lib/libzfs/Makefile.am
@@ -23,6 +23,7 @@ libzfs_la_SOURCES = \
libzfs_la_LIBADD = \
$(top_builddir)/lib/libzfs_core/libzfs_core.la \
+ $(top_builddir)/lib/libuutil/libuutil.la \
$(top_builddir)/lib/libshare/libshare.la \
$(top_builddir)/lib/libnvpair/libnvpair.la \
$(top_builddir)/lib/libzpool/libzpool.la
diff --git a/lib/libzfs_core/Makefile.am b/lib/libzfs_core/Makefile.am
index 0ecd208..6f0be5f 100644
--- a/lib/libzfs_core/Makefile.am
+++ b/lib/libzfs_core/Makefile.am
@@ -10,6 +10,7 @@ libzfs_core_la_SOURCES = \
$(top_srcdir)/lib/libzfs_core/libzfs_core.c
libzfs_core_la_LIBADD = \
- $(top_builddir)/lib/libnvpair/libnvpair.la
+ $(top_builddir)/lib/libnvpair/libnvpair.la \
+ $(top_builddir)/lib/libuutil/libuutil.la
libzfs_core_la_LDFLAGS = -version-info 1:0:0

View File

@ -1,31 +0,0 @@
From: Ned Bass <bass6@llnl.gov>
Date: Wed, 17 Dec 2014 11:01:42 -0800
Subject: vdev_id: use mawk-compatible regular expression
Slot mapping in vdev_id doesn't work on systems using mawk as the 'awk'
alternative. A regular expression in map_slot() contains an unquoted
empty string following the alternation (|) operator, which results in an
"missing operand" error with mawk. The solution is to rearrange the
expression so the alternation has two operands.
Signed-off-by: Ned Bass <bass6@llnl.gov>
Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
Closes zfsonlinux/pkg-zfs#136
Closes zfsonlinux/zfs#2965
---
cmd/vdev_id/vdev_id | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/cmd/vdev_id/vdev_id b/cmd/vdev_id/vdev_id
index b6752ba..6fddd12 100755
--- a/cmd/vdev_id/vdev_id
+++ b/cmd/vdev_id/vdev_id
@@ -116,7 +116,7 @@ map_slot() {
local MAPPED_SLOT=
MAPPED_SLOT=`awk "\\$1 == \"slot\" && \\$2 == ${LINUX_SLOT} && \
- \\$4 ~ /^(${CHANNEL}|)$/ { print \\$3; exit }" $CONFIG`
+ \\$4 ~ /^${CHANNEL}$|^$/ { print \\$3; exit }" $CONFIG`
if [ -z "$MAPPED_SLOT" ] ; then
MAPPED_SLOT=$LINUX_SLOT
fi

View File

@ -1,4 +0,0 @@
0001-Prevent-manual-builds-in-the-DKMS-source.patch
0002-Check-for-META-and-DCH-consistency-in-autoconf.patch
0003-Add-libuutil-to-LIBADD-for-libzfs-and-libzfs_core.patch
0005-vdev_id-use-mawk-compatible-regular-expression.patch

View File

@ -1,115 +0,0 @@
#!/usr/bin/make -f
CHMOD ?= chmod
INSTALL ?= install
MAKE ?= make
META_NAME := $(shell awk '$$1 == "Name:" { print $$2; }' META)
VERSION := $(shell dpkg-parsechangelog \
| awk '$$1 == "Version:" { print $$2; }' | cut -d- -f1)
REVISION := $(shell dpkg-parsechangelog \
| awk '$$1 == "Version:" { print $$2; }' | cut -d- -f2-)
META_DISTDIR := $(CURDIR)/$(META_NAME)-$(VERSION)/
%:
dh $@ --with autoreconf,dkms
override_dh_auto_configure:
@# Embed the downstream version in the module.
@sed \
-e 's/^Version:.*/Version: $(VERSION)/' \
-e 's/^Release:.*/Release: $(REVISION)/' \
-i.orig META
@# Build the userland, but don't build the kernel modules.
dh_auto_configure -- \
--bindir=/bin \
--sbindir=/sbin \
--libdir=/lib \
--with-udevdir=/lib/udev \
--with-config=user
override_dh_auto_test:
# The dh_auto_test rule is disabled because
# `make check` cannot run in an unprivileged build environment.
override_dh_auto_install:
@# Install the utilities.
$(MAKE) install DESTDIR='$(CURDIR)/debian/tmp'
@# Get a bare copy of the source code for DKMS.
@# This creates the $(META_DISTDIR)/ tree.
$(MAKE) distdir
@# Delete components that are not required to build the kernel modules.
@# This prevents several lintian complaints, discourages users from
@# running `make install` in /usr/src, and reduces the installation
@# size by one third. The printf creates a dummy automake file.
umask 0111 && \
cd '$(META_DISTDIR)' && \
for ii in $$(find cmd dracut etc lib man rpm scripts udev -type f); do \
rm "$$ii"; \
test "$$ii" != "$${ii%.in}" && printf '%%:\n\t#\n' >"$$ii"; \
true; \
done
@# This shunt allows DKMS to copy the Module.symvers and zfs_config.h
@# files into the ${dkms_tree} area through the POST_INSTALL directive.
printf '#!/bin/sh\ncp "$$@"\n' >'$(META_DISTDIR)/cp'
$(CHMOD) 755 '$(META_DISTDIR)/cp'
@# Install the DKMS source directly, avoiding dh_install.
$(INSTALL) -d '$(CURDIR)/debian/zfs-dkms/usr/src/'
mv '$(META_DISTDIR)' '$(CURDIR)/debian/zfs-dkms/usr/src/'
override_dh_dkms:
dh_dkms -V
override_dh_install:
@# Exclude the upstream /usr/lib/udev/rules.d files.
dh_install -X/rules.d/
@# Ensure that /etc/zfs is in the zfsutils package
@# because git has difficulty tracking empty directories.
$(INSTALL) -d '$(CURDIR)/debian/zfsutils/etc/zfs/'
@# Resolve lintian errors regarding Debian Policy Manual Section 8.4
@# by moving unversioned library links from /lib to /usr/lib in the
@# development package. Look at libc6-dev for a packaging example if
@# multiarch support ever becomes a concern here.
$(INSTALL) -d '$(CURDIR)/debian/libzfs-dev/usr/lib/'
cd '$(CURDIR)/debian/libzfs-dev/lib' && \
for ii in $$(find -type l); do \
ln -s "../../lib/$$(readlink "$$ii")" "../usr/lib/$$(basename "$$ii")" \
&& rm "$$ii"; \
done
override_dh_installdocs:
dh_installdocs --link-doc=zfs-doc
override_dh_installinit:
@# Install debian/zfsutils.zfs.default as /etc/default/zfs.
dh_installinit --name=zfs
@# Install the /etc/init.d/zfs-mount script.
@# Debian runs local mounts at sysv sequences [10..12] [08..09].
dh_installinit --name=zfs-mount \
--no-restart-on-upgrade --no-start -- defaults 13 07
@# Debian runs nfs-kernel-server at sysv sequence 17 01,
@# iscsitarget at 02 01, and samba at 01 02.
dh_installinit --name=zfs-share \
--no-restart-on-upgrade --no-start -- defaults 18 00
override_dh_installudev:
dh_installudev --name=zvol --priority=60
dh_installudev --name=vdev --priority=69
override_dh_strip:
dh_strip -plibnvpair1 --dbg-package=libnvpair1-dbg
dh_strip -plibuutil1 --dbg-package=libuutil1-dbg
dh_strip -plibzfs2 --dbg-package=libzfs2-dbg
dh_strip -plibzpool2 --dbg-package=libzpool2-dbg
dh_strip -pzfsutils --dbg-package=zfsutils-dbg

View File

@ -1,6 +0,0 @@
## /etc/dpkg/dpkg.cfg.d/zfs-doc
##
## DPKG overrides that prevent the installation of ZoL documentation.
## Enable this line to reduce installation size.
#path-exclude /usr/share/doc/zfs-doc/*

View File

@ -1,2 +0,0 @@
# Force the inclusion of Busybox in the initramfs.
BUSYBOX=y

View File

@ -1,78 +0,0 @@
#!/bin/sh
#
# Add ZoL filesystem capabilities to an initrd, usually for a native OpenZFS root.
#
# This hook installs udev rules for ZoL.
PREREQ="zdev"
# These prerequisites are provided by the zfsutils package. The zdb utility is
# not strictly required, but it can be useful at the initramfs recovery prompt.
COPY_EXEC_LIST="/sbin/zdb /sbin/zpool /sbin/zfs /sbin/mount.zfs"
# These prerequisites are provided by the base system.
COPY_EXEC_LIST="$COPY_EXEC_LIST /bin/hostname /sbin/blkid"
# Explicitly specify all kernel modules because automatic dependency resolution
# is unreliable on many systems.
MANUAL_ADD_MODULES_LIST="zlib_deflate spl zavl zcommon znvpair zunicode zfs"
# Generic result code.
RC=0
case $1 in
prereqs)
echo "$PREREQ"
exit 0
;;
esac
for ii in $COPY_EXEC_LIST
do
if [ ! -x "$ii" ]
then
echo "Error: $ii is not executable."
RC=2
fi
done
if [ "$RC" -ne 0 ]
then
exit "$RC"
fi
. /usr/share/initramfs-tools/hook-functions
mkdir -p "$DESTDIR/etc/"
# zpool requires /etc/mtab
ln -sf "/proc/mounts" "$DESTDIR/etc/mtab"
# ZDB uses pthreads for some functions, but the library dependency is not
# automatically detected. The `find` utility and extended `cp` options are
# used here because libgcc_s.so could be in a subdirectory of /lib for
# multi-arch installations.
cp --target-directory="$DESTDIR" --parents $(find /lib -type f -name libgcc_s.so.1)
for ii in $COPY_EXEC_LIST
do
copy_exec "$ii"
done
for ii in $MANUAL_ADD_MODULES_LIST
do
manual_add_modules "$ii"
done
if [ -f "/etc/hostname" ]
then
cp -p "/etc/hostname" "$DESTDIR/etc/"
else
hostname >"$DESTDIR/etc/hostname"
fi
# ZoL 0.6.3 deprecated the hostid check.
if [ -f /etc/hostid ]
then
cp -p /etc/hostid "$DESTDIR/etc/hostid"
fi

View File

@ -1,164 +0,0 @@
# ZFS boot stub for initramfs-tools.
#
# In the initramfs environment, the /init script sources this stub to
# override the default functions in the /scripts/local script.
#
# Enable this by passing boot=zfs on the kernel command line.
#
pre_mountroot()
{
[ "$quiet" != "y" ] && log_begin_msg "Running /scripts/local-top"
run_scripts /scripts/local-top
[ "$quiet" != "y" ] && log_end_msg
if [ -r '/etc/default/zfs' ]
then
ZFS_INITRD_PRE_MOUNTROOT_SLEEP=0
. '/etc/default/zfs'
if [ "$ZFS_INITRD_PRE_MOUNTROOT_SLEEP" -gt '0' ]
then
[ "$quiet" != "y" ] && log_begin_msg "Sleeping for $ZFS_INITRD_PRE_MOUNTROOT_SLEEP seconds..."
sleep "$ZFS_INITRD_PRE_MOUNTROOT_SLEEP"
[ "$quiet" != "y" ] && log_end_msg
fi
fi
}
# Duplicates the functionality found under try_failure_hooks in functions
# but invoking that would be inappropriate here.
disable_plymouth()
{
if [ -x /bin/plymouth ] && /bin/plymouth --ping
then
/bin/plymouth hide-splash >/dev/null 2>&1
fi
}
mountroot()
{
pre_mountroot
[ "$quiet" != "y" ] && log_begin_msg "Running /scripts/local-premount"
run_scripts /scripts/local-premount
[ "$quiet" != "y" ] && log_end_msg
# Wait for all of the /dev/{hd,sd}[a-z] device nodes to appear.
wait_for_udev
# Load the module now to get consistent automatic pool import behavior.
/sbin/modprobe zfs
# Check the kernel command line for overrides.
ZFS_RPOOL="${rpool#rpool=}"
ZFS_BOOTFS="${bootfs#bootfs=}"
if [ -z "$ZFS_RPOOL" ]
then
# Check for the `-B zfs-bootfs=%s/%u,...` kind of parameter.
#
# The ${zfs-bootfs} variable is set at the kernel commmand
# line, usually by GRUB, but it cannot be referenced here
# directly because bourne variable names cannot contain a
# hyphen.
#
# Reassign the variable by dumping the environment and
# stripping the zfs-bootfs= prefix. Let the shell handle
# quoting through the eval command.
eval ZFS_RPOOL=$(set | sed -n -e 's,^zfs-bootfs=,,p')
# Only the pool name is relevant because the ZFS filesystem on
# Linux is extrinsic and the userland cannot resolve a ZFS
# object number.
#
# Strip everything after the first slash character.
ZFS_RPOOL=$(echo "$ZFS_RPOOL" | sed -e 's,/.*,,')
fi
# Use "rpool" as the default, like on most Solaris systems.
[ -z "$ZFS_RPOOL" ] && ZFS_RPOOL='rpool'
# @FIXME: Forcing the import should not be necessary.
#
# Consider inhibiting automatic zpool imports in the initramfs
# environment and doing a full import in the regular system instead.
[ "$quiet" != "y" ] && log_begin_msg "Importing ZFS root pool $ZFS_RPOOL"
if [ -f /etc/zfs/zpool.cache ]
then
ZFS_STDERR=$(zpool list "$ZFS_RPOOL" 1>/dev/null 2>&1 \
|| zpool import -f -N "$ZFS_RPOOL" 2>&1)
ZFS_ERROR=$?
else
ZFS_STDERR=$(zpool import -f -N "$ZFS_RPOOL" 2>&1)
ZFS_ERROR=$?
fi
[ "$quiet" != "y" ] && log_end_msg
if [ "$ZFS_ERROR" -ne 0 ]
then
disable_plymouth
echo "Command: zpool import -f -N $ZFS_RPOOL"
echo "Message: $ZFS_STDERR"
echo "Error: $ZFS_ERROR"
echo ""
echo "Manually import the root pool at the command prompt and then exit."
echo "Hint: Try: zpool import -f -R / -N $ZFS_RPOOL"
/bin/sh
fi
if [ -z "$ZFS_BOOTFS" ]
then
[ "$quiet" != "y" ] && log_begin_msg "Getting ZFS bootfs property"
ZFS_BOOTFS=$(zpool list -H -o bootfs "$ZFS_RPOOL")
ZFS_ERROR=$?
[ "$quiet" != "y" ] && log_end_msg
fi
if [ -z "$ZFS_BOOTFS" ]
then
disable_plymouth
echo "Command: zpool list -H -o bootfs $ZFS_RPOOL"
echo "Error: $ZFS_ERROR, unable to get the bootfs property."
echo ""
echo "Manually mount the root filesystem on $rootmnt and then exit."
echo "Hint: Try: mount -t zfs -o zfsutil $ZFS_RPOOL/ROOT/system $rootmnt"
/bin/sh
fi
# Force the mountpoint to the only correct value for a root filesystem.
[ "$quiet" != "y" ] && log_begin_msg "Setting mountpoint=/ on ZFS filesystem $ZFS_BOOTFS"
ZFS_STDERR=$(zfs set mountpoint=/ "$ZFS_BOOTFS" 2>&1)
[ "$quiet" != "y" ] && log_end_msg
# Ideally, the root filesystem would be mounted like this:
#
# zpool import -R "$rootmnt" -N "$ZFS_RPOOL"
# zfs mount -o mountpoint=/ "$ZFS_BOOTFS"
#
# but the MOUNTPOINT prefix is preserved on descendent filesystem after
# the pivot into the regular root, which later breaks things like
# `zfs mount -a` and the /etc/mtab refresh.
[ "$quiet" != "y" ] && log_begin_msg "Mounting ZFS filesystem $ZFS_BOOTFS"
ZFS_STDERR=$(mount -t zfs -o zfsutil "$ZFS_BOOTFS" "$rootmnt" 2>&1)
ZFS_ERROR=$?
[ "$quiet" != "y" ] && log_end_msg
if [ "$ZFS_ERROR" -ne 0 ]
then
disable_plymouth
echo ""
echo "Command: mount -t zfs -o zfsutil $ZFS_BOOTFS $rootmnt"
echo "Message: $ZFS_STDERR"
echo "Error: $ZFS_ERROR"
echo ""
echo "Manually mount the root filesystem on $rootmnt and then exit."
/bin/sh
fi
[ "$quiet" != "y" ] && log_begin_msg "Running /scripts/local-bottom"
run_scripts /scripts/local-bottom
[ "$quiet" != "y" ] && log_end_msg
}

View File

@ -1,391 +0,0 @@
# Copyright (c) 2013, Aneurin Price <aneurin.price@gmail.com>
# Permission is hereby granted, free of charge, to any person
# obtaining a copy of this software and associated documentation
# files (the "Software"), to deal in the Software without
# restriction, including without limitation the rights to use,
# copy, modify, merge, publish, distribute, sublicense, and/or sell
# copies of the Software, and to permit persons to whom the
# Software is furnished to do so, subject to the following
# conditions:
# The above copyright notice and this permission notice shall be
# included in all copies or substantial portions of the Software.
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
# OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
# HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
# WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
# OTHER DEALINGS IN THE SOFTWARE.
if [[ -w /dev/zfs ]]; then
__ZFS_CMD="zfs"
__ZPOOL_CMD="zpool"
else
__ZFS_CMD="sudo zfs"
__ZPOOL_CMD="sudo zpool"
fi
__zfs_get_commands()
{
$__ZFS_CMD 2>&1 | awk '/^\t[a-z]/ {print $1}' | cut -f1 -d '|' | uniq
}
__zfs_get_properties()
{
$__ZFS_CMD get 2>&1 | awk '$2 == "YES" || $2 == "NO" {print $1}'; echo all name space
}
__zfs_get_editable_properties()
{
$__ZFS_CMD get 2>&1 | awk '$2 == "YES" {print $1"="}'
}
__zfs_get_inheritable_properties()
{
$__ZFS_CMD get 2>&1 | awk '$3 == "YES" {print $1}'
}
__zfs_list_datasets()
{
$__ZFS_CMD list -H -o name -t filesystem,volume
}
__zfs_list_filesystems()
{
$__ZFS_CMD list -H -o name -t filesystem
}
__zfs_match_snapshot()
{
local base_dataset=${cur%@*}
if [[ $base_dataset != $cur ]]
then
$__ZFS_CMD list -H -o name -s name -t snapshot -d 1 $base_dataset
else
$__ZFS_CMD list -H -o name -t filesystem,volume | awk '{print $1"@"}'
fi
}
__zfs_match_explicit_snapshot()
{
local base_dataset=${cur%@*}
if [[ $base_dataset != $cur ]]
then
$__ZFS_CMD list -H -o name -s name -t snapshot -d 1 $base_dataset
fi
}
__zfs_match_multiple_snapshots()
{
local existing_opts=$(expr "$cur" : '\(.*\)[%,]')
if [[ $existing_opts ]]
then
local base_dataset=${cur%@*}
if [[ $base_dataset != $cur ]]
then
local cur=${cur##*,}
if [[ $cur =~ ^%|%.*% ]]
then
# correct range syntax is start%end
return 1
fi
local range_start=$(expr "$cur" : '\(.*%\)')
$__ZFS_CMD list -H -o name -s name -t snapshot -d 1 $base_dataset | sed 's$.*@$'$range_start'$g'
fi
else
__zfs_match_explicit_snapshot; __zfs_list_datasets
fi
}
__zfs_list_volumes()
{
$__ZFS_CMD list -H -o name -t volume
}
__zfs_argument_chosen()
{
local word property
for word in $(seq $((COMP_CWORD-1)) -1 2)
do
local prev="${COMP_WORDS[$word]}"
if [[ ${COMP_WORDS[$word-1]} != -[tos] ]]
then
if [[ "$prev" == [^,]*,* ]] || [[ "$prev" == *[@:]* ]]
then
return 0
fi
for property in $@
do
if [[ $prev == "$property" ]]
then
return 0
fi
done
fi
done
return 1
}
__zfs_complete_ordered_arguments()
{
local list1=$1
local list2=$2
local cur=$3
local extra=$4
if __zfs_argument_chosen $list1
then
COMPREPLY=($(compgen -W "$list2 $extra" -- "$cur"))
else
COMPREPLY=($(compgen -W "$list1 $extra" -- "$cur"))
fi
}
__zfs_complete_multiple_options()
{
local options=$1
local cur=$2
COMPREPLY=($(compgen -W "$options" -- "${cur##*,}"))
local existing_opts=$(expr "$cur" : '\(.*,\)')
if [[ $existing_opts ]]
then
COMPREPLY=( "${COMPREPLY[@]/#/${existing_opts}}" )
fi
}
__zfs_complete_switch()
{
local options=$1
if [[ ${cur:0:1} == - ]]
then
COMPREPLY=($(compgen -W "-{$options}" -- "$cur"))
return 0
else
return 1
fi
}
__zfs_complete()
{
local cur prev cmd cmds
COMPREPLY=()
# Don't split on colon
_get_comp_words_by_ref -n : -c cur -p prev -w COMP_WORDS -i COMP_CWORD
cmd="${COMP_WORDS[1]}"
if [[ ${prev##*/} == zfs ]]
then
cmds=$(__zfs_get_commands)
COMPREPLY=($(compgen -W "$cmds -?" -- "$cur"))
return 0
fi
case "${cmd}" in
clone)
case "${prev}" in
-o)
COMPREPLY=($(compgen -W "$(__zfs_get_editable_properties)" -- "$cur"))
;;
*)
if ! __zfs_complete_switch "o,p"
then
if __zfs_argument_chosen
then
COMPREPLY=($(compgen -W "$(__zfs_list_datasets)" -- "$cur"))
else
COMPREPLY=($(compgen -W "$(__zfs_match_snapshot)" -- "$cur"))
fi
fi
;;
esac
;;
get)
case "${prev}" in
-d)
COMPREPLY=($(compgen -W "" -- "$cur"))
;;
-t)
__zfs_complete_multiple_options "filesystem volume snapshot all" "$cur"
;;
-s)
__zfs_complete_multiple_options "local default inherited temporary none" "$cur"
;;
-o)
__zfs_complete_multiple_options "name property value source received all" "$cur"
;;
*)
if ! __zfs_complete_switch "H,r,p,d,o,t,s"
then
if __zfs_argument_chosen $(__zfs_get_properties)
then
COMPREPLY=($(compgen -W "$(__zfs_match_explicit_snapshot) $(__zfs_list_datasets)" -- "$cur"))
else
__zfs_complete_multiple_options "$(__zfs_get_properties)" "$cur"
fi
fi
;;
esac
;;
inherit)
if ! __zfs_complete_switch "r"
then
__zfs_complete_ordered_arguments "$(__zfs_get_inheritable_properties)" "$(__zfs_match_explicit_snapshot) $(__zfs_list_datasets)" $cur
fi
;;
list)
case "${prev}" in
-d)
COMPREPLY=($(compgen -W "" -- "$cur"))
;;
-t)
__zfs_complete_multiple_options "filesystem volume snapshot all" "$cur"
;;
-o)
__zfs_complete_multiple_options "$(__zfs_get_properties)" "$cur"
;;
-s|-S)
COMPREPLY=($(compgen -W "$(__zfs_get_properties)" -- "$cur"))
;;
*)
if ! __zfs_complete_switch "H,r,d,o,t,s,S"
then
COMPREPLY=($(compgen -W "$(__zfs_match_explicit_snapshot) $(__zfs_list_datasets)" -- "$cur"))
fi
;;
esac
;;
promote)
COMPREPLY=($(compgen -W "$(__zfs_list_filesystems)" -- "$cur"))
;;
rollback)
if ! __zfs_complete_switch "r,R,f"
then
COMPREPLY=($(compgen -W "$(__zfs_match_snapshot)" -- "$cur"))
fi
;;
send)
if ! __zfs_complete_switch "d,n,P,p,R,v,i,I"
then
COMPREPLY=($(compgen -W "$(__zfs_match_snapshot)" -- "$cur"))
fi
;;
snapshot)
case "${prev}" in
-o)
COMPREPLY=($(compgen -W "$(__zfs_get_editable_properties)" -- "$cur"))
;;
*)
if ! __zfs_complete_switch "o,r"
then
COMPREPLY=($(compgen -W "$(__zfs_list_datasets | awk '{print $1"@"}')" -- "$cur"))
fi
;;
esac
;;
set)
__zfs_complete_ordered_arguments "$(__zfs_get_editable_properties)" "$(__zfs_match_explicit_snapshot) $(__zfs_list_datasets)" $cur
;;
upgrade)
case "${prev}" in
-a|-V|-v)
COMPREPLY=($(compgen -W "" -- "$cur"))
;;
*)
if ! __zfs_complete_switch "a,V,v,r"
then
COMPREPLY=($(compgen -W "$(__zfs_list_filesystems)" -- "$cur"))
fi
;;
esac
;;
destroy)
if ! __zfs_complete_switch "d,f,n,p,R,r,v"
then
__zfs_complete_multiple_options "$(__zfs_match_multiple_snapshots)" $cur
fi
;;
*)
COMPREPLY=($(compgen -W "$(__zfs_match_explicit_snapshot) $(__zfs_list_datasets)" -- "$cur"))
;;
esac
__ltrim_colon_completions "$cur"
return 0
}
__zpool_get_commands()
{
$__ZPOOL_CMD 2>&1 | awk '/^\t[a-z]/ {print $1}' | uniq
}
__zpool_get_properties()
{
$__ZPOOL_CMD get 2>&1 | awk '$2 == "YES" || $2 == "NO" {print $1}'; echo all
}
__zpool_get_editable_properties()
{
$__ZPOOL_CMD get 2>&1 | awk '$2 == "YES" {print $1"="}'
}
__zpool_list_pools()
{
$__ZPOOL_CMD list -H -o name
}
__zpool_complete()
{
local cur prev cmd cmds
COMPREPLY=()
cur="${COMP_WORDS[COMP_CWORD]}"
prev="${COMP_WORDS[COMP_CWORD-1]}"
cmd="${COMP_WORDS[1]}"
if [[ ${prev##*/} == zpool ]]
then
cmds=$(__zpool_get_commands)
COMPREPLY=($(compgen -W "$cmds" -- "$cur"))
return 0
fi
case "${cmd}" in
get)
__zfs_complete_ordered_arguments "$(__zpool_get_properties)" "$(__zpool_list_pools)" $cur
return 0
;;
import)
if [[ $prev == -d ]]
then
_filedir -d
else
COMPREPLY=($(compgen -W "$(__zpool_list_pools) -d" -- "$cur"))
fi
return 0
;;
set)
__zfs_complete_ordered_arguments "$(__zpool_get_editable_properties)" "$(__zpool_list_pools)" $cur
return 0
;;
add|attach|clear|create|detach|offline|online|remove|replace)
local pools="$(__zpool_list_pools)"
if __zfs_argument_chosen $pools
then
_filedir
else
COMPREPLY=($(compgen -W "$pools" -- "$cur"))
fi
return 0
;;
*)
COMPREPLY=($(compgen -W "$(__zpool_list_pools)" -- "$cur"))
return 0
;;
esac
}
complete -F __zfs_complete zfs
complete -F __zpool_complete zpool

View File

@ -1,28 +0,0 @@
## Allow read-only ZoL commands to be called through sudo
## without a password. Remove the first '#' column to enable.
##
## CAUTION: Any syntax error introduced here will break sudo.
##
## Cmnd alias specification
#Cmnd_Alias C_ZFS = \
# /sbin/zfs "", /sbin/zfs help *, \
# /sbin/zfs get, /sbin/zfs get *, \
# /sbin/zfs list, /sbin/zfs list *, \
# /sbin/zpool "", /sbin/zpool help *, \
# /sbin/zpool iostat, /sbin/zpool iostat *, \
# /sbin/zpool list, /sbin/zpool list *, \
# /sbin/zpool status, /sbin/zpool status *, \
# /sbin/zpool upgrade, /sbin/zpool upgrade -v
#
#Runas_Alias R_ROOT = root
#
## User privilege specification
#root ALL=(ALL) ALL
#
## Members of the admin group may gain root privileges
#%adm ALL=(ALL) ALL # linux
#%admin ALL=(ALL) ALL # linux
#%staff ALL=(ALL) ALL # solaris
#
## allow any user to use basic read-only ZFS commands
#ALL ALL = (R_ROOT) NOPASSWD: C_ZFS

View File

@ -1,14 +0,0 @@
#!/bin/sh
# Sub-test to exclude ZVOLs
set -e
partition="$1"
. /usr/share/os-prober/common.sh
if [ "$(stat -L -c %t "$partition")" = "e6" ] ; then
debug "$1 is a ZVOL; skipping"
exit 0
fi
# No ZVOLs found
exit 1

View File

@ -1,67 +0,0 @@
#!/bin/sh
#
# Add udev rules for ZoL to the initrd.
#
PREREQ="udev"
PREREQ_UDEV_RULES="60-zvol.rules 69-vdev.rules"
COPY_EXEC_LIST="/lib/udev/vdev_id /lib/udev/zvol_id"
# Generic result code.
RC=0
case $1 in
prereqs)
echo "$PREREQ"
exit 0
;;
esac
for ii in $COPY_EXEC_LIST
do
if [ ! -x "$ii" ]
then
echo "Error: $ii is not executable."
RC=2
fi
done
if [ "$RC" -ne 0 ]
then
exit "$RC"
fi
. /usr/share/initramfs-tools/hook-functions
mkdir -p "$DESTDIR/lib/udev/rules.d/"
for ii in $PREREQ_UDEV_RULES
do
if [ -e "/etc/udev/rules.d/$ii" ]
then
cp -p "/etc/udev/rules.d/$ii" "$DESTDIR/lib/udev/rules.d/"
elif [ -e "/lib/udev/rules.d/$ii" ]
then
cp -p "/lib/udev/rules.d/$ii" "$DESTDIR/lib/udev/rules.d/"
else
echo "Error: Missing udev rule: $ii"
echo " This file must be in the /etc/udev/rules.d or /lib/udev/rules.d directory."
exit 1
fi
done
for ii in $COPY_EXEC_LIST
do
copy_exec "$ii"
done
if [ -f '/etc/default/zfs' -a -r '/etc/default/zfs' ]
then
mkdir -p "$DESTDIR/etc/default"
cp -a '/etc/default/zfs' "$DESTDIR/etc/default/"
fi
if [ -d '/etc/zfs' -a -r '/etc/zfs' ]
then
mkdir -p "$DESTDIR/etc"
cp -a '/etc/zfs' "$DESTDIR/etc/"
fi

View File

@ -1,88 +0,0 @@
BUILD_DEPENDS[0]="spl"
AUTOINSTALL="yes"
PACKAGE_NAME="zfs"
PACKAGE_VERSION="#MODULE_VERSION#"
PRE_BUILD="configure
--prefix=/usr
--with-config=kernel
--with-linux=$(
case `lsb_release -is` in
(Debian)
if [[ -e ${kernel_source_dir/%build/source} ]]
then
echo ${kernel_source_dir/%build/source}
else
# A kpkg exception for Proxmox 2.0
echo ${kernel_source_dir}
fi
;;
(*)
echo ${kernel_source_dir}
;;
esac
)
--with-linux-obj=${kernel_source_dir}
--with-spl=${source_tree}/spl-${PACKAGE_VERSION}
--with-spl-obj=${dkms_tree}/spl/${PACKAGE_VERSION}/${kernelver}/${arch}
$(
[[ -r /etc/default/zfs ]] \
&& source /etc/default/zfs \
&& shopt -q -s extglob \
&& \
{
if [[ ${ZFS_DKMS_ENABLE_DEBUG,,} == @(y|yes) ]]
then
echo --enable-debug
fi
if [[ ${ZFS_DKMS_ENABLE_DEBUG_DMU_TX,,} == @(y|yes) ]]
then
echo --enable-debug-dmu-tx
fi
}
)
"
POST_BUILD="cp
${dkms_tree}/${PACKAGE_NAME}/${PACKAGE_VERSION}/build/zfs_config.h
${dkms_tree}/${PACKAGE_NAME}/${PACKAGE_VERSION}/build/module/Module.symvers
${dkms_tree}/${PACKAGE_NAME}/${PACKAGE_VERSION}/${kernelver}/${arch}/
"
REMAKE_INITRD="$(
if [ -e /usr/share/initramfs-tools/hooks/zfs \
-o -e /usr/share/dracut/modules.d/90zfs ]
then
echo -n yes
else
echo -n no
fi
)"
MAKE[0]="make"
STRIP[0]="$(
[[ -r /etc/default/zfs ]] \
&& source /etc/default/zfs \
&& shopt -q -s extglob \
&& [[ ${ZFS_DKMS_DISABLE_STRIP,,} == @(y|yes) ]] \
&& echo -n no
)"
STRIP[1]="${STRIP[0]}"
STRIP[2]="${STRIP[0]}"
STRIP[3]="${STRIP[0]}"
STRIP[4]="${STRIP[0]}"
STRIP[5]="${STRIP[0]}"
BUILT_MODULE_NAME[0]="zavl"
BUILT_MODULE_LOCATION[0]="module/avl/"
DEST_MODULE_LOCATION[0]="/extra/zfs/zavl"
BUILT_MODULE_NAME[1]="zcommon"
BUILT_MODULE_LOCATION[1]="module/zcommon/"
DEST_MODULE_LOCATION[1]="/extra/zfs/zcommon"
BUILT_MODULE_NAME[2]="znvpair"
BUILT_MODULE_LOCATION[2]="module/nvpair/"
DEST_MODULE_LOCATION[2]="/extra/zfs/znvpair"
BUILT_MODULE_NAME[3]="zpios"
BUILT_MODULE_LOCATION[3]="module/zpios/"
DEST_MODULE_LOCATION[3]="/extra/zfs/zpios"
BUILT_MODULE_NAME[4]="zunicode"
BUILT_MODULE_LOCATION[4]="module/unicode/"
DEST_MODULE_LOCATION[4]="/extra/zfs/zunicode"
BUILT_MODULE_NAME[5]="zfs"
BUILT_MODULE_LOCATION[5]="module/zfs/"
DEST_MODULE_LOCATION[5]="/extra/zfs/zfs"

View File

@ -1,10 +0,0 @@
#!/bin/sh -e
case $1 in
(configure)
[ -x /usr/share/update-notifier/notify-reboot-required ] \
&& /usr/share/update-notifier/notify-reboot-required
;;
esac
#DEBHELPER#

View File

@ -1,3 +0,0 @@
#!/bin/sh -e
#DEBHELPER#

View File

@ -1,2 +0,0 @@
COPYRIGHT
OPENSOLARIS.LICENSE

View File

@ -1,56 +0,0 @@
etc/zfs/vdev_id.conf.alias.example
etc/zfs/vdev_id.conf.multipath.example
etc/zfs/vdev_id.conf.sas_direct.example
etc/zfs/vdev_id.conf.sas_switch.example
scripts/common.sh
scripts/zconfig.sh
scripts/zfault.sh
scripts/zfs.sh
scripts/zpios-profile/zpios-profile-disk.sh
scripts/zpios-profile/zpios-profile-pids.sh
scripts/zpios-profile/zpios-profile-post.sh
scripts/zpios-profile/zpios-profile-pre.sh
scripts/zpios-profile/zpios-profile.sh
scripts/zpios-sanity.sh
scripts/zpios-survey.sh
scripts/zpios-test/16th-8192rc-4rs-1cs-4off.sh
scripts/zpios-test/1th-16rc-4rs-1cs-4off.sh
scripts/zpios-test/1x256th-65536rc-4rs-1cs-4off.sh
scripts/zpios-test/256th-65536rc-4rs-1cs-4off.sh
scripts/zpios-test/4th-1024rc-4rs-1cs-4off.sh
scripts/zpios-test/large-thread-survey.sh
scripts/zpios-test/large.sh
scripts/zpios-test/lustre.sh
scripts/zpios-test/medium.sh
scripts/zpios-test/small.sh
scripts/zpios-test/tiny.sh
scripts/zpios.sh
scripts/zpool-config/dm0-raid0.sh
scripts/zpool-config/file-raid0.sh
scripts/zpool-config/file-raid10.sh
scripts/zpool-config/file-raidz.sh
scripts/zpool-config/file-raidz2.sh
scripts/zpool-config/hda-raid0.sh
scripts/zpool-config/lo-faulty-raid0.sh
scripts/zpool-config/lo-faulty-raid10.sh
scripts/zpool-config/lo-faulty-raidz.sh
scripts/zpool-config/lo-faulty-raidz2.sh
scripts/zpool-config/lo-faulty-raidz3.sh
scripts/zpool-config/lo-raid0.sh
scripts/zpool-config/lo-raid10.sh
scripts/zpool-config/lo-raidz.sh
scripts/zpool-config/lo-raidz2.sh
scripts/zpool-config/md0-raid10.sh
scripts/zpool-config/md0-raid5.sh
scripts/zpool-config/ram0-raid0.sh
scripts/zpool-config/scsi_debug-noraid.sh
scripts/zpool-config/scsi_debug-raid0.sh
scripts/zpool-config/scsi_debug-raid10.sh
scripts/zpool-config/scsi_debug-raidz.sh
scripts/zpool-config/scsi_debug-raidz2.sh
scripts/zpool-config/scsi_debug-raidz3.sh
scripts/zpool-config/sda-raid0.sh
scripts/zpool-config/zpool-raid0.sh
scripts/zpool-config/zpool-raid10.sh
scripts/zpool-config/zpool-raidz.sh
scripts/zpool-create.sh

View File

@ -1 +0,0 @@
../tree/zfs-doc/* /

View File

@ -1 +0,0 @@
../tree/zfs-initramfs/* /

View File

@ -1,10 +0,0 @@
#!/bin/sh -e
# @FIXME: During system start, the /etc/init/mountall.conf on Ubuntu is unable
# to generate the /etc/mtab file from the /proc/mounts file if a ZFS filesystem
# is already mounted.
# This depends on mountall 2.18, which recognizes the link.
ln -sf /proc/mounts /etc/mtab
#DEBHELPER#

View File

@ -1,4 +0,0 @@
../tree/zfsutils/* /
sbin
lib/udev
usr/share/man

View File

@ -1,9 +0,0 @@
#!/bin/sh -e
if dpkg-maintscript-helper supports rm_conffile 2>/dev/null
then
dpkg-maintscript-helper rm_conffile /etc/default/zfsload -- "$@"
dpkg-maintscript-helper rm_conffile /etc/init.d/zfs -- "$@"
fi
#DEBHELPER#

View File

@ -1,9 +0,0 @@
#!/bin/sh -e
if dpkg-maintscript-helper supports rm_conffile 2>/dev/null
then
dpkg-maintscript-helper rm_conffile /etc/default/zfsload -- "$@"
dpkg-maintscript-helper rm_conffile /etc/init.d/zfs -- "$@"
fi
#DEBHELPER#

View File

@ -1,9 +0,0 @@
#!/bin/sh -e
if dpkg-maintscript-helper supports rm_conffile 2>/dev/null
then
dpkg-maintscript-helper rm_conffile /etc/default/zfsload -- "$@"
dpkg-maintscript-helper rm_conffile /etc/init.d/zfs -- "$@"
fi
#DEBHELPER#

View File

@ -1,4 +0,0 @@
ENV{DEVTYPE}=="disk", IMPORT{program}="/lib/udev/vdev_id -d %k"
KERNEL=="*[!0-9]", ENV{SUBSYSTEM}=="block", ENV{ID_VDEV}=="?*", SYMLINK+="$env{ID_VDEV_PATH}"
KERNEL=="*[0-9]", ENV{SUBSYSTEM}=="block", ENV{DEVTYPE}=="partition", ENV{ID_VDEV}=="?*", SYMLINK+="$env{ID_VDEV_PATH}-part%n"
KERNEL=="dm-[0-9]*", ENV{SUBSYSTEM}=="block", ENV{ID_VDEV}=="?*", SYMLINK+="$env{ID_VDEV_PATH}"

View File

@ -1,80 +0,0 @@
#!/bin/sh
#
### BEGIN INIT INFO
# Provides: zvol zfs
# Required-Start: $local_fs
# Required-Stop: $local_fs
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Mount ZFS filesystems
# Description: Run the `zfs mount -a` or `zfs umount -a` command.
# This init script is deprecated and should be disabled in the
# /etc/default/zfs options file. Instead, use the zfs-mount
# package for Debian or the zfs-mountall package for Ubuntu
### END INIT INFO
PATH=/sbin:/bin
. /lib/lsb/init-functions
. /lib/init/vars.sh
[ -f /etc/default/zfs ] && . /etc/default/zfs
do_start()
{
log_begin_msg "Mounting ZFS filesystems"
log_progress_msg "filesystems"
zfs mount -a
RET=$?
if [ $RET != 0 ] ; then
log_end_msg $RET
exit $RET
fi
log_end_msg 0
}
do_stop()
{
log_begin_msg "Unmounting ZFS filesystems"
log_progress_msg "filesystems"
zfs unmount -a
RET=$?
# Ignore a non-zero `zfs` result so that a busy ZFS instance
# does not hang the system during shutdown.
if [ $RET != 0 ] ; then
log_end_msg $RET
fi
log_end_msg 0
}
case "$1" in
(start)
case "$ZFS_MOUNT" in
([Oo][Ff][Ff]|[Nn][Oo]|'')
exit 0
;;
esac
do_start
;;
(stop)
case "$ZFS_UNMOUNT" in
([Oo][Ff][Ff]|[Nn][Oo]|'')
exit 0
;;
esac
do_stop
;;
(force-reload|reload|restart|status)
# no-op
;;
(*)
[ -n "$1" ] && echo "Error: Unknown command $1."
echo "Usage: $0 {start|stop}"
exit 3
;;
esac

View File

@ -1,80 +0,0 @@
#!/bin/sh
### BEGIN INIT INFO
# Provides: shareiscsi sharenfs sharesmb zfs-share
# Required-Start: $local_fs $network $remote_fs
# Required-Stop: $local_fs $network $remote_fs
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Should-Start: iscsi iscsitarget istgt nfs-kernel-server samba
# Should-Stop: iscsi iscsitarget istgt nfs-kernel-server samba
# Short-Description: Network share OpenZFS datasets.
# Description: Run the `zfs share -a` or `zfs unmount -a` commands
# for controlling iSCSI, NFS, or CIFS network shares.
### END INIT INFO
PATH=/sbin:/bin:/usr/sbin:/usr/bin
. /lib/lsb/init-functions
. /lib/init/vars.sh
[ -f /etc/default/zfs ] && . /etc/default/zfs
do_start()
{
log_begin_msg "Sharing OpenZFS filesystems"
log_progress_msg "filesystems"
zfs share -a
RET=$?
if [ $RET != 0 ] ; then
log_end_msg $RET
exit $RET
fi
log_end_msg 0
}
do_stop()
{
log_begin_msg "Unsharing OpenZFS filesystems"
log_progress_msg "filesystems"
zfs unshare -a
RET=$?
# Ignore a non-zero `zfs` result so that a busy OpenZFS instance
# does not hang the system during shutdown.
if [ $RET != 0 ] ; then
log_end_msg $RET
fi
log_end_msg 0
}
case "$1" in
(start)
case "$ZFS_SHARE" in
([Oo][Ff][Ff]|[Nn][Oo]|'')
exit 0
;;
esac
do_start
;;
(stop)
case "$ZFS_UNSHARE" in
([Oo][Ff][Ff]|[Nn][Oo]|'')
exit 0
;;
esac
do_stop
;;
(force-reload|reload|restart|status)
# no-op
;;
(*)
[ -n "$1" ] && echo "Error: Unknown command $1."
echo "Usage: $0 {start|stop}"
exit 3
;;
esac

View File

@ -1,15 +0,0 @@
# ZoL userland configuration.
# uncomment the following line to mount zfs at startup
#ZFS_MOUNT=yes
# Wait this many seconds during system start for pool member devices to appear
# before attempting import and starting mountall.
ZFS_AUTOIMPORT_TIMEOUT='30'
# Run `zfs share -a` during system start?
# nb: The shareiscsi, sharenfs, and sharesmb dataset properties.
ZFS_SHARE='no'
# Run `zfs unshare -a` during system stop?
ZFS_UNSHARE='no'

View File

@ -1 +0,0 @@
KERNEL=="zd*" SUBSYSTEM=="block" ACTION=="add|change" PROGRAM="/lib/udev/zvol_id $tempnode" SYMLINK+="zvol/%c"

View File

@ -0,0 +1,143 @@
Index: new/debian/control.in
===================================================================
--- new.orig/debian/control.in 2015-10-09 10:02:40.000000000 +0200
+++ new/debian/control.in 2015-10-09 10:15:36.000000000 +0200
@@ -104,39 +104,9 @@
This package provides the source to the SPL kernel module in a form
suitable for use by module-assistant or kernel-package.
-Package: zfs-dkms
-Architecture: all
-Pre-Depends: spl-dkms
-Depends: dkms (>> 2.1.1.2-5), lsb-release, ${misc:Depends}, file
-Recommends: zfsutils
-Replaces: lzfs, lzfs-dkms, zfs-modules-source
-Provides: lustre-backend-fs, lzfs, lzfs-dkms, zfs-modules, zfs-modules-source
-Conflicts: lzfs, lzfs-dkms, zfs-modules-source
-Description: Native ZFS filesystem kernel modules for Linux
- The Z file system is a pooled filesystem designed for maximum data
- integrity, supporting data snapshots, multiple copies, and data
- checksums.
- .
- This DKMS package includes the SPA, DMU, ZVOL, and ZPL components of ZFS.
-
-Package: zfs-dracut
-Section: utils
-Architecture: linux-any
-Depends: dracut,
- zfs-modules | zfs-dkms | zfs-modules-source (>= ${source:Version}),
- zfsutils, ${misc:Depends}
-Description: Native ZFS root filesystem capabilities for Linux
- The Z file system is a pooled filesystem designed for maximum data
- integrity, supporting data snapshots, multiple copies, and data
- checksums.
- .
- This package adds ZFS to the system initramfs with a hook
- for the dracut infrastructure.
-
Package: zfs-initramfs
Architecture: linux-any
Depends: initramfs-tools, busybox,
- zfs-modules | zfs-dkms | zfs-modules-source (>= ${source:Version}),
zfsutils, ${misc:Depends}
Description: Native ZFS root filesystem capabilities for Linux
The Z file system is a pooled filesystem designed for maximum data
@@ -150,7 +120,6 @@
Section: admin
Architecture: linux-any
Depends: initscripts, lsb-base, python, ${misc:Depends}, ${shlibs:Depends}
-Recommends: zfs-modules | zfs-dkms | zfs-modules-source (>= ${source:Version})
Suggests: nfs-kernel-server, samba-common-bin (>= 3.0.23), zfs-initramfs
Conflicts: zfs, zfs-fuse
Replaces: zfs
Index: new/debian/rules
===================================================================
--- new.orig/debian/rules 2015-10-09 10:02:40.000000000 +0200
+++ new/debian/rules 2015-10-09 10:14:14.000000000 +0200
@@ -25,12 +25,10 @@
endif
ifndef SPL
-SPLSRC=/usr/src/spl-$(VERSION)
+SPLSRC=../pkg-spl
endif
-CFG_OPTS=--with-linux=$(KSRC) \
- --with-linux-obj=$(KOBJ) \
- --with-spl=$(SPLSRC)
+CFG_OPTS=--with-spl=$(SPLSRC)
non_epoch_version=$(shell echo $(KVERS) | perl -pe 's/^\d+://')
PACKAGE=zfs
@@ -83,42 +81,6 @@
@# Install the utilities.
$(MAKE) install DESTDIR='$(CURDIR)/debian/tmp'
- @# Get a bare copy of the source code for DKMS.
- @# This creates the $(CURDIR)/$(NAME)-$(VERSION)/ tree, which does not
- @# contain the userland sources. NB: Remove-userland-dist-rules.patch
- $(MAKE) distdir
-
- @# Install the DKMS source.
- @# We only want the files needed to build the modules
- mkdir -p '$(CURDIR)/debian/tmp/usr/src/$(NAME)-$(VERSION)'
- touch '$(CURDIR)/debian/tmp/usr/src/$(NAME)-$(VERSION)/.nogitrelease'
- cp '$(CURDIR)/autogen.sh' '$(CURDIR)/debian/tmp/usr/src/$(NAME)-$(VERSION)/'
- ( for d in include module config; do \
- rm -Rf $(CURDIR)/debian/tmp/usr/src/$(NAME)-$(VERSION)/$$d; \
- done)
- $(foreach file,$(DKMSFILES),mv '$(CURDIR)/$(NAME)-$(VERSION)/$(file)' '$(CURDIR)/debian/tmp/usr/src/$(NAME)-$(VERSION)' || exit 1;)
- @# Hellish awk line:
- @# * Deletes from configure.ac the parts not needed for building the kernel module
- @# * It deletes from inside AC_CONFIG_FILES([]) everything except:
- @# (Makefile$|include/|module/|*.release$)
- @# * Takes care of spaces and tabs
- awk '/^AC_CONFIG_FILES\(\[/,/^\]\)/ { if ($$0 !~ /^(AC_CONFIG_FILES\(\[([ \t]+)?$$|\]\)([ \t]+)?$$|([ \t]+)?(include\/|module\/|Makefile([ \t]+)?$$|zfs\.release([ \t]+)?$$))/){next} } {print}' \
- '$(CURDIR)/$(NAME)-$(VERSION)/configure.ac' > '$(CURDIR)/debian/tmp/usr/src/$(NAME)-$(VERSION)/configure.ac'
- @# Set "SUBDIRS = module include" for CONFIG_KERNEL and remove SUBDIRS for all other configs.
- sed '1,/CONFIG_KERNEL/s/SUBDIRS.*=.*//g;s/SUBDIRS.*=.*/SUBDIRS = module include/g;' \
- '$(CURDIR)/$(NAME)-$(VERSION)/Makefile.am' > '$(CURDIR)/debian/tmp/usr/src/$(NAME)-$(VERSION)/Makefile.am'
- @# Sanity test
- grep -q 'SUBDIRS = module include' '$(CURDIR)/debian/tmp/usr/src/$(NAME)-$(VERSION)/Makefile.am'
- @# Run autogen on the stripped source tree
- cd '$(CURDIR)/debian/tmp/usr/src/$(NAME)-$(VERSION)'; ./autogen.sh
- rm -fr '$(CURDIR)/debian/tmp/usr/src/$(NAME)-$(VERSION)/autom4te.cache'
-
- @# This shunt allows DKMS to install the Module.symvers and zfs_config.h
- @# files to the ${dkms_tree} area through the POST_INSTALL directive.
- echo '#!/bin/sh' >'$(CURDIR)/debian/tmp/usr/src/$(NAME)-$(VERSION)/cp'
- echo 'cp "$$@"' >>'$(CURDIR)/debian/tmp/usr/src/$(NAME)-$(VERSION)/cp'
- chmod 755 '$(CURDIR)/debian/tmp/usr/src/$(NAME)-$(VERSION)/cp'
-
mkdir -p $(CURDIR)/debian/tmp/usr/lib
for i in `ls $(CURDIR)/debian/tmp/lib/*.so`; do \
ln -s /lib/`readlink $${i}` $(CURDIR)/debian/tmp/usr/lib/`basename $${i}`; \
@@ -137,28 +99,6 @@
# Fix the includes according to https://github.com/zfsonlinux/zfs/issues/2903
./debian/fix_includes-libspl.sh
- @# Duplicate the dkms directory for module-assistant source package
- install -d $(CURDIR)/debian/tmp/usr/src/modules
- cp -r $(CURDIR)/debian/tmp/usr/src/$(NAME)-$(VERSION) $(CURDIR)/debian/tmp/usr/src/modules/$(PACKAGE)
- mkdir -p $(CURDIR)/debian/tmp/usr/src/modules/$(PACKAGE)/debian
- cp debian/copyright debian/module/* \
- $(CURDIR)/debian/tmp/usr/src/modules/$(PACKAGE)/debian/
- sed 's/^zfs-linux /zfs-modules /' debian/changelog \
- > $(CURDIR)/debian/tmp/usr/src/modules/$(PACKAGE)/debian/changelog
- chmod 755 $(CURDIR)/debian/tmp/usr/src/modules/$(PACKAGE)/debian/rules
- chown -R root.src $(CURDIR)/debian/tmp
- find $(CURDIR)/debian/tmp/usr/src -type d | xargs chmod 755
- find $(CURDIR)/debian/tmp/usr/src -type f -perm -100 | xargs chmod 755
- find $(CURDIR)/debian/tmp/usr/src -type f -not -perm -100 | xargs chmod 644
- chmod 775 $(CURDIR)/debian/tmp/usr/src/modules
- cd $(CURDIR)/debian/tmp/usr/src && tar cf $(PACKAGE).tar modules
- rm -Rf $(CURDIR)/debian/tmp/usr/src/modules
- bzip2 $(CURDIR)/debian/tmp/usr/src/$(PACKAGE).tar
- chmod 644 $(CURDIR)/debian/tmp/usr/src/$(PACKAGE).tar.bz2
- install -d $(CURDIR)/debian/zfs-modules-source/usr/src
- mv $(CURDIR)/debian/tmp/usr/src/$(PACKAGE).tar.bz2 $(CURDIR)/debian/zfs-modules-source/usr/src/
- rm -Rf $(CURDIR)/debian/zfs-modules-source/usr/src/$(NAME)-$(VERSION)
-
override_dh_installinit:
@# Install systemd files
dh_systemd_enable -pzfsutils etc/systemd/system/zfs.target

2
zfs-patches/series Normal file
View File

@ -0,0 +1,2 @@
fix-control.patch
skip-unneeded-pull-requests.patch

View File

@ -0,0 +1,21 @@
diff --git a/debian/patches/series b/debian/patches/series
index ffafe6c..9823273 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -1,12 +1,12 @@
0002-Prevent-manual-builds-in-the-DKMS-source.patch
0005-Remove-userland-dist-rules.patch
libzfs-dependencies
-PR1099.patch
-PR1476.patch
+#PR1099.patch
+#PR1476.patch
PR1867.patch
PR2668.patch
-PR2790.patch
-PR3238.patch
+#PR2790.patch
+#PR3238.patch
PR3465.patch
PR3559.patch
PR3560.patch