From b0c188cea52b174c01cecd5c8faf62f48567b0c7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Robert=20F=C3=B6rster?= Date: Wed, 16 Sep 2020 01:02:12 +0200 Subject: [PATCH] [net-fs/nfs-ganesha] add. i don't use nfs anymore but i'll eventually clean it up --- net-fs/nfs-ganesha/Manifest | 1 + net-fs/nfs-ganesha/files/nfs-ganesha.confd | 9 ++ net-fs/nfs-ganesha/files/nfs-ganesha.init | 18 +++ net-fs/nfs-ganesha/metadata.xml | 28 ++++ .../nfs-ganesha/nfs-ganesha-4.0_beta29.ebuild | 124 ++++++++++++++++++ 5 files changed, 180 insertions(+) create mode 100644 net-fs/nfs-ganesha/Manifest create mode 100644 net-fs/nfs-ganesha/files/nfs-ganesha.confd create mode 100644 net-fs/nfs-ganesha/files/nfs-ganesha.init create mode 100644 net-fs/nfs-ganesha/metadata.xml create mode 100644 net-fs/nfs-ganesha/nfs-ganesha-4.0_beta29.ebuild diff --git a/net-fs/nfs-ganesha/Manifest b/net-fs/nfs-ganesha/Manifest new file mode 100644 index 0000000..2c7cda1 --- /dev/null +++ b/net-fs/nfs-ganesha/Manifest @@ -0,0 +1 @@ +DIST nfs-ganesha-4.0_beta29.tar.gz 1845084 BLAKE2B 5cef2e879ddc799a245679be433c4091fddbb1e585830b1eb8ee3a4bc7d6a814a48355d14088cce5b59efaa74379db7453c497f889850f182f38df04d63411dc SHA512 46fde21768f387c993104d0da9dd0687e2b414b3adeb108f0475263b99909f32fe52340229575fedf270ccb26be3615796021bd93932eeb466b22863e3aaee7c diff --git a/net-fs/nfs-ganesha/files/nfs-ganesha.confd b/net-fs/nfs-ganesha/files/nfs-ganesha.confd new file mode 100644 index 0000000..eb545ea --- /dev/null +++ b/net-fs/nfs-ganesha/files/nfs-ganesha.confd @@ -0,0 +1,9 @@ +# Log file +# LOG_FILE=/var/log/ganesha.log + +# Config file +# CONFIG_FILE=/etc/ganesha/ganesha.conf + +# Log level +# Defaults to event +# LOG_LEVEL=NIV_EVENT diff --git a/net-fs/nfs-ganesha/files/nfs-ganesha.init b/net-fs/nfs-ganesha/files/nfs-ganesha.init new file mode 100644 index 0000000..39bb70b --- /dev/null +++ b/net-fs/nfs-ganesha/files/nfs-ganesha.init @@ -0,0 +1,18 @@ +#!/sbin/openrc-run +# Copyright 1999-2017 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +: ${LOG_FILE:=/var/log/ganesha.log} +: ${CONFIG_FILE:=/etc/ganesha/ganesha.conf} +: ${LOG_LEVEL:=NIV_EVENT} + +command=/usr/bin/ganesha.nfsd +command_args="-L ${LOG_FILE} -f ${CONFIG_FILE} -N ${LOG_LEVEL} -p /run/ganesha.pid" +pidfile="/run/ganesha.pid" + +name="Ganesha NFS server" +description="NFS-Ganesha is an NFSv3,v4,v4.1 fileserver that runs in user mode on most UNIX/Linux systems" + +start_pre(){ + checkpath --directory /run/ganesha +} diff --git a/net-fs/nfs-ganesha/metadata.xml b/net-fs/nfs-ganesha/metadata.xml new file mode 100644 index 0000000..e6d8b95 --- /dev/null +++ b/net-fs/nfs-ganesha/metadata.xml @@ -0,0 +1,28 @@ + + + + + + Enables CEPH support + Enables GlusterFS support + Enables support for GPFS + Enables support for LustreFS + Enables support for NULL + Enables support for PanFS + Enables support for PROXY + Enables support for RGW + Enables support for VFS + Enables support for XFS + Enables support for ZFS + Enable GSSAPI support + Install Admin scripts + Install GUI Admin scripts + Enable NLM/NFSv3 support + Use of libnfsidmap for name resolution + Enable rdma storage backend support + Enable AF_VSOCK listener + + + nfs-ganesha/nfs-ganesha + + diff --git a/net-fs/nfs-ganesha/nfs-ganesha-4.0_beta29.ebuild b/net-fs/nfs-ganesha/nfs-ganesha-4.0_beta29.ebuild new file mode 100644 index 0000000..9768848 --- /dev/null +++ b/net-fs/nfs-ganesha/nfs-ganesha-4.0_beta29.ebuild @@ -0,0 +1,124 @@ +# Copyright 1999-2020 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +#PYTHON_COMPAT=( python3_8 ) + +#inherit cmake flag-o-matic python-single-r1 +inherit cmake flag-o-matic + +DESCRIPTION="A NFSv3,v4,v4.1 fileserver that runs in user mode on most UNIX/Linux systems" +HOMEPAGE="https://github.com/nfs-ganesha/nfs-ganesha" +if [[ ${PV} == *beta* ]] ; then + MY_PV="$(ver_cut 1)-dev.$(ver_cut 4)" + SRC_URI="https://github.com/nfs-ganesha/${PN}/archive/V${MY_PV}.tar.gz -> ${P}.tar.gz" +else + SRC_URI="https://github.com/nfs-ganesha/${PN}/archive/V${PV}.tar.gz -> ${P}.tar.gz" +fi + +LICENSE="LGPL-3" +SLOT="0" +KEYWORDS="~amd64" +IUSE="dbus debug gssapi gui nfs3 nfsidmap rdma tools vsock" +FS_SUPPORT=" ceph glusterfs gpfs lustre mem null panfs proxy rgw vfs xfs" +IUSE+=" ${FS_SUPPORT// / ganesha_fs_}" + +REQUIRED_USE="gui? ( tools )" + +RDEPEND=" + dev-libs/jemalloc + net-libs/libnfsidmap + >=net-libs/ntirpc-3.3:=[rdma?,gssapi] + gssapi? ( virtual/krb5 ) + dbus? ( sys-apps/dbus ) + ganesha_fs_ceph? ( sys-cluster/ceph ) + ganesha_fs_glusterfs? ( sys-cluster/glusterfs ) + ganesha_fs_lustre? ( sys-cluster/lustre ) + ganesha_fs_xfs? ( sys-fs/xfsprogs ) +" +DEPEND="${RDEPEND} + sys-devel/bison + sys-devel/flex + virtual/pkgconfig +" + +#S="${WORKDIR}/${P}/src" +S="${WORKDIR}/${PN}-${MY_PV}/src" + +CMAKE_BUILD_TYPE="Release" + +src_prepare() { + sed \ + -e "/config_samples/s:doc\/ganesha:doc\/${PF}:g" \ + -e '/run\/ganesha/d' \ + -i CMakeLists.txt || die + cmake_src_prepare +} + +src_configure() { + local mycmakeargs=( + -DALLOCATOR=jemalloc + -DUSE_SYSTEM_NTIRPC=ON + -DTIRPC_EPOLL=ON + -DKRB5_FIND_COMPONENTS="gssrpc" + -DUSE_GSS=$(usex gssapi) + -DUSE_DBUS=$(usex dbus) + -DUSE_NFSIDMAP=$(usex nfsidmap) + -DENABLE_VFS_DEBUG_ACL=$(usex debug) + -DENABLE_RFC_ACL=$(usex debug) + -DUSE_EFENCE=$(usex debug) + -DDEBUG_SAL=$(usex debug) + -DENABLE_LOCKTRACE=$(usex debug) + -DUSE_NFS_RDMA=$(usex rdma) + -DUSE_NFS3=$(usex nfs3) + -DUSE_NFSACL3=$(usex nfs3) + -DUSE_NLM=$(usex nfs3) + -DUSE_VSOCK=$(usex vsock) + -DUSE_ADMIN_TOOLS=$(usex tools) + -DUSE_GUI_ADMIN_TOOLS=$(usex gui) + + -DUSE_FSAL_CEPH=$(usex ganesha_fs_ceph) + -DUSE_RADOS_RECOV=$(usex ganesha_fs_ceph) + -DRADOS_URLS=$(usex ganesha_fs_ceph) + -DCEPHFS_POSIX_ACL=$(usex ganesha_fs_ceph) + + -DUSE_FSAL_GLUSTER=$(usex ganesha_fs_glusterfs) + -DUSE_FSAL_GPFS=$(usex ganesha_fs_gpfs) + -DUSE_FSAL_LUSTRE=$(usex ganesha_fs_lustre) + -DUSE_FSAL_MEM=$(usex ganesha_fs_mem) + -DUSE_FSAL_NULL=$(usex ganesha_fs_null) + -DUSE_FSAL_PANFS=$(usex ganesha_fs_panfs) + -DUSE_FSAL_PROXY=$(usex ganesha_fs_proxy) + -DUSE_FSAL_RGW=$(usex ganesha_fs_rgw) + -DUSE_FSAL_VFS=$(usex ganesha_fs_vfs) + -DUSE_FSAL_XFS=$(usex ganesha_fs_xfs) + ) + cmake_src_configure +} +#testing +#/var/tmp/portage/net-fs/nfs-ganesha-2.4.3/work/nfs-ganesha-2.4.3/src/CMakeLists.txt:option(USE_TOOL_MULTILOCK "build multilock tool" OFF) +#/var/tmp/portage/net-fs/nfs-ganesha-2.4.3/work/nfs-ganesha-2.4.3/src/CMakeLists.txt:option(USE_CB_SIMULATOR "enable callback simulator thread" OFF) +#/var/tmp/portage/net-fs/nfs-ganesha-2.4.3/work/nfs-ganesha-2.4.3/src/CMakeLists.txt:option(ENABLE_ERROR_INJECTION "enable error injection" OFF) +#/var/tmp/portage/net-fs/nfs-ganesha-2.4.3/work/nfs-ganesha-2.4.3/src/CMakeLists.txt:# These are -D_FOO options, why ??? should be flags?? +#/var/tmp/portage/net-fs/nfs-ganesha-2.4.3/work/nfs-ganesha-2.4.3/src/CMakeLists.txt:option(_NO_TCP_REGISTER "disable registration of tcp services on portmapper" OFF) +#/var/tmp/portage/net-fs/nfs-ganesha-2.4.3/work/nfs-ganesha-2.4.3/src/CMakeLists.txt:option(_NO_PORTMAPPER "disable registration on portmapper" OFF) +#/var/tmp/portage/net-fs/nfs-ganesha-2.4.3/work/nfs-ganesha-2.4.3/src/CMakeLists.txt:option(_NO_XATTRD "disable ghost xattr directory and files support" ON) +#/var/tmp/portage/net-fs/nfs-ganesha-2.4.3/work/nfs-ganesha-2.4.3/src/CMakeLists.txt:option(_VALGRIND_MEMCHECK "Initialize buffers passed to GPFS ioctl that valgrind doesn't understand" OFF) +#/var/tmp/portage/net-fs/nfs-ganesha-2.4.3/work/nfs-ganesha-2.4.3/src/CMakeLists.txt:option(USE_CUNIT "Use Cunit test framework" OFF) +#/var/tmp/portage/net-fs/nfs-ganesha-2.4.3/work/nfs-ganesha-2.4.3/src/CMakeLists.txt:option(USE_BLKIN "Use Blkin/Zipkin trace framework" OFF) +#/var/tmp/portage/net-fs/nfs-ganesha-2.4.3/work/nfs-ganesha-2.4.3/src/CMakeLists.txt:option(BLKIN_PREFIX "Blkin installation prefix" "/opt/blkin") +#/var/tmp/portage/net-fs/nfs-ganesha-2.4.3/work/nfs-ganesha-2.4.3/src/CMakeLists.txt:option(USE_GTEST "Use Google Test test framework" OFF) +#/var/tmp/portage/net-fs/nfs-ganesha-2.4.3/work/nfs-ganesha-2.4.3/src/CMakeLists.txt:option(GTEST_PREFIX "Google Test installation prefix" + +src_install() { + cmake_src_install + + newinitd "${FILESDIR}"/${PN}.init ${PN} + newconfd "${FILESDIR}"/${PN}.confd ${PN} + + if use dbus; then + insinto /etc/dbus-1/system.d + doins scripts/ganeshactl/org.ganesha.nfsd.conf + fi +}