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} 6e92ffd9bSMartin Matuska%if 0%{?fedora}%{?rhel}%{?centos} 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} 15e92ffd9bSMartin Matuska%if 0%{?fedora}%{?rhel}%{?centos} 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} 24e92ffd9bSMartin Matuska%if 0%{?fedora}%{?rhel}%{?centos} 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 58c03c5b1cSMartin Matuska%bcond_with ubsan 59eda14cbcSMatt Macy%bcond_with systemd 60eda14cbcSMatt Macy%bcond_with pam 61e92ffd9bSMartin Matuska%bcond_without pyzfs 62eda14cbcSMatt Macy 63eda14cbcSMatt Macy# Generic enable switch for systemd 64eda14cbcSMatt Macy%if %{with systemd} 65eda14cbcSMatt Macy%define _systemd 1 66eda14cbcSMatt Macy%endif 67eda14cbcSMatt Macy 68e92ffd9bSMartin Matuska# Distros below support systemd 69e92ffd9bSMartin Matuska%if 0%{?rhel}%{?fedora}%{?centos}%{?suse_version} 70eda14cbcSMatt Macy%define _systemd 1 71eda14cbcSMatt Macy%endif 72eda14cbcSMatt Macy 73e92ffd9bSMartin Matuska# When not specified default to distribution provided version. 74eda14cbcSMatt Macy%if %{undefined __use_python} 75eda14cbcSMatt Macy%define __python /usr/bin/python3 76eda14cbcSMatt Macy%define __python_pkg_version 3 77eda14cbcSMatt Macy%else 78eda14cbcSMatt Macy%define __python %{__use_python} 79eda14cbcSMatt Macy%define __python_pkg_version %{__use_python_pkg_version} 80eda14cbcSMatt Macy%endif 81eda14cbcSMatt Macy%define __python_sitelib %(%{__python} -Esc "from distutils.sysconfig import get_python_lib; print(get_python_lib())") 82eda14cbcSMatt Macy 83eda14cbcSMatt MacyName: @PACKAGE@ 84eda14cbcSMatt MacyVersion: @VERSION@ 85eda14cbcSMatt MacyRelease: @RELEASE@%{?dist} 86eda14cbcSMatt MacySummary: Commands to control the kernel modules and libraries 87eda14cbcSMatt Macy 88eda14cbcSMatt MacyGroup: System Environment/Kernel 89eda14cbcSMatt MacyLicense: @ZFS_META_LICENSE@ 90180f8225SMatt MacyURL: https://github.com/openzfs/zfs 91eda14cbcSMatt MacySource0: %{name}-%{version}.tar.gz 92eda14cbcSMatt MacyBuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) 93e3aa18adSMartin MatuskaRequires: libzpool5%{?_isa} = %{version}-%{release} 94e3aa18adSMartin MatuskaRequires: libnvpair3%{?_isa} = %{version}-%{release} 95e3aa18adSMartin MatuskaRequires: libuutil3%{?_isa} = %{version}-%{release} 96e3aa18adSMartin MatuskaRequires: libzfs5%{?_isa} = %{version}-%{release} 97eda14cbcSMatt MacyRequires: %{name}-kmod = %{version} 98e3aa18adSMartin MatuskaProvides: %{name}-kmod-common = %{version}-%{release} 99271171e0SMartin MatuskaObsoletes: spl <= %{version} 100eda14cbcSMatt Macy 10116038816SMartin Matuska# zfs-fuse provides the same commands and man pages that OpenZFS does. 10216038816SMartin Matuska# Renaming those on either side would conflict with all available documentation. 103eda14cbcSMatt MacyConflicts: zfs-fuse 104eda14cbcSMatt Macy 105e92ffd9bSMartin Matuska%if 0%{?rhel}%{?centos}%{?fedora}%{?suse_version} 106eda14cbcSMatt MacyBuildRequires: gcc, make 107eda14cbcSMatt MacyBuildRequires: zlib-devel 108eda14cbcSMatt MacyBuildRequires: libuuid-devel 109eda14cbcSMatt MacyBuildRequires: libblkid-devel 110eda14cbcSMatt MacyBuildRequires: libudev-devel 111eda14cbcSMatt MacyBuildRequires: libattr-devel 112eda14cbcSMatt MacyBuildRequires: openssl-devel 113e3aa18adSMartin Matuska%if 0%{?fedora} || 0%{?rhel} >= 8 || 0%{?centos} >= 8 114e3aa18adSMartin MatuskaBuildRequires: libtirpc-devel 115e3aa18adSMartin Matuska%endif 116e3aa18adSMartin Matuska 117e3aa18adSMartin Matuska%if (0%{?fedora}%{?suse_version}) || (0%{?rhel} && 0%{?rhel} < 9) 1183ff01b23SMartin Matuska# We don't directly use it, but if this isn't installed, rpmbuild as root can 1193ff01b23SMartin Matuska# crash+corrupt rpmdb 1203ff01b23SMartin Matuska# See issue #12071 1213ff01b23SMartin MatuskaBuildRequires: ncompress 122eda14cbcSMatt Macy%endif 1233ff01b23SMartin Matuska 124eda14cbcSMatt MacyRequires: openssl 125eda14cbcSMatt Macy%if 0%{?_systemd} 126eda14cbcSMatt MacyBuildRequires: systemd 127eda14cbcSMatt Macy%endif 128c03c5b1cSMartin Matuska 129eda14cbcSMatt Macy%endif 130eda14cbcSMatt Macy 131eda14cbcSMatt Macy%if 0%{?_systemd} 132eda14cbcSMatt MacyRequires(post): systemd 133eda14cbcSMatt MacyRequires(preun): systemd 134eda14cbcSMatt MacyRequires(postun): systemd 135eda14cbcSMatt Macy%endif 136eda14cbcSMatt Macy 137eda14cbcSMatt Macy# The zpool iostat/status -c scripts call some utilities like lsblk and iostat 138eda14cbcSMatt MacyRequires: util-linux 139eda14cbcSMatt MacyRequires: sysstat 140eda14cbcSMatt Macy 141eda14cbcSMatt Macy%description 142eda14cbcSMatt MacyThis package contains the core ZFS command line utilities. 143eda14cbcSMatt Macy 14416038816SMartin Matuska%package -n libzpool5 145eda14cbcSMatt MacySummary: Native ZFS pool library for Linux 146eda14cbcSMatt MacyGroup: System Environment/Kernel 147271171e0SMartin MatuskaObsoletes: libzpool2 <= %{version} 148271171e0SMartin MatuskaObsoletes: libzpool4 <= %{version} 149eda14cbcSMatt Macy 15016038816SMartin Matuska%description -n libzpool5 151eda14cbcSMatt MacyThis package contains the zpool library, which provides support 152eda14cbcSMatt Macyfor managing zpools 153eda14cbcSMatt Macy 15416038816SMartin Matuska%if %{defined ldconfig_scriptlets} 15516038816SMartin Matuska%ldconfig_scriptlets -n libzpool5 15616038816SMartin Matuska%else 15716038816SMartin Matuska%post -n libzpool5 -p /sbin/ldconfig 15816038816SMartin Matuska%postun -n libzpool5 -p /sbin/ldconfig 15916038816SMartin Matuska%endif 160eda14cbcSMatt Macy 1617877fdebSMatt Macy%package -n libnvpair3 162eda14cbcSMatt MacySummary: Solaris name-value library for Linux 163eda14cbcSMatt MacyGroup: System Environment/Kernel 164271171e0SMartin MatuskaObsoletes: libnvpair1 <= %{version} 165eda14cbcSMatt Macy 1667877fdebSMatt Macy%description -n libnvpair3 167eda14cbcSMatt MacyThis package contains routines for packing and unpacking name-value 168eda14cbcSMatt Macypairs. This functionality is used to portably transport data across 169eda14cbcSMatt Macyprocess boundaries, between kernel and user space, and can be used 170eda14cbcSMatt Macyto write self describing data structures on disk. 171eda14cbcSMatt Macy 17216038816SMartin Matuska%if %{defined ldconfig_scriptlets} 17316038816SMartin Matuska%ldconfig_scriptlets -n libnvpair3 17416038816SMartin Matuska%else 1757877fdebSMatt Macy%post -n libnvpair3 -p /sbin/ldconfig 1767877fdebSMatt Macy%postun -n libnvpair3 -p /sbin/ldconfig 17716038816SMartin Matuska%endif 178eda14cbcSMatt Macy 1797877fdebSMatt Macy%package -n libuutil3 180eda14cbcSMatt MacySummary: Solaris userland utility library for Linux 181eda14cbcSMatt MacyGroup: System Environment/Kernel 182271171e0SMartin MatuskaObsoletes: libuutil1 <= %{version} 183eda14cbcSMatt Macy 1847877fdebSMatt Macy%description -n libuutil3 185180f8225SMatt MacyThis library provides a variety of compatibility functions for OpenZFS: 186eda14cbcSMatt Macy * libspl: The Solaris Porting Layer userland library, which provides APIs 187eda14cbcSMatt Macy that make it possible to run Solaris user code in a Linux environment 188eda14cbcSMatt Macy with relatively minimal modification. 189eda14cbcSMatt Macy * libavl: The Adelson-Velskii Landis balanced binary tree manipulation 190eda14cbcSMatt Macy library. 191eda14cbcSMatt Macy * libefi: The Extensible Firmware Interface library for GUID disk 192eda14cbcSMatt Macy partitioning. 193eda14cbcSMatt Macy * libshare: NFS, SMB, and iSCSI service integration for ZFS. 194eda14cbcSMatt Macy 19516038816SMartin Matuska%if %{defined ldconfig_scriptlets} 19616038816SMartin Matuska%ldconfig_scriptlets -n libuutil3 19716038816SMartin Matuska%else 1987877fdebSMatt Macy%post -n libuutil3 -p /sbin/ldconfig 1997877fdebSMatt Macy%postun -n libuutil3 -p /sbin/ldconfig 20016038816SMartin Matuska%endif 201eda14cbcSMatt Macy 20216038816SMartin Matuska# The library version is encoded in the package name. When updating the 20316038816SMartin Matuska# version information it is important to add an obsoletes line below for 20416038816SMartin Matuska# the previous version of the package. 20516038816SMartin Matuska%package -n libzfs5 206eda14cbcSMatt MacySummary: Native ZFS filesystem library for Linux 207eda14cbcSMatt MacyGroup: System Environment/Kernel 208271171e0SMartin MatuskaObsoletes: libzfs2 <= %{version} 209271171e0SMartin MatuskaObsoletes: libzfs4 <= %{version} 210eda14cbcSMatt Macy 21116038816SMartin Matuska%description -n libzfs5 212eda14cbcSMatt MacyThis package provides support for managing ZFS filesystems 213eda14cbcSMatt Macy 21416038816SMartin Matuska%if %{defined ldconfig_scriptlets} 21516038816SMartin Matuska%ldconfig_scriptlets -n libzfs5 21616038816SMartin Matuska%else 21716038816SMartin Matuska%post -n libzfs5 -p /sbin/ldconfig 21816038816SMartin Matuska%postun -n libzfs5 -p /sbin/ldconfig 21916038816SMartin Matuska%endif 220eda14cbcSMatt Macy 22116038816SMartin Matuska%package -n libzfs5-devel 222eda14cbcSMatt MacySummary: Development headers 223eda14cbcSMatt MacyGroup: System Environment/Kernel 224e3aa18adSMartin MatuskaRequires: libzfs5%{?_isa} = %{version}-%{release} 225e3aa18adSMartin MatuskaRequires: libzpool5%{?_isa} = %{version}-%{release} 226e3aa18adSMartin MatuskaRequires: libnvpair3%{?_isa} = %{version}-%{release} 227e3aa18adSMartin MatuskaRequires: libuutil3%{?_isa} = %{version}-%{release} 228e3aa18adSMartin MatuskaProvides: libzpool5-devel = %{version}-%{release} 229e3aa18adSMartin MatuskaProvides: libnvpair3-devel = %{version}-%{release} 230e3aa18adSMartin MatuskaProvides: libuutil3-devel = %{version}-%{release} 231271171e0SMartin MatuskaObsoletes: zfs-devel <= %{version} 232271171e0SMartin MatuskaObsoletes: libzfs2-devel <= %{version} 233271171e0SMartin MatuskaObsoletes: libzfs4-devel <= %{version} 234eda14cbcSMatt Macy 23516038816SMartin Matuska%description -n libzfs5-devel 236eda14cbcSMatt MacyThis package contains the header files needed for building additional 237eda14cbcSMatt Macyapplications against the ZFS libraries. 238eda14cbcSMatt Macy 239eda14cbcSMatt Macy%package test 240eda14cbcSMatt MacySummary: Test infrastructure 241eda14cbcSMatt MacyGroup: System Environment/Kernel 242eda14cbcSMatt MacyRequires: %{name}%{?_isa} = %{version}-%{release} 243eda14cbcSMatt MacyRequires: parted 244eda14cbcSMatt MacyRequires: lsscsi 245eda14cbcSMatt MacyRequires: mdadm 246eda14cbcSMatt MacyRequires: bc 247eda14cbcSMatt MacyRequires: ksh 248eda14cbcSMatt MacyRequires: fio 249eda14cbcSMatt MacyRequires: acl 250eda14cbcSMatt MacyRequires: sudo 251eda14cbcSMatt MacyRequires: sysstat 252eda14cbcSMatt MacyRequires: libaio 253eda14cbcSMatt MacyRequires: python%{__python_pkg_version} 254e92ffd9bSMartin Matuska%if 0%{?rhel}%{?centos}%{?fedora}%{?suse_version} 255eda14cbcSMatt MacyBuildRequires: libaio-devel 256eda14cbcSMatt Macy%endif 257eda14cbcSMatt MacyAutoReqProv: no 258eda14cbcSMatt Macy 259eda14cbcSMatt Macy%description test 260eda14cbcSMatt MacyThis package contains test infrastructure and support scripts for 261eda14cbcSMatt Macyvalidating the file system. 262eda14cbcSMatt Macy 263eda14cbcSMatt Macy%package dracut 264eda14cbcSMatt MacySummary: Dracut module 265eda14cbcSMatt MacyGroup: System Environment/Kernel 266eda14cbcSMatt MacyBuildArch: noarch 267eda14cbcSMatt MacyRequires: %{name} >= %{version} 268eda14cbcSMatt MacyRequires: dracut 269eda14cbcSMatt MacyRequires: /usr/bin/awk 270eda14cbcSMatt MacyRequires: grep 271eda14cbcSMatt Macy 272eda14cbcSMatt Macy%description dracut 273eda14cbcSMatt MacyThis package contains a dracut module used to construct an initramfs 274eda14cbcSMatt Macyimage which is ZFS aware. 275eda14cbcSMatt Macy 276eda14cbcSMatt Macy%if %{with pyzfs} 277e92ffd9bSMartin Matuska# Enforce `python36-` package prefix for CentOS 7 278e92ffd9bSMartin Matuska# since dependencies come from EPEL and are named this way 279eda14cbcSMatt Macy%package -n python%{__python_pkg_version}-pyzfs 280eda14cbcSMatt MacySummary: Python %{python_version} wrapper for libzfs_core 281eda14cbcSMatt MacyGroup: Development/Languages/Python 282eda14cbcSMatt MacyLicense: Apache-2.0 283eda14cbcSMatt MacyBuildArch: noarch 284e3aa18adSMartin MatuskaRequires: libzfs5 = %{version}-%{release} 285e3aa18adSMartin MatuskaRequires: libnvpair3 = %{version}-%{release} 286eda14cbcSMatt MacyRequires: libffi 287eda14cbcSMatt MacyRequires: python%{__python_pkg_version} 288e92ffd9bSMartin Matuska 289e92ffd9bSMartin Matuska%if 0%{?centos} == 7 290e92ffd9bSMartin MatuskaRequires: python36-cffi 2913ff01b23SMartin Matuska%else 292e92ffd9bSMartin MatuskaRequires: python%{__python_pkg_version}-cffi 2933ff01b23SMartin Matuska%endif 294e92ffd9bSMartin Matuska 295e92ffd9bSMartin Matuska%if 0%{?rhel}%{?centos}%{?fedora}%{?suse_version} 296e92ffd9bSMartin Matuska%if 0%{?centos} == 7 297e92ffd9bSMartin MatuskaBuildRequires: python36-packaging 298e92ffd9bSMartin MatuskaBuildRequires: python36-devel 299e92ffd9bSMartin MatuskaBuildRequires: python36-cffi 300e92ffd9bSMartin MatuskaBuildRequires: python36-setuptools 301e92ffd9bSMartin Matuska%else 302e92ffd9bSMartin MatuskaBuildRequires: python%{__python_pkg_version}-packaging 303eda14cbcSMatt MacyBuildRequires: python%{__python_pkg_version}-devel 304e92ffd9bSMartin MatuskaBuildRequires: python%{__python_pkg_version}-cffi 305e92ffd9bSMartin MatuskaBuildRequires: python%{__python_pkg_version}-setuptools 306e92ffd9bSMartin Matuska%endif 307e92ffd9bSMartin Matuska 308eda14cbcSMatt MacyBuildRequires: libffi-devel 309eda14cbcSMatt Macy%endif 310eda14cbcSMatt Macy 311eda14cbcSMatt Macy%description -n python%{__python_pkg_version}-pyzfs 312eda14cbcSMatt MacyThis package provides a python wrapper for the libzfs_core C library. 313eda14cbcSMatt Macy%endif 314eda14cbcSMatt Macy 315eda14cbcSMatt Macy%if 0%{?_initramfs} 316eda14cbcSMatt Macy%package initramfs 317eda14cbcSMatt MacySummary: Initramfs module 318eda14cbcSMatt MacyGroup: System Environment/Kernel 319eda14cbcSMatt MacyRequires: %{name}%{?_isa} = %{version}-%{release} 320eda14cbcSMatt MacyRequires: initramfs-tools 321eda14cbcSMatt Macy 322eda14cbcSMatt Macy%description initramfs 323eda14cbcSMatt MacyThis package contains a initramfs module used to construct an initramfs 324eda14cbcSMatt Macyimage which is ZFS aware. 325eda14cbcSMatt Macy%endif 326eda14cbcSMatt Macy 327da5137abSMartin Matuska%if %{with pam} 328da5137abSMartin Matuska%package -n pam_zfs_key 329da5137abSMartin MatuskaSummary: PAM module for encrypted ZFS datasets 330da5137abSMartin Matuska 331da5137abSMartin Matuska%if 0%{?rhel}%{?centos}%{?fedora}%{?suse_version} 332da5137abSMartin MatuskaBuildRequires: pam-devel 333da5137abSMartin Matuska%endif 334da5137abSMartin Matuska 335da5137abSMartin Matuska%description -n pam_zfs_key 336da5137abSMartin MatuskaThis package contains the pam_zfs_key PAM module, which provides 337da5137abSMartin Matuskasupport for unlocking datasets on user login. 338da5137abSMartin Matuska%endif 339da5137abSMartin Matuska 340eda14cbcSMatt Macy%prep 341eda14cbcSMatt Macy%if %{with debug} 342eda14cbcSMatt Macy %define debug --enable-debug 343eda14cbcSMatt Macy%else 344eda14cbcSMatt Macy %define debug --disable-debug 345eda14cbcSMatt Macy%endif 346eda14cbcSMatt Macy 347eda14cbcSMatt Macy%if %{with debuginfo} 348eda14cbcSMatt Macy %define debuginfo --enable-debuginfo 349eda14cbcSMatt Macy%else 350eda14cbcSMatt Macy %define debuginfo --disable-debuginfo 351eda14cbcSMatt Macy%endif 352eda14cbcSMatt Macy 353eda14cbcSMatt Macy%if %{with asan} 354eda14cbcSMatt Macy %define asan --enable-asan 355eda14cbcSMatt Macy%else 356eda14cbcSMatt Macy %define asan --disable-asan 357eda14cbcSMatt Macy%endif 358eda14cbcSMatt Macy 359c03c5b1cSMartin Matuska%if %{with ubsan} 360c03c5b1cSMartin Matuska %define ubsan --enable-ubsan 361c03c5b1cSMartin Matuska%else 362c03c5b1cSMartin Matuska %define ubsan --disable-ubsan 363c03c5b1cSMartin Matuska%endif 364c03c5b1cSMartin Matuska 365eda14cbcSMatt Macy%if 0%{?_systemd} 366eda14cbcSMatt Macy %define systemd --enable-systemd --with-systemdunitdir=%{_unitdir} --with-systemdpresetdir=%{_presetdir} --with-systemdmodulesloaddir=%{_modulesloaddir} --with-systemdgeneratordir=%{_systemdgeneratordir} --disable-sysvinit 367eda14cbcSMatt 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 368eda14cbcSMatt Macy%else 369eda14cbcSMatt Macy %define systemd --enable-sysvinit --disable-systemd 370eda14cbcSMatt Macy%endif 371eda14cbcSMatt Macy 372eda14cbcSMatt Macy%if %{with pyzfs} 373eda14cbcSMatt Macy %define pyzfs --enable-pyzfs 374eda14cbcSMatt Macy%else 375eda14cbcSMatt Macy %define pyzfs --disable-pyzfs 376eda14cbcSMatt Macy%endif 377eda14cbcSMatt Macy 378eda14cbcSMatt Macy%if %{with pam} 379eda14cbcSMatt Macy %define pam --enable-pam 380eda14cbcSMatt Macy%else 381eda14cbcSMatt Macy %define pam --disable-pam 382eda14cbcSMatt Macy%endif 383eda14cbcSMatt Macy 384eda14cbcSMatt Macy%setup -q 385eda14cbcSMatt Macy 386eda14cbcSMatt Macy%build 387eda14cbcSMatt Macy%configure \ 388eda14cbcSMatt Macy --with-config=user \ 389eda14cbcSMatt Macy --with-udevdir=%{_udevdir} \ 390eda14cbcSMatt Macy --with-udevruledir=%{_udevruledir} \ 391eda14cbcSMatt Macy --with-dracutdir=%{_dracutdir} \ 392eda14cbcSMatt Macy --with-pamconfigsdir=%{_datadir}/pam-configs \ 393eda14cbcSMatt Macy --with-pammoduledir=%{_libdir}/security \ 394eda14cbcSMatt Macy --with-python=%{__python} \ 395eda14cbcSMatt Macy --with-pkgconfigdir=%{_pkgconfigdir} \ 396eda14cbcSMatt Macy --disable-static \ 397eda14cbcSMatt Macy %{debug} \ 398eda14cbcSMatt Macy %{debuginfo} \ 399eda14cbcSMatt Macy %{asan} \ 400c03c5b1cSMartin Matuska %{ubsan} \ 401eda14cbcSMatt Macy %{systemd} \ 402eda14cbcSMatt Macy %{pam} \ 403eda14cbcSMatt Macy %{pyzfs} 404eda14cbcSMatt Macymake %{?_smp_mflags} 405eda14cbcSMatt Macy 406eda14cbcSMatt Macy%install 407eda14cbcSMatt Macy%{__rm} -rf $RPM_BUILD_ROOT 408eda14cbcSMatt Macymake install DESTDIR=%{?buildroot} 409eda14cbcSMatt Macyfind %{?buildroot}%{_libdir} -name '*.la' -exec rm -f {} \; 410eda14cbcSMatt Macy%if 0%{!?__brp_mangle_shebangs:1} 411eda14cbcSMatt Macyfind %{?buildroot}%{_bindir} \ 412*c7046f76SMartin Matuska \( -name arc_summary -or -name arcstat -or -name dbufstat \ 413*c7046f76SMartin Matuska -or -name zilstat \) \ 414eda14cbcSMatt Macy -exec %{__sed} -i 's|^#!.*|#!%{__python}|' {} \; 415eda14cbcSMatt Macyfind %{?buildroot}%{_datadir} \ 416eda14cbcSMatt Macy \( -name test-runner.py -or -name zts-report.py \) \ 417eda14cbcSMatt Macy -exec %{__sed} -i 's|^#!.*|#!%{__python}|' {} \; 418eda14cbcSMatt Macy%endif 419eda14cbcSMatt Macy 420eda14cbcSMatt Macy%post 421eda14cbcSMatt Macy%if 0%{?_systemd} 422eda14cbcSMatt Macy%if 0%{?systemd_post:1} 423eda14cbcSMatt Macy%systemd_post %{systemd_svcs} 424eda14cbcSMatt Macy%else 425eda14cbcSMatt Macyif [ "$1" = "1" -o "$1" = "install" ] ; then 426eda14cbcSMatt Macy # Initial installation 427eda14cbcSMatt Macy systemctl preset %{systemd_svcs} >/dev/null || true 428eda14cbcSMatt Macyfi 429eda14cbcSMatt Macy%endif 430eda14cbcSMatt Macy%else 431eda14cbcSMatt Macyif [ -x /sbin/chkconfig ]; then 432eda14cbcSMatt Macy /sbin/chkconfig --add zfs-import 433681ce946SMartin Matuska /sbin/chkconfig --add zfs-load-key 434eda14cbcSMatt Macy /sbin/chkconfig --add zfs-mount 435eda14cbcSMatt Macy /sbin/chkconfig --add zfs-share 436eda14cbcSMatt Macy /sbin/chkconfig --add zfs-zed 437eda14cbcSMatt Macyfi 438eda14cbcSMatt Macy%endif 439eda14cbcSMatt Macyexit 0 440eda14cbcSMatt Macy 441eda14cbcSMatt Macy# On RHEL/CentOS 7 the static nodes aren't refreshed by default after 442eda14cbcSMatt Macy# installing a package. This is the default behavior for Fedora. 443eda14cbcSMatt Macy%posttrans 444eda14cbcSMatt Macy%if 0%{?rhel} == 7 || 0%{?centos} == 7 445eda14cbcSMatt Macysystemctl restart kmod-static-nodes 446eda14cbcSMatt Macysystemctl restart systemd-tmpfiles-setup-dev 447eda14cbcSMatt Macyudevadm trigger 448eda14cbcSMatt Macy%endif 449eda14cbcSMatt Macy 450eda14cbcSMatt Macy%preun 451eda14cbcSMatt Macy%if 0%{?_systemd} 452eda14cbcSMatt Macy%if 0%{?systemd_preun:1} 453eda14cbcSMatt Macy%systemd_preun %{systemd_svcs} 454eda14cbcSMatt Macy%else 455eda14cbcSMatt Macyif [ "$1" = "0" -o "$1" = "remove" ] ; then 456eda14cbcSMatt Macy # Package removal, not upgrade 457eda14cbcSMatt Macy systemctl --no-reload disable %{systemd_svcs} >/dev/null || true 458eda14cbcSMatt Macy systemctl stop %{systemd_svcs} >/dev/null || true 459eda14cbcSMatt Macyfi 460eda14cbcSMatt Macy%endif 461eda14cbcSMatt Macy%else 462eda14cbcSMatt Macyif [ "$1" = "0" -o "$1" = "remove" ] && [ -x /sbin/chkconfig ]; then 463eda14cbcSMatt Macy /sbin/chkconfig --del zfs-import 464681ce946SMartin Matuska /sbin/chkconfig --del zfs-load-key 465eda14cbcSMatt Macy /sbin/chkconfig --del zfs-mount 466eda14cbcSMatt Macy /sbin/chkconfig --del zfs-share 467eda14cbcSMatt Macy /sbin/chkconfig --del zfs-zed 468eda14cbcSMatt Macyfi 469eda14cbcSMatt Macy%endif 470eda14cbcSMatt Macyexit 0 471eda14cbcSMatt Macy 472eda14cbcSMatt Macy%postun 473eda14cbcSMatt Macy%if 0%{?_systemd} 474eda14cbcSMatt Macy%if 0%{?systemd_postun:1} 475eda14cbcSMatt Macy%systemd_postun %{systemd_svcs} 476eda14cbcSMatt Macy%else 477eda14cbcSMatt Macysystemctl --system daemon-reload >/dev/null || true 478eda14cbcSMatt Macy%endif 479eda14cbcSMatt Macy%endif 480eda14cbcSMatt Macy 481eda14cbcSMatt Macy%files 482eda14cbcSMatt Macy# Core utilities 483eda14cbcSMatt Macy%{_sbindir}/* 484eda14cbcSMatt Macy%{_bindir}/raidz_test 485184c1b94SMartin Matuska%{_sbindir}/zgenhostid 486eda14cbcSMatt Macy%{_bindir}/zvol_wait 487e92ffd9bSMartin Matuska# Optional Python 3 scripts 488eda14cbcSMatt Macy%{_bindir}/arc_summary 489eda14cbcSMatt Macy%{_bindir}/arcstat 490eda14cbcSMatt Macy%{_bindir}/dbufstat 491*c7046f76SMartin Matuska%{_bindir}/zilstat 492eda14cbcSMatt Macy# Man pages 493eda14cbcSMatt Macy%{_mandir}/man1/* 4943ff01b23SMartin Matuska%{_mandir}/man4/* 495eda14cbcSMatt Macy%{_mandir}/man5/* 4963ff01b23SMartin Matuska%{_mandir}/man7/* 497eda14cbcSMatt Macy%{_mandir}/man8/* 498eda14cbcSMatt Macy# Configuration files and scripts 499eda14cbcSMatt Macy%{_libexecdir}/%{name} 500eda14cbcSMatt Macy%{_udevdir}/vdev_id 501eda14cbcSMatt Macy%{_udevdir}/zvol_id 502eda14cbcSMatt Macy%{_udevdir}/rules.d/* 503ee36e25aSMartin Matuska%{_datadir}/%{name}/compatibility.d 504eda14cbcSMatt Macy%if ! 0%{?_systemd} || 0%{?_initramfs} 505eda14cbcSMatt Macy# Files needed for sysvinit and initramfs-tools 506eda14cbcSMatt Macy%{_sysconfdir}/%{name}/zfs-functions 507eda14cbcSMatt Macy%config(noreplace) %{_initconfdir}/zfs 508eda14cbcSMatt Macy%else 509eda14cbcSMatt Macy%exclude %{_sysconfdir}/%{name}/zfs-functions 510eda14cbcSMatt Macy%exclude %{_initconfdir}/zfs 511eda14cbcSMatt Macy%endif 512eda14cbcSMatt Macy%if 0%{?_systemd} 513eda14cbcSMatt Macy%{_unitdir}/* 514eda14cbcSMatt Macy%{_presetdir}/* 515eda14cbcSMatt Macy%{_modulesloaddir}/* 516eda14cbcSMatt Macy%{_systemdgeneratordir}/* 517eda14cbcSMatt Macy%else 518eda14cbcSMatt Macy%config(noreplace) %{_sysconfdir}/init.d/* 519eda14cbcSMatt Macy%endif 520eda14cbcSMatt Macy%config(noreplace) %{_sysconfdir}/%{name}/zed.d/* 521eda14cbcSMatt Macy%config(noreplace) %{_sysconfdir}/%{name}/zpool.d/* 522eda14cbcSMatt Macy%config(noreplace) %{_sysconfdir}/%{name}/vdev_id.conf.*.example 523eda14cbcSMatt Macy%attr(440, root, root) %config(noreplace) %{_sysconfdir}/sudoers.d/* 524eda14cbcSMatt Macy 525716fd348SMartin Matuska%config(noreplace) %{_sysconfdir}/bash_completion.d/zfs 526716fd348SMartin Matuska 52716038816SMartin Matuska%files -n libzpool5 528eda14cbcSMatt Macy%{_libdir}/libzpool.so.* 529eda14cbcSMatt Macy 5307877fdebSMatt Macy%files -n libnvpair3 531eda14cbcSMatt Macy%{_libdir}/libnvpair.so.* 532eda14cbcSMatt Macy 5337877fdebSMatt Macy%files -n libuutil3 534eda14cbcSMatt Macy%{_libdir}/libuutil.so.* 535eda14cbcSMatt Macy 53616038816SMartin Matuska%files -n libzfs5 537eda14cbcSMatt Macy%{_libdir}/libzfs*.so.* 538eda14cbcSMatt Macy 53916038816SMartin Matuska%files -n libzfs5-devel 540eda14cbcSMatt Macy%{_pkgconfigdir}/libzfs.pc 5412c48331dSMatt Macy%{_pkgconfigdir}/libzfsbootenv.pc 542eda14cbcSMatt Macy%{_pkgconfigdir}/libzfs_core.pc 543eda14cbcSMatt Macy%{_libdir}/*.so 544eda14cbcSMatt Macy%{_includedir}/* 545eda14cbcSMatt Macy%doc AUTHORS COPYRIGHT LICENSE NOTICE README.md 546eda14cbcSMatt Macy 547eda14cbcSMatt Macy%files test 548ee36e25aSMartin Matuska%{_datadir}/%{name}/zfs-tests 549ee36e25aSMartin Matuska%{_datadir}/%{name}/test-runner 550ee36e25aSMartin Matuska%{_datadir}/%{name}/runfiles 551ee36e25aSMartin Matuska%{_datadir}/%{name}/*.sh 552eda14cbcSMatt Macy 553eda14cbcSMatt Macy%files dracut 554c03c5b1cSMartin Matuska%doc contrib/dracut/README.md 555eda14cbcSMatt Macy%{_dracutdir}/modules.d/* 556eda14cbcSMatt Macy 557eda14cbcSMatt Macy%if %{with pyzfs} 558eda14cbcSMatt Macy%files -n python%{__python_pkg_version}-pyzfs 559eda14cbcSMatt Macy%doc contrib/pyzfs/README 560eda14cbcSMatt Macy%doc contrib/pyzfs/LICENSE 561eda14cbcSMatt Macy%defattr(-,root,root,-) 562eda14cbcSMatt Macy%{__python_sitelib}/libzfs_core/* 563eda14cbcSMatt Macy%{__python_sitelib}/pyzfs* 564eda14cbcSMatt Macy%endif 565eda14cbcSMatt Macy 566eda14cbcSMatt Macy%if 0%{?_initramfs} 567eda14cbcSMatt Macy%files initramfs 568c03c5b1cSMartin Matuska%doc contrib/initramfs/README.md 569eda14cbcSMatt Macy/usr/share/initramfs-tools/* 570eda14cbcSMatt Macy%else 571eda14cbcSMatt Macy# Since we're not building the initramfs package, 572eda14cbcSMatt Macy# ignore those files. 573eda14cbcSMatt Macy%exclude /usr/share/initramfs-tools 574eda14cbcSMatt Macy%endif 575da5137abSMartin Matuska 576da5137abSMartin Matuska%if %{with pam} 577da5137abSMartin Matuska%files -n pam_zfs_key 578da5137abSMartin Matuska%{_libdir}/security/* 579da5137abSMartin Matuska%{_datadir}/pam-configs/* 580da5137abSMartin Matuska%endif 581