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
|
%global _hardened_build 1
|
||||||
|
|
||||||
%if ( 0%{?fedora} && 0%{?fedora} > 16 ) || ( 0%{?rhel} && 0%{?rhel} > 6 )
|
%if 0%{?fedora} >= 15 || 0%{?rhel} >= 7
|
||||||
%global _with_systemd true
|
%global with_nfsidmap 1
|
||||||
|
%else
|
||||||
|
%global with_nfsidmap 0
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
# GlusterFS is not available in EPEL
|
%if ( 0%{?fedora} >= 18 || 0%{?rhel} >= 7 )
|
||||||
# RHEL finally has 3.6.x, but lacks glusterfs-api-devel
|
%global with_systemd 1
|
||||||
%if ( ! 0%{?rhel} )
|
%else
|
||||||
%global with_glusterfs true
|
%global with_systemd 0
|
||||||
%endif
|
%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
|
# A few explanation about %%bcond_with and %%bcond_without
|
||||||
%if ( 0%{?rhel} && 0%{?rhel} <= 5 )
|
# /!\ be careful: this syntax can be quite messy
|
||||||
%{!?python_sitelib: %global python_sitelib %(python -c "from distutils.sysconfig import get_python_lib; print(get_python_lib())")}
|
# %%bcond_with means you add a "--with" option, default = without this feature
|
||||||
%{!?python_sitearch: %global python_sitearch %(python -c "from distutils.sysconfig import get_python_lib; print(get_python_lib(1))")}
|
# %%bcond_without adds a"--without" so the feature is enabled by default
|
||||||
%endif
|
|
||||||
|
|
||||||
Name: nfs-ganesha
|
#%%bcond_without gpfs
|
||||||
Version: 2.1.0
|
%global use_fsal_gpfs OFF
|
||||||
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
|
|
||||||
|
|
||||||
Source0: https://github.com/%{name}/%{name}/archive/V%{version}/%{name}-%{version}.tar.gz
|
%bcond_without xfs
|
||||||
Source1: https://github.com/%{name}/%{ntirpcname}/archive/v%{ntirpcvers}/%{ntirpcname}-%{ntirpcvers}.tar.gz
|
%global use_fsal_xfs %{on_off_switch xfs}
|
||||||
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
|
|
||||||
|
|
||||||
%{!?_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 )
|
%if ( 0%{?rhel} && 0%{?rhel} < 7 )
|
||||||
BuildRequires: cmake28
|
BuildRequires: cmake28
|
||||||
%else
|
%else
|
||||||
BuildRequires: cmake >= 2.6.3
|
BuildRequires: cmake
|
||||||
%endif
|
%endif
|
||||||
BuildRequires: bison
|
BuildRequires: bison flex
|
||||||
BuildRequires: flex
|
BuildRequires: flex
|
||||||
BuildRequires: pkgconfig
|
BuildRequires: pkgconfig
|
||||||
BuildRequires: doxygen
|
BuildRequires: krb5-devel
|
||||||
BuildRequires: krb5-devel
|
BuildRequires: dbus-devel
|
||||||
BuildRequires: dbus-devel
|
BuildRequires: libcap-devel
|
||||||
BuildRequires: jemalloc-devel
|
BuildRequires: libblkid-devel
|
||||||
%if ( 0%{?fedora} && 0%{?fedora} > 16 ) || ( 0%{?rhel} && 0%{?rhel} > 6 )
|
BuildRequires: libuuid-devel
|
||||||
BuildRequires: xfsprogs-devel
|
Requires: dbus
|
||||||
BuildRequires: libnfsidmap-devel
|
%if %{with_nfsidmap}
|
||||||
BuildRequires: libwbclient-devel
|
BuildRequires: libnfsidmap-devel
|
||||||
|
%else
|
||||||
|
BuildRequires: nfs-utils-lib-devel
|
||||||
%endif
|
%endif
|
||||||
BuildRequires: libcap-devel
|
%if %{with rdma}
|
||||||
%if ( 0%{?with_admintools:1} )
|
BuildRequires: libmooshika-devel >= 0.6-0
|
||||||
BuildRequires: PyQt4-devel
|
%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
|
%endif
|
||||||
|
|
||||||
%if ( 0%{?_with_systemd:1} )
|
# Use CMake variables
|
||||||
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
|
|
||||||
|
|
||||||
%description
|
%description
|
||||||
NFS-Ganesha is a user mode file server with support for both the
|
nfs-ganesha : NFS-GANESHA is a NFS Server running in user space.
|
||||||
NFS suite and 9P, the Plan 9 remote file access protocol. It uses
|
It comes with various back-end modules (called FSALs) provided as
|
||||||
an internal meta data cache and state manager for performance. It
|
shared objects to support different file systems and name-spaces.
|
||||||
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.
|
|
||||||
|
|
||||||
%if ( 0%{?with_glusterfs:1} )
|
%package mount-9P
|
||||||
%package fsal-gluster
|
Summary: a 9p mount helper
|
||||||
Summary: Ganesha NFS Server GlusterFS FSAL
|
Group: Applications/System
|
||||||
Requires: glusterfs-api >= 3.5.1
|
|
||||||
BuildRequires: glusterfs-api-devel >= 3.5.1
|
|
||||||
|
|
||||||
%description fsal-gluster
|
%description mount-9P
|
||||||
GlusterFS FSAL for nfs-ganesha
|
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
|
%package vfs
|
||||||
NFS suite and 9P, the Plan 9 remote file access protocol. It uses
|
Summary: The NFS-GANESHA's VFS FSAL
|
||||||
an internal meta data cache and state manager for performance. It
|
Group: Applications/System
|
||||||
also provides support for pNFS for multiple clustered file systems
|
BuildRequires: libattr-devel
|
||||||
both open source and proprietary. Multiple file systems are supported
|
Requires: nfs-ganesha
|
||||||
via loadable back-end drivers. The VFS back-end supports file systems
|
|
||||||
via the kernel. Other back-ends can support user mode library based
|
%description vfs
|
||||||
clusters such as CEPH and GLUSTERFS. There is also a PROXY back-end
|
This package contains a FSAL shared object to
|
||||||
which operates as an NFSv4 client.
|
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
|
%endif
|
||||||
|
|
||||||
%if ( 0%{?with_cephfs:1} )
|
%if %{with lttng}
|
||||||
%package fsal-ceph
|
%package lttng
|
||||||
Summary: Ganesha NFS Server Ceph FSAL
|
Summary: The NFS-GANESHA's library for use with LTTng
|
||||||
Requires: ceph >= 0.78
|
Group: Applications/System
|
||||||
BuildRequires: ceph-devel >= 0.78
|
BuildRequires: lttng-ust-devel >= 2.3
|
||||||
|
Requires: nfs-ganesha, lttng-tools >= 2.3, lttng-ust >= 2.3
|
||||||
|
|
||||||
%description fsal-ceph
|
%description lttng
|
||||||
Ceph FSAL for nfs-ganesha
|
This package contains the libganesha_trace.so library. When preloaded
|
||||||
|
to the ganesha.nfsd server, it makes it possible to trace using LTTng.
|
||||||
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.
|
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
%package docs
|
# Option packages start here. use "rpmbuild --with lustre" (or equivalent)
|
||||||
Summary: Ganesha NFS Server Documentation
|
# for activating this part of the spec file
|
||||||
BuildArch: noarch
|
|
||||||
|
|
||||||
%description docs
|
# GPFS
|
||||||
Documentation for nfs-ganesha
|
%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
|
%description gpfs
|
||||||
NFS suite and 9P, the Plan 9 remote file access protocol. It uses
|
This package contains a FSAL shared object to
|
||||||
an internal meta data cache and state manager for performance. It
|
be used with NFS-Ganesha to support GPFS backend
|
||||||
also provides support for pNFS for multiple clustered file systems
|
%endif
|
||||||
both open source and proprietary. Multiple file systems are supported
|
|
||||||
via loadable back-end drivers. The VFS back-end supports file systems
|
# CEPH
|
||||||
via the kernel. Other back-ends can support user mode library based
|
%if %{with ceph}
|
||||||
clusters such as CEPH and GLUSTERFS. There is also a PROXY back-end
|
%package ceph
|
||||||
which operates as an NFSv4 client.
|
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
|
%prep
|
||||||
%setup -q -n %{name}-%{version} -a 1
|
%setup -q -n %{name}-%{versiontag} -a 1
|
||||||
rm -rf contrib/libzfswrapper
|
rm -rf contrib/libzfswrapper
|
||||||
mv %{ntirpcname}-%{ntirpcvers}/* src/libntirpc/
|
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
|
%patch13 -p1
|
||||||
%patch14 -p1
|
%patch14 -p1
|
||||||
|
|
||||||
@ -185,87 +319,254 @@ mv %{ntirpcname}-%{ntirpcvers}/* src/libntirpc/
|
|||||||
%if ( 0%{?rhel} && 0%{?rhel} < 7 )
|
%if ( 0%{?rhel} && 0%{?rhel} < 7 )
|
||||||
%global cmake %cmake28
|
%global cmake %cmake28
|
||||||
%endif
|
%endif
|
||||||
%if ( 0%{?with_admintools:1} )
|
%cmake ./src -DCMAKE_BUILD_TYPE=Debug \
|
||||||
%global config_admin -DUSE_ADMIN_TOOLS=ON
|
-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
|
%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 %{?_smp_mflags} || make %{?_smp_mflags} || make
|
||||||
make VERBOSE=1
|
|
||||||
|
|
||||||
%install
|
%install
|
||||||
make install
|
mkdir -p %{buildroot}%{_sysconfdir}/ganesha/
|
||||||
rm %{buildroot}%{_bindir}/libntirpc.*
|
mkdir -p %{buildroot}%{_sysconfdir}/dbus-1/system.d
|
||||||
mkdir -p %{buildroot}%{_pkgdocdir}
|
mkdir -p %{buildroot}%{_sysconfdir}/sysconfig
|
||||||
cp -p src/Docs/*.pdf %{buildroot}%{_pkgdocdir}/
|
mkdir -p %{buildroot}%{_sysconfdir}/logrotate.d
|
||||||
%if ( 0%{?_with_systemd:1} )
|
mkdir -p %{buildroot}%{_bindir}
|
||||||
install -D -p -m 0644 src/scripts/systemd/nfs-ganesha.service %{buildroot}%{_unitdir}/nfs-ganesha.service
|
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
|
%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
|
%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
|
%post
|
||||||
/sbin/ldconfig
|
%if %{with_systemd}
|
||||||
%if ( 0%{?_with_systemd:1} )
|
|
||||||
%systemd_post nfs-ganesha.service
|
%systemd_post nfs-ganesha.service
|
||||||
%else
|
%systemd_post nfs-ganesha-lock.service
|
||||||
/sbin/chkconfig --add nfs-ganesha
|
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
%preun
|
%preun
|
||||||
%if ( 0%{?_with_systemd:1} )
|
%if %{with_systemd}
|
||||||
%systemd_preun nfs-ganesha.service
|
%systemd_preun nfs-ganesha-lock.service
|
||||||
%else
|
|
||||||
/sbin/service nfs-ganesha stop &>/dev/null
|
|
||||||
/sbin/chkconfig --del nfs-ganesha
|
|
||||||
/sbin/service nfs-ganesha condrestart &>/dev/null
|
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
%postun
|
%postun
|
||||||
/sbin/ldconfig
|
%if %{with_systemd}
|
||||||
%if ( 0%{?_with_systemd:1} )
|
%systemd_postun_with_restart nfs-ganesha-lock.service
|
||||||
%systemd_postun_with_restart nfs-ganesha.service
|
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
%files
|
%files
|
||||||
%doc src/ChangeLog src/LICENSE.txt src/Docs/*.pdf
|
%defattr(-,root,root,-)
|
||||||
%exclude %{_pkgdocdir}/*.pdf
|
%{_bindir}/ganesha.nfsd
|
||||||
%if ( 0%{?with_glusterfs:1} )
|
#%%{_bindir}/libntirpc.a
|
||||||
%exclude %{_libdir}/ganesha/libfsalgluster.*
|
%config %{_sysconfdir}/dbus-1/system.d/org.ganesha.nfsd.conf
|
||||||
%endif
|
%config(noreplace) %{_sysconfdir}/sysconfig/ganesha
|
||||||
%if ( 0%{?with_cephfs:1} )
|
%config(noreplace) %{_sysconfdir}/logrotate.d/ganesha
|
||||||
%exclude %{_libdir}/ganesha/libfsalceph.*
|
%dir %{_sysconfdir}/ganesha/
|
||||||
%endif
|
%config(noreplace) %{_sysconfdir}/ganesha/ganesha.conf
|
||||||
%{_libdir}/*
|
%dir %{_defaultdocdir}/ganesha/
|
||||||
%{_bindir}/*
|
%{_defaultdocdir}/ganesha/*
|
||||||
%if ( 0%{?_with_systemd:1} )
|
%dir %{_localstatedir}/run/ganesha
|
||||||
%{_unitdir}/*
|
|
||||||
|
%if %{with_systemd}
|
||||||
|
%{_unitdir}/nfs-ganesha.service
|
||||||
|
%{_unitdir}/nfs-ganesha-lock.service
|
||||||
%else
|
%else
|
||||||
%{_sysconfdir}/init.d/*
|
%{_sysconfdir}/init.d/nfs-ganesha
|
||||||
%endif
|
|
||||||
%{_sysconfdir}/sysconfig/*
|
|
||||||
%{_sysconfdir}/dbus-1/system.d/*
|
|
||||||
%if ( 0%{?with_admintools:1} )
|
|
||||||
%{python_sitelib}/*
|
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
%if ( 0%{?with_glusterfs:1} )
|
%files mount-9P
|
||||||
%files fsal-gluster
|
%defattr(-,root,root,-)
|
||||||
%{_libdir}/ganesha/libfsalgluster.*
|
%{_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
|
%endif
|
||||||
|
|
||||||
%if ( 0%{?with_cephfs:1} )
|
%if %{with xfs}
|
||||||
%files fsal-ceph
|
%files xfs
|
||||||
%{_libdir}/ganesha/libfsalceph.*
|
%defattr(-,root,root,-)
|
||||||
|
%{_libdir}/ganesha/libfsalxfs*
|
||||||
|
%config(noreplace) %{_sysconfdir}/ganesha/xfs.conf
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
%files docs
|
%if %{with ceph}
|
||||||
%{_pkgdocdir}/LICENSE.txt
|
%files ceph
|
||||||
%{_pkgdocdir}/*
|
%defattr(-,root,root,-)
|
||||||
%dir %{_pkgdocdir}
|
%{_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
|
%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
|
* Thu Feb 12 2015 Kaleb S. KEITHLEY <kkeithle at redhat.com> 2.1.0-14
|
||||||
- Fedora 23/rawhide build fixes
|
- Fedora 23/rawhide build fixes
|
||||||
- Ceph restored in EPEL
|
- Ceph restored in EPEL
|
||||||
|
Loading…
Reference in New Issue
Block a user