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 2223cf27dbSMartin Matuska# Set the default _bashcompletiondir directory based on distribution. 2323cf27dbSMartin Matuska%if %{undefined _bashcompletiondir} 2423cf27dbSMartin Matuska%if 0%{?rhel}%{?fedora}%{?centos}%{?suse_version}%{?openEuler} 2523cf27dbSMartin Matuska%global _bashcompletiondir /etc/bash_completion.d 2623cf27dbSMartin Matuska%else 2723cf27dbSMartin Matuska%global _bashcompletiondir /usr/share/bash-completion 2823cf27dbSMartin Matuska%endif 2923cf27dbSMartin Matuska%endif 3023cf27dbSMartin 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) 10287bf66d4SMartin MatuskaRequires: libzpool6%{?_isa} = %{version}-%{release} 103e3aa18adSMartin MatuskaRequires: libnvpair3%{?_isa} = %{version}-%{release} 104e3aa18adSMartin MatuskaRequires: libuutil3%{?_isa} = %{version}-%{release} 10587bf66d4SMartin MatuskaRequires: libzfs6%{?_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 15387bf66d4SMartin Matuska%package -n libzpool6 154eda14cbcSMatt MacySummary: Native ZFS pool library for Linux 155eda14cbcSMatt MacyGroup: System Environment/Kernel 156271171e0SMartin MatuskaObsoletes: libzpool2 <= %{version} 157271171e0SMartin MatuskaObsoletes: libzpool4 <= %{version} 15887bf66d4SMartin MatuskaObsoletes: libzpool5 <= %{version} 159eda14cbcSMatt Macy 16087bf66d4SMartin Matuska%description -n libzpool6 161eda14cbcSMatt MacyThis package contains the zpool library, which provides support 162eda14cbcSMatt Macyfor managing zpools 163eda14cbcSMatt Macy 16416038816SMartin Matuska%if %{defined ldconfig_scriptlets} 16587bf66d4SMartin Matuska%ldconfig_scriptlets -n libzpool6 16616038816SMartin Matuska%else 16787bf66d4SMartin Matuska%post -n libzpool6 -p /sbin/ldconfig 16887bf66d4SMartin Matuska%postun -n libzpool6 -p /sbin/ldconfig 16916038816SMartin Matuska%endif 170eda14cbcSMatt Macy 1717877fdebSMatt Macy%package -n libnvpair3 172eda14cbcSMatt MacySummary: Solaris name-value library for Linux 173eda14cbcSMatt MacyGroup: System Environment/Kernel 174271171e0SMartin MatuskaObsoletes: libnvpair1 <= %{version} 175eda14cbcSMatt Macy 1767877fdebSMatt Macy%description -n libnvpair3 177eda14cbcSMatt MacyThis package contains routines for packing and unpacking name-value 178eda14cbcSMatt Macypairs. This functionality is used to portably transport data across 179eda14cbcSMatt Macyprocess boundaries, between kernel and user space, and can be used 180eda14cbcSMatt Macyto write self describing data structures on disk. 181eda14cbcSMatt Macy 18216038816SMartin Matuska%if %{defined ldconfig_scriptlets} 18316038816SMartin Matuska%ldconfig_scriptlets -n libnvpair3 18416038816SMartin Matuska%else 1857877fdebSMatt Macy%post -n libnvpair3 -p /sbin/ldconfig 1867877fdebSMatt Macy%postun -n libnvpair3 -p /sbin/ldconfig 18716038816SMartin Matuska%endif 188eda14cbcSMatt Macy 1897877fdebSMatt Macy%package -n libuutil3 190eda14cbcSMatt MacySummary: Solaris userland utility library for Linux 191eda14cbcSMatt MacyGroup: System Environment/Kernel 192271171e0SMartin MatuskaObsoletes: libuutil1 <= %{version} 193eda14cbcSMatt Macy 1947877fdebSMatt Macy%description -n libuutil3 195180f8225SMatt MacyThis library provides a variety of compatibility functions for OpenZFS: 196eda14cbcSMatt Macy * libspl: The Solaris Porting Layer userland library, which provides APIs 197eda14cbcSMatt Macy that make it possible to run Solaris user code in a Linux environment 198eda14cbcSMatt Macy with relatively minimal modification. 199eda14cbcSMatt Macy * libavl: The Adelson-Velskii Landis balanced binary tree manipulation 200eda14cbcSMatt Macy library. 201eda14cbcSMatt Macy * libefi: The Extensible Firmware Interface library for GUID disk 202eda14cbcSMatt Macy partitioning. 203eda14cbcSMatt Macy * libshare: NFS, SMB, and iSCSI service integration for ZFS. 204eda14cbcSMatt Macy 20516038816SMartin Matuska%if %{defined ldconfig_scriptlets} 20616038816SMartin Matuska%ldconfig_scriptlets -n libuutil3 20716038816SMartin Matuska%else 2087877fdebSMatt Macy%post -n libuutil3 -p /sbin/ldconfig 2097877fdebSMatt Macy%postun -n libuutil3 -p /sbin/ldconfig 21016038816SMartin Matuska%endif 211eda14cbcSMatt Macy 21216038816SMartin Matuska# The library version is encoded in the package name. When updating the 21316038816SMartin Matuska# version information it is important to add an obsoletes line below for 21416038816SMartin Matuska# the previous version of the package. 21587bf66d4SMartin Matuska%package -n libzfs6 216eda14cbcSMatt MacySummary: Native ZFS filesystem library for Linux 217eda14cbcSMatt MacyGroup: System Environment/Kernel 218271171e0SMartin MatuskaObsoletes: libzfs2 <= %{version} 219271171e0SMartin MatuskaObsoletes: libzfs4 <= %{version} 22087bf66d4SMartin MatuskaObsoletes: libzfs5 <= %{version} 221eda14cbcSMatt Macy 22287bf66d4SMartin Matuska%description -n libzfs6 223eda14cbcSMatt MacyThis package provides support for managing ZFS filesystems 224eda14cbcSMatt Macy 22516038816SMartin Matuska%if %{defined ldconfig_scriptlets} 22687bf66d4SMartin Matuska%ldconfig_scriptlets -n libzfs6 22716038816SMartin Matuska%else 22887bf66d4SMartin Matuska%post -n libzfs6 -p /sbin/ldconfig 22987bf66d4SMartin Matuska%postun -n libzfs6 -p /sbin/ldconfig 23016038816SMartin Matuska%endif 231eda14cbcSMatt Macy 23287bf66d4SMartin Matuska%package -n libzfs6-devel 233eda14cbcSMatt MacySummary: Development headers 234eda14cbcSMatt MacyGroup: System Environment/Kernel 23587bf66d4SMartin MatuskaRequires: libzfs6%{?_isa} = %{version}-%{release} 23687bf66d4SMartin MatuskaRequires: libzpool6%{?_isa} = %{version}-%{release} 237e3aa18adSMartin MatuskaRequires: libnvpair3%{?_isa} = %{version}-%{release} 238e3aa18adSMartin MatuskaRequires: libuutil3%{?_isa} = %{version}-%{release} 23987bf66d4SMartin MatuskaProvides: libzpool6-devel = %{version}-%{release} 240e3aa18adSMartin MatuskaProvides: libnvpair3-devel = %{version}-%{release} 241e3aa18adSMartin MatuskaProvides: libuutil3-devel = %{version}-%{release} 242271171e0SMartin MatuskaObsoletes: zfs-devel <= %{version} 243271171e0SMartin MatuskaObsoletes: libzfs2-devel <= %{version} 244271171e0SMartin MatuskaObsoletes: libzfs4-devel <= %{version} 24587bf66d4SMartin MatuskaObsoletes: libzfs5-devel <= %{version} 246eda14cbcSMatt Macy 24787bf66d4SMartin Matuska%description -n libzfs6-devel 248eda14cbcSMatt MacyThis package contains the header files needed for building additional 249eda14cbcSMatt Macyapplications against the ZFS libraries. 250eda14cbcSMatt Macy 251eda14cbcSMatt Macy%package test 252eda14cbcSMatt MacySummary: Test infrastructure 253eda14cbcSMatt MacyGroup: System Environment/Kernel 254eda14cbcSMatt MacyRequires: %{name}%{?_isa} = %{version}-%{release} 255eda14cbcSMatt MacyRequires: parted 256eda14cbcSMatt MacyRequires: lsscsi 257eda14cbcSMatt MacyRequires: mdadm 258eda14cbcSMatt MacyRequires: bc 259eda14cbcSMatt MacyRequires: ksh 260eda14cbcSMatt MacyRequires: fio 261eda14cbcSMatt MacyRequires: acl 262eda14cbcSMatt MacyRequires: sudo 263eda14cbcSMatt MacyRequires: sysstat 264eda14cbcSMatt MacyRequires: libaio 265eda14cbcSMatt MacyRequires: python%{__python_pkg_version} 266bb2d13b6SMartin Matuska%if 0%{?rhel}%{?centos}%{?fedora}%{?suse_version}%{?openEuler} 267eda14cbcSMatt MacyBuildRequires: libaio-devel 268eda14cbcSMatt Macy%endif 269eda14cbcSMatt MacyAutoReqProv: no 270eda14cbcSMatt Macy 271eda14cbcSMatt Macy%description test 272eda14cbcSMatt MacyThis package contains test infrastructure and support scripts for 273eda14cbcSMatt Macyvalidating the file system. 274eda14cbcSMatt Macy 275eda14cbcSMatt Macy%package dracut 276eda14cbcSMatt MacySummary: Dracut module 277eda14cbcSMatt MacyGroup: System Environment/Kernel 278eda14cbcSMatt MacyBuildArch: noarch 279eda14cbcSMatt MacyRequires: %{name} >= %{version} 280eda14cbcSMatt MacyRequires: dracut 281eda14cbcSMatt MacyRequires: /usr/bin/awk 282eda14cbcSMatt MacyRequires: grep 283eda14cbcSMatt Macy 284eda14cbcSMatt Macy%description dracut 285eda14cbcSMatt MacyThis package contains a dracut module used to construct an initramfs 286eda14cbcSMatt Macyimage which is ZFS aware. 287eda14cbcSMatt Macy 288eda14cbcSMatt Macy%if %{with pyzfs} 289e92ffd9bSMartin Matuska# Enforce `python36-` package prefix for CentOS 7 290e92ffd9bSMartin Matuska# since dependencies come from EPEL and are named this way 291eda14cbcSMatt Macy%package -n python%{__python_pkg_version}-pyzfs 292eda14cbcSMatt MacySummary: Python %{python_version} wrapper for libzfs_core 293eda14cbcSMatt MacyGroup: Development/Languages/Python 294eda14cbcSMatt MacyLicense: Apache-2.0 295eda14cbcSMatt MacyBuildArch: noarch 29687bf66d4SMartin MatuskaRequires: libzfs6 = %{version}-%{release} 297e3aa18adSMartin MatuskaRequires: libnvpair3 = %{version}-%{release} 298eda14cbcSMatt MacyRequires: libffi 299eda14cbcSMatt MacyRequires: python%{__python_pkg_version} 300e92ffd9bSMartin Matuska 301e92ffd9bSMartin Matuska%if 0%{?centos} == 7 302e92ffd9bSMartin MatuskaRequires: python36-cffi 3033ff01b23SMartin Matuska%else 304e92ffd9bSMartin MatuskaRequires: python%{__python_pkg_version}-cffi 3053ff01b23SMartin Matuska%endif 306e92ffd9bSMartin Matuska 307bb2d13b6SMartin Matuska%if 0%{?rhel}%{?centos}%{?fedora}%{?suse_version}%{?openEuler} 308e92ffd9bSMartin Matuska%if 0%{?centos} == 7 309e92ffd9bSMartin MatuskaBuildRequires: python36-packaging 310e92ffd9bSMartin MatuskaBuildRequires: python36-devel 311e92ffd9bSMartin MatuskaBuildRequires: python36-cffi 312e92ffd9bSMartin MatuskaBuildRequires: python36-setuptools 313e92ffd9bSMartin Matuska%else 314e92ffd9bSMartin MatuskaBuildRequires: python%{__python_pkg_version}-packaging 315eda14cbcSMatt MacyBuildRequires: python%{__python_pkg_version}-devel 316e92ffd9bSMartin MatuskaBuildRequires: python%{__python_pkg_version}-cffi 317e92ffd9bSMartin MatuskaBuildRequires: python%{__python_pkg_version}-setuptools 318e92ffd9bSMartin Matuska%endif 319e92ffd9bSMartin Matuska 320eda14cbcSMatt MacyBuildRequires: libffi-devel 321eda14cbcSMatt Macy%endif 322eda14cbcSMatt Macy 323eda14cbcSMatt Macy%description -n python%{__python_pkg_version}-pyzfs 324eda14cbcSMatt MacyThis package provides a python wrapper for the libzfs_core C library. 325eda14cbcSMatt Macy%endif 326eda14cbcSMatt Macy 327eda14cbcSMatt Macy%if 0%{?_initramfs} 328eda14cbcSMatt Macy%package initramfs 329eda14cbcSMatt MacySummary: Initramfs module 330eda14cbcSMatt MacyGroup: System Environment/Kernel 331eda14cbcSMatt MacyRequires: %{name}%{?_isa} = %{version}-%{release} 332eda14cbcSMatt MacyRequires: initramfs-tools 333eda14cbcSMatt Macy 334eda14cbcSMatt Macy%description initramfs 335eda14cbcSMatt MacyThis package contains a initramfs module used to construct an initramfs 336eda14cbcSMatt Macyimage which is ZFS aware. 337eda14cbcSMatt Macy%endif 338eda14cbcSMatt Macy 339da5137abSMartin Matuska%if %{with pam} 340da5137abSMartin Matuska%package -n pam_zfs_key 341da5137abSMartin MatuskaSummary: PAM module for encrypted ZFS datasets 342da5137abSMartin Matuska 343bb2d13b6SMartin Matuska%if 0%{?rhel}%{?centos}%{?fedora}%{?suse_version}%{?openEuler} 344da5137abSMartin MatuskaBuildRequires: pam-devel 345da5137abSMartin Matuska%endif 346da5137abSMartin Matuska 347da5137abSMartin Matuska%description -n pam_zfs_key 348da5137abSMartin MatuskaThis package contains the pam_zfs_key PAM module, which provides 349da5137abSMartin Matuskasupport for unlocking datasets on user login. 350da5137abSMartin Matuska%endif 351da5137abSMartin Matuska 352eda14cbcSMatt Macy%prep 353eda14cbcSMatt Macy%if %{with debug} 354eda14cbcSMatt Macy %define debug --enable-debug 355eda14cbcSMatt Macy%else 356eda14cbcSMatt Macy %define debug --disable-debug 357eda14cbcSMatt Macy%endif 358eda14cbcSMatt Macy 359eda14cbcSMatt Macy%if %{with debuginfo} 360eda14cbcSMatt Macy %define debuginfo --enable-debuginfo 361eda14cbcSMatt Macy%else 362eda14cbcSMatt Macy %define debuginfo --disable-debuginfo 363eda14cbcSMatt Macy%endif 364eda14cbcSMatt Macy 365eda14cbcSMatt Macy%if %{with asan} 366eda14cbcSMatt Macy %define asan --enable-asan 367eda14cbcSMatt Macy%else 368eda14cbcSMatt Macy %define asan --disable-asan 369eda14cbcSMatt Macy%endif 370eda14cbcSMatt Macy 371c03c5b1cSMartin Matuska%if %{with ubsan} 372c03c5b1cSMartin Matuska %define ubsan --enable-ubsan 373c03c5b1cSMartin Matuska%else 374c03c5b1cSMartin Matuska %define ubsan --disable-ubsan 375c03c5b1cSMartin Matuska%endif 376c03c5b1cSMartin Matuska 377eda14cbcSMatt Macy%if 0%{?_systemd} 378eda14cbcSMatt Macy %define systemd --enable-systemd --with-systemdunitdir=%{_unitdir} --with-systemdpresetdir=%{_presetdir} --with-systemdmodulesloaddir=%{_modulesloaddir} --with-systemdgeneratordir=%{_systemdgeneratordir} --disable-sysvinit 379eda14cbcSMatt 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 380eda14cbcSMatt Macy%else 381eda14cbcSMatt Macy %define systemd --enable-sysvinit --disable-systemd 382eda14cbcSMatt Macy%endif 383eda14cbcSMatt Macy 384eda14cbcSMatt Macy%if %{with pyzfs} 385eda14cbcSMatt Macy %define pyzfs --enable-pyzfs 386eda14cbcSMatt Macy%else 387eda14cbcSMatt Macy %define pyzfs --disable-pyzfs 388eda14cbcSMatt Macy%endif 389eda14cbcSMatt Macy 390eda14cbcSMatt Macy%if %{with pam} 391eda14cbcSMatt Macy %define pam --enable-pam 392eda14cbcSMatt Macy%else 393eda14cbcSMatt Macy %define pam --disable-pam 394eda14cbcSMatt Macy%endif 395eda14cbcSMatt Macy 396eda14cbcSMatt Macy%setup -q 397eda14cbcSMatt Macy 398eda14cbcSMatt Macy%build 399eda14cbcSMatt Macy%configure \ 400eda14cbcSMatt Macy --with-config=user \ 401eda14cbcSMatt Macy --with-udevdir=%{_udevdir} \ 402eda14cbcSMatt Macy --with-udevruledir=%{_udevruledir} \ 403eda14cbcSMatt Macy --with-dracutdir=%{_dracutdir} \ 404eda14cbcSMatt Macy --with-pamconfigsdir=%{_datadir}/pam-configs \ 405eda14cbcSMatt Macy --with-pammoduledir=%{_libdir}/security \ 406eda14cbcSMatt Macy --with-python=%{__python} \ 407eda14cbcSMatt Macy --with-pkgconfigdir=%{_pkgconfigdir} \ 408eda14cbcSMatt Macy --disable-static \ 409eda14cbcSMatt Macy %{debug} \ 410eda14cbcSMatt Macy %{debuginfo} \ 411eda14cbcSMatt Macy %{asan} \ 412c03c5b1cSMartin Matuska %{ubsan} \ 413eda14cbcSMatt Macy %{systemd} \ 414eda14cbcSMatt Macy %{pam} \ 415eda14cbcSMatt Macy %{pyzfs} 416eda14cbcSMatt Macymake %{?_smp_mflags} 417eda14cbcSMatt Macy 418eda14cbcSMatt Macy%install 419eda14cbcSMatt Macy%{__rm} -rf $RPM_BUILD_ROOT 420eda14cbcSMatt Macymake install DESTDIR=%{?buildroot} 421eda14cbcSMatt Macyfind %{?buildroot}%{_libdir} -name '*.la' -exec rm -f {} \; 422eda14cbcSMatt Macy%if 0%{!?__brp_mangle_shebangs:1} 423eda14cbcSMatt Macyfind %{?buildroot}%{_bindir} \ 424c7046f76SMartin Matuska \( -name arc_summary -or -name arcstat -or -name dbufstat \ 425c7046f76SMartin Matuska -or -name zilstat \) \ 426eda14cbcSMatt Macy -exec %{__sed} -i 's|^#!.*|#!%{__python}|' {} \; 427eda14cbcSMatt Macyfind %{?buildroot}%{_datadir} \ 428eda14cbcSMatt Macy \( -name test-runner.py -or -name zts-report.py \) \ 429eda14cbcSMatt Macy -exec %{__sed} -i 's|^#!.*|#!%{__python}|' {} \; 430eda14cbcSMatt Macy%endif 431eda14cbcSMatt Macy 432eda14cbcSMatt Macy%post 433eda14cbcSMatt Macy%if 0%{?_systemd} 434eda14cbcSMatt Macy%if 0%{?systemd_post:1} 435eda14cbcSMatt Macy%systemd_post %{systemd_svcs} 436eda14cbcSMatt Macy%else 437eda14cbcSMatt Macyif [ "$1" = "1" -o "$1" = "install" ] ; then 438eda14cbcSMatt Macy # Initial installation 439eda14cbcSMatt Macy systemctl preset %{systemd_svcs} >/dev/null || true 440eda14cbcSMatt Macyfi 441eda14cbcSMatt Macy%endif 442eda14cbcSMatt Macy%else 443eda14cbcSMatt Macyif [ -x /sbin/chkconfig ]; then 444eda14cbcSMatt Macy /sbin/chkconfig --add zfs-import 445681ce946SMartin Matuska /sbin/chkconfig --add zfs-load-key 446eda14cbcSMatt Macy /sbin/chkconfig --add zfs-mount 447eda14cbcSMatt Macy /sbin/chkconfig --add zfs-share 448eda14cbcSMatt Macy /sbin/chkconfig --add zfs-zed 449eda14cbcSMatt Macyfi 450eda14cbcSMatt Macy%endif 451eda14cbcSMatt Macyexit 0 452eda14cbcSMatt Macy 453eda14cbcSMatt Macy# On RHEL/CentOS 7 the static nodes aren't refreshed by default after 454eda14cbcSMatt Macy# installing a package. This is the default behavior for Fedora. 455eda14cbcSMatt Macy%posttrans 456eda14cbcSMatt Macy%if 0%{?rhel} == 7 || 0%{?centos} == 7 457eda14cbcSMatt Macysystemctl restart kmod-static-nodes 458eda14cbcSMatt Macysystemctl restart systemd-tmpfiles-setup-dev 459eda14cbcSMatt Macyudevadm trigger 460eda14cbcSMatt Macy%endif 461eda14cbcSMatt Macy 462eda14cbcSMatt Macy%preun 463eda14cbcSMatt Macy%if 0%{?_systemd} 464eda14cbcSMatt Macy%if 0%{?systemd_preun:1} 465eda14cbcSMatt Macy%systemd_preun %{systemd_svcs} 466eda14cbcSMatt Macy%else 467eda14cbcSMatt Macyif [ "$1" = "0" -o "$1" = "remove" ] ; then 468eda14cbcSMatt Macy # Package removal, not upgrade 469eda14cbcSMatt Macy systemctl --no-reload disable %{systemd_svcs} >/dev/null || true 470eda14cbcSMatt Macy systemctl stop %{systemd_svcs} >/dev/null || true 471eda14cbcSMatt Macyfi 472eda14cbcSMatt Macy%endif 473eda14cbcSMatt Macy%else 474eda14cbcSMatt Macyif [ "$1" = "0" -o "$1" = "remove" ] && [ -x /sbin/chkconfig ]; then 475eda14cbcSMatt Macy /sbin/chkconfig --del zfs-import 476681ce946SMartin Matuska /sbin/chkconfig --del zfs-load-key 477eda14cbcSMatt Macy /sbin/chkconfig --del zfs-mount 478eda14cbcSMatt Macy /sbin/chkconfig --del zfs-share 479eda14cbcSMatt Macy /sbin/chkconfig --del zfs-zed 480eda14cbcSMatt Macyfi 481eda14cbcSMatt Macy%endif 482eda14cbcSMatt Macyexit 0 483eda14cbcSMatt Macy 484eda14cbcSMatt Macy%postun 485eda14cbcSMatt Macy%if 0%{?_systemd} 486eda14cbcSMatt Macy%if 0%{?systemd_postun:1} 487eda14cbcSMatt Macy%systemd_postun %{systemd_svcs} 488eda14cbcSMatt Macy%else 489eda14cbcSMatt Macysystemctl --system daemon-reload >/dev/null || true 490eda14cbcSMatt Macy%endif 491eda14cbcSMatt Macy%endif 492eda14cbcSMatt Macy 493eda14cbcSMatt Macy%files 494eda14cbcSMatt Macy# Core utilities 495eda14cbcSMatt Macy%{_sbindir}/* 496eda14cbcSMatt Macy%{_bindir}/raidz_test 497184c1b94SMartin Matuska%{_sbindir}/zgenhostid 498eda14cbcSMatt Macy%{_bindir}/zvol_wait 499e92ffd9bSMartin Matuska# Optional Python 3 scripts 500eda14cbcSMatt Macy%{_bindir}/arc_summary 501eda14cbcSMatt Macy%{_bindir}/arcstat 502eda14cbcSMatt Macy%{_bindir}/dbufstat 503c7046f76SMartin Matuska%{_bindir}/zilstat 504eda14cbcSMatt Macy# Man pages 505eda14cbcSMatt Macy%{_mandir}/man1/* 5063ff01b23SMartin Matuska%{_mandir}/man4/* 507eda14cbcSMatt Macy%{_mandir}/man5/* 5083ff01b23SMartin Matuska%{_mandir}/man7/* 509eda14cbcSMatt Macy%{_mandir}/man8/* 510eda14cbcSMatt Macy# Configuration files and scripts 511eda14cbcSMatt Macy%{_libexecdir}/%{name} 512eda14cbcSMatt Macy%{_udevdir}/vdev_id 513eda14cbcSMatt Macy%{_udevdir}/zvol_id 514eda14cbcSMatt Macy%{_udevdir}/rules.d/* 515ee36e25aSMartin Matuska%{_datadir}/%{name}/compatibility.d 516eda14cbcSMatt Macy%if ! 0%{?_systemd} || 0%{?_initramfs} 517eda14cbcSMatt Macy# Files needed for sysvinit and initramfs-tools 518eda14cbcSMatt Macy%{_sysconfdir}/%{name}/zfs-functions 519eda14cbcSMatt Macy%config(noreplace) %{_initconfdir}/zfs 520eda14cbcSMatt Macy%else 521eda14cbcSMatt Macy%exclude %{_sysconfdir}/%{name}/zfs-functions 522eda14cbcSMatt Macy%exclude %{_initconfdir}/zfs 523eda14cbcSMatt Macy%endif 524eda14cbcSMatt Macy%if 0%{?_systemd} 525eda14cbcSMatt Macy%{_unitdir}/* 526eda14cbcSMatt Macy%{_presetdir}/* 527eda14cbcSMatt Macy%{_modulesloaddir}/* 528eda14cbcSMatt Macy%{_systemdgeneratordir}/* 529eda14cbcSMatt Macy%else 530eda14cbcSMatt Macy%config(noreplace) %{_sysconfdir}/init.d/* 531eda14cbcSMatt Macy%endif 532eda14cbcSMatt Macy%config(noreplace) %{_sysconfdir}/%{name}/zed.d/* 533eda14cbcSMatt Macy%config(noreplace) %{_sysconfdir}/%{name}/zpool.d/* 534eda14cbcSMatt Macy%config(noreplace) %{_sysconfdir}/%{name}/vdev_id.conf.*.example 535eda14cbcSMatt Macy%attr(440, root, root) %config(noreplace) %{_sysconfdir}/sudoers.d/* 536eda14cbcSMatt Macy 537b2526e8bSMartin Matuska%config(noreplace) %{_bashcompletiondir}/zfs 538ce4dcb97SMartin Matuska%config(noreplace) %{_bashcompletiondir}/zpool 539716fd348SMartin Matuska 54087bf66d4SMartin Matuska%files -n libzpool6 541eda14cbcSMatt Macy%{_libdir}/libzpool.so.* 542eda14cbcSMatt Macy 5437877fdebSMatt Macy%files -n libnvpair3 544eda14cbcSMatt Macy%{_libdir}/libnvpair.so.* 545eda14cbcSMatt Macy 5467877fdebSMatt Macy%files -n libuutil3 547eda14cbcSMatt Macy%{_libdir}/libuutil.so.* 548eda14cbcSMatt Macy 54987bf66d4SMartin Matuska%files -n libzfs6 550eda14cbcSMatt Macy%{_libdir}/libzfs*.so.* 551eda14cbcSMatt Macy 55287bf66d4SMartin Matuska%files -n libzfs6-devel 553eda14cbcSMatt Macy%{_pkgconfigdir}/libzfs.pc 5542c48331dSMatt Macy%{_pkgconfigdir}/libzfsbootenv.pc 555eda14cbcSMatt Macy%{_pkgconfigdir}/libzfs_core.pc 556eda14cbcSMatt Macy%{_libdir}/*.so 557eda14cbcSMatt Macy%{_includedir}/* 558eda14cbcSMatt Macy%doc AUTHORS COPYRIGHT LICENSE NOTICE README.md 559eda14cbcSMatt Macy 560eda14cbcSMatt Macy%files test 561ee36e25aSMartin Matuska%{_datadir}/%{name}/zfs-tests 562ee36e25aSMartin Matuska%{_datadir}/%{name}/test-runner 563ee36e25aSMartin Matuska%{_datadir}/%{name}/runfiles 564ee36e25aSMartin Matuska%{_datadir}/%{name}/*.sh 565eda14cbcSMatt Macy 566eda14cbcSMatt Macy%files dracut 567c03c5b1cSMartin Matuska%doc contrib/dracut/README.md 568eda14cbcSMatt Macy%{_dracutdir}/modules.d/* 569eda14cbcSMatt Macy 570eda14cbcSMatt Macy%if %{with pyzfs} 571eda14cbcSMatt Macy%files -n python%{__python_pkg_version}-pyzfs 572eda14cbcSMatt Macy%doc contrib/pyzfs/README 573eda14cbcSMatt Macy%doc contrib/pyzfs/LICENSE 574eda14cbcSMatt Macy%defattr(-,root,root,-) 575eda14cbcSMatt Macy%{__python_sitelib}/libzfs_core/* 576eda14cbcSMatt Macy%{__python_sitelib}/pyzfs* 577eda14cbcSMatt Macy%endif 578eda14cbcSMatt Macy 579eda14cbcSMatt Macy%if 0%{?_initramfs} 580eda14cbcSMatt Macy%files initramfs 581c03c5b1cSMartin Matuska%doc contrib/initramfs/README.md 582eda14cbcSMatt Macy/usr/share/initramfs-tools/* 583eda14cbcSMatt Macy%else 584eda14cbcSMatt Macy# Since we're not building the initramfs package, 585eda14cbcSMatt Macy# ignore those files. 586eda14cbcSMatt Macy%exclude /usr/share/initramfs-tools 587eda14cbcSMatt Macy%endif 588da5137abSMartin Matuska 589da5137abSMartin Matuska%if %{with pam} 590da5137abSMartin Matuska%files -n pam_zfs_key 591da5137abSMartin Matuska%{_libdir}/security/* 592da5137abSMartin Matuska%{_datadir}/pam-configs/* 593da5137abSMartin Matuska%endif 594