From 7a444f83e3bb42b6daabd6e3a8c1343b54d890a6 Mon Sep 17 00:00:00 2001 From: Kaleb S. KEITHLEY Date: Nov 04 2019 19:23:41 +0000 Subject: nfs-ganesha-3.0 RC5 --- diff --git a/SOURCES/0001-src-cmake-modules-FindNTIRPC.cmake.patch b/SOURCES/0001-src-cmake-modules-FindNTIRPC.cmake.patch new file mode 100644 index 0000000..fc78c70 --- /dev/null +++ b/SOURCES/0001-src-cmake-modules-FindNTIRPC.cmake.patch @@ -0,0 +1,19 @@ +--- nfs-ganesha-3.0-rc5/src/cmake/modules/FindNTIRPC.cmake.orig 2019-11-04 11:24:09.034634008 -0500 ++++ nfs-ganesha-3.0-rc5/src/cmake/modules/FindNTIRPC.cmake 2019-11-04 11:24:52.407505064 -0500 +@@ -62,14 +62,14 @@ + string(REGEX REPLACE ".*#[ \t]*define[ \t]*NTIRPC_VERSION[ \t]*\"([^\n]*)\".*" "\\1" match "${header}") + set(NTIRPC_VERSION "${match}") + else() +- set(NTIRPC_VERSION "0.0.0") ++ set(NTIRPC_VERSION "3.0.0") + endif() + + # handle the QUIETLY and REQUIRED arguments and set PRELUDE_FOUND to TRUE if + # all listed variables are TRUE + include(FindPackageHandleStandardArgs) + FIND_PACKAGE_HANDLE_STANDARD_ARGS(NTIRPC +- REQUIRED_VARS NTIRPC_INCLUDE_DIR NTIRPC_LIBRARY NTIRPC_LTTNG ++ REQUIRED_VARS NTIRPC_INCLUDE_DIR NTIRPC_LIBRARY + VERSION_VAR NTIRPC_VERSION) + # VERSION FPHSA options not handled by CMake version < 2.8.2) + # VERSION_VAR) diff --git a/SOURCES/0002-src-CMakeLists.txt.patch b/SOURCES/0002-src-CMakeLists.txt.patch new file mode 100644 index 0000000..f7f43e6 --- /dev/null +++ b/SOURCES/0002-src-CMakeLists.txt.patch @@ -0,0 +1,11 @@ +--- nfs-ganesha-3.0-rc5/src/CMakeLists.txt.orig 2019-11-04 13:14:45.976923250 -0500 ++++ nfs-ganesha-3.0-rc5/src/CMakeLists.txt 2019-11-04 13:15:20.058607707 -0500 +@@ -1024,7 +1024,7 @@ + set(NTIRPC_LIBRARY ${NTIRPC_LIBRARY} ntirpc_lttng) + endif (USE_LTTNG) + set(NTIRPC_INCLUDE_DIR "${PROJECT_SOURCE_DIR}/libntirpc/ntirpc/") +- message(STATUS "Using ntirpc submodule") ++ message(STATUS "Using ntirpc submodule, NTIRPC_INCLUDE_DIR=${NTIRPC_INCLUDE_DIR}") + endif (USE_SYSTEM_NTIRPC) + message(${NTIRPC_INCLUDE_DIR}) + include_directories(${NTIRPC_INCLUDE_DIR}) diff --git a/SOURCES/nfs-ganesha.init b/SOURCES/nfs-ganesha.init new file mode 100644 index 0000000..39b85b7 --- /dev/null +++ b/SOURCES/nfs-ganesha.init @@ -0,0 +1,105 @@ +#!/bin/sh +# +# glusterd Startup script for the Ganesha NFS server +# +# chkconfig: - 20 80 +# description: NFSv4 file-system server + +### BEGIN INIT INFO +# Provides: nfs-ganesha +# Required-Start: $local_fs $network +# Required-Stop: $local_fs $network +# Should-Start: +# Should-Stop: +# Default-Start: +# Default-Stop: 0 1 2 3 4 5 6 +# Short-Description: Ganesha NFS server +# Description: NFSv4 file-system server +### END INIT INFO + +# Source function library. +. /etc/rc.d/init.d/functions + +exe="/usr/sbin/nfs-ganesha.sh" +prog="nfs-ganesha" + +# Fedora File System Layout dictates /run +[ -e /run ] && RUNDIR="/run" +pidf="${RUNDIR:-/var/run}/$prog.pid" + +[ -e /etc/sysconfig/$prog ] && . /etc/sysconfig/$prog + +lockfile=/var/lock/subsys/$prog + +start() { + [ -x $exe ] || exit 5 + echo -n $"Starting $prog: " + daemon $exe + retval=$? + echo + [ $retval -eq 0 ] && touch $lockfile + return $retval +} + +stop() { + echo -n $"Stopping $prog: " + killproc $prog + retval=$? + echo + [ $retval -eq 0 ] && rm -f $lockfile + return $retval +} + +restart() { + stop + start +} + +reload() { + restart +} + +force_reload() { + restart +} + +rh_status() { + status $prog +} + +rh_status_q() { + rh_status &>/dev/null +} + + +case "$1" in + start) + rh_status_q && exit 0 + $1 + ;; + stop) + rh_status_q || exit 0 + $1 + ;; + restart) + $1 + ;; + reload) + rh_status_q || exit 7 + $1 + ;; + force-reload) + force_reload + ;; + status) + rh_status + ;; + condrestart|try-restart) + rh_status_q || exit 0 + restart + ;; + *) + echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload}" + exit 2 +esac +exit $? diff --git a/SOURCES/nfs-ganesha.service b/SOURCES/nfs-ganesha.service new file mode 100644 index 0000000..5e8a6f3 --- /dev/null +++ b/SOURCES/nfs-ganesha.service @@ -0,0 +1,12 @@ +[Unit] +Description=User-mode file server for NFS +Documentation=https://github.com/nfs-ganesha/nfs-ganesha/wiki + +[Service] +ExecStart=/usr/bin/ganesha.nfsd +Type=forking +PIDFile=/var/run/ganesha.pid + +[Install] +WantedBy=multi-user.target + diff --git a/SOURCES/nfs_ganesha.sh b/SOURCES/nfs_ganesha.sh new file mode 100644 index 0000000..419995c --- /dev/null +++ b/SOURCES/nfs_ganesha.sh @@ -0,0 +1,390 @@ +#!/bin/bash + +VOLNAME= +CONF= +IP= +LOG= +DBGLVL= +OPT= +FILE1= + +trap cleanup SIGHUP SIGINT SIGTERM + + + if [ $EUID -ne 0 ]; then + echo "You have to be root to run this script" + exit 1 + fi + + +function usage { + echo " Usage : nfs-ganesha.sh [-l ][-n ] -v -i -f -o + [-h] display this help + [-l ] set the logfile for the daemon + [-n ] set the verbosity level + dbg_lvl options NIV_NULL, NIV_MAJ, NIV_CRIT, NIV_EVENT, NIV_DEBUG, NIV_MID_DEBUG, NIV_FULL_DEBUG + -v name of the volume to be exported + -i IP of the ganesha host + -f set the config file to be used + -o start or stop ganesha server + ===========Default Values============= + LogFile : /tmp/nfs-ganesha.log + DebugLevel : NIV_EVENT" + } + +while getopts "hf:i:l:n:v:o: -l help" OPTION + do + case $OPTION in + f) CONF=$OPTARG + ;; + i) IP=$OPTARG + ;; + l) LOG=$OPTARG + ;; + n) DBGLVL=$OPTARG + ;; + h) usage + exit 1 + ;; + v) VOLNAME=$OPTARG + ;; + o) OPT=$OPTARG + ;; + esac + done + + +function cleanup () +{ + if [ -f /tmp/old-ganesha.conf ] + then cp /tmp/old-ganesha.conf $CONF + exit 1 + fi +} + + +function check_for_stop() +{ + if echo $OPT | grep -i -q "stop" + then stop_ganesha + fi +} + +function check_usage() +{ + + if [ "$VOLNAME" = "" ] + then + usage + exit 1 + fi + if [ "$CONF" = "" ] + then + usage + exit 1 + fi + if [ "$IP" = "" ] + then + usage + exit 1 + fi + if [ "$OPT" = "" ] + then + usage + exit 1 + fi +} +function check_ip { + if [[ ! $IP =~ ^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$ ]]; then + echo "Invalid IP , please enter the correct IP of the ganesha host." + usage + exit 1 + fi +} + + +function check_volname +{ + if ! ls /var/lib/glusterd/vols | grep -q "$VOLNAME" ; then + echo "Volume doesn't exist. Please enter a valid volume name." + exit 1 + fi +} + +function check_conf + + +{ + + if ! [ -f "$CONF" ]; then + echo "The config_file $CONF doesn't exist." + usage + exit 1 + else + if ! [ -s "$CONF" ]; then + echo "The cofig_file $CONF is empty " + exit 1 + fi + fi +} + +function check_option +{ + if ! echo $OPT | grep -i -q -e "start" -q -e "stop" + then + echo "Invalid value for option 'o': start or stop expected" + exit 1 + else if echo $OPT | grep -i -q "start" + then + OPT="start" + else + OPT="stop" + fi + fi +} + + +function check_debug +{ + if [ "$DBGLVL" = "" ] ; then + DBGLVL="NIV_EVENT" + else + if ! echo $DBGLVL | grep -q -e " NIV_NULL" -q -e "NIV_MAJOR" -q -e " NIV_CRIT" -q -e "NIV_EVENT" -q -e "NIV_DEBUG" -q -e "NIV_FULL_DEBUG" + then + echo "Invalid value for option 'n': NIV_NULL, NIV_MAJ, NIV_CRIT, NIV_EVENT, NIV_DEBUG, NIV_MID_DEBUG or NIV_FULL_DEBUG expected." + exit 1 + fi + fi + +} + + +function check_logfile +{ + if [ "$LOG" = "" ]; then + LOG="/tmp/nfs-ganesha.log" + else if [ -f $LOG ] + then + cp $LOG /tmp/old-ganesha.log + FILE1="1" + fi + fi +} + +function call_checks +{ + check_ip + check_conf + cp $CONF /tmp/old-ganesha.conf + + check_debug + check_logfile + check_option + check_volname +} +function check_glusterd() +{ + + if ! ps aux | grep -q -e "[g]lusterd$" -q -e "[g]lusterd.pid" + then + echo "glusterd not started , please start glusterd. " + exit 1 + fi +} + +function check_bricks() +{ + gluster volume status $VOLUME | grep -q "N/A" + if [ "$?" -eq 0 ] + then + echo "Brick(s) not online , please check $VOLUME volume status" + exit 1 + fi +} + +function check_glusternfs +{ + if echo "$(ls /var/lib/glusterd/vols | wc -l)" | grep -q "1" ; then + if ps aux | grep -q "[g]luster/nfs" ; then + echo "gluster-nfs server is active, needs to be disabled to proceed. " + while true; do + read -p "Do you wish to disable gluster-nfs server ? [Y\N]" yn + case $yn in + [Yy]* ) gluster volume set $VOLNAME nfs.disable ON >/dev/null 2>/dev/null; break;; + [Nn]* ) exit 1;; + * ) echo "Please answer yes or no.";; + esac + done + sleep 2 + if ps aux | grep -q "[g]luster/nfs" ; then + echo "Volume set unsuccessful , please try disabling gluster-nfs server " + exit 1 + fi + sleep 2 + if rpcinfo -p | grep -q -e "nfs_acl" ; then + echo " gluster-nfs ports still in use; please try again" + exit 1 + fi + + fi + else + if ps aux | grep -q "[g]luster/nfs"; then + echo "Please disable gluster-nfs servers on all the volumes" + exit 1 + fi + fi +} + +function check_kernelnfs() +{ + service nfs status | grep -q -e "dead" -q -e "stopped" -q -e "disabled" + if [ "$?" -eq 1 ]; then + echo "kernel-NFS server is active , it needs to disabled to proceed. " + while true; do + read -p "Do you wish to disable kernel-nfs server ? [Y\N]" yn + case $yn in + [Yy]* ) service nfs stop; break;; + [Nn]* ) exit 1;; + * ) echo "Please answer yes or no.";; + esac + done + sleep 2 + service nfs status | grep -q -e "dead" -q -e "stopped" -q -e "inactive" >>/dev/null + if [ "$?" -eq 1 ]; then + echo " kernel-NFS server couldn't be disabled , please try again" + exit 1 + else + echo "kernel-NFS server successfully disabled" + fi + fi +} + + +function check_volstart() +{ + + if ! cat /var/lib/glusterd/vols/$1/info | grep -q "status=1" + then + echo "Volume $1 is not started, please start the volume." + exit 1 + fi +} + +function check_ganesha +{ + if ps aux | grep -q "[g]anesha.nfsd" ; then + echo "NFS-ganesha server is already active , nothing to do." + exit 1 + fi +} + + +function check_ports +{ + if netstat -an | grep -q "2049$" ; then + echo "Port 2049 is already in use , exiting" + exit 1 + fi +} + +function check_fsal +{ + + if ! ls /usr/lib64/ganesha | grep -q "libfsalgluster.so" ; then + echo "Cannot find shared object libfsalgluster.so , exiting" + exit 1 + fi +} + + + + +function start_ganesha +{ + check_ganesha + #check_rpms + check_fsal + check_glusterd + check_volstart $1 + check_kernelnfs + check_glusternfs $1 + check_ports + check_conf $3 + check_bricks $1 + sed -i /^[[:space:]]*\#/!s/volume.*/"volume=$1,hostname=$2\";"/ $3 + sed -i /^[[:space:]]*\#/!s/Pseudo.*/Pseudo="\"\/$1\";"/ $3 + sed -i s/Path.*/Path="\"\/$1\";"/ $3 + sed -i 's/\r//g' $3 + /usr/bin/ganesha.nfsd -f $CONF -L $LOG -N $DBGLVL -d >/dev/null 2>/dev/null + + sleep 5 + +} + + +function stop_ganesha +{ + if ! ps aux | grep -q "[g]anesha.nfsd" ; then + echo "NFS-ganesha server already inactive,nothing to do." + exit 1 + fi + kill -9 `cat /var/run/ganesha.pid` + if ps aux | ganesha.nfsd ; then + if rpcinfo -p | grep -q -e "nfs" ; then + echo "NFS-ganesha server could not be stopped, please try again" + fi + else + echo " NFS-ganesha server is now inactive." + exit 0 + fi +} + + + +function check_for_stop() +{ + if echo $OPT | grep -i -q "stop" + then stop_ganesha + fi +} + + + +check_for_stop +check_usage +call_checks + +if [ "$OPT" = "start" ] +then + start_ganesha $VOLNAME $IP $CONF + if ! ps aux | grep -q "[g]anesha.nfsd" ; then + start_ganesha $VOLNAME $IP $CONF + fi + sleep 5 + if ! ps aux | grep -q "[g]anesha.nfsd" + then + if [ "$FILE1" = "1" ] + then + cp /tmp/old-ganesha.log $LOG + rm -rf /tmp/ganesha.log + fi + cp /tmp/old-ganesha.conf $CONF + rm -rf /tmp/ganesha.conf + echo "Failed to start NFS-ganesha server , please see $LOG for details" + else + echo "" + echo "NFS-ganesha server started." + echo "============Volume exports============" + showmount -e $IP + echo "======================================" + rm -rf /tmp/old-ganesha.conf + fi +fi + + if [ "$OPT" = "stop" ] +then + stop_ganesha + exit 0 + +fi + diff --git a/SPECS/nfs-ganesha.spec b/SPECS/nfs-ganesha.spec index b8c2a37..5030cf6 100644 --- a/SPECS/nfs-ganesha.spec +++ b/SPECS/nfs-ganesha.spec @@ -63,7 +63,7 @@ Requires: openSUSE-release %global use_fsal_ceph %{on_off_switch ceph} %ifnarch i686 armv7hl -%bcond_without rgw +%bcond_with rgw %else %bcond_with rgw %endif @@ -92,9 +92,13 @@ Requires: openSUSE-release %bcond_without gui_utils %global use_gui_utils %{on_off_switch gui_utils} -%bcond_with system_ntirpc +%bcond_without system_ntirpc %global use_system_ntirpc %{on_off_switch system_ntirpc} +%if ( %{?use_system_ntirpc} ) +%global system_ntirpc_prefix -DNTIRPC_PREFIX=/usr/include/ntirpc +%endif + %bcond_without man_page %global use_man_page %{on_off_switch man_page} @@ -126,18 +130,19 @@ Requires: openSUSE-release %endif %global dev_version %{lua: s = string.gsub('@GANESHA_EXTRA_VERSION@', '^%-', ''); s2 = string.gsub(s, '%-', '.'); print((s2 ~= nil and s2 ~= '') and s2 or "0.1") } -%global dev rc2 -%global dash_dev_version 3.0-rc2 +%global dev rc5 +%global dash_dev_version 3.0-rc5 Name: nfs-ganesha -Version: 3.0.0 +Version: 3.0 Release: 0.1%{?dev:%{dev}}%{?dist} Summary: NFS-Ganesha is a NFS Server running in user space License: LGPLv3+ Url: https://github.com/nfs-ganesha/nfs-ganesha/wiki -Source0: https://github.com/%{name}/%{name}/archive/v%{version}/%{name}-%{dash_dev_version}.tar.gz -Source1: libntirpc.tgz +Source0: https://github.com/%{name}/%{name}/archive/V%{dash_dev_version}/%{name}-%{dash_dev_version}.tar.gz +Patch1: 0001-src-cmake-modules-FindNTIRPC.cmake.patch +Patch2: 0002-src-CMakeLists.txt.patch BuildRequires: cmake BuildRequires: bison @@ -145,6 +150,9 @@ BuildRequires: flex BuildRequires: pkgconfig BuildRequires: userspace-rcu-devel BuildRequires: krb5-devel +%if %{with rados_recov} || %{with rados_urls} +BuildRequires: librados-devel >= 0.61 +%endif %if ( 0%{?suse_version} >= 1330 ) BuildRequires: libnsl-devel %else @@ -167,11 +175,11 @@ BuildRequires: libuuid-devel BuildRequires: libwbclient-devel %endif BuildRequires: gcc-c++ -#%%if ( %{with_system_ntirpc} ) -#BuildRequires: libntirpc-devel >= 1.8.0 -#%%else -Requires: libntirpc = 3.0 -#%%endif +%if ( %{with_system_ntirpc} ) +BuildRequires: libntirpc-devel >= 3.0 +%else +Requires: libntirpc = @NTIRPC_VERSION_EMBED@ +%endif %if 0%{?rhel} && 0%{?rhel} <= 7 # this should effectively be a no-op, as all Red Hat Enterprise Linux installs should have it # with selinux. @@ -219,10 +227,14 @@ Requires(postun): systemd BuildRequires: initscripts %endif %if %{with man_page} -%if ( 0%{?fedora} >= 28 || 0%{?rhel} >= 8 ) -BuildRequires: python3-sphinx -%else +%if ( 0%{?rhel} && 0%{?rhel} < 8 ) BuildRequires: python-sphinx +%else +%if ( 0%{?suse_version} ) +BuildRequires: python3-Sphinx +%else +BuildRequires: python3-sphinx +%endif %endif %endif Requires(post): psmisc @@ -270,27 +282,28 @@ be used with NFS-Ganesha to support PROXY based filesystems %if %{with utils} %package utils Summary: The NFS-GANESHA util scripts -%if ( 0%{?suse_version} ) -Requires: dbus-1-python, python-gobject2 python-pyparsing -Requires: gpfs.nfs-ganesha = %{version}-%{release}, python -%else -%if ( 0%{?fedora} >= 28 || 0%{?rhel} >= 8 ) -Requires: python3-dbus, python3-gobject, python3-pyparsing -Requires: gpfs.nfs-ganesha = %{version}-%{release}, python3 -BuildRequires: python3-devel -%else +%if ( 0%{?rhel} && 0%{?rhel} < 8 ) Requires: dbus-python, pygobject2, pyparsing -Requires: gpfs.nfs-ganesha = %{version}-%{release}, python BuildRequires: python-devel +%else +Requires: python3-gobject, python3-pyparsing +BuildRequires: python3-devel %endif +%if ( 0%{?suse_version} ) +Requires: dbus-1-python +%else +Requires: python3-dbus %endif + %if %{with gui_utils} %if ( 0%{?suse_version} ) -BuildRequires: python-qt4-devel -Requires: python-qt4 +BuildRequires: python-qt5-devel +%else +%if ( 0%{?fedora} >= 31 || 0%{?rhel} >= 8 ) +BuildRequires: PyQt5-devel %else BuildRequires: PyQt4-devel -Requires: PyQt4 +%endif %endif %endif @@ -313,12 +326,24 @@ to the ganesha.nfsd server, it makes it possible to trace using LTTng. %if %{with rados_recov} %package rados-grace Summary: The NFS-GANESHA command for managing the RADOS grace database -BuildRequires: librados-devel >= 14.0.0 Requires: nfs-ganesha = %{version}-%{release} %description rados-grace This package contains the ganesha-rados-grace tool for interacting with the -database used by the rados_cluster recovery backend. +database used by the rados_cluster recovery backend and the +libganesha_rados_grace shared library for using RADOS storage for +recovery state. +%endif + +%if %{with rados_urls} +%package rados-urls +Summary: The NFS-GANESHA library for use with RADOS URLs +Group: Applications/System +Requires: nfs-ganesha = %{version}-%{release} + +%description rados-urls +This package contains the libganesha_rados_urls library used for +handling RADOS URL configurations. %endif # Option packages start here. use "rpmbuild --with gpfs" (or equivalent) @@ -362,7 +387,7 @@ be used with NFS-Ganesha to support GPFS backend %package ceph Summary: The NFS-GANESHA CephFS FSAL Requires: nfs-ganesha = %{version}-%{release} -BuildRequires: libcephfs2-devel >= 14.0.0 +BuildRequires: libcephfs2-devel >= 12.2.0 %description ceph This package contains a FSAL shared object to @@ -374,7 +399,7 @@ be used with NFS-Ganesha to support CephFS %package rgw Summary: The NFS-GANESHA Ceph RGW FSAL Requires: nfs-ganesha = %{version}-%{release} -BuildRequires: librgw2-devel >= 14.0.0 +BuildRequires: librgw2-devel >= 12.2.0 %description rgw This package contains a FSAL shared object to @@ -423,7 +448,7 @@ be used with NFS-Ganesha to support PANFS %package gluster Summary: The NFS-GANESHA GLUSTER FSAL Requires: nfs-ganesha = %{version}-%{release} -BuildRequires: glusterfs-api-devel >= 6.0 +BuildRequires: glusterfs-api-devel >= 7.0 BuildRequires: libattr-devel, libacl-devel %description gluster @@ -464,7 +489,7 @@ fi %package -n libntirpc Summary: New Transport Independent RPC Library License: BSD -Version: 3.0 +Version: @NTIRPC_VERSION_EMBED@ Url: https://github.com/nfs-ganesha/ntirpc # libtirpc has /etc/netconfig, most machines probably have it anyway @@ -486,9 +511,9 @@ the following features not found in libtirpc: %package -n libntirpc-devel Summary: Development headers for libntirpc -Requires: libntirpc = 3.0 +Requires: libntirpc = @NTIRPC_VERSION_EMBED@ License: BSD -Version: 3.0 +Version: @NTIRPC_VERSION_EMBED@ Url: https://github.com/nfs-ganesha/ntirpc %description -n libntirpc-devel @@ -497,7 +522,8 @@ Development headers and auxiliary files for developing with %{name}. %prep %setup -q -n %{name}-%{dash_dev_version} -cd %{name}-%{dash_dev_version}/src && tar xpf ${source1} +%patch1 -p1 +%patch2 -p1 %build cd src && %cmake . -DCMAKE_BUILD_TYPE=RelWithDebInfo \ @@ -527,6 +553,9 @@ cd src && %cmake . -DCMAKE_BUILD_TYPE=RelWithDebInfo \ -DRPCBIND=%{use_rpcbind} \ -D_MSPAC_SUPPORT=%{use_mspac_support} \ -DSANITIZE_ADDRESS=%{use_sanitize_address} \ +%if ( %{?use_system_ntirpc} ) + %{system_ntirpc_prefix} \ +%endif %if %{with jemalloc} -DALLOCATOR=jemalloc %endif @@ -566,10 +595,6 @@ install -m 644 scripts/systemd/nfs-ganesha.service.el7 %{buildroot}%{_unitdir}/n install -m 644 scripts/systemd/nfs-ganesha-lock.service.el7 %{buildroot}%{_unitdir}/nfs-ganesha-lock.service install -m 644 scripts/systemd/nfs-ganesha-config.service %{buildroot}%{_unitdir}/nfs-ganesha-config.service install -m 644 scripts/systemd/sysconfig/nfs-ganesha %{buildroot}%{_sysconfdir}/sysconfig/ganesha -%if 0%{?_tmpfilesdir:1} -mkdir -p %{buildroot}%{_tmpfilesdir} -install -m 644 scripts/systemd/tmpfiles.d/ganesha.conf %{buildroot}%{_tmpfilesdir} -%endif mkdir -p %{buildroot}%{_localstatedir}/log/ganesha %else mkdir -p %{buildroot}%{_sysconfdir}/init.d @@ -599,7 +624,6 @@ install -m 644 config_samples/logrotate_fsal_gluster %{buildroot}%{_sysconfdir}/ %endif %if %{with gpfs} -install -m 755 scripts/gpfs-epoch %{buildroot}%{_libexecdir}/ganesha install -m 644 config_samples/gpfs.conf %{buildroot}%{_sysconfdir}/ganesha install -m 644 config_samples/gpfs.ganesha.nfsd.conf %{buildroot}%{_sysconfdir}/ganesha install -m 644 config_samples/gpfs.ganesha.main.conf %{buildroot}%{_sysconfdir}/ganesha @@ -620,6 +644,14 @@ install -p -m 644 selinux/ganesha.if %{buildroot}%{_selinux_store_path}/devel/in install -m 0644 selinux/ganesha.pp.bz2 %{buildroot}%{_selinux_store_path}/packages %endif +%if ( 0%{?rhel} && 0%{?rhel} < 8 ) +rm -f %{buildroot}/%{python_sitelib}/gpfs* +rm -f %{buildroot}/%{python_sitelib}/__init__.* +%else +rm -f %{buildroot}/%{python3_sitelib}/gpfs* +rm -f %{buildroot}/%{python3_sitelib}/__init__.* +%endif + %post %if ( 0%{?suse_version} ) %service_add_post nfs-ganesha.service nfs-ganesha-lock.service nfs-ganesha-config.service @@ -685,9 +717,6 @@ exit 0 %{_unitdir}/nfs-ganesha.service %{_unitdir}/nfs-ganesha-lock.service %{_unitdir}/nfs-ganesha-config.service -%if 0%{?_tmpfilesdir:1} -%{_tmpfilesdir}/ganesha.conf -%endif %else %{_sysconfdir}/init.d/nfs-ganesha %endif @@ -703,12 +732,18 @@ exit 0 %if %{with rados_recov} %files rados-grace %{_bindir}/ganesha-rados-grace +%{_libdir}/libganesha_rados_recov.so* %if %{with man_page} %{_mandir}/*/ganesha-rados-grace.8.gz %{_mandir}/*/ganesha-rados-cluster-design.8.gz %endif %endif +%if %{with rados_urls} +%files rados-urls +%{_libdir}/libganesha_rados_urls.so* +%endif + %if %{with 9P} %files mount-9P %{_sbindir}/mount.9P @@ -836,17 +871,12 @@ exit 0 %if %{with utils} %files utils -%if ( 0%{?suse_version} ) -%{python2_sitelib}/Ganesha/* -%{python2_sitelib}/ganeshactl-*-info +%if ( 0%{?rhel} && 0%{?rhel} < 8 ) +%{python_sitelib}/Ganesha/* +%{python_sitelib}/ganeshactl-*-info %else -%if ( 0%{?fedora} >= 28 || 0%{?rhel} >= 8 ) %{python3_sitelib}/Ganesha/* %{python3_sitelib}/ganeshactl-*-info -%else -%{python2_sitelib}/Ganesha/* -%{python2_sitelib}/ganeshactl-*-info -%endif %endif %if %{with gui_utils} %{_bindir}/ganesha-admin @@ -873,6 +903,12 @@ exit 0 %endif %changelog +* Sun Nov 3 2019 Kaleb S. KEITHLEY - 3.0-0.1rc5 +- nfs-ganesha 3.0 RC5 + +* Mon Oct 28 2019 Kaleb S. KEITHLEY - 2.8.2-3 +- nfs-ganesha 2.8.2, -utils gpfs.nfs-ganesha -> nfs-ganesha-gpfs + * Tue Oct 8 2019 Kaleb S. KEITHLEY - 2.8.2-2 - nfs-ganesha 2.8.2, enable FSAL_MEM