Changeset - c5064d653531
[Not reviewed]
0 1 2
Chel Sea (chain) - 4 years ago 2021-06-11 19:58:16
chain@rpgfiction.net
net-fs/nfs-utils: fix copmpilation with -fno-common or gcc10, fixes bug #707624
3 files changed with 295 insertions and 0 deletions:
0 comments (0 inline, 0 general)
net-fs/nfs-utils/Manifest
Show inline comments
 
AUX exports 66 BLAKE2B 8ddc8e1b7888570cf7ce21ecebf0fb390ab394d25e60f1d914406396b23cb3cbf243a15a199f30608ac7e3c0abde73f48e0ccea605a3dadad654dfd8d6572dcd SHA512 fd8052dc8e17eccb0bb1443f341c97ec7c9dac5824294cadf486d91475bc728d4bb69300034b528a690707520590f6675ee371f92e9838afc8ed88092ee0f220
 
AUX nfs-utils-1.1.4-mtab-sym.patch 1020 BLAKE2B 6f1315a02a6070443fbd8cc943e382a02ac8ee99dbbc78f6b1b6c835548b80a78238ae4f7de18c7f02687df370bc58d628ed2bdbf216a41e80b5b589f1952c3c SHA512 1cd916028a8515772f05ef63832d73a09e9720055aedc9e2e4ce3a08ce1820948700a4f00ca9c4ee684880f18e67aca888dd857fc7931d923021ba50964be998
 
AUX nfs-utils-1.2.8-cross-build.patch 2112 BLAKE2B f1cd8457eeb869c5830b775b65bc2d0bc8bcc4ef832cb4fcc30366f7978271cbb9f9e92c7a25b2a392dd3b11690f10a87db09ce1c4d51d800eb231aeef5bc706 SHA512 d4b5cfa9f3a210aff09749aead376f698c5a8ba1cb7403eea95d52e423f4d5f039e9d6d6f6a1b0bff5439fff5048b7abd2c509a42cd8b977352c840876ccbf3c
 
AUX nfs-utils-2.3.2-junction_libs.patch 1487 BLAKE2B 5ecd4709fdcbc1c0885c91aea134ef5e5e00e6f58ace39d35d31b5de74d73bf05a4c27befc35f2c8a54d72452f63589c3a2912c3ef37752416389dd9537598e8 SHA512 d724ff25b7bbf03fc2c7d122bb338979ef50c59906a433ced5aa50e84030a375b2c268a05ee930c4f64ce58e938de7d30a9d0b5d3b7e660d8894013786d5bb4f
 
AUX nfs-utils-2.3.2-no-werror.patch 1375 BLAKE2B d494d00f81e236fd0531d4629108a4536415e3a6898b655f267b0125c0fd6b87cb567ef5cb7598fc19e68653572c1072566d7ef791fedb9f0c8d9ea663e67565 SHA512 acc3ccd6cf4afa73bbd253f6a1faa0349e6f8d50d57d9316fafa1faeb9f8ed5d5dfa60ec1b0a53339cd71af4d65b32d9595965ec435bc72eadcc86b8d187438b
 
AUX nfs-utils-2.3.4-no-common.patch 2849 BLAKE2B 54abbfa1844500798bbe68065ba985429d21cb9e9272784a15e6d5f0184fa24911c9418e1de9df3943e4de3e327e07f533c6c005b6993b5c9f96f54285b9b756 SHA512 01b9fea7f3602b1d56733071da49a02662c38ab4a1bfdae2f8ef5381344fdbfa87c036aa3aed5c09a7fd29d0e56aa836f2f740e4a2b798ffa9d580459ac08ccf
 
AUX nfs-utils-2.3.4-no-werror.patch 1832 BLAKE2B 6e0f3da6a355c3b828bbaae3135c3a6c8bab29008cf160ca728ff5b72402f108221b4def304e9bf36f98310407bee9c26d828ab833bb7a9619fdaf609e66d06c SHA512 ce76f46c8dcef8b151040b9d198843746b6c20507c23a0dc511b3d3dec7681b3ac65c089de3f09d4e496ffa1bd011c034ce70198def374058a0805daf4ec8292
 
