]> git.proxmox.com Git - mirror_zfs.git/blobdiff - rpm/generic/zfs.spec.in
Tag zfs-0.7.13
[mirror_zfs.git] / rpm / generic / zfs.spec.in
index cd167202ad2f7e7ed29fee4ccd2231c839979eb9..85db93b032246a266ffe1465050e4a231e272da0 100644 (file)
 %endif
 %endif
 
 %endif
 %endif
 
+# Set the default _initconfdir when undefined.
+%if %{undefined _initconfdir}
+%global _initconfdir /etc/sysconfig
+%endif
+
 %bcond_with    debug
 %bcond_with    debug
-%bcond_with    blkid
 %bcond_with    systemd
 
 %bcond_with    systemd
 
+# Python permits the !/usr/bin/python shebang for scripts that are cross
+# compatible between python2 and python3, but Fedora 28 does not.  Fedora
+# wants us to choose python3 for cross-compatible scripts.  Since we want
+# to support python2 and python3 users, exclude our scripts from Fedora 28's
+# RPM build check, so that we don't get a bunch of build warnings.
+#
+# Details: https://github.com/zfsonlinux/zfs/issues/7360
+#
+%global __brp_mangle_shebangs_exclude_from arc_summary.py|arcstat.py|dbufstat.py|test-runner.py
+
 # Generic enable switch for systemd
 %if %{with systemd}
 %define _systemd 1
 # Generic enable switch for systemd
 %if %{with systemd}
 %define _systemd 1
@@ -64,11 +78,6 @@ License:        @ZFS_META_LICENSE@
 URL:            http://zfsonlinux.org/
 Source0:        %{name}-%{version}.tar.gz
 BuildRoot:      %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
 URL:            http://zfsonlinux.org/
 Source0:        %{name}-%{version}.tar.gz
 BuildRoot:      %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
-ExclusiveArch:  i386 i686 x86_64
-
-# May build but untested on ppc/ppc64
-ExcludeArch:    ppc ppc64
-
 Requires:       spl = %{version}
 Requires:       libzpool2 = %{version}
 Requires:       libnvpair1 = %{version}
 Requires:       spl = %{version}
 Requires:       libzpool2 = %{version}
 Requires:       libnvpair1 = %{version}
@@ -82,19 +91,27 @@ Provides:       %{name}-kmod-common = %{version}
 Conflicts:      zfs-fuse
 
 %if 0%{?rhel}%{?fedora}%{?suse_version}
 Conflicts:      zfs-fuse
 
 %if 0%{?rhel}%{?fedora}%{?suse_version}
+BuildRequires:  gcc, make
 BuildRequires:  zlib-devel
 BuildRequires:  libuuid-devel
 BuildRequires:  zlib-devel
 BuildRequires:  libuuid-devel
-%if %{with blkid}
 BuildRequires:  libblkid-devel
 BuildRequires:  libblkid-devel
+BuildRequires:  libudev-devel
+BuildRequires:  libattr-devel
+%if 0%{?fedora} >= 28
+BuildRequires:  libtirpc-devel
 %endif
 %endif
 %endif
 %endif
+
 %if 0%{?_systemd}
 Requires(post): systemd
 Requires(preun): systemd
 Requires(postun): systemd
 %if 0%{?_systemd}
 Requires(post): systemd
 Requires(preun): systemd
 Requires(postun): systemd
-BuildRequires: systemd
 %endif
 
 %endif
 
+# The zpool iostat/status -c scripts call some utilities like lsblk and iostat
+Requires:  util-linux
+Requires:  sysstat
+
 %description
 This package contains the ZFS command line utilities.
 
 %description
 This package contains the ZFS command line utilities.
 
@@ -106,7 +123,7 @@ Group:          System Environment/Kernel
 This package contains the zpool library, which provides support
 for managing zpools
 
 This package contains the zpool library, which provides support
 for managing zpools
 
-%post-n libzpool2 -p /sbin/ldconfig
+%post -n libzpool2 -p /sbin/ldconfig
 %postun -n libzpool2 -p /sbin/ldconfig
 
 %package -n libnvpair1
 %postun -n libzpool2 -p /sbin/ldconfig
 
 %package -n libnvpair1
@@ -119,7 +136,7 @@ pairs.  This functionality is used to portably transport data across
 process boundaries, between kernel and user space, and can be used
 to write self describing data structures on disk.
 
 process boundaries, between kernel and user space, and can be used
 to write self describing data structures on disk.
 
