]> TLD Linux GIT Repositories - packages/zfs.git/commitdiff
- ZFS 2.0.0 from PLD, w/o systemd stuff, TLDized a bit master
authorMarcin Krol <hawk@tld-linux.org>
Sat, 2 Jan 2021 10:48:31 +0000 (11:48 +0100)
committerMarcin Krol <hawk@tld-linux.org>
Sat, 2 Jan 2021 10:48:31 +0000 (11:48 +0100)
am.patch [new file with mode: 0644]
initdir.patch [new file with mode: 0644]
zfs.spec [new file with mode: 0644]

diff --git a/am.patch b/am.patch
new file mode 100644 (file)
index 0000000..1f827ab
--- /dev/null
+++ b/am.patch
@@ -0,0 +1,33 @@
+diff --git a/Makefile.am b/Makefile.am
+index 55cae89fa..8ce1af3b8 100644
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -9,14 +9,14 @@ if CONFIG_USER
+ SUBDIRS += udev etc man scripts lib tests cmd contrib
+ endif
+ if CONFIG_KERNEL
+-SUBDIRS += module
++SUBDIRS += scripts module
+ extradir = $(prefix)/src/zfs-$(VERSION)
+-extra_HEADERS = zfs.release.in zfs_config.h.in
++extra_HEADERS = zfs.release zfs_config.h
+ if BUILD_LINUX
+ kerneldir = $(prefix)/src/zfs-$(VERSION)/$(LINUX_VERSION)
+-nodist_kernel_HEADERS = zfs.release zfs_config.h module/$(LINUX_SYMBOLS)
++nodist_kernel_HEADERS = zfs.release.in zfs_config.h.in module/$(LINUX_SYMBOLS)
+ endif
+ endif
+@@ -54,8 +54,8 @@ install-data-hook:
+       cd $(DESTDIR)$(prefix)/src/spl-$(VERSION) && \
+       ln -s ../zfs-$(VERSION)/include/spl include && \
+       ln -s ../zfs-$(VERSION)/$(LINUX_VERSION) $(LINUX_VERSION) && \
+-      ln -s ../zfs-$(VERSION)/zfs_config.h.in spl_config.h.in && \
+-      ln -s ../zfs-$(VERSION)/zfs.release.in spl.release.in && \
++      ln -s ../zfs-$(VERSION)/zfs_config.h spl_config.h && \
++      ln -s ../zfs-$(VERSION)/zfs.release spl.release && \
+       cd $(DESTDIR)$(prefix)/src/zfs-$(VERSION)/$(LINUX_VERSION) && \
+       ln -fs zfs_config.h spl_config.h && \
+       ln -fs zfs.release spl.release
diff --git a/initdir.patch b/initdir.patch
new file mode 100644 (file)
index 0000000..9f5f36c
--- /dev/null
@@ -0,0 +1,11 @@
+--- zfs-2.0.0/config/zfs-build.m4~     2020-10-08 18:41:58.000000000 +0200
++++ zfs-2.0.0/config/zfs-build.m4      2020-12-24 23:45:01.909714362 +0100
+@@ -479,7 +479,7 @@
+       AC_MSG_CHECKING([default init directory])
+       case "$VENDOR" in
+               freebsd)    initdir=$sysconfdir/rc.d  ;;
+-              *)          initdir=$sysconfdir/init.d;;
++              *)          initdir=$sysconfdir/rc.d/init.d;;
+       esac
+       AC_MSG_RESULT([$initdir])
+       AC_SUBST(initdir)
diff --git a/zfs.spec b/zfs.spec
new file mode 100644 (file)
index 0000000..bd450e1
--- /dev/null
+++ b/zfs.spec
@@ -0,0 +1,628 @@
+# TODO:
+# - PLDify init script
+#
+# Conditional build:
+%bcond_with    kernel          # don't build kernel modules
+%bcond_without userspace       # don't build userspace programs
+%bcond_without python2         # CPython 2.x module
+%bcond_without python3         # CPython 3.x module
+%bcond_with    verbose         # verbose build (V=1)
+#
+# The goal here is to have main, userspace, package built once with
+# simple release number, and only rebuild kernel packages with kernel
+# version as part of release number, without the need to bump release
+# with every kernel change.
+%if 0%{?_pld_builder:1} && %{with kernel} && %{with userspace}
+%{error:kernel and userspace cannot be built at the same time on PLD builders}
+exit 1
+%endif
+
+%if %{without userspace}
+# nothing to be placed to debuginfo package
+%define                _enable_debug_packages  0
+%endif
+
+%define                _duplicate_files_terminate_build        0
+
+%define        rel     1
+%define        pname   zfs
+Summary:       Native Linux port of the ZFS filesystem
+Summary(pl.UTF-8):     Natywny linuksowy port systemu plików ZFS
+Name:          %{pname}%{?_pld_builder:%{?with_kernel:-kernel}}%{_alt_kernel}
+Version:       2.0.0
+Release:       %{rel}%{?_pld_builder:%{?with_kernel:@%{_kernel_ver_str}}}
+License:       CDDL
+Group:         Applications/System
+Source0:       https://github.com/openzfs/zfs/releases/download/zfs-%{version}/%{pname}-%{version}.tar.gz
+# Source0-md5: a6f2d1b87562d875d5b18f0580b8289f
+Patch0:                initdir.patch
+Patch1:                am.patch
+URL:           https://zfsonlinux.org/
+BuildRequires: autoconf >= 2.50
+BuildRequires: automake
+BuildRequires: libtool
+BuildRequires: rpmbuild(macros) >= 1.714
+%if %{with kernel}
+%{expand:%buildrequires_kernel kernel%%{_alt_kernel}-module-build >= 3:2.6.20.2}
+%endif
+%if %{with userspace}
+# only for mmap_libaio test command
+#BuildRequires:        libaio-devel
+BuildRequires: libblkid-devel
+BuildRequires: libselinux-devel
+BuildRequires: libtirpc-devel
+BuildRequires: libuuid-devel
+BuildRequires: openssl-devel
+BuildRequires: pam-devel
+BuildRequires: pkgconfig
+BuildRequires: udev-devel
+BuildRequires: zlib-devel
+%if %{with python2}
+BuildRequires: python-cffi
+BuildRequires: python-modules >= 1:2.6
+BuildRequires: python-setuptools
+%endif
+%if %{with python3}
+BuildRequires: python3-cffi
+BuildRequires: python3-modules >= 1:3.4
+BuildRequires: python3-setuptools
+%endif
+%if %{with python2} || %{with python3}
+BuildRequires: rpm-pythonprov
+%endif
+%endif
+Requires:      %{pname}-libs = %{version}-%{release}
+Obsoletes:     spl < 0.7.9-2
+BuildRoot:     %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
+
+%define                dracutlibdir    %{_prefix}/lib/dracut
+
+%description
+ZFS is an advanced file system and volume manager which was originally
+developed for Solaris and is now maintained by the Illumos community.
+
+ZFS on Linux, which is also known as ZoL, is currently feature
+complete. It includes fully functional and stable SPA, DMU, ZVOL, and
+ZPL layers.
+
+%description -l pl.UTF-8
+ZFS to zaawansowany system plików i zarządca wolumenów, oryginalnie
+stworzony dla Solarisa, obecnie utrzymywany przez społeczność Illumos.
+
+ZFS dla Linuksa, znany takża jako ZoL (ZFS on Linux), jest obecnie w
+pełni funkcjonalny. Zawiera w pełni funkcjonalne i stabilne warstwy
+SPA, DMU, ZVOL i ZPL.
+
+%package libs
+Summary:       ZFS on Linux libraries
+Summary(pl.UTF-8):     Biblioteki ZFS-a dla Linuksa
+License:       CDDL
+Group:         Libraries
+Requires(post,postun): /sbin/ldconfig
+
+%description libs
+ZFS on Linux libraries.
+
+%description libs -l pl.UTF-8
+Biblioteki ZFS-a dla Linuksa.
+
+%package devel
+Summary:       Header files for ZFS libraries
+Summary(pl.UTF-8):     Pliki nagłówkowe bibliotek ZFS-a
+License:       CDDL
+Group:         Development/Libraries
+Requires:      %{pname}-libs = %{version}-%{release}
+Requires:      libselinux-devel
+Requires:      libtirpc-devel
+Requires:      libuuid-devel
+Requires:      zlib-devel
+
+%description devel
+Header files for ZFS libraries.
+
+%description devel -l pl.UTF-8
+Pliki nagłówkowe bibliotek ZFS-a.
+
+%package static
+Summary:       Static ZFS libraries
+Summary(pl.UTF-8):     Statyczne biblioteki ZFS-a
+License:       CDDL
+Group:         Development/Libraries
+Requires:      %{pname}-devel = %{version}-%{release}
+
+%description static
+Static ZFS libraries.
+
+%description static -l pl.UTF-8
+Statyczne biblioteki ZFS-a.
+
+%package -n dracut-zfs
+Summary:       ZFS support for Dracut
+Summary(pl.UTF-8):     Obsługa ZFS-a dla Dracuta
+Group:         Applications/System
+Requires:      %{pname} = %{version}-%{release}
+Requires:      dracut
+
+%description -n dracut-zfs
+ZFS support for Dracut.
+
+%description -n dracut-zfs -l pl.UTF-8
+Obsługa ZFS-a dla Dracuta.
+
+%package -n pam-pam_zfs_key
+Summary:       PAM module to unlock ZFS datasets for user
+Summary(pl.UTF-8):     Moduł PAM do odblokowywania zbiorów danych ZFS dla użytkownika
+Group:         Libraries
+Requires:      %{pname}-libs = %{version}-%{release}
+Requires:      pam
+
+%description -n pam-pam_zfs_key
+PAM module to unlock ZFS datasets for user.
+
+%description -n pam-pam_zfs_key -l pl.UTF-8
+Moduł PAM do odblokowywania zbiorów danych ZFS dla użytkownika.
+
+%package -n python-pyzfs
+Summary:       Python 2 wrapper for libzfs_core C library
+Summary(pl.UTF-8):     Interfejs Pythona 2 do biblioteki C libzfs_core
+License:       Apache v2.0
+Group:         Libraries/Python
+Requires:      %{pname}-libs = %{version}-%{release}
+
+%description -n python-pyzfs
+Python 2 wrapper for libzfs_core C library.
+
+%description -n python-pyzfs -l pl.UTF-8
+Interfejs Pythona 2 do biblioteki C libzfs_core.
+
+%package -n python3-pyzfs
+Summary:       Python 3 wrapper for libzfs_core C library
+Summary(pl.UTF-8):     Interfejs Pythona 3 do biblioteki C libzfs_core
+License:       Apache v2.0
+Group:         Libraries/Python
+Requires:      %{pname}-libs = %{version}-%{release}
+
+%description -n python3-pyzfs
+Python 3 wrapper for libzfs_core C library.
+
+%description -n python3-pyzfs -l pl.UTF-8
+Interfejs Pythona 3 do biblioteki C libzfs_core.
+
+%package -n kernel-zfs-common-devel
+Summary:       ZFS Linux kernel headers
+Summary(pl.UTF-8):     ZFS - pliki nagłówkowe jądra Linuksa
+Group:         Development/Building
+Obsoletes:     kernel-spl-common-devel < 0.7.9-2
+
+%description -n kernel-zfs-common-devel
+ZFS Linux kernel headers common for all PLD kernel versions.
+
+%description -n kernel-zfs-common-devel -l pl.UTF-8
+ZFS - pliki nagłówkowe jądra Linuksa wspólne na wszystkich
+wersji jąder PLD.
+
+%define        kernel_pkg()\
+%package -n kernel%{_alt_kernel}-zfs\
+Summary:       ZFS Linux kernel modules\
+Summary(pl.UTF-8):     ZFS - moduły jądra Linuksa\
+Release:       %{rel}@%{_kernel_ver_str}\
+Group:         Base/Kernel\
+Requires(post,postun): /sbin/depmod\
+%requires_releq_kernel\
+Requires(postun):      %releq_kernel\
+\
+%description -n kernel%{_alt_kernel}-zfs\
+ZFS Linux kernel modules.\
+\
+%description -n kernel%{_alt_kernel}-zfs -l pl.UTF-8\
+ZFS - moduły jądra Linuksa.\
+\
+%package -n kernel%{_alt_kernel}-zfs-devel\
+Summary:       ZFS Linux kernel headers\
+Summary(pl.UTF-8):     ZFS - pliki nagłówkowe jądra Linuksa\
+Release:       %{rel}@%{_kernel_ver_str}\
+Group:         Development/Building\
+Requires:      kernel%{_alt_kernel}-headers\
+Requires:      kernel-zfs-common-devel\
+Obsoletes:     kernel-spl-devel < 0.7.9-2\
+\
+%description -n kernel%{_alt_kernel}-zfs-devel\
+ZFS Linux kernel headers configured for PLD kernel%{_alt_kernel},\
+version %{_kernel_ver}.\
+\
+%description -n kernel%{_alt_kernel}-zfs-devel -l pl.UTF-8\
+ZFS - pliki nagłówkowe jądra Linuksa skonfigurowane dla jądra PLD z\
+pakietu kernel%{_alt_kernel} w wersji %{_kernel_ver}.\
+\
+%files -n kernel%{_alt_kernel}-zfs\
+%defattr(644,root,root,755)\
+%dir /lib/modules/%{_kernel_ver}/misc/lua\
+/lib/modules/%{_kernel_ver}/misc/lua/zlua.ko*\
+%dir /lib/modules/%{_kernel_ver}/misc/avl\
+/lib/modules/%{_kernel_ver}/misc/avl/zavl.ko*\
+%dir /lib/modules/%{_kernel_ver}/misc/icp\
+/lib/modules/%{_kernel_ver}/misc/icp/icp.ko*\
+%dir /lib/modules/%{_kernel_ver}/misc/nvpair\
+/lib/modules/%{_kernel_ver}/misc/nvpair/znvpair.ko*\
+%dir /lib/modules/%{_kernel_ver}/misc/spl\
+/lib/modules/%{_kernel_ver}/misc/spl/spl.ko*\
+%dir /lib/modules/%{_kernel_ver}/misc/unicode\
+/lib/modules/%{_kernel_ver}/misc/unicode/zunicode.ko*\
+%dir /lib/modules/%{_kernel_ver}/misc/zcommon\
+/lib/modules/%{_kernel_ver}/misc/zcommon/zcommon.ko*\
+%dir /lib/modules/%{_kernel_ver}/misc/zfs\
+/lib/modules/%{_kernel_ver}/misc/zfs/zfs.ko*\
+%dir /lib/modules/%{_kernel_ver}/misc/zstd\
+/lib/modules/%{_kernel_ver}/misc/zstd/zzstd.ko*\
+\
+%files -n kernel%{_alt_kernel}-zfs-devel\
+%defattr(644,root,root,755)\
+/usr/src/zfs-%{version}/%{_kernel_ver}\
+\
+%post  -n kernel%{_alt_kernel}-zfs\
+%depmod %{_kernel_ver}\
+\
+%postun        -n kernel%{_alt_kernel}-zfs\
+%depmod %{_kernel_ver}\
+%{nil}
+
+%define build_kernel_pkg()\
+%configure \\\
+       --disable-silent-rules \\\
+       --with-config="kernel" \\\
+       --with-linux=%{_kernelsrcdir}\\\
+       --with-linux-obj=%{_kernelsrcdir}\
+\
+%{__make} clean\
+%{__make} %{?with_verbose:V=1}\
+p=`pwd`\
+%{__make} install DESTDIR=$p/installed INSTALL_MOD_DIR=misc\
+%{nil}
+
+%{?with_kernel:%{expand:%create_kernel_packages}}
+
+%prep
+%setup -q -n %{pname}-%{version}
+%patch0 -p1
+%patch1 -p1
+
+%{__sed} -E -i -e '1s,#!\s*/usr/bin/env\s+python2(\s|$),#!%{__python}\1,' \
+      cmd/arc_summary/arc_summary2
+
+%{__sed} -E -i -e '1s,#!\s*/usr/bin/env\s+python3(\s|$),#!%{__python3}\1,' \
+      cmd/arc_summary/arc_summary3
+
+%{__sed} -E -i -e '1s,#!\s*/usr/bin/env\s+@PYTHON_SHEBANG@(\s|$),#!%{__python3}\1,' \
+      cmd/arcstat/arcstat.in \
+      cmd/dbufstat/dbufstat.in
+
+%{__sed} -E -i -e '1s,#!\s*/usr/bin/env\s+bash(\s|$),#!/bin/bash\1,' \
+      contrib/dracut/02zfsexpandknowledge/module-setup.sh.in \
+      contrib/dracut/90zfs/module-setup.sh.in \
+      scripts/zimport.sh \
+      scripts/zloop.sh
+
+%build
+%{__libtoolize}
+%{__aclocal} -I config
+%{__autoconf}
+%{__autoheader}
+%{__automake}
+%{?with_kernel:%{expand:%build_kernel_packages}}
+
+%if %{with userspace}
+%configure \
+       --disable-silent-rules \
+       --enable-pam \
+       --disable-systemd \
+       --with-config="user" \
+       --with-linux=%{_kernelsrcdir} \
+       --with-pammoduledir=/%{_lib}/security \
+       --with-udevdir=/lib/udev
+
+%{__make} \
+       %{?with_verbose:V=1}
+
+%if %{with python2}
+cd contrib/pyzfs
+%py_build
+cd ../..
+%endif
+
+%if %{with python3}
+cd contrib/pyzfs
+%py3_build
+cd ../..
+%endif
+%endif
+
+%install
+rm -rf $RPM_BUILD_ROOT
+
+%if %{with kernel}
+install -d $RPM_BUILD_ROOT
+cp -a installed/* $RPM_BUILD_ROOT
+# Drop unneeded spl compat links
+%{__rm} -r $RPM_BUILD_ROOT/usr/src/spl-%{version}
+%endif
+
+%if %{with userspace}
+%{__make} install \
+       DESTDIR=$RPM_BUILD_ROOT \
+       DEFAULT_INIT_DIR=/etc/rc.d/init.d
+
+%if %{with python2}
+%{__rm} -rf $RPM_BUILD_ROOT%{py_sitescriptdir}
+cd contrib/pyzfs
+%py_install
+
+%py_ocomp $RPM_BUILD_ROOT%{py_sitescriptdir}
+%py_comp $RPM_BUILD_ROOT%{py_sitescriptdir}
+
+%py_postclean
+cd ../..
+%{__rm} -r $RPM_BUILD_ROOT%{py_sitescriptdir}/libzfs_core/test
+%endif
+
+%if %{with python3}
+%{__rm} -r $RPM_BUILD_ROOT/usr/local/share/python3*
+cd contrib/pyzfs
+%py3_install
+cd ../..
+%{__rm} -r $RPM_BUILD_ROOT%{py3_sitescriptdir}/libzfs_core/test
+%endif
+
+# Debian specific stuff
+%{__rm} -r $RPM_BUILD_ROOT%{_datadir}/initramfs-tools
+
+%{__rm} $RPM_BUILD_ROOT/%{_lib}/security/pam_zfs_key.la
+# Ubuntu PAM config framework file
+%{__rm} $RPM_BUILD_ROOT%{_datadir}/pam-configs/zfs_key
+
+# Package these? These are integration tests of the implementation.
+%{__rm} -r $RPM_BUILD_ROOT%{_datadir}/zfs/{zfs-tests,test-runner,runfiles}
+%{__rm} $RPM_BUILD_ROOT%{_mandir}/man1/{raidz_test,test-runner}.1*
+%{__rm} $RPM_BUILD_ROOT%{_bindir}/raidz_test
+%endif
+
+%clean
+rm -rf $RPM_BUILD_ROOT
+
+%post  libs -p /sbin/ldconfig
+%postun        libs -p /sbin/ldconfig
+
+%if %{with userspace}
+%files
+%defattr(644,root,root,755)
+%doc AUTHORS COPYRIGHT LICENSE NEWS NOTICE README.md
+%attr(755,root,root) /sbin/mount.zfs
+%attr(755,root,root) %{_bindir}/arc_summary
+%attr(755,root,root) %{_bindir}/arcstat
+%attr(755,root,root) %{_bindir}/dbufstat
+%attr(755,root,root) %{_bindir}/zgenhostid
+%attr(755,root,root) %{_bindir}/zvol_wait
+%attr(755,root,root) %{_sbindir}/fsck.zfs
+%attr(755,root,root) %{_sbindir}/zdb
+%attr(755,root,root) %{_sbindir}/zed
+%attr(755,root,root) %{_sbindir}/zfs
+%attr(755,root,root) %{_sbindir}/zfs_ids_to_path
+%attr(755,root,root) %{_sbindir}/zhack
+%attr(755,root,root) %{_sbindir}/zinject
+%attr(755,root,root) %{_sbindir}/zpool
+%attr(755,root,root) %{_sbindir}/zstream
+%attr(755,root,root) %{_sbindir}/zstreamdump
+%attr(755,root,root) %{_sbindir}/ztest
+%dir %{_sysconfdir}/zfs
+# package *.example as %doc? (they cannot act as default configuration)
+%{_sysconfdir}/zfs/vdev_id.conf.*.example
+%dir %{_sysconfdir}/zfs/zed.d
+%attr(755,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/zfs/zed.d/*.sh
+%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/zfs/zed.d/zed.rc
+%dir %{_sysconfdir}/zfs/zpool.d
+%attr(755,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/zfs/zpool.d/*
+%attr(754,root,root) /etc/rc.d/init.d/zfs-import
+%attr(754,root,root) /etc/rc.d/init.d/zfs-mount
+%attr(754,root,root) /etc/rc.d/init.d/zfs-share
+%attr(754,root,root) /etc/rc.d/init.d/zfs-zed
+%config(noreplace) %verify(not md5 mtime size) /etc/default/zfs
+/etc/zfs/zfs-functions
+#%config(noreplace) %verify(not md5 mtime size) /etc/modules-load.d/zfs.conf
+# for zpool iostat/status -c smart
+/etc/sudoers.d/zfs
+%attr(755,root,root) /lib/udev/vdev_id
+%attr(755,root,root) /lib/udev/zvol_id
+/lib/udev/rules.d/60-zvol.rules
+/lib/udev/rules.d/69-vdev.rules
+/lib/udev/rules.d/90-zfs.rules
+%dir %{_libexecdir}/zfs
+%dir %{_libexecdir}/zfs/zed.d
+%attr(755,root,root) %{_libexecdir}/zfs/zed.d/*.sh
+%dir %{_libexecdir}/zfs/zpool.d
+%attr(755,root,root) %{_libexecdir}/zfs/zpool.d/*
+%dir %{_datadir}/zfs
+%attr(755,root,root) %{_datadir}/zfs/*.sh
+%{_mandir}/man1/arcstat.1*
+%{_mandir}/man1/zhack.1*
+%{_mandir}/man1/ztest.1*
+%{_mandir}/man1/zvol_wait.1*
+%{_mandir}/man5/spl-module-parameters.5*
+%{_mandir}/man5/vdev_id.conf.5*
+%{_mandir}/man5/zfs-events.5*
+%{_mandir}/man5/zfs-module-parameters.5*
+%{_mandir}/man5/zpool-features.5*
+%{_mandir}/man8/fsck.zfs.8*
+%{_mandir}/man8/mount.zfs.8*
+%{_mandir}/man8/vdev_id.8*
+%{_mandir}/man8/zdb.8*
+%{_mandir}/man8/zed.8*
+%{_mandir}/man8/zfs.8*
+%{_mandir}/man8/zfs-allow.8*
+%{_mandir}/man8/zfs-bookmark.8*
+%{_mandir}/man8/zfs-change-key.8*
+%{_mandir}/man8/zfs-clone.8*
+%{_mandir}/man8/zfs-create.8*
+%{_mandir}/man8/zfs-destroy.8*
+%{_mandir}/man8/zfs-diff.8*
+%{_mandir}/man8/zfs-get.8*
+%{_mandir}/man8/zfs-groupspace.8*
+%{_mandir}/man8/zfs-hold.8*
+%{_mandir}/man8/zfs-inherit.8*
+%{_mandir}/man8/zfs-jail.8*
+%{_mandir}/man8/zfs-list.8*
+%{_mandir}/man8/zfs-load-key.8*
+%{_mandir}/man8/zfs-mount.8*
+%{_mandir}/man8/zfs-mount-generator.8*
+%{_mandir}/man8/zfs-program.8*
+%{_mandir}/man8/zfs-project.8*
+%{_mandir}/man8/zfs-projectspace.8*
+%{_mandir}/man8/zfs-promote.8*
+%{_mandir}/man8/zfs-receive.8*
+%{_mandir}/man8/zfs-recv.8*
+%{_mandir}/man8/zfs-redact.8*
+%{_mandir}/man8/zfs-release.8*
+%{_mandir}/man8/zfs-rename.8*
+%{_mandir}/man8/zfs-rollback.8*
+%{_mandir}/man8/zfs-send.8*
+%{_mandir}/man8/zfs-set.8*
+%{_mandir}/man8/zfs-share.8*
+%{_mandir}/man8/zfs-snapshot.8*
+%{_mandir}/man8/zfs-unallow.8*
+%{_mandir}/man8/zfs-unjail.8*
+%{_mandir}/man8/zfs-unload-key.8*
+%{_mandir}/man8/zfs-unmount.8*
+%{_mandir}/man8/zfs-upgrade.8*
+%{_mandir}/man8/zfs-userspace.8*
+%{_mandir}/man8/zfs-wait.8*
+%{_mandir}/man8/zfs_ids_to_path.8*
+%{_mandir}/man8/zfsconcepts.8*
+%{_mandir}/man8/zfsprops.8*
+%{_mandir}/man8/zgenhostid.8*
+%{_mandir}/man8/zinject.8*
+%{_mandir}/man8/zpool.8*
+%{_mandir}/man8/zpool-add.8*
+%{_mandir}/man8/zpool-attach.8*
+%{_mandir}/man8/zpool-checkpoint.8*
+%{_mandir}/man8/zpool-clear.8*
+%{_mandir}/man8/zpool-create.8*
+%{_mandir}/man8/zpool-destroy.8*
+%{_mandir}/man8/zpool-detach.8*
+%{_mandir}/man8/zpool-events.8*
+%{_mandir}/man8/zpool-export.8*
+%{_mandir}/man8/zpool-get.8*
+%{_mandir}/man8/zpool-history.8*
+%{_mandir}/man8/zpool-import.8*
+%{_mandir}/man8/zpool-initialize.8*
+%{_mandir}/man8/zpool-iostat.8*
+%{_mandir}/man8/zpool-labelclear.8*
+%{_mandir}/man8/zpool-list.8*
+%{_mandir}/man8/zpool-offline.8*
+%{_mandir}/man8/zpool-online.8*
+%{_mandir}/man8/zpool-reguid.8*
+%{_mandir}/man8/zpool-remove.8*
+%{_mandir}/man8/zpool-reopen.8*
+%{_mandir}/man8/zpool-replace.8*
+%{_mandir}/man8/zpool-resilver.8*
+%{_mandir}/man8/zpool-scrub.8*
+%{_mandir}/man8/zpool-set.8*
+%{_mandir}/man8/zpool-split.8*
+%{_mandir}/man8/zpool-status.8*
+%{_mandir}/man8/zpool-sync.8*
+%{_mandir}/man8/zpool-trim.8*
+%{_mandir}/man8/zpool-upgrade.8*
+%{_mandir}/man8/zpool-wait.8*
+%{_mandir}/man8/zpoolconcepts.8*
+%{_mandir}/man8/zpoolprops.8*
+%{_mandir}/man8/zstream.8*
+%{_mandir}/man8/zstreamdump.8*
+
+%files libs
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir}/libnvpair.so.*.*.*
+%attr(755,root,root) %ghost %{_libdir}/libnvpair.so.3
+%attr(755,root,root) %{_libdir}/libuutil.so.*.*.*
+%attr(755,root,root) %ghost %{_libdir}/libuutil.so.3
+%attr(755,root,root) %{_libdir}/libzfs.so.*.*.*
+%attr(755,root,root) %ghost %{_libdir}/libzfs.so.4
+%attr(755,root,root) %{_libdir}/libzfs_core.so.*.*.*
+%attr(755,root,root) %ghost %{_libdir}/libzfs_core.so.3
+%attr(755,root,root) %{_libdir}/libzfsbootenv.so.*.*.*
+%attr(755,root,root) %ghost %{_libdir}/libzfsbootenv.so.1
+%attr(755,root,root) %{_libdir}/libzpool.so.*.*.*
+%attr(755,root,root) %ghost %{_libdir}/libzpool.so.4
+
+%files devel
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir}/libnvpair.so
+%attr(755,root,root) %{_libdir}/libuutil.so
+%attr(755,root,root) %{_libdir}/libzfs.so
+%attr(755,root,root) %{_libdir}/libzfs_core.so
+%attr(755,root,root) %{_libdir}/libzfsbootenv.so
+%attr(755,root,root) %{_libdir}/libzpool.so
+%{_libdir}/libnvpair.la
+%{_libdir}/libuutil.la
+%{_libdir}/libzfs.la
+%{_libdir}/libzfs_core.la
+%{_libdir}/libzfsbootenv.la
+%{_libdir}/libzpool.la
+%{_includedir}/libspl
+%{_includedir}/libzfs
+%{_pkgconfigdir}/libzfs.pc
+%{_pkgconfigdir}/libzfs_core.pc
+%{_pkgconfigdir}/libzfsbootenv.pc
+
+%files static
+%defattr(644,root,root,755)
+%{_libdir}/libnvpair.a
+%{_libdir}/libuutil.a
+%{_libdir}/libzfs.a
+%{_libdir}/libzfs_core.a
+%{_libdir}/libzfsbootenv.a
+%{_libdir}/libzpool.a
+
+%files -n dracut-zfs
+%defattr(644,root,root,755)
+%doc contrib/dracut/README.dracut.markdown
+%dir %{dracutlibdir}/modules.d/02zfsexpandknowledge
+%attr(755,root,root) %{dracutlibdir}/modules.d/02zfsexpandknowledge/module-setup.sh
+%dir %{dracutlibdir}/modules.d/90zfs
+%attr(755,root,root) %{dracutlibdir}/modules.d/90zfs/export-zfs.sh
+%attr(755,root,root) %{dracutlibdir}/modules.d/90zfs/module-setup.sh
+%attr(755,root,root) %{dracutlibdir}/modules.d/90zfs/mount-zfs.sh
+%attr(755,root,root) %{dracutlibdir}/modules.d/90zfs/parse-zfs.sh
+%attr(755,root,root) %{dracutlibdir}/modules.d/90zfs/zfs-env-bootfs.service
+%attr(755,root,root) %{dracutlibdir}/modules.d/90zfs/zfs-generator.sh
+%attr(755,root,root) %{dracutlibdir}/modules.d/90zfs/zfs-lib.sh
+%attr(755,root,root) %{dracutlibdir}/modules.d/90zfs/zfs-load-key.sh
+%attr(755,root,root) %{dracutlibdir}/modules.d/90zfs/zfs-needshutdown.sh
+%{dracutlibdir}/modules.d/90zfs/zfs-rollback-bootfs.service
+%{dracutlibdir}/modules.d/90zfs/zfs-snapshot-bootfs.service
+
+%files -n pam-pam_zfs_key
+%defattr(644,root,root,755)
+%attr(755,root,root) /%{_lib}/security/pam_zfs_key.so
+
+%if %{with python2}
+%files -n python-pyzfs
+%defattr(644,root,root,755)
+%doc contrib/pyzfs/README
+%{py_sitescriptdir}/libzfs_core
+%{py_sitescriptdir}/pyzfs-*-py*.egg-info
+%endif
+
+%if %{with python3}
+%files -n python3-pyzfs
+%defattr(644,root,root,755)
+%doc contrib/pyzfs/README
+%{py3_sitescriptdir}/libzfs_core
+%{py3_sitescriptdir}/pyzfs-*-py*.egg-info
+%endif
+%endif
+
+%if %{with kernel}
+%files -n kernel-zfs-common-devel
+%defattr(644,root,root,755)
+%dir /usr/src/zfs-%{version}
+/usr/src/zfs-%{version}/include
+/usr/src/zfs-%{version}/zfs.release
+/usr/src/zfs-%{version}/zfs_config.h
+%endif