AUX nfs-utils-2.4.1-Fix-include-order-between-config.h-and-stat.h.patch 4020 BLAKE2B 9f9079879be7bbaaf7748d4c2e5711fdeacac8b389fdb48d7fdc1c781191dc283f2dc05c9aded7558eb0cf3801cf7eda7032d091592e45cb8eb47018a0ce5430 SHA512 36b80e0f1ef0826e25ee719980171f4d6215db246392e1dbceef6aab4f1fbe78e4e1222256dfb23232b7da1b5328a23050966f3608a10c8b70b2f75491603f31
 
AUX nfs-utils-2.4.1-gssd-Look-in-lib32-for-gss-libs-aswell.patch 1608 BLAKE2B 761eb16d6556b0df1029556453922925ccac7bdc88c4f769382afdf659dfccdd90aa6a183d317667c638e2d2d4d8fc080cfe49070c5fec5bb5f5dc2f66d2040e SHA512 cc4a7a7dde84854b52f57afe09bbff9e241712a19784febd0992b5b53b4b14905b6daf6620a8e9049fbda1dfe0a1619f322adc0517d9747466d7974d4c3eac06
 
AUX nfs-utils-2.4.1-statx.patch 976 BLAKE2B 22441e3a872603978ea6d397554de76be60addf04e115cc85b0899ed471446759010bcd30e77656082be9553cdb4454e0e384140034b87af1240f810a6f7a94c SHA512 8528282344a036ce8de2173cf370141d9dac93eae4616e39748dd07bb20592464479b53ac89e02159d65f1f7c2290410122c27e9f878bee07e950ac5f4b8d423
 
AUX nfs-utils-2.4.2-Ensure-consistent-struct-stat.patch 2808 BLAKE2B 921a0e8e16d0490fb2217d8d2014770a59ff737e989bcc1424a540358b6af5e954d5c8cdf7b6096f128fc86c96a909ee68878a89b803819f57c3b6908443b7e2 SHA512 9150b778701a47bb86a98b6c1b2251d60f135794a212a9b03cb3b0f7830cb62ee466cce5f85dbee008aa476eac71e54bb3b0fca677d9dd5a31b09256d4892f48
 
AUX nfs-utils-2.4.2-mountd-Add-check-for-struct-file_handle.patch 1745 BLAKE2B f86feba7e005dc6766b66a15018c5b1e7c2bf192fcf41a4be6feef6ebfd56ee290b6a7fcb789ad32499ef2cb61343d84e9f248a031e949fe2a1288a059f81e47 SHA512 087c5923cb09616846629671721763d3600dd2c55b0f70fb0a7a9f60da884ed448dc1b338a0cf6245845053a8138b99132605a9abd0e90e3be9719ce37d7a0b3
 
AUX nfs-utils-2.4.2-mountd-Fix-compilation-for--disable-uuid.patch 1031 BLAKE2B eabcf55eada5f7dcc16a576cc49a1ed163d482906d1e0cbd6d42d18512374215455050bec38ce0e29c5b6516bed4113a476aeceea2f6ba229b8254e62905bdc3 SHA512 bf130ed8cce32849bd45957b5f4077e58fe6d98111f90746d628401b804bc9f13623aaca329967210a76e91ead254f3755906de313ad200f76bd52b835d79809
 
AUX nfs-utils-2.4.2-no-werror.patch 1866 BLAKE2B 6307f2dad086ea39b851085479a3503fd205946ee27ea693af996b2ff5cbbd642822afa18eba6598267914e0667f80cc84df64ad69689e2706d1121abace2f68 SHA512 861956a04ef5bcac9d9eb18e93e5257b0c35598a527f5b20e305ce6993532bc905e66610300b6c098433a81ee3eb08312b307f5cd276c530dcb4071429c0ffcc
 
AUX nfs-utils.conf 74 BLAKE2B 504c298c1e8e7eb596cd87813f1aeeac5cbc830bb85be9e26ed98f7ed85cdbd14ae2c47b0e111c912398ef28ef629e6de7e585a7b161624e9698ea208750fd9f SHA512 d72c0fbdf12cb1ddf8eaa5885e1ed93a2078c40ca48eb8868836fb72fa456c4865df15273fb7472f70dfe8098167e695b1340ff9a59b55e73b47690baaf977d6
 
AUX nfs.confd 930 BLAKE2B 4ef1662b31cffd78b0e96396ad74dc8b8135a9a18956fa1267639d2069893d4f218ded5809497b56d19a192e7e18408e1d1b56bd1535abed8db236bc1a1649cb SHA512 bc11b073735ee86c96b9c249ee187f4d16329c279a4e26760875059d2b5fa1d510ef3e4df5ee9dfb2a3133d755e1eb5c323d2fadc432a0cf630191ec353ac535
 
