2.2.0-0.1rc1
- nfs-ganesha.spec based on upstream
This commit is contained in:
parent
73e384859e
commit
4d4c9a4f89
697
nfs-ganesha.spec
697
nfs-ganesha.spec
@ -1,183 +1,317 @@
|
||||
|
||||
# %%global prereltag rcfinal
|
||||
%global ntirpcname ntirpc
|
||||
%global ntirpcvers 1.1.0
|
||||
|
||||
%global _hardened_build 1
|
||||
|
||||
%if ( 0%{?fedora} && 0%{?fedora} > 16 ) || ( 0%{?rhel} && 0%{?rhel} > 6 )
|
||||
%global _with_systemd true
|
||||
%if 0%{?fedora} >= 15 || 0%{?rhel} >= 7
|
||||
%global with_nfsidmap 1
|
||||
%else
|
||||
%global with_nfsidmap 0
|
||||
%endif
|
||||
|
||||
# GlusterFS is not available in EPEL
|
||||
# RHEL finally has 3.6.x, but lacks glusterfs-api-devel
|
||||
%if ( ! 0%{?rhel} )
|
||||
%global with_glusterfs true
|
||||
%if ( 0%{?fedora} >= 18 || 0%{?rhel} >= 7 )
|
||||
%global with_systemd 1
|
||||
%else
|
||||
%global with_systemd 0
|
||||
%endif
|
||||
|
||||
%global with_cephfs true
|
||||
# Conditionally enable some FSALs, disable others.
|
||||
#
|
||||
# 1. rpmbuild accepts these options (gpfs as example):
|
||||
# --with gpfs
|
||||
# --without gpfs
|
||||
|
||||
%global with_admintools true
|
||||
%define on_off_switch() %%{?with_%1:ON}%%{!?with_%1:OFF}
|
||||
|
||||
# From https://fedoraproject.org/wiki/Packaging:Python#Macros
|
||||
%if ( 0%{?rhel} && 0%{?rhel} <= 5 )
|
||||
%{!?python_sitelib: %global python_sitelib %(python -c "from distutils.sysconfig import get_python_lib; print(get_python_lib())")}
|
||||
%{!?python_sitearch: %global python_sitearch %(python -c "from distutils.sysconfig import get_python_lib; print(get_python_lib(1))")}
|
||||
%endif
|
||||
# A few explanation about %%bcond_with and %%bcond_without
|
||||
# /!\ be careful: this syntax can be quite messy
|
||||
# %%bcond_with means you add a "--with" option, default = without this feature
|
||||
# %%bcond_without adds a"--without" so the feature is enabled by default
|
||||
|
||||
Name: nfs-ganesha
|
||||
Version: 2.1.0
|
||||
Release: 14%{?prereltag:.%{prereltag}}%{?dist}
|
||||
Summary: Ganesha NFS Server
|
||||
Group: System Environment/Libraries
|
||||
License: LGPLv3+
|
||||
URL: https://github.com/nfs-ganesha/nfs-ganesha/wiki
|
||||
ExclusiveArch: x86_64
|
||||
ExclusiveArch: aarch64
|
||||
#%%bcond_without gpfs
|
||||
%global use_fsal_gpfs OFF
|
||||
|
||||
Source0: https://github.com/%{name}/%{name}/archive/V%{version}/%{name}-%{version}.tar.gz
|
||||
Source1: https://github.com/%{name}/%{ntirpcname}/archive/v%{ntirpcvers}/%{ntirpcname}-%{ntirpcvers}.tar.gz
|
||||
Source2: nfs-ganesha.service
|
||||
Patch3: nfs-ganesha-2.0.0-no-strict-aliasing.patch
|
||||
Patch6: nfs-ganesha-2.1.0-config_parsing.patch
|
||||
Patch7: nfs-ganesha-2.1.0-cache_inode_getattr.patch
|
||||
Patch8: nfs-ganesha-2.1.0-nfs4_pseudo.patch
|
||||
Patch9: nfs-ganesha-2.1.0-config-h.in.cmake.patch
|
||||
Patch10: nfs-ganesha-2.1.0-commonlib.patch
|
||||
Patch11: nfs-ganesha-2.1.0-nfs4_op_secinfo.patch
|
||||
Patch12: nfs-ganesha-2.1.0-support-CMakeLists.txt.patch
|
||||
Patch13: nfs-ganesha-2.1.0-cache_inode.patch
|
||||
Patch14: nfs-ganesha-2.1.0-state_lock.patch
|
||||
%bcond_without xfs
|
||||
%global use_fsal_xfs %{on_off_switch xfs}
|
||||
|
||||
%{!?_pkgdocdir: %global _pkgdocdir %{_docdir}/%{name}-%{version}}
|
||||
%bcond_without ceph
|
||||
%global use_fsal_ceph %{on_off_switch ceph}
|
||||
|
||||
#%%bcond_with lustre
|
||||
%global use_fsal_lustre OFF
|
||||
|
||||
#%%bcond_with shook
|
||||
%global use_fsal_shook OFF
|
||||
|
||||
%bcond_without gluster
|
||||
%global use_fsal_gluster %{on_off_switch gluster}
|
||||
|
||||
#%%bcond_with hpss
|
||||
%global use_fsal_hpss OFF
|
||||
|
||||
#%%bcond_without panfs
|
||||
%global use_fsal_panfs OFF
|
||||
|
||||
#%%bcond_with pt
|
||||
%global use_fsal_pt OFF
|
||||
|
||||
%bcond_with rdma
|
||||
%global use_rdma %{on_off_switch rdma}
|
||||
|
||||
%bcond_without jemalloc
|
||||
|
||||
#%%bcond_with lustre_up
|
||||
%global use_lustre_up OFF
|
||||
|
||||
#%%bcond_with lttng
|
||||
%global use_lttng OFF
|
||||
|
||||
%bcond_without utils
|
||||
%global use_utils %{on_off_switch utils}
|
||||
|
||||
%global dev_version %{lua: extraver = string.gsub('-rc1', '%-', ''); print(extraver) }
|
||||
|
||||
%global ntirpcname ntirpc
|
||||
%global ntirpcvers 1.2.0
|
||||
%global versiontag 2.2-rc1
|
||||
|
||||
Name: nfs-ganesha
|
||||
Version: 2.2.0
|
||||
Release: 0.1%{?dev_version:%{dev_version}}%{?dist}
|
||||
Summary: NFS-Ganesha is a NFS Server running in user space
|
||||
Group: Applications/System
|
||||
License: LGPLv3+
|
||||
Url: https://github.com/nfs-ganesha/nfs-ganesha/wiki
|
||||
|
||||
Source0: https://github.com/%{name}/%{name}/archive/V%{versiontag}/%{name}-%{version}%{dev_version}.tar.gz
|
||||
Source1: https://github.com/%{name}/%{ntirpcname}/archive/v%{ntirpcvers}/%{ntirpcname}-%{ntirpcvers}.tar.gz
|
||||
Patch13: nfs-ganesha-2.1.0-cache_inode.patch
|
||||
Patch14: nfs-ganesha-2.1.0-state_lock.patch
|
||||
|
||||
# Bundling exception through Fedora 23
|
||||
# https://fedorahosted.org/fpc/ticket/363
|
||||
Provides: bundled(libntirpc)
|
||||
|
||||
%if ( 0%{?_with_systemd:1} )
|
||||
BuildRequires: systemd
|
||||
%endif
|
||||
%if ( 0%{?rhel} && 0%{?rhel} < 7 )
|
||||
BuildRequires: cmake28
|
||||
%else
|
||||
BuildRequires: cmake >= 2.6.3
|
||||
BuildRequires: cmake
|
||||
%endif
|
||||
BuildRequires: bison
|
||||
BuildRequires: flex
|
||||
BuildRequires: pkgconfig
|
||||
BuildRequires: doxygen
|
||||
BuildRequires: krb5-devel
|
||||
BuildRequires: dbus-devel
|
||||
BuildRequires: jemalloc-devel
|
||||
%if ( 0%{?fedora} && 0%{?fedora} > 16 ) || ( 0%{?rhel} && 0%{?rhel} > 6 )
|
||||
BuildRequires: xfsprogs-devel
|
||||
BuildRequires: libnfsidmap-devel
|
||||
BuildRequires: libwbclient-devel
|
||||
BuildRequires: bison flex
|
||||
BuildRequires: flex
|
||||
BuildRequires: pkgconfig
|
||||
BuildRequires: krb5-devel
|
||||
BuildRequires: dbus-devel
|
||||
BuildRequires: libcap-devel
|
||||
BuildRequires: libblkid-devel
|
||||
BuildRequires: libuuid-devel
|
||||
Requires: dbus
|
||||
%if %{with_nfsidmap}
|
||||
BuildRequires: libnfsidmap-devel
|
||||
%else
|
||||
BuildRequires: nfs-utils-lib-devel
|
||||
%endif
|
||||
BuildRequires: libcap-devel
|
||||
%if ( 0%{?with_admintools:1} )
|
||||
BuildRequires: PyQt4-devel
|
||||
%if %{with rdma}
|
||||
BuildRequires: libmooshika-devel >= 0.6-0
|
||||
%endif
|
||||
%if %{with jemalloc}
|
||||
BuildRequires: jemalloc-devel
|
||||
%endif
|
||||
%if %{with lustre_up}
|
||||
BuildRequires: lcap-devel >= 0.1-0
|
||||
%endif
|
||||
%if %{with_systemd}
|
||||
BuildRequires: systemd
|
||||
Requires(post): systemd
|
||||
Requires(preun): systemd
|
||||
Requires(postun): systemd
|
||||
%else
|
||||
BuildRequires: initscripts
|
||||
%endif
|
||||
|
||||
%if ( 0%{?_with_systemd:1} )
|
||||
Requires(post): systemd
|
||||
Requires(preun): systemd
|
||||
Requires(postun): systemd
|
||||
%else
|
||||
Requires(post): /sbin/chkconfig
|
||||
Requires(preun): /sbin/service
|
||||
Requires(preun): /sbin/chkconfig
|
||||
Requires(postun): /sbin/service
|
||||
%endif
|
||||
Requires: dbus
|
||||
Requires: jemalloc
|
||||
%if ( 0%{?with_admintools:1} )
|
||||
Requires: PyQt4
|
||||
%endif
|
||||
# Use CMake variables
|
||||
|
||||
%description
|
||||
NFS-Ganesha is a user mode file server with support for both the
|
||||
NFS suite and 9P, the Plan 9 remote file access protocol. It uses
|
||||
an internal meta data cache and state manager for performance. It
|
||||
also provides support for pNFS for multiple clustered file systems
|
||||
both open source and proprietary. Multiple file systems are supported
|
||||
via loadable back-end drivers. The VFS back-end supports file systems
|
||||
via the kernel. Other back-ends can support user mode library based
|
||||
clusters such as CEPH and GLUSTERFS. There is also a PROXY back-end
|
||||
which operates as an NFSv4 client.
|
||||
nfs-ganesha : NFS-GANESHA is a NFS Server running in user space.
|
||||
It comes with various back-end modules (called FSALs) provided as
|
||||
shared objects to support different file systems and name-spaces.
|
||||
|
||||
%if ( 0%{?with_glusterfs:1} )
|
||||
%package fsal-gluster
|
||||
Summary: Ganesha NFS Server GlusterFS FSAL
|
||||
Requires: glusterfs-api >= 3.5.1
|
||||
BuildRequires: glusterfs-api-devel >= 3.5.1
|
||||
%package mount-9P
|
||||
Summary: a 9p mount helper
|
||||
Group: Applications/System
|
||||
|
||||
%description fsal-gluster
|
||||
GlusterFS FSAL for nfs-ganesha
|
||||
%description mount-9P
|
||||
This package contains the mount.9P script that clients can use
|
||||
to simplify mounting to NFS-GANESHA. This is a 9p mount helper.
|
||||
|
||||
NFS-Ganesha is a user mode file server with support for both the
|
||||
NFS suite and 9P, the Plan 9 remote file access protocol. It uses
|
||||
an internal meta data cache and state manager for performance. It
|
||||
also provides support for pNFS for multiple clustered file systems
|
||||
both open source and proprietary. Multiple file systems are supported
|
||||
via loadable back-end drivers. The VFS back-end supports file systems
|
||||
via the kernel. Other back-ends can support user mode library based
|
||||
clusters such as CEPH and GLUSTERFS. There is also a PROXY back-end
|
||||
which operates as an NFSv4 client.
|
||||
%package vfs
|
||||
Summary: The NFS-GANESHA's VFS FSAL
|
||||
Group: Applications/System
|
||||
BuildRequires: libattr-devel
|
||||
Requires: nfs-ganesha
|
||||
|
||||
%description vfs
|
||||
This package contains a FSAL shared object to
|
||||
be used with NFS-Ganesha to support VFS based filesystems
|
||||
|
||||
%package nullfs
|
||||
Summary: The NFS-GANESHA's NULLFS Stackable FSAL
|
||||
Group: Applications/System
|
||||
|
||||
%description nullfs
|
||||
This package contains a Stackable FSAL shared object to
|
||||
be used with NFS-Ganesha. This is mostly a template for future (more sophisticated) stackable FSALs
|
||||
|
||||
%package proxy
|
||||
Summary: The NFS-GANESHA's PROXY FSAL
|
||||
Group: Applications/System
|
||||
BuildRequires: libattr-devel
|
||||
Requires: nfs-ganesha
|
||||
|
||||
%description proxy
|
||||
This package contains a FSAL shared object to
|
||||
be used with NFS-Ganesha to support PROXY based filesystems
|
||||
|
||||
%if %{with utils}
|
||||
%package utils
|
||||
Summary: The NFS-GANESHA's util scripts
|
||||
Group: Applications/System
|
||||
BuildRequires: PyQt4-devel
|
||||
Requires: PyQt4
|
||||
Requires: nfs-ganesha python
|
||||
|
||||
%description utils
|
||||
This package contains utility scripts for managing the NFS-GANESHA server
|
||||
%endif
|
||||
|
||||
%if ( 0%{?with_cephfs:1} )
|
||||
%package fsal-ceph
|
||||
Summary: Ganesha NFS Server Ceph FSAL
|
||||
Requires: ceph >= 0.78
|
||||
BuildRequires: ceph-devel >= 0.78
|
||||
%if %{with lttng}
|
||||
%package lttng
|
||||
Summary: The NFS-GANESHA's library for use with LTTng
|
||||
Group: Applications/System
|
||||
BuildRequires: lttng-ust-devel >= 2.3
|
||||
Requires: nfs-ganesha, lttng-tools >= 2.3, lttng-ust >= 2.3
|
||||
|
||||
%description fsal-ceph
|
||||
Ceph FSAL for nfs-ganesha
|
||||
|
||||
NFS-Ganesha is a user mode file server with support for both the
|
||||
NFS suite and 9P, the Plan 9 remote file access protocol. It uses
|
||||
an internal meta data cache and state manager for performance. It
|
||||
also provides support for pNFS for multiple clustered file systems
|
||||
both open source and proprietary. Multiple file systems are supported
|
||||
via loadable back-end drivers. The VFS back-end supports file systems
|
||||
via the kernel. Other back-ends can support user mode library based
|
||||
clusters such as CEPH and GLUSTERFS. There is also a PROXY back-end
|
||||
which operates as an NFSv4 client.
|
||||
%description lttng
|
||||
This package contains the libganesha_trace.so library. When preloaded
|
||||
to the ganesha.nfsd server, it makes it possible to trace using LTTng.
|
||||
%endif
|
||||
|
||||
%package docs
|
||||
Summary: Ganesha NFS Server Documentation
|
||||
BuildArch: noarch
|
||||
# Option packages start here. use "rpmbuild --with lustre" (or equivalent)
|
||||
# for activating this part of the spec file
|
||||
|
||||
%description docs
|
||||
Documentation for nfs-ganesha
|
||||
# GPFS
|
||||
%if %{with gpfs}
|
||||
%package gpfs
|
||||
Summary: The NFS-GANESHA's GPFS FSAL
|
||||
Group: Applications/System
|
||||
|
||||
NFS-Ganesha is a user mode file server with support for both the
|
||||
NFS suite and 9P, the Plan 9 remote file access protocol. It uses
|
||||
an internal meta data cache and state manager for performance. It
|
||||
also provides support for pNFS for multiple clustered file systems
|
||||
both open source and proprietary. Multiple file systems are supported
|
||||
via loadable back-end drivers. The VFS back-end supports file systems
|
||||
via the kernel. Other back-ends can support user mode library based
|
||||
clusters such as CEPH and GLUSTERFS. There is also a PROXY back-end
|
||||
which operates as an NFSv4 client.
|
||||
%description gpfs
|
||||
This package contains a FSAL shared object to
|
||||
be used with NFS-Ganesha to support GPFS backend
|
||||
%endif
|
||||
|
||||
# CEPH
|
||||
%if %{with ceph}
|
||||
%package ceph
|
||||
Summary: The NFS-GANESHA's CEPH FSAL
|
||||
Group: Applications/System
|
||||
Requires: ceph >= 0.78
|
||||
BuildRequires: ceph-devel >= 0.78
|
||||
|
||||
%description ceph
|
||||
This package contains a FSAL shared object to
|
||||
be used with NFS-Ganesha to support CEPH
|
||||
%endif
|
||||
|
||||
# LUSTRE
|
||||
%if %{with lustre}
|
||||
%package lustre
|
||||
Summary: The NFS-GANESHA's LUSTRE FSAL
|
||||
Group: Applications/System
|
||||
Requires: lustre nfs-ganesha
|
||||
BuildRequires: libattr-devel lustre
|
||||
|
||||
%description lustre
|
||||
This package contains a FSAL shared object to
|
||||
be used with NFS-Ganesha to support LUSTRE
|
||||
%endif
|
||||
|
||||
# SHOOK
|
||||
%if %{with shook}
|
||||
%package shook
|
||||
Summary: The NFS-GANESHA's LUSTRE/SHOOK FSAL
|
||||
Group: Applications/System
|
||||
Requires: lustre shook-client nfs-ganesha
|
||||
BuildRequires: libattr-devel lustre shook-devel
|
||||
|
||||
%description shook
|
||||
This package contains a FSAL shared object to
|
||||
be used with NFS-Ganesha to support LUSTRE via SHOOK
|
||||
%endif
|
||||
|
||||
# XFS
|
||||
%if %{with xfs}
|
||||
%package xfs
|
||||
Summary: The NFS-GANESHA's XFS FSAL
|
||||
Group: Applications/System
|
||||
Requires: nfs-ganesha
|
||||
BuildRequires: libattr-devel xfsprogs-devel
|
||||
|
||||
%description xfs
|
||||
This package contains a shared object to be used with FSAL_VFS
|
||||
to support XFS correctly
|
||||
%endif
|
||||
|
||||
# HPSS
|
||||
%if %{with hpss}
|
||||
%package hpss
|
||||
Summary: The NFS-GANESHA's HPSS FSAL
|
||||
Group: Applications/System
|
||||
Requires: nfs-ganesha
|
||||
#BuildRequires: hpssfs
|
||||
|
||||
%description hpss
|
||||
This package contains a FSAL shared object to
|
||||
be used with NFS-Ganesha to support HPSS
|
||||
%endif
|
||||
|
||||
# PANFS
|
||||
%if %{with panfs}
|
||||
%package panfs
|
||||
Summary: The NFS-GANESHA's PANFS FSAL
|
||||
Group: Applications/System
|
||||
Requires: nfs-ganesha
|
||||
|
||||
%description panfs
|
||||
This package contains a FSAL shared object to
|
||||
be used with NFS-Ganesha to support PANFS
|
||||
%endif
|
||||
|
||||
# PT
|
||||
%if %{with pt}
|
||||
%package pt
|
||||
Summary: The NFS-GANESHA's PT FSAL
|
||||
Group: Applications/System
|
||||
Requires: nfs-ganesha
|
||||
|
||||
%description pt
|
||||
This package contains a FSAL shared object to
|
||||
be used with NFS-Ganesha to support PT
|
||||
%endif
|
||||
|
||||
# GLUSTER
|
||||
%if %{with gluster}
|
||||
%package gluster
|
||||
Summary: The NFS-GANESHA's GLUSTER FSAL
|
||||
Group: Applications/System
|
||||
Requires: nfs-ganesha
|
||||
BuildRequires: glusterfs-api-devel >= 3.5.1
|
||||
BuildRequires: libattr-devel
|
||||
|
||||
%description gluster
|
||||
This package contains a FSAL shared object to
|
||||
be used with NFS-Ganesha to support Gluster
|
||||
%endif
|
||||
|
||||
%prep
|
||||
%setup -q -n %{name}-%{version} -a 1
|
||||
%setup -q -n %{name}-%{versiontag} -a 1
|
||||
rm -rf contrib/libzfswrapper
|
||||
mv %{ntirpcname}-%{ntirpcvers}/* src/libntirpc/
|
||||
%if ( 0%{?rhel} && 0%{?rhel} < 7 )
|
||||
%patch3 -p1
|
||||
%endif
|
||||
%patch6 -p1
|
||||
%patch7 -p1
|
||||
%patch8 -p1
|
||||
%patch9 -p1
|
||||
%patch10 -p1
|
||||
%patch11 -p1
|
||||
%patch12 -p1
|
||||
%patch13 -p1
|
||||
%patch14 -p1
|
||||
|
||||
@ -185,87 +319,254 @@ mv %{ntirpcname}-%{ntirpcvers}/* src/libntirpc/
|
||||
%if ( 0%{?rhel} && 0%{?rhel} < 7 )
|
||||
%global cmake %cmake28
|
||||
%endif
|
||||
%if ( 0%{?with_admintools:1} )
|
||||
%global config_admin -DUSE_ADMIN_TOOLS=ON
|
||||
%cmake ./src -DCMAKE_BUILD_TYPE=Debug \
|
||||
-DBUILD_CONFIG=rpmbuild \
|
||||
-DUSE_FSAL_ZFS=NO \
|
||||
-DUSE_FSAL_XFS=%{use_fsal_xfs} \
|
||||
-DUSE_FSAL_CEPH=%{use_fsal_ceph} \
|
||||
-DUSE_FSAL_LUSTRE=%{use_fsal_lustre} \
|
||||
-DUSE_FSAL_SHOOK=%{use_fsal_shook} \
|
||||
-DUSE_FSAL_GPFS=%{use_fsal_gpfs} \
|
||||
-DUSE_FSAL_HPSS=%{use_fsal_hpss} \
|
||||
-DUSE_FSAL_PANFS=%{use_fsal_panfs} \
|
||||
-DUSE_FSAL_PT=%{use_fsal_pt} \
|
||||
-DUSE_FSAL_GLUSTER=%{use_fsal_gluster} \
|
||||
-DUSE_9P_RDMA=%{use_rdma} \
|
||||
-DUSE_FSAL_LUSTRE_UP=%{use_lustre_up} \
|
||||
-DUSE_LTTNG=%{use_lttng} \
|
||||
-DUSE_ADMIN_TOOLS=%{use_utils} \
|
||||
-DUSE_FSAL_VFS=ON \
|
||||
-DUSE_FSAL_PROXY=ON \
|
||||
-DUSE_DBUS=ON \
|
||||
-DUSE_9P=ON \
|
||||
-DDISTNAME_HAS_GIT_DATA=OFF \
|
||||
-DCMAKE_INSTALL_PREFIX= \
|
||||
%if %{with jemalloc}
|
||||
-DALLOCATOR=jemalloc
|
||||
%endif
|
||||
%cmake -DCMAKE_BUILD_TYPE=Maintainer -DBUILD_CONFIG=everything -DCMAKE_INSTALL_PREFIX=%{buildroot}/usr %{config_admin} ./src
|
||||
# _smp_mflags elided due to random build errors (cmake related?)
|
||||
make VERBOSE=1
|
||||
|
||||
make %{?_smp_mflags} || make %{?_smp_mflags} || make
|
||||
|
||||
%install
|
||||
make install
|
||||
rm %{buildroot}%{_bindir}/libntirpc.*
|
||||
mkdir -p %{buildroot}%{_pkgdocdir}
|
||||
cp -p src/Docs/*.pdf %{buildroot}%{_pkgdocdir}/
|
||||
%if ( 0%{?_with_systemd:1} )
|
||||
install -D -p -m 0644 src/scripts/systemd/nfs-ganesha.service %{buildroot}%{_unitdir}/nfs-ganesha.service
|
||||
mkdir -p %{buildroot}%{_sysconfdir}/ganesha/
|
||||
mkdir -p %{buildroot}%{_sysconfdir}/dbus-1/system.d
|
||||
mkdir -p %{buildroot}%{_sysconfdir}/sysconfig
|
||||
mkdir -p %{buildroot}%{_sysconfdir}/logrotate.d
|
||||
mkdir -p %{buildroot}%{_bindir}
|
||||
mkdir -p %{buildroot}%{_sbindir}
|
||||
mkdir -p %{buildroot}%{_libdir}/ganesha
|
||||
mkdir -p %{buildroot}%{_localstatedir}/run/ganesha
|
||||
install -m 644 src/config_samples/logrotate_ganesha %{buildroot}%{_sysconfdir}/logrotate.d/ganesha
|
||||
install -m 644 src/scripts/ganeshactl/org.ganesha.nfsd.conf %{buildroot}%{_sysconfdir}/dbus-1/system.d
|
||||
install -m 755 src/tools/mount.9P %{buildroot}%{_sbindir}/mount.9P
|
||||
|
||||
install -m 644 src/config_samples/vfs.conf %{buildroot}%{_sysconfdir}/ganesha
|
||||
|
||||
%if %{with_systemd}
|
||||
mkdir -p %{buildroot}%{_unitdir}
|
||||
install -m 644 src/scripts/systemd/nfs-ganesha.service %{buildroot}%{_unitdir}/nfs-ganesha.service
|
||||
install -m 644 src/scripts/systemd/nfs-ganesha-lock.service %{buildroot}%{_unitdir}/nfs-ganesha-lock.service
|
||||
install -m 644 src/scripts/systemd/sysconfig/nfs-ganesha %{buildroot}%{_sysconfdir}/sysconfig/ganesha
|
||||
%else
|
||||
install -D -p -m 0744 src/ganesha.init %{buildroot}%{_sysconfdir}/init.d/nfs-ganesha
|
||||
mkdir -p %{buildroot}%{_sysconfdir}/init.d
|
||||
install -m 755 src/ganesha.init %{buildroot}%{_sysconfdir}/init.d/nfs-ganesha
|
||||
install -m 644 src/ganesha.sysconfig %{buildroot}%{_sysconfdir}/sysconfig/ganesha
|
||||
%endif
|
||||
install -D -p -m 0644 src/scripts/systemd/sysconfig/nfs-ganesha %{buildroot}%{_sysconfdir}/sysconfig/nfs-ganesha
|
||||
install -D -p -m 0644 src/scripts/ganeshactl/org.ganesha.nfsd.conf %{buildroot}%{_sysconfdir}/dbus-1/system.d/org.ganesha.nfsd.conf
|
||||
|
||||
%if %{with utils} && 0%{?rhel} && 0%{?rhel} <= 6
|
||||
%{!?__python2: %global __python2 /usr/bin/python2}
|
||||
%{!?python2_sitelib: %global python2_sitelib %(%{__python2} -c "from distutils.sysconfig import get_python_lib; print(get_python_lib())")}
|
||||
%{!?python2_sitearch: %global python2_sitearch %(%{__python2} -c "from distutils.sysconfig import get_python_lib; print(get_python_lib(1))")}
|
||||
%endif
|
||||
|
||||
%if %{with pt}
|
||||
install -m 755 src/ganesha.pt.init %{buildroot}%{_sysconfdir}/init.d/nfs-ganesha-pt
|
||||
install -m 644 src/config_samples/pt.conf %{buildroot}%{_sysconfdir}/ganesha
|
||||
%endif
|
||||
|
||||
%if %{with xfs}
|
||||
install -m 644 src/config_samples/xfs.conf %{buildroot}%{_sysconfdir}/ganesha
|
||||
%endif
|
||||
|
||||
%if %{with ceph}
|
||||
install -m 644 src/config_samples/ceph.conf %{buildroot}%{_sysconfdir}/ganesha
|
||||
%endif
|
||||
|
||||
%if %{with lustre}
|
||||
install -m 755 src/config_samples/lustre.conf %{buildroot}%{_sysconfdir}/ganesha
|
||||
%endif
|
||||
|
||||
%if %{with gpfs}
|
||||
install -m 644 src/config_samples/gpfs.conf %{buildroot}%{_sysconfdir}/ganesha
|
||||
install -m 644 src/config_samples/gpfs.ganesha.nfsd.conf %{buildroot}%{_sysconfdir}/ganesha
|
||||
install -m 644 src/config_samples/gpfs.ganesha.main.conf %{buildroot}%{_sysconfdir}/ganesha
|
||||
install -m 644 src/config_samples/gpfs.ganesha.log.conf %{buildroot}%{_sysconfdir}/ganesha
|
||||
install -m 644 src/config_samples/gpfs.ganesha.exports.conf %{buildroot}%{_sysconfdir}/ganesha
|
||||
%endif
|
||||
|
||||
%if %{with utils}
|
||||
pushd .
|
||||
cd scripts/ganeshactl/
|
||||
python setup.py --quiet install --root=%{buildroot}
|
||||
popd
|
||||
install -m 755 Protocols/NLM/sm_notify.ganesha %{buildroot}%{_bindir}/sm_notify.ganesha
|
||||
%endif
|
||||
|
||||
make DESTDIR=%{buildroot}/usr install
|
||||
rm -f %{buildroot}/usr/bin/libntirpc.a
|
||||
mv %{buildroot}/usr%{_sysconfdir}/ganesha/ganesha.conf %{buildroot}%{_sysconfdir}/ganesha/
|
||||
|
||||
%post
|
||||
/sbin/ldconfig
|
||||
%if ( 0%{?_with_systemd:1} )
|
||||
%if %{with_systemd}
|
||||
%systemd_post nfs-ganesha.service
|
||||
%else
|
||||
/sbin/chkconfig --add nfs-ganesha
|
||||
%systemd_post nfs-ganesha-lock.service
|
||||
%endif
|
||||
|
||||
%preun
|
||||
%if ( 0%{?_with_systemd:1} )
|
||||
%systemd_preun nfs-ganesha.service
|
||||
%else
|
||||
/sbin/service nfs-ganesha stop &>/dev/null
|
||||
/sbin/chkconfig --del nfs-ganesha
|
||||
/sbin/service nfs-ganesha condrestart &>/dev/null
|
||||
%if %{with_systemd}
|
||||
%systemd_preun nfs-ganesha-lock.service
|
||||
%endif
|
||||
|
||||
%postun
|
||||
/sbin/ldconfig
|
||||
%if ( 0%{?_with_systemd:1} )
|
||||
%systemd_postun_with_restart nfs-ganesha.service
|
||||
%if %{with_systemd}
|
||||
%systemd_postun_with_restart nfs-ganesha-lock.service
|
||||
%endif
|
||||
|
||||
%files
|
||||
%doc src/ChangeLog src/LICENSE.txt src/Docs/*.pdf
|
||||
%exclude %{_pkgdocdir}/*.pdf
|
||||
%if ( 0%{?with_glusterfs:1} )
|
||||
%exclude %{_libdir}/ganesha/libfsalgluster.*
|
||||
%endif
|
||||
%if ( 0%{?with_cephfs:1} )
|
||||
%exclude %{_libdir}/ganesha/libfsalceph.*
|
||||
%endif
|
||||
%{_libdir}/*
|
||||
%{_bindir}/*
|
||||
%if ( 0%{?_with_systemd:1} )
|
||||
%{_unitdir}/*
|
||||
%defattr(-,root,root,-)
|
||||
%{_bindir}/ganesha.nfsd
|
||||
#%%{_bindir}/libntirpc.a
|
||||
%config %{_sysconfdir}/dbus-1/system.d/org.ganesha.nfsd.conf
|
||||
%config(noreplace) %{_sysconfdir}/sysconfig/ganesha
|
||||
%config(noreplace) %{_sysconfdir}/logrotate.d/ganesha
|
||||
%dir %{_sysconfdir}/ganesha/
|
||||
%config(noreplace) %{_sysconfdir}/ganesha/ganesha.conf
|
||||
%dir %{_defaultdocdir}/ganesha/
|
||||
%{_defaultdocdir}/ganesha/*
|
||||
%dir %{_localstatedir}/run/ganesha
|
||||
|
||||
%if %{with_systemd}
|
||||
%{_unitdir}/nfs-ganesha.service
|
||||
%{_unitdir}/nfs-ganesha-lock.service
|
||||
%else
|
||||
%{_sysconfdir}/init.d/*
|
||||
%endif
|
||||
%{_sysconfdir}/sysconfig/*
|
||||
%{_sysconfdir}/dbus-1/system.d/*
|
||||
%if ( 0%{?with_admintools:1} )
|
||||
%{python_sitelib}/*
|
||||
%{_sysconfdir}/init.d/nfs-ganesha
|
||||
%endif
|
||||
|
||||
%if ( 0%{?with_glusterfs:1} )
|
||||
%files fsal-gluster
|
||||
%{_libdir}/ganesha/libfsalgluster.*
|
||||
%files mount-9P
|
||||
%defattr(-,root,root,-)
|
||||
%{_sbindir}/mount.9P
|
||||
|
||||
|
||||
%files vfs
|
||||
%defattr(-,root,root,-)
|
||||
%{_libdir}/ganesha/libfsalvfs*
|
||||
%config(noreplace) %{_sysconfdir}/ganesha/vfs.conf
|
||||
|
||||
|
||||
%files nullfs
|
||||
%defattr(-,root,root,-)
|
||||
%{_libdir}/ganesha/libfsalnull*
|
||||
|
||||
|
||||
%files proxy
|
||||
%defattr(-,root,root,-)
|
||||
%{_libdir}/ganesha/libfsalproxy*
|
||||
|
||||
# Optional packages
|
||||
%if %{with gpfs}
|
||||
%files gpfs
|
||||
%defattr(-,root,root,-)
|
||||
%{_libdir}/ganesha/libfsalgpfs*
|
||||
%config(noreplace) %{_sysconfdir}/ganesha/gpfs.conf
|
||||
%config(noreplace) %{_sysconfdir}/ganesha/gpfs.ganesha.nfsd.conf
|
||||
%config(noreplace) %{_sysconfdir}/ganesha/gpfs.ganesha.main.conf
|
||||
%config(noreplace) %{_sysconfdir}/ganesha/gpfs.ganesha.log.conf
|
||||
%config(noreplace) %{_sysconfdir}/ganesha/gpfs.ganesha.exports.conf
|
||||
%endif
|
||||
|
||||
%if ( 0%{?with_cephfs:1} )
|
||||
%files fsal-ceph
|
||||
%{_libdir}/ganesha/libfsalceph.*
|
||||
%if %{with xfs}
|
||||
%files xfs
|
||||
%defattr(-,root,root,-)
|
||||
%{_libdir}/ganesha/libfsalxfs*
|
||||
%config(noreplace) %{_sysconfdir}/ganesha/xfs.conf
|
||||
%endif
|
||||
|
||||
%files docs
|
||||
%{_pkgdocdir}/LICENSE.txt
|
||||
%{_pkgdocdir}/*
|
||||
%dir %{_pkgdocdir}
|
||||
%if %{with ceph}
|
||||
%files ceph
|
||||
%defattr(-,root,root,-)
|
||||
%{_libdir}/ganesha/libfsalceph*
|
||||
%config(noreplace) %{_sysconfdir}/ganesha/ceph.conf
|
||||
%endif
|
||||
|
||||
%if %{with lustre}
|
||||
%files lustre
|
||||
%defattr(-,root,root,-)
|
||||
%config(noreplace) %{_sysconfdir}/ganesha/lustre.conf
|
||||
%{_libdir}/ganesha/libfsallustre*
|
||||
%endif
|
||||
|
||||
%if %{with shook}
|
||||
%files shook
|
||||
%defattr(-,root,root,-)
|
||||
%{_libdir}/ganesha/libfsalshook*
|
||||
%endif
|
||||
|
||||
%if %{with gluster}
|
||||
%files gluster
|
||||
%defattr(-,root,root,-)
|
||||
%{_libdir}/ganesha/libfsalgluster*
|
||||
%endif
|
||||
|
||||
%if %{with hpss}
|
||||
%files hpss
|
||||
%defattr(-,root,root,-)
|
||||
%{_libdir}/ganesha/libfsalhpss*
|
||||
%endif
|
||||
|
||||
%if %{with panfs}
|
||||
%files panfs
|
||||
%defattr(-,root,root,-)
|
||||
%{_libdir}/ganesha/libfsalpanfs*
|
||||
%endif
|
||||
|
||||
%if %{with pt}
|
||||
%files pt
|
||||
%defattr(-,root,root,-)
|
||||
%{_libdir}/ganesha/libfsalpt*
|
||||
%config(noreplace) %{_sysconfdir}/init.d/nfs-ganesha-pt
|
||||
%config(noreplace) %{_sysconfdir}/ganesha/pt.conf
|
||||
%endif
|
||||
|
||||
%if %{with lttng}
|
||||
%files lttng
|
||||
%defattr(-,root,root,-)
|
||||
%{_libdir}/ganesha/libganesha_trace*
|
||||
%endif
|
||||
|
||||
%if %{with utils}
|
||||
%files utils
|
||||
%defattr(-,root,root,-)
|
||||
%{python2_sitelib}/Ganesha/*
|
||||
%{python2_sitelib}/ganeshactl-*-info
|
||||
%{_bindir}/ganesha-admin
|
||||
%{_bindir}/manage_clients
|
||||
%{_bindir}/manage_exports
|
||||
%{_bindir}/manage_logger
|
||||
%{_bindir}/ganeshactl
|
||||
%{_bindir}/fake_recall
|
||||
%{_bindir}/get_clientids
|
||||
%{_bindir}/grace_period
|
||||
%{_bindir}/purge_gids
|
||||
%{_bindir}/ganesha_stats
|
||||
%{_bindir}/sm_notify.ganesha
|
||||
%{_bindir}/ganesha_mgr
|
||||
%endif
|
||||
|
||||
%changelog
|
||||
* Fri Feb 13 2015 Kaleb S. KEITHLEY <kkeithle at redhat.com> 2.2.0-0.1rc1
|
||||
- 2.2.0-0.1rc1
|
||||
- nfs-ganesha.spec based on upstream
|
||||
|
||||
* Thu Feb 12 2015 Kaleb S. KEITHLEY <kkeithle at redhat.com> 2.1.0-14
|
||||
- Fedora 23/rawhide build fixes
|
||||
- Ceph restored in EPEL
|
||||
|
Loading…
Reference in New Issue
Block a user