1eda14cbcSMatt Macy%global _sbindir /sbin 2eda14cbcSMatt Macy%global _libdir /%{_lib} 3eda14cbcSMatt Macy 4eda14cbcSMatt Macy# Set the default udev directory based on distribution. 5eda14cbcSMatt Macy%if %{undefined _udevdir} 6c9539b89SMartin Matuska%if 0%{?rhel}%{?fedora}%{?centos}%{?suse_version}%{?openEuler} 7eda14cbcSMatt Macy%global _udevdir %{_prefix}/lib/udev 8eda14cbcSMatt Macy%else 9eda14cbcSMatt Macy%global _udevdir /lib/udev 10eda14cbcSMatt Macy%endif 11eda14cbcSMatt Macy%endif 12eda14cbcSMatt Macy 13eda14cbcSMatt Macy# Set the default udevrule directory based on distribution. 14eda14cbcSMatt Macy%if %{undefined _udevruledir} 15c9539b89SMartin Matuska%if 0%{?rhel}%{?fedora}%{?centos}%{?suse_version}%{?openEuler} 16eda14cbcSMatt Macy%global _udevruledir %{_prefix}/lib/udev/rules.d 17eda14cbcSMatt Macy%else 18eda14cbcSMatt Macy%global _udevruledir /lib/udev/rules.d 19eda14cbcSMatt Macy%endif 20eda14cbcSMatt Macy%endif 21eda14cbcSMatt Macy 22*23cf27dbSMartin Matuska# Set the default _bashcompletiondir directory based on distribution. 23*23cf27dbSMartin Matuska%if %{undefined _bashcompletiondir} 24*23cf27dbSMartin Matuska%if 0%{?rhel}%{?fedora}%{?centos}%{?suse_version}%{?openEuler} 25*23cf27dbSMartin Matuska%global _bashcompletiondir /etc/bash_completion.d 26*23cf27dbSMartin Matuska%else 27*23cf27dbSMartin Matuska%global _bashcompletiondir /usr/share/bash-completion 28*23cf27dbSMartin Matuska%endif 29*23cf27dbSMartin Matuska%endif 30*23cf27dbSMartin Matuska 31eda14cbcSMatt Macy# Set the default dracut directory based on distribution. 32eda14cbcSMatt Macy%if %{undefined _dracutdir} 33c9539b89SMartin Matuska%if 0%{?rhel}%{?fedora}%{?centos}%{?suse_version}%{?openEuler} 34eda14cbcSMatt Macy%global _dracutdir %{_prefix}/lib/dracut 35eda14cbcSMatt Macy%else 36eda14cbcSMatt Macy%global _dracutdir %{_prefix}/share/dracut 37eda14cbcSMatt Macy%endif 38eda14cbcSMatt Macy%endif 39eda14cbcSMatt Macy 40eda14cbcSMatt Macy%if %{undefined _initconfdir} 41eda14cbcSMatt Macy%global _initconfdir /etc/sysconfig 42eda14cbcSMatt Macy%endif 43eda14cbcSMatt Macy 44eda14cbcSMatt Macy%if %{undefined _unitdir} 45eda14cbcSMatt Macy%global _unitdir %{_prefix}/lib/systemd/system 46eda14cbcSMatt Macy%endif 47eda14cbcSMatt Macy 48eda14cbcSMatt Macy%if %{undefined _presetdir} 49eda14cbcSMatt Macy%global _presetdir %{_prefix}/lib/systemd/system-preset 50eda14cbcSMatt Macy%endif 51eda14cbcSMatt Macy 52eda14cbcSMatt Macy%if %{undefined _modulesloaddir} 53eda14cbcSMatt Macy%global _modulesloaddir %{_prefix}/lib/modules-load.d 54eda14cbcSMatt Macy%endif 55eda14cbcSMatt Macy 56eda14cbcSMatt Macy%if %{undefined _systemdgeneratordir} 57eda14cbcSMatt Macy%global _systemdgeneratordir %{_prefix}/lib/systemd/system-generators 58eda14cbcSMatt Macy%endif 59eda14cbcSMatt Macy 60eda14cbcSMatt Macy%if %{undefined _pkgconfigdir} 61eda14cbcSMatt Macy%global _pkgconfigdir %{_prefix}/%{_lib}/pkgconfig 62eda14cbcSMatt Macy%endif 63eda14cbcSMatt Macy 64eda14cbcSMatt Macy%bcond_with debug 65eda14cbcSMatt Macy%bcond_with debuginfo 66eda14cbcSMatt Macy%bcond_with asan 67c03c5b1cSMartin Matuska%bcond_with ubsan 68eda14cbcSMatt Macy%bcond_with systemd 69eda14cbcSMatt Macy%bcond_with pam 70e92ffd9bSMartin Matuska%bcond_without pyzfs 71eda14cbcSMatt Macy 72eda14cbcSMatt Macy# Generic enable switch for systemd 73eda14cbcSMatt Macy%if %{with systemd} 74eda14cbcSMatt Macy%define _systemd 1 75eda14cbcSMatt Macy%endif 76eda14cbcSMatt Macy 77e92ffd9bSMartin Matuska# Distros below support systemd 78bb2d13b6SMartin Matuska%if 0%{?rhel}%{?fedora}%{?centos}%{?suse_version}%{?openEuler} 79eda14cbcSMatt Macy%define _systemd 1 80eda14cbcSMatt Macy%endif 81eda14cbcSMatt Macy 82e92ffd9bSMartin Matuska# When not specified default to distribution provided version. 83eda14cbcSMatt Macy%if %{undefined __use_python} 84eda14cbcSMatt Macy%define __python /usr/bin/python3 85eda14cbcSMatt Macy%define __python_pkg_version 3 86eda14cbcSMatt Macy%else 87eda14cbcSMatt Macy%define __python %{__use_python} 88eda14cbcSMatt Macy%define __python_pkg_version %{__use_python_pkg_version} 89eda14cbcSMatt Macy%endif 90bb2d13b6SMartin Matuska%define __python_sitelib %(%{__python} -Esc "from distutils.sysconfig import get_python_lib; print(get_python_lib())" 2>/dev/null || %{__python} -Esc "import sysconfig; print(sysconfig.get_path('purelib'))") 91eda14cbcSMatt Macy 92eda14cbcSMatt MacyName: @PACKAGE@ 93eda14cbcSMatt MacyVersion: @VERSION@ 94eda14cbcSMatt MacyRelease: @RELEASE@%{?dist} 95eda14cbcSMatt MacySummary: Commands to control the kernel modules and libraries 96eda14cbcSMatt Macy 97eda14cbcSMatt MacyGroup: System Environment/Kernel 98eda14cbcSMatt MacyLicense: @ZFS_META_LICENSE@ 99180f8225SMatt MacyURL: https://github.com/openzfs/zfs 100eda14cbcSMatt MacySource0: %{name}-%{version}.tar.gz 101eda14cbcSMatt MacyBuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) 102e3aa18adSMartin MatuskaRequires: libzpool5%{?_isa} = %{version}-%{release} 103e3aa18adSMartin MatuskaRequires: libnvpair3%{?_isa} = %{version}-%{release} 104e3aa18adSMartin MatuskaRequires: libuutil3%{?_isa} = %{version}-%{release} 105e3aa18adSMartin MatuskaRequires: libzfs5%{?_isa} = %{version}-%{release} 106eda14cbcSMatt MacyRequires: %{name}-kmod = %{version} 107e3aa18adSMartin MatuskaProvides: %{name}-kmod-common = %{version}-%{release} 108271171e0SMartin MatuskaObsoletes: spl <= %{version} 109eda14cbcSMatt Macy 11016038816SMartin Matuska# zfs-fuse provides the same commands and man pages that OpenZFS does. 11116038816SMartin Matuska# Renaming those on either side would conflict with all available documentation. 112eda14cbcSMatt MacyConflicts: zfs-fuse 113eda14cbcSMatt Macy 114bb2d13b6SMartin Matuska%if 0%{?rhel}%{?centos}%{?fedora}%{?suse_version}%{?openEuler} 115eda14cbcSMatt MacyBuildRequires: gcc, make 116eda14cbcSMatt MacyBuildRequires: zlib-devel 117eda14cbcSMatt MacyBuildRequires: libuuid-devel 118eda14cbcSMatt MacyBuildRequires: libblkid-devel 119eda14cbcSMatt MacyBuildRequires: libudev-devel 120eda14cbcSMatt MacyBuildRequires: libattr-devel 121eda14cbcSMatt MacyBuildRequires: openssl-devel 122c9539b89SMartin Matuska%if 0%{?fedora}%{?suse_version}%{?openEuler} || 0%{?rhel} >= 8 || 0%{?centos} >= 8 123e3aa18adSMartin MatuskaBuildRequires: libtirpc-devel 124e3aa18adSMartin Matuska%endif 125e3aa18adSMartin Matuska 126bb2d13b6SMartin Matuska%if (0%{?fedora}%{?suse_version}%{?openEuler}) || (0%{?rhel} && 0%{?rhel} < 9) 1273ff01b23SMartin Matuska# We don't directly use it, but if this isn't installed, rpmbuild as root can 1283ff01b23SMartin Matuska# crash+corrupt rpmdb 1293ff01b23SMartin Matuska# See issue #12071 1303ff01b23SMartin MatuskaBuildRequires: ncompress 131eda14cbcSMatt Macy%endif 1323ff01b23SMartin Matuska 133eda14cbcSMatt MacyRequires: openssl 134eda14cbcSMatt Macy%if 0%{?_systemd} 135eda14cbcSMatt MacyBuildRequires: systemd 136eda14cbcSMatt Macy%endif 137c03c5b1cSMartin Matuska 138eda14cbcSMatt Macy%endif 139eda14cbcSMatt Macy 140eda14cbcSMatt Macy%if 0%{?_systemd} 141eda14cbcSMatt MacyRequires(post): systemd 142eda14cbcSMatt MacyRequires(preun): systemd 143eda14cbcSMatt MacyRequires(postun): systemd 144eda14cbcSMatt Macy%endif 145eda14cbcSMatt Macy 146eda14cbcSMatt Macy# The zpool iostat/status -c scripts call some utilities like lsblk and iostat 147eda14cbcSMatt MacyRequires: util-linux 148eda14cbcSMatt MacyRequires: sysstat 149eda14cbcSMatt Macy 150eda14cbcSMatt Macy%description 151eda14cbcSMatt MacyThis package contains the core ZFS command line utilities. 152eda14cbcSMatt Macy 15316038816SMartin Matuska%package -n libzpool5 154eda14cbcSMatt MacySummary: Native ZFS pool library for Linux 155eda14cbcSMatt MacyGroup: System Environment/Kernel 156271171e0SMartin MatuskaObsoletes: libzpool2 <= %{version} 157271171e0SMartin MatuskaObsoletes: libzpool4 <= %{version} 158eda14cbcSMatt Macy 15916038816SMartin Matuska%description -n libzpool5 160eda14cbcSMatt MacyThis package contains the zpool library, which provides support 161eda14cbcSMatt Macyfor managing zpools 162eda14cbcSMatt Macy 16316038816SMartin Matuska%if %{defined ldconfig_scriptlets} 16416038816SMartin Matuska%ldconfig_scriptlets -n libzpool5 16516038816SMartin Matuska%else 16616038816SMartin Matuska%post -n libzpool5 -p /sbin/ldconfig 16716038816SMartin Matuska%postun -n libzpool5 -p /sbin/ldconfig 16816038816SMartin Matuska%endif 169eda14cbcSMatt Macy 1707877fdebSMatt Macy%package -n libnvpair3 171eda14cbcSMatt MacySummary: Solaris name-value library for Linux 172eda14cbcSMatt MacyGroup: System Environment/Kernel 173271171e0SMartin MatuskaObsoletes: libnvpair1 <= %{version} 174eda14cbcSMatt Macy 1757877fdebSMatt Macy%description -n libnvpair3 176eda14cbcSMatt MacyThis package contains routines for packing and unpacking name-value 177eda14cbcSMatt Macypairs. This functionality is used to portably transport data across 178eda14cbcSMatt Macyprocess boundaries, between kernel and user space, and can be used 179eda14cbcSMatt Macyto write self describing data structures on disk. 180eda14cbcSMatt Macy 18116038816SMartin Matuska%if %{defined ldconfig_scriptlets} 18216038816SMartin Matuska%ldconfig_scriptlets -n libnvpair3 18316038816SMartin Matuska%else 1847877fdebSMatt Macy%post -n libnvpair3 -p /sbin/ldconfig 1857877fdebSMatt Macy%postun -n libnvpair3 -p /sbin/ldconfig 18616038816SMartin Matuska%endif 187eda14cbcSMatt Macy 1887877fdebSMatt Macy%package -n libuutil3 189eda14cbcSMatt MacySummary: Solaris userland utility library for Linux 190eda14cbcSMatt MacyGroup: System Environment/Kernel 191271171e0SMartin MatuskaObsoletes: libuutil1 <= %{version} 192eda14cbcSMatt Macy 1937877fdebSMatt Macy%description -n libuutil3 194180f8225SMatt MacyThis library provides a variety of compatibility functions for OpenZFS: 195eda14cbcSMatt Macy * libspl: The Solaris Porting Layer userland library, which provides APIs 196eda14cbcSMatt Macy that make it possible to run Solaris user code in a Linux environment 197eda14cbcSMatt Macy with relatively minimal modification. 198eda14cbcSMatt Macy * libavl: The Adelson-Velskii Landis balanced binary tree manipulation 199eda14cbcSMatt Macy library. 200eda14cbcSMatt Macy * libefi: The Extensible Firmware Interface library for GUID disk 201eda14cbcSMatt Macy partitioning. 202eda14cbcSMatt Macy * libshare: NFS, SMB, and iSCSI service integration for ZFS. 203eda14cbcSMatt Macy 20416038816SMartin Matuska%if %{defined ldconfig_scriptlets} 20516038816SMartin Matuska%ldconfig_scriptlets -n libuutil3 20616038816SMartin Matuska%else 2077877fdebSMatt Macy%post -n libuutil3 -p /sbin/ldconfig 2087877fdebSMatt Macy%postun -n libuutil3 -p /sbin/ldconfig 20916038816SMartin Matuska%endif 210eda14cbcSMatt Macy 21116038816SMartin Matuska# The library version is encoded in the package name. When updating the 21216038816SMartin Matuska# version information it is important to add an obsoletes line below for 21316038816SMartin Matuska# the previous version of the package. 21416038816SMartin Matuska%package -n libzfs5 215eda14cbcSMatt MacySummary: Native ZFS filesystem library for Linux 216eda14cbcSMatt MacyGroup: System Environment/Kernel 217271171e0SMartin MatuskaObsoletes: libzfs2 <= %{version} 218271171e0SMartin MatuskaObsoletes: libzfs4 <= %{version} 219eda14cbcSMatt Macy 22016038816SMartin Matuska%description -n libzfs5 221eda14cbcSMatt MacyThis package provides support for managing ZFS filesystems 222eda14cbcSMatt Macy 22316038816SMartin Matuska%if %{defined ldconfig_scriptlets} 22416038816SMartin Matuska%ldconfig_scriptlets -n libzfs5 22516038816SMartin Matuska%else 22616038816SMartin Matuska%post -n libzfs5 -p /sbin/ldconfig 22716038816SMartin Matuska%postun -n libzfs5 -p /sbin/ldconfig 22816038816SMartin Matuska%endif 229eda14cbcSMatt Macy 23016038816SMartin Matuska%package -n libzfs5-devel 231eda14cbcSMatt MacySummary: Development headers 232eda14cbcSMatt MacyGroup: System Environment/Kernel 233e3aa18adSMartin MatuskaRequires: libzfs5%{?_isa} = %{version}-%{release} 234e3aa18adSMartin MatuskaRequires: libzpool5%{?_isa} = %{version}-%{release} 235e3aa18adSMartin MatuskaRequires: libnvpair3%{?_isa} = %{version}-%{release} 236e3aa18adSMartin MatuskaRequires: libuutil3%{?_isa} = %{version}-%{release} 237e3aa18adSMartin MatuskaProvides: libzpool5-devel = %{version}-%{release} 238e3aa18adSMartin MatuskaProvides: libnvpair3-devel = %{version}-%{release} 239e3aa18adSMartin MatuskaProvides: libuutil3-devel = %{version}-%{release} 240271171e0SMartin MatuskaObsoletes: zfs-devel <= %{version} 241271171e0SMartin MatuskaObsoletes: libzfs2-devel <= %{version} 242271171e0SMartin MatuskaObsoletes: libzfs4-devel <= %{version} 243eda14cbcSMatt Macy 24416038816SMartin Matuska%description -n libzfs5-devel 245eda14cbcSMatt MacyThis package contains the header files needed for building additional 246eda14cbcSMatt Macyapplications against the ZFS libraries. 247eda14cbcSMatt Macy 248eda14cbcSMatt Macy%package test 249eda14cbcSMatt MacySummary: Test infrastructure 250eda14cbcSMatt MacyGroup: System Environment/Kernel 251eda14cbcSMatt MacyRequires: %{name}%{?_isa} = %{version}-%{release} 252eda14cbcSMatt MacyRequires: parted 253eda14cbcSMatt MacyRequires: lsscsi 254eda14cbcSMatt MacyRequires: mdadm 255eda14cbcSMatt MacyRequires: bc 256eda14cbcSMatt MacyRequires: ksh 257eda14cbcSMatt MacyRequires: fio 258eda14cbcSMatt MacyRequires: acl 259eda14cbcSMatt MacyRequires: sudo 260eda14cbcSMatt MacyRequires: sysstat 261eda14cbcSMatt MacyRequires: libaio 262eda14cbcSMatt MacyRequires: python%{__python_pkg_version} 263bb2d13b6SMartin Matuska%if 0%{?rhel}%{?centos}%{?fedora}%{?suse_version}%{?openEuler} 264eda14cbcSMatt MacyBuildRequires: libaio-devel 265eda14cbcSMatt Macy%endif 266eda14cbcSMatt MacyAutoReqProv: no 267eda14cbcSMatt Macy 268eda14cbcSMatt Macy%description test 269eda14cbcSMatt MacyThis package contains test infrastructure and support scripts for 270eda14cbcSMatt Macyvalidating the file system. 271eda14cbcSMatt Macy 272eda14cbcSMatt Macy%package dracut 273eda14cbcSMatt MacySummary: Dracut module 274eda14cbcSMatt MacyGroup: System Environment/Kernel 275eda14cbcSMatt MacyBuildArch: noarch 276eda14cbcSMatt MacyRequires: %{name} >= %{version} 277eda14cbcSMatt MacyRequires: dracut 278eda14cbcSMatt MacyRequires: /usr/bin/awk 279eda14cbcSMatt MacyRequires: grep 280eda14cbcSMatt Macy 281eda14cbcSMatt Macy%description dracut 282eda14cbcSMatt MacyThis package contains a dracut module used to construct an initramfs 283eda14cbcSMatt Macyimage which is ZFS aware. 284eda14cbcSMatt Macy 285eda14cbcSMatt Macy%if %{with pyzfs} 286e92ffd9bSMartin Matuska# Enforce `python36-` package prefix for CentOS 7 287e92ffd9bSMartin Matuska# since dependencies come from EPEL and are named this way 288eda14cbcSMatt Macy%package -n python%{__python_pkg_version}-pyzfs 289eda14cbcSMatt MacySummary: Python %{python_version} wrapper for libzfs_core 290eda14cbcSMatt MacyGroup: Development/Languages/Python 291eda14cbcSMatt MacyLicense: Apache-2.0 292eda14cbcSMatt MacyBuildArch: noarch 293e3aa18adSMartin MatuskaRequires: libzfs5 = %{version}-%{release} 294e3aa18adSMartin MatuskaRequires: libnvpair3 = %{version}-%{release} 295eda14cbcSMatt MacyRequires: libffi 296eda14cbcSMatt MacyRequires: python%{__python_pkg_version} 297e92ffd9bSMartin Matuska 298e92ffd9bSMartin Matuska%if 0%{?centos} == 7 299e92ffd9bSMartin MatuskaRequires: python36-cffi 3003ff01b23SMartin Matuska%else 301e92ffd9bSMartin MatuskaRequires: python%{__python_pkg_version}-cffi 3023ff01b23SMartin Matuska%endif 303e92ffd9bSMartin Matuska 304bb2d13b6SMartin Matuska%if 0%{?rhel}%{?centos}%{?fedora}%{?suse_version}%{?openEuler} 305e92ffd9bSMartin Matuska%if 0%{?centos} == 7 306e92ffd9bSMartin MatuskaBuildRequires: python36-packaging 307e92ffd9bSMartin MatuskaBuildRequires: python36-devel 308e92ffd9bSMartin MatuskaBuildRequires: python36-cffi 309e92ffd9bSMartin MatuskaBuildRequires: python36-setuptools 310e92ffd9bSMartin Matuska%else 311e92ffd9bSMartin MatuskaBuildRequires: python%{__python_pkg_version}-packaging 312eda14cbcSMatt MacyBuildRequires: python%{__python_pkg_version}-devel 313e92ffd9bSMartin MatuskaBuildRequires: python%{__python_pkg_version}-cffi 314e92ffd9bSMartin MatuskaBuildRequires: python%{__python_pkg_version}-setuptools 315e92ffd9bSMartin Matuska%endif 316e92ffd9bSMartin Matuska 317eda14cbcSMatt MacyBuildRequires: libffi-devel 318eda14cbcSMatt Macy%endif 319eda14cbcSMatt Macy 320eda14cbcSMatt Macy%description -n python%{__python_pkg_version}-pyzfs 321eda14cbcSMatt MacyThis package provides a python wrapper for the libzfs_core C library. 322eda14cbcSMatt Macy%endif 323eda14cbcSMatt Macy 324eda14cbcSMatt Macy%if 0%{?_initramfs} 325eda14cbcSMatt Macy%package initramfs 326eda14cbcSMatt MacySummary: Initramfs module 327eda14cbcSMatt MacyGroup: System Environment/Kernel 328eda14cbcSMatt MacyRequires: %{name}%{?_isa} = %{version}-%{release} 329eda14cbcSMatt MacyRequires: initramfs-tools 330eda14cbcSMatt Macy 331eda14cbcSMatt Macy%description initramfs 332eda14cbcSMatt MacyThis package contains a initramfs module used to construct an initramfs 333eda14cbcSMatt Macyimage which is ZFS aware. 334eda14cbcSMatt Macy%endif 335eda14cbcSMatt Macy 336da5137abSMartin Matuska%if %{with pam} 337da5137abSMartin Matuska%package -n pam_zfs_key 338da5137abSMartin MatuskaSummary: PAM module for encrypted ZFS datasets 339da5137abSMartin Matuska 340bb2d13b6SMartin Matuska%if 0%{?rhel}%{?centos}%{?fedora}%{?suse_version}%{?openEuler} 341da5137abSMartin MatuskaBuildRequires: pam-devel 342da5137abSMartin Matuska%endif 343da5137abSMartin Matuska 344da5137abSMartin Matuska%description -n pam_zfs_key 345da5137abSMartin MatuskaThis package contains the pam_zfs_key PAM module, which provides 346da5137abSMartin Matuskasupport for unlocking datasets on user login. 347da5137abSMartin Matuska%endif 348da5137abSMartin Matuska 349eda14cbcSMatt Macy%prep 350eda14cbcSMatt Macy%if %{with debug} 351eda14cbcSMatt Macy %define debug --enable-debug 352eda14cbcSMatt Macy%else 353eda14cbcSMatt Macy %define debug --disable-debug 354eda14cbcSMatt Macy%endif 355eda14cbcSMatt Macy 356eda14cbcSMatt Macy%if %{with debuginfo} 357eda14cbcSMatt Macy %define debuginfo --enable-debuginfo 358eda14cbcSMatt Macy%else 359eda14cbcSMatt Macy %define debuginfo --disable-debuginfo 360eda14cbcSMatt Macy%endif 361eda14cbcSMatt Macy 362eda14cbcSMatt Macy%if %{with asan} 363eda14cbcSMatt Macy %define asan --enable-asan 364eda14cbcSMatt Macy%else 365eda14cbcSMatt Macy %define asan --disable-asan 366eda14cbcSMatt Macy%endif 367eda14cbcSMatt Macy 368c03c5b1cSMartin Matuska%if %{with ubsan} 369c03c5b1cSMartin Matuska %define ubsan --enable-ubsan 370c03c5b1cSMartin Matuska%else 371c03c5b1cSMartin Matuska %define ubsan --disable-ubsan 372c03c5b1cSMartin Matuska%endif 373c03c5b1cSMartin Matuska 374eda14cbcSMatt Macy%if 0%{?_systemd} 375eda14cbcSMatt Macy %define systemd --enable-systemd --with-systemdunitdir=%{_unitdir} --with-systemdpresetdir=%{_presetdir} --with-systemdmodulesloaddir=%{_modulesloaddir} --with-systemdgeneratordir=%{_systemdgeneratordir} --disable-sysvinit 376eda14cbcSMatt Macy %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 zfs-volume-wait.service zfs-volumes.target 377eda14cbcSMatt Macy%else 378eda14cbcSMatt Macy %define systemd --enable-sysvinit --disable-systemd 379eda14cbcSMatt Macy%endif 380eda14cbcSMatt Macy 381eda14cbcSMatt Macy%if %{with pyzfs} 382eda14cbcSMatt Macy %define pyzfs --enable-pyzfs 383eda14cbcSMatt Macy%else 384eda14cbcSMatt Macy %define pyzfs --disable-pyzfs 385eda14cbcSMatt Macy%endif 386eda14cbcSMatt Macy 387eda14cbcSMatt Macy%if %{with pam} 388eda14cbcSMatt Macy %define pam --enable-pam 389eda14cbcSMatt Macy%else 390eda14cbcSMatt Macy %define pam --disable-pam 391eda14cbcSMatt Macy%endif 392eda14cbcSMatt Macy 393eda14cbcSMatt Macy%setup -q 394eda14cbcSMatt Macy 395eda14cbcSMatt Macy%build 396eda14cbcSMatt Macy%configure \ 397eda14cbcSMatt Macy --with-config=user \ 398eda14cbcSMatt Macy --with-udevdir=%{_udevdir} \ 399eda14cbcSMatt Macy --with-udevruledir=%{_udevruledir} \ 400eda14cbcSMatt Macy --with-dracutdir=%{_dracutdir} \ 401eda14cbcSMatt Macy --with-pamconfigsdir=%{_datadir}/pam-configs \ 402eda14cbcSMatt Macy --with-pammoduledir=%{_libdir}/security \ 403eda14cbcSMatt Macy --with-python=%{__python} \ 404eda14cbcSMatt Macy --with-pkgconfigdir=%{_pkgconfigdir} \ 405eda14cbcSMatt Macy --disable-static \ 406eda14cbcSMatt Macy %{debug} \ 407eda14cbcSMatt Macy %{debuginfo} \ 408eda14cbcSMatt Macy %{asan} \ 409c03c5b1cSMartin Matuska %{ubsan} \ 410eda14cbcSMatt Macy %{systemd} \ 411eda14cbcSMatt Macy %{pam} \ 412eda14cbcSMatt Macy %{pyzfs} 413eda14cbcSMatt Macymake %{?_smp_mflags} 414eda14cbcSMatt Macy 415eda14cbcSMatt Macy%install 416eda14cbcSMatt Macy%{__rm} -rf $RPM_BUILD_ROOT 417eda14cbcSMatt Macymake install DESTDIR=%{?buildroot} 418eda14cbcSMatt Macyfind %{?buildroot}%{_libdir} -name '*.la' -exec rm -f {} \; 419eda14cbcSMatt Macy%if 0%{!?__brp_mangle_shebangs:1} 420eda14cbcSMatt Macyfind %{?buildroot}%{_bindir} \ 421c7046f76SMartin Matuska \( -name arc_summary -or -name arcstat -or -name dbufstat \ 422c7046f76SMartin Matuska -or -name zilstat \) \ 423eda14cbcSMatt Macy -exec %{__sed} -i 's|^#!.*|#!%{__python}|' {} \; 424eda14cbcSMatt Macyfind %{?buildroot}%{_datadir} \ 425eda14cbcSMatt Macy \( -name test-runner.py -or -name zts-report.py \) \ 426eda14cbcSMatt Macy -exec %{__sed} -i 's|^#!.*|#!%{__python}|' {} \; 427eda14cbcSMatt Macy%endif 428eda14cbcSMatt Macy 429eda14cbcSMatt Macy%post 430eda14cbcSMatt Macy%if 0%{?_systemd} 431eda14cbcSMatt Macy%if 0%{?systemd_post:1} 432eda14cbcSMatt Macy%systemd_post %{systemd_svcs} 433eda14cbcSMatt Macy%else 434eda14cbcSMatt Macyif [ "$1" = "1" -o "$1" = "install" ] ; then 435eda14cbcSMatt Macy # Initial installation 436eda14cbcSMatt Macy systemctl preset %{systemd_svcs} >/dev/null || true 437eda14cbcSMatt Macyfi 438eda14cbcSMatt Macy%endif 439eda14cbcSMatt Macy%else 440eda14cbcSMatt Macyif [ -x /sbin/chkconfig ]; then 441eda14cbcSMatt Macy /sbin/chkconfig --add zfs-import 442681ce946SMartin Matuska /sbin/chkconfig --add zfs-load-key 443eda14cbcSMatt Macy /sbin/chkconfig --add zfs-mount 444eda14cbcSMatt Macy /sbin/chkconfig --add zfs-share 445eda14cbcSMatt Macy /sbin/chkconfig --add zfs-zed 446eda14cbcSMatt Macyfi 447eda14cbcSMatt Macy%endif 448eda14cbcSMatt Macyexit 0 449eda14cbcSMatt Macy 450eda14cbcSMatt Macy# On RHEL/CentOS 7 the static nodes aren't refreshed by default after 451eda14cbcSMatt Macy# installing a package. This is the default behavior for Fedora. 452eda14cbcSMatt Macy%posttrans 453eda14cbcSMatt Macy%if 0%{?rhel} == 7 || 0%{?centos} == 7 454eda14cbcSMatt Macysystemctl restart kmod-static-nodes 455eda14cbcSMatt Macysystemctl restart systemd-tmpfiles-setup-dev 456eda14cbcSMatt Macyudevadm trigger 457eda14cbcSMatt Macy%endif 458eda14cbcSMatt Macy 459eda14cbcSMatt Macy%preun 460eda14cbcSMatt Macy%if 0%{?_systemd} 461eda14cbcSMatt Macy%if 0%{?systemd_preun:1} 462eda14cbcSMatt Macy%systemd_preun %{systemd_svcs} 463eda14cbcSMatt Macy%else 464eda14cbcSMatt Macyif [ "$1" = "0" -o "$1" = "remove" ] ; then 465eda14cbcSMatt Macy # Package removal, not upgrade 466eda14cbcSMatt Macy systemctl --no-reload disable %{systemd_svcs} >/dev/null || true 467eda14cbcSMatt Macy systemctl stop %{systemd_svcs} >/dev/null || true 468eda14cbcSMatt Macyfi 469eda14cbcSMatt Macy%endif 470eda14cbcSMatt Macy%else 471eda14cbcSMatt Macyif [ "$1" = "0" -o "$1" = "remove" ] && [ -x /sbin/chkconfig ]; then 472eda14cbcSMatt Macy /sbin/chkconfig --del zfs-import 473681ce946SMartin Matuska /sbin/chkconfig --del zfs-load-key 474eda14cbcSMatt Macy /sbin/chkconfig --del zfs-mount 475eda14cbcSMatt Macy /sbin/chkconfig --del zfs-share 476eda14cbcSMatt Macy /sbin/chkconfig --del zfs-zed 477eda14cbcSMatt Macyfi 478eda14cbcSMatt Macy%endif 479eda14cbcSMatt Macyexit 0 480eda14cbcSMatt Macy 481eda14cbcSMatt Macy%postun 482eda14cbcSMatt Macy%if 0%{?_systemd} 483eda14cbcSMatt Macy%if 0%{?systemd_postun:1} 484eda14cbcSMatt Macy%systemd_postun %{systemd_svcs} 485eda14cbcSMatt Macy%else 486eda14cbcSMatt Macysystemctl --system daemon-reload >/dev/null || true 487eda14cbcSMatt Macy%endif 488eda14cbcSMatt Macy%endif 489eda14cbcSMatt Macy 490eda14cbcSMatt Macy%files 491eda14cbcSMatt Macy# Core utilities 492eda14cbcSMatt Macy%{_sbindir}/* 493eda14cbcSMatt Macy%{_bindir}/raidz_test 494184c1b94SMartin Matuska%{_sbindir}/zgenhostid 495eda14cbcSMatt Macy%{_bindir}/zvol_wait 496e92ffd9bSMartin Matuska# Optional Python 3 scripts 497eda14cbcSMatt Macy%{_bindir}/arc_summary 498eda14cbcSMatt Macy%{_bindir}/arcstat 499eda14cbcSMatt Macy%{_bindir}/dbufstat 500c7046f76SMartin Matuska%{_bindir}/zilstat 501eda14cbcSMatt Macy# Man pages 502eda14cbcSMatt Macy%{_mandir}/man1/* 5033ff01b23SMartin Matuska%{_mandir}/man4/* 504eda14cbcSMatt Macy%{_mandir}/man5/* 5053ff01b23SMartin Matuska%{_mandir}/man7/* 506eda14cbcSMatt Macy%{_mandir}/man8/* 507eda14cbcSMatt Macy# Configuration files and scripts 508eda14cbcSMatt Macy%{_libexecdir}/%{name} 509eda14cbcSMatt Macy%{_udevdir}/vdev_id 510eda14cbcSMatt Macy%{_udevdir}/zvol_id 511eda14cbcSMatt Macy%{_udevdir}/rules.d/* 512ee36e25aSMartin Matuska%{_datadir}/%{name}/compatibility.d 513eda14cbcSMatt Macy%if ! 0%{?_systemd} || 0%{?_initramfs} 514eda14cbcSMatt Macy# Files needed for sysvinit and initramfs-tools 515eda14cbcSMatt Macy%{_sysconfdir}/%{name}/zfs-functions 516eda14cbcSMatt Macy%config(noreplace) %{_initconfdir}/zfs 517eda14cbcSMatt Macy%else 518eda14cbcSMatt Macy%exclude %{_sysconfdir}/%{name}/zfs-functions 519eda14cbcSMatt Macy%exclude %{_initconfdir}/zfs 520eda14cbcSMatt Macy%endif 521eda14cbcSMatt Macy%if 0%{?_systemd} 522eda14cbcSMatt Macy%{_unitdir}/* 523eda14cbcSMatt Macy%{_presetdir}/* 524eda14cbcSMatt Macy%{_modulesloaddir}/* 525eda14cbcSMatt Macy%{_systemdgeneratordir}/* 526eda14cbcSMatt Macy%else 527eda14cbcSMatt Macy%config(noreplace) %{_sysconfdir}/init.d/* 528eda14cbcSMatt Macy%endif 529eda14cbcSMatt Macy%config(noreplace) %{_sysconfdir}/%{name}/zed.d/* 530eda14cbcSMatt Macy%config(noreplace) %{_sysconfdir}/%{name}/zpool.d/* 531eda14cbcSMatt Macy%config(noreplace) %{_sysconfdir}/%{name}/vdev_id.conf.*.example 532eda14cbcSMatt Macy%attr(440, root, root) %config(noreplace) %{_sysconfdir}/sudoers.d/* 533eda14cbcSMatt Macy 534b2526e8bSMartin Matuska%config(noreplace) %{_bashcompletiondir}/zfs 535716fd348SMartin Matuska 53616038816SMartin Matuska%files -n libzpool5 537eda14cbcSMatt Macy%{_libdir}/libzpool.so.* 538eda14cbcSMatt Macy 5397877fdebSMatt Macy%files -n libnvpair3 540eda14cbcSMatt Macy%{_libdir}/libnvpair.so.* 541eda14cbcSMatt Macy 5427877fdebSMatt Macy%files -n libuutil3 543eda14cbcSMatt Macy%{_libdir}/libuutil.so.* 544eda14cbcSMatt Macy 54516038816SMartin Matuska%files -n libzfs5 546eda14cbcSMatt Macy%{_libdir}/libzfs*.so.* 547eda14cbcSMatt Macy 54816038816SMartin Matuska%files -n libzfs5-devel 549eda14cbcSMatt Macy%{_pkgconfigdir}/libzfs.pc 5502c48331dSMatt Macy%{_pkgconfigdir}/libzfsbootenv.pc 551eda14cbcSMatt Macy%{_pkgconfigdir}/libzfs_core.pc 552eda14cbcSMatt Macy%{_libdir}/*.so 553eda14cbcSMatt Macy%{_includedir}/* 554eda14cbcSMatt Macy%doc AUTHORS COPYRIGHT LICENSE NOTICE README.md 555eda14cbcSMatt Macy 556eda14cbcSMatt Macy%files test 557ee36e25aSMartin Matuska%{_datadir}/%{name}/zfs-tests 558ee36e25aSMartin Matuska%{_datadir}/%{name}/test-runner 559ee36e25aSMartin Matuska%{_datadir}/%{name}/runfiles 560ee36e25aSMartin Matuska%{_datadir}/%{name}/*.sh 561eda14cbcSMatt Macy 562eda14cbcSMatt Macy%files dracut 563c03c5b1cSMartin Matuska%doc contrib/dracut/README.md 564eda14cbcSMatt Macy%{_dracutdir}/modules.d/* 565eda14cbcSMatt Macy 566eda14cbcSMatt Macy%if %{with pyzfs} 567eda14cbcSMatt Macy%files -n python%{__python_pkg_version}-pyzfs 568eda14cbcSMatt Macy%doc contrib/pyzfs/README 569eda14cbcSMatt Macy%doc contrib/pyzfs/LICENSE 570eda14cbcSMatt Macy%defattr(-,root,root,-) 571eda14cbcSMatt Macy%{__python_sitelib}/libzfs_core/* 572eda14cbcSMatt Macy%{__python_sitelib}/pyzfs* 573eda14cbcSMatt Macy%endif 574eda14cbcSMatt Macy 575eda14cbcSMatt Macy%if 0%{?_initramfs} 576eda14cbcSMatt Macy%files initramfs 577c03c5b1cSMartin Matuska%doc contrib/initramfs/README.md 578eda14cbcSMatt Macy/usr/share/initramfs-tools/* 579eda14cbcSMatt Macy%else 580eda14cbcSMatt Macy# Since we're not building the initramfs package, 581eda14cbcSMatt Macy# ignore those files. 582eda14cbcSMatt Macy%exclude /usr/share/initramfs-tools 583eda14cbcSMatt Macy%endif 584da5137abSMartin Matuska 585da5137abSMartin Matuska%if %{with pam} 586da5137abSMartin Matuska%files -n pam_zfs_key 587da5137abSMartin Matuska%{_libdir}/security/* 588da5137abSMartin Matuska%{_datadir}/pam-configs/* 589da5137abSMartin Matuska%endif 590