AUX nfs.initd 4013 BLAKE2B 3ccbafc56cb1aaf7b091ca5e895e71516a899177dbf5b74d3b8ecd7cb369ed2a3108cef8f76f6abc72272fbc1c692bc50a219025a9abc05d2ffb0e9caf2309d9 SHA512 2bfd641d1ff3b377aef81632ceba75e1e9aa0305d776ac8ca03217f253040ea3e6349d6d2d1815b91c5f6c90d076d6cb86294e41ecd19f31c288219620703ecc
 
AUX nfsclient.confd 592 BLAKE2B b661b726aa50f904752ec73a201a088f403a1e0f8d11181615e794da259a03b98131fff68e27645d4371564c796bb44915d6a13db9dc5a909294c4d1613c429d SHA512 f12e67728ac4e76357685e2fe38bd7f6fcd90064165758ffeca145e6962ac44d4ff9d8d57e18cc6925a6ada8e95ad8321e9fc355931a804dd455aae1e4850e92
 
AUX nfsclient.initd 752 BLAKE2B 8e3303be602ed97b9c6db0238b950039ec87830d733e7490f62657953e18d8050d5cd75e603d566b00db86ba910384d36e488d149112c86f1b9ed8e0901f5c16 SHA512 85078e2cd38b37a1e6fbaf0e40cf7690f403e71d9c8188d542d12fe56bfc02a49763c7bcc7742691754acc37928468c215db2795bebc29a5dfb052ba08f407bb
 
AUX nfsmount.confd 326 BLAKE2B c9506a71d28358d0ee7eef18985e3f65decd6cd2735cae17cef911129fe0531e2859c833ef75b04c1521c364c5aa1245d38a03191cb4167f6c1fa02383e7c091 SHA512 6e23897885cc33c49d9c7353b456585a1e0c7300822edba81bc48ba4ccc18297adce137260cc0aa9487aa5ef0aab3eecf931532cfa5bd40fd03bc9e0ddacfb28
 
AUX nfsmount.initd 1014 BLAKE2B 2a8f142c3932afa7867e2e85ed4497a45413a2abe602ac39a1897f912d2c24d4e80be3ed50602c5563eff05ce4476eba2f4e2442fce3deec34558533c26ff73b SHA512 89259b9f0878658d48792b5b2f42b43c966ed098dba1fecf9e07fb0de4aab37ad67655ea8dbcc2361ddab2b5013b2de35a03048a513aaeedf790e4b416a35a54
 
AUX nfsmount.initd-1.3.1 740 BLAKE2B 2668a3c485925f5b670efd11f357c5e0d616c1e1b62863c14b86e3201d5a5d61c1c4f4257b3b19ed8a8194879c67a9ddf996608073474e154f033be719b5ea54 SHA512 a540443a0259360f2476277bc020bb08eb095debe9c8e6a620dba5da1c7850f399673cc1ab505df65aea095a7e67954a9b5b8b26bbfd94e55d62348791af643d
 
AUX rpc.gssd.initd 455 BLAKE2B 9831c82341737d7877b01deebff82bfc49be59f8faabe4b5ee5542912b488460efd226f01e0bad5486faff5f37579ac15c8e8cf410a5eccd79d690c34f2beb4f SHA512 d9d7eeebbe153d3c4784112ed6d50734b5619b3315bb1454f8163de2b78ed8f958029a0e1088de58e9b1b8069184aeab2c8f19af4b957b6be25e4f138960aeac
 
AUX rpc.idmapd.initd 482 BLAKE2B db643d164787a730ed8f1da73cbc045237bb641fcdf297015e6651a4c683a075fdc29d037bc44a9832d45be87d41f37eb4e00ea37fdeed66038cf4a93d1a260f SHA512 f3e88038cb040ffcbca76166f4322d37e39da00d144bc0a17aed4467ab10c6e626fcde6c407d0911d135bfab55622ad2e38ed93788b11459c5882ce60577fb45
 
AUX rpc.pipefs.initd 760 BLAKE2B 4c05275e59d7d19d80779964a3631096258704cec2097f12d87232deecba5d74181f1713e18ebb01f5da9c3833037ba47566414f0b415608ad13e3fa97c8f1e6 SHA512 3d3fa6e7ae01e27d27d88aba1e307c5293dd1cbc9d555737e03c4f1e17988518f4f1e7f7a38a7337f8e8961e8378cc4611769b04db7368460589a3b218ac6d6b
 
