X-Git-Url: http://git.pld-linux.org/?a=blobdiff_plain;f=zfs.spec;h=f47709f1b61baf45940c3df67a6dfb2f0afe3adf;hb=efbd975fd58e377b892e1535f0e5f83c67b230f5;hp=56ee35d76c8f5e29f94561f94ef50bad5ce47e1e;hpb=cd1ae8a32ce948fc2e3be9a6b6578d4e6e4d8183;p=packages%2Fzfs.git diff --git a/zfs.spec b/zfs.spec index 56ee35d..f47709f 100644 --- a/zfs.spec +++ b/zfs.spec @@ -1,14 +1,11 @@ # TODO: # - PLDify init script -# - unpackaged initramfs-tools support: -# /usr/share/initramfs-tools/conf-hooks.d/zfs -# /usr/share/initramfs-tools/hooks/zfs -# /usr/share/initramfs-tools/scripts/zfs # # Conditional build: %bcond_without kernel # don't build kernel modules %bcond_without userspace # don't build userspace programs -%bcond_without python # CPython module +%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 @@ -27,22 +24,20 @@ exit 1 %define _duplicate_files_terminate_build 0 -%define rel 4 +%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} -%define gitrev 1511_g4338c5c06 -Version: 0.7.9 +Version: 2.0.0 Release: %{rel}%{?_pld_builder:%{?with_kernel:@%{_kernel_ver_str}}} License: CDDL Group: Applications/System -#Source0: https://github.com/zfsonlinux/zfs/releases/download/zfs-%{version}/%{pname}-%{version}.tar.gz -Source0: %{pname}-%{version}-%{gitrev}.tar.gz -# Source0-md5: ceb367d302942e2291f1ad86c1e0d2be -Patch0: x32.patch +Source0: https://github.com/openzfs/zfs/releases/download/zfs-%{version}/%{pname}-%{version}.tar.gz +# Source0-md5: a6f2d1b87562d875d5b18f0580b8289f +Patch0: initdir.patch Patch1: am.patch -URL: http://zfsonlinux.org/ +URL: https://zfsonlinux.org/ BuildRequires: autoconf >= 2.50 BuildRequires: automake BuildRequires: libtool @@ -51,15 +46,30 @@ BuildRequires: rpmbuild(macros) >= 1.714 %{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 python} -BuildRequires: rpm-pythonprov -BuildRequires: python-modules +%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 @@ -103,6 +113,7 @@ License: CDDL Group: Development/Libraries Requires: %{pname}-libs = %{version}-%{release} Requires: libselinux-devel +Requires: libtirpc-devel Requires: libuuid-devel Requires: zlib-devel @@ -138,14 +149,44 @@ 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: Wrapper for libzfs_core C library +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 -Wrapper for libzfs_core C library. +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 @@ -211,6 +252,8 @@ pakietu kernel%{_alt_kernel} w wersji %{_kernel_ver}.\ /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)\ @@ -243,6 +286,22 @@ p=`pwd`\ %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 @@ -254,18 +313,29 @@ p=`pwd`\ %if %{with userspace} %configure \ --disable-silent-rules \ + --enable-pam \ + --enable-systemd \ --with-config="user" \ --with-linux=%{_kernelsrcdir} \ + --with-pammoduledir=/%{_lib}/security \ --with-systemdunitdir=%{systemdunitdir} \ --with-systemdpresetdir=/etc/systemd/system-preset \ + --with-systemdmodulesloaddir=/etc/modules-load.d \ + --with-systemdgeneratordir=/lib/systemd/system-generators \ --with-udevdir=/lib/udev %{__make} \ %{?with_verbose:V=1} -%if %{with python} +%if %{with python2} cd contrib/pyzfs -%py_build %{?with_tests:test} +%py_build +cd ../.. +%endif + +%if %{with python3} +cd contrib/pyzfs +%py3_build cd ../.. %endif %endif @@ -277,7 +347,7 @@ rm -rf $RPM_BUILD_ROOT install -d $RPM_BUILD_ROOT cp -a installed/* $RPM_BUILD_ROOT # Drop unneeded spl compat links -%{__rm} -r /usr/src/spl-%{version} +%{__rm} -r $RPM_BUILD_ROOT/usr/src/spl-%{version} %endif %if %{with userspace} @@ -285,7 +355,7 @@ cp -a installed/* $RPM_BUILD_ROOT DESTDIR=$RPM_BUILD_ROOT \ DEFAULT_INIT_DIR=/etc/rc.d/init.d -%if %{with python} +%if %{with python2} %{__rm} -rf $RPM_BUILD_ROOT%{py_sitescriptdir} cd contrib/pyzfs %py_install @@ -298,12 +368,21 @@ cd ../.. %{__rm} -r $RPM_BUILD_ROOT%{py_sitescriptdir}/libzfs_core/test %endif -install -d $RPM_BUILD_ROOT%{_pkgconfigdir} -%{__mv} $RPM_BUILD_ROOT%{_npkgconfigdir}/* $RPM_BUILD_ROOT%{_pkgconfigdir} +%if %{with python3} +%{__rm} -r $RPM_BUILD_ROOT/usr/local/%{_lib}/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* @@ -319,19 +398,22 @@ rm -rf $RPM_BUILD_ROOT %if %{with userspace} %files %defattr(644,root,root,755) -%doc AUTHORS COPYRIGHT LICENSE README.md +%doc AUTHORS COPYRIGHT LICENSE NEWS NOTICE README.md %attr(755,root,root) /sbin/mount.zfs -%attr(755,root,root) %{_bindir}/arc_summary.py -%attr(755,root,root) %{_bindir}/arcstat.py -%attr(755,root,root) %{_bindir}/dbufstat.py +%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 @@ -348,15 +430,20 @@ rm -rf $RPM_BUILD_ROOT %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 -/usr/lib/modules-load.d/zfs.conf +%config(noreplace) %verify(not md5 mtime size) /etc/modules-load.d/zfs.conf +# for zpool iostat/status -c smart +#/ets/sudoers.d/zfs /etc/systemd/system-preset/50-zfs.preset -/usr/lib/systemd/system-generators/zfs-mount-generator +/lib/systemd/system-generators/zfs-mount-generator %{systemdunitdir}/zfs.target +%{systemdunitdir}/zfs-import.service %{systemdunitdir}/zfs-import.target %{systemdunitdir}/zfs-import-cache.service %{systemdunitdir}/zfs-import-scan.service %{systemdunitdir}/zfs-mount.service %{systemdunitdir}/zfs-share.service +%{systemdunitdir}/zfs-volume-wait.service +%{systemdunitdir}/zfs-volumes.target %{systemdunitdir}/zfs-zed.service %attr(755,root,root) /lib/udev/vdev_id %attr(755,root,root) /lib/udev/zvol_id @@ -370,8 +457,10 @@ rm -rf $RPM_BUILD_ROOT %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* @@ -383,25 +472,99 @@ rm -rf $RPM_BUILD_ROOT %{_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.1 +%attr(755,root,root) %ghost %{_libdir}/libnvpair.so.3 %attr(755,root,root) %{_libdir}/libuutil.so.*.*.* -%attr(755,root,root) %ghost %{_libdir}/libuutil.so.1 +%attr(755,root,root) %ghost %{_libdir}/libuutil.so.3 %attr(755,root,root) %{_libdir}/libzfs.so.*.*.* -%attr(755,root,root) %ghost %{_libdir}/libzfs.so.2 +%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.1 +%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.2 +%attr(755,root,root) %ghost %{_libdir}/libzpool.so.4 %files devel %defattr(644,root,root,755) @@ -409,16 +572,19 @@ rm -rf $RPM_BUILD_ROOT %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) @@ -426,6 +592,7 @@ rm -rf $RPM_BUILD_ROOT %{_libdir}/libuutil.a %{_libdir}/libzfs.a %{_libdir}/libzfs_core.a +%{_libdir}/libzfsbootenv.a %{_libdir}/libzpool.a %files -n dracut-zfs @@ -438,18 +605,33 @@ rm -rf $RPM_BUILD_ROOT %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 python} +%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}