-%post-n libnvpair1 -p /sbin/ldconfig
+%post -n libnvpair1 -p /sbin/ldconfig
 %postun -n libnvpair1 -p /sbin/ldconfig
 
 %package -n libuutil1
 %postun -n libnvpair1 -p /sbin/ldconfig
 
 %package -n libuutil1
@@ -137,7 +154,7 @@ This library provides a variety of compatibility functions for ZFS on Linux:
    partitioning.
  * libshare: NFS, SMB, and iSCSI service integration for ZFS.
 
    partitioning.
  * libshare: NFS, SMB, and iSCSI service integration for ZFS.
 
-%post-n libuutil1 -p /sbin/ldconfig
+%post -n libuutil1 -p /sbin/ldconfig
 %postun -n libuutil1 -p /sbin/ldconfig
 
 %package -n libzfs2
 %postun -n libuutil1 -p /sbin/ldconfig
 
 %package -n libzfs2
@@ -147,7 +164,7 @@ Group:          System Environment/Kernel
 %description -n libzfs2
 This package provides support for managing ZFS filesystems
 
 %description -n libzfs2
 This package provides support for managing ZFS filesystems
 
-%post-n libzfs2 -p /sbin/ldconfig
+%post -n libzfs2 -p /sbin/ldconfig
 %postun -n libzfs2 -p /sbin/ldconfig
 
 %package -n libzfs2-devel
 %postun -n libzfs2 -p /sbin/ldconfig
 
 %package -n libzfs2-devel
@@ -174,6 +191,17 @@ Requires:       parted
 Requires:       lsscsi
 Requires:       mdadm
 Requires:       bc
 Requires:       lsscsi
 Requires:       mdadm
 Requires:       bc
+Requires:       ksh
+Requires:       fio
+Requires:       acl
+Requires:       sudo
+Requires:       sysstat
+Requires:       rng-tools
+Requires:       libaio
+%if 0%{?rhel}%{?fedora}%{?suse_version}
+BuildRequires:  libaio-devel
+%endif
+AutoReqProv:    no
 
 %description test
 This package contains test infrastructure and support scripts for
 
 %description test
 This package contains test infrastructure and support scripts for
@@ -184,24 +212,35 @@ Summary:        Dracut module
 Group:          System Environment/Kernel
 Requires:       %{name}%{?_isa} = %{version}-%{release}
 Requires:       dracut
 Group:          System Environment/Kernel
 Requires:       %{name}%{?_isa} = %{version}-%{release}
 Requires:       dracut
+Requires:       /usr/bin/awk
+Requires:       grep
 
 %description dracut
 This package contains a dracut module used to construct an initramfs
 image which is ZFS aware.
 
 
 %description dracut
 This package contains a dracut module used to construct an initramfs
 image which is ZFS aware.
 
+%if 0%{?_initramfs}
+%package initramfs
+Summary:        Initramfs module
+Group:          System Environment/Kernel
+Requires:       %{name}%{?_isa} = %{version}-%{release}
+Requires:       %{name} = %{version}-%{release}
+Requires:       initramfs-tools
+
+%description initramfs
+This package contains a initramfs module used to construct an initramfs
+image which is ZFS aware.
+%endif
+
 %prep
 %if %{with debug}
     %define debug --enable-debug
 %else
     %define debug --disable-debug
 %endif
 %prep
 %if %{with debug}
     %define debug --enable-debug
 %else
     %define debug --disable-debug
 %endif
-%if %{with blkid}
-    %define blkid --with-blkid
-%else
-    %define blkid --without-blkid
-%endif
 %if 0%{?_systemd}
     %define systemd --enable-systemd --with-systemdunitdir=%{_unitdir} --with-systemdpresetdir=%{_presetdir} --disable-sysvinit
 %if 0%{?_systemd}
     %define systemd --enable-systemd --with-systemdunitdir=%{_unitdir} --with-systemdpresetdir=%{_presetdir} --disable-sysvinit
+    %define systemd_svcs zfs-import-cache.service zfs-import-scan.service zfs-mount.service zfs-share.service zfs-zed.service zfs.target zfs-import.target
 %else
     %define systemd --enable-sysvinit --disable-systemd
 %endif
 %else
     %define systemd --enable-sysvinit --disable-systemd
 %endif
@@ -216,7 +255,6 @@ image which is ZFS aware.
     --with-dracutdir=%{_dracutdir} \
     --disable-static \
     %{debug} \
     --with-dracutdir=%{_dracutdir} \
     --disable-static \
     %{debug} \
-    %{blkid} \
     %{systemd}
 make %{?_smp_mflags}
 
     %{systemd}
 make %{?_smp_mflags}
 