AUX rpc.statd.initd 706 BLAKE2B 6c175729706d298307deea1d190703e67edb671a6b2c86216658fc89dafff1ae9f85a25b5386e4c89b86ca1b7b1fce7bb3045f944b7a1aee5b6544594d753cf8 SHA512 7f6baea852fff91b88e15e432ba19f9da0a3e3510b6f550b553912cf3887ce176280367b62bcce2a044730a075e4c1f6d7df1a669556d42725dea6e6e8e967ac
 
AUX rpc.svcgssd.initd 470 BLAKE2B c610a7abc44b86ca242d59f833ffa6e42f48d1c3bf93420988c6c6dfcd5cc4d8e02eaf2f3a86bb8bca7c8952e05017f887e6c4f4290085c41cc095a580e04235 SHA512 819cce4ae0a0f26bc74ce546e149b98420584240a594c9bb4a0a49413750320bde050866f3753c499425ea8d8df094211fb1f7e020ce281791e1933e1bc6a47f
 
DIST nfs-utils-2.3.2.tar.bz2 884068 BLAKE2B c4133cc12c5c1cd33346408e2d1286cf50880a89ec97cb8ce4453266ba5b145eb1ca7a4362ac1a91ea5c1ebddd4fcd1d6a4cd12f45637cd5d845cc6d8d5f139d SHA512 4b948d92f515e9340163f53ab26dd7189fa8b13909f5c668b7c66ae13f181ed778967edc0a20753763540b5a3f93a41a2de38a7276ffbfadfd866c5ed422520c
 
DIST nfs-utils-2.3.4.tar.bz2 906900 BLAKE2B 968fac7b37c7311bc8d29667c88db925aac0c062ed7ef8c13f9e5c11c3c88960ffaea56c1b6cfb5594a01238f9190e55ab7b837a79a7a804bc55dcca75908eea SHA512 25203b38be6683f25ad6583ac8534873c907124092a768955c1454899e2f467b9dd427b167556eb4f28992b5720da13078eb1eb086da991438454f268e1559a5
 
EBUILD nfs-utils-2.3.2.ebuild 5346 BLAKE2B fcf2e6f977ac80cf34433c1c46be5291e3b02c986215bc83acad00225e42e3201f01dde1a7eaaac270c9f6ec1058dc3ce8c95c77ed626ea3149be6579f72a856 SHA512 8ada0b5fe90cae49d99c0b02e2162585e7c681ee8e9a1da48e0656aa339bfad11b269a4a718cf7b25beae3ad781cac5f163265c09d3c76ecf408e61a18d6e889
 
EBUILD nfs-utils-2.3.4-r1.ebuild 5267 BLAKE2B 3cfdc36c2baa7005be877129d8b420de16577b2d0d2eda05eebb6dd429ef5d5b4d7fe114831124bb7698db5e4a8e68711a3694c52b2d2493a0eaaf74eab3d5f2 SHA512 6a4ef77dfb0aafc711548afc58f8bc0cfa268059ebe5bb277c033f1e2c5dbe57194d641078bdcc5237e4aaeea99077b4c79c121ff9acaa0c117f3ed2129fe671
 
EBUILD nfs-utils-2.3.4.ebuild 5224 BLAKE2B d3875920a72f2c943b65c07e29c5237af45acbf241de116ed9adc07757221950143fe3e962ccf2ec0ea072bc6839fce7813addb204f3223a22fa5191a3b36969 SHA512 f84a0609b65c511b00c4d859916311465d512048182d7d2388708d47232b3fb60e402a605480da337fde593a96190b0654c14637dfc157fd7350d1c5cd8590dd
 
MISC metadata.xml 932 BLAKE2B 14cb95a010cdb52373502bdad4de008234494be6e38f6b3fbf6b69e0848a6daa1315ed69b8eaadaad0cd546e84ba0e291b56ebf9db486b7c6e66011147b9a97c SHA512 eb45c97d7ed2bdaa8e43ce0a4fdb2f8a1d197bfd67a8b04f718c6083e7701873e2c22550700049edc25068daacb5278ca2535b63a02a10c1040efe0dbcef76a5
net-fs/nfs-utils/files/nfs-utils-2.3.4-no-common.patch
Show inline comments
 
