xref: /freebsd/sys/contrib/openzfs/rpm/redhat/zfs.spec.in (revision 681ce946f33e75c590e97c53076e86dff1fe8f4a)
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