@@ -227,25 +265,61 @@ find %{?buildroot}%{_libdir} -name '*.la' -exec rm -f {} \;
 
 %post
 %if 0%{?_systemd}
 
 %post
 %if 0%{?_systemd}
-%systemd_post zfs.target
+%if 0%{?systemd_post:1}
+%systemd_post %{systemd_svcs}
 %else
 %else
-[ -x /sbin/chkconfig ] && /sbin/chkconfig --add zfs
+if [ "$1" = "1" -o "$1" = "install" ] ; then
+    # Initial installation
+    systemctl preset %{systemd_svcs} >/dev/null || true
+fi
+%endif
+%else
+if [ -x /sbin/chkconfig ]; then
+    /sbin/chkconfig --add zfs-import
+    /sbin/chkconfig --add zfs-mount
+    /sbin/chkconfig --add zfs-share
+    /sbin/chkconfig --add zfs-zed
+fi
 %endif
 exit 0
 
 %endif
 exit 0
 
+# On RHEL/CentOS 7 the static nodes aren't refreshed by default after
+# installing a package.  This is the default behavior for Fedora.
+%posttrans
+%if 0%{?rhel} == 7 || 0%{?centos} == 7
+systemctl restart kmod-static-nodes
+systemctl restart systemd-tmpfiles-setup-dev
+udevadm trigger
+%endif
+
 %preun
 %if 0%{?_systemd}
 %preun
 %if 0%{?_systemd}
-%systemd_preun zfs.target
+%if 0%{?systemd_preun:1}
+%systemd_preun %{systemd_svcs}
+%else
+if [ "$1" = "0" -o "$1" = "remove" ] ; then
+    # Package removal, not upgrade
+    systemctl --no-reload disable %{systemd_svcs} >/dev/null || true
+    systemctl stop %{systemd_svcs} >/dev/null || true
+fi
+%endif
 %else
 %else
-if [ $1 -eq 0 ] ; then
-    [ -x /sbin/chkconfig ] && /sbin/chkconfig --del zfs
+if [ "$1" = "0" -o "$1" = "remove" ] && [ -x /sbin/chkconfig ]; then
+    /sbin/chkconfig --del zfs-import
+    /sbin/chkconfig --del zfs-mount
+    /sbin/chkconfig --del zfs-share
+    /sbin/chkconfig --del zfs-zed
 fi
 %endif
 exit 0
 
 %postun
 %if 0%{?_systemd}
 fi
 %endif
 exit 0
 
 %postun
 %if 0%{?_systemd}
-%systemd_postun zfs.target
+%if 0%{?systemd_postun:1}
+%systemd_postun %{systemd_svcs}
+%else
+systemctl --system daemon-reload >/dev/null || true
+%endif
 %endif
 
 %files
 %endif
 
 %files