new file 100644
 
When compiled with -fno-common, global variables that are declared
 
multple times cause an error.  With -fcommon (the default), they are
 
merged.
 

	
 
Declaring such variable multiple times is probably not a good idea, and
 
is definitely not necessary.
 

	
 
This patch changes all the global variables defined in include files to
 
be explicitly "extern", and where necessary, adds the variable
 
declaration to a suitable .c file.
 

	
 
To test, run
 
  CFLAGS=-fno-common ./configure
 
  make
 

	
 
Signed-off-by: NeilBrown <neilb@xxxxxxx>
 
---
 
 utils/mountd/v4root.c        |  2 --
 
 utils/nfsdcld/cld-internal.h | 10 +++++-----
 
 utils/nfsdcld/nfsdcld.c      |  6 ++++++
 
 utils/statd/statd.c          |  1 +
 
 utils/statd/statd.h          |  2 +-
 
 5 files changed, 13 insertions(+), 8 deletions(-)
 

	
 
diff --git a/utils/mountd/v4root.c b/utils/mountd/v4root.c
 
index d735dbfe192d..dd9828eb0c11 100644
 
--- a/utils/mountd/v4root.c
 
+++ b/utils/mountd/v4root.c
 
@@ -28,8 +28,6 @@
 
 #include "v4root.h"
 
 #include "pseudoflavors.h"
 
 
 
-int v4root_needed;
 
-
 
 static nfs_export pseudo_root = {
 
 	.m_next = NULL,
 
 	.m_client = NULL,
 
diff --git a/utils/nfsdcld/cld-internal.h b/utils/nfsdcld/cld-internal.h
 
index 05f01be2105a..cc283dae9dbf 100644
 
--- a/utils/nfsdcld/cld-internal.h
 
+++ b/utils/nfsdcld/cld-internal.h
 
@@ -35,10 +35,10 @@ struct cld_client {
 
 	} cl_u;
 
 };
 
 
 
-uint64_t current_epoch;
 
-uint64_t recovery_epoch;
 
-int first_time;
 
-int num_cltrack_records;
 
-int num_legacy_records;
 
+extern uint64_t current_epoch;
 
+extern uint64_t recovery_epoch;
 
+extern int first_time;
 
+extern int num_cltrack_records;
 
+extern int num_legacy_records;
 
 
 
 #endif /* _CLD_INTERNAL_H_ */
 
diff --git a/utils/nfsdcld/nfsdcld.c b/utils/nfsdcld/nfsdcld.c
 
index 2ad1001988d2..be6556262504 100644
 
--- a/utils/nfsdcld/nfsdcld.c
 
+++ b/utils/nfsdcld/nfsdcld.c
 
@@ -69,6 +69,12 @@ static int 		inotify_fd = -1;
 
 static struct event	pipedir_event;
 
 static bool old_kernel = false;
 
 
 
+uint64_t current_epoch;
 
+uint64_t recovery_epoch;
 
+int first_time;
 
+int num_cltrack_records;
 
+int num_legacy_records;
 
+
 
 static struct option longopts[] =
 
 {
 
 	{ "help", 0, NULL, 'h' },
 
diff --git a/utils/statd/statd.c b/utils/statd/statd.c
 
index 8eef2ff24fe8..e4a1df43b73f 100644
 
--- a/utils/statd/statd.c
 
+++ b/utils/statd/statd.c
 
@@ -67,6 +67,7 @@ static struct option longopts[] =
 
 };
 
 
 
 extern void sm_prog_1 (struct svc_req *, register SVCXPRT *);
 
+stat_chge	SM_stat_chge;
 
 
 
 #ifdef SIMULATIONS
 
 extern void simulator (int, char **);
 
diff --git a/utils/statd/statd.h b/utils/statd/statd.h
 
index 231ac7e0764b..bb1fecbb6a51 100644
 
--- a/utils/statd/statd.h
 
+++ b/utils/statd/statd.h
 
@@ -41,7 +41,7 @@ extern void	load_state(void);
 
 /*
 
  * Host status structure and macros.
 
  */
 
-stat_chge		SM_stat_chge;
 
+extern stat_chge	SM_stat_chge;
 
 #define MY_NAME		SM_stat_chge.mon_name
 
 #define MY_STATE	SM_stat_chge.state
 
 
 
-- 
 
