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} 6eda14cbcSMatt Macy%if 0%{?fedora} >= 17 || 0%{?rhel} >= 7 || 0%{?centos} >= 7 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} 15eda14cbcSMatt Macy%if 0%{?fedora} >= 17 || 0%{?rhel} >= 7 || 0%{?centos} >= 7 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 22eda14cbcSMatt Macy# Set the default dracut directory based on distribution. 23eda14cbcSMatt Macy%if %{undefined _dracutdir} 24eda14cbcSMatt Macy%if 0%{?fedora} >= 17 || 0%{?rhel} >= 7 || 0%{?centos} >= 7 25eda14cbcSMatt Macy%global _dracutdir %{_prefix}/lib/dracut 26eda14cbcSMatt Macy%else 27eda14cbcSMatt Macy%global _dracutdir %{_prefix}/share/dracut 28eda14cbcSMatt Macy%endif 29eda14cbcSMatt Macy%endif 30eda14cbcSMatt Macy 31eda14cbcSMatt Macy%if %{undefined _initconfdir} 32eda14cbcSMatt Macy%global _initconfdir /etc/sysconfig 33eda14cbcSMatt Macy%endif 34eda14cbcSMatt Macy 35eda14cbcSMatt Macy%if %{undefined _unitdir} 36eda14cbcSMatt Macy%global _unitdir %{_prefix}/lib/systemd/system 37eda14cbcSMatt Macy%endif 38eda14cbcSMatt Macy 39eda14cbcSMatt Macy%if %{undefined _presetdir} 40eda14cbcSMatt Macy%global _presetdir %{_prefix}/lib/systemd/system-preset 41eda14cbcSMatt Macy%endif 42eda14cbcSMatt Macy 43eda14cbcSMatt Macy%if %{undefined _modulesloaddir} 44eda14cbcSMatt Macy%global _modulesloaddir %{_prefix}/lib/modules-load.d 45eda14cbcSMatt Macy%endif 46eda14cbcSMatt Macy 47eda14cbcSMatt Macy%if %{undefined _systemdgeneratordir} 48eda14cbcSMatt Macy%global _systemdgeneratordir %{_prefix}/lib/systemd/system-generators 49eda14cbcSMatt Macy%endif 50eda14cbcSMatt Macy 51eda14cbcSMatt Macy%if %{undefined _pkgconfigdir} 52eda14cbcSMatt Macy%global _pkgconfigdir %{_prefix}/%{_lib}/pkgconfig 53eda14cbcSMatt Macy%endif 54eda14cbcSMatt Macy 55eda14cbcSMatt Macy%bcond_with debug 56eda14cbcSMatt Macy%bcond_with debuginfo 57eda14cbcSMatt Macy%bcond_with asan 58eda14cbcSMatt Macy%bcond_with systemd 59eda14cbcSMatt Macy%bcond_with pam 60eda14cbcSMatt Macy 61eda14cbcSMatt Macy# Generic enable switch for systemd 62eda14cbcSMatt Macy%if %{with systemd} 63eda14cbcSMatt Macy%define _systemd 1 64eda14cbcSMatt Macy%endif 65eda14cbcSMatt Macy 66eda14cbcSMatt Macy# RHEL >= 7 comes with systemd 67eda14cbcSMatt Macy%if 0%{?rhel} >= 7 68eda14cbcSMatt Macy%define _systemd 1 69eda14cbcSMatt Macy%endif 70eda14cbcSMatt Macy 71eda14cbcSMatt Macy# Fedora >= 15 comes with systemd, but only >= 18 has 72eda14cbcSMatt Macy# the proper macros 73eda14cbcSMatt Macy%if 0%{?fedora} >= 18 74eda14cbcSMatt Macy%define _systemd 1 75eda14cbcSMatt Macy%endif 76eda14cbcSMatt Macy 77eda14cbcSMatt Macy# opensuse >= 12.1 comes with systemd, but only >= 13.1 78eda14cbcSMatt Macy# has the proper macros 79eda14cbcSMatt Macy%if 0%{?suse_version} >= 1310 80eda14cbcSMatt Macy%define _systemd 1 81eda14cbcSMatt Macy%endif 82eda14cbcSMatt Macy 83eda14cbcSMatt Macy# When not specified default to distribution provided version. This 84eda14cbcSMatt Macy# is normally Python 3, but for RHEL <= 7 only Python 2 is provided. 85eda14cbcSMatt Macy%if %{undefined __use_python} 86eda14cbcSMatt Macy%if 0%{?rhel} && 0%{?rhel} <= 7 87eda14cbcSMatt Macy%define __python /usr/bin/python2 88eda14cbcSMatt Macy%define __python_pkg_version 2 89eda14cbcSMatt Macy%define __python_cffi_pkg python-cffi 90eda14cbcSMatt Macy%define __python_setuptools_pkg python-setuptools 91eda14cbcSMatt Macy%else 92eda14cbcSMatt Macy%define __python /usr/bin/python3 93eda14cbcSMatt Macy%define __python_pkg_version 3 94eda14cbcSMatt Macy%define __python_cffi_pkg python3-cffi 95eda14cbcSMatt Macy%define __python_setuptools_pkg python3-setuptools 96eda14cbcSMatt Macy%endif 97eda14cbcSMatt Macy%else 98eda14cbcSMatt Macy%define __python %{__use_python} 99eda14cbcSMatt Macy%define __python_pkg_version %{__use_python_pkg_version} 100eda14cbcSMatt Macy%define __python_cffi_pkg python%{__python_pkg_version}-cffi 101eda14cbcSMatt Macy%define __python_setuptools_pkg python%{__python_pkg_version}-setuptools 102eda14cbcSMatt Macy%endif 103eda14cbcSMatt Macy%define __python_sitelib %(%{__python} -Esc "from distutils.sysconfig import get_python_lib; print(get_python_lib())") 104eda14cbcSMatt Macy 105eda14cbcSMatt Macy# By default python-pyzfs is enabled, with the exception of 106eda14cbcSMatt Macy# RHEL 6 which by default uses Python 2.6 which is too old. 107eda14cbcSMatt Macy%if 0%{?rhel} == 6 108eda14cbcSMatt Macy%bcond_with pyzfs 109eda14cbcSMatt Macy%else 110eda14cbcSMatt Macy%bcond_without pyzfs 111eda14cbcSMatt Macy%endif 112eda14cbcSMatt Macy 113eda14cbcSMatt MacyName: @PACKAGE@ 114eda14cbcSMatt MacyVersion: @VERSION@ 115eda14cbcSMatt MacyRelease: @RELEASE@%{?dist} 116eda14cbcSMatt MacySummary: Commands to control the kernel modules and libraries 117eda14cbcSMatt Macy 118eda14cbcSMatt MacyGroup: System Environment/Kernel 119eda14cbcSMatt MacyLicense: @ZFS_META_LICENSE@ 120180f8225SMatt MacyURL: https://github.com/openzfs/zfs 121eda14cbcSMatt MacySource0: %{name}-%{version}.tar.gz 122eda14cbcSMatt MacyBuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) 12316038816SMartin MatuskaRequires: libzpool5 = %{version} 1247877fdebSMatt MacyRequires: libnvpair3 = %{version} 1257877fdebSMatt MacyRequires: libuutil3 = %{version} 12616038816SMartin MatuskaRequires: libzfs5 = %{version} 127eda14cbcSMatt MacyRequires: %{name}-kmod = %{version} 128eda14cbcSMatt MacyProvides: %{name}-kmod-common = %{version} 129eda14cbcSMatt MacyObsoletes: spl 130eda14cbcSMatt Macy 13116038816SMartin Matuska# zfs-fuse provides the same commands and man pages that OpenZFS does. 13216038816SMartin Matuska# Renaming those on either side would conflict with all available documentation. 133eda14cbcSMatt MacyConflicts: zfs-fuse 134eda14cbcSMatt Macy 135eda14cbcSMatt Macy%if 0%{?rhel}%{?fedora}%{?suse_version} 136eda14cbcSMatt MacyBuildRequires: gcc, make 137eda14cbcSMatt MacyBuildRequires: zlib-devel 138eda14cbcSMatt MacyBuildRequires: libuuid-devel 139eda14cbcSMatt MacyBuildRequires: libblkid-devel 140eda14cbcSMatt MacyBuildRequires: libudev-devel 141eda14cbcSMatt MacyBuildRequires: libattr-devel 142eda14cbcSMatt MacyBuildRequires: openssl-devel 1433ff01b23SMartin Matuska# We don't directly use it, but if this isn't installed, rpmbuild as root can 1443ff01b23SMartin Matuska# crash+corrupt rpmdb 1453ff01b23SMartin Matuska# See issue #12071 1463ff01b23SMartin MatuskaBuildRequires: ncompress 147eda14cbcSMatt Macy%if 0%{?fedora} >= 28 || 0%{?rhel} >= 8 || 0%{?centos} >= 8 148eda14cbcSMatt MacyBuildRequires: libtirpc-devel 149eda14cbcSMatt Macy%endif 1503ff01b23SMartin Matuska 151eda14cbcSMatt MacyRequires: openssl 152eda14cbcSMatt Macy%if 0%{?_systemd} 153eda14cbcSMatt MacyBuildRequires: systemd 154eda14cbcSMatt Macy%endif 155eda14cbcSMatt Macy%endif 156eda14cbcSMatt Macy 157eda14cbcSMatt Macy%if 0%{?_systemd} 158eda14cbcSMatt MacyRequires(post): systemd 159eda14cbcSMatt MacyRequires(preun): systemd 160eda14cbcSMatt MacyRequires(postun): systemd 161eda14cbcSMatt Macy%endif 162eda14cbcSMatt Macy 163eda14cbcSMatt Macy# The zpool iostat/status -c scripts call some utilities like lsblk and iostat 164eda14cbcSMatt MacyRequires: util-linux 165eda14cbcSMatt MacyRequires: sysstat 166eda14cbcSMatt Macy 167eda14cbcSMatt Macy%description 168eda14cbcSMatt MacyThis package contains the core ZFS command line utilities. 169eda14cbcSMatt Macy 17016038816SMartin Matuska%package -n libzpool5 171eda14cbcSMatt MacySummary: Native ZFS pool library for Linux 172eda14cbcSMatt MacyGroup: System Environment/Kernel 1737877fdebSMatt MacyObsoletes: libzpool2 17416038816SMartin MatuskaObsoletes: libzpool4 175eda14cbcSMatt Macy 17616038816SMartin Matuska%description -n libzpool5 177eda14cbcSMatt MacyThis package contains the zpool library, which provides support 178eda14cbcSMatt Macyfor managing zpools 179eda14cbcSMatt Macy 18016038816SMartin Matuska%if %{defined ldconfig_scriptlets} 18116038816SMartin Matuska%ldconfig_scriptlets -n libzpool5 18216038816SMartin Matuska%else 18316038816SMartin Matuska%post -n libzpool5 -p /sbin/ldconfig 18416038816SMartin Matuska%postun -n libzpool5 -p /sbin/ldconfig 18516038816SMartin Matuska%endif 186eda14cbcSMatt Macy 1877877fdebSMatt Macy%package -n libnvpair3 188eda14cbcSMatt MacySummary: Solaris name-value library for Linux 189eda14cbcSMatt MacyGroup: System Environment/Kernel 1907877fdebSMatt MacyObsoletes: libnvpair1 191eda14cbcSMatt Macy 1927877fdebSMatt Macy%description -n libnvpair3 193eda14cbcSMatt MacyThis package contains routines for packing and unpacking name-value 194eda14cbcSMatt Macypairs. This functionality is used to portably transport data across 195eda14cbcSMatt Macyprocess boundaries, between kernel and user space, and can be used 196eda14cbcSMatt Macyto write self describing data structures on disk. 197eda14cbcSMatt Macy 19816038816SMartin Matuska%if %{defined ldconfig_scriptlets} 19916038816SMartin Matuska%ldconfig_scriptlets -n libnvpair3 20016038816SMartin Matuska%else 2017877fdebSMatt Macy%post -n libnvpair3 -p /sbin/ldconfig 2027877fdebSMatt Macy%postun -n libnvpair3 -p /sbin/ldconfig 20316038816SMartin Matuska%endif 204eda14cbcSMatt Macy 2057877fdebSMatt Macy%package -n libuutil3 206eda14cbcSMatt MacySummary: Solaris userland utility library for Linux 207eda14cbcSMatt MacyGroup: System Environment/Kernel 2087877fdebSMatt MacyObsoletes: libuutil1 209eda14cbcSMatt Macy 2107877fdebSMatt Macy%description -n libuutil3 211180f8225SMatt MacyThis library provides a variety of compatibility functions for OpenZFS: 212eda14cbcSMatt Macy * libspl: The Solaris Porting Layer userland library, which provides APIs 213eda14cbcSMatt Macy that make it possible to run Solaris user code in a Linux environment 214eda14cbcSMatt Macy with relatively minimal modification. 215eda14cbcSMatt Macy * libavl: The Adelson-Velskii Landis balanced binary tree manipulation 216eda14cbcSMatt Macy library. 217eda14cbcSMatt Macy * libefi: The Extensible Firmware Interface library for GUID disk 218eda14cbcSMatt Macy partitioning. 219eda14cbcSMatt Macy * libshare: NFS, SMB, and iSCSI service integration for ZFS. 220eda14cbcSMatt Macy 22116038816SMartin Matuska%if %{defined ldconfig_scriptlets} 22216038816SMartin Matuska%ldconfig_scriptlets -n libuutil3 22316038816SMartin Matuska%else 2247877fdebSMatt Macy%post -n libuutil3 -p /sbin/ldconfig 2257877fdebSMatt Macy%postun -n libuutil3 -p /sbin/ldconfig 22616038816SMartin Matuska%endif 227eda14cbcSMatt Macy 22816038816SMartin Matuska# The library version is encoded in the package name. When updating the 22916038816SMartin Matuska# version information it is important to add an obsoletes line below for 23016038816SMartin Matuska# the previous version of the package. 23116038816SMartin Matuska%package -n libzfs5 232eda14cbcSMatt MacySummary: Native ZFS filesystem library for Linux 233eda14cbcSMatt MacyGroup: System Environment/Kernel 2347877fdebSMatt MacyObsoletes: libzfs2 23516038816SMartin MatuskaObsoletes: libzfs4 236eda14cbcSMatt Macy 23716038816SMartin Matuska%description -n libzfs5 238eda14cbcSMatt MacyThis package provides support for managing ZFS filesystems 239eda14cbcSMatt Macy 24016038816SMartin Matuska%if %{defined ldconfig_scriptlets} 24116038816SMartin Matuska%ldconfig_scriptlets -n libzfs5 24216038816SMartin Matuska%else 24316038816SMartin Matuska%post -n libzfs5 -p /sbin/ldconfig 24416038816SMartin Matuska%postun -n libzfs5 -p /sbin/ldconfig 24516038816SMartin Matuska%endif 246eda14cbcSMatt Macy 24716038816SMartin Matuska%package -n libzfs5-devel 248eda14cbcSMatt MacySummary: Development headers 249eda14cbcSMatt MacyGroup: System Environment/Kernel 25016038816SMartin MatuskaRequires: libzfs5 = %{version} 25116038816SMartin MatuskaRequires: libzpool5 = %{version} 2527877fdebSMatt MacyRequires: libnvpair3 = %{version} 2537877fdebSMatt MacyRequires: libuutil3 = %{version} 25416038816SMartin MatuskaProvides: libzpool5-devel 2557877fdebSMatt MacyProvides: libnvpair3-devel 2567877fdebSMatt MacyProvides: libuutil3-devel 257eda14cbcSMatt MacyObsoletes: zfs-devel 2587877fdebSMatt MacyObsoletes: libzfs2-devel 25916038816SMartin MatuskaObsoletes: libzfs4-devel 260eda14cbcSMatt Macy 26116038816SMartin Matuska%description -n libzfs5-devel 262eda14cbcSMatt MacyThis package contains the header files needed for building additional 263eda14cbcSMatt Macyapplications against the ZFS libraries. 264eda14cbcSMatt Macy 265eda14cbcSMatt Macy%package test 266eda14cbcSMatt MacySummary: Test infrastructure 267eda14cbcSMatt MacyGroup: System Environment/Kernel 268eda14cbcSMatt MacyRequires: %{name}%{?_isa} = %{version}-%{release} 269eda14cbcSMatt MacyRequires: parted 270eda14cbcSMatt MacyRequires: lsscsi 271eda14cbcSMatt MacyRequires: mdadm 272eda14cbcSMatt MacyRequires: bc 273eda14cbcSMatt MacyRequires: ksh 274eda14cbcSMatt MacyRequires: fio 275eda14cbcSMatt MacyRequires: acl 276eda14cbcSMatt MacyRequires: sudo 277eda14cbcSMatt MacyRequires: sysstat 278eda14cbcSMatt MacyRequires: libaio 279eda14cbcSMatt MacyRequires: python%{__python_pkg_version} 280eda14cbcSMatt Macy%if 0%{?rhel}%{?fedora}%{?suse_version} 281eda14cbcSMatt MacyBuildRequires: libaio-devel 282eda14cbcSMatt Macy%endif 283eda14cbcSMatt MacyAutoReqProv: no 284eda14cbcSMatt Macy 285eda14cbcSMatt Macy%description test 286eda14cbcSMatt MacyThis package contains test infrastructure and support scripts for 287eda14cbcSMatt Macyvalidating the file system. 288eda14cbcSMatt Macy 289eda14cbcSMatt Macy%package dracut 290eda14cbcSMatt MacySummary: Dracut module 291eda14cbcSMatt MacyGroup: System Environment/Kernel 292eda14cbcSMatt MacyBuildArch: noarch 293eda14cbcSMatt MacyRequires: %{name} >= %{version} 294eda14cbcSMatt MacyRequires: dracut 295eda14cbcSMatt MacyRequires: /usr/bin/awk 296eda14cbcSMatt MacyRequires: grep 297eda14cbcSMatt Macy 298eda14cbcSMatt Macy%description dracut 299eda14cbcSMatt MacyThis package contains a dracut module used to construct an initramfs 300eda14cbcSMatt Macyimage which is ZFS aware. 301eda14cbcSMatt Macy 302eda14cbcSMatt Macy%if %{with pyzfs} 303eda14cbcSMatt Macy%package -n python%{__python_pkg_version}-pyzfs 304eda14cbcSMatt MacySummary: Python %{python_version} wrapper for libzfs_core 305eda14cbcSMatt MacyGroup: Development/Languages/Python 306eda14cbcSMatt MacyLicense: Apache-2.0 307eda14cbcSMatt MacyBuildArch: noarch 30816038816SMartin MatuskaRequires: libzfs5 = %{version} 3097877fdebSMatt MacyRequires: libnvpair3 = %{version} 310eda14cbcSMatt MacyRequires: libffi 311eda14cbcSMatt MacyRequires: python%{__python_pkg_version} 312eda14cbcSMatt MacyRequires: %{__python_cffi_pkg} 313eda14cbcSMatt Macy%if 0%{?rhel}%{?fedora}%{?suse_version} 3143ff01b23SMartin Matuska%if 0%{?rhel} >= 8 || 0%{?centos} >= 8 || 0%{?fedora} >= 28 3153ff01b23SMartin MatuskaBuildRequires: python3-packaging 3163ff01b23SMartin Matuska%else 3173ff01b23SMartin MatuskaBuildRequires: python-packaging 3183ff01b23SMartin Matuska%endif 319eda14cbcSMatt MacyBuildRequires: python%{__python_pkg_version}-devel 320eda14cbcSMatt MacyBuildRequires: %{__python_cffi_pkg} 321eda14cbcSMatt MacyBuildRequires: %{__python_setuptools_pkg} 322eda14cbcSMatt MacyBuildRequires: libffi-devel 323eda14cbcSMatt Macy%endif 324eda14cbcSMatt Macy 325eda14cbcSMatt Macy%description -n python%{__python_pkg_version}-pyzfs 326eda14cbcSMatt MacyThis package provides a python wrapper for the libzfs_core C library. 327eda14cbcSMatt Macy%endif 328eda14cbcSMatt Macy 329eda14cbcSMatt Macy%if 0%{?_initramfs} 330eda14cbcSMatt Macy%package initramfs 331eda14cbcSMatt MacySummary: Initramfs module 332eda14cbcSMatt MacyGroup: System Environment/Kernel 333eda14cbcSMatt MacyRequires: %{name}%{?_isa} = %{version}-%{release} 334eda14cbcSMatt MacyRequires: %{name} = %{version}-%{release} 335eda14cbcSMatt MacyRequires: initramfs-tools 336eda14cbcSMatt Macy 337eda14cbcSMatt Macy%description initramfs 338eda14cbcSMatt MacyThis package contains a initramfs module used to construct an initramfs 339eda14cbcSMatt Macyimage which is ZFS aware. 340eda14cbcSMatt Macy%endif 341eda14cbcSMatt Macy 342eda14cbcSMatt Macy%prep 343eda14cbcSMatt Macy%if %{with debug} 344eda14cbcSMatt Macy %define debug --enable-debug 345eda14cbcSMatt Macy%else 346eda14cbcSMatt Macy %define debug --disable-debug 347eda14cbcSMatt Macy%endif 348eda14cbcSMatt Macy 349eda14cbcSMatt Macy%if %{with debuginfo} 350eda14cbcSMatt Macy %define debuginfo --enable-debuginfo 351eda14cbcSMatt Macy%else 352eda14cbcSMatt Macy %define debuginfo --disable-debuginfo 353eda14cbcSMatt Macy%endif 354eda14cbcSMatt Macy 355eda14cbcSMatt Macy%if %{with asan} 356eda14cbcSMatt Macy %define asan --enable-asan 357eda14cbcSMatt Macy%else 358eda14cbcSMatt Macy %define asan --disable-asan 359eda14cbcSMatt Macy%endif 360eda14cbcSMatt Macy 361eda14cbcSMatt Macy%if 0%{?_systemd} 362eda14cbcSMatt Macy %define systemd --enable-systemd --with-systemdunitdir=%{_unitdir} --with-systemdpresetdir=%{_presetdir} --with-systemdmodulesloaddir=%{_modulesloaddir} --with-systemdgeneratordir=%{_systemdgeneratordir} --disable-sysvinit 363eda14cbcSMatt 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 364eda14cbcSMatt Macy%else 365eda14cbcSMatt Macy %define systemd --enable-sysvinit --disable-systemd 366eda14cbcSMatt Macy%endif 367eda14cbcSMatt Macy 368eda14cbcSMatt Macy%if %{with pyzfs} 369eda14cbcSMatt Macy %define pyzfs --enable-pyzfs 370eda14cbcSMatt Macy%else 371eda14cbcSMatt Macy %define pyzfs --disable-pyzfs 372eda14cbcSMatt Macy%endif 373eda14cbcSMatt Macy 374eda14cbcSMatt Macy%if %{with pam} 375eda14cbcSMatt Macy %define pam --enable-pam 376eda14cbcSMatt Macy%else 377eda14cbcSMatt Macy %define pam --disable-pam 378eda14cbcSMatt Macy%endif 379eda14cbcSMatt Macy 380eda14cbcSMatt Macy%setup -q 381eda14cbcSMatt Macy 382eda14cbcSMatt Macy%build 383eda14cbcSMatt Macy%configure \ 384eda14cbcSMatt Macy --with-config=user \ 385eda14cbcSMatt Macy --with-udevdir=%{_udevdir} \ 386eda14cbcSMatt Macy --with-udevruledir=%{_udevruledir} \ 387eda14cbcSMatt Macy --with-dracutdir=%{_dracutdir} \ 388eda14cbcSMatt Macy --with-pamconfigsdir=%{_datadir}/pam-configs \ 389eda14cbcSMatt Macy --with-pammoduledir=%{_libdir}/security \ 390eda14cbcSMatt Macy --with-python=%{__python} \ 391eda14cbcSMatt Macy --with-pkgconfigdir=%{_pkgconfigdir} \ 392eda14cbcSMatt Macy --disable-static \ 393eda14cbcSMatt Macy %{debug} \ 394eda14cbcSMatt Macy %{debuginfo} \ 395eda14cbcSMatt Macy %{asan} \ 396eda14cbcSMatt Macy %{systemd} \ 397eda14cbcSMatt Macy %{pam} \ 398eda14cbcSMatt Macy %{pyzfs} 399eda14cbcSMatt Macymake %{?_smp_mflags} 400eda14cbcSMatt Macy 401eda14cbcSMatt Macy%install 402eda14cbcSMatt Macy%{__rm} -rf $RPM_BUILD_ROOT 403eda14cbcSMatt Macymake install DESTDIR=%{?buildroot} 404eda14cbcSMatt Macyfind %{?buildroot}%{_libdir} -name '*.la' -exec rm -f {} \; 405eda14cbcSMatt Macy%if 0%{!?__brp_mangle_shebangs:1} 406eda14cbcSMatt Macyfind %{?buildroot}%{_bindir} \ 407eda14cbcSMatt Macy \( -name arc_summary -or -name arcstat -or -name dbufstat \) \ 408eda14cbcSMatt Macy -exec %{__sed} -i 's|^#!.*|#!%{__python}|' {} \; 409eda14cbcSMatt Macyfind %{?buildroot}%{_datadir} \ 410eda14cbcSMatt Macy \( -name test-runner.py -or -name zts-report.py \) \ 411eda14cbcSMatt Macy -exec %{__sed} -i 's|^#!.*|#!%{__python}|' {} \; 412eda14cbcSMatt Macy%endif 413eda14cbcSMatt Macy 414eda14cbcSMatt Macy%post 415eda14cbcSMatt Macy%if 0%{?_systemd} 416eda14cbcSMatt Macy%if 0%{?systemd_post:1} 417eda14cbcSMatt Macy%systemd_post %{systemd_svcs} 418eda14cbcSMatt Macy%else 419eda14cbcSMatt Macyif [ "$1" = "1" -o "$1" = "install" ] ; then 420eda14cbcSMatt Macy # Initial installation 421eda14cbcSMatt Macy systemctl preset %{systemd_svcs} >/dev/null || true 422eda14cbcSMatt Macyfi 423eda14cbcSMatt Macy%endif 424eda14cbcSMatt Macy%else 425eda14cbcSMatt Macyif [ -x /sbin/chkconfig ]; then 426eda14cbcSMatt Macy /sbin/chkconfig --add zfs-import 427681ce946SMartin Matuska /sbin/chkconfig --add zfs-load-key 428eda14cbcSMatt Macy /sbin/chkconfig --add zfs-mount 429eda14cbcSMatt Macy /sbin/chkconfig --add zfs-share 430eda14cbcSMatt Macy /sbin/chkconfig --add zfs-zed 431eda14cbcSMatt Macyfi 432eda14cbcSMatt Macy%endif 433eda14cbcSMatt Macyexit 0 434eda14cbcSMatt Macy 435eda14cbcSMatt Macy# On RHEL/CentOS 7 the static nodes aren't refreshed by default after 436eda14cbcSMatt Macy# installing a package. This is the default behavior for Fedora. 437eda14cbcSMatt Macy%posttrans 438eda14cbcSMatt Macy%if 0%{?rhel} == 7 || 0%{?centos} == 7 439eda14cbcSMatt Macysystemctl restart kmod-static-nodes 440eda14cbcSMatt Macysystemctl restart systemd-tmpfiles-setup-dev 441eda14cbcSMatt Macyudevadm trigger 442eda14cbcSMatt Macy%endif 443eda14cbcSMatt Macy 444eda14cbcSMatt Macy%preun 445eda14cbcSMatt Macy%if 0%{?_systemd} 446eda14cbcSMatt Macy%if 0%{?systemd_preun:1} 447eda14cbcSMatt Macy%systemd_preun %{systemd_svcs} 448eda14cbcSMatt Macy%else 449eda14cbcSMatt Macyif [ "$1" = "0" -o "$1" = "remove" ] ; then 450eda14cbcSMatt Macy # Package removal, not upgrade 451eda14cbcSMatt Macy systemctl --no-reload disable %{systemd_svcs} >/dev/null || true 452eda14cbcSMatt Macy systemctl stop %{systemd_svcs} >/dev/null || true 453eda14cbcSMatt Macyfi 454eda14cbcSMatt Macy%endif 455eda14cbcSMatt Macy%else 456eda14cbcSMatt Macyif [ "$1" = "0" -o "$1" = "remove" ] && [ -x /sbin/chkconfig ]; then 457eda14cbcSMatt Macy /sbin/chkconfig --del zfs-import 458681ce946SMartin Matuska /sbin/chkconfig --del zfs-load-key 459eda14cbcSMatt Macy /sbin/chkconfig --del zfs-mount 460eda14cbcSMatt Macy /sbin/chkconfig --del zfs-share 461eda14cbcSMatt Macy /sbin/chkconfig --del zfs-zed 462eda14cbcSMatt Macyfi 463eda14cbcSMatt Macy%endif 464eda14cbcSMatt Macyexit 0 465eda14cbcSMatt Macy 466eda14cbcSMatt Macy%postun 467eda14cbcSMatt Macy%if 0%{?_systemd} 468eda14cbcSMatt Macy%if 0%{?systemd_postun:1} 469eda14cbcSMatt Macy%systemd_postun %{systemd_svcs} 470eda14cbcSMatt Macy%else 471eda14cbcSMatt Macysystemctl --system daemon-reload >/dev/null || true 472eda14cbcSMatt Macy%endif 473eda14cbcSMatt Macy%endif 474eda14cbcSMatt Macy 475eda14cbcSMatt Macy%files 476eda14cbcSMatt Macy# Core utilities 477eda14cbcSMatt Macy%{_sbindir}/* 478eda14cbcSMatt Macy%{_bindir}/raidz_test 479184c1b94SMartin Matuska%{_sbindir}/zgenhostid 480eda14cbcSMatt Macy%{_bindir}/zvol_wait 481eda14cbcSMatt Macy# Optional Python 2/3 scripts 482eda14cbcSMatt Macy%{_bindir}/arc_summary 483eda14cbcSMatt Macy%{_bindir}/arcstat 484eda14cbcSMatt Macy%{_bindir}/dbufstat 485eda14cbcSMatt Macy# Man pages 486eda14cbcSMatt Macy%{_mandir}/man1/* 4873ff01b23SMartin Matuska%{_mandir}/man4/* 488eda14cbcSMatt Macy%{_mandir}/man5/* 4893ff01b23SMartin Matuska%{_mandir}/man7/* 490eda14cbcSMatt Macy%{_mandir}/man8/* 491eda14cbcSMatt Macy# Configuration files and scripts 492eda14cbcSMatt Macy%{_libexecdir}/%{name} 493eda14cbcSMatt Macy%{_udevdir}/vdev_id 494eda14cbcSMatt Macy%{_udevdir}/zvol_id 495eda14cbcSMatt Macy%{_udevdir}/rules.d/* 496ee36e25aSMartin Matuska%{_datadir}/%{name}/compatibility.d 497eda14cbcSMatt Macy%if ! 0%{?_systemd} || 0%{?_initramfs} 498eda14cbcSMatt Macy# Files needed for sysvinit and initramfs-tools 499eda14cbcSMatt Macy%{_sysconfdir}/%{name}/zfs-functions 500eda14cbcSMatt Macy%config(noreplace) %{_initconfdir}/zfs 501eda14cbcSMatt Macy%else 502eda14cbcSMatt Macy%exclude %{_sysconfdir}/%{name}/zfs-functions 503eda14cbcSMatt Macy%exclude %{_initconfdir}/zfs 504eda14cbcSMatt Macy%endif 505eda14cbcSMatt Macy%if 0%{?_systemd} 506eda14cbcSMatt Macy%{_unitdir}/* 507eda14cbcSMatt Macy%{_presetdir}/* 508eda14cbcSMatt Macy%{_modulesloaddir}/* 509eda14cbcSMatt Macy%{_systemdgeneratordir}/* 510eda14cbcSMatt Macy%else 511eda14cbcSMatt Macy%config(noreplace) %{_sysconfdir}/init.d/* 512eda14cbcSMatt Macy%endif 513eda14cbcSMatt Macy%config(noreplace) %{_sysconfdir}/%{name}/zed.d/* 514eda14cbcSMatt Macy%config(noreplace) %{_sysconfdir}/%{name}/zpool.d/* 515eda14cbcSMatt Macy%config(noreplace) %{_sysconfdir}/%{name}/vdev_id.conf.*.example 516eda14cbcSMatt Macy%attr(440, root, root) %config(noreplace) %{_sysconfdir}/sudoers.d/* 517eda14cbcSMatt Macy%if %{with pam} 518eda14cbcSMatt Macy%{_libdir}/security/* 519eda14cbcSMatt Macy%{_datadir}/pam-configs/* 520eda14cbcSMatt Macy%endif 521eda14cbcSMatt Macy 52216038816SMartin Matuska%files -n libzpool5 523eda14cbcSMatt Macy%{_libdir}/libzpool.so.* 524eda14cbcSMatt Macy 5257877fdebSMatt Macy%files -n libnvpair3 526eda14cbcSMatt Macy%{_libdir}/libnvpair.so.* 527eda14cbcSMatt Macy 5287877fdebSMatt Macy%files -n libuutil3 529eda14cbcSMatt Macy%{_libdir}/libuutil.so.* 530eda14cbcSMatt Macy 53116038816SMartin Matuska%files -n libzfs5 532eda14cbcSMatt Macy%{_libdir}/libzfs*.so.* 533eda14cbcSMatt Macy 53416038816SMartin Matuska%files -n libzfs5-devel 535eda14cbcSMatt Macy%{_pkgconfigdir}/libzfs.pc 5362c48331dSMatt Macy%{_pkgconfigdir}/libzfsbootenv.pc 537eda14cbcSMatt Macy%{_pkgconfigdir}/libzfs_core.pc 538eda14cbcSMatt Macy%{_libdir}/*.so 539eda14cbcSMatt Macy%{_includedir}/* 540eda14cbcSMatt Macy%doc AUTHORS COPYRIGHT LICENSE NOTICE README.md 541eda14cbcSMatt Macy 542eda14cbcSMatt Macy%files test 543ee36e25aSMartin Matuska%{_datadir}/%{name}/zfs-tests 544ee36e25aSMartin Matuska%{_datadir}/%{name}/test-runner 545ee36e25aSMartin Matuska%{_datadir}/%{name}/runfiles 546ee36e25aSMartin Matuska%{_datadir}/%{name}/*.sh 547eda14cbcSMatt Macy 548eda14cbcSMatt Macy%files dracut 549eda14cbcSMatt Macy%doc contrib/dracut/README.dracut.markdown 550eda14cbcSMatt Macy%{_dracutdir}/modules.d/* 551eda14cbcSMatt Macy 552eda14cbcSMatt Macy%if %{with pyzfs} 553eda14cbcSMatt Macy%files -n python%{__python_pkg_version}-pyzfs 554eda14cbcSMatt Macy%doc contrib/pyzfs/README 555eda14cbcSMatt Macy%doc contrib/pyzfs/LICENSE 556eda14cbcSMatt Macy%defattr(-,root,root,-) 557eda14cbcSMatt Macy%{__python_sitelib}/libzfs_core/* 558eda14cbcSMatt Macy%{__python_sitelib}/pyzfs* 559eda14cbcSMatt Macy%endif 560eda14cbcSMatt Macy 561eda14cbcSMatt Macy%if 0%{?_initramfs} 562eda14cbcSMatt Macy%files initramfs 563eda14cbcSMatt Macy%doc contrib/initramfs/README.initramfs.markdown 564eda14cbcSMatt Macy/usr/share/initramfs-tools/* 565eda14cbcSMatt Macy%else 566eda14cbcSMatt Macy# Since we're not building the initramfs package, 567eda14cbcSMatt Macy# ignore those files. 568eda14cbcSMatt Macy%exclude /usr/share/initramfs-tools 569eda14cbcSMatt Macy%endif 570