# Contributor: Carlo Landmeter <clandmeter@alpinelinux.org>
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=nfs-utils
pkgver=2.6.4
pkgrel=4
pkgdesc="kernel-mode NFS"
url="https://linux-nfs.org/"
arch="all"
license="GPL-2.0-only"
depends="rpcbind python3"
options="suid"
makedepends="autoconf automake libtool
	bsd-compat-headers
	keyutils-dev
	krb5-dev
	libcap-dev
	libevent-dev
	libtirpc-dev
	libtool
	lvm2-dev
	musl-libintl
	openldap-dev
	sqlite-dev
	util-linux-dev
	"
subpackages="
	$pkgname-dev
	$pkgname-doc
	$pkgname-dbg
	$pkgname-openrc
	rpcgen
	libnfsidmap
	libnfsidmap-ldap
	"
source="https://www.kernel.org/pub/linux/utils/nfs-utils/$pkgver/nfs-utils-$pkgver.tar.xz
	musl-getservbyport.patch
	musl-svcgssd-sysconf.patch
	musl-stat64.patch
	include-unistd.patch

	0001-gssd-revert-commit-a5f3b7ccb01c.patch
	0002-gssd-revert-commit-513630d720bd.patch
	0003-gssd-switch-to-using-rpc_gss_seccreate.patch
	0004-gssd-handle-KRB5_AP_ERR_BAD_INTEGRITY-for-machine-cr.patch
	0005-gssd-handle-KRB5_AP_ERR_BAD_INTEGRITY-for-user-crede.patch
	0006-configure-check-for-rpc_gss_seccreate.patch

	nfs.initd
	nfsdcld.initd
	nfsmount.initd
	nfsmount.confd
	rpc.gssd.initd
	rpc.idmapd.initd
	rpc.pipefs.initd
	rpc.statd.initd
	rpc.svcgssd.initd
	nfs.confd
	nfs.exports
	nfsclient.initd
	nfsclient.confd
	nfsidmap.request-key.conf
	"

prepare() {
	default_prepare
	autoreconf -vif
}

build() {
	./configure \
		--build=$CBUILD \
		--host=$CHOST \
		--prefix=/usr \
		--sysconfdir=/etc \
		--mandir=/usr/share/man \
		--infodir=/usr/share/info \
		--without-tcp-wrappers \
		--with-rpcgen=internal \
		--enable-ipv6 \
		--enable-nfsv4 \
		--enable-uuid \
		--enable-gss \
		--enable-svcgss \
		--enable-libmount-mount \
		--enable-static=no
	make
}

# Simple test, "make check" requires running nfsd
check() {
	./utils/showmount/showmount -v
}

package() {
	make DESTDIR="$pkgdir" install
	install -Dm644 "$srcdir"/nfs.exports "$pkgdir"/etc/exports
	mv "$pkgdir"/usr/sbin/rpc.statd "$pkgdir"/sbin/

	install -Dm644 support/nfsidmap/idmapd.conf "$pkgdir"/etc/idmapd.conf

	local file
	for file in $source; do
		case "$file" in
		*.confd) install -Dm644 "$srcdir"/"$file" \
			"$pkgdir"/etc/conf.d/${file%.*} ;;
		*.initd) install -Dm755 "$srcdir"/"$file" \
			"$pkgdir"/etc/init.d/${file%.*} ;;
		esac
	done

	mkdir -p "$pkgdir"/etc/request-key.d
	install -Dm644 "$srcdir"/nfsidmap.request-key.conf "$pkgdir"/etc/request-key.d/
}

dev() {
	replaces="libnfsidmap-dev libnfsidmap-ldap-dev"
	default_dev
}

doc() {
	replaces="libnfsidmap-doc"
	default_doc
}

rpcgen() {
	pkgdesc="Remote Procedure Call (RPC) protocol compiler"
	amove usr/bin/rpcgen
}

libnfsidmap() {
	pkgdesc="NFSv4 User and Group ID Mapping Library"

	amove etc/idmapd.conf
	mkdir -p "$subpkgdir"/usr/lib/libnfsidmap
	mv "$pkgdir"/usr/lib/libnfsidmap.so* "$subpkgdir"/usr/lib/
	mv "$pkgdir"/usr/lib/libnfsidmap/static* "$subpkgdir"/usr/lib/libnfsidmap/
	mv "$pkgdir"/usr/lib/libnfsidmap/nsswitch* "$subpkgdir"/usr/lib/libnfsidmap/

}