2.24.1
 

	
net-fs/nfs-utils/nfs-utils-2.3.4-r1.ebuild
Show inline comments
 
new file 100644
 
# Copyright 1999-2020 Gentoo Authors
 
# Distributed under the terms of the GNU General Public License v2
 

	
 
EAPI=7
 

	
 
inherit autotools flag-o-matic multilib systemd
 

	
 
DESCRIPTION="NFS client and server daemons"
 
HOMEPAGE="http://linux-nfs.org/"
 

	
 
if [[ "${PV}" = *_rc* ]] ; then
 
	MY_PV="$(ver_rs 1- -)"
 
	SRC_URI="http://git.linux-nfs.org/?p=steved/nfs-utils.git;a=snapshot;h=refs/tags/${PN}-${MY_PV};sf=tgz -> ${P}.tar.gz"
 
	S="${WORKDIR}/${PN}-${PN}-${MY_PV}"
 
else
 
	SRC_URI="mirror://sourceforge/nfs/${P}.tar.bz2"
 
	KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~mips ppc ppc64 ~riscv s390 sparc x86"
 
fi
 

	
 
LICENSE="GPL-2"
 
SLOT="0"
 
IUSE="caps ipv6 junction kerberos ldap +libmount nfsdcld +nfsidmap +nfsv4 nfsv41 selinux tcpd +uuid"
 
REQUIRED_USE="kerberos? ( nfsv4 )"
 
RESTRICT="test" #315573
 

	
 
# kth-krb doesn't provide the right include
 
# files, and nfs-utils doesn't build against heimdal either,
 
# so don't depend on virtual/krb.
 
# (04 Feb 2005 agriffis)
 
DEPEND="
 
	>=dev-db/sqlite-3.3
 
	dev-libs/libxml2
 
	net-libs/libtirpc:=
 
	>=net-nds/rpcbind-0.2.4
 
	sys-libs/e2fsprogs-libs
 
	caps? ( sys-libs/libcap )
 
	ldap? ( net-nds/openldap )
 
	libmount? ( sys-apps/util-linux )
 
	nfsv4? (
 
		dev-libs/libevent:=
 
		>=sys-apps/keyutils-1.5.9
 
		kerberos? (
 
			>=net-libs/libtirpc-0.2.4-r1[kerberos]
 
			app-crypt/mit-krb5
 
		)
 
	)
 
	nfsv41? (
 
		sys-fs/lvm2
 
	)
 
	tcpd? ( sys-apps/tcp-wrappers )
 
	uuid? ( sys-apps/util-linux )"
 
RDEPEND="${DEPEND}
 
	!net-libs/libnfsidmap
 
	!net-nds/portmap
 
	!<sys-apps/openrc-0.13.9
 
	selinux? (
 
		sec-policy/selinux-rpc
 
		sec-policy/selinux-rpcbind
 
	)
 
"
 
BDEPEND="
 
	virtual/pkgconfig
 
"
 

	
 
PATCHES=(
 
	"${FILESDIR}"/${PN}-1.1.4-mtab-sym.patch
 
	"${FILESDIR}"/${PN}-1.2.8-cross-build.patch
 
	"${FILESDIR}"/${PN}-2.3.4-no-werror.patch
 
	"${FILESDIR}"/${PN}-2.3.4-no-common.patch
 
)
 

	
 
