]> git.proxmox.com Git - zfsonlinux.git/commitdiff
zfs/debian: add packaging files
authorFabian Grünbichler <f.gruenbichler@proxmox.com>
Wed, 30 Jan 2019 14:26:24 +0000 (15:26 +0100)
committerFabian Grünbichler <f.gruenbichler@proxmox.com>
Wed, 27 Feb 2019 12:46:26 +0000 (13:46 +0100)
based on Debian's packaging work, but simplified:
- no DKMS
- no dracut
- no udebs

and remove old patches which were based on top of Debian's packaging.

Reviewed-by: Stoiko Ivanov <s.ivanov@proxmox.com>
Tested-by: Stoiko Ivanov <s.ivanov@proxmox.com>
Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
60 files changed:
zfs-changelog.Debian [deleted file]
zfs-patches/0001-remove-DKMS-modules-and-dracut-build.patch [deleted file]
zfs-patches/0002-import-with-d-dev-disk-by-id-in-scan-service.patch [deleted file]
zfs-patches/0003-always-load-ZFS-module-on-boot.patch [deleted file]
zfs-patches/0004-Add-Breaks-Replaces-to-zfs-initramfs.patch [deleted file]
zfs-patches/0005-Revert-Install-init-scripts-to-support-non-systemd-s.patch [deleted file]
zfs-patches/0006-Fix-deadlock-between-zfs-umount-snapentry_expire.patch [deleted file]
zfs-patches/0007-deadlock-between-mm_sem-and-tx-assign-in-zfs_write-a.patch [deleted file]
zfs-patches/series [deleted file]
zfs/debian/changelog [new file with mode: 0644]
zfs/debian/compat [new file with mode: 0644]
zfs/debian/control [new file with mode: 0644]
zfs/debian/copyright [new file with mode: 0644]
zfs/debian/copyright.cme [new file with mode: 0644]
zfs/debian/libnvpair1linux.docs [new file with mode: 0644]
zfs/debian/libnvpair1linux.install [new file with mode: 0644]
zfs/debian/libnvpair1linux.lintian-overrides [new file with mode: 0644]
zfs/debian/libuutil1linux.docs [new file with mode: 0644]
zfs/debian/libuutil1linux.install [new file with mode: 0644]
zfs/debian/libuutil1linux.lintian-overrides [new file with mode: 0644]
zfs/debian/libzfs2linux.docs [new file with mode: 0644]
zfs/debian/libzfs2linux.install [new file with mode: 0644]
zfs/debian/libzfs2linux.lintian-overrides [new file with mode: 0644]
zfs/debian/libzfslinux-dev.docs [new file with mode: 0644]
zfs/debian/libzfslinux-dev.install [new file with mode: 0644]
zfs/debian/libzpool2linux.docs [new file with mode: 0644]
zfs/debian/libzpool2linux.install [new file with mode: 0644]
zfs/debian/libzpool2linux.lintian-overrides [new file with mode: 0644]
zfs/debian/not-installed [new file with mode: 0644]
zfs/debian/patches/0001-Check-for-META-and-DCH-consistency-in-autoconf.patch [new file with mode: 0644]
zfs/debian/patches/0002-Add-libuutil-to-LIBADD-for-libzfs-and-libzfs_core.patch [new file with mode: 0644]
zfs/debian/patches/0003-add-man-page-reference-to-systemd-units.patch [new file with mode: 0644]
zfs/debian/patches/0004-always-load-ZFS-module-on-boot.patch [new file with mode: 0644]
zfs/debian/patches/0005-fix-install-path-of-zpool.d-scripts.patch [new file with mode: 0644]
zfs/debian/patches/0006-cmd-python-exec-path.patch [new file with mode: 0644]
zfs/debian/patches/0007-zed-service-bindir.patch [new file with mode: 0644]
zfs/debian/patches/0008-increase-default-zcmd-allocation-to-256K.patch [new file with mode: 0644]
zfs/debian/patches/0009-import-with-d-dev-disk-by-id-in-scan-service.patch [new file with mode: 0644]
zfs/debian/patches/0010-Fix-deadlock-between-zfs-umount-snapentry_expire.patch [new file with mode: 0644]
zfs/debian/patches/0011-deadlock-between-mm_sem-and-tx-assign-in-zfs_write-a.patch [new file with mode: 0644]
zfs/debian/patches/0012-enable-zed.patch [new file with mode: 0644]
zfs/debian/patches/series [new file with mode: 0644]
zfs/debian/rules [new file with mode: 0755]
zfs/debian/source/format [new file with mode: 0644]
zfs/debian/tree/zfs-initramfs/usr/share/initramfs-tools/conf.d/zfs [new file with mode: 0644]
zfs/debian/tree/zfs-initramfs/usr/share/initramfs-tools/hooks/zdev [new file with mode: 0755]
zfs/debian/tree/zfsutils-linux/etc/sudoers.d/zfs [new file with mode: 0644]
zfs/debian/tree/zfsutils-linux/usr/lib/os-probes/10zvol-test [new file with mode: 0755]
zfs/debian/tree/zfsutils-linux/usr/lib/zfs-linux/scrub [new file with mode: 0755]
zfs/debian/watch [new file with mode: 0644]
zfs/debian/zfs-initramfs.install [new file with mode: 0644]
zfs/debian/zfs-initramfs.triggers [new file with mode: 0644]
zfs/debian/zfs-test.install [new file with mode: 0644]
zfs/debian/zfs-test.lintian-overrides [new file with mode: 0644]
zfs/debian/zfs-zed.install [new file with mode: 0644]
zfs/debian/zfsutils-linux.cron.d [new file with mode: 0644]
zfs/debian/zfsutils-linux.docs [new file with mode: 0644]
zfs/debian/zfsutils-linux.examples [new file with mode: 0644]
zfs/debian/zfsutils-linux.install [new file with mode: 0644]
zfs/debian/zfsutils-linux.lintian-overrides [new file with mode: 0644]