@@ -258,14 +332,16 @@ exit 0
 %{_udevdir}/vdev_id
 %{_udevdir}/zvol_id
 %{_udevdir}/rules.d/*
 %{_udevdir}/vdev_id
 %{_udevdir}/zvol_id
 %{_udevdir}/rules.d/*
-%config(noreplace) %{_sysconfdir}/%{name}
 %if 0%{?_systemd}
 /usr/lib/modules-load.d/*
 %{_unitdir}/*
 %{_presetdir}/*
 %else
 %if 0%{?_systemd}
 /usr/lib/modules-load.d/*
 %{_unitdir}/*
 %{_presetdir}/*
 %else
-%{_sysconfdir}/init.d/*
+%config(noreplace) %{_sysconfdir}/init.d/*
+%config(noreplace) %{_initconfdir}/zfs
 %endif
 %endif
+%config(noreplace) %{_sysconfdir}/%{name}
+%attr(440, root, root) %config(noreplace) %{_sysconfdir}/sudoers.d/*
 
 %files -n libzpool2
 %{_libdir}/libzpool.so.*
 
 %files -n libzpool2
 %{_libdir}/libzpool.so.*
@@ -280,6 +356,8 @@ exit 0
 %{_libdir}/libzfs*.so.*
 
 %files -n libzfs2-devel
 %{_libdir}/libzfs*.so.*
 
 %files -n libzfs2-devel
+%{_datadir}/pkgconfig/libzfs.pc
+%{_datadir}/pkgconfig/libzfs_core.pc
 %{_libdir}/*.so
 %{_includedir}/*
 %doc AUTHORS COPYRIGHT DISCLAIMER
 %{_libdir}/*.so
 %{_includedir}/*
 %doc AUTHORS COPYRIGHT DISCLAIMER
@@ -289,11 +367,59 @@ exit 0
 %{_datadir}/%{name}
 
 %files dracut
 %{_datadir}/%{name}
 
 %files dracut
-%doc dracut/README.dracut.markdown
+%doc contrib/dracut/README.dracut.markdown
 %{_dracutdir}/modules.d/*
 
 %{_dracutdir}/modules.d/*
 
+%if 0%{?_initramfs}
+%files initramfs
+%doc contrib/initramfs/README.initramfs.markdown
+/usr/share/initramfs-tools/*
+%else
+# Since we're not building the initramfs package,
+# ignore those files.
+%exclude /usr/share/initramfs-tools
+%endif
+
 %changelog
 %changelog
-* Wed Aug 21 2013 Brian Behlendorf <behlendorf1@llnl.gov> - 0.6.2-1
-- Released 0.6.2-1
-* Fri Mar 22 2013 Brian Behlendorf <behlendorf1@llnl.gov> - 0.6.1-1
-- First official stable release.
+* Fri Feb 22 2019 Tony Hutter <hutter2@llnl.gov> - 0.7.13-1
+- Released 0.7.13-1, detailed release notes are available at:
+- https://github.com/zfsonlinux/zfs/releases/tag/zfs-0.7.13
+* Thu Nov 08 2018 Tony Hutter <hutter2@llnl.gov> - 0.7.12-1
+- Released 0.7.12-1, detailed release notes are available at:
+- https://github.com/zfsonlinux/zfs/releases/tag/zfs-0.7.12
+* Thu Sep 13 2018 Tony Hutter <hutter2@llnl.gov> - 0.7.11-1
+- Released 0.7.11-1, detailed release notes are available at:
+- https://github.com/zfsonlinux/zfs/releases/tag/zfs-0.7.11
+* Wed Sep 05 2018 Tony Hutter <hutter2@llnl.gov> - 0.7.10-1
+- Released 0.7.10-1, detailed release notes are available at:
+- https://github.com/zfsonlinux/zfs/releases/tag/zfs-0.7.10
+* Tue May 08 2018 Tony Hutter <hutter2@llnl.gov> - 0.7.9-1
+- Released 0.7.9-1, detailed release notes are available at:
+- https://github.com/zfsonlinux/zfs/releases/tag/zfs-0.7.9
+* Mon Apr 09 2018 Tony Hutter <hutter2@llnl.gov> - 0.7.8-1
+- Released 0.7.8-1, detailed release notes are available at:
+- https://github.com/zfsonlinux/zfs/releases/tag/zfs-0.7.8
+* Wed Mar 14 2018 Tony Hutter <hutter2@llnl.gov> - 0.7.7-1
+- Released 0.7.7-1, detailed release notes are available at:
+- https://github.com/zfsonlinux/zfs/releases/tag/zfs-0.7.7
+* Thu Feb 01 2018 Tony Hutter <hutter2@llnl.gov> - 0.7.6-1
+- Released 0.7.6-1, detailed release notes are available at:
+- https://github.com/zfsonlinux/zfs/releases/tag/zfs-0.7.6
+* Mon Dec 18 2017 Tony Hutter <hutter2@llnl.gov> - 0.7.5-1
+- Released 0.7.5-1, detailed release notes are available at:
+- https://github.com/zfsonlinux/zfs/releases/tag/zfs-0.7.5
+* Thu Dec 07 2017 Tony Hutter <hutter2@llnl.gov> - 0.7.4-1
+- Released 0.7.4-1, detailed release notes are available at:
+- https://github.com/zfsonlinux/zfs/releases/tag/zfs-0.7.4
+* Wed Oct 18 2017 Tony Hutter <hutter2@llnl.gov> - 0.7.3-1
+- Released 0.7.3-1, detailed release notes are available at:
+- https://github.com/zfsonlinux/zfs/releases/tag/zfs-0.7.3
+* Fri Sep 22 2017 Tony Hutter <hutter2@llnl.gov> - 0.7.2-1
+- Released 0.7.2-1, detailed release notes are available at:
+- https://github.com/zfsonlinux/zfs/releases/tag/zfs-0.7.2
+* Tue Aug 8 2017 Tony Hutter <hutter2@llnl.gov> - 0.7.1-1
+- Released 0.7.1-1, detailed release notes are available at:
+- https://github.com/zfsonlinux/zfs/releases/tag/zfs-0.7.1
+* Wed Jul 26 2017 Brian Behlendorf <behlendorf1@llnl.gov> - 0.7.0-1
+- Released 0.7.0-1, detailed release notes are available at:
+- https://github.com/zfsonlinux/zfs/releases/tag/zfs-0.7.0