src_prepare() {
 
	default
 

	
 
	sed \
 
		-e "/^sbindir/s:= := \"${EPREFIX}\":g" \
 
		-i utils/*/Makefile.am || die
 

	
 
	eautoreconf
 
}
 

	
 
src_configure() {
 
	export libsqlite3_cv_is_recent=yes # Our DEPEND forces this.
 
	export ac_cv_header_keyutils_h=$(usex nfsidmap)
 
	local myeconfargs=(
 
		--with-statedir="${EPREFIX}"/var/lib/nfs
 
		--enable-tirpc
 
		--with-tirpcinclude="${EPREFIX}"/usr/include/tirpc/
 
		--with-pluginpath="${EPREFIX}"/usr/$(get_libdir)/libnfsidmap
 
		--with-systemd="$(systemd_get_systemunitdir)"
 
		--without-gssglue
 
		$(use_enable caps)
 
		$(use_enable ipv6)
 
		$(use_enable junction)
 
		$(use_enable kerberos gss)
 
		$(use_enable kerberos svcgss)
 
		$(use_enable ldap)
 
		$(use_enable libmount libmount-mount)
 
		$(use_enable nfsdcld nfsdcltrack)
 
		$(use_enable nfsv4)
 
		$(use_enable nfsv41)
 
		$(use_enable uuid)
 
		$(use_with tcpd tcp-wrappers)
 
	)
 
	econf "${myeconfargs[@]}"
 
}
 

	
 
src_compile() {
 
	# remove compiled files bundled in the tarball
 
	emake clean
 
	default
 
}
 

	
 
src_install() {
 
	default
 
	rm linux-nfs/Makefile* || die
 
	dodoc -r linux-nfs README
 

	
 
	# Don't overwrite existing xtab/etab, install the original
 
	# versions somewhere safe...  more info in pkg_postinst
 
	keepdir /var/lib/nfs/{,sm,sm.bak}
 
	mv "${ED}"/var/lib/nfs "${ED}"/usr/$(get_libdir)/ || die
 

	
 
	# Install some client-side binaries in /sbin
 
	dodir /sbin
 
	mv "${ED}"/usr/sbin/rpc.statd "${ED}"/sbin/ || die
 

	
 
	if use nfsv4 && use nfsidmap ; then
 
		# Install a config file for idmappers in newer kernels. #415625
 
		insinto /etc/request-key.d
 
		echo 'create id_resolver * * /usr/sbin/nfsidmap -t 600 %k %d' > id_resolver.conf
 
		doins id_resolver.conf
 
	fi
 

	
 
	insinto /etc
 
	doins "${FILESDIR}"/exports
 
	keepdir /etc/exports.d
 

	
 
	local f list=() opt_need=""
 
	if use nfsv4 ; then
 
		opt_need="rpc.idmapd"
 
		list+=( rpc.idmapd rpc.pipefs )
 
		use kerberos && list+=( rpc.gssd rpc.svcgssd )
 
	fi
 
	for f in nfs nfsclient rpc.statd "${list[@]}" ; do
 
		newinitd "${FILESDIR}"/${f}.initd ${f}
 
	done
 
	newinitd "${FILESDIR}"/nfsmount.initd-1.3.1 nfsmount # Nuke after 2015/08/01
 
	for f in nfs nfsclient ; do
 
		newconfd "${FILESDIR}"/${f}.confd ${f}
 
	done
 
	sed -i \
 
		-e "/^NFS_NEEDED_SERVICES=/s:=.*:=\"${opt_need}\":" \
 
		"${ED}"/etc/conf.d/nfs || die #234132
 

	
 
	local systemd_systemunitdir="$(systemd_get_systemunitdir)"
 
	sed -i \
 
		-e 's:/usr/sbin/rpc.statd:/sbin/rpc.statd:' \
 
		"${ED}${systemd_systemunitdir}"/* || die
 

	
 
	keepdir /var/lib/nfs #368505
 
	keepdir /var/lib/nfs/v4recovery #603628
 

	
 
}
 

	
 
pkg_postinst() {
 
	# Install default xtab and friends if there's none existing.  In
 
	# src_install we put them in /usr/lib/nfs for safe-keeping, but
 
	# the daemons actually use the files in /var/lib/nfs.  #30486
 
	local f
 
	for f in "${EROOT}"/usr/$(get_libdir)/nfs/*; do
 
		[[ -e ${EROOT}/var/lib/nfs/${f##*/} ]] && continue
 
		einfo "Copying default ${f##*/} from ${EPREFIX}/usr/$(get_libdir)/nfs to ${EPREFIX}/var/lib/nfs"
 
		cp -pPR "${f}" "${EROOT}"/var/lib/nfs/
 
	done
 

	
 
	if systemd_is_booted; then
 
		for v in ${REPLACING_VERSIONS}; do
 
			if ver_test "${v}" -lt 1.3.0; then
 
				ewarn "We have switched to upstream systemd unit files. Since"
 
				ewarn "they got renamed, you should probably enable the new ones."
 
				ewarn "You can run 'equery files nfs-utils | grep systemd'"
 
				ewarn "to know what services you need to enable now."
 
			fi
 
		done
 
	else
 
		ewarn "If you use OpenRC, the nfsmount service has been replaced with nfsclient."
 
		ewarn "If you were using nfsmount, please add nfsclient and netmount to the"
 
		ewarn "same runlevel as nfsmount."
 
	fi
 
}
0 comments (0 inline, 0 general)