diff --git a/zfs-changelog.Debian b/zfs-changelog.Debian
deleted file mode 100644 (file)
index 9c992ba..0000000
+++ /dev/null
@@ -1,276 +0,0 @@
-zfs-linux (0.7.12-pve1~bpo1) unstable; urgency=medium
-
-  * update ZFS to 0.7.12
-
- -- Proxmox Support Team <support@proxmox.com>  Wed, 14 Nov 2018 17:51:59 +0100
-
-zfs-linux (0.7.11-pve2~bpo1) unstable; urgency=medium
-
-  * update ZFS to debian/0.7.11-3
-
-  * Cherry-pick two fixes planned for 0.7.12
-
-  * Backport deadlock fix between mm_sem and tx assign in zfs_write() and page
-    fault
-
-  * Fix missing Breaks/Replaces in zfs-initramfs
-
- -- Proxmox Support Team <support@proxmox.com>  Mon, 29 Oct 2018 13:45:49 +0100
-
-zfs-linux (0.7.11-pve1~bpo1) unstable; urgency=medium
-
-  * update ZFS to 0.7.11
-
- -- Proxmox Support Team <support@proxmox.com>  Mon, 10 Sep 2018 15:47:31 +0200
-
-zfs-linux (0.7.9-pve3~bpo9) unstable; urgency=medium
-
-  *  Cherry-pick fix for deadlock umount/snapentry_expire
-
- -- Proxmox Support Team <support@proxmox.com>  Fri, 03 Aug 2018 11:41:11 +0200
-
-zfs-linux (0.7.9-pve2~bpo9) unstable; urgency=medium
-
-  * Cherry-pick fix for zpl_mount deadlock
-
- -- Proxmox Support Team <support@proxmox.com>  Fri, 12 Jul 2018 12:37:50 +0200
-
-zfs-linux (0.7.9-pve1~bpo9) unstable; urgency=medium
-
-  * update ZFS to 0.7.9
-
- -- Proxmox Support Team <support@proxmox.com>  Fri, 18 May 2018 13:49:09 +0200
-
-zfs-linux (0.7.8-pve1~bpo9) unstable; urgency=medium
-
-  * update ZFS to 0.7.8 (no changes)
-
- -- Proxmox Support Team <support@proxmox.com>  Mon, 30 Apr 2018 13:47:22 +0200
-
-zfs-linux (0.7.7-pve2~bpo9) unstable; urgency=medium
-
-  * (temporarily) revert likely cause of #7401
-
- -- Proxmox Support Team <support@proxmox.com>  Mon, 9 Apr 2018 09:49:27 +0200
-
-zfs-linux (0.7.7-pve1~bpo9) unstable; urgency=medium
-
-  * update ZFS to 0.7.7
-
- -- Proxmox Support Team <support@proxmox.com>  Tue, 3 Apr 2018 14:28:35 +0200
-
-zfs-linux (0.7.6-pve1~bpo9) unstable; urgency=medium
-
-  * update ZFS to 0.7.6
-
- -- Proxmox Support Team <support@proxmox.com>  Wed, 21 Feb 2018 09:48:29 +0100
-
-zfs-linux (0.7.4-pve2~bpo9) unstable; urgency=medium
-
-  * cherry-pick ARC hit rate fix from 0.7.6
-
-  * always load ZFS modules on boot
-
- -- Proxmox Support Team <support@proxmox.com>  Fri, 19 Jan 2018 11:31:14 +0100
-
-zfs-linux (0.7.4-pve1~bpo9) unstable; urgency=medium
-
-  * update ZFS to 0.7.4
-
- -- Proxmox Support Team <support@proxmox.com>  Tue, 19 Dec 2017 12:52:42 +0100
-
-zfs-linux (0.7.3-pve1~bpo9) unstable; urgency=medium
-
-  * update ZFS to 0.7.3
-
-  * include fix for user namespace setgid issue (#6800 upstream)
-
- -- Proxmox Support Team <support@proxmox.com>  Mon, 6 Nov 2017 09:14:19 +0100
-
-zfs-linux (0.7.2-pve1~bpo90) unstable; urgency=medium
-
-  * update zfs to 0.7.2
-
-  * add PR 6616 - zfs send/recv compatibility with 0.6.5
-
-  * add PR 6695 - zfs recv: don't skip over objects which should be freed
-
-  * various small fixes
-
-  * split test suite into zfs-test package
-
- -- Proxmox Support Team <support@proxmox.com>  Thu, 12 Oct 2017 13:34:05 +0200
-
-zfs-linux (0.6.5.11-pve18~bpo90) unstable; urgency=medium
-
-  * fix #1509: arc_summary error with L2ARC
-
- -- Proxmox Support Team <support@proxmox.com>  Mon, 2 Oct 2017 09:30:41 +0200
-
-zfs-linux (0.6.5.11-pve17~bpo90) unstable; urgency=medium
-
-  * update zfs to debian/0.6.5.11-1
-
- -- Proxmox Support Team <support@proxmox.com>  Thu, 27 Jul 2017 13:11:45 +0200
-
-zfs-linux (0.6.5.9-pve16~bpo90) unstable; urgency=medium
-
-  * drop transitional packages
-
-  * convert python scripts to python 3, drop .py suffix
-
-  * rebuild for PVE 5.0 / Debian Stretch
-
- -- Proxmox Support Team <support@proxmox.com>  Fri, 10 Mar 2017 09:45:52 +0100
-
-zfs-linux (0.6.5.9-pve15~bpo80) unstable; urgency=medium
-
-  * update zfs to debian/0.6.5.9-1
-
- -- Proxmox Support Team <support@proxmox.com>  Mon, 6 Feb 2017 12:39:10 +0100
-
-zfs-linux (0.6.5.8-pve14~bpo80) unstable; urgency=medium
-
-  * update zfs to debian/0.6.5.8-3
-
- -- Proxmox Support Team <support@proxmox.com>  Wed, 11 Jan 2017 09:34:58 +0100
-
-zfs-linux (0.6.5.8-pve13~bpo80) unstable; urgency=medium
-
-  * fix #1184: zfs-share.service has wrong path to 'rm' command
-
- -- Proxmox Support Team <support@proxmox.com>  Thu, 27 Oct 2016 11:25:47 +0200
-
-zfs-linux (0.6.5.8-pve12~bpo80) unstable; urgency=medium
-
-  * import with "-d /dev/disk/by-id" in systemd service
-
- -- Proxmox Support Team <support@proxmox.com>  Mon, 24 Oct 2016 13:48:08 +0200
-
-zfs-linux (0.6.5.8-pve11~bpo80) unstable; urgency=medium
-
-  * update zfs to debian/0.6.5.8-1
-
-  * switch package upstream sources to Debian (Jessie)
-
-  * add transitional packages for upgrades
-
- -- Proxmox Support Team <support@proxmox.com>  Wed, 12 Oct 2016 11:16:02 +0200
-
-zfs-linux (0.6.5.7-pve10~bpo80) unstable; urgency=medium
-
-  * update to pkg-zfs jessie/0.6.5.7-8
-
-  * change package versioning to allow upgrades from PVE3/wheezy
-
- -- Proxmox Support Team <support@proxmox.com>  Tue, 28 Jun 2016 09:50:00 +0200
-
-zfs-linux (0.6.5-pve9~jessie) unstable; urgency=medium
-
-  * Update to pkg-zfs jessie/0.6.5.6-3
-
- -- Proxmox Support Team <support@proxmox.com>  Tue, 12 Apr 2016 09:51:35 +0200
-
-zfs-linux (0.6.5-pve8~jessie) unstable; urgency=medium
-
-  * update to zfs-0.6.5.6
-
- -- Proxmox Support Team <support@proxmox.com>  Wed, 30 Mar 2016 10:50:22 +0200
-
-zfs-linux (0.6.5-pve7~jessie) unstable; urgency=medium
-
-  * update to zfs-0.6.5.4
-
- -- Proxmox Support Team <support@proxmox.com>  Thu, 14 Jan 2016 10:51:17 +0100
-
-zfs-linux (0.6.5-pve6~jessie) unstable; urgency=medium
-
-  * Prepare to tag zfs-0.6.5.3
-
- -- Proxmox Support Team <support@proxmox.com>  Thu, 05 Nov 2015 07:21:44 +0100
-
-zfs-linux (0.6.5-pve5~jessie) unstable; urgency=medium
-
-  * Illumos 6267 - dn_bonus evicted too early
-
-  * Fix use-after-free in vdev_disk_physio_completion
-
- -- Proxmox Support Team <support@proxmox.com>  Wed, 04 Nov 2015 17:42:42 +0100
-
-zfs-linux (0.6.5-pve4~jessie) unstable; urgency=medium
-
-  * update to master/debian/jessie/0.6.5.2-2
-
- -- Proxmox Support Team <support@proxmox.com>  Mon, 05 Oct 2015 17:56:45 +0200
-
-zfs-linux (0.6.5-pve3~jessie) unstable; urgency=medium
-
-  * do not install /etc/init.d/zfs-zed script to avoid double startup
-    with systemd
-
- -- Proxmox Support Team <support@proxmox.com>  Mon, 28 Sep 2015 10:14:40 +0200
-
-zfs-linux (0.6.5-pve2~jessie) unstable; urgency=medium
-
-  * update to master/debian/jessie/0.6.5.1-4
-
- -- Proxmox Support Team <support@proxmox.com>  Thu, 24 Sep 2015 12:45:33 +0200
-
-zfs-linux (0.6.5-pve1~jessie) unstable; urgency=medium
-
-  * update to master/debian/jessie/0.6.5.1-2
-
- -- Proxmox Support Team <support@proxmox.com>  Mon, 21 Sep 2015 10:02:41 +0200
-
-zfs-linux (0.6.4-pve3~jessie) unstable; urgency=medium
-
-  * update to snapshot/debian/jessie/0.6.4-24-6bec43
-
- -- Proxmox Support Team <support@proxmox.com>  Mon, 24 Aug 2015 06:13:44 +0200
-
-zfs-linux (0.6.4-pve2~jessie) unstable; urgency=medium
-
-  * update to 0.6.4.2 (snapshot/debian/jessie/0.6.4-21-53b1d9)
-
- -- Proxmox Support Team <support@proxmox.com>  Tue, 21 Jul 2015 11:03:21 +0200
-
-zfs-linux (0.6.4-pve1~jessie) unstable; urgency=medium
-
-  * update to 0.6.4 (use upstream zol package definitions)
-
- -- Proxmox Support Team <support@proxmox.com>  Tue, 14 Apr 2015 10:19:22 +0200
-
-zfs-linux (0.6.3-pve3~jessie) unstable; urgency=medium
-
-  * ignore zfs-import-scan errors
-
- -- Proxmox Support Team <support@proxmox.com>  Tue, 31 Mar 2015 17:52:40 +0200
-
-zfs-linux (0.6.3-pve2~jessie) unstable; urgency=medium
-
-  * use systemd for service startup
-
-  * install zed configuration file /etc/zfs/zed.d/zed.rc
-
- -- Proxmox Support Team <support@proxmox.com>  Sun, 15 Mar 2015 15:52:54 +0100
-
-zfs-linux (0.6.3-pve1~jessie) unstable; urgency=medium
-
-  * recompile on jessie
-
- -- Proxmox Support Team <support@proxmox.com>  Sat, 28 Feb 2015 16:02:08 +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
-
diff --git a/zfs-patches/0001-remove-DKMS-modules-and-dracut-build.patch b/zfs-patches/0001-remove-DKMS-modules-and-dracut-build.patch
deleted file mode 100644 (file)
index b4ba666..0000000
+++ /dev/null
@@ -1,289 +0,0 @@
-From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Fabian=20Gr=C3=BCnbichler?= <f.gruenbichler@proxmox.com>
-Date: Mon, 6 Feb 2017 11:03:10 +0100
-Subject: [PATCH] remove DKMS, modules and dracut build
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
-Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
----
- debian/control.in    |  40 ++--------------
- debian/control       |   1 -
- debian/not-installed |   2 +
- debian/rules         | 108 +------------------------------------------
- 4 files changed, 7 insertions(+), 144 deletions(-)
-
-diff --git a/debian/control.in b/debian/control.in
-index ab62ea676..978b39e91 100644
---- a/debian/control.in
-+++ b/debian/control.in
-@@ -10,7 +10,6 @@ Build-Depends: autotools-dev,
-                debhelper (>= 10.2),
-                dh-autoreconf,
-                dh-python,
--               dkms (>> 2.1.1.2-5),
-                libattr1-dev,
-                libblkid-dev,
-                libselinux1-dev,
-@@ -96,26 +95,10 @@ Description: OpenZFS pool library for Linux
-  .
-  This zpool library provides support for managing zpools.
--Package: zfs-dkms
--Architecture: all
--Pre-Depends: spl-dkms (<<${source:Upstream-Version}.),
--             spl-dkms (>= ${source:Upstream-Version})
--Depends: dkms (>> 2.1.1.2-5), lsb-release, ${misc:Depends}, ${perl:Depends},
--Recommends: zfs-zed, zfsutils-linux (>= ${binary:Version}), @LINUX_COMPAT@
--Provides: zfs-modules
--Description: OpenZFS 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
-- OpenZFS.
--
- Package: zfs-initramfs
- Architecture: all
- Depends: busybox-initramfs | busybox-static | busybox,
-          initramfs-tools,
--         zfs-modules | zfs-dkms,
-          zfsutils-linux (>= ${binary:Version}),
-          ${misc:Depends}
- Breaks: zfsutils-linux (<= 0.7.11-2)
-@@ -128,29 +111,14 @@ Description: OpenZFS root filesystem capabilities for Linux - initramfs
-  This package adds OpenZFS to the system initramfs with a hook
-  for the initramfs-tools infrastructure.
--Package: zfs-dracut
--Architecture: all
--Depends: dracut,
--         zfs-modules | zfs-dkms,
--         zfsutils-linux (>= ${binary:Version}),
--         ${misc:Depends}
--Description: OpenZFS root filesystem capabilities for Linux - dracut
-- The Z file system is a pooled filesystem designed for maximum data
-- integrity, supporting data snapshots, multiple copies, and data
-- checksums.
-- .
-- This package adds OpenZFS to the system initramfs with a hook
-- for the dracut infrastructure.
--
- Package: zfsutils-linux
- Section: contrib/admin
- Architecture: linux-any
- Depends: python3, ${misc:Depends}, ${python3:Depends}, ${shlibs:Depends}
--Recommends: lsb-base, zfs-modules | zfs-dkms, zfs-zed
--Breaks: zfs-dkms (<< ${binary:Version}), zfs-dkms (>> ${binary:Version})
-+Recommends: lsb-base, zfs-zed
- Suggests: nfs-kernel-server,
-           samba-common-bin (>= 3.0.23),
--          zfs-initramfs | zfs-dracut
-+          zfs-initramfs
- Conflicts: zfs, zfs-fuse, insserv (<< 1.18)
- Provides: zfsutils
- Description: command-line tools to manage OpenZFS filesystems
-@@ -164,8 +132,7 @@ Description: command-line tools to manage OpenZFS filesystems
- Package: zfs-zed
- Section: contrib/admin
- Architecture: linux-any
--Depends: zfs-modules | zfs-dkms,
--         zfsutils-linux (>= ${binary:Version}),
-+Depends: zfsutils-linux (>= ${binary:Version}),
-          ${misc:Depends},
-          ${shlibs:Depends}
- Description: OpenZFS Event Daemon
-@@ -188,7 +155,6 @@ Depends: acl,
-          python,
-          sudo,
-          sysstat,
--         zfs-modules | zfs-dkms,
-          zfsutils-linux (>=${binary:Version}),
-          ${misc:Depends},
-          ${shlibs:Depends}
-diff --git a/debian/control b/debian/control
-index 7e47f3673..763f45df8 100644
---- a/debian/control
-+++ b/debian/control
-@@ -10,7 +10,6 @@ Build-Depends: autotools-dev,
-                debhelper (>= 10.2),
-                dh-autoreconf,
-                dh-python,
--               dkms (>> 2.1.1.2-5),
-                libattr1-dev,
-                libblkid-dev,
-                libselinux1-dev,
-diff --git a/debian/not-installed b/debian/not-installed
-index a008985cf..c60b0016f 100644
---- a/debian/not-installed
-+++ b/debian/not-installed
-@@ -6,3 +6,5 @@ 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
-+usr/lib/dracut
-+usr/share/zfs/enum-extract.pl
-diff --git a/debian/rules b/debian/rules
-index b4c885a6f..a7ad2b96b 100755
---- a/debian/rules
-+++ b/debian/rules
-@@ -6,9 +6,6 @@ LSB_DISTRIBUTOR := $(shell lsb_release -is)
- NAME := $(shell awk '$$1 == "Name:" { print $$2; }' META)
- LINUX_NEXT := $(shell awk -F. '{print $$1 "." $$2+1}' debian/linux_compat)
--DKMSFILES := module include config zfs.release.in autogen.sh META AUTHORS \
--              DISCLAIMER COPYRIGHT OPENSOLARIS.LICENSE README.markdown
--
- ifndef BUILD_UDEB
- BUILD_UDEB=false
- endif
-@@ -18,21 +15,16 @@ KVERS=$(shell uname -r)
- endif
- ifndef SPL
--SPL=/usr/src/spl-$(DEB_VERSION_UPSTREAM)
--endif
--
--ifndef SPLOBJ
--SPLOBJ=/var/lib/dkms/spl/$(DEB_VERSION_UPSTREAM)/$(KVERS)/$(DEB_TARGET_GNU_CPU)
-+SPL=../spl-build
- endif
- non_epoch_version=$(shell echo $(KVERS) | perl -pe 's/^\d+://')
- PACKAGE=zfs
--pmodules = $(PACKAGE)-modules-$(non_epoch_version)
- export DEB_BUILD_MAINT_OPTIONS = hardening=+all
- %:
--      dh $@ --with autoreconf,dkms,python3,systemd --parallel
-+      dh $@ --with autoreconf,python3,systemd --parallel
- override_dh_autoreconf:
-       @# Embed the downstream version in the module.
-@@ -57,14 +49,6 @@ endif
-         --with-systemdpresetdir=/lib/systemd/system-preset \
-         --with-config=user
--override_dh_auto_build:
--      @# Get a bare copy of the source code for DKMS.
--      @# This creates the $(CURDIR)/$(NAME)-$(DEB_VERSION_UPSTREAM)/ tree, which does not
--      @# contain the userland sources. NB: Remove-userland-dist-rules.patch
--      $(MAKE) distdir
--
--      dh_auto_build
--
- override_dh_auto_test:
-       # The dh_auto_test rule is disabled because
-       # `make check` cannot run in an unprivileged build environment.
-@@ -88,29 +72,6 @@ override_dh_auto_install:
-       @# Zed has dependencies outside of the system root.
-       mv '$(CURDIR)/debian/tmp/sbin/zed' '$(CURDIR)/debian/tmp/usr/sbin/zed'
--      @# Install the DKMS source.
--      @# We only want the files needed to build the modules
--      install -D -t '$(CURDIR)/debian/tmp/usr/src/$(NAME)-$(DEB_VERSION_UPSTREAM)/scripts' \
--              '$(CURDIR)/scripts/enum-extract.pl' \
--              '$(CURDIR)/scripts/dkms.postbuild'
--      $(foreach file,$(DKMSFILES),mv '$(CURDIR)/$(NAME)-$(DEB_VERSION_UPSTREAM)/$(file)' '$(CURDIR)/debian/tmp/usr/src/$(NAME)-$(DEB_VERSION_UPSTREAM)' || 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
--      @#  * Remove reference to ZFS_AC_PACKAGE
--      awk '/^AC_CONFIG_FILES\(\[/,/^\]\)/ { if ($$0 !~ /^(AC_CONFIG_FILES\(\[([ \t]+)?$$|\]\)([ \t]+)?$$|([ \t]+)?(include\/|module\/|Makefile([ \t]+)?$$|zfs\.release([ \t]+)?$$))/){next} } {print}' \
--              '$(CURDIR)/$(NAME)-$(DEB_VERSION_UPSTREAM)/configure.ac' | sed '/ZFS_AC_PACKAGE/d' > '$(CURDIR)/debian/tmp/usr/src/$(NAME)-$(DEB_VERSION_UPSTREAM)/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)-$(DEB_VERSION_UPSTREAM)/Makefile.am' > '$(CURDIR)/debian/tmp/usr/src/$(NAME)-$(DEB_VERSION_UPSTREAM)/Makefile.am'
--      @# Sanity test
--      grep -q 'SUBDIRS = module include' '$(CURDIR)/debian/tmp/usr/src/$(NAME)-$(DEB_VERSION_UPSTREAM)/Makefile.am'
--      @# Run autogen on the stripped source tree
--      cd '$(CURDIR)/debian/tmp/usr/src/$(NAME)-$(DEB_VERSION_UPSTREAM)'; ./autogen.sh
--      rm -fr '$(CURDIR)/debian/tmp/usr/src/$(NAME)-$(DEB_VERSION_UPSTREAM)/autom4te.cache'
--
-       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}`; \
-@@ -121,11 +82,6 @@ override_dh_auto_install:
-       chmod a-x '$(CURDIR)/debian/tmp/etc/default/zfs'
-       chmod a-x '$(CURDIR)/debian/tmp/usr/share/bash-completion/completions/zfs'
--override_dh_dkms:
--      '$(CURDIR)/scripts/dkms.mkconf' -n $(NAME) -v $(DEB_VERSION_UPSTREAM) -f '$(CURDIR)/scripts/zfs-dkms.dkms'
--      dh_dkms
--      rm -f '$(CURDIR)/scripts/zfs-dkms.dkms'
--
- override_dh_makeshlibs:
-       dh_makeshlibs -a -V
- ifeq ($(BUILD_UDEB), true)
-@@ -171,65 +127,5 @@ override_dh_installinit:
- # ------------
--override_dh_prep-deb-files:
--      for templ in $(wildcard $(CURDIR)/debian/*_KVERS_*.in); do \
--              sed -e 's/##KVERS##/$(KVERS)/g ; s/#KVERS#/$(KVERS)/g ; s/_KVERS_/$(KVERS)/g ; s/##KDREV##/$(KDREV)/g ; s/#KDREV#/$(KDREV)/g ; s/_KDREV_/$(KDREV)/g ; s/_ARCH_/$(DEB_HOST_ARCH)/' \
--              < $$templ > `echo $$templ | sed -e 's/_KVERS_/$(KVERS)/g ; s/_ARCH_/$(DEB_HOST_ARCH)/g ; s/\.in$$//'` ; \
--      done
--      sed -e 's/##KVERS##/$(KVERS)/g ; s/#KVERS#/$(KVERS)/g ; s/_KVERS_/$(KVERS)/g ; s/##KDREV##/$(KDREV)/g ; s/#KDREV#/$(KDREV)/g ; s/_KDREV_/$(KDREV)/g ; s/_ARCH_/$(DEB_HOST_ARCH)/g' \
--      < debian/control.modules.in > debian/control
--
--override_dh_configure_modules_udeb: override_dh_configure_modules_udeb_stamp
--override_dh_configure_modules_udeb_stamp:
--      ./configure \
--              --without-selinux \
--              --with-config=kernel \
--              --with-linux=$(KSRC) \
--              --with-linux-obj=$(KOBJ) \
--              --with-spl=$(SPL) \
--              --with-spl-obj=$(SPLOBJ)
--      touch override_dh_configure_modules_udeb_stamp
--
--override_dh_configure_modules: override_dh_configure_modules_stamp
--override_dh_configure_modules_stamp:
--      ./configure \
--              --with-config=kernel \
--              --with-linux=$(KSRC) \
--              --with-linux-obj=$(KOBJ) \
--              --with-spl=$(SPL) \
--              --with-spl-obj=$(SPLOBJ)
--      touch override_dh_configure_modules_stamp
--
--override_dh_binary-modules-udeb: override_dh_prep-deb-files override_dh_configure_modules_udeb
--      dh_testdir
--      dh_testroot
--      dh_prep
--
--      $(MAKE) -C $(CURDIR)/module modules
--
--      dh_installdirs -p${pmodules}-di
--      dh_install -p${pmodules}-di
--      dh_gencontrol -p${pmodules}-di
--
--      dh_builddeb -p${pmodules}-di
--
--override_dh_binary-modules: override_dh_prep-deb-files override_dh_configure_modules
--      dh_testdir
--      dh_testroot
--      dh_prep
--
--      $(MAKE) -C $(CURDIR)/module modules
--
--      dh_install -p${pmodules}
--      dh_installdocs -p${pmodules}
--      dh_installchangelogs -p${pmodules}
--      dh_compress -p${pmodules}
--      dh_strip -p${pmodules}
--      dh_fixperms -p${pmodules}
--      dh_installdeb -p${pmodules}
--      dh_gencontrol -p${pmodules}
--      dh_md5sums -p${pmodules}
--      dh_builddeb -p${pmodules}
--
- debian-copyright:
-       cme update dpkg-copyright -file debian/copyright.cme
diff --git a/zfs-patches/0002-import-with-d-dev-disk-by-id-in-scan-service.patch b/zfs-patches/0002-import-with-d-dev-disk-by-id-in-scan-service.patch
deleted file mode 100644 (file)
index 2ccc5e6..0000000
+++ /dev/null
@@ -1,27 +0,0 @@
-From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Fabian=20Gr=C3=BCnbichler?= <f.gruenbichler@proxmox.com>
-Date: Mon, 24 Oct 2016 13:47:06 +0200
-Subject: [PATCH] import with -d /dev/disk/by-id in scan service
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
-Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
----
- etc/systemd/system/zfs-import-scan.service.in | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/etc/systemd/system/zfs-import-scan.service.in b/etc/systemd/system/zfs-import-scan.service.in
-index abc8e8e6d..8fe2c1072 100644
---- a/etc/systemd/system/zfs-import-scan.service.in
-+++ b/etc/systemd/system/zfs-import-scan.service.in
-@@ -12,7 +12,7 @@ ConditionPathExists=!@sysconfdir@/zfs/zpool.cache
- Type=oneshot
- RemainAfterExit=yes
- ExecStartPre=-/sbin/modprobe zfs
--ExecStart=@sbindir@/zpool import -aN -o cachefile=none
-+ExecStart=@sbindir@/zpool import -aN -d /dev/disk/by-id -o cachefile=none
- [Install]
- WantedBy=zfs-import.target
diff --git a/zfs-patches/0003-always-load-ZFS-module-on-boot.patch b/zfs-patches/0003-always-load-ZFS-module-on-boot.patch
deleted file mode 100644 (file)
index 1ff2461..0000000
+++ /dev/null
@@ -1,28 +0,0 @@
-From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Fabian=20Gr=C3=BCnbichler?= <f.gruenbichler@proxmox.com>
-Date: Fri, 19 Jan 2018 12:13:46 +0100
-Subject: [PATCH] always load ZFS module on boot
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-since zfs-import-scan.service is disabled by default, and
-zfs-import-cache.service only gets started if a cache file exists, this
-is needed for zfs-mount, zfs-share and zfs-zed services in case ZFS is
-not actually used.
-
-Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
-Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
----
- etc/modules-load.d/zfs.conf.in | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/etc/modules-load.d/zfs.conf.in b/etc/modules-load.d/zfs.conf.in
-index 8b41baa30..59b058c9a 100644
---- a/etc/modules-load.d/zfs.conf.in
-+++ b/etc/modules-load.d/zfs.conf.in
-@@ -1,3 +1,3 @@
- # Always load kernel modules at boot.  The default behavior is to load the
- # kernel modules in the zfs-import-*.service or when blkid(8) detects a pool.
--#zfs
-+zfs
diff --git a/zfs-patches/0004-Add-Breaks-Replaces-to-zfs-initramfs.patch b/zfs-patches/0004-Add-Breaks-Replaces-to-zfs-initramfs.patch
deleted file mode 100644 (file)
index f144e8f..0000000
+++ /dev/null
@@ -1,44 +0,0 @@
-From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
-From: Stoiko Ivanov <s.ivanov@proxmox.com>
-Date: Mon, 29 Oct 2018 15:49:20 +0100
-Subject: [PATCH] Add Breaks/Replaces to zfs-initramfs
-
-addressing the move of zdev initramfs hook from zfsutils-linux to
-zfs-initramfs
-
-Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
----
- debian/control.in | 4 ++--
- debian/control    | 4 ++--
- 2 files changed, 4 insertions(+), 4 deletions(-)
-
-diff --git a/debian/control.in b/debian/control.in
-index 978b39e91..b623596f6 100644
---- a/debian/control.in
-+++ b/debian/control.in
-@@ -101,8 +101,8 @@ Depends: busybox-initramfs | busybox-static | busybox,
-          initramfs-tools,
-          zfsutils-linux (>= ${binary:Version}),
-          ${misc:Depends}
--Breaks: zfsutils-linux (<= 0.7.11-2)
--Replaces: zfsutils-linux (<= 0.7.11-2)
-+Breaks: zfsutils-linux (<= 0.7.11-pve1~bpo1)
-+Replaces: zfsutils-linux (<= 0.7.11-pve1~bpo1)
- Description: OpenZFS root filesystem capabilities for Linux - initramfs
-  The Z file system is a pooled filesystem designed for maximum data
-  integrity, supporting data snapshots, multiple copies, and data
-diff --git a/debian/control b/debian/control
-index 763f45df8..29cdc886f 100644
---- a/debian/control
-+++ b/debian/control
-@@ -117,8 +117,8 @@ Depends: busybox-initramfs | busybox-static | busybox,
-          zfs-modules | zfs-dkms,
-          zfsutils-linux (>= ${binary:Version}),
-          ${misc:Depends}
--Breaks: zfsutils-linux (<= 0.7.11-2)
--Replaces: zfsutils-linux (<= 0.7.11-2)
-+Breaks: zfsutils-linux (<= 0.7.11-pve1~bpo1)
-+Replaces: zfsutils-linux (<= 0.7.11-pve1~bpo1)
- Description: OpenZFS root filesystem capabilities for Linux - initramfs
-  The Z file system is a pooled filesystem designed for maximum data
-  integrity, supporting data snapshots, multiple copies, and data
diff --git a/zfs-patches/0005-Revert-Install-init-scripts-to-support-non-systemd-s.patch b/zfs-patches/0005-Revert-Install-init-scripts-to-support-non-systemd-s.patch
deleted file mode 100644 (file)
index da5f5e8..0000000
+++ /dev/null
@@ -1,75 +0,0 @@
-From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
-From: Thomas Lamprecht <t.lamprecht@proxmox.com>
-Date: Wed, 31 Oct 2018 15:37:39 +0100
-Subject: [PATCH] Revert "Install init scripts to support non-systemd setups.
- (Closes: #826994)"
-
-This reverts commit 2ad6c7f9e150e9c2fa146891785b09465aa0c7e5.
-
-Breaks on systems with sysv-rc installed (possible on Jessie upgraded
-systems)
-
-Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
----
- debian/rules                          | 8 --------
- debian/zfs-zed.zfs-zed.init           | 1 -
- debian/zfsutils-linux.zfs-import.init | 1 -
- debian/zfsutils-linux.zfs-mount.init  | 1 -
- debian/zfsutils-linux.zfs-share.init  | 1 -
- 5 files changed, 12 deletions(-)
- delete mode 120000 debian/zfs-zed.zfs-zed.init
- delete mode 120000 debian/zfsutils-linux.zfs-import.init
- delete mode 120000 debian/zfsutils-linux.zfs-mount.init
- delete mode 120000 debian/zfsutils-linux.zfs-share.init
-
-diff --git a/debian/rules b/debian/rules
-index a7ad2b96b..d6cf5a56f 100755
---- a/debian/rules
-+++ b/debian/rules
-@@ -117,14 +117,6 @@ override_dh_install:
-       find . -name lib*.la -delete
-       dh_install --fail-missing
--override_dh_installinit:
--      dh_installinit -R --name zfs-import
--      dh_installinit -R --name zfs-mount
--      dh_installinit -R --name zfs-share
--      dh_installinit -R --name zfs-zed
--      mkdir -p debian/zfsutils-linux/lib/systemd/system
--      ln -sr /dev/null debian/zfsutils-linux/lib/systemd/system/zfs-import.service
--
- # ------------
- debian-copyright:
-diff --git a/debian/zfs-zed.zfs-zed.init b/debian/zfs-zed.zfs-zed.init
-deleted file mode 120000
-index 3f41f6813..000000000
---- a/debian/zfs-zed.zfs-zed.init
-+++ /dev/null
-@@ -1 +0,0 @@
--../etc/init.d/zfs-zed
-\ No newline at end of file
-diff --git a/debian/zfsutils-linux.zfs-import.init b/debian/zfsutils-linux.zfs-import.init
-deleted file mode 120000
-index bfc368fd3..000000000
---- a/debian/zfsutils-linux.zfs-import.init
-+++ /dev/null
-@@ -1 +0,0 @@
--../etc/init.d/zfs-import
-\ No newline at end of file
-diff --git a/debian/zfsutils-linux.zfs-mount.init b/debian/zfsutils-linux.zfs-mount.init
-deleted file mode 120000
-index 62a544332..000000000
---- a/debian/zfsutils-linux.zfs-mount.init
-+++ /dev/null
-@@ -1 +0,0 @@
--../etc/init.d/zfs-mount
-\ No newline at end of file
-diff --git a/debian/zfsutils-linux.zfs-share.init b/debian/zfsutils-linux.zfs-share.init
-deleted file mode 120000
-index 3f069f9ba..000000000
---- a/debian/zfsutils-linux.zfs-share.init
-+++ /dev/null
-@@ -1 +0,0 @@
--../etc/init.d/zfs-share
-\ No newline at end of file
diff --git a/zfs-patches/0006-Fix-deadlock-between-zfs-umount-snapentry_expire.patch b/zfs-patches/0006-Fix-deadlock-between-zfs-umount-snapentry_expire.patch
deleted file mode 100644 (file)
index 711571a..0000000
+++ /dev/null
@@ -1,61 +0,0 @@
-From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
-From: Rohan Puri <rohan.puri15@gmail.com>
-Date: Sat, 28 Jul 2018 18:32:12 +0530
-Subject: [PATCH] Fix deadlock between zfs umount & snapentry_expire
-
-zfs umount -> zfsctl_destroy() takes the zfs_snapshot_lock as a
-writer and calls zfsctl_snapshot_unmount_cancel(), which waits
-for snapentry_expire() if present (when snap is automounted).
-This snapentry_expire() itself then waits for zfs_snapshot_lock
-as a reader, resulting in a deadlock.
-
-The fix is to only hold the zfs_snapshot_lock over the tree
-lookup and removal.  After a successful lookup the lock can
-be dropped and zfs_snapentry_t will remain valid until the
-reference taken by the lookup is released.
-
-Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
-Signed-off-by: Rohan Puri <rohan.puri15@gmail.com>
-Closes #7751
-Closes #7752
-
-(Cherry-picked from fd7265c646f40e364396af5014bbb83e809e124a)
-Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
-
-Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
----
- module/zfs/zfs_ctldir.c | 11 +++++------
- 1 file changed, 5 insertions(+), 6 deletions(-)
-
-diff --git a/module/zfs/zfs_ctldir.c b/module/zfs/zfs_ctldir.c
-index bf5a1d059..2964b65a6 100644
---- a/module/zfs/zfs_ctldir.c
-+++ b/module/zfs/zfs_ctldir.c
-@@ -358,8 +358,6 @@ snapentry_expire(void *data)
- static void
- zfsctl_snapshot_unmount_cancel(zfs_snapentry_t *se)
- {
--      ASSERT(RW_LOCK_HELD(&zfs_snapshot_lock));
--
-       if (taskq_cancel_id(system_delay_taskq, se->se_taskqid) == 0) {
-               se->se_taskqid = TASKQID_INVALID;
-               zfsctl_snapshot_rele(se);
-@@ -570,13 +568,14 @@ zfsctl_destroy(zfsvfs_t *zfsvfs)
-               uint64_t objsetid = dmu_objset_id(zfsvfs->z_os);
-               rw_enter(&zfs_snapshot_lock, RW_WRITER);
--              if ((se = zfsctl_snapshot_find_by_objsetid(spa, objsetid))
--                  != NULL) {
--                      zfsctl_snapshot_unmount_cancel(se);
-+              se = zfsctl_snapshot_find_by_objsetid(spa, objsetid);
-+              if (se != NULL)
-                       zfsctl_snapshot_remove(se);
-+              rw_exit(&zfs_snapshot_lock);
-+              if (se != NULL) {
-+                      zfsctl_snapshot_unmount_cancel(se);
-                       zfsctl_snapshot_rele(se);
-               }
--              rw_exit(&zfs_snapshot_lock);
-       } else if (zfsvfs->z_ctldir) {
-               iput(zfsvfs->z_ctldir);
-               zfsvfs->z_ctldir = NULL;
diff --git a/zfs-patches/0007-deadlock-between-mm_sem-and-tx-assign-in-zfs_write-a.patch b/zfs-patches/0007-deadlock-between-mm_sem-and-tx-assign-in-zfs_write-a.patch
deleted file mode 100644 (file)
index d8f8ebd..0000000
+++ /dev/null
@@ -1,376 +0,0 @@
-From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
-From: ilbsmart <wgqimut@gmail.com>
-Date: Wed, 17 Oct 2018 02:11:24 +0800
-Subject: [PATCH] deadlock between mm_sem and tx assign in zfs_write() and page
- fault
-
-The bug time sequence:
-1. thread #1, `zfs_write` assign a txg "n".
-2. In a same process, thread #2, mmap page fault (which means the
-   `mm_sem` is hold) occurred, `zfs_dirty_inode` open a txg failed,
-   and wait previous txg "n" completed.
-3. thread #1 call `uiomove` to write, however page fault is occurred
-   in `uiomove`, which means it need `mm_sem`, but `mm_sem` is hold by
-   thread #2, so it stuck and can't complete,  then txg "n" will
-   not complete.
-
-So thread #1 and thread #2 are deadlocked.
-
-Reviewed-by: Chunwei Chen <tuxoko@gmail.com>
-Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
-Reviewed-by: Matthew Ahrens <mahrens@delphix.com>
-Signed-off-by: Grady Wong <grady.w@xtaotech.com>
-Closes #7939
-
-(backported from: zfs-upstream 779a6c0bf6df76e0dd92c1ccf81f48512b835bb0)
-Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
----
- include/sys/uio_impl.h                        |   2 +-
- module/zcommon/zfs_uio.c                      |  31 +++-
- module/zfs/zfs_vnops.c                        |  24 ++-
- tests/zfs-tests/cmd/mmapwrite/mmapwrite.c     | 140 +++++++++++++-----
- .../functional/mmap/mmap_write_001_pos.ksh    |   8 +-
- 5 files changed, 151 insertions(+), 54 deletions(-)
-
-diff --git a/include/sys/uio_impl.h b/include/sys/uio_impl.h
-index 37e283da0..cfef0b95d 100644
---- a/include/sys/uio_impl.h
-+++ b/include/sys/uio_impl.h
-@@ -42,7 +42,7 @@
- #include <sys/uio.h>
- extern int uiomove(void *, size_t, enum uio_rw, uio_t *);
--extern void uio_prefaultpages(ssize_t, uio_t *);
-+extern int uio_prefaultpages(ssize_t, uio_t *);
- extern int uiocopy(void *, size_t, enum uio_rw, uio_t *, size_t *);
- extern void uioskip(uio_t *, size_t);
-diff --git a/module/zcommon/zfs_uio.c b/module/zcommon/zfs_uio.c
-index 7b4175bbe..8e969bbcc 100644
---- a/module/zcommon/zfs_uio.c
-+++ b/module/zcommon/zfs_uio.c
-@@ -50,6 +50,7 @@
- #include <sys/types.h>
- #include <sys/uio_impl.h>
- #include <linux/kmap_compat.h>
-+#include <linux/uaccess.h>
- /*
-  * Move "n" bytes at byte address "p"; "rw" indicates the direction
-@@ -77,8 +78,24 @@ uiomove_iov(void *p, size_t n, enum uio_rw rw, struct uio *uio)
-                               if (copy_to_user(iov->iov_base+skip, p, cnt))
-                                       return (EFAULT);
-                       } else {
--                              if (copy_from_user(p, iov->iov_base+skip, cnt))
--                                      return (EFAULT);
-+                              if (uio->uio_fault_disable) {
-+                                      if (!access_ok(VERIFY_READ,
-+                                          (iov->iov_base + skip), cnt)) {
-+                                              return (EFAULT);
-+                                      }
-+
-+                                      pagefault_disable();
-+                                      if (__copy_from_user_inatomic(p,
-+                                          (iov->iov_base + skip), cnt)) {
-+                                              pagefault_enable();
-+                                              return (EFAULT);
-+                                      }
-+                                      pagefault_enable();
-+                              } else {
-+                                      if (copy_from_user(p,
-+                                          (iov->iov_base + skip), cnt))
-+                                              return (EFAULT);
-+                              }
-                       }
-                       break;
-               case UIO_SYSSPACE:
-@@ -156,7 +173,7 @@ EXPORT_SYMBOL(uiomove);
-  * error will terminate the process as this is only a best attempt to get
-  * the pages resident.
-  */
--void
-+int
- uio_prefaultpages(ssize_t n, struct uio *uio)
- {
-       const struct iovec *iov;
-@@ -170,7 +187,7 @@ uio_prefaultpages(ssize_t n, struct uio *uio)
-       switch (uio->uio_segflg) {
-               case UIO_SYSSPACE:
-               case UIO_BVEC:
--                      return;
-+                      return (0);
-               case UIO_USERSPACE:
-               case UIO_USERISPACE:
-                       break;
-@@ -194,7 +211,7 @@ uio_prefaultpages(ssize_t n, struct uio *uio)
-               p = iov->iov_base + skip;
-               while (cnt) {
-                       if (fuword8((uint8_t *)p, &tmp))
--                              return;
-+                              return (EFAULT);
-                       incr = MIN(cnt, PAGESIZE);
-                       p += incr;
-                       cnt -= incr;
-@@ -204,8 +221,10 @@ uio_prefaultpages(ssize_t n, struct uio *uio)
-                */
-               p--;
-               if (fuword8((uint8_t *)p, &tmp))
--                      return;
-+                      return (EFAULT);
-       }
-+
-+      return (0);
- }
- EXPORT_SYMBOL(uio_prefaultpages);
-diff --git a/module/zfs/zfs_vnops.c b/module/zfs/zfs_vnops.c
-index 5a2e55eb1..c866352d7 100644
---- a/module/zfs/zfs_vnops.c
-+++ b/module/zfs/zfs_vnops.c
-@@ -675,7 +675,10 @@ zfs_write(struct inode *ip, uio_t *uio, int ioflag, cred_t *cr)
-               xuio = (xuio_t *)uio;
-       else
- #endif
--              uio_prefaultpages(MIN(n, max_blksz), uio);
-+              if (uio_prefaultpages(MIN(n, max_blksz), uio)) {
-+                      ZFS_EXIT(zfsvfs);
-+                      return (SET_ERROR(EFAULT));
-+              }
-       /*
-        * If in append mode, set the io offset pointer to eof.
-@@ -820,8 +823,19 @@ zfs_write(struct inode *ip, uio_t *uio, int ioflag, cred_t *cr)
-               if (abuf == NULL) {
-                       tx_bytes = uio->uio_resid;
-+                      uio->uio_fault_disable = B_TRUE;
-                       error = dmu_write_uio_dbuf(sa_get_db(zp->z_sa_hdl),
-                           uio, nbytes, tx);
-+                      if (error == EFAULT) {
-+                              dmu_tx_commit(tx);
-+                              if (uio_prefaultpages(MIN(n, max_blksz), uio)) {
-+                                      break;
-+                              }
-+                              continue;
-+                      } else if (error != 0) {
-+                              dmu_tx_commit(tx);
-+                              break;
-+                      }
-                       tx_bytes -= uio->uio_resid;
-               } else {
-                       tx_bytes = nbytes;
-@@ -921,8 +935,12 @@ zfs_write(struct inode *ip, uio_t *uio, int ioflag, cred_t *cr)
-               ASSERT(tx_bytes == nbytes);
-               n -= nbytes;
--              if (!xuio && n > 0)
--                      uio_prefaultpages(MIN(n, max_blksz), uio);
-+              if (!xuio && n > 0) {
-+                      if (uio_prefaultpages(MIN(n, max_blksz), uio)) {
-+                              error = EFAULT;
-+                              break;
-+                      }
-+              }
-       }
-       zfs_inode_update(zp);
-diff --git a/tests/zfs-tests/cmd/mmapwrite/mmapwrite.c b/tests/zfs-tests/cmd/mmapwrite/mmapwrite.c
-index 190d31af3..b9915d5d3 100644
---- a/tests/zfs-tests/cmd/mmapwrite/mmapwrite.c
-+++ b/tests/zfs-tests/cmd/mmapwrite/mmapwrite.c
-@@ -31,74 +31,132 @@
- #include <string.h>
- #include <sys/mman.h>
- #include <pthread.h>
-+#include <errno.h>
-+#include <err.h>
- /*
-  * --------------------------------------------------------------------
-- * Bug Id: 5032643
-+ * Bug Issue Id: #7512
-+ * The bug time sequence:
-+ * 1. context #1, zfs_write assign a txg "n".
-+ * 2. In the same process, context #2, mmap page fault (which means the mm_sem
-+ *    is hold) occurred, zfs_dirty_inode open a txg failed, and wait previous
-+ *    txg "n" completed.
-+ * 3. context #1 call uiomove to write, however page fault is occurred in
-+ *    uiomove, which means it need mm_sem, but mm_sem is hold by
-+ *    context #2, so it stuck and can't complete, then txg "n" will not
-+ *    complete.
-  *
-- * Simply writing to a file and mmaping that file at the same time can
-- * result in deadlock.  Nothing perverse like writing from the file's
-- * own mapping is required.
-+ * So context #1 and context #2 trap into the "dead lock".
-  * --------------------------------------------------------------------
-  */
-+#define       NORMAL_WRITE_TH_NUM     2
-+
- static void *
--mapper(void *fdp)
-+normal_writer(void *filename)
- {
--      void *addr;
--      int fd = *(int *)fdp;
-+      char *file_path = filename;
-+      int fd = -1;
-+      ssize_t write_num = 0;
-+      int page_size = getpagesize();
--      if ((addr =
--          mmap(0, 8192, PROT_READ, MAP_SHARED, fd, 0)) == MAP_FAILED) {
--              perror("mmap");
--              exit(1);
-+      fd = open(file_path, O_RDWR | O_CREAT, 0777);
-+      if (fd == -1) {
-+              err(1, "failed to open %s", file_path);
-       }
--      for (;;) {
--              if (mmap(addr, 8192, PROT_READ,
--                  MAP_SHARED|MAP_FIXED, fd, 0) == MAP_FAILED) {
--                      perror("mmap");
--                      exit(1);
-+
-+      char *buf = malloc(1);
-+      while (1) {
-+              write_num = write(fd, buf, 1);
-+              if (write_num == 0) {
-+                      err(1, "write failed!");
-+                      break;
-               }
-+              lseek(fd, page_size, SEEK_CUR);
-+      }
-+
-+      if (buf) {
-+              free(buf);
-       }
--      /* NOTREACHED */
--      return ((void *)1);
- }
--int
--main(int argc, char **argv)
-+static void *
-+map_writer(void *filename)
- {
--      int fd;
--      char buf[1024];
--      pthread_t tid;
-+      int fd = -1;
-+      int ret = 0;
-+      char *buf = NULL;
-+      int page_size = getpagesize();
-+      int op_errno = 0;
-+      char *file_path = filename;
--      memset(buf, 'a', sizeof (buf));
-+      while (1) {
-+              ret = access(file_path, F_OK);
-+              if (ret) {
-+                      op_errno = errno;
-+                      if (op_errno == ENOENT) {
-+                              fd = open(file_path, O_RDWR | O_CREAT, 0777);
-+                              if (fd == -1) {
-+                                      err(1, "open file failed");
-+                              }
--      if (argc != 2) {
--              (void) printf("usage: %s <file name>\n", argv[0]);
--              exit(1);
--      }
-+                              ret = ftruncate(fd, page_size);
-+                              if (ret == -1) {
-+                                      err(1, "truncate file failed");
-+                              }
-+                      } else {
-+                              err(1, "access file failed!");
-+                      }
-+              } else {
-+                      fd = open(file_path, O_RDWR, 0777);
-+                      if (fd == -1) {
-+                              err(1, "open file failed");
-+                      }
-+              }
--      if ((fd = open(argv[1], O_RDWR|O_CREAT|O_TRUNC, 0666)) == -1) {
--              perror("open");
--              exit(1);
-+              if ((buf = mmap(NULL, page_size, PROT_READ | PROT_WRITE,
-+                  MAP_SHARED, fd, 0)) == MAP_FAILED) {
-+                      err(1, "map file failed");
-+              }
-+
-+              if (fd != -1)
-+                      close(fd);
-+
-+              char s[10] = {0, };
-+              memcpy(buf, s, 10);
-+              ret = munmap(buf, page_size);
-+              if (ret != 0) {
-+                      err(1, "unmap file failed");
-+              }
-       }
-+}
--      (void) pthread_setconcurrency(2);
--      if (pthread_create(&tid, NULL, mapper, &fd) != 0) {
--              perror("pthread_create");
--              close(fd);
-+int
-+main(int argc, char **argv)
-+{
-+      pthread_t map_write_tid;
-+      pthread_t normal_write_tid[NORMAL_WRITE_TH_NUM];
-+      int i = 0;
-+
-+      if (argc != 3) {
-+              (void) printf("usage: %s <normal write file name>"
-+                  "<map write file name>\n", argv[0]);
-               exit(1);
-       }
--      for (;;) {
--              if (write(fd, buf, sizeof (buf)) == -1) {
--                      perror("write");
--                      close(fd);
--                      exit(1);
-+
-+      for (i = 0; i < NORMAL_WRITE_TH_NUM; i++) {
-+              if (pthread_create(&normal_write_tid[i], NULL, normal_writer,
-+                  argv[1])) {
-+                      err(1, "pthread_create normal_writer failed.");
-               }
-       }
--      close(fd);
-+      if (pthread_create(&map_write_tid, NULL, map_writer, argv[2])) {
-+              err(1, "pthread_create map_writer failed.");
-+      }
-       /* NOTREACHED */
-+      pthread_join(map_write_tid, NULL);
-       return (0);
- }
-diff --git a/tests/zfs-tests/tests/functional/mmap/mmap_write_001_pos.ksh b/tests/zfs-tests/tests/functional/mmap/mmap_write_001_pos.ksh
-index 1eda97104..24150b827 100755
---- a/tests/zfs-tests/tests/functional/mmap/mmap_write_001_pos.ksh
-+++ b/tests/zfs-tests/tests/functional/mmap/mmap_write_001_pos.ksh
-@@ -53,12 +53,14 @@ if ! is_mp; then
- fi
- log_must chmod 777 $TESTDIR
--mmapwrite $TESTDIR/test-write-file &
-+mmapwrite $TESTDIR/normal_write_file $TESTDIR/map_write_file &
- PID_MMAPWRITE=$!
--log_note "mmapwrite $TESTDIR/test-write-file pid: $PID_MMAPWRITE"
-+log_note "mmapwrite $TESTDIR/normal_write_file $TESTDIR/map_write_file"\
-+       "pid: $PID_MMAPWRITE"
- log_must sleep 30
- log_must kill -9 $PID_MMAPWRITE
--log_must ls -l $TESTDIR/test-write-file
-+log_must ls -l $TESTDIR/normal_write_file
-+log_must ls -l $TESTDIR/map_write_file
- log_pass "write(2) a mmap(2)'ing file succeeded."
diff --git a/zfs-patches/series b/zfs-patches/series
deleted file mode 100644 (file)
index 4a3f27d..0000000
+++ /dev/null
@@ -1,7 +0,0 @@
-0001-remove-DKMS-modules-and-dracut-build.patch
-0002-import-with-d-dev-disk-by-id-in-scan-service.patch
-0003-always-load-ZFS-module-on-boot.patch
-0004-Add-Breaks-Replaces-to-zfs-initramfs.patch
-0005-Revert-Install-init-scripts-to-support-non-systemd-s.patch
-0006-Fix-deadlock-between-zfs-umount-snapentry_expire.patch
-0007-deadlock-between-mm_sem-and-tx-assign-in-zfs_write-a.patch
diff --git a/zfs/debian/changelog b/zfs/debian/changelog
new file mode 100644 (file)
index 0000000..8b9b319
--- /dev/null
@@ -0,0 +1,677 @@
+zfs-linux (0.7.12-pve1~bpo1) unstable; urgency=medium
+
+  * update ZFS to 0.7.12
+
+ -- Proxmox Support Team <support@proxmox.com>  Wed, 14 Nov 2018 17:51:59 +0100
+
+zfs-linux (0.7.11-pve2~bpo1) unstable; urgency=medium
+
+  * update ZFS to debian/0.7.11-3
+
+  * Cherry-pick two fixes planned for 0.7.12
+
+  * Backport deadlock fix between mm_sem and tx assign in zfs_write() and page
+    fault
+
+  * Fix missing Breaks/Replaces in zfs-initramfs
+
+ -- Proxmox Support Team <support@proxmox.com>  Mon, 29 Oct 2018 13:45:49 +0100
+
+zfs-linux (0.7.11-pve1~bpo1) unstable; urgency=medium
+
+  * update ZFS to 0.7.11
+
+ -- Proxmox Support Team <support@proxmox.com>  Mon, 10 Sep 2018 15:47:31 +0200
+
+zfs-linux (0.7.9-pve3~bpo9) unstable; urgency=medium
+
+  *  Cherry-pick fix for deadlock umount/snapentry_expire
+
+ -- Proxmox Support Team <support@proxmox.com>  Fri, 03 Aug 2018 11:41:11 +0200
+
+zfs-linux (0.7.9-pve2~bpo9) unstable; urgency=medium
+
+  * Cherry-pick fix for zpl_mount deadlock
+
+ -- Proxmox Support Team <support@proxmox.com>  Fri, 12 Jul 2018 12:37:50 +0200
+
+zfs-linux (0.7.9-pve1~bpo9) unstable; urgency=medium
+
+  * update ZFS to 0.7.9
+
+ -- Proxmox Support Team <support@proxmox.com>  Fri, 18 May 2018 13:49:09 +0200
+
+zfs-linux (0.7.8-pve1~bpo9) unstable; urgency=medium
+
+  * update ZFS to 0.7.8 (no changes)
+
+ -- Proxmox Support Team <support@proxmox.com>  Mon, 30 Apr 2018 13:47:22 +0200
+
+zfs-linux (0.7.7-pve2~bpo9) unstable; urgency=medium
+
+  * (temporarily) revert likely cause of #7401
+
+ -- Proxmox Support Team <support@proxmox.com>  Mon, 9 Apr 2018 09:49:27 +0200
+
+zfs-linux (0.7.7-pve1~bpo9) unstable; urgency=medium
+
+  * update ZFS to 0.7.7
+
+ -- Proxmox Support Team <support@proxmox.com>  Tue, 3 Apr 2018 14:28:35 +0200
+
+zfs-linux (0.7.6-pve1~bpo9) unstable; urgency=medium
+
+  * update ZFS to 0.7.6
+
+ -- Proxmox Support Team <support@proxmox.com>  Wed, 21 Feb 2018 09:48:29 +0100
+
+zfs-linux (0.7.4-pve2~bpo9) unstable; urgency=medium
+
+  * cherry-pick ARC hit rate fix from 0.7.6
+
+  * always load ZFS modules on boot
+
+ -- Proxmox Support Team <support@proxmox.com>  Fri, 19 Jan 2018 11:31:14 +0100
+
+zfs-linux (0.7.4-pve1~bpo9) unstable; urgency=medium
+
+  * update ZFS to 0.7.4
+
+ -- Proxmox Support Team <support@proxmox.com>  Tue, 19 Dec 2017 12:52:42 +0100
+
+zfs-linux (0.7.3-pve1~bpo9) unstable; urgency=medium
+
+  * update ZFS to 0.7.3
+
+  * include fix for user namespace setgid issue (#6800 upstream)
+
+ -- Proxmox Support Team <support@proxmox.com>  Mon, 6 Nov 2017 09:14:19 +0100
+
+zfs-linux (0.7.2-pve1~bpo90) unstable; urgency=medium
+
+  * update zfs to 0.7.2
+
+  * add PR 6616 - zfs send/recv compatibility with 0.6.5
+
+  * add PR 6695 - zfs recv: don't skip over objects which should be freed
+
+  * various small fixes
+
+  * split test suite into zfs-test package
+
+ -- Proxmox Support Team <support@proxmox.com>  Thu, 12 Oct 2017 13:34:05 +0200
+
+zfs-linux (0.6.5.11-pve18~bpo90) unstable; urgency=medium
+
+  * fix #1509: arc_summary error with L2ARC
+
+ -- Proxmox Support Team <support@proxmox.com>  Mon, 2 Oct 2017 09:30:41 +0200
+
+zfs-linux (0.6.5.11-pve17~bpo90) unstable; urgency=medium
+
+  * update zfs to debian/0.6.5.11-1
+
+ -- Proxmox Support Team <support@proxmox.com>  Thu, 27 Jul 2017 13:11:45 +0200
+
+zfs-linux (0.6.5.9-pve16~bpo90) unstable; urgency=medium
+
+  * drop transitional packages
+
+  * convert python scripts to python 3, drop .py suffix
+
+  * rebuild for PVE 5.0 / Debian Stretch
+
+ -- Proxmox Support Team <support@proxmox.com>  Fri, 10 Mar 2017 09:45:52 +0100
+
+zfs-linux (0.6.5.9-pve15~bpo80) unstable; urgency=medium
+
+  * update zfs to debian/0.6.5.9-1
+
+ -- Proxmox Support Team <support@proxmox.com>  Mon, 6 Feb 2017 12:39:10 +0100
+
+zfs-linux (0.6.5.8-pve14~bpo80) unstable; urgency=medium
+
+  * update zfs to debian/0.6.5.8-3
+
+ -- Proxmox Support Team <support@proxmox.com>  Wed, 11 Jan 2017 09:34:58 +0100
+
+zfs-linux (0.6.5.8-pve13~bpo80) unstable; urgency=medium
+
+  * fix #1184: zfs-share.service has wrong path to 'rm' command
+
+ -- Proxmox Support Team <support@proxmox.com>  Thu, 27 Oct 2016 11:25:47 +0200
+
+zfs-linux (0.6.5.8-pve12~bpo80) unstable; urgency=medium
+
+  * import with "-d /dev/disk/by-id" in systemd service
+
+ -- Proxmox Support Team <support@proxmox.com>  Mon, 24 Oct 2016 13:48:08 +0200
+
+zfs-linux (0.6.5.8-pve11~bpo80) unstable; urgency=medium
+
+  * update zfs to debian/0.6.5.8-1
+
+  * switch package upstream sources to Debian (Jessie)
+
+  * add transitional packages for upgrades
+
+ -- Proxmox Support Team <support@proxmox.com>  Wed, 12 Oct 2016 11:16:02 +0200
+
+zfs-linux (0.6.5.7-pve10~bpo80) unstable; urgency=medium
+
+  * update to pkg-zfs jessie/0.6.5.7-8
+
+  * change package versioning to allow upgrades from PVE3/wheezy
+
+ -- Proxmox Support Team <support@proxmox.com>  Tue, 28 Jun 2016 09:50:00 +0200
+
+zfs-linux (0.6.5-pve9~jessie) unstable; urgency=medium
+
+  * Update to pkg-zfs jessie/0.6.5.6-3
+
+ -- Proxmox Support Team <support@proxmox.com>  Tue, 12 Apr 2016 09:51:35 +0200
+
+zfs-linux (0.6.5-pve8~jessie) unstable; urgency=medium
+
+  * update to zfs-0.6.5.6
+
+ -- Proxmox Support Team <support@proxmox.com>  Wed, 30 Mar 2016 10:50:22 +0200
+
+zfs-linux (0.6.5-pve7~jessie) unstable; urgency=medium
+
+  * update to zfs-0.6.5.4
+
+ -- Proxmox Support Team <support@proxmox.com>  Thu, 14 Jan 2016 10:51:17 +0100
+
+zfs-linux (0.6.5-pve6~jessie) unstable; urgency=medium
+
+  * Prepare to tag zfs-0.6.5.3
+
+ -- Proxmox Support Team <support@proxmox.com>  Thu, 05 Nov 2015 07:21:44 +0100
+
+zfs-linux (0.6.5-pve5~jessie) unstable; urgency=medium
+
+  * Illumos 6267 - dn_bonus evicted too early
+
+  * Fix use-after-free in vdev_disk_physio_completion
+
+ -- Proxmox Support Team <support@proxmox.com>  Wed, 04 Nov 2015 17:42:42 +0100
+
+zfs-linux (0.6.5-pve4~jessie) unstable; urgency=medium
+
+  * update to master/debian/jessie/0.6.5.2-2
+
+ -- Proxmox Support Team <support@proxmox.com>  Mon, 05 Oct 2015 17:56:45 +0200
+
+zfs-linux (0.6.5-pve3~jessie) unstable; urgency=medium
+
+  * do not install /etc/init.d/zfs-zed script to avoid double startup
+    with systemd
+
+ -- Proxmox Support Team <support@proxmox.com>  Mon, 28 Sep 2015 10:14:40 +0200
+
+zfs-linux (0.6.5-pve2~jessie) unstable; urgency=medium
+
+  * update to master/debian/jessie/0.6.5.1-4
+
+ -- Proxmox Support Team <support@proxmox.com>  Thu, 24 Sep 2015 12:45:33 +0200
+
+zfs-linux (0.6.5-pve1~jessie) unstable; urgency=medium
+
+  * update to master/debian/jessie/0.6.5.1-2
+
+ -- Proxmox Support Team <support@proxmox.com>  Mon, 21 Sep 2015 10:02:41 +0200
+
+zfs-linux (0.6.4-pve3~jessie) unstable; urgency=medium
+
+  * update to snapshot/debian/jessie/0.6.4-24-6bec43
+
+ -- Proxmox Support Team <support@proxmox.com>  Mon, 24 Aug 2015 06:13:44 +0200
+
+zfs-linux (0.6.4-pve2~jessie) unstable; urgency=medium
+
+  * update to 0.6.4.2 (snapshot/debian/jessie/0.6.4-21-53b1d9)
+
+ -- Proxmox Support Team <support@proxmox.com>  Tue, 21 Jul 2015 11:03:21 +0200
+
+zfs-linux (0.6.4-pve1~jessie) unstable; urgency=medium
+
+  * update to 0.6.4 (use upstream zol package definitions)
+
+ -- Proxmox Support Team <support@proxmox.com>  Tue, 14 Apr 2015 10:19:22 +0200
+
+zfs-linux (0.6.3-pve3~jessie) unstable; urgency=medium
+
+  * ignore zfs-import-scan errors
+
+ -- Proxmox Support Team <support@proxmox.com>  Tue, 31 Mar 2015 17:52:40 +0200
+
+zfs-linux (0.6.3-pve2~jessie) unstable; urgency=medium
+
+  * use systemd for service startup
+
+  * install zed configuration file /etc/zfs/zed.d/zed.rc
+
+ -- Proxmox Support Team <support@proxmox.com>  Sun, 15 Mar 2015 15:52:54 +0100
+
+zfs-linux (0.6.3-pve1~jessie) unstable; urgency=medium
+
+  * recompile on jessie
+
+ -- Proxmox Support Team <support@proxmox.com>  Sat, 28 Feb 2015 16:02:08 +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
+
+zfs-linux (0.7.12-2) unstable; urgency=medium
+
+  [ Colin Ian King ]
+  * Only run autopkgtests for amd64, arm64, ppc64el and s390x (LP#1805627).
+
+  [ Martin Bagge / brother ]
+  * [INTL:sv] Swedish strings for zfs-linux debconf (Closes: #918020)
+
+  [ Anders Jonsson ]
+  * sv.po: typo fix
+
+  [ Mo Zhou ]
+  * Change init script's behaviour to default during postinst.
+  * Add ${perl:Depends} to zfs-dkms's Depends.
+  * Add autopkgtest script to test zfs-dkms build.
+  * autopkgtest: minor fix
+
+  [ Aron Xu ]
+  * Add XS-Autobuild: yes to d/control
+  * Conflicts with insserv << 1.18 (Closes: #915831)
+
+ -- Aron Xu <aron@debian.org>  Fri, 11 Jan 2019 21:32:06 +0800
+
+zfs-linux (0.7.12-1) unstable; urgency=medium
+
+  [ Stoiko Ivanov ]
+  * Add Breaks/Replaces to zfs-initramfs
+
+  [ Mo Zhou ]
+  * New upstream version 0.7.12
+  * Drop unnecessary patch init-start-stop-dep-on-local-fs.patch .
+  * Override init.d-script-missing-dependency-on-local_fs for zfs-zed.
+  * Bump linux compatibility to 4.19 .
+
+ -- Mo Zhou <cdluminate@gmail.com>  Mon, 19 Nov 2018 11:32:44 +0000
+
+zfs-linux (0.7.11-3) unstable; urgency=medium
+
+  [ Antonio Russo ]
+  + https://salsa.debian.org/zfsonlinux-team/zfs/merge_requests/9
+  * Break/Replace upstream .deb packages (Closes: #839921)
+  * Install upstream bash completion file instead of embedded one.
+  * Modify META before autoreconf.
+  * Make dkms distdir before build to avoid including build artifacts.
+  * Remove ZFS_AC_PACKAGE macros from DKMS sources.
+    This removes dpkg-dev dependency from zfs-dkms package.
+  * Use upstream's dkms.mkconf script to produce dkms.conf .
+  * Ship initramfs zdev hook in zfs-initramfs (Closes: #902052)
+
+  [ Nicolas Braud-Santoni ]
+  * Update debian/copyright, removing unused wildcards.
+
+  [ Nicholas D Steeves ]
+  * Change -dbg package's priority from extra to optional.
+
+  [ Mo Zhou ]
+  * Fix FTBFS on architecture=all due to FileNotFound. (Closes: #911937)
+  * Add isolation-machine restriction to autopkgtest because the tests
+    needs to interact with the kernel, i.e. loading kernel module.
+
+ -- Mo Zhou <cdluminate@gmail.com>  Sun, 28 Oct 2018 10:28:52 +0000
+
+zfs-linux (0.7.11-2) unstable; urgency=medium
+
+  * Support Devuan in dkms script. (Closes: #900089)
+    Thanks to Chris Dos <chris@chrisdos.com>
+  * Install init scripts to support non-systemd setups. (Closes: #826994)
+    Thanks to Chris Dos <chris@chrisdos.com>
+  * Override init.d-script-does-not-source-init-functions for
+    zfsutils-linux and zfs-zed.
+  * Patch upstream init scripts to make them work for Debian+OpenRC setup.
+  * Patch upstream init script to fix missing dependency on local_fs.
+
+ -- Mo Zhou <cdluminate@gmail.com>  Fri, 26 Oct 2018 09:32:06 +0000
+
+zfs-linux (0.7.11-1) unstable; urgency=medium
+
+  [ Aron Xu ]
+  * Add dpkg-dev to Depends of zfs-dkms (Closes: #900714)
+
+  [ Nicolas Braud-Santoni ]
+  * Use canonical HTTPS format URL for Vcs-Git (Closes: #895873)
+
+  [ Mo Zhou ]
+  * New upstream version 0.7.11 (Closes: #908290)
+  * Bump linux_compat to 4.18 .
+  * Replace get_next.sh with one-liner awk script in rules.
+  * Append myself to Uploaders and refresh auto-generated control.
+  * Use HTTPS format URI in watch file.
+  * Recommends linux-libc-dev (<< LINUX_NEXT~) instead of (<< LINUX_NEXT).
+
+ -- Mo Zhou <cdluminate@gmail.com>  Wed, 19 Sep 2018 08:45:18 +0000
+
+zfs-linux (0.7.9-3) unstable; urgency=medium
+
+  [ Antonio Russo ]
+  * Expand zfs-test and add Breaks/Conflicts (Closes: #899047)
+
+  [ Aron Xu ]
+  * d/control: migrate to alioth-lists (Closes: #899756)
+
+ -- Aron Xu <aron@debian.org>  Mon, 28 May 2018 18:22:02 +0800
+
+zfs-linux (0.7.9-2) unstable; urgency=medium
+
+  [ Aron Xu ]
+  * Move more zfs test tools to zfs-test package (Closes: #868653)
+  * New upstream version 0.7.9
+  * d/rules: add --enable-systemd
+  * Fix lintian obsolete-relation-form-in-source
+  * Bump supported linux version to 4.16
+
+  [ Antonio Russo ]
+  * Install enum-extract.pl with dkms
+  * Handle /proc/kallsym obfuscation (Closes: #891936)
+
+ -- Aron Xu <aron@debian.org>  Thu, 17 May 2018 23:47:29 +0800
+
+zfs-linux (0.7.6-1) unstable; urgency=medium
+
+  [ Lev Lamberov ]
+  * [INTL:ru] Updated Russian translation of debconf (Closes: #885990)
+
+  [ Aron Xu]
+  * New upstream release (Closes: #889795, #890576)
+  * 0001-Fix-bug-in-distclean-which-removes-needed-files.patch:
+    removed, applied upstream
+  * Update VCS-* URL to salsa.debian.org
+  * Apply wrap-and-sort
+  * Recommends: linux-libc-dev (< ${LINUX_NEXT}):
+    Tries to prevent unexpected upgrades of kernel that is not known to
+    be supported by the packaged version of ZFS/SPL. (Closes: #849420)
+
+ -- Aron Xu <aron@debian.org>  Mon, 26 Feb 2018 16:32:29 +0800
+
+zfs-linux (0.7.5-1) unstable; urgency=medium
+
+  [ Aron Xu ]
+  * New upstream version 0.7.5 (Closes: #884812)
+
+  [ Antonio Russo ]
+  * Add version dependency on zfsutils-linux package (Closes: #880889)
+
+ -- Aron Xu <aron@debian.org>  Fri, 19 Jan 2018 15:39:23 +0800
+
+zfs-linux (0.7.4-1) unstable; urgency=medium
+
+  * New upstream version 0.7.4 (Closes: #884287, #883832)
+  * Require debhelper >= 10.2
+  * cherry-pick: fix distclean which removes needed files (Closes: #884706)
+  * Refresh patches
+  * Update stdver to 4.1.2, no change required
+  * Install zfs-import.target
+
+ -- Aron Xu <aron@debian.org>  Mon, 18 Dec 2017 22:48:59 +0800
+
+zfs-linux (0.7.3-3) unstable; urgency=medium
+
+  [ Antonio Russo ]
+  * Add maximum version dependency on spl-dkms (Closes: #883008)
+
+ -- Aron Xu <aron@debian.org>  Thu, 30 Nov 2017 00:34:30 +0800
+
+zfs-linux (0.7.3-2) unstable; urgency=medium
+
+  [ Fabian Grünbichler ]
+  * d/rules: remove obsolete calls to dpkg-architecture (Closes: #882209)
+  * zfs-test: add proper Breaks+Replaces (Closes: #880902)
+  * build: add implicit version to dh_makeshlibs (Closes: #880709)
+
+  [ Aron Xu ]
+  * Depend on matching version of spl-dkms (Closes: ##881013)
+
+ -- Aron Xu <aron@debian.org>  Tue, 28 Nov 2017 16:16:34 +0800
+
+zfs-linux (0.7.3-1) unstable; urgency=medium
+
+  [ Antonio Russo ]
+  * Refresh manual builds DKMS prevention patch
+
+  [ Fabian Grünbichler ]
+  * zfs-test package
+  * add files to debian/not-installed
+  * dh_install: switch to --fail-missing
+  * add new files from 0.7 to install
+  * dkms: build icp module as well
+
+  [ Antonio Russo ]
+  * dracut: make module-setup.sh shebang explicit
+  * add man page reference to systemd units
+  * Fix install path of zpool.d scripts
+  * Incorporate DebianPT.org Portuguese translation
+  * Fix typo in debconf templates
+  * Drop dependency on dh-systemd
+
+  [ Aron Xu ]
+  * Drop merged patches, update remainders
+  * Update std-ver to 4.1.1
+  * New upstream version 0.7.3
+  * Update debconf pot file
+  * Update control.in for dh-systemd deprecation
+  * Add lintian override for zfs-test
+
+  [ Colin King ]
+  * Improve cloning performance for large numbers of clones (LP: #1567557)
+    Bump zcmd buffer from 16K to 256K.
+
+ -- Aron Xu <aron@debian.org>  Tue, 31 Oct 2017 18:52:01 +0800
+
+zfs-linux (0.6.5.11-1) unstable; urgency=medium
+
+  [ Aron Xu ]
+  * Imported Upstream version 0.6.5.11
+
+  [ Fabian Grünbichler ]
+  * fix rm path in zfs-share.service
+
+ -- Aron Xu <aron@debian.org>  Fri, 14 Jul 2017 16:33:23 +0800
+
+zfs-linux (0.6.5.10-1) unstable; urgency=medium
+
+  * Add kernel version to depmod cmd (Closes: #860958)
+  * New upstream version 0.6.5.10
+
+ -- Aron Xu <aron@debian.org>  Wed, 05 Jul 2017 18:11:39 +0800
+
+zfs-linux (0.6.5.9-5) unstable; urgency=medium
+
+  * Add zfs initramfs conf for root pool setup
+    (Closes: #848157, LP: #1673197)
+
+ -- Aron Xu <aron@debian.org>  Sun, 19 Mar 2017 18:14:57 +0800
+
+zfs-linux (0.6.5.9-4) unstable; urgency=medium
+
+  * autopkgtest: load zfs module before running tests
+
+ -- Aron Xu <aron@debian.org>  Tue, 14 Mar 2017 11:38:08 +0800
+
+zfs-linux (0.6.5.9-3) unstable; urgency=medium
+
+  [ Petter Reinholdtsen ]
+  * Updated German debconf translation by Helge Kreutzmann. (Closes: #857528)
+  * Updated metadata on a few patches.
+
+  [ Aron Xu ]
+  * Cherry-pick upstream fix for merged /usr/lib and /lib
+  * Manually maintain adt test Depends
+
+ -- Aron Xu <aron@debian.org>  Mon, 13 Mar 2017 12:23:32 +0800
+
+zfs-linux (0.6.5.9-2) unstable; urgency=medium
+
+  [ Fabian Grünbichler ]
+  * fix zed-service-bindir patch
+
+ -- Aron Xu <aron@debian.org>  Tue, 07 Feb 2017 17:22:02 +0800
+
+zfs-linux (0.6.5.9-1) unstable; urgency=medium
+
+  [ Aron Xu ]
+  * Imported Upstream version 0.6.5.9 (Closes: #851513)
+
+  [ Lukas Wunner ]
+  * Cherry picks for root zpool with dracut (Closes: #849969)
+  * Fix installation path of systemd files
+  * Fix build breakage caused by nonstandard umask
+
+  [ Fabian Grünbichler ]
+  * fix python script install path (Closes: #842237)
+
+ -- Aron Xu <aron@debian.org>  Mon, 06 Feb 2017 15:57:50 +0800
+
+zfs-linux (0.6.5.8-3) unstable; urgency=medium
+
+  * Fix the path on the zfs-zed unit file (Closes: #849813)
+
+ -- Carlos Alberto Lopez Perez <clopez@igalia.com>  Thu, 05 Jan 2017 16:23:16 +0100
+
+zfs-linux (0.6.5.8-2) unstable; urgency=medium
+
+  [ Richard Laager ]
+  * Remove .py extension from utilities in /usr/sbin as per policy
+    10.4 Scripts (LP: #1628279)
+
+  [ Colin Ian King ]
+  * Use python3 for arcstat.py, arc_summary.py & dbufstat.py (LP: #1627909)
+
+  [ Richard Laager ]
+  * Set PATH in cron.d job to fix monthly scrubs. (LP: #1548009)
+
+  [ Aron Xu ]
+  * Install zed into /usr/sbin
+  * Rename zfsutils path to follow the package name
+  * Add missing part in python3 move
+  * Install zed to /usr/sbin
+
+  [ Petter Reinholdtsen ]
+  * Updated Italian debconf translation by Beatrice Torracca.
+    (Closes: #846928)
+  * Added patch 1003-linux-4.9-compat.patch from upstream to build with
+    Linux kernel 4.9. (Closes: #847018)
+
+ -- Aron Xu <aron@debian.org>  Sat, 17 Dec 2016 17:42:21 +0800
+
+zfs-linux (0.6.5.8-1) unstable; urgency=medium
+
+  [ Carlos Alberto Lopez Perez ]
+  * Reflow changelog from last upload to avoid lintian warning.
+
+  [ Aron Xu ]
+  * Imported Upstream version 0.6.5.8 (Closes: #838192)
+  * Conflicts with zutils (Closes: #836853)
+
+  [ Zhou Mo ]
+  * Patch: remove merged patches.
+  * Upstream renamed zed.service to zfs-zed.service .
+  * Avoid installing zfs-zed.service twice.
+
+ -- Aron Xu <aron@debian.org>  Tue, 20 Sep 2016 15:20:21 +0800
+
+zfs-linux (0.6.5.7-2) unstable; urgency=medium
+
+  [ Aron Xu ]
+  * Add busybox to zfs-initramfs list of dependencies. (Closes: #824976)
+
+  [ Petter Reinholdtsen ]
+  * Updated Danish debconf translation by Joe Hansen. (Closes: #830652)
+  * Added Dutch (nl) debconf translation by Frans Spiesschaert.
+    (Closes: #832280)
+  * Norwegian Bokmål (nb) debconf template translation by Petter Reinholdtsen.
+
+  [ Eric Desrochers ]
+  * Change utilities path (bindir) to /usr/sbin. (Closes: #832938)
+
+  [ Carlos Alberto Lopez Perez]
+  * Add tunable to ignore hole_birth, and enable it by default.
+    (Closes: #830824)
+
+ -- Carlos Alberto Lopez Perez <clopez@igalia.com>  Tue, 16 Aug 2016 17:43:48 +0200
+
+zfs-linux (0.6.5.7-1) unstable; urgency=medium
+
+  [ YunQiang Su ]
+  * 1002-fix-mips-build.patch: fix builds on mips* archs
+
+  [ Aron Xu ]
+  * New upstream release.
+  * 1001-Fix-aarch64-compilation.patch: dropped, not needed anymore
+  * Merge patches from Ubuntu:
+    - 0002-Check-for-META-and-DCH-consistency-in-autoconf.patch
+    - 0003-Add-libuutil-to-LIBADD-for-libzfs-and-libzfs_core.patch
+    - enable-zed.patch
+
+ -- Aron Xu <aron@debian.org>  Tue, 31 May 2016 14:10:49 +0800
+
+zfs-linux (0.6.5.6-2) unstable; urgency=medium
+
+  [ Aron Xu ]
+  * Adding smoke testing scripts from Ubuntu
+  * Fix binary module builds
+  * Add libblkid-dev, libattr1-dev to build-dep
+  * Re-sync source tree
+  * Add dh-python to b-d
+  * Remove .gitignore files and clean build tree
+  * Scrub all healthy pools monthly from Richard Laager
+
+  [ Petter Reinholdtsen ]
+  * Copied 1000-ppc64el-endian-support.patch from Ubuntu to fix endian
+    build problem on ppc64el
+  * Copied 1001-Fix-aarch64-compilation.patch from Ubuntu to fix build
+    problem on arm64.
+  * Copied 0001-Prevent-manual-builds-in-the-DKMS-source.patch from
+    Ubuntu to block manual building in the DKMS source tree.
+  * Updated Standards-Version from 3.9.7 to 3.9.8.
+  * Bring some files back to the upstream tarball content to get gbp
+    buildpackage working.
+
+ -- Petter Reinholdtsen <pere@debian.org>  Thu, 12 May 2016 12:19:55 +0200
+
+zfs-linux (0.6.5.6-1) unstable; urgency=medium
+
+  [ Aron Xu ]
+  * New upstream version 0.6.5.6.
+
+  [ Petter Reinholdtsen ]
+  * Generated new copyright.cme file based on version 0.6.5.6.
+  * Updated d/copyright file, add missing BSD licensed init.d scripts, and
+    new copyright holders in the new upstream version.
+  * Updated Standards-Version from 3.9.6 to 3.9.7.
+  * Added myself as uploader.
+  * Updated debconf po files based on newest pot file.
+  * Correct URL to git repo in d/control.
+
+ -- Petter Reinholdtsen <pere@debian.org>  Sat, 26 Mar 2016 07:08:11 +0000
+
+zfs-linux (0.6.5.5-1) unstable; urgency=medium
+
+  * Initial Release (Closes: #686447)
+
+ -- Aron Xu <aron@debian.org>  Sun, 20 Mar 2016 22:57:06 +0800
diff --git a/zfs/debian/compat b/zfs/debian/compat
new file mode 100644 (file)
index 0000000..ec63514
--- /dev/null
@@ -0,0 +1 @@
+9
diff --git a/zfs/debian/control b/zfs/debian/control
new file mode 100644 (file)
index 0000000..f33d562
--- /dev/null
@@ -0,0 +1,184 @@
+Source: zfs-linux
+Section: contrib/kernel
+Priority: optional
+Maintainer: Proxmox Support Team <support@proxmox.com>
+Build-Depends: autotools-dev,
+               debhelper (>= 10.2),
+               dh-autoreconf,
+               dh-python,
+               libattr1-dev,
+               libblkid-dev,
+               libselinux1-dev,
+               libtool,
+               lsb-release,
+               python3,
+               uuid-dev,
+               zlib1g-dev
+Standards-Version: 4.1.2
+Homepage: http://www.zfsonlinux.org/
+Vcs-Git: https://git.proxmox.com/git/zfsonlinux.git
+Vcs-Browser: https://git.proxmox.com/?p=zfsonlinux.git;a=summary
+
+Package: libnvpair1linux
+Section: contrib/libs
+Architecture: linux-any
+Depends: ${misc:Depends}, ${shlibs:Depends}
+Breaks: libnvpair1
+Replaces: libnvpair1
+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: libuutil1linux
+Section: contrib/libs
+Architecture: linux-any
+Depends: ${misc:Depends}, ${shlibs:Depends}
+Breaks: libuutil1
+Replaces: libuutil1
+Description: Solaris userland utility library for Linux
+ This library provides a variety of glue functions for ZFS on Linux:
+  * libspl: The Solaris Porting Layer userland 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, SMB, and iSCSI service integration for ZFS.
+
+Package: libzfslinux-dev
+Section: contrib/libdevel
+Architecture: linux-any
+Depends: libnvpair1linux (= ${binary:Version}),
+         libuutil1linux (= ${binary:Version}),
+         libzfs2linux (= ${binary:Version}),
+         libzpool2linux (= ${binary:Version}),
+         ${misc:Depends}
+Provides: libnvpair-dev, libuutil-dev
+Description: OpenZFS filesystem development files for Linux
+ Header files and static libraries for compiling software against
+ libraries of OpenZFS filesystem.
+ .
+ This package includes the development files of libnvpair1, libuutil1,
+ libzpool2 and libzfs2.
+
+Package: libzfs2linux
+Section: contrib/libs
+Architecture: linux-any
+Depends: ${misc:Depends}, ${shlibs:Depends}
+Breaks: libzfs2
+Replaces: libzfs2
+Description: OpenZFS filesystem library for Linux
+ The Z file system is a pooled filesystem designed for maximum data
+ integrity, supporting data snapshots, multiple copies, and data
+ checksums.
+ .
+ The OpenZFS library provides support for managing OpenZFS filesystems.
+
+Package: libzpool2linux
+Section: contrib/libs
+Architecture: linux-any
+Depends: ${misc:Depends}, ${shlibs:Depends}
+Breaks: libzpool2
+Replaces: libzpool2
+Description: OpenZFS pool library for Linux
+ The Z file system is a pooled filesystem designed for maximum data
+ integrity, supporting data snapshots, multiple copies, and data
+ checksums.
+ .
+ This zpool library provides support for managing zpools.
+
+Package: zfs-initramfs
+Architecture: all
+Depends: busybox-initramfs | busybox-static | busybox,
+         initramfs-tools,
+         zfsutils-linux (>= ${binary:Version}),
+         ${misc:Depends}
+Breaks: zfsutils-linux (<= 0.7.11-pve1~bpo1)
+Replaces: zfsutils-linux (<= 0.7.11-pve1~bpo1)
+Description: OpenZFS root filesystem capabilities for Linux - initramfs
+ The Z file system is a pooled filesystem designed for maximum data
+ integrity, supporting data snapshots, multiple copies, and data
+ checksums.
+ .
+ This package adds OpenZFS to the system initramfs with a hook
+ for the initramfs-tools infrastructure.
+
+Package: zfsutils-linux
+Section: contrib/admin
+Architecture: linux-any
+Depends: python3, ${misc:Depends}, ${python3:Depends}, ${shlibs:Depends}
+Recommends: lsb-base, zfs-zed
+Suggests: nfs-kernel-server,
+          samba-common-bin (>= 3.0.23),
+          zfs-initramfs
+Conflicts: zfs, zfs-fuse, insserv (<< 1.18)
+Provides: zfsutils
+Description: command-line tools to manage OpenZFS filesystems
+ The Z file system is a pooled filesystem designed for maximum data
+ integrity, supporting data snapshots, multiple copies, and data
+ checksums.
+ .
+ This package provides the zfs and zpool commands to create and administer
+ OpenZFS filesystems.
+
+Package: zfs-zed
+Section: contrib/admin
+Architecture: linux-any
+Depends: zfsutils-linux (>= ${binary:Version}),
+         ${misc:Depends},
+         ${shlibs:Depends}
+Description: OpenZFS Event Daemon
+ The Z file system is a pooled filesystem designed for maximum data
+ integrity, supporting data snapshots, multiple copies, and data
+ checksums.
+ .
+ This package provides the OpenZFS Event Daemon (zed).
+
+Package: zfs-test
+Section: contrib/admin
+Architecture: linux-any
+Depends: acl,
+         bc,
+         fio,
+         ksh,
+         lsscsi,
+         mdadm,
+         parted,
+         python,
+         sudo,
+         sysstat,
+         zfsutils-linux (>=${binary:Version}),
+         ${misc:Depends},
+         ${shlibs:Depends}
+Breaks: zfsutils-linux (<= 0.7.9-2)
+Replaces: zfsutils-linux (<= 0.7.9-2)
+Conflicts: zutils
+Description: OpenZFS test infrastructure an support scripts
+ The Z file system is a pooled filesystem designed for maximum data
+ integrity, supporting data snapshots, multiple copies, and data
+ checksums.
+ .
+ This package provides the OpenZFS test infrastructure for destructively
+ testing and validating a system using OpenZFS. It is entirely optional
+ and should only be installed and used in test environments.
+
+Package: zfs-dbg
+Section: contrib/debug
+Priority: optional
+Architecture: linux-any
+Depends: libnvpair1linux (= ${binary:Version}),
+         libuutil1linux (= ${binary:Version}),
+         libzfs2linux (= ${binary:Version}),
+         libzpool2linux (= ${binary:Version}),
+         zfs-zed (= ${binary:Version}),
+         zfsutils-linux (= ${binary:Version}),
+         ${misc:Depends}
+Description: Debugging symbols for OpenZFS userland libraries and tools
+ The Z file system is a pooled filesystem designed for maximum data
+ integrity, supporting data snapshots, multiple copies, and data
+ checksums.
+ .
+ This package contains the debugging symbols for libzpool2linux, libzfs2linux,
+ libnvpair1linux, libuutil1linux, zfs-zed and zfsutils-linux.
diff --git a/zfs/debian/copyright b/zfs/debian/copyright
new file mode 100644 (file)
index 0000000..d306022
--- /dev/null
@@ -0,0 +1,1579 @@
+Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
+Upstream-Name: Native ZFS 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.
+License: CDDL-1.0
+
+Files: *
+Copyright: 2000, 2002, 2004-2007, 2009, 2010, Oracle and/or its affiliates.
+License: CDDL-1.0
+
+Files: cmd/*
+Copyright: 2011, 2013, Nexenta Systems, Inc.
+  2007, 2009, Sun Microsystems, Inc.
+License: CDDL-1.0
+
+Files: cmd/arc_summary/*
+Copyright:
+  2010, 2011, Jason J. Hellenthal <jhell@DataIX.net>
+  2010, Martin Matuska <mm@FreeBSD.org>
+  2008, Ben Rockwood <benr@cuddletech.com>
+License: BSD-2-clause
+
+Files: cmd/arcstat/*
+Source: http://github.com/mharsch/arcstat
+Copyright:
+ 2007, Oracle and/or its affiliates.
+ 2010-2015, Mike Harsch
+License: CDDL-1.0
+
+Files: cmd/dbufstat/*
+Copyright: 2013, Lawrence Livermore National Security, LLC
+License: CDDL-1.0
+
+Files: cmd/mount_zfs/*
+Copyright: 2011, Lawrence Livermore National Security, LLC
+  2005, 2010, Oracle and/or its affiliates.
+License: CDDL-1.0
+
+Files: cmd/vdev_id/*
+Copyright: 2011, 2013, Nexenta Systems, Inc.
+  2007, 2009, Sun Microsystems, Inc.
+License: CDDL-1.0
+
+Files: cmd/zdb/*
+Copyright: 2015, Intel Corporation
+  2011, 2014, Delphix.
+  2005, 2010, Oracle and/or its affiliates.
+License: CDDL-1.0
+
+Files: cmd/zdb/zdb_il.c
+Copyright: 2013, 2014, Delphix.
+  2012, Cyril Plisko.
+  2009, Sun Microsystems, Inc.
+License: CDDL-1.0
+
+Files: cmd/zed/*
+Copyright: 2013-2014, Lawrence Livermore National Security, LLC
+License: CDDL-1.0
+
+Files: cmd/zfs/zfs_iter.c
+Copyright: 2013, Nexenta Systems, Inc.
+  2013, Delphix.
+  2012, Pawel Jakub Dawidek <pawel@dawidek.net>
+  2005, 2010, Oracle and/or its affiliates.
+License: CDDL-1.0
+
+Files: cmd/zfs/zfs_main.c
+Copyright: 2013, Steven Hartland.
+  2013, Nexenta Systems, Inc.
+  2012, Joyent, Inc.
+  2011, 2014, Delphix.
+  2005, 2010, Oracle and/or its affiliates.
+License: CDDL-1.0
+
+Files: cmd/zfs/zfs_util.h
+Copyright: 2000, 2002, 2004-2007, 2009, 2010, Oracle and/or its affiliates.
+License: CDDL-1.0
+
+Files: cmd/zhack/*
+Copyright: 2013, Steven Hartland.
+  2011, 2012, 2014, Delphix.
+License: CDDL-1.0
+
+Files: cmd/zinject/*
+Copyright: 2011-2015, Delphix.
+  2000, 2005-2010, Oracle and/or its affiliates.
+License: CDDL-1.0
+
+Files: cmd/zinject/zinject.h
+Copyright: 2000, 2002, 2004-2007, 2009, 2010, Oracle and/or its affiliates.
+License: CDDL-1.0
+
+Files: cmd/zpios/*
+Copyright: 2008-2010, Lawrence Livermore National Security, LLC
+  2004, Cluster File Systems, Inc
+License: GPL-2+
+
+Files: cmd/zpool/*
+Copyright: 2005-2010, Sun Microsystems, Inc.
+License: CDDL-1.0
+
+Files: cmd/zpool/zpool_main.c
+Copyright: 2013, Prasad Joshi (sTec).
+  2012, Frederik Wessels.
+  2012, Cyril Plisko.
+  2011, Nexenta Systems, Inc.
+  2011, 2014, Delphix.
+  2005, 2010, Oracle and/or its affiliates.
+License: CDDL-1.0
+
+Files: cmd/zpool/zpool_util.h
+Copyright: 2000, 2002, 2004-2007, 2009, 2010, Oracle and/or its affiliates.
+License: CDDL-1.0
+
+Files: cmd/zpool/zpool_vdev.c
+Copyright: 2011-2015, Delphix.
+  2000, 2005-2010, Oracle and/or its affiliates.
+License: CDDL-1.0
+
+Files: cmd/zstreamdump/*
+Copyright: 2013, Delphix.
+  2012, Martin Matuska <martin@matuska.org>
+  2010, Sun Microsystems, Inc.
+License: CDDL-1.0
+
+Files: cmd/ztest/*
+Copyright: 2013, Steven Hartland.
+  2011, Nexenta Systems, Inc.
+  2011, 2015, Delphix.
+  2005, 2010, Oracle and/or its affiliates.
+License: CDDL-1.0
+
+Files: cmd/zvol_id/*
+Copyright: 2011, Fajar A. Nugraha.
+License: CDDL-1.0
+
+Files: config/*
+Copyright: 1996-2012, Free Software Foundation, Inc.
+License: GPL-2+ with autoconf exception
+
+Files: config/ltoptions.m4
+       config/lt~obsolete.m4
+       config/ltversion.m4
+       config/libtool.m4
+       config/ltsugar.m4
+Copyright: 1996-2012, Free Software Foundation, Inc.
+License: PERMISSIVE
+ This file is free software; the Free Software Foundation gives
+ unlimited permission to copy and/or distribute it, with or without
+ modifications, as long as this notice is preserved.
+
+Files: config/install-sh
+Copyright: 1994, X Consortium
+License: Expat
+
+Files: configure
+Copyright: 1992-1996, 1998-2010, Free Software
+License: PERMISSIVE2
+ This configure script is free software; the Free Software Foundation
+ gives unlimited permission to copy, distribute and modify it.
+
+Files: contrib/*
+Copyright: 2010, 2013, Aneurin Price <aneurin.price@gmail.com>
+License: Expat
+
+Files: debian/*
+Copyright:
+ 2013-2016, Aron Xu <aron@debian.org>
+ 2016, Petter Reinholdtsen <pere@hungry.com>
+ 2013, Carlos Alberto Lopez Perez <clopez@igalia.com>
+ 2013, Turbo Fredriksson <turbo@bayour.com>
+ 2012-2013, Richard Laager <rlaager@wiktel.com>
+ 2011-2013, Darik Horn <dajhorn@vanadac.com>
+License: GPL-2+
+
+Files: debian/po/*
+Copyright:
+ 2013, The Debian po file translators.
+License: CDDL-1.0
+
+Files: etc/init.d/zfs-*.in
+Copyright:
+  2016, Carlo Landmeter <clandmeter@gmail.com>
+  2015, James Lee <jlee@thestaticvoid.com>
+  2015, Richard Yao <ryao@gentoo.org>
+  2015, SenH <sen@senhaerens.be>
+  2015, Turbo Fredriksson <turbo@bayour.com>
+  2015, yuina822 <ayuichi@club.kyutech.ac.jp>
+  2011, Darik Horn.
+License: BSD-2-clause
+
+Files: include/*
+Copyright: 2000, 2002, 2004, 2005, 2007, 2009, 2010, Oracle and/or its affiliates.
+License: CDDL-1.0
+
+Files: include/libuutil_common.h
+  include/zfs_fletcher.h
+  include/zfs_prop.h
+Copyright: 2005-2010, Sun Microsystems, Inc.
+License: CDDL-1.0
+
+Files: include/libuutil_impl.h
+Copyright: 1990-2010, Sun Microsystems, Inc.
+License: CDDL-1.0
+
+Files: include/libzfs.h
+Copyright: 2013, Steven Hartland.
+  2013, Nexenta Systems, Inc.
+  2013, Delphix.
+  2012, Joyent, Inc.
+  2005, 2010, Oracle and/or its affiliates.
+License: CDDL-1.0
+
+Files: include/libzfs_core.h
+Copyright: 2011-2014, Delphix.
+License: CDDL-1.0
+
+Files: include/libzfs_impl.h
+  include/zfs_comutil.h
+Copyright: 2011-2015, Delphix.
+  2000, 2005-2010, Oracle and/or its affiliates.
+License: CDDL-1.0
+
+Files: include/linux/*
+Copyright: 2008-2011, Lawrence Livermore National Security, LLC
+License: CDDL-1.0
+
+Files: include/linux/kmap_compat.h
+Copyright: 2015, Chunwei Chen.
+License: CDDL-1.0
+
+Files: include/linux/vfs_compat.h
+Copyright: 2015, Jörg Thalheim
+  2011, Lawrence Livermore National Security, LLC
+License: CDDL-1.0
+
+Files: include/sys/arc.h
+Copyright: 2013, Saso Kiselkov.
+  2011, 2012, 2014, Delphix.
+  2005, 2010, Oracle and/or its affiliates.
+License: CDDL-1.0
+
+Files: include/sys/arc_impl.h
+Copyright: 2013, Saso Kiselkov.
+  2013, Nexenta Systems, Inc.
+  2013, Delphix.
+  2005, 2010, Oracle and/or its affiliates.
+License: CDDL-1.0
+
+Files: include/sys/avl.h
+  include/sys/dmu_tx.h
+  include/sys/metaslab_impl.h
+  include/sys/range_tree.h
+  include/sys/rrwlock.h
+  include/sys/space_map.h
+  include/sys/space_reftree.h
+  include/sys/txg.h
+  include/sys/txg_impl.h
+  include/sys/uberblock.h
+  include/sys/zio_impl.h
+Copyright: 2011-2014, Delphix.
+  2007, 2009, 2010, Sun Microsystems, Inc.
+License: CDDL-1.0
+
+Files: include/sys/avl_impl.h
+  include/sys/nvpair_impl.h
+  include/sys/sdt.h
+  include/sys/uuid.h
+  include/sys/vdev_file.h
+Copyright: 1990-2010, Sun Microsystems, Inc.
+License: CDDL-1.0
+
+Files: include/sys/blkptr.h
+  include/sys/dsl_bookmark.h
+  include/sys/multilist.h
+Copyright: 2013-2014, Delphix.
+License: CDDL-1.0
+
+Files: include/sys/bpobj.h
+  include/sys/dmu_traverse.h
+  include/sys/dsl_deleg.h
+  include/sys/dsl_pool.h
+  include/sys/dsl_prop.h
+  include/sys/dsl_scan.h
+  include/sys/dsl_synctask.h
+  include/sys/metaslab.h
+  include/sys/nvpair.h
+  include/sys/vdev.h
+  include/sys/vdev_impl.h
+  include/sys/zap.h
+  include/sys/zfs_debug.h
+  include/sys/zfs_ioctl.h
+  include/sys/zfs_znode.h
+Copyright: 2011-2015, Delphix.
+  2000, 2005-2010, Oracle and/or its affiliates.
+License: CDDL-1.0
+
+Files: include/sys/bptree.h
+  include/sys/zfeature.h
+Copyright: 2011-2014, Delphix.
+License: CDDL-1.0
+
+Files: include/sys/dbuf.h
+Copyright: 2014, Spectra Logic Corporation
+  2013, Saso Kiselkov.
+  2012, 2015, Delphix.
+  2005, 2010, Oracle and/or its affiliates.
+License: CDDL-1.0
+
+Files: include/sys/dmu.h
+Copyright: 2014, Spectra Logic Corporation
+  2014, HybridCluster.
+  2012, Joyent, Inc.
+  2011, Nexenta Systems, Inc.
+  2011, 2014, Delphix.
+  2010, Robert Milkowski
+  2005, 2010, Oracle and/or its affiliates.
+License: CDDL-1.0
+
+Files: include/sys/dmu_impl.h
+Copyright: 2013, Delphix.
+  2012, Joyent, Inc.
+  2010, Sun Microsystems, Inc.
+License: CDDL-1.0
+
+Files: include/sys/dmu_objset.h
+Copyright: 2014, Spectra Logic Corporation
+  2013, Saso Kiselkov.
+  2012, 2014, Delphix.
+  2010, Robert Milkowski
+  2005, 2010, Oracle and/or its affiliates.
+License: CDDL-1.0
+
+Files: include/sys/dmu_send.h
+Copyright: 2013, Joyent, Inc.
+  2012, 2014, Delphix.
+  2011, Nexenta Systems, Inc.
+  2005, 2010, Oracle and/or its affiliates.
+License: CDDL-1.0
+
+Files: include/sys/dmu_zfetch.h
+  include/sys/spa_boot.h
+  include/sys/u8_textprep.h
+  include/sys/unique.h
+  include/sys/zfs_dir.h
+  include/sys/zfs_fuid.h
+  include/sys/zfs_rlock.h
+  include/sys/zfs_sa.h
+  include/sys/zio_compress.h
+Copyright: 2005-2010, Sun Microsystems, Inc.
+License: CDDL-1.0
+
+Files: include/sys/dnode.h
+  include/sys/sa_impl.h
+Copyright: 2014, Spectra Logic Corporation
+  2011-2015, Delphix.
+  2005, 2010, Oracle and/or its affiliates.
+License: CDDL-1.0
+
+Files: include/sys/dsl_dataset.h
+Copyright: 2014, Spectra Logic Corporation
+  2013, Steven Hartland.
+  2013, Joyent, Inc.
+  2013, Delphix.
+  2005, 2010, Oracle and/or its affiliates.
+License: CDDL-1.0
+
+Files: include/sys/dsl_destroy.h
+Copyright: 2013, Delphix.
+  2012, Joyent, Inc.
+  2005, 2010, Oracle and/or its affiliates.
+License: CDDL-1.0
+
+Files: include/sys/dsl_dir.h
+Copyright: 2014, Spectra Logic Corporation
+  2014, Joyent, Inc.
+  2013, Delphix.
+  2005, 2010, Oracle and/or its affiliates.
+License: CDDL-1.0
+
+Files: include/sys/dsl_userhold.h
+Copyright: 2013, Steven Hartland.
+  2012, 2013, Joyent, Inc.
+  2012, 2014, Delphix.
+  2005, 2010, Oracle and/or its affiliates.
+License: CDDL-1.0
+
+Files: include/sys/fm/fs/*
+Copyright: 2005-2010, Sun Microsystems, Inc.
+License: CDDL-1.0
+
+Files: include/sys/fs/*
+Copyright: 2013, Joyent, Inc.
+  2011, Nexenta Systems, Inc.
+  2011, 2014, Delphix.
+  2010, Robert Milkowski
+  2005, 2010, Oracle and/or its affiliates.
+License: CDDL-1.0
+
+Files: include/sys/mntent.h
+Copyright: 2008, 2009, Sun Microsystems, Inc.
+  1984, 1986-1989, AT&T
+License: CDDL-1.0
+
+Files: include/sys/spa.h
+Copyright: 2014, Spectra Logic Corporation
+  2011, Nexenta Systems, Inc.
+  2011, 2014, 2015, Delphix.
+  2005, 2010, Oracle and/or its affiliates.
+License: CDDL-1.0
+
+Files: include/sys/spa_impl.h
+Copyright: 2016, Actifio, Inc.
+  2014, Spectra Logic Corporation
+  2011, Nexenta Systems, Inc.
+  2011, 2015, Delphix.
+  2005, 2010, Oracle and/or its affiliates.
+License: CDDL-1.0
+
+Files: include/sys/u8_textprep_data.h
+Copyright: 2007, Sun Microsystems, Inc.
+  1991-2006, Unicode, Inc. Distributed under
+License: Expat~Unicode
+ Permission is hereby granted, free of charge, to any person obtaining
+ a copy of the Unicode data files and any associated documentation (the
+ "Data Files") or Unicode software and any associated documentation (the
+ "Software") to deal in the Data Files or Software without restriction,
+ including without limitation the rights to use, copy, modify, merge,
+ publish, distribute, and/or sell copies of the Data Files or Software, and
+ to permit persons to whom the Data Files or Software are furnished to do so,
+ provided that (a) the above copyright notice(s) and this permission notice
+ appear with all copies of the Data Files or Software, (b) both the above
+ copyright notice(s) and this permission notice appear in associated
+ documentation, and (c) there is clear notice in each modified Data File or
+ in the Software as well as in the documentation associated with the Data
+ File(s) or Software that the data or software has been modified.
+ .
+ THE DATA FILES AND SOFTWARE ARE 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 OF
+ THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR HOLDERS
+ INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL INDIRECT OR
+ CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
+ DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+ TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE
+ OF THE DATA FILES OR SOFTWARE.
+ .
+ Except as contained in this notice, the name of a copyright holder shall not
+ be used in advertising or otherwise to promote the sale, use or other
+ dealings in these Data Files or Software without prior written authorization
+ of the copyright holder.
+ .
+ Unicode and the Unicode logo are trademarks of Unicode, Inc., and may be
+ registered in some jurisdictions. All other trademarks and registered
+ trademarks mentioned herein are the property of their respective owners.
+
+Files: include/sys/uio_impl.h
+Copyright: 2007, 2009, 2010, Sun Microsystems, Inc.
+  1983-1989, AT&T
+  1982, 1986, 1988, The Regents of the University of California
+License: CDDL-1.0
+
+Files: include/sys/vdev_disk.h
+  include/sys/zpl.h
+Copyright: 2008-2011, Lawrence Livermore National Security, LLC
+License: CDDL-1.0
+
+Files: include/sys/xvattr.h
+Copyright: 1988, 2010, Oracle and/or its affiliates.
+  1983-1989, AT&T
+  1982, 1986, 1988, The Regents of the University of California
+License: CDDL-1.0
+
+Files: include/sys/zap_impl.h
+  include/sys/zap_leaf.h
+Copyright: 2014, Spectra Logic Corporation
+  2005, 2010, Oracle and/or its affiliates.
+License: CDDL-1.0
+
+Files: include/sys/zfs_context.h
+Copyright: 2012, Joyent, Inc.
+  2012, 2014, Delphix.
+  2011, Nexenta Systems, Inc.
+  2009, Sun Microsystems, Inc.
+License: CDDL-1.0
+
+Files: include/sys/zfs_ctldir.h
+Copyright: 2011, Lawrence Livermore National Security, LLC
+  2005, 2010, Oracle and/or its affiliates.
+License: CDDL-1.0
+
+Files: include/sys/zil.h
+  include/sys/zil_impl.h
+Copyright: 2011-2014, Delphix.
+  2010, Robert Milkowski
+  2005, 2010, Oracle and/or its affiliates.
+License: CDDL-1.0
+
+Files: include/sys/zio.h
+Copyright: 2013, Saso Kiselkov.
+  2012, 2014, Delphix.
+  2011, Nexenta Systems, Inc.
+  2005, 2010, Oracle and/or its affiliates.
+License: CDDL-1.0
+
+Files: include/sys/zvol.h
+Copyright: 2016, Actifio, Inc.
+  2005, 2006, 2010, Oracle and/or its affiliates.
+License: CDDL-1.0
+
+Files: include/zfeature_common.h
+Copyright: 2013, Saso Kiselkov.
+  2013, Delphix.
+License: CDDL-1.0
+
+Files: include/zfs_deleg.h
+Copyright: 2012-2015, Delphix.
+  2010, 2011, Nexenta Systems, Inc.
+  2005, 2007, 2010, Oracle and/or its affiliates.
+License: CDDL-1.0
+
+Files: include/zfs_namecheck.h
+Copyright: 2011-2014, Delphix.
+  2007, 2009, 2010, Sun Microsystems, Inc.
+License: CDDL-1.0
+
+Files: include/zpios-ctl.h
+  include/zpios-internal.h
+Copyright: 2008-2010, Lawrence Livermore National Security, LLC
+  2004, Cluster File Systems, Inc
+License: GPL-2+
+
+Files: lib/*
+Copyright: 2000, 2002, 2004, 2005, 2007, 2009, 2010, Oracle and/or its affiliates.
+License: CDDL-1.0
+
+Files: lib/libnvpair/*
+Copyright: 2011-2015, Delphix.
+  2000, 2005-2010, Oracle and/or its affiliates.
+License: CDDL-1.0
+
+Files: lib/libnvpair/nvpair_alloc_system.c
+Copyright: 1990-2010, Sun Microsystems, Inc.
+License: CDDL-1.0
+
+Files: lib/libshare/*
+Copyright: 2011, Gunnar Beutner
+  2002, 2010, Oracle and/or its affiliates.
+License: CDDL-1.0
+
+Files: lib/libshare/nfs.c
+Copyright: 2012, Cyril Plisko.
+  2011, Gunnar Beutner
+  2002, 2010, Oracle and/or its affiliates.
+License: CDDL-1.0
+
+Files: lib/libshare/smb.c
+Copyright: 2011, 2012, Turbo Fredriksson <turbo@bayour.com>, based on nfs.c
+  2002, 2010, Oracle and/or its affiliates.
+License: CDDL-1.0
+
+Files: lib/libshare/smb.h
+Copyright: 2011, Turbo Fredriksson <turbo@bayour.com>
+License: CDDL-1.0
+
+Files: lib/libspl/*
+Copyright: 2005-2010, Sun Microsystems, Inc.
+License: CDDL-1.0
+
+Files: lib/libspl/asm-generic/*
+Copyright: 1990-2010, Sun Microsystems, Inc.
+License: CDDL-1.0
+
+Files: lib/libspl/getexecname.c
+Copyright: 1990-2010, Sun Microsystems, Inc.
+License: CDDL-1.0
+
+Files: lib/libspl/getmntany.c
+Copyright: 2006, Ricardo Correia.
+  2005, Sun Microsystems, Inc.
+  1988, AT&T
+License: CDDL-1.0
+
+Files: lib/libspl/include/*
+Copyright: 1990-2010, Sun Microsystems, Inc.
+License: CDDL-1.0
+
+Files: lib/libspl/include/atomic.h
+  lib/libspl/include/libshare.h
+  lib/libspl/include/statcommon.h
+  lib/libspl/include/zone.h
+Copyright: 2005-2010, Sun Microsystems, Inc.
+License: CDDL-1.0
+
+Files: lib/libspl/include/note.h
+Copyright: 1994, 2008, Sun Microsystems, Inc
+License: CDDL-1.0
+
+Files: lib/libspl/include/rpc/*
+Copyright: 2005-2010, Sun Microsystems, Inc.
+License: CDDL-1.0
+
+Files: lib/libspl/include/rpc/xdr.h
+Copyright: 2005, Sun Microsystems, Inc.
+  1983-1989, AT&T
+License: CDDL-1.0
+
+Files: lib/libspl/include/synch.h
+Copyright: 2014, Zettabyte Software, LLC.
+  2008, Sun Microsystems, Inc.
+License: CDDL-1.0
+
+Files: lib/libspl/include/sys/acl.h
+  lib/libspl/include/sys/acl_impl.h
+  lib/libspl/include/sys/dkio.h
+  lib/libspl/include/sys/isa_defs.h
+  lib/libspl/include/sys/kmem.h
+  lib/libspl/include/sys/kstat.h
+  lib/libspl/include/sys/list.h
+  lib/libspl/include/sys/stack.h
+  lib/libspl/include/sys/stropts.h
+  lib/libspl/include/sys/types32.h
+  lib/libspl/include/sys/tzfile.h
+Copyright: 2005-2010, Sun Microsystems, Inc.
+License: CDDL-1.0
+
+Files: lib/libspl/include/sys/byteorder.h
+Copyright: 2007, 2009, 2010, Sun Microsystems, Inc.
+  1983-1989, AT&T
+  1982, 1986, 1988, The Regents of the University of California
+License: CDDL-1.0
+
+Files: lib/libspl/include/sys/dktp/*
+Copyright: 2008, 2009, Sun Microsystems, Inc.
+  1984, 1986-1989, AT&T
+License: CDDL-1.0
+
+Files: lib/libspl/include/sys/mnttab.h
+Copyright: 2006, Ricardo Correia
+  2004, Sun Microsystems, Inc.
+  1984, 1986-1989, AT&T
+License: CDDL-1.0
+
+Files: lib/libspl/include/sys/note.h
+  lib/libspl/include/sys/sunddi.h
+Copyright: 1994, 2008, Sun Microsystems, Inc
+License: CDDL-1.0
+
+Files: lib/libspl/include/sys/stat.h
+Copyright: 2010, Oracle and/or its affiliates.
+License: CDDL-1.0
+
+Files: lib/libspl/include/sys/uio.h
+Copyright: 2005, Sun Microsystems, Inc.
+  1984, 1986-1989, AT&T
+  1982, 1986, 1988, The Regents of the University of California
+License: CDDL-1.0
+
+Files: lib/libspl/include/sys/vtoc.h
+Copyright: 2008, 2009, Sun Microsystems, Inc.
+  1984, 1986-1989, AT&T
+License: CDDL-1.0
+
+Files: lib/libspl/mkdirp.c
+Copyright: 2008, 2009, Sun Microsystems, Inc.
+  1984, 1986-1989, AT&T
+License: CDDL-1.0
+
+Files: lib/libspl/strnlen.c
+Copyright: 2008, Sun Microsystems, Inc
+License: CDDL-1.0
+
+Files: lib/libspl/zone.c
+Copyright: 2006, Ricardo Correia.
+License: CDDL-1.0
+
+Files: lib/libuutil/*
+Copyright: 1990-2010, Sun Microsystems, Inc.
+License: CDDL-1.0
+
+Files: lib/libuutil/uu_alloc.c
+  lib/libuutil/uu_misc.c
+  lib/libuutil/uu_string.c
+Copyright: 2000, 2002, 2004-2007, 2009, 2010, Oracle and/or its affiliates.
+License: CDDL-1.0
+
+Files: lib/libuutil/uu_avl.c
+  lib/libuutil/uu_list.c
+Copyright: 2005-2010, Sun Microsystems, Inc.
+License: CDDL-1.0
+
+Files: lib/libzfs/*
+Copyright: 2011, 2014, Nexenta Systems, Inc.
+  2011-2015, Delphix.
+  2005, 2010, Oracle and/or its affiliates.
+License: CDDL-1.0
+
+Files: lib/libzfs/libzfs_changelist.c
+Copyright: 2010, Sun Microsystems, Inc.
+  2007, Ramprakash Jelari
+License: CDDL-1.0
+
+Files: lib/libzfs/libzfs_config.c
+Copyright: 2011-2014, Delphix.
+  2007, 2009, 2010, Sun Microsystems, Inc.
+License: CDDL-1.0
+
+Files: lib/libzfs/libzfs_dataset.c
+Copyright: 2013, Steven Hartland.
+  2013, Nexenta Systems, Inc.
+  2013, Martin Matuska.
+  2013, Joyent, Inc.
+  2013, Delphix.
+  2012, Pawel Jakub Dawidek <pawel@dawidek.net>
+  2012, DEY Storage Systems, Inc.
+  2005, 2010, Oracle and/or its affiliates.
+License: CDDL-1.0
+
+Files: lib/libzfs/libzfs_diff.c
+Copyright: 2015, Nexenta Systems, Inc.
+  2010, Oracle and/or its affiliates.
+License: CDDL-1.0
+
+Files: lib/libzfs/libzfs_fru.c
+  lib/libzfs/libzfs_graph.c
+Copyright: 2005-2010, Sun Microsystems, Inc.
+License: CDDL-1.0
+
+Files: lib/libzfs/libzfs_mount.c
+Copyright: 2000, 2002, 2004-2007, 2009, 2010, Oracle and/or its affiliates.
+License: CDDL-1.0
+
+Files: lib/libzfs/libzfs_sendrecv.c
+Copyright: 2013, Steven Hartland.
+  2012, Pawel Jakub Dawidek <pawel@dawidek.net>
+  2012, Joyent, Inc.
+  2011, 2014, Delphix.
+  2005, 2010, Oracle and/or its affiliates.
+License: CDDL-1.0
+
+Files: lib/libzfs/libzfs_status.c
+Copyright: 2013, Steven Hartland.
+  2012, 2014, Delphix.
+  2005, 2010, Oracle and/or its affiliates.
+License: CDDL-1.0
+
+Files: lib/libzfs/libzfs_util.c
+Copyright: 2013, Joyent, Inc.
+  2012, Delphix.
+  2005, 2010, Oracle and/or its affiliates.
+License: CDDL-1.0
+
+Files: lib/libzfs_core/*
+Copyright: 2013, Steven Hartland.
+  2011, 2012, 2014, Delphix.
+License: CDDL-1.0
+
+Files: lib/libzpool/taskq.c
+Copyright: 2014, Delphix.
+  2012, Garrett DAmore <garrett@damore.org>.
+  2011, Nexenta Systems, Inc.
+  2010, Sun Microsystems, Inc.
+License: CDDL-1.0
+
+Files: man/man1/zhack.1
+       man/man1/zpios.1
+       man/man8/mount.zfs.8
+       man/man8/zinject.8
+Copyright: 2013, Darik Horn <dajhorn@vanadac.com>
+License: CDDL-1.0
+
+Files: man/man1/ztest.1
+Copyright: 2009, Oracle and/or its affiliates.
+  2009, Michael Gebetsroither <michael.geb@gmx.at>
+License: CDDL-1.0
+
+Files: man/man5/zfs-events.5
+       man/man5/zfs-module-parameters.5
+Copyright: 2013, Turbo Fredriksson <turbo@bayour.com>
+License: CDDL-1.0
+
+Files: man/man5/zpool-features.5
+Copyright:
+  2013, Delphix
+  2013, Saso Kiselkov
+  2014, Joyent, Inc.
+License: CDDL-1.0
+
+Files: man/man8/zdb.8
+Copyright: 2012, Richard Lowe.
+  2012, Delphix
+License: CDDL-1.0
+
+Files: man/man8/zed.8.in
+Copyright: 2013-2014, Lawrence Livermore National Security, LLC.
+License: CDDL-1.0
+
+Files: man/man8/zpool.8
+Copyright: 2007, Sun Microsystems, Inc.
+  2011, Nexenta Systems, Inc.
+  2012, Cyril Plisko
+  2013, Delphix
+License: CDDL-1.0
+
+Files: man/man8/zstreamdump.8
+Copyright: 2009, Sun Microsystems, Inc.
+License: CDDL-1.0
+
+Files: module/*
+Copyright: 2011-2014, Delphix.
+  2007, 2009, 2010, Sun Microsystems, Inc.
+License: CDDL-1.0
+
+Files: module/nvpair/*
+Copyright: 2000, 2002, 2004-2007, 2009, 2010, Oracle and/or its affiliates.
+License: CDDL-1.0
+
+Files: module/nvpair/fnvpair.c
+Copyright: 2011-2014, Delphix.
+License: CDDL-1.0
+
+Files: module/nvpair/nvpair_alloc_fixed.c
+Copyright: 2005-2010, Sun Microsystems, Inc.
+License: CDDL-1.0
+
+Files: module/nvpair/nvpair_alloc_spl.c
+Copyright: 1990-2010, Sun Microsystems, Inc.
+License: CDDL-1.0
+
+Files: module/unicode/*
+Copyright: 2005-2010, Sun Microsystems, Inc.
+License: CDDL-1.0
+
+Files: module/zcommon/zfs_comutil.c
+Copyright: 2011-2015, Delphix.
+  2000, 2005-2010, Oracle and/or its affiliates.
+License: CDDL-1.0
+
+Files: module/zcommon/zfs_deleg.c
+  module/zcommon/zpool_prop.c
+Copyright: 2012-2015, Delphix.
+  2010, 2011, Nexenta Systems, Inc.
+  2005, 2007, 2010, Oracle and/or its affiliates.
+License: CDDL-1.0
+
+Files: module/zcommon/zfs_fletcher.c
+Copyright: 2005-2010, Sun Microsystems, Inc.
+License: CDDL-1.0
+
+Files: module/zcommon/zfs_prop.c
+Copyright: 2013, Saso Kiselkov.
+  2011, 2014, Delphix.
+  2010, Robert Milkowski
+  2005, 2010, Oracle and/or its affiliates.
+License: CDDL-1.0
+
+Files: module/zcommon/zfs_uio.c
+Copyright: 2007, 2009, 2010, Sun Microsystems, Inc.
+  1983-1989, AT&T
+  1982, 1986, 1988, The Regents of the University of California
+License: CDDL-1.0
+
+Files: module/zfs/*
+Copyright: 2011-2015, Delphix.
+  2000, 2005-2010, Oracle and/or its affiliates.
+License: CDDL-1.0
+
+Files: module/zfs/arc.c
+Copyright: 2014, Saso Kiselkov.
+  2014, Nexenta Systems, Inc.
+  2012, Joyent, Inc.
+  2011, 2015, Delphix.
+  2005, 2010, Oracle and/or its affiliates.
+License: CDDL-1.0
+
+Files: module/zfs/blkptr.c
+  module/zfs/dsl_bookmark.c
+  module/zfs/multilist.c
+Copyright: 2013-2014, Delphix.
+License: CDDL-1.0
+
+Files: module/zfs/bptree.c
+  module/zfs/zfeature.c
+Copyright: 2011-2014, Delphix.
+License: CDDL-1.0
+
+Files: module/zfs/dbuf.c
+Copyright: 2014, Spectra Logic Corporation
+  2013, Saso Kiselkov.
+  2012, 2015, Delphix.
+  2011, Nexenta Systems, Inc.
+  2005, 2010, Oracle and/or its affiliates.
+License: CDDL-1.0
+
+Files: module/zfs/ddt_zap.c
+  module/zfs/fm.c
+  module/zfs/lzjb.c
+  module/zfs/zfs_fuid.c
+  module/zfs/zfs_log.c
+  module/zfs/zfs_sa.c
+Copyright: 2000, 2002, 2004-2007, 2009, 2010, Oracle and/or its affiliates.
+License: CDDL-1.0
+
+Files: module/zfs/dmu.c
+Copyright: 2015, Chunwei Chen.
+  2014, Nexenta Systems, Inc.
+  2013, Saso Kiselkov.
+  2011, 2014, Delphix.
+  2005, 2010, Oracle and/or its affiliates.
+License: CDDL-1.0
+
+Files: module/zfs/dmu_object.c
+Copyright: 2014, HybridCluster.
+  2013, 2014, Delphix.
+  2005, 2010, Oracle and/or its affiliates.
+License: CDDL-1.0
+
+Files: module/zfs/dmu_objset.c
+Copyright: 2016, Actifio, Inc.
+  2015, STRATO AG, Inc.
+  2015, Nexenta Systems, Inc.
+  2014, Spectra Logic Corporation
+  2013, Saso Kiselkov.
+  2013, Joyent, Inc.
+  2012, 2014, Delphix.
+  2010, Robert Milkowski
+  2005, 2010, Oracle and/or its affiliates.
+License: CDDL-1.0
+
+Files: module/zfs/dmu_send.c
+Copyright: 2016, Actifio, Inc.
+  2014, Joyent, Inc.
+  2011, Nexenta Systems, Inc.
+  2011, 2014, Delphix.
+  2005, 2010, Oracle and/or its affiliates.
+License: CDDL-1.0
+
+Files: module/zfs/dmu_tx.c
+  module/zfs/spa_config.c
+Copyright: 2012-2015, Delphix.
+  2010, 2011, Nexenta Systems, Inc.
+  2005, 2007, 2010, Oracle and/or its affiliates.
+License: CDDL-1.0
+
+Files: module/zfs/dmu_zfetch.c
+  module/zfs/range_tree.c
+  module/zfs/rrwlock.c
+  module/zfs/space_map.c
+  module/zfs/space_reftree.c
+  module/zfs/vdev_cache.c
+  module/zfs/vdev_mirror.c
+  module/zfs/vdev_missing.c
+  module/zfs/vdev_queue.c
+  module/zfs/vdev_root.c
+  module/zfs/zfs_fm.c
+  module/zfs/zfs_rlock.c
+Copyright: 2011-2014, Delphix.
+  2007, 2009, 2010, Sun Microsystems, Inc.
+License: CDDL-1.0
+
+Files: module/zfs/dnode.c
+  module/zfs/dnode_sync.c
+  module/zfs/dsl_deadlist.c
+  module/zfs/sa.c
+  module/zfs/zap.c
+  module/zfs/zap_micro.c
+Copyright: 2014, Spectra Logic Corporation
+  2011-2015, Delphix.
+  2005, 2010, Oracle and/or its affiliates.
+License: CDDL-1.0
+
+Files: module/zfs/dsl_dataset.c
+Copyright: 2016, Actifio, Inc.
+  2014, Spectra Logic Corporation
+  2014, RackTop Systems
+  2014, Joyent, Inc.
+  2013, Delphix.
+  2005, 2010, Oracle and/or its affiliates.
+License: CDDL-1.0
+
+Files: module/zfs/dsl_destroy.c
+Copyright: 2016, Actifio, Inc.
+  2013, Steven Hartland.
+  2012, 2013, Joyent, Inc.
+  2012, 2014, Delphix.
+  2005, 2010, Oracle and/or its affiliates.
+License: CDDL-1.0
+
+Files: module/zfs/dsl_dir.c
+Copyright: 2016, Actifio, Inc.
+  2014, Spectra Logic Corporation
+  2014, Joyent, Inc.
+  2013, Martin Matuska.
+  2012, 2014, Delphix.
+  2005, 2010, Oracle and/or its affiliates.
+License: CDDL-1.0
+
+Files: module/zfs/dsl_pool.c
+Copyright: 2014, Spectra Logic Corporation
+  2013, Steven Hartland.
+  2011, 2014, Delphix.
+  2005, 2010, Oracle and/or its affiliates.
+License: CDDL-1.0
+
+Files: module/zfs/dsl_prop.c
+Copyright: 2013, Martin Matuska.
+  2012, 2014, Delphix.
+  2005, 2010, Oracle and/or its affiliates.
+License: CDDL-1.0
+
+Files: module/zfs/dsl_userhold.c
+Copyright: 2013, Steven Hartland.
+  2012, 2014, Delphix.
+  2005, 2010, Oracle and/or its affiliates.
+License: CDDL-1.0
+
+Files: module/zfs/gzip.c
+  module/zfs/sha256.c
+  module/zfs/spa_boot.c
+  module/zfs/unique.c
+  module/zfs/zfs_byteswap.c
+  module/zfs/zle.c
+Copyright: 2005-2010, Sun Microsystems, Inc.
+License: CDDL-1.0
+
+Files: module/zfs/lz4.c
+Copyright: 2011-2013, Yann Collet
+License: BSD-2-clause
+
+Files: module/zfs/metaslab.c
+Copyright: 2013, Saso Kiselkov.
+  2011, 2012, 2014, Delphix.
+  2005, 2010, Oracle and/or its affiliates.
+License: CDDL-1.0
+
+Files: module/zfs/spa.c
+Copyright: 2016, Actifio, Inc.
+  2014, Spectra Logic Corporation
+  2013, Delphix.
+  2013, 2014, Nexenta Systems, Inc.
+  2005, 2010, Oracle and/or its affiliates.
+License: CDDL-1.0
+
+Files: module/zfs/spa_misc.c
+Copyright: 2014, Spectra Logic Corporation
+  2011, Nexenta Systems, Inc.
+  2011, 2014, 2015, Delphix.
+  2005, 2010, Oracle and/or its affiliates.
+License: CDDL-1.0
+
+Files: module/zfs/txg.c
+Copyright: 2012, 2014, Delphix.
+  2011, Martin Matuska
+  2005, 2010, Oracle and/or its affiliates.
+License: CDDL-1.0
+
+Files: module/zfs/vdev.c
+  module/zfs/zio.c
+Copyright: 2011, 2014, Nexenta Systems, Inc.
+  2011-2015, Delphix.
+  2005, 2010, Oracle and/or its affiliates.
+License: CDDL-1.0
+
+Files: module/zfs/vdev_disk.c
+Copyright: 2012, 2014, Delphix.
+  2008-2010, Lawrence Livermore National Security, LLC
+License: CDDL-1.0
+
+Files: module/zfs/zfeature_common.c
+Copyright: 2014, Nexenta Systems, Inc.
+  2013, Saso Kiselkov.
+  2013, Delphix.
+License: CDDL-1.0
+
+Files: module/zfs/zfs_ctldir.c
+Copyright: 2013, Delphix.
+  2011, Lawrence Livermore National Security, LLC
+  2005, 2010, Oracle and/or its affiliates.
+License: CDDL-1.0
+
+Files: module/zfs/zfs_ioctl.c
+Copyright: 2016, Actifio, Inc.
+  2013, Steven Hartland.
+  2013, Saso Kiselkov.
+  2012, Pawel Jakub Dawidek <pawel@dawidek.net>
+  2012, 2014, Joyent, Inc.
+  2011, Martin Matuska
+  2011, 2014, Nexenta Systems, Inc.
+  2011, 2014, Delphix.
+  2005, 2010, Oracle and/or its affiliates.
+License: CDDL-1.0
+
+Files: module/zfs/zfs_replay.c
+Copyright: 2013, Delphix.
+  2012, Cyril Plisko.
+  2005, 2010, Oracle and/or its affiliates.
+License: CDDL-1.0
+
+Files: module/zfs/zfs_vfsops.c
+  module/zfs/zil.c
+Copyright: 2011-2014, Delphix.
+  2010, Robert Milkowski
+  2005, 2010, Oracle and/or its affiliates.
+License: CDDL-1.0
+
+Files: module/zfs/zfs_vnops.c
+Copyright: 2015, Chunwei Chen.
+  2013, Delphix.
+  2010, Robert Milkowski
+  2007, Jeremy Teo
+  2005, 2010, Oracle and/or its affiliates.
+License: CDDL-1.0
+
+Files: module/zfs/zfs_znode.c
+Copyright: 2013, Delphix.
+  2007, Jeremy Teo
+  2005, 2010, Oracle and/or its affiliates.
+License: CDDL-1.0
+
+Files: module/zfs/zio_compress.c
+Copyright: 2013, Saso Kiselkov.
+  2013, Delphix.
+  2009, Sun Microsystems, Inc.
+License: CDDL-1.0
+
+Files: module/zfs/zpl_ctldir.c
+  module/zfs/zpl_super.c
+  module/zfs/zpl_xattr.c
+  module/zfs/zvol.c
+Copyright: 2008-2011, Lawrence Livermore National Security, LLC
+License: CDDL-1.0
+
+Files: module/zfs/zpl_export.c
+Copyright: 2012, Cyril Plisko.
+  2011, Gunnar Beutner
+License: CDDL-1.0
+
+Files: module/zfs/zpl_file.c
+  module/zfs/zpl_inode.c
+Copyright: 2015, Chunwei Chen.
+  2011, Lawrence Livermore National Security, LLC
+License: CDDL-1.0
+
+Files: module/zpios/*
+Copyright: 2008-2010, Lawrence Livermore National Security, LLC
+  2004, Cluster File Systems, Inc
+License: GPL-2+
+
+Files: scripts/*
+Copyright: 2003-2012, Ville Skyttä <ville.skytta@iki.fi>
+License: Expat
+
+Files: scripts/cstyle.pl
+Copyright: 2005-2010, Sun Microsystems, Inc.
+License: CDDL-1.0
+
+
+License: Expat
+ 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.
+
+License: GPL-2+
+ This program is free software; you can redistribute it and/or modify it under
+ the terms of the GNU General Public License as published by the Free Software
+ Foundation; either version 2 of the License, or (at your option) any later
+ version.
+ .
+ This program is distributed in the hope that it will be useful, but WITHOUT
+ ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+ FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
+ .
+ You should have received a copy of the GNU General Public License along with
+ this package; if not, write to the Free Software Foundation, Inc., 51 Franklin
+ St, Fifth Floor, Boston, MA  02110-1301 USA
+ .
+ On Debian systems, the full text of the GNU General Public License version 2
+ can be found in the file /usr/share/common-licenses/GPL-2.
+
+License: GPL-2+ with autoconf exception
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+ .
+ As a special exception to the GNU General Public License,
+ if you distribute this file as part of a program or library that
+ is built using this program, you may include this file under the
+ same distribution terms that you use for the rest of that program.
+ .
+ This program is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ General Public License for more details.
+ .
+ You should have received a copy of the GNU General Public License
+ along with GNU Libtool; see the file COPYING.  If not, a copy
+ can be downloaded from http://www.gnu.org/licenses/gpl.html,
+ or obtained by writing to the Free Software Foundation, Inc.,
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ .
+ On Debian systems, the full text of the GNU General Public License version 2
+ can be found in the file /usr/share/common-licenses/GPL-2.
+
+License: CDDL-1.0
+ COMMON DEVELOPMENT AND DISTRIBUTION LICENSE (CDDL)
+ .
+ Version 1.0
+ .
+ 1. Definitions.
+ .
+ 1.1. “Contributor” means each individual or entity that creates or contributes
+ to the creation of Modifications.
+ .
+ 1.2. “Contributor Version” means the combination of the Original Software,
+ prior Modifications used by a Contributor (if any), and the Modifications made
+ by that particular Contributor.
+ .
+ 1.3. “Covered Software” means (a) the Original Software, or (b) Modifications,
+ or (c) the combination of files containing Original Software with files
+ containing Modifications, in each case including portions thereof.
+ .
+ 1.4. “Executable” means the Covered Software in any form other than Source
+ Code.
+ .
+ 1.5. “Initial Developer” means the individual or entity that first makes
+ Original Software available under this License.
+ .
+ 1.6. “Larger Work” means a work which combines Covered Software or portions
+ thereof with code not governed by the terms of this License.
+ .
+ 1.7. “License” means this document.
+ .
+ 1.8. “Licensable” means having the right to grant, to the maximum extent
+ possible, whether at the time of the initial grant or subsequently acquired,
+ any and all of the rights conveyed herein.
+ .
+ 1.9. “Modifications” means the Source Code and Executable form of any of the
+ following:
+ .
+ A. Any file that results from an addition to, deletion from or modification of
+ the contents of a file containing Original Software or previous Modifications;
+ .
+ B. Any new file that contains any part of the Original Software or previous
+ Modification; or
+ .
+ C. Any new file that is contributed or otherwise made available under the terms
+ of this License.
+ .
+ 1.10. “Original Software” means the Source Code and Executable form of computer
+ software code that is originally released under this License.
+ .
+ 1.11. “Patent Claims” means any patent claim(s), now owned or hereafter
+ acquired, including without limitation, method, process, and apparatus claims,
+ in any patent Licensable by grantor.
+ .
+ 1.12. “Source Code” means (a) the common form of computer software code in
+ which modifications are made and (b) associated documentation included in or
+ with such code.
+ .
+ 1.13. “You” (or “Your”) means an individual or a legal entity exercising rights
+ under, and complying with all of the terms of, this License. For legal
+ entities, “You” includes any entity which controls, is controlled by, or is
+ under common control with You. For purposes of this definition, “control” means
+ (a) the power, direct or indirect, to cause the direction or management of such
+ entity, whether by contract or otherwise, or (b) ownership of more than fifty
+ percent (50%) of the outstanding shares or beneficial ownership of such entity.
+ .
+ 2. License Grants.
+ .
+ 2.1. The Initial Developer Grant.
+ .
+ Conditioned upon Your compliance with Section 3.1 below and subject to third
+ party intellectual property claims, the Initial Developer hereby grants You a
+ world-wide, royalty-free, non-exclusive license:
+ .
+ (a) under intellectual property rights (other than patent or trademark)
+ Licensable by Initial Developer, to use, reproduce, modify, display, perform,
+ sublicense and distribute the Original Software (or portions thereof), with or
+ without Modifications, and/or as part of a Larger Work; and
+ .
+ (b) under Patent Claims infringed by the making, using or selling of Original
+ Software, to make, have made, use, practice, sell, and offer for sale, and/or
+ otherwise dispose of the Original Software (or portions thereof).
+ .
+ (c) The licenses granted in Sections 2.1(a) and (b) are effective on the date
+ Initial Developer first distributes or otherwise makes the Original Software
+ available to a third party under the terms of this License.
+ .
+ (d) Notwithstanding Section 2.1(b) above, no patent license is granted: (1) for
+ code that You delete from the Original Software, or (2) for infringements
+ caused by: (i) the modification of the Original Software, or (ii) the
+ combination of the Original Software with other software or devices.
+ .
+ 2.2. Contributor Grant.
+ .
+ Conditioned upon Your compliance with Section 3.1 below and subject to third
+ party intellectual property claims, each Contributor hereby grants You a
+ world-wide, royalty-free, non-exclusive license:
+ .
+ (a) under intellectual property rights (other than patent or trademark)
+ Licensable by Contributor to use, reproduce, modify, display, perform,
+ sublicense and distribute the Modifications created by such Contributor (or
+ portions thereof), either on an unmodified basis, with other Modifications, as
+ Covered Software and/or as part of a Larger Work; and
+ .
+ (b) under Patent Claims infringed by the making, using, or selling of
+ Modifications made by that Contributor either alone and/or in combination with
+ its Contributor Version (or portions of such combination), to make, use, sell,
+ offer for sale, have made, and/or otherwise dispose of: (1) Modifications made
+ by that Contributor (or portions thereof); and (2) the combination of
+ Modifications made by that Contributor with its Contributor Version (or
+ portions of such combination).
+ .
+ (c) The licenses granted in Sections 2.2(a) and 2.2(b) are effective on the
+ date Contributor first distributes or otherwise makes the Modifications
+ available to a third party.
+ .
+ (d) Notwithstanding Section 2.2(b) above, no patent license is granted: (1) for
+ any code that Contributor has deleted from the Contributor Version; (2) for
+ infringements caused by: (i) third party modifications of Contributor Version,
+ or (ii) the combination of Modifications made by that Contributor with other
+ software (except as part of the Contributor Version) or other devices; or (3)
+ under Patent Claims infringed by Covered Software in the absence of
+ Modifications made by that Contributor.
+ .
+ 3. Distribution Obligations.
+ .
+ 3.1. Availability of Source Code.
+ .
+ Any Covered Software that You distribute or otherwise make available in
+ Executable form must also be made available in Source Code form and that Source
+ Code form must be distributed only under the terms of this License. You must
+ include a copy of this License with every copy of the Source Code form of the
+ Covered Software You distribute or otherwise make available. You must inform
+ recipients of any such Covered Software in Executable form as to how they can
+ obtain such Covered Software in Source Code form in a reasonable manner on or
+ through a medium customarily used for software exchange.
+ .
+ 3.2. Modifications.
+ .
+ The Modifications that You create or to which You contribute are governed by
+ the terms of this License. You represent that You believe Your Modifications
+ are Your original creation(s) and/or You have sufficient rights to grant the
+ rights conveyed by this License.
+ .
+ 3.3. Required Notices.
+ .
+ You must include a notice in each of Your Modifications that identifies You as
+ the Contributor of the Modification. You may not remove or alter any copyright,
+ patent or trademark notices contained within the Covered Software, or any
+ notices of licensing or any descriptive text giving attribution to any
+ Contributor or the Initial Developer.
+ .
+ 3.4. Application of Additional Terms.
+ .
+ You may not offer or impose any terms on any Covered Software in Source Code
+ form that alters or restricts the applicable version of this License or the
+ recipients’ rights hereunder. You may choose to offer, and to charge a fee for,
+ warranty, support, indemnity or liability obligations to one or more recipients
+ of Covered Software. However, you may do so only on Your own behalf, and not on
+ behalf of the Initial Developer or any Contributor. You must make it absolutely
+ clear that any such warranty, support, indemnity or liability obligation is
+ offered by You alone, and You hereby agree to indemnify the Initial Developer
+ and every Contributor for any liability incurred by the Initial Developer or
+ such Contributor as a result of warranty, support, indemnity or liability terms
+ You offer.
+ .
+ 3.5. Distribution of Executable Versions.
+ .
+ You may distribute the Executable form of the Covered Software under the terms
+ of this License or under the terms of a license of Your choice, which may
+ contain terms different from this License, provided that You are in compliance
+ with the terms of this License and that the license for the Executable form
+ does not attempt to limit or alter the recipient’s rights in the Source Code
+ form from the rights set forth in this License. If You distribute the Covered
+ Software in Executable form under a different license, You must make it
+ absolutely clear that any terms which differ from this License are offered by
+ You alone, not by the Initial Developer or Contributor. You hereby agree to
+ indemnify the Initial Developer and every Contributor for any liability
+ incurred by the Initial Developer or such Contributor as a result of any such
+ terms You offer.
+ .
+ 3.6. Larger Works.
+ .
+ You may create a Larger Work by combining Covered Software with other code not
+ governed by the terms of this License and distribute the Larger Work as a
+ single product. In such a case, You must make sure the requirements of this
+ License are fulfilled for the Covered Software.
+ .
+ 4. Versions of the License.
+ .
+ 4.1. New Versions.
+ .
+ Sun Microsystems, Inc. is the initial license steward and may publish revised
+ and/or new versions of this License from time to time. Each version will be
+ given a distinguishing version number. Except as provided in Section 4.3, no
+ one other than the license steward has the right to modify this License.
+ .
+ 4.2. Effect of New Versions.
+ .
+ You may always continue to use, distribute or otherwise make the Covered
+ Software available under the terms of the version of the License under which
+ You originally received the Covered Software. If the Initial Developer includes
+ a notice in the Original Software prohibiting it from being distributed or
+ otherwise made available under any subsequent version of the License, You must
+ distribute and make the Covered Software available under the terms of the
+ version of the License under which You originally received the Covered
+ Software. Otherwise, You may also choose to use, distribute or otherwise make
+ the Covered Software available under the terms of any subsequent version of the
+ License published by the license steward.
+ .
+ 4.3. Modified Versions.
+ .
+ When You are an Initial Developer and You want to create a new license for Your
+ Original Software, You may create and use a modified version of this License if
+ You: (a) rename the license and remove any references to the name of the
+ license steward (except to note that the license differs from this License);
+ and (b) otherwise make it clear that the license contains terms which differ
+ from this License.
+ .
+ 5. DISCLAIMER OF WARRANTY.
+ .
+ COVERED SOFTWARE IS PROVIDED UNDER THIS LICENSE ON AN “AS IS” BASIS, WITHOUT
+ WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, WITHOUT
+ LIMITATION, WARRANTIES THAT THE COVERED SOFTWARE IS FREE OF DEFECTS,
+ MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE OR NON-INFRINGING. THE ENTIRE RISK
+ AS TO THE QUALITY AND PERFORMANCE OF THE COVERED SOFTWARE IS WITH YOU. SHOULD
+ ANY COVERED SOFTWARE PROVE DEFECTIVE IN ANY RESPECT, YOU (NOT THE INITIAL
+ DEVELOPER OR ANY OTHER CONTRIBUTOR) ASSUME THE COST OF ANY NECESSARY SERVICING,
+ REPAIR OR CORRECTION. THIS DISCLAIMER OF WARRANTY CONSTITUTES AN ESSENTIAL PART
+ OF THIS LICENSE. NO USE OF ANY COVERED SOFTWARE IS AUTHORIZED HEREUNDER EXCEPT
+ UNDER THIS DISCLAIMER.
+ .
+ 6. TERMINATION.
+ .
+ 6.1. This License and the rights granted hereunder will terminate automatically
+ if You fail to comply with terms herein and fail to cure such breach within 30
+ days of becoming aware of the breach. Provisions which, by their nature, must
+ remain in effect beyond the termination of this License shall survive.
+ .
+ 6.2. If You assert a patent infringement claim (excluding declaratory judgment
+ actions) against Initial Developer or a Contributor (the Initial Developer or
+ Contributor against whom You assert such claim is referred to as “Participant”)
+ alleging that the Participant Software (meaning the Contributor Version where
+ the Participant is a Contributor or the Original Software where the Participant
+ is the Initial Developer) directly or indirectly infringes any patent, then any
+ and all rights granted directly or indirectly to You by such Participant, the
+ Initial Developer (if the Initial Developer is not the Participant) and all
+ Contributors under Sections 2.1 and/or 2.2 of this License shall, upon 60 days
+ notice from Participant terminate prospectively and automatically at the
+ expiration of such 60 day notice period, unless if within such 60 day period
+ You withdraw Your claim with respect to the Participant Software against such
+ Participant either unilaterally or pursuant to a written agreement with
+ Participant.
+ .
+ 6.3. In the event of termination under Sections 6.1 or 6.2 above, all end user
+ licenses that have been validly granted by You or any distributor hereunder
+ prior to termination (excluding licenses granted to You by any distributor)
+ shall survive termination.
+ .
+ 7. LIMITATION OF LIABILITY.
+ .
+ UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER TORT (INCLUDING
+ NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL YOU, THE INITIAL DEVELOPER, ANY
+ OTHER CONTRIBUTOR, OR ANY DISTRIBUTOR OF COVERED SOFTWARE, OR ANY SUPPLIER OF
+ ANY OF SUCH PARTIES, BE LIABLE TO ANY PERSON FOR ANY INDIRECT, SPECIAL,
+ INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY CHARACTER INCLUDING, WITHOUT
+ LIMITATION, DAMAGES FOR LOST PROFITS, LOSS OF GOODWILL, WORK STOPPAGE, COMPUTER
+ FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER COMMERCIAL DAMAGES OR LOSSES, EVEN
+ IF SUCH PARTY SHALL HAVE BEEN INFORMED OF THE POSSIBILITY OF SUCH DAMAGES. THIS
+ LIMITATION OF LIABILITY SHALL NOT APPLY TO LIABILITY FOR DEATH OR PERSONAL
+ INJURY RESULTING FROM SUCH PARTY’S NEGLIGENCE TO THE EXTENT APPLICABLE LAW
+ PROHIBITS SUCH LIMITATION. SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION OR
+ LIMITATION OF INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO THIS EXCLUSION AND
+ LIMITATION MAY NOT APPLY TO YOU.
+ .
+ 8. U.S. GOVERNMENT END USERS.
+ .
+ The Covered Software is a “commercial item,” as that term is defined in 48
+ C.F.R. 2.101 (Oct. 1995), consisting of “commercial computer software” (as that
+ term is defined at 48 C.F.R. § 252.227-7014(a)(1)) and “commercial computer
+ software documentation” as such terms are used in 48 C.F.R. 12.212 (Sept.
+ 1995). Consistent with 48 C.F.R. 12.212 and 48 C.F.R. 227.7202-1 through
+ 227.7202-4 (June 1995), all U.S. Government End Users acquire Covered Software
+ with only those rights set forth herein. This U.S. Government Rights clause is
+ in lieu of, and supersedes, any other FAR, DFAR, or other clause or provision
+ that addresses Government rights in computer software under this License.
+ .
+ 9. MISCELLANEOUS.
+ .
+ This License represents the complete agreement concerning subject matter
+ hereof. If any provision of this License is held to be unenforceable, such
+ provision shall be reformed only to the extent necessary to make it
+ enforceable. This License shall be governed by the law of the jurisdiction
+ specified in a notice contained within the Original Software (except to the
+ extent applicable law, if any, provides otherwise), excluding such
+ jurisdiction’s conflict-of-law provisions. Any litigation relating to this
+ License shall be subject to the jurisdiction of the courts located in the
+ jurisdiction and venue specified in a notice contained within the Original
+ Software, with the losing party responsible for costs, including, without
+ limitation, court costs and reasonable attorneys’ fees and expenses. The
+ application of the United Nations Convention on Contracts for the International
+ Sale of Goods is expressly excluded. Any law or regulation which provides that
+ the language of a contract shall be construed against the drafter shall not
+ apply to this License. You agree that You alone are responsible for compliance
+ with the United States export administration regulations (and the export
+ control laws and regulation of any other countries) when You use, distribute or
+ otherwise make available any Covered Software.
+ .
+ 10. RESPONSIBILITY FOR CLAIMS.
+ .
+ As between Initial Developer and the Contributors, each party is responsible
+ for claims and damages arising, directly or indirectly, out of its utilization
+ of rights under this License and You agree to work with Initial Developer and
+ Contributors to distribute such responsibility on an equitable basis. Nothing
+ herein is intended or shall be deemed to constitute any admission of liability.
+
+License: BSD-2-clause
+ All rights reserved.
+ .
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+ .
+ 1. Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+ .
+ 2. Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+ .
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+ FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+ SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+ CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
diff --git a/zfs/debian/copyright.cme b/zfs/debian/copyright.cme
new file mode 100644 (file)
index 0000000..6195f36
--- /dev/null
@@ -0,0 +1,1161 @@
+Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
+
+Files: *
+Copyright: 2000, 2002, 2004-2007, 2009, 2010, Oracle and/or its affiliates.
+License: CDDL
+
+Files: COPYRIGHT
+Copyright: attribution
+License: UNKNOWN
+ Please fill license UNKNOWN from header of COPYRIGHT
+
+Files: cmd/*
+Copyright: 2013, 2014, Delphix.
+  2012, Cyril Plisko.
+  2009, Sun Microsystems, Inc.
+License: CDDL
+
+Files: cmd/arc_summary/*
+Copyright: 2010, Martin Matuska <mm@FreeBSD.org>
+  2010, 2011, Jason J. Hellenthal <jhell@DataIX.net>
+  2008, Ben Rockwood <benr@cuddletech.com>
+License: BSD-2-clause
+
+Files: cmd/arcstat/*
+Copyright: no-info-found
+License: CDDL-1.0 or only
+
+Files: cmd/dbufstat/*
+Copyright: 2013, Lawrence Livermore National Security, LLC
+License: CDDL-1.0 or only
+
+Files: cmd/mount_zfs/*
+Copyright: 2011, Lawrence Livermore National Security, LLC
+  2005, 2010, Oracle and/or its affiliates.
+License: CDDL
+
+Files: cmd/vdev_id/*
+Copyright: 2011, 2013, Nexenta Systems, Inc.
+  2007, 2009, Sun Microsystems, Inc.
+License: CDDL
+
+Files: cmd/zdb/zdb.c
+Copyright: 2015, Intel Corporation
+  2011, 2014, Delphix.
+  2005, 2010, Oracle and/or its affiliates.
+License: CDDL
+
+Files: cmd/zed/*
+Copyright: attribution / 2013-2014, Lawrence Livermore National Security, LLC
+License: UNKNOWN
+ Please fill license UNKNOWN from header of cmd/zed/*
+
+Files: cmd/zfs/*
+Copyright: 2013, Nexenta Systems, Inc.
+  2013, Delphix.
+  2012, Pawel Jakub Dawidek <pawel@dawidek.net>
+  2005, 2010, Oracle and/or its affiliates.
+License: CDDL
+
+Files: cmd/zfs/zfs_iter.h
+Copyright: 2011, 2013, Nexenta Systems, Inc.
+  2007, 2009, Sun Microsystems, Inc.
+License: CDDL
+
+Files: cmd/zfs/zfs_main.c
+Copyright: 2013, Steven Hartland.
+  2013, Nexenta Systems, Inc.
+  2012, Joyent, Inc.
+  2011, 2014, Delphix.
+  2005, 2010, Oracle and/or its affiliates.
+License: CDDL
+
+Files: cmd/zfs/zfs_util.h
+Copyright: 2000, 2002, 2004, 2005, 2007, 2009, 2010, Oracle and/or its affiliates.
+License: CDDL
+
+Files: cmd/zhack/*
+Copyright: 2013, Steven Hartland.
+  2011, 2012, 2014, Delphix.
+License: CDDL
+
+Files: cmd/zinject/*
+Copyright: 2011-2016, Delphix.
+  2000, 2005-2010, Oracle and/or its affiliates.
+License: CDDL
+
+Files: cmd/zinject/zinject.h
+Copyright: 2000, 2002, 2004, 2005, 2007, 2009, 2010, Oracle and/or its affiliates.
+License: CDDL
+
+Files: cmd/zpios/*
+Copyright: 2008-2010, Lawrence Livermore National Security, LLC
+  2004, Cluster File Systems, Inc
+License: GPL-2+
+
+Files: cmd/zpool/*
+Copyright: 2005-2010, Sun Microsystems, Inc.
+License: CDDL
+
+Files: cmd/zpool/zpool_main.c
+Copyright: 2013, Prasad Joshi (sTec).
+  2012, Frederik Wessels.
+  2012, Cyril Plisko.
+  2011, Nexenta Systems, Inc.
+  2011, 2014, Delphix.
+  2005, 2010, Oracle and/or its affiliates.
+License: CDDL
+
+Files: cmd/zpool/zpool_util.h
+Copyright: 2000, 2002, 2004, 2005, 2007, 2009, 2010, Oracle and/or its affiliates.
+License: CDDL
+
+Files: cmd/zpool/zpool_vdev.c
+Copyright: 2011-2016, Delphix.
+  2000, 2005-2010, Oracle and/or its affiliates.
+License: CDDL
+
+Files: cmd/zstreamdump/*
+Copyright: 2013, Delphix.
+  2012, Martin Matuska <martin@matuska.org>
+  2010, Sun Microsystems, Inc.
+License: CDDL
+
+Files: cmd/ztest/*
+Copyright: 2013, Steven Hartland.
+  2011, Nexenta Systems, Inc.
+  2011, 2015, Delphix.
+  2005, 2010, Oracle and/or its affiliates.
+License: CDDL
+
+Files: cmd/zvol_id/*
+Copyright: 2011, Fajar A. Nugraha.
+License: CDDL
+
+Files: config/*
+Copyright: 1996-2012, Free Software Foundation, Inc.
+License: GPL-2+
+
+Files: config/install-sh
+Copyright: and license / 1994, X Consortium
+License: Expat
+
+Files: configure
+Copyright: 1992-1996, 1998-2010, Free Software
+License: UNKNOWN
+ Please fill license UNKNOWN from header of configure
+
+Files: contrib/*
+Copyright: 2010, 2013, Aneurin Price <aneurin.price@gmail.com>
+License: Expat
+
+Files: debian/*
+Copyright: 2010, 2013, Aneurin Price <aneurin.price@gmail.com>
+License: Expat
+
+Files: debian/rules
+Copyright: OPENSOLARIS.LICENSE README.markdown
+License: UNKNOWN
+ Please fill license UNKNOWN from header of debian/rules
+
+Files: include/*
+Copyright: 2000, 2002, 2004, 2005, 2007, 2009, 2010, Oracle and/or its affiliates.
+License: CDDL
+
+Files: include/libuutil_common.h
+  include/zfs_fletcher.h
+  include/zfs_prop.h
+Copyright: 2005-2010, Sun Microsystems, Inc.
+License: CDDL
+
+Files: include/libuutil_impl.h
+Copyright: 1990-2010, Sun Microsystems, Inc.
+License: CDDL-1.0 or only
+
+Files: include/libzfs.h
+Copyright: 2013, Steven Hartland.
+  2013, Nexenta Systems, Inc.
+  2013, Delphix.
+  2012, Joyent, Inc.
+  2005, 2010, Oracle and/or its affiliates.
+License: CDDL
+
+Files: include/libzfs_core.h
+Copyright: 2011-2014, Delphix.
+License: CDDL
+
+Files: include/libzfs_impl.h
+  include/zfs_comutil.h
+Copyright: 2011-2016, Delphix.
+  2000, 2005-2010, Oracle and/or its affiliates.
+License: CDDL
+
+Files: include/linux/*
+Copyright: 2008-2011, Lawrence Livermore National Security, LLC
+License: CDDL
+
+Files: include/linux/kmap_compat.h
+Copyright: 2015, Chunwei Chen.
+License: CDDL
+
+Files: include/linux/utsname_compat.h
+Copyright: no-info-found
+License: CDDL
+
+Files: include/linux/vfs_compat.h
+Copyright: 2015, Jörg Thalheim
+  2011, Lawrence Livermore National Security, LLC
+License: CDDL
+
+Files: include/sys/arc.h
+Copyright: 2013, Saso Kiselkov.
+  2011, 2012, 2014, Delphix.
+  2005, 2010, Oracle and/or its affiliates.
+License: CDDL
+
+Files: include/sys/arc_impl.h
+Copyright: 2013, Saso Kiselkov.
+  2013, Nexenta Systems, Inc.
+  2013, Delphix.
+  2005, 2010, Oracle and/or its affiliates.
+License: CDDL
+
+Files: include/sys/avl.h
+  include/sys/dmu_tx.h
+  include/sys/metaslab_impl.h
+  include/sys/range_tree.h
+  include/sys/rrwlock.h
+  include/sys/space_map.h
+  include/sys/space_reftree.h
+  include/sys/txg.h
+  include/sys/txg_impl.h
+  include/sys/uberblock.h
+  include/sys/zio_impl.h
+Copyright: 2011-2014, Delphix.
+  2007, 2009, 2010, Sun Microsystems, Inc.
+License: CDDL
+
+Files: include/sys/avl_impl.h
+  include/sys/nvpair_impl.h
+  include/sys/sdt.h
+  include/sys/uuid.h
+  include/sys/vdev_file.h
+Copyright: 1990-2010, Sun Microsystems, Inc.
+License: CDDL-1.0 or only
+
+Files: include/sys/blkptr.h
+  include/sys/dsl_bookmark.h
+  include/sys/multilist.h
+Copyright: 2013, 2014, Delphix.
+License: UNKNOWN
+ Please fill license UNKNOWN from header of include/sys/blkptr.h include/sys/dsl_bookmark.h include/sys/multilist.h
+
+Files: include/sys/bpobj.h
+  include/sys/dmu_traverse.h
+  include/sys/dsl_deleg.h
+  include/sys/dsl_pool.h
+  include/sys/dsl_prop.h
+  include/sys/dsl_scan.h
+  include/sys/dsl_synctask.h
+  include/sys/metaslab.h
+  include/sys/nvpair.h
+  include/sys/vdev.h
+  include/sys/vdev_impl.h
+  include/sys/zap.h
+  include/sys/zfs_debug.h
+  include/sys/zfs_ioctl.h
+  include/sys/zfs_znode.h
+Copyright: 2011-2016, Delphix.
+  2000, 2005-2010, Oracle and/or its affiliates.
+License: CDDL
+
+Files: include/sys/bptree.h
+  include/sys/zfeature.h
+Copyright: 2011-2014, Delphix.
+License: CDDL
+
+Files: include/sys/dbuf.h
+Copyright: 2014, Spectra Logic Corporation
+  2013, Saso Kiselkov.
+  2012, 2015, Delphix.
+  2005, 2010, Oracle and/or its affiliates.
+License: CDDL
+
+Files: include/sys/dmu.h
+Copyright: 2014, Spectra Logic Corporation
+  2014, HybridCluster.
+  2012, Joyent, Inc.
+  2011, Nexenta Systems, Inc.
+  2011, 2014, Delphix.
+  2010, Robert Milkowski
+  2005, 2010, Oracle and/or its affiliates.
+License: CDDL
+
+Files: include/sys/dmu_impl.h
+Copyright: 2013, Delphix.
+  2012, Joyent, Inc.
+  2010, Sun Microsystems, Inc.
+License: CDDL
+
+Files: include/sys/dmu_objset.h
+Copyright: 2014, Spectra Logic Corporation
+  2013, Saso Kiselkov.
+  2012, 2014, Delphix.
+  2010, Robert Milkowski
+  2005, 2010, Oracle and/or its affiliates.
+License: CDDL
+
+Files: include/sys/dmu_send.h
+Copyright: 2013, Joyent, Inc.
+  2012, 2014, Delphix.
+  2011, Nexenta Systems, Inc.
+  2005, 2010, Oracle and/or its affiliates.
+License: CDDL
+
+Files: include/sys/dmu_zfetch.h
+  include/sys/spa_boot.h
+  include/sys/u8_textprep.h
+  include/sys/unique.h
+  include/sys/zfs_dir.h
+  include/sys/zfs_fuid.h
+  include/sys/zfs_rlock.h
+  include/sys/zfs_sa.h
+  include/sys/zio_compress.h
+Copyright: 2005-2010, Sun Microsystems, Inc.
+License: CDDL
+
+Files: include/sys/dnode.h
+  include/sys/sa_impl.h
+Copyright: 2014, Spectra Logic Corporation
+  2011-2015, Delphix.
+  2005, 2010, Oracle and/or its affiliates.
+License: CDDL
+
+Files: include/sys/dsl_dataset.h
+Copyright: 2014, Spectra Logic Corporation
+  2013, Steven Hartland.
+  2013, Joyent, Inc.
+  2013, Delphix.
+  2005, 2010, Oracle and/or its affiliates.
+License: CDDL
+
+Files: include/sys/dsl_destroy.h
+Copyright: 2013, Delphix.
+  2012, Joyent, Inc.
+  2005, 2010, Oracle and/or its affiliates.
+License: CDDL
+
+Files: include/sys/dsl_dir.h
+Copyright: 2014, Spectra Logic Corporation
+  2014, Joyent, Inc.
+  2013, Delphix.
+  2005, 2010, Oracle and/or its affiliates.
+License: CDDL
+
+Files: include/sys/dsl_userhold.h
+Copyright: 2013, Steven Hartland.
+  2012, Joyent, Inc.
+  2012, Delphix.
+  2005, 2010, Oracle and/or its affiliates.
+License: CDDL
+
+Files: include/sys/fm/fs/*
+Copyright: 2005-2010, Sun Microsystems, Inc.
+License: CDDL
+
+Files: include/sys/fs/*
+Copyright: 2013, Joyent, Inc.
+  2011, Nexenta Systems, Inc.
+  2011, 2014, Delphix.
+  2010, Robert Milkowski
+  2005, 2010, Oracle and/or its affiliates.
+License: CDDL
+
+Files: include/sys/mntent.h
+Copyright: 2008, 2009, Sun Microsystems, Inc.
+  1984, 1986-1989, AT&T
+License: CDDL
+
+Files: include/sys/spa.h
+Copyright: 2014, Spectra Logic Corporation
+  2011, Nexenta Systems, Inc.
+  2011, 2014, 2015, Delphix.
+  2005, 2010, Oracle and/or its affiliates.
+License: CDDL
+
+Files: include/sys/spa_impl.h
+Copyright: 2016, Actifio, Inc.
+  2014, Spectra Logic Corporation
+  2011, Nexenta Systems, Inc.
+  2011, 2015, Delphix.
+  2005, 2010, Oracle and/or its affiliates.
+License: CDDL
+
+Files: include/sys/trace.h
+  include/sys/trace_acl.h
+  include/sys/trace_arc.h
+  include/sys/trace_dbgmsg.h
+  include/sys/trace_dbuf.h
+  include/sys/trace_dmu.h
+  include/sys/trace_dnode.h
+  include/sys/trace_multilist.h
+  include/sys/trace_txg.h
+  include/sys/trace_zil.h
+  include/sys/trace_zrlock.h
+  include/sys/zfs_delay.h
+Copyright: no-info-found
+License: CDDL
+
+Files: include/sys/u8_textprep_data.h
+Copyright: 2007, Sun Microsystems, Inc.
+  1991-2006, Unicode, Inc. Distributed under
+License: CDDL
+
+Files: include/sys/uio_impl.h
+Copyright: 2007, 2009, 2010, Sun Microsystems, Inc.
+  1983-1989, AT&T
+  1982, 1986, 1988, The Regents of the University of California
+License: CDDL
+
+Files: include/sys/vdev_disk.h
+  include/sys/zpl.h
+Copyright: 2008-2011, Lawrence Livermore National Security, LLC
+License: CDDL
+
+Files: include/sys/xvattr.h
+Copyright: 1988, 2010, Oracle and/or its affiliates.
+  1983-1989, AT&T
+  1982, 1986, 1988, The Regents of the University of California
+License: CDDL
+
+Files: include/sys/zap_impl.h
+  include/sys/zap_leaf.h
+Copyright: 2014, Spectra Logic Corporation
+  2005, 2010, Oracle and/or its affiliates.
+License: CDDL
+
+Files: include/sys/zfs_context.h
+Copyright: 2012, Joyent, Inc.
+  2012, 2014, Delphix.
+  2011, Nexenta Systems, Inc.
+  2009, Sun Microsystems, Inc.
+License: CDDL
+
+Files: include/sys/zfs_ctldir.h
+Copyright: 2011, Lawrence Livermore National Security, LLC
+  2005, 2010, Oracle and/or its affiliates.
+License: CDDL
+
+Files: include/sys/zil.h
+  include/sys/zil_impl.h
+Copyright: 2011-2014, Delphix.
+  2010, Robert Milkowski
+  2005, 2010, Oracle and/or its affiliates.
+License: CDDL
+
+Files: include/sys/zio.h
+Copyright: 2013, Saso Kiselkov.
+  2012, 2014, Delphix.
+  2011, Nexenta Systems, Inc.
+  2005, 2010, Oracle and/or its affiliates.
+License: CDDL
+
+Files: include/sys/zvol.h
+Copyright: 2016, Actifio, Inc.
+  2005, 2006, 2010, Oracle and/or its affiliates.
+License: CDDL
+
+Files: include/zfeature_common.h
+Copyright: 2013, Saso Kiselkov.
+  2013, Delphix.
+License: CDDL
+
+Files: include/zfs_deleg.h
+Copyright: 2012-2015, Delphix.
+  2010, 2011, Nexenta Systems, Inc.
+  2005, 2007, 2010, Oracle and/or its affiliates.
+License: CDDL
+
+Files: include/zfs_namecheck.h
+Copyright: 2011-2014, Delphix.
+  2007, 2009, 2010, Sun Microsystems, Inc.
+License: CDDL
+
+Files: include/zpios-ctl.h
+  include/zpios-internal.h
+Copyright: 2008-2010, Lawrence Livermore National Security, LLC
+  2004, Cluster File Systems, Inc
+License: GPL-2+
+
+Files: lib/*
+Copyright: 2000, 2002, 2004, 2005, 2007, 2009, 2010, Oracle and/or its affiliates.
+License: CDDL
+
+Files: lib/libnvpair/*
+Copyright: 2011-2016, Delphix.
+  2000, 2005-2010, Oracle and/or its affiliates.
+License: CDDL
+
+Files: lib/libnvpair/nvpair_alloc_system.c
+Copyright: 1990-2010, Sun Microsystems, Inc.
+License: CDDL-1.0 or only
+
+Files: lib/libshare/*
+Copyright: 2011, Gunnar Beutner
+  2002, 2010, Oracle and/or its affiliates.
+License: CDDL
+
+Files: lib/libshare/nfs.c
+Copyright: 2012, Cyril Plisko.
+  2011, Gunnar Beutner
+  2002, 2010, Oracle and/or its affiliates.
+License: CDDL
+
+Files: lib/libshare/smb.c
+Copyright: 2011, 2012, Turbo Fredriksson <turbo@bayour.com>, based on nfs.c
+  2002, 2010, Oracle and/or its affiliates.
+License: CDDL
+
+Files: lib/libshare/smb.h
+Copyright: 2011, Turbo Fredriksson <turbo@bayour.com>
+License: CDDL
+
+Files: lib/libspl/*
+Copyright: 2005-2010, Sun Microsystems, Inc.
+License: CDDL
+
+Files: lib/libspl/asm-generic/*
+Copyright: 1990-2010, Sun Microsystems, Inc.
+License: CDDL-1.0 or only
+
+Files: lib/libspl/getexecname.c
+Copyright: 1990-2010, Sun Microsystems, Inc.
+License: CDDL-1.0 or only
+
+Files: lib/libspl/getmntany.c
+Copyright: 2006, Ricardo Correia.
+  2005, Sun Microsystems, Inc.
+  1988, AT&T
+License: CDDL-1.0 or only
+
+Files: lib/libspl/include/*
+Copyright: 1990-2010, Sun Microsystems, Inc.
+License: CDDL-1.0 or only
+
+Files: lib/libspl/include/atomic.h
+  lib/libspl/include/libshare.h
+  lib/libspl/include/statcommon.h
+  lib/libspl/include/zone.h
+Copyright: 2005-2010, Sun Microsystems, Inc.
+License: CDDL
+
+Files: lib/libspl/include/attr.h
+  lib/libspl/include/stropts.h
+Copyright: no-info-found
+License: CDDL
+
+Files: lib/libspl/include/note.h
+Copyright: 1994, 2008, Sun Microsystems, Inc
+License: CDDL-1.0 or only
+
+Files: lib/libspl/include/rpc/*
+Copyright: 2005-2010, Sun Microsystems, Inc.
+License: CDDL
+
+Files: lib/libspl/include/rpc/xdr.h
+Copyright: 2005, Sun Microsystems, Inc.
+  1983-1989, AT&T
+License: CDDL-1.0 or only
+
+Files: lib/libspl/include/synch.h
+Copyright: 2014, Zettabyte Software, LLC.
+  2008, Sun Microsystems, Inc.
+License: CDDL-1.0 or only
+
+Files: lib/libspl/include/sys/acl.h
+  lib/libspl/include/sys/acl_impl.h
+  lib/libspl/include/sys/dkio.h
+  lib/libspl/include/sys/isa_defs.h
+  lib/libspl/include/sys/kmem.h
+  lib/libspl/include/sys/kstat.h
+  lib/libspl/include/sys/list.h
+  lib/libspl/include/sys/stack.h
+  lib/libspl/include/sys/stropts.h
+  lib/libspl/include/sys/types32.h
+  lib/libspl/include/sys/tzfile.h
+Copyright: 2005-2010, Sun Microsystems, Inc.
+License: CDDL
+
+Files: lib/libspl/include/sys/byteorder.h
+Copyright: 2007, 2009, 2010, Sun Microsystems, Inc.
+  1983-1989, AT&T
+  1982, 1986, 1988, The Regents of the University of California
+License: CDDL
+
+Files: lib/libspl/include/sys/dktp/*
+Copyright: 2008, 2009, Sun Microsystems, Inc.
+  1984, 1986-1989, AT&T
+License: CDDL
+
+Files: lib/libspl/include/sys/mnttab.h
+Copyright: 2006, Ricardo Correia
+  2004, Sun Microsystems, Inc.
+  1984, 1986-1989, AT&T
+License: CDDL-1.0 or only
+
+Files: lib/libspl/include/sys/note.h
+  lib/libspl/include/sys/sunddi.h
+Copyright: 1994, 2008, Sun Microsystems, Inc
+License: CDDL-1.0 or only
+
+Files: lib/libspl/include/sys/policy.h
+Copyright: no-info-found
+License: CDDL-1.0 or only
+
+Files: lib/libspl/include/sys/stat.h
+Copyright: 2010, Oracle and/or its affiliates.
+License: CDDL-1.0 or only
+
+Files: lib/libspl/include/sys/sysevent/*
+Copyright: 2011, 2013, Nexenta Systems, Inc.
+  2007, 2009, Sun Microsystems, Inc.
+License: CDDL
+
+Files: lib/libspl/include/sys/uio.h
+Copyright: 2005, Sun Microsystems, Inc.
+  1984, 1986-1989, AT&T
+  1982, 1986, 1988, The Regents of the University of California
+License: CDDL-1.0 or only
+
+Files: lib/libspl/include/sys/vtoc.h
+Copyright: 2008, 2009, Sun Microsystems, Inc.
+  1984, 1986-1989, AT&T
+License: CDDL
+
+Files: lib/libspl/mkdirp.c
+Copyright: 2008, 2009, Sun Microsystems, Inc.
+  1984, 1986-1989, AT&T
+License: CDDL
+
+Files: lib/libspl/strnlen.c
+Copyright: 2008, Sun Microsystems, Inc
+License: CDDL
+
+Files: lib/libspl/xdr.c
+Copyright: 2005, Sun Microsystems, Inc.
+  1983-1989, AT&T
+License: CDDL-1.0 or only
+
+Files: lib/libspl/zone.c
+Copyright: 2006, Ricardo Correia.
+License: CDDL
+
+Files: lib/libuutil/*
+Copyright: 1990-2010, Sun Microsystems, Inc.
+License: CDDL-1.0 or only
+
+Files: lib/libuutil/uu_alloc.c
+  lib/libuutil/uu_misc.c
+  lib/libuutil/uu_string.c
+Copyright: 2000, 2002, 2004, 2005, 2007, 2009, 2010, Oracle and/or its affiliates.
+License: CDDL
+
+Files: lib/libuutil/uu_avl.c
+  lib/libuutil/uu_list.c
+Copyright: 2005-2010, Sun Microsystems, Inc.
+License: CDDL
+
+Files: lib/libzfs/*
+Copyright: 2011, 2014, Nexenta Systems, Inc.
+  2011-2015, Delphix.
+  2005, 2010, Oracle and/or its affiliates.
+License: CDDL
+
+Files: lib/libzfs/libzfs_changelist.c
+Copyright: 2010, Sun Microsystems, Inc.
+  2007, Ramprakash Jelari
+License: CDDL
+
+Files: lib/libzfs/libzfs_config.c
+Copyright: 2011-2014, Delphix.
+  2007, 2009, 2010, Sun Microsystems, Inc.
+License: CDDL
+
+Files: lib/libzfs/libzfs_dataset.c
+Copyright: 2013, Steven Hartland.
+  2013, Nexenta Systems, Inc.
+  2013, Martin Matuska.
+  2013, Joyent, Inc.
+  2013, Delphix.
+  2012, Pawel Jakub Dawidek <pawel@dawidek.net>
+  2012, DEY Storage Systems, Inc.
+  2005, 2010, Oracle and/or its affiliates.
+License: CDDL
+
+Files: lib/libzfs/libzfs_diff.c
+Copyright: 2015, Nexenta Systems, Inc.
+  2010, Oracle and/or its affiliates.
+License: CDDL
+
+Files: lib/libzfs/libzfs_fru.c
+  lib/libzfs/libzfs_graph.c
+Copyright: 2005-2010, Sun Microsystems, Inc.
+License: CDDL
+
+Files: lib/libzfs/libzfs_mount.c
+Copyright: 2000, 2002, 2004, 2005, 2007, 2009, 2010, Oracle and/or its affiliates.
+License: CDDL
+
+Files: lib/libzfs/libzfs_sendrecv.c
+Copyright: 2013, Steven Hartland.
+  2012, Pawel Jakub Dawidek <pawel@dawidek.net>
+  2012, Joyent, Inc.
+  2011, 2014, Delphix.
+  2005, 2010, Oracle and/or its affiliates.
+License: CDDL
+
+Files: lib/libzfs/libzfs_status.c
+Copyright: 2013, Steven Hartland.
+  2012, 2014, Delphix.
+  2005, 2010, Oracle and/or its affiliates.
+License: CDDL
+
+Files: lib/libzfs/libzfs_util.c
+Copyright: 2013, Joyent, Inc.
+  2012, Delphix.
+  2005, 2010, Oracle and/or its affiliates.
+License: CDDL
+
+Files: lib/libzfs_core/*
+Copyright: 2013, Steven Hartland.
+  2011, 2012, 2014, Delphix.
+License: CDDL
+
+Files: lib/libzpool/kernel.c
+Copyright: 2016, Actifio, Inc.
+  2005, 2006, 2010, Oracle and/or its affiliates.
+License: CDDL
+
+Files: lib/libzpool/taskq.c
+Copyright: 2014, Delphix.
+  2012, Garrett DAmore <garrett@damore.org>.
+  2011, Nexenta Systems, Inc.
+  2010, Sun Microsystems, Inc.
+License: CDDL
+
+Files: module/*
+Copyright: 2011-2014, Delphix.
+  2007, 2009, 2010, Sun Microsystems, Inc.
+License: CDDL
+
+Files: module/nvpair/*
+Copyright: 2000, 2002, 2004-2007, 2009, 2010, Oracle and/or its affiliates.
+License: CDDL
+
+Files: module/nvpair/fnvpair.c
+Copyright: 2011-2014, Delphix.
+License: CDDL
+
+Files: module/nvpair/nvpair.c
+Copyright: 2000, 2002, 2004, 2005, 2007, 2009, 2010, Oracle and/or its affiliates.
+License: CDDL
+
+Files: module/nvpair/nvpair_alloc_fixed.c
+Copyright: 2005-2010, Sun Microsystems, Inc.
+License: CDDL
+
+Files: module/nvpair/nvpair_alloc_spl.c
+Copyright: 1990-2010, Sun Microsystems, Inc.
+License: CDDL-1.0 or only
+
+Files: module/unicode/*
+Copyright: 2005-2010, Sun Microsystems, Inc.
+License: CDDL
+
+Files: module/zcommon/zfs_comutil.c
+Copyright: 2011-2016, Delphix.
+  2000, 2005-2010, Oracle and/or its affiliates.
+License: CDDL
+
+Files: module/zcommon/zfs_deleg.c
+  module/zcommon/zpool_prop.c
+Copyright: 2012-2015, Delphix.
+  2010, 2011, Nexenta Systems, Inc.
+  2005, 2007, 2010, Oracle and/or its affiliates.
+License: CDDL
+
+Files: module/zcommon/zfs_fletcher.c
+Copyright: 2005-2010, Sun Microsystems, Inc.
+License: CDDL
+
+Files: module/zcommon/zfs_prop.c
+Copyright: 2013, Saso Kiselkov.
+  2011, 2014, Delphix.
+  2010, Robert Milkowski
+  2005, 2010, Oracle and/or its affiliates.
+License: CDDL
+
+Files: module/zcommon/zfs_uio.c
+Copyright: 2007, 2009, 2010, Sun Microsystems, Inc.
+  1983-1989, AT&T
+  1982, 1986, 1988, The Regents of the University of California
+License: CDDL
+
+Files: module/zfs/*
+Copyright: 2011-2016, Delphix.
+  2000, 2005-2010, Oracle and/or its affiliates.
+License: CDDL
+
+Files: module/zfs/arc.c
+Copyright: 2014, Saso Kiselkov.
+  2014, Nexenta Systems, Inc.
+  2012, Joyent, Inc.
+  2011, 2015, Delphix.
+  2005, 2010, Oracle and/or its affiliates.
+License: CDDL
+
+Files: module/zfs/blkptr.c
+  module/zfs/dsl_bookmark.c
+  module/zfs/multilist.c
+Copyright: 2013, 2014, Delphix.
+License: UNKNOWN
+ Please fill license UNKNOWN from header of module/zfs/blkptr.c module/zfs/dsl_bookmark.c module/zfs/multilist.c
+
+Files: module/zfs/bptree.c
+  module/zfs/zfeature.c
+Copyright: 2011-2014, Delphix.
+License: CDDL
+
+Files: module/zfs/dbuf.c
+Copyright: 2014, Spectra Logic Corporation
+  2013, Saso Kiselkov.
+  2012, 2015, Delphix.
+  2011, Nexenta Systems, Inc.
+  2005, 2010, Oracle and/or its affiliates.
+License: CDDL
+
+Files: module/zfs/dbuf_stats.c
+  module/zfs/spa_stats.c
+  module/zfs/trace.c
+Copyright: no-info-found
+License: CDDL
+
+Files: module/zfs/ddt_zap.c
+  module/zfs/fm.c
+  module/zfs/lzjb.c
+  module/zfs/zfs_fuid.c
+  module/zfs/zfs_log.c
+  module/zfs/zfs_sa.c
+Copyright: 2000, 2002, 2004, 2005, 2007, 2009, 2010, Oracle and/or its affiliates.
+License: CDDL
+
+Files: module/zfs/dmu.c
+Copyright: 2015, Chunwei Chen.
+  2014, Nexenta Systems, Inc.
+  2013, Saso Kiselkov.
+  2011, 2014, Delphix.
+  2005, 2010, Oracle and/or its affiliates.
+License: CDDL
+
+Files: module/zfs/dmu_object.c
+Copyright: 2014, HybridCluster.
+  2013, 2015, Delphix.
+  2005, 2010, Oracle and/or its affiliates.
+License: CDDL
+
+Files: module/zfs/dmu_objset.c
+Copyright: 2016, Actifio, Inc.
+  2015, STRATO AG, Inc.
+  2015, Nexenta Systems, Inc.
+  2014, Spectra Logic Corporation
+  2013, Saso Kiselkov.
+  2013, Joyent, Inc.
+  2012, 2014, Delphix.
+  2010, Robert Milkowski
+  2005, 2010, Oracle and/or its affiliates.
+License: CDDL
+
+Files: module/zfs/dmu_send.c
+Copyright: 2016, Actifio, Inc.
+  2014, Joyent, Inc.
+  2011, Nexenta Systems, Inc.
+  2011, 2014, Delphix.
+  2005, 2010, Oracle and/or its affiliates.
+License: CDDL
+
+Files: module/zfs/dmu_tx.c
+  module/zfs/spa_config.c
+Copyright: 2012-2015, Delphix.
+  2010, 2011, Nexenta Systems, Inc.
+  2005, 2007, 2010, Oracle and/or its affiliates.
+License: CDDL
+
+Files: module/zfs/dmu_zfetch.c
+  module/zfs/range_tree.c
+  module/zfs/rrwlock.c
+  module/zfs/space_map.c
+  module/zfs/space_reftree.c
+  module/zfs/vdev_cache.c
+  module/zfs/vdev_mirror.c
+  module/zfs/vdev_missing.c
+  module/zfs/vdev_queue.c
+  module/zfs/vdev_root.c
+  module/zfs/zfs_fm.c
+  module/zfs/zfs_rlock.c
+Copyright: 2011-2014, Delphix.
+  2007, 2009, 2010, Sun Microsystems, Inc.
+License: CDDL
+
+Files: module/zfs/dnode.c
+  module/zfs/dnode_sync.c
+  module/zfs/dsl_deadlist.c
+  module/zfs/sa.c
+  module/zfs/zap.c
+  module/zfs/zap_micro.c
+Copyright: 2014, Spectra Logic Corporation
+  2011-2015, Delphix.
+  2005, 2010, Oracle and/or its affiliates.
+License: CDDL
+
+Files: module/zfs/dsl_dataset.c
+Copyright: 2016, Actifio, Inc.
+  2014, Spectra Logic Corporation
+  2014, RackTop Systems
+  2014, Joyent, Inc.
+  2013, Delphix.
+  2005, 2010, Oracle and/or its affiliates.
+License: CDDL
+
+Files: module/zfs/dsl_destroy.c
+Copyright: 2016, Actifio, Inc.
+  2013, Steven Hartland.
+  2013, Joyent, Inc.
+  2012, 2014, Delphix.
+  2005, 2010, Oracle and/or its affiliates.
+License: CDDL
+
+Files: module/zfs/dsl_dir.c
+Copyright: 2016, Actifio, Inc.
+  2014, Spectra Logic Corporation
+  2014, Joyent, Inc.
+  2013, Martin Matuska.
+  2012, 2014, Delphix.
+  2005, 2010, Oracle and/or its affiliates.
+License: CDDL
+
+Files: module/zfs/dsl_pool.c
+Copyright: 2014, Spectra Logic Corporation
+  2013, Steven Hartland.
+  2011, 2014, Delphix.
+  2005, 2010, Oracle and/or its affiliates.
+License: CDDL
+
+Files: module/zfs/dsl_prop.c
+Copyright: 2013, Martin Matuska.
+  2012, 2014, Delphix.
+  2005, 2010, Oracle and/or its affiliates.
+License: CDDL
+
+Files: module/zfs/dsl_userhold.c
+Copyright: 2013, Steven Hartland.
+  2012, 2014, Delphix.
+  2005, 2010, Oracle and/or its affiliates.
+License: CDDL
+
+Files: module/zfs/gzip.c
+  module/zfs/sha256.c
+  module/zfs/spa_boot.c
+  module/zfs/unique.c
+  module/zfs/zfs_byteswap.c
+  module/zfs/zle.c
+Copyright: 2005-2010, Sun Microsystems, Inc.
+License: CDDL
+
+Files: module/zfs/lz4.c
+Copyright: 2011-2013, Yann Collet
+License: BSD-2-clause
+
+Files: module/zfs/metaslab.c
+Copyright: 2013, Saso Kiselkov.
+  2011, 2012, 2014, Delphix.
+  2005, 2010, Oracle and/or its affiliates.
+License: CDDL
+
+Files: module/zfs/spa.c
+Copyright: 2016, Actifio, Inc.
+  2014, Spectra Logic Corporation
+  2013, Delphix.
+  2013, 2014, Nexenta Systems, Inc.
+  2005, 2010, Oracle and/or its affiliates.
+License: CDDL
+
+Files: module/zfs/spa_misc.c
+Copyright: 2014, Spectra Logic Corporation
+  2011, Nexenta Systems, Inc.
+  2011, 2014, 2015, Delphix.
+  2005, 2010, Oracle and/or its affiliates.
+License: CDDL
+
+Files: module/zfs/txg.c
+Copyright: 2012, 2014, Delphix.
+  2011, Martin Matuska
+  2005, 2010, Oracle and/or its affiliates.
+License: CDDL
+
+Files: module/zfs/vdev.c
+  module/zfs/zio.c
+Copyright: 2011, 2014, Nexenta Systems, Inc.
+  2011-2015, Delphix.
+  2005, 2010, Oracle and/or its affiliates.
+License: CDDL
+
+Files: module/zfs/vdev_disk.c
+Copyright: 2012, 2014, Delphix.
+  2008-2010, Lawrence Livermore National Security, LLC
+License: CDDL
+
+Files: module/zfs/zfeature_common.c
+Copyright: 2014, Nexenta Systems, Inc.
+  2013, Saso Kiselkov.
+  2013, Delphix.
+License: CDDL
+
+Files: module/zfs/zfs.mod.c
+Copyright: 2011-2015, Delphix.
+  2000, 2005-2010, Oracle and/or its affiliates.
+License: CDDL
+
+Files: module/zfs/zfs_ctldir.c
+Copyright: 2013, Delphix.
+  2011, Lawrence Livermore National Security, LLC
+  2005, 2010, Oracle and/or its affiliates.
+License: CDDL
+
+Files: module/zfs/zfs_ioctl.c
+Copyright: 2016, Actifio, Inc.
+  2013, Steven Hartland.
+  2013, Saso Kiselkov.
+  2012, Pawel Jakub Dawidek <pawel@dawidek.net>
+  2012, 2014, Joyent, Inc.
+  2011, Martin Matuska
+  2011, 2014, Nexenta Systems, Inc.
+  2011, 2014, Delphix.
+  2005, 2010, Oracle and/or its affiliates.
+License: CDDL
+
+Files: module/zfs/zfs_replay.c
+Copyright: 2013, Delphix.
+  2012, Cyril Plisko.
+  2005, 2010, Oracle and/or its affiliates.
+License: CDDL
+
+Files: module/zfs/zfs_vfsops.c
+  module/zfs/zil.c
+Copyright: 2011-2014, Delphix.
+  2010, Robert Milkowski
+  2005, 2010, Oracle and/or its affiliates.
+License: CDDL
+
+Files: module/zfs/zfs_vnops.c
+Copyright: 2015, Chunwei Chen.
+  2013, Delphix.
+  2010, Robert Milkowski
+  2007, Jeremy Teo
+  2005, 2010, Oracle and/or its affiliates.
+License: CDDL
+
+Files: module/zfs/zfs_znode.c
+Copyright: 2013, Delphix.
+  2007, Jeremy Teo
+  2005, 2010, Oracle and/or its affiliates.
+License: CDDL
+
+Files: module/zfs/zio_compress.c
+Copyright: 2013, Saso Kiselkov.
+  2013, Delphix.
+  2009, Sun Microsystems, Inc.
+License: CDDL
+
+Files: module/zfs/zpl_ctldir.c
+  module/zfs/zpl_super.c
+  module/zfs/zpl_xattr.c
+  module/zfs/zvol.c
+Copyright: 2008-2011, Lawrence Livermore National Security, LLC
+License: CDDL
+
+Files: module/zfs/zpl_export.c
+Copyright: 2012, Cyril Plisko.
+  2011, Gunnar Beutner
+License: CDDL
+
+Files: module/zfs/zpl_file.c
+  module/zfs/zpl_inode.c
+Copyright: 2015, Chunwei Chen.
+  2011, Lawrence Livermore National Security, LLC
+License: CDDL
+
+Files: module/zpios/*
+Copyright: 2008-2010, Lawrence Livermore National Security, LLC
+  2004, Cluster File Systems, Inc
+License: GPL-2+
+
+Files: scripts/*
+Copyright: 2003-2012, Ville Skyttä <ville.skytta@iki.fi>
+License: Expat
+
+Files: scripts/cstyle.pl
+Copyright: 2005-2010, Sun Microsystems, Inc.
+License: CDDL
+
+Files: scripts/ziltest.sh
+Copyright: 1990-2010, Sun Microsystems, Inc.
+License: CDDL-1.0 or only
+
+License: BSD-2-clause
+ Please fill license BSD-2-clause from header of cmd/arc_summary/*
+
+License: CDDL
+ Please fill license CDDL from header of *
+
+License: CDDL-1.0
+ Please fill license CDDL-1.0 or only from header of cmd/arcstat/*
+
+License: Expat
+ The MIT 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 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.
+
+License: GPL-2+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; version 2 dated June, 1991, or (at
+ your option) any later version.
+ .
+ On Debian systems, the complete text of version 2 of the GNU General
+ Public License can be found in '/usr/share/common-licenses/GPL-2'.
+
+License: only
+ Please fill license CDDL-1.0 or only from header of cmd/arcstat/*
diff --git a/zfs/debian/libnvpair1linux.docs b/zfs/debian/libnvpair1linux.docs
new file mode 100644 (file)
index 0000000..425a0e5
--- /dev/null
@@ -0,0 +1,2 @@
+COPYRIGHT
+OPENSOLARIS.LICENSE
diff --git a/zfs/debian/libnvpair1linux.install b/zfs/debian/libnvpair1linux.install
new file mode 100644 (file)
index 0000000..34a0f61
--- /dev/null
@@ -0,0 +1 @@
+lib/libnvpair.so.*
diff --git a/zfs/debian/libnvpair1linux.lintian-overrides b/zfs/debian/libnvpair1linux.lintian-overrides
new file mode 100644 (file)
index 0000000..cf91223
--- /dev/null
@@ -0,0 +1 @@
+libnvpair1linux: package-name-doesnt-match-sonames
diff --git a/zfs/debian/libuutil1linux.docs b/zfs/debian/libuutil1linux.docs
new file mode 100644 (file)
index 0000000..425a0e5
--- /dev/null
@@ -0,0 +1,2 @@
+COPYRIGHT
+OPENSOLARIS.LICENSE
diff --git a/zfs/debian/libuutil1linux.install b/zfs/debian/libuutil1linux.install
new file mode 100644 (file)
index 0000000..c7fa63e
--- /dev/null
@@ -0,0 +1 @@
+lib/libuutil.so.*
diff --git a/zfs/debian/libuutil1linux.lintian-overrides b/zfs/debian/libuutil1linux.lintian-overrides
new file mode 100644 (file)
index 0000000..058b0db
--- /dev/null
@@ -0,0 +1 @@
+libuutil1linux: package-name-doesnt-match-sonames
diff --git a/zfs/debian/libzfs2linux.docs b/zfs/debian/libzfs2linux.docs
new file mode 100644 (file)
index 0000000..425a0e5
--- /dev/null
@@ -0,0 +1,2 @@
+COPYRIGHT
+OPENSOLARIS.LICENSE
diff --git a/zfs/debian/libzfs2linux.install b/zfs/debian/libzfs2linux.install
new file mode 100644 (file)
index 0000000..660dede
--- /dev/null
@@ -0,0 +1,2 @@
+lib/libzfs.so.*
+lib/libzfs_core.so.*
diff --git a/zfs/debian/libzfs2linux.lintian-overrides b/zfs/debian/libzfs2linux.lintian-overrides
new file mode 100644 (file)
index 0000000..a2a9d10
--- /dev/null
@@ -0,0 +1 @@
+libzfs2linux: package-name-doesnt-match-sonames
diff --git a/zfs/debian/libzfslinux-dev.docs b/zfs/debian/libzfslinux-dev.docs
new file mode 100644 (file)
index 0000000..425a0e5
--- /dev/null
@@ -0,0 +1,2 @@
+COPYRIGHT
+OPENSOLARIS.LICENSE
diff --git a/zfs/debian/libzfslinux-dev.install b/zfs/debian/libzfslinux-dev.install
new file mode 100644 (file)
index 0000000..efc2bc2
--- /dev/null
@@ -0,0 +1,4 @@
+lib/*.a usr/lib/
+usr/include
+usr/lib/*.so
+usr/share/pkgconfig/*.pc
diff --git a/zfs/debian/libzpool2linux.docs b/zfs/debian/libzpool2linux.docs
new file mode 100644 (file)
index 0000000..425a0e5
--- /dev/null
@@ -0,0 +1,2 @@
+COPYRIGHT
+OPENSOLARIS.LICENSE
diff --git a/zfs/debian/libzpool2linux.install b/zfs/debian/libzpool2linux.install
new file mode 100644 (file)
index 0000000..d886d29
--- /dev/null
@@ -0,0 +1 @@
+lib/libzpool.so.*
diff --git a/zfs/debian/libzpool2linux.lintian-overrides b/zfs/debian/libzpool2linux.lintian-overrides
new file mode 100644 (file)
index 0000000..41a444f
--- /dev/null
@@ -0,0 +1 @@
+libzpool2linux: package-name-doesnt-match-sonames
diff --git a/zfs/debian/not-installed b/zfs/debian/not-installed
new file mode 100644 (file)
index 0000000..c60b001
--- /dev/null
@@ -0,0 +1,10 @@
+usr/share/zfs/enum-extract.pl
+usr/share/zfs/zfs-helpers.sh
+etc/init.d
+etc/sudoers.d
+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
+usr/lib/dracut
+usr/share/zfs/enum-extract.pl
diff --git a/zfs/debian/patches/0001-Check-for-META-and-DCH-consistency-in-autoconf.patch b/zfs/debian/patches/0001-Check-for-META-and-DCH-consistency-in-autoconf.patch
new file mode 100644 (file)
index 0000000..7e55bfc
--- /dev/null
@@ -0,0 +1,68 @@
+From: Debian ZFS on Linux maintainers
+ <pkg-zfsonlinux-devel@alioth-lists.debian.net>
+Date: Wed, 30 Jan 2019 15:12:04 +0100
+Subject: Check-for-META-and-DCH-consistency-in-autoconf
+
+---
+ 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 3e1429d..b8e26c4 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')
diff --git a/zfs/debian/patches/0002-Add-libuutil-to-LIBADD-for-libzfs-and-libzfs_core.patch b/zfs/debian/patches/0002-Add-libuutil-to-LIBADD-for-libzfs-and-libzfs_core.patch
new file mode 100644 (file)
index 0000000..ef0fb0b
--- /dev/null
@@ -0,0 +1,36 @@
+From: Debian ZFS on Linux maintainers
+ <pkg-zfsonlinux-devel@alioth-lists.debian.net>
+Date: Wed, 30 Jan 2019 15:12:04 +0100
+Subject: Add-libuutil-to-LIBADD-for-libzfs-and-libzfs_core
+
+---
+ 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 f1260ea..5b07b9d 100644
+--- a/lib/libzfs/Makefile.am
++++ b/lib/libzfs/Makefile.am
+@@ -31,6 +31,7 @@ nodist_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 5eafc25..10d6de3 100644
+--- a/lib/libzfs_core/Makefile.am
++++ b/lib/libzfs_core/Makefile.am
+@@ -16,7 +16,8 @@ nodist_libzfs_core_la_SOURCES = \
+       $(KERNEL_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
diff --git a/zfs/debian/patches/0003-add-man-page-reference-to-systemd-units.patch b/zfs/debian/patches/0003-add-man-page-reference-to-systemd-units.patch
new file mode 100644 (file)
index 0000000..6ee5802
--- /dev/null
@@ -0,0 +1,59 @@
+From: =?utf-8?q?Fabian_Gr=C3=BCnbichler?= <f.gruenbichler@proxmox.com>
+Date: Mon, 4 Sep 2017 10:59:32 +0200
+Subject: add man page reference to systemd units
+MIME-Version: 1.0
+Content-Type: text/plain; charset="utf-8"
+Content-Transfer-Encoding: 8bit
+
+Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
+---
+ etc/systemd/system/zfs-import-cache.service.in | 1 +
+ etc/systemd/system/zfs-import-scan.service.in  | 1 +
+ etc/systemd/system/zfs-mount.service.in        | 1 +
+ etc/systemd/system/zfs-share.service.in        | 1 +
+ 4 files changed, 4 insertions(+)
+
+diff --git a/etc/systemd/system/zfs-import-cache.service.in b/etc/systemd/system/zfs-import-cache.service.in
+index 726c468..d5b4043 100644
+--- a/etc/systemd/system/zfs-import-cache.service.in
++++ b/etc/systemd/system/zfs-import-cache.service.in
+@@ -1,5 +1,6 @@
+ [Unit]
+ Description=Import ZFS pools by cache file
++Documentation=man:zpool(8)
+ DefaultDependencies=no
+ Requires=systemd-udev-settle.service
+ After=systemd-udev-settle.service
+diff --git a/etc/systemd/system/zfs-import-scan.service.in b/etc/systemd/system/zfs-import-scan.service.in
+index abc8e8e..fd66505 100644
+--- a/etc/systemd/system/zfs-import-scan.service.in
++++ b/etc/systemd/system/zfs-import-scan.service.in
+@@ -1,5 +1,6 @@
+ [Unit]
+ Description=Import ZFS pools by device scanning
++Documentation=man:zpool(8)
+ DefaultDependencies=no
+ Requires=systemd-udev-settle.service
+ After=systemd-udev-settle.service
+diff --git a/etc/systemd/system/zfs-mount.service.in b/etc/systemd/system/zfs-mount.service.in
+index 728fc63..8a73716 100644
+--- a/etc/systemd/system/zfs-mount.service.in
++++ b/etc/systemd/system/zfs-mount.service.in
+@@ -1,5 +1,6 @@
+ [Unit]
+ Description=Mount ZFS filesystems
++Documentation=man:zfs(8)
+ DefaultDependencies=no
+ After=systemd-udev-settle.service
+ After=zfs-import.target
+diff --git a/etc/systemd/system/zfs-share.service.in b/etc/systemd/system/zfs-share.service.in
+index 494f5cb..d0c93a3 100644
+--- a/etc/systemd/system/zfs-share.service.in
++++ b/etc/systemd/system/zfs-share.service.in
+@@ -1,5 +1,6 @@
+ [Unit]
+ Description=ZFS file system shares
++Documentation=man:zfs(8)
+ After=nfs-server.service nfs-kernel-server.service
+ After=smb.service
+ After=zfs-mount.service
diff --git a/zfs/debian/patches/0004-always-load-ZFS-module-on-boot.patch b/zfs/debian/patches/0004-always-load-ZFS-module-on-boot.patch
new file mode 100644 (file)
index 0000000..66f9a76
--- /dev/null
@@ -0,0 +1,27 @@
+From: =?utf-8?q?Fabian_Gr=C3=BCnbichler?= <f.gruenbichler@proxmox.com>
+Date: Fri, 19 Jan 2018 12:13:46 +0100
+Subject: always load ZFS module on boot
+MIME-Version: 1.0
+Content-Type: text/plain; charset="utf-8"
+Content-Transfer-Encoding: 8bit
+
+since zfs-import-scan.service is disabled by default, and
+zfs-import-cache.service only gets started if a cache file exists, this
+is needed for zfs-mount, zfs-share and zfs-zed services in case ZFS is
+not actually used.
+
+Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
+Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
+---
+ etc/modules-load.d/zfs.conf.in | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/etc/modules-load.d/zfs.conf.in b/etc/modules-load.d/zfs.conf.in
+index 8b41baa..59b058c 100644
+--- a/etc/modules-load.d/zfs.conf.in
++++ b/etc/modules-load.d/zfs.conf.in
+@@ -1,3 +1,3 @@
+ # Always load kernel modules at boot.  The default behavior is to load the
+ # kernel modules in the zfs-import-*.service or when blkid(8) detects a pool.
+-#zfs
++zfs
diff --git a/zfs/debian/patches/0005-fix-install-path-of-zpool.d-scripts.patch b/zfs/debian/patches/0005-fix-install-path-of-zpool.d-scripts.patch
new file mode 100644 (file)
index 0000000..6e9ff86
--- /dev/null
@@ -0,0 +1,37 @@
+From: =?utf-8?q?Fabian_Gr=C3=BCnbichler?= <f.gruenbichler@proxmox.com>
+Date: Thu, 12 Oct 2017 08:57:48 +0200
+Subject: fix install path of zpool.d scripts
+MIME-Version: 1.0
+Content-Type: text/plain; charset="utf-8"
+Content-Transfer-Encoding: 8bit
+
+Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
+---
+ cmd/zpool/Makefile.am | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/cmd/zpool/Makefile.am b/cmd/zpool/Makefile.am
+index d07f8d6..5d26f32 100644
+--- a/cmd/zpool/Makefile.am
++++ b/cmd/zpool/Makefile.am
+@@ -22,11 +22,11 @@ zpool_LDADD = \
+       -lm $(LIBBLKID)
+ zpoolconfdir = $(sysconfdir)/zfs/zpool.d
+-zpoolexecdir = $(libexecdir)/zfs/zpool.d
++zpoollibdir = /usr/lib/zfs-linux/zpool.d
+ EXTRA_DIST = zpool.d/README
+-dist_zpoolexec_SCRIPTS = \
++dist_zpoollib_SCRIPTS = \
+       zpool.d/enc \
+       zpool.d/encdev \
+       zpool.d/fault_led \
+@@ -119,5 +119,5 @@ install-data-hook:
+       for f in $(zpoolconfdefaults); do \
+         test -f "$(DESTDIR)$(zpoolconfdir)/$${f}" -o \
+              -L "$(DESTDIR)$(zpoolconfdir)/$${f}" || \
+-          ln -s "$(zpoolexecdir)/$${f}" "$(DESTDIR)$(zpoolconfdir)"; \
++          ln -s "$(zpoollibdir)/$${f}" "$(DESTDIR)$(zpoolconfdir)"; \
+       done
diff --git a/zfs/debian/patches/0006-cmd-python-exec-path.patch b/zfs/debian/patches/0006-cmd-python-exec-path.patch
new file mode 100644 (file)
index 0000000..a1b6da1
--- /dev/null
@@ -0,0 +1,40 @@
+From: Colin Ian King <colin.king@canonical.com>
+Date: Mon, 17 Oct 2016 14:30:56 +0800
+Subject: Use python3 for arcstat.py, arc_summary.py & dbufstat.py
+
+---
+ cmd/arc_summary/arc_summary.py | 2 +-
+ cmd/arcstat/arcstat.py         | 2 +-
+ cmd/dbufstat/dbufstat.py       | 2 +-
+ 3 files changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/cmd/arc_summary/arc_summary.py b/cmd/arc_summary/arc_summary.py
+index f6dbb9b..723c2e5 100755
+--- a/cmd/arc_summary/arc_summary.py
++++ b/cmd/arc_summary/arc_summary.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/python
++#!/usr/bin/python3
+ #
+ # $Id: arc_summary.pl,v 388:e27800740aa2 2011-07-08 02:53:29Z jhell $
+ #
+diff --git a/cmd/arcstat/arcstat.py b/cmd/arcstat/arcstat.py
+index d7d3e9b..3a7a47d 100755
+--- a/cmd/arcstat/arcstat.py
++++ b/cmd/arcstat/arcstat.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/python
++#!/usr/bin/python3
+ #
+ # Print out ZFS ARC Statistics exported via kstat(1)
+ # For a definition of fields, or usage, use arctstat.pl -v
+diff --git a/cmd/dbufstat/dbufstat.py b/cmd/dbufstat/dbufstat.py
+index 42bb0c7..73e02ca 100755
+--- a/cmd/dbufstat/dbufstat.py
++++ b/cmd/dbufstat/dbufstat.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/python
++#!/usr/bin/python3
+ #
+ # Print out statistics for all cached dmu buffers.  This information
+ # is available through the dbufs kstat and may be post-processed as
diff --git a/zfs/debian/patches/0007-zed-service-bindir.patch b/zfs/debian/patches/0007-zed-service-bindir.patch
new file mode 100644 (file)
index 0000000..1f37d89
--- /dev/null
@@ -0,0 +1,24 @@
+From: =?utf-8?q?Fabian_Gr=C3=BCnbichler?= <f.gruenbichler@proxmox.com>
+Date: Mon, 6 Feb 2017 12:04:35 +0100
+Subject: Fix the path to the zed binary on the systemd unit.
+
+We install zed into /usr/sbin manually meanwhile the upstream default is
+installing it into /sbin. Ubuntu packages also install zed to /usr/sbin, but
+they ship their own zfs-zed unit.
+---
+ etc/systemd/system/zfs-zed.service.in | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/etc/systemd/system/zfs-zed.service.in b/etc/systemd/system/zfs-zed.service.in
+index e3dec3d..0b85f16 100644
+--- a/etc/systemd/system/zfs-zed.service.in
++++ b/etc/systemd/system/zfs-zed.service.in
+@@ -5,7 +5,7 @@ After=zfs-import-cache.service
+ After=zfs-import-scan.service
+ [Service]
+-ExecStart=@sbindir@/zed -F
++ExecStart=/usr/sbin/zed -F
+ Restart=on-abort
+ [Install]
diff --git a/zfs/debian/patches/0008-increase-default-zcmd-allocation-to-256K.patch b/zfs/debian/patches/0008-increase-default-zcmd-allocation-to-256K.patch
new file mode 100644 (file)
index 0000000..06bda1c
--- /dev/null
@@ -0,0 +1,74 @@
+From: Colin Ian King <colin.king@canonical.com>
+Date: Tue, 31 Oct 2017 19:12:42 +0800
+Subject: increase-default-zcmd-allocation-to-256K
+
+Increase default zcmd allocation to 256K (LP: #567557)
+
+When creating hundreds of clones (for example using containers with
+LXD) cloning slows down as the number of clones increases over time.
+The reason for this is that the fetching of the clone information
+using a small zcmd buffer requires two ioctl calls, one to determine
+the size and a second to return the data. However, this requires
+gathering the data twice, once to determine the size and again to
+populate the zcmd buffer to return it to userspace.
+
+These are expensive ioctl() calls, so instead, make the default buffer
+size much larger: 256K. This may sound large, but on 64 bit systems
+running ZFS this is not a huge chunk of memory for the speed
+improvement we gains for large sets of clones:
+
+        16K zcmd        256K zcmd
+Clones Time    Clones  Time    Clone   % improvement
+        (secs)         per sec (secs)  per sec
+100    7       14.29   5       20.00   28.57
+200    10      20.00   9       22.22   10.00
+300    19      15.79   18      16.67   5.26
+400    22      18.18   22      18.18   0.00
+500    29      17.24   29      17.24   0.00
+600    39      15.38   39      15.38   0.00
+700    46      15.22   45      15.56   2.17
+800    58      13.79   51      15.69   12.07
+900    74      12.16   61      14.75   17.57
+1000   90      11.11   74      13.51   17.78
+1100   98      11.22   87      12.64   11.22
+1200   102     11.76   95      12.63   6.86
+1300   113     11.50   104     12.50   7.96
+1400   143     9.79    109     12.84   23.78
+1500   145     10.34   132     11.36   8.97
+1600   165     9.70    145     11.03   12.12
+1700   187     9.09    156     10.90   16.58
+1800   210     8.57    166     10.84   20.95
+1900   226     8.41    183     10.38   19.03
+2000   256     7.81    198     10.10   22.66
+2200   311     7.07    238     9.24    23.47
+2400   373     6.43    271     8.86    27.35
+2600   487     5.34    316     8.23    35.11
+3000   619     4.85    426     7.04    31.18
+3400   915     3.72    549     6.19    40.00
+4000   1332    3.00    923     4.33    30.71
+
+As one can see, with > 2000 clones we get 25-40% speed
+improvement.
+
+This patch was originally suggested by Brian Behlendorf
+(see https://github.com/zfsonlinux/zfs/issues/6372), however
+this fix is a more generic fix to cover all zcmd cases.
+
+Signed-off-by: Colin Ian King <colin.king@canonical.com>
+---
+ lib/libzfs/libzfs_util.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/lib/libzfs/libzfs_util.c b/lib/libzfs/libzfs_util.c
+index bc51a76..8580415 100644
+--- a/lib/libzfs/libzfs_util.c
++++ b/lib/libzfs/libzfs_util.c
+@@ -1354,7 +1354,7 @@ int
+ zcmd_alloc_dst_nvlist(libzfs_handle_t *hdl, zfs_cmd_t *zc, size_t len)
+ {
+       if (len == 0)
+-              len = 16 * 1024;
++              len = 256 * 1024;
+       zc->zc_nvlist_dst_size = len;
+       zc->zc_nvlist_dst =
+           (uint64_t)(uintptr_t)zfs_alloc(hdl, zc->zc_nvlist_dst_size);
diff --git a/zfs/debian/patches/0009-import-with-d-dev-disk-by-id-in-scan-service.patch b/zfs/debian/patches/0009-import-with-d-dev-disk-by-id-in-scan-service.patch
new file mode 100644 (file)
index 0000000..b58bbba
--- /dev/null
@@ -0,0 +1,26 @@
+From: =?utf-8?q?Fabian_Gr=C3=BCnbichler?= <f.gruenbichler@proxmox.com>
+Date: Mon, 24 Oct 2016 13:47:06 +0200
+Subject: import with -d /dev/disk/by-id in scan service
+MIME-Version: 1.0
+Content-Type: text/plain; charset="utf-8"
+Content-Transfer-Encoding: 8bit
+
+Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
+Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
+---
+ etc/systemd/system/zfs-import-scan.service.in | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/etc/systemd/system/zfs-import-scan.service.in b/etc/systemd/system/zfs-import-scan.service.in
+index fd66505..5cbfec8 100644
+--- a/etc/systemd/system/zfs-import-scan.service.in
++++ b/etc/systemd/system/zfs-import-scan.service.in
+@@ -13,7 +13,7 @@ ConditionPathExists=!@sysconfdir@/zfs/zpool.cache
+ Type=oneshot
+ RemainAfterExit=yes
+ ExecStartPre=-/sbin/modprobe zfs
+-ExecStart=@sbindir@/zpool import -aN -o cachefile=none
++ExecStart=@sbindir@/zpool import -aN -d /dev/disk/by-id -o cachefile=none
+ [Install]
+ WantedBy=zfs-import.target
diff --git a/zfs/debian/patches/0010-Fix-deadlock-between-zfs-umount-snapentry_expire.patch b/zfs/debian/patches/0010-Fix-deadlock-between-zfs-umount-snapentry_expire.patch
new file mode 100644 (file)
index 0000000..bcf75f7
--- /dev/null
@@ -0,0 +1,60 @@
+From: Rohan Puri <rohan.puri15@gmail.com>
+Date: Sat, 28 Jul 2018 18:32:12 +0530
+Subject: Fix deadlock between zfs umount & snapentry_expire
+
+zfs umount -> zfsctl_destroy() takes the zfs_snapshot_lock as a
+writer and calls zfsctl_snapshot_unmount_cancel(), which waits
+for snapentry_expire() if present (when snap is automounted).
+This snapentry_expire() itself then waits for zfs_snapshot_lock
+as a reader, resulting in a deadlock.
+
+The fix is to only hold the zfs_snapshot_lock over the tree
+lookup and removal.  After a successful lookup the lock can
+be dropped and zfs_snapentry_t will remain valid until the
+reference taken by the lookup is released.
+
+Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
+Signed-off-by: Rohan Puri <rohan.puri15@gmail.com>
+Closes #7751
+Closes #7752
+
+(Cherry-picked from fd7265c646f40e364396af5014bbb83e809e124a)
+Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
+
+Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
+---
+ module/zfs/zfs_ctldir.c | 11 +++++------
+ 1 file changed, 5 insertions(+), 6 deletions(-)
+
+diff --git a/module/zfs/zfs_ctldir.c b/module/zfs/zfs_ctldir.c
+index bf5a1d0..2964b65 100644
+--- a/module/zfs/zfs_ctldir.c
++++ b/module/zfs/zfs_ctldir.c
+@@ -358,8 +358,6 @@ snapentry_expire(void *data)
+ static void
+ zfsctl_snapshot_unmount_cancel(zfs_snapentry_t *se)
+ {
+-      ASSERT(RW_LOCK_HELD(&zfs_snapshot_lock));
+-
+       if (taskq_cancel_id(system_delay_taskq, se->se_taskqid) == 0) {
+               se->se_taskqid = TASKQID_INVALID;
+               zfsctl_snapshot_rele(se);
+@@ -570,13 +568,14 @@ zfsctl_destroy(zfsvfs_t *zfsvfs)
+               uint64_t objsetid = dmu_objset_id(zfsvfs->z_os);
+               rw_enter(&zfs_snapshot_lock, RW_WRITER);
+-              if ((se = zfsctl_snapshot_find_by_objsetid(spa, objsetid))
+-                  != NULL) {
+-                      zfsctl_snapshot_unmount_cancel(se);
++              se = zfsctl_snapshot_find_by_objsetid(spa, objsetid);
++              if (se != NULL)
+                       zfsctl_snapshot_remove(se);
++              rw_exit(&zfs_snapshot_lock);
++              if (se != NULL) {
++                      zfsctl_snapshot_unmount_cancel(se);
+                       zfsctl_snapshot_rele(se);
+               }
+-              rw_exit(&zfs_snapshot_lock);
+       } else if (zfsvfs->z_ctldir) {
+               iput(zfsvfs->z_ctldir);
+               zfsvfs->z_ctldir = NULL;
diff --git a/zfs/debian/patches/0011-deadlock-between-mm_sem-and-tx-assign-in-zfs_write-a.patch b/zfs/debian/patches/0011-deadlock-between-mm_sem-and-tx-assign-in-zfs_write-a.patch
new file mode 100644 (file)
index 0000000..c898eb6
--- /dev/null
@@ -0,0 +1,374 @@
+From: ilbsmart <wgqimut@gmail.com>
+Date: Wed, 17 Oct 2018 02:11:24 +0800
+Subject: deadlock between mm_sem and tx assign in zfs_write() and page fault
+
+The bug time sequence:
+1. thread #1, `zfs_write` assign a txg "n".
+2. In a same process, thread #2, mmap page fault (which means the
+   `mm_sem` is hold) occurred, `zfs_dirty_inode` open a txg failed,
+   and wait previous txg "n" completed.
+3. thread #1 call `uiomove` to write, however page fault is occurred
+   in `uiomove`, which means it need `mm_sem`, but `mm_sem` is hold by
+   thread #2, so it stuck and can't complete,  then txg "n" will
+   not complete.
+
+So thread #1 and thread #2 are deadlocked.
+
+Reviewed-by: Chunwei Chen <tuxoko@gmail.com>
+Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
+Reviewed-by: Matthew Ahrens <mahrens@delphix.com>
+Signed-off-by: Grady Wong <grady.w@xtaotech.com>
+Closes #7939
+
+(backported from: zfs-upstream 779a6c0bf6df76e0dd92c1ccf81f48512b835bb0)
+Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
+---
+ include/sys/uio_impl.h                             |   2 +-
+ module/zcommon/zfs_uio.c                           |  31 ++++-
+ module/zfs/zfs_vnops.c                             |  24 +++-
+ tests/zfs-tests/cmd/mmapwrite/mmapwrite.c          | 140 +++++++++++++++------
+ .../tests/functional/mmap/mmap_write_001_pos.ksh   |   8 +-
+ 5 files changed, 151 insertions(+), 54 deletions(-)
+
+diff --git a/include/sys/uio_impl.h b/include/sys/uio_impl.h
+index 37e283d..cfef0b9 100644
+--- a/include/sys/uio_impl.h
++++ b/include/sys/uio_impl.h
+@@ -42,7 +42,7 @@
+ #include <sys/uio.h>
+ extern int uiomove(void *, size_t, enum uio_rw, uio_t *);
+-extern void uio_prefaultpages(ssize_t, uio_t *);
++extern int uio_prefaultpages(ssize_t, uio_t *);
+ extern int uiocopy(void *, size_t, enum uio_rw, uio_t *, size_t *);
+ extern void uioskip(uio_t *, size_t);
+diff --git a/module/zcommon/zfs_uio.c b/module/zcommon/zfs_uio.c
+index 7b4175b..8e969bb 100644
+--- a/module/zcommon/zfs_uio.c
++++ b/module/zcommon/zfs_uio.c
+@@ -50,6 +50,7 @@
+ #include <sys/types.h>
+ #include <sys/uio_impl.h>
+ #include <linux/kmap_compat.h>
++#include <linux/uaccess.h>
+ /*
+  * Move "n" bytes at byte address "p"; "rw" indicates the direction
+@@ -77,8 +78,24 @@ uiomove_iov(void *p, size_t n, enum uio_rw rw, struct uio *uio)
+                               if (copy_to_user(iov->iov_base+skip, p, cnt))
+                                       return (EFAULT);
+                       } else {
+-                              if (copy_from_user(p, iov->iov_base+skip, cnt))
+-                                      return (EFAULT);
++                              if (uio->uio_fault_disable) {
++                                      if (!access_ok(VERIFY_READ,
++                                          (iov->iov_base + skip), cnt)) {
++                                              return (EFAULT);
++                                      }
++
++                                      pagefault_disable();
++                                      if (__copy_from_user_inatomic(p,
++                                          (iov->iov_base + skip), cnt)) {
++                                              pagefault_enable();
++                                              return (EFAULT);
++                                      }
++                                      pagefault_enable();
++                              } else {
++                                      if (copy_from_user(p,
++                                          (iov->iov_base + skip), cnt))
++                                              return (EFAULT);
++                              }
+                       }
+                       break;
+               case UIO_SYSSPACE:
+@@ -156,7 +173,7 @@ EXPORT_SYMBOL(uiomove);
+  * error will terminate the process as this is only a best attempt to get
+  * the pages resident.
+  */
+-void
++int
+ uio_prefaultpages(ssize_t n, struct uio *uio)
+ {
+       const struct iovec *iov;
+@@ -170,7 +187,7 @@ uio_prefaultpages(ssize_t n, struct uio *uio)
+       switch (uio->uio_segflg) {
+               case UIO_SYSSPACE:
+               case UIO_BVEC:
+-                      return;
++                      return (0);
+               case UIO_USERSPACE:
+               case UIO_USERISPACE:
+                       break;
+@@ -194,7 +211,7 @@ uio_prefaultpages(ssize_t n, struct uio *uio)
+               p = iov->iov_base + skip;
+               while (cnt) {
+                       if (fuword8((uint8_t *)p, &tmp))
+-                              return;
++                              return (EFAULT);
+                       incr = MIN(cnt, PAGESIZE);
+                       p += incr;
+                       cnt -= incr;
+@@ -204,8 +221,10 @@ uio_prefaultpages(ssize_t n, struct uio *uio)
+                */
+               p--;
+               if (fuword8((uint8_t *)p, &tmp))
+-                      return;
++                      return (EFAULT);
+       }
++
++      return (0);
+ }
+ EXPORT_SYMBOL(uio_prefaultpages);
+diff --git a/module/zfs/zfs_vnops.c b/module/zfs/zfs_vnops.c
+index 5a2e55e..c866352 100644
+--- a/module/zfs/zfs_vnops.c
++++ b/module/zfs/zfs_vnops.c
+@@ -675,7 +675,10 @@ zfs_write(struct inode *ip, uio_t *uio, int ioflag, cred_t *cr)
+               xuio = (xuio_t *)uio;
+       else
+ #endif
+-              uio_prefaultpages(MIN(n, max_blksz), uio);
++              if (uio_prefaultpages(MIN(n, max_blksz), uio)) {
++                      ZFS_EXIT(zfsvfs);
++                      return (SET_ERROR(EFAULT));
++              }
+       /*
+        * If in append mode, set the io offset pointer to eof.
+@@ -820,8 +823,19 @@ zfs_write(struct inode *ip, uio_t *uio, int ioflag, cred_t *cr)
+               if (abuf == NULL) {
+                       tx_bytes = uio->uio_resid;
++                      uio->uio_fault_disable = B_TRUE;
+                       error = dmu_write_uio_dbuf(sa_get_db(zp->z_sa_hdl),
+                           uio, nbytes, tx);
++                      if (error == EFAULT) {
++                              dmu_tx_commit(tx);
++                              if (uio_prefaultpages(MIN(n, max_blksz), uio)) {
++                                      break;
++                              }
++                              continue;
++                      } else if (error != 0) {
++                              dmu_tx_commit(tx);
++                              break;
++                      }
+                       tx_bytes -= uio->uio_resid;
+               } else {
+                       tx_bytes = nbytes;
+@@ -921,8 +935,12 @@ zfs_write(struct inode *ip, uio_t *uio, int ioflag, cred_t *cr)
+               ASSERT(tx_bytes == nbytes);
+               n -= nbytes;
+-              if (!xuio && n > 0)
+-                      uio_prefaultpages(MIN(n, max_blksz), uio);
++              if (!xuio && n > 0) {
++                      if (uio_prefaultpages(MIN(n, max_blksz), uio)) {
++                              error = EFAULT;
++                              break;
++                      }
++              }
+       }
+       zfs_inode_update(zp);
+diff --git a/tests/zfs-tests/cmd/mmapwrite/mmapwrite.c b/tests/zfs-tests/cmd/mmapwrite/mmapwrite.c
+index 190d31a..b9915d5 100644
+--- a/tests/zfs-tests/cmd/mmapwrite/mmapwrite.c
++++ b/tests/zfs-tests/cmd/mmapwrite/mmapwrite.c
+@@ -31,74 +31,132 @@
+ #include <string.h>
+ #include <sys/mman.h>
+ #include <pthread.h>
++#include <errno.h>
++#include <err.h>
+ /*
+  * --------------------------------------------------------------------
+- * Bug Id: 5032643
++ * Bug Issue Id: #7512
++ * The bug time sequence:
++ * 1. context #1, zfs_write assign a txg "n".
++ * 2. In the same process, context #2, mmap page fault (which means the mm_sem
++ *    is hold) occurred, zfs_dirty_inode open a txg failed, and wait previous
++ *    txg "n" completed.
++ * 3. context #1 call uiomove to write, however page fault is occurred in
++ *    uiomove, which means it need mm_sem, but mm_sem is hold by
++ *    context #2, so it stuck and can't complete, then txg "n" will not
++ *    complete.
+  *
+- * Simply writing to a file and mmaping that file at the same time can
+- * result in deadlock.  Nothing perverse like writing from the file's
+- * own mapping is required.
++ * So context #1 and context #2 trap into the "dead lock".
+  * --------------------------------------------------------------------
+  */
++#define       NORMAL_WRITE_TH_NUM     2
++
+ static void *
+-mapper(void *fdp)
++normal_writer(void *filename)
+ {
+-      void *addr;
+-      int fd = *(int *)fdp;
++      char *file_path = filename;
++      int fd = -1;
++      ssize_t write_num = 0;
++      int page_size = getpagesize();
+-      if ((addr =
+-          mmap(0, 8192, PROT_READ, MAP_SHARED, fd, 0)) == MAP_FAILED) {
+-              perror("mmap");
+-              exit(1);
++      fd = open(file_path, O_RDWR | O_CREAT, 0777);
++      if (fd == -1) {
++              err(1, "failed to open %s", file_path);
+       }
+-      for (;;) {
+-              if (mmap(addr, 8192, PROT_READ,
+-                  MAP_SHARED|MAP_FIXED, fd, 0) == MAP_FAILED) {
+-                      perror("mmap");
+-                      exit(1);
++
++      char *buf = malloc(1);
++      while (1) {
++              write_num = write(fd, buf, 1);
++              if (write_num == 0) {
++                      err(1, "write failed!");
++                      break;
+               }
++              lseek(fd, page_size, SEEK_CUR);
++      }
++
++      if (buf) {
++              free(buf);
+       }
+-      /* NOTREACHED */
+-      return ((void *)1);
+ }
+-int
+-main(int argc, char **argv)
++static void *
++map_writer(void *filename)
+ {
+-      int fd;
+-      char buf[1024];
+-      pthread_t tid;
++      int fd = -1;
++      int ret = 0;
++      char *buf = NULL;
++      int page_size = getpagesize();
++      int op_errno = 0;
++      char *file_path = filename;
+-      memset(buf, 'a', sizeof (buf));
++      while (1) {
++              ret = access(file_path, F_OK);
++              if (ret) {
++                      op_errno = errno;
++                      if (op_errno == ENOENT) {
++                              fd = open(file_path, O_RDWR | O_CREAT, 0777);
++                              if (fd == -1) {
++                                      err(1, "open file failed");
++                              }
+-      if (argc != 2) {
+-              (void) printf("usage: %s <file name>\n", argv[0]);
+-              exit(1);
+-      }
++                              ret = ftruncate(fd, page_size);
++                              if (ret == -1) {
++                                      err(1, "truncate file failed");
++                              }
++                      } else {
++                              err(1, "access file failed!");
++                      }
++              } else {
++                      fd = open(file_path, O_RDWR, 0777);
++                      if (fd == -1) {
++                              err(1, "open file failed");
++                      }
++              }
+-      if ((fd = open(argv[1], O_RDWR|O_CREAT|O_TRUNC, 0666)) == -1) {
+-              perror("open");
+-              exit(1);
++              if ((buf = mmap(NULL, page_size, PROT_READ | PROT_WRITE,
++                  MAP_SHARED, fd, 0)) == MAP_FAILED) {
++                      err(1, "map file failed");
++              }
++
++              if (fd != -1)
++                      close(fd);
++
++              char s[10] = {0, };
++              memcpy(buf, s, 10);
++              ret = munmap(buf, page_size);
++              if (ret != 0) {
++                      err(1, "unmap file failed");
++              }
+       }
++}
+-      (void) pthread_setconcurrency(2);
+-      if (pthread_create(&tid, NULL, mapper, &fd) != 0) {
+-              perror("pthread_create");
+-              close(fd);
++int
++main(int argc, char **argv)
++{
++      pthread_t map_write_tid;
++      pthread_t normal_write_tid[NORMAL_WRITE_TH_NUM];
++      int i = 0;
++
++      if (argc != 3) {
++              (void) printf("usage: %s <normal write file name>"
++                  "<map write file name>\n", argv[0]);
+               exit(1);
+       }
+-      for (;;) {
+-              if (write(fd, buf, sizeof (buf)) == -1) {
+-                      perror("write");
+-                      close(fd);
+-                      exit(1);
++
++      for (i = 0; i < NORMAL_WRITE_TH_NUM; i++) {
++              if (pthread_create(&normal_write_tid[i], NULL, normal_writer,
++                  argv[1])) {
++                      err(1, "pthread_create normal_writer failed.");
+               }
+       }
+-      close(fd);
++      if (pthread_create(&map_write_tid, NULL, map_writer, argv[2])) {
++              err(1, "pthread_create map_writer failed.");
++      }
+       /* NOTREACHED */
++      pthread_join(map_write_tid, NULL);
+       return (0);
+ }
+diff --git a/tests/zfs-tests/tests/functional/mmap/mmap_write_001_pos.ksh b/tests/zfs-tests/tests/functional/mmap/mmap_write_001_pos.ksh
+index 1eda971..24150b8 100755
+--- a/tests/zfs-tests/tests/functional/mmap/mmap_write_001_pos.ksh
++++ b/tests/zfs-tests/tests/functional/mmap/mmap_write_001_pos.ksh
+@@ -53,12 +53,14 @@ if ! is_mp; then
+ fi
+ log_must chmod 777 $TESTDIR
+-mmapwrite $TESTDIR/test-write-file &
++mmapwrite $TESTDIR/normal_write_file $TESTDIR/map_write_file &
+ PID_MMAPWRITE=$!
+-log_note "mmapwrite $TESTDIR/test-write-file pid: $PID_MMAPWRITE"
++log_note "mmapwrite $TESTDIR/normal_write_file $TESTDIR/map_write_file"\
++       "pid: $PID_MMAPWRITE"
+ log_must sleep 30
+ log_must kill -9 $PID_MMAPWRITE
+-log_must ls -l $TESTDIR/test-write-file
++log_must ls -l $TESTDIR/normal_write_file
++log_must ls -l $TESTDIR/map_write_file
+ log_pass "write(2) a mmap(2)'ing file succeeded."
diff --git a/zfs/debian/patches/0012-enable-zed.patch b/zfs/debian/patches/0012-enable-zed.patch
new file mode 100644 (file)
index 0000000..f6a3f95
--- /dev/null
@@ -0,0 +1,33 @@
+From: Richard Laager <rlaager@wiktel.com>
+Date: Wed, 30 Jan 2019 15:12:04 +0100
+Subject: Enable zed emails
+
+The OpenZFS event daemon monitors pools. This patch enables the email sending
+function by default (if zed is installed). This is consistent with the default
+behavior of mdadm.
+---
+ cmd/zed/zed.d/zed.rc | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/cmd/zed/zed.d/zed.rc b/cmd/zed/zed.d/zed.rc
+index 35a4d12..c6c106b 100644
+--- a/cmd/zed/zed.d/zed.rc
++++ b/cmd/zed/zed.d/zed.rc
+@@ -15,7 +15,7 @@
+ # Email will only be sent if ZED_EMAIL_ADDR is defined.
+ # Disabled by default; uncomment to enable.
+ #
+-#ZED_EMAIL_ADDR="root"
++ZED_EMAIL_ADDR="root"
+ ##
+ # Name or path of executable responsible for sending notifications via email;
+@@ -41,7 +41,7 @@
+ ##
+ # Minimum number of seconds between notifications for a similar event.
+ #
+-#ZED_NOTIFY_INTERVAL_SECS=3600
++ZED_NOTIFY_INTERVAL_SECS=3600
+ ##
+ # Notification verbosity.
diff --git a/zfs/debian/patches/series b/zfs/debian/patches/series
new file mode 100644 (file)
index 0000000..a7f8784
--- /dev/null
@@ -0,0 +1,12 @@
+0001-Check-for-META-and-DCH-consistency-in-autoconf.patch
+0002-Add-libuutil-to-LIBADD-for-libzfs-and-libzfs_core.patch
+0003-add-man-page-reference-to-systemd-units.patch
+0004-always-load-ZFS-module-on-boot.patch
+0005-fix-install-path-of-zpool.d-scripts.patch
+0006-cmd-python-exec-path.patch
+0007-zed-service-bindir.patch
+0008-increase-default-zcmd-allocation-to-256K.patch
+0009-import-with-d-dev-disk-by-id-in-scan-service.patch
+0010-Fix-deadlock-between-zfs-umount-snapentry_expire.patch
+0011-deadlock-between-mm_sem-and-tx-assign-in-zfs_write-a.patch
+0012-enable-zed.patch
diff --git a/zfs/debian/rules b/zfs/debian/rules
new file mode 100755 (executable)
index 0000000..f23133b
--- /dev/null
@@ -0,0 +1,87 @@
+#!/usr/bin/make -f
+
+include /usr/share/dpkg/default.mk
+
+export DEB_BUILD_MAINT_OPTIONS = hardening=+all
+
+%:
+       dh $@ --with autoreconf,python3,systemd --parallel
+
+override_dh_autoreconf:
+       @# Embed the downstream version in the module.
+       @sed -e 's/^Version:.*/Version:      $(DEB_VERSION_UPSTREAM)/' -i.orig META
+
+       dh_autoreconf
+
+override_dh_auto_configure:
+       @# Build the userland, but don't build the kernel modules.
+       dh_auto_configure -- \
+         --bindir=/usr/bin \
+         --sbindir=/sbin \
+         --libdir=/lib \
+         --with-udevdir=/lib/udev \
+         --enable-systemd \
+         --with-systemdunitdir=/lib/systemd/system \
+         --with-systemdpresetdir=/lib/systemd/system-preset \
+         --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'
+
+       # Use upstream's bash completion
+       install -D -t '$(CURDIR)/debian/tmp/usr/share/bash-completion/completions/' \
+               '$(CURDIR)/contrib/bash_completion.d/zfs'
+
+       # Move from bin_dir to /usr/sbin
+       # Remove suffix (.py) as per policy 10.4 - Scripts
+       # https://www.debian.org/doc/debian-policy/ch-files.html#s-scripts
+       mkdir -p '$(CURDIR)/debian/tmp/usr/sbin/'
+       mv '$(CURDIR)/debian/tmp/usr/bin/arc_summary.py' '$(CURDIR)/debian/tmp/usr/sbin/arc_summary'
+       mv '$(CURDIR)/debian/tmp/usr/bin/arcstat.py' '$(CURDIR)/debian/tmp/usr/sbin/arcstat'
+       mv '$(CURDIR)/debian/tmp/usr/bin/dbufstat.py' '$(CURDIR)/debian/tmp/usr/sbin/dbufstat'
+
+       @# Zed has dependencies outside of the system root.
+       mv '$(CURDIR)/debian/tmp/sbin/zed' '$(CURDIR)/debian/tmp/usr/sbin/zed'
+
+       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}`; \
+               rm $${i}; \
+       done
+
+       chmod a-x '$(CURDIR)/debian/tmp/etc/zfs/zfs-functions'
+       chmod a-x '$(CURDIR)/debian/tmp/etc/default/zfs'
+       chmod a-x '$(CURDIR)/debian/tmp/usr/share/bash-completion/completions/zfs'
+
+override_dh_makeshlibs:
+       dh_makeshlibs -a -V
+ifeq ($(BUILD_UDEB), true)
+       dh_makeshlibs -V -plibnvpair1linux
+       dh_makeshlibs -V -plibuutil1linux
+       dh_makeshlibs -V -plibzfs2linux
+       dh_makeshlibs -V -plibzpool2linux
+       dh_makeshlibs -V -pzfsutils-linux
+endif
+
+override_dh_strip:
+       dh_strip --dbg-package=zfs-dbg
+
+override_dh_auto_clean:
+       find . -name .gitignore -delete
+       rm -rf zfs-$(DEB_VERSION_UPSTREAM)
+       dh_auto_clean
+       @if test -e META.orig; then mv META.orig META; fi
+
+override_dh_install:
+       find . -name lib*.la -delete
+       dh_install --fail-missing
+
+# ------------
+
+debian-copyright:
+       cme update dpkg-copyright -file debian/copyright.cme
diff --git a/zfs/debian/source/format b/zfs/debian/source/format
new file mode 100644 (file)
index 0000000..163aaf8
--- /dev/null
@@ -0,0 +1 @@
+3.0 (quilt)
diff --git a/zfs/debian/tree/zfs-initramfs/usr/share/initramfs-tools/conf.d/zfs b/zfs/debian/tree/zfs-initramfs/usr/share/initramfs-tools/conf.d/zfs
new file mode 100644 (file)
index 0000000..5103cc4
--- /dev/null
@@ -0,0 +1,8 @@
+for x in $(cat /proc/cmdline)
+do
+       case $x in
+               root=ZFS=*)
+                       BOOT=zfs
+                       ;;
+       esac
+done
diff --git a/zfs/debian/tree/zfs-initramfs/usr/share/initramfs-tools/hooks/zdev b/zfs/debian/tree/zfs-initramfs/usr/share/initramfs-tools/hooks/zdev
new file mode 100755 (executable)
index 0000000..0cf21a4
--- /dev/null
@@ -0,0 +1,67 @@
+#!/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/zvol_id /lib/udev/vdev_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
diff --git a/zfs/debian/tree/zfsutils-linux/etc/sudoers.d/zfs b/zfs/debian/tree/zfsutils-linux/etc/sudoers.d/zfs
new file mode 100644 (file)
index 0000000..5c5b789
--- /dev/null
@@ -0,0 +1,18 @@
+## 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
+#
+## allow any user to use basic read-only ZFS commands
+#ALL ALL = (root) NOPASSWD: C_ZFS
diff --git a/zfs/debian/tree/zfsutils-linux/usr/lib/os-probes/10zvol-test b/zfs/debian/tree/zfsutils-linux/usr/lib/os-probes/10zvol-test
new file mode 100755 (executable)
index 0000000..cdbe7a5
--- /dev/null
@@ -0,0 +1,14 @@
+#!/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
diff --git a/zfs/debian/tree/zfsutils-linux/usr/lib/zfs-linux/scrub b/zfs/debian/tree/zfsutils-linux/usr/lib/zfs-linux/scrub
new file mode 100755 (executable)
index 0000000..29b7709
--- /dev/null
@@ -0,0 +1,9 @@
+#!/bin/sh -eu
+
+# Scrub all healthy pools.
+zpool list -H -o health,name 2>&1 | \
+       awk 'BEGIN {FS="\t"} {if ($1 ~ /^ONLINE/) print $2}' | \
+while read pool
+do
+       zpool scrub "$pool"
+done
diff --git a/zfs/debian/watch b/zfs/debian/watch
new file mode 100644 (file)
index 0000000..3f7c332
--- /dev/null
@@ -0,0 +1,2 @@
+version=3
+https://zfsonlinux.org/ .*zfs-([\d\.]+)\.tar\.gz$
diff --git a/zfs/debian/zfs-initramfs.install b/zfs/debian/zfs-initramfs.install
new file mode 100644 (file)
index 0000000..2226209
--- /dev/null
@@ -0,0 +1,2 @@
+../tree/zfs-initramfs/* /
+usr/share/initramfs-tools/*
diff --git a/zfs/debian/zfs-initramfs.triggers b/zfs/debian/zfs-initramfs.triggers
new file mode 100644 (file)
index 0000000..6c9f454
--- /dev/null
@@ -0,0 +1 @@
+activate update-initramfs
diff --git a/zfs/debian/zfs-test.install b/zfs/debian/zfs-test.install
new file mode 100644 (file)
index 0000000..2067af7
--- /dev/null
@@ -0,0 +1,21 @@
+sbin/zinject
+sbin/zpios
+sbin/ztest
+usr/bin/raidz_test
+usr/share/man/man1/raidz_test.1
+usr/share/man/man1/test-runner.1
+usr/share/man/man1/zpios.1
+usr/share/man/man1/ztest.1
+usr/share/man/man8/zinject.8
+usr/share/zfs/common.sh
+usr/share/zfs/runfiles/
+usr/share/zfs/smb.sh
+usr/share/zfs/test-runner
+usr/share/zfs/zfs-tests.sh
+usr/share/zfs/zfs-tests/
+usr/share/zfs/zfs.sh
+usr/share/zfs/zimport.sh
+usr/share/zfs/zloop.sh
+usr/share/zfs/zpios*
+usr/share/zfs/zpool-config/
+usr/share/zfs/zpool-create.sh
diff --git a/zfs/debian/zfs-test.lintian-overrides b/zfs/debian/zfs-test.lintian-overrides
new file mode 100644 (file)
index 0000000..0d25a16
--- /dev/null
@@ -0,0 +1 @@
+zfs-test: arch-dependent-file-in-usr-share
diff --git a/zfs/debian/zfs-zed.install b/zfs/debian/zfs-zed.install
new file mode 100644 (file)
index 0000000..b7c1fa9
--- /dev/null
@@ -0,0 +1,5 @@
+etc/zfs/zed.d/*
+lib/systemd/system/zfs-zed.service
+usr/lib/*/zfs/zed.d/*
+usr/sbin/zed
+usr/share/man/man8/zed.8
diff --git a/zfs/debian/zfsutils-linux.cron.d b/zfs/debian/zfsutils-linux.cron.d
new file mode 100644 (file)
index 0000000..2f3a8ca
--- /dev/null
@@ -0,0 +1,4 @@
+PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
+
+# Scrub the second Sunday of every month.
+24 0 8-14 * * root [ $(date +\%w) -eq 0 ] && [ -x /usr/lib/zfs-linux/scrub ] && /usr/lib/zfs-linux/scrub
diff --git a/zfs/debian/zfsutils-linux.docs b/zfs/debian/zfsutils-linux.docs
new file mode 100644 (file)
index 0000000..425a0e5
--- /dev/null
@@ -0,0 +1,2 @@
+COPYRIGHT
+OPENSOLARIS.LICENSE
diff --git a/zfs/debian/zfsutils-linux.examples b/zfs/debian/zfsutils-linux.examples
new file mode 100644 (file)
index 0000000..618e82c
--- /dev/null
@@ -0,0 +1,4 @@
+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
diff --git a/zfs/debian/zfsutils-linux.install b/zfs/debian/zfsutils-linux.install
new file mode 100644 (file)
index 0000000..d200257
--- /dev/null
@@ -0,0 +1,36 @@
+../tree/zfsutils-linux/* /
+etc/default/zfs
+etc/zfs/zfs-functions
+etc/zfs/zpool.d/
+lib/systemd/system-preset/
+lib/systemd/system/zfs-import-cache.service
+lib/systemd/system/zfs-import-scan.service
+lib/systemd/system/zfs-import.target
+lib/systemd/system/zfs-mount.service
+lib/systemd/system/zfs-share.service
+lib/systemd/system/zfs.target
+lib/udev/
+sbin/fsck.zfs
+sbin/mount.zfs
+sbin/zdb
+sbin/zfs
+sbin/zhack
+sbin/zpool
+sbin/zstreamdump
+usr/bin/zgenhostid
+usr/lib/modules-load.d/ lib/
+usr/lib/zfs-linux/zpool.d/
+usr/sbin/arc_summary
+usr/sbin/arcstat
+usr/sbin/dbufstat
+usr/share/bash-completion/completions
+usr/share/man/man1/zhack.1
+usr/share/man/man5/
+usr/share/man/man8/fsck.zfs.8
+usr/share/man/man8/mount.zfs.8
+usr/share/man/man8/vdev_id.8
+usr/share/man/man8/zdb.8
+usr/share/man/man8/zfs.8
+usr/share/man/man8/zgenhostid.8
+usr/share/man/man8/zpool.8
+usr/share/man/man8/zstreamdump.8
diff --git a/zfs/debian/zfsutils-linux.lintian-overrides b/zfs/debian/zfsutils-linux.lintian-overrides
new file mode 100644 (file)
index 0000000..e264fb6
--- /dev/null
@@ -0,0 +1 @@
+systemd-service-file-refers-to-unusual-wantedby-target