ldap() {
	pkgdesc="LDAP plugin for libnfsidmap"

	amove usr/lib/libnfsidmap/*ldap*
}

sha512sums="
3aa4c28780c2dd46aa2d57dffdb79a6146478359d449f636cef3c789e9b1f111cd7492b7b817b9600c9805f45ae0afdc1319c7746fac95963383b92f7bddc114  nfs-utils-2.6.4.tar.xz
94d7ba23164660f1da9298494dff75c57f5a300cb32b2922bc2226fcdaded7eaaa0c50a59a145ac7c75639d177558b5f5594fb1f03a50f60f4c577c93b135748  musl-getservbyport.patch
52eeade44753f2002bf99d58ad4982086aab74ef8b14de46be547f23508197f58a6ff529145f96de7f031ac0bb7779b648d05fd981cdd91556dd13d068dfe57b  musl-svcgssd-sysconf.patch
f186a758a7e1e489920be8f7d3b957f358cbcfc158b0ebfe25d8558f54491a4732bfb3b7a3778bc70da5c186d6e6c0901c6c94b7c0475a659420429ee948025f  musl-stat64.patch
c4fd642960fab82956dc1386a0209c7f66f7bc52dc855ad7004ba31c999933f1d0c66ac37f97b6db9548c0b6c799bd3918373789238338f9942ffafe42d0f186  include-unistd.patch
ff74c0a7919de92ca528e72ebaafcddde38957f85c21a7e376befac6af7b4c1464a31a8b88caa47606b3b31845bb6c55d7cc7a232f4d85358ce33f244b5a1cc4  0001-gssd-revert-commit-a5f3b7ccb01c.patch
ac87cd38513df44d5bf97dce1f58757c07878d9a66237c8f377e8eb85baaf291b917de59b7f13bc0fab5335cd5a46026f39b014fc0f06bde65fd7d2fc460f9a3  0002-gssd-revert-commit-513630d720bd.patch
f17b52bfaa2b344958c20123fc32186e83979a8b948373c12dee256de7d967991772e67b4206d1dafdd0f1ed9f268a01bf8820fe9c7b71e4d3da69de98f9527d  0003-gssd-switch-to-using-rpc_gss_seccreate.patch
82f0c131bc0b849ae7e5ed71bcff130cc341c84f26fa7fa97996b58b02b2193652aca2c59ac167e1c9be5899a77412f1755b2632b7d9744c98e4e4d20ea0821b  0004-gssd-handle-KRB5_AP_ERR_BAD_INTEGRITY-for-machine-cr.patch
ca143dd227975d8c05c9e7e855e567a468681741bb78a0cf095059f0cf61a860c75153e8b579fcc97beaf6706b5d5297d31e74e329608fcee68696672d111396  0005-gssd-handle-KRB5_AP_ERR_BAD_INTEGRITY-for-user-crede.patch
fcaf41a87c22fe39411266ab53e051625a15affdb29421a17a4d12dbb59ce849e8ad2bab7cbed22973b345880b3c55eaf9d518deb4dea4147d542ffa14bfa5d6  0006-configure-check-for-rpc_gss_seccreate.patch
485940f834430f919df97babe75670f12d90a565229f3d5edd0b7a4e2df10abdc8444010cafc2173c776804025ce342f98a89e91bd74b5fa3be56b46588c52da  nfs.initd
dfeb2a3b85fe9caa29ebdb6f427de326bfa9b4dc6f6a6ac02e9b815997c246acc1ebd72fdab71ee307e6d99c7eb0a21a114ee944100fc1937fe07c87f9d2a003  nfsdcld.initd
89259b9f0878658d48792b5b2f42b43c966ed098dba1fecf9e07fb0de4aab37ad67655ea8dbcc2361ddab2b5013b2de35a03048a513aaeedf790e4b416a35a54  nfsmount.initd
6e23897885cc33c49d9c7353b456585a1e0c7300822edba81bc48ba4ccc18297adce137260cc0aa9487aa5ef0aab3eecf931532cfa5bd40fd03bc9e0ddacfb28  nfsmount.confd
414f2de0b64897b2350666760337683aa4bab612be3e5a3cdd3ac5afa55e498c5cb053430e35b7eb7ed66b93fd66d416d557c2bd8299e3b8b633c7935db6d422  rpc.gssd.initd
489c1ac59a0d4996056502137d5d57373dda21bfb08d062f21785c8f9fbff3672cff6a19a72061d6f09c1c308c77046043c2b3b28b5fe364120594504f865ef8  rpc.idmapd.initd
3d3fa6e7ae01e27d27d88aba1e307c5293dd1cbc9d555737e03c4f1e17988518f4f1e7f7a38a7337f8e8961e8378cc4611769b04db7368460589a3b218ac6d6b  rpc.pipefs.initd
a04803606050c0ece59a49cf12d560720e4588973b3806caffe3d410248cc27207c16f186bb624babfe7da1156bc046519dfa0d71333000b816f1ec7576d28f2  rpc.statd.initd
d5d654927cf867fc3562edfc471b2e9df6b737a080f2f726c9c4f58815c092c3403fbbd1f8779d4f166d2e1022a61a8f756ac418e61317a482db7f075ee5cd64  rpc.svcgssd.initd
f98e29a7b2db866b482bfee73ba2906e5a4550cc9cdad340f5a1bbe5bc8f38659fd128de7b2a6b5d4b711b4de66b7fe44f098cc0df8050706d26a8bba3f97e2e  nfs.confd
70f96bb3a465ee0fa857a6e511051ca3ced9f5a5d1e6b8b32eec843a2067f2475d8979c724a3661de0a2b078eef143f55d75ed184d823841d9de5038da91fb91  nfs.exports
85078e2cd38b37a1e6fbaf0e40cf7690f403e71d9c8188d542d12fe56bfc02a49763c7bcc7742691754acc37928468c215db2795bebc29a5dfb052ba08f407bb  nfsclient.initd
f12e67728ac4e76357685e2fe38bd7f6fcd90064165758ffeca145e6962ac44d4ff9d8d57e18cc6925a6ada8e95ad8321e9fc355931a804dd455aae1e4850e92  nfsclient.confd
204e2219b0e74fe6e16673d117018fedfdf4760602fb659e5d3dbd31101313333003ed0b89f47b1ffd7e4847f5111cc5ca85f6a0b6c8bf8ab0f1f2240ba32900  nfsidmap.request-key.conf
"
