Bump the patch

Package-Manager: portage-2.2.0_alpha188
RepoMan-Options: --force
This commit is contained in:
Mario Fetka 2013-08-16 08:31:59 +02:00
parent 7e4e7cc350
commit c6e1284c7e
12 changed files with 289 additions and 373 deletions

View File

@ -2,6 +2,19 @@
# Copyright 1999-2013 Gentoo Foundation; Distributed under the GPL v2
# $Header: /var/cvsroot/gentoo-x86/net-fs/nfs-utils/ChangeLog,v 1.215 2013/04/13 20:02:02 vapier Exp $
*nfs-utils-1.2.8-r1 (16 Aug 2013)
16 Aug 2013; Mario Fetka <mario.fetka@gmail.com>
+files/0001-mountd-Fix-is_subdirectory-again.patch,
+files/0001-statd-exit-if-a-statd-is-already-running.patch,
+files/nfs-utils-1.2.7-heimdal.patch,
+files/nfs-utils-1.2.8-cross-build.patch, +files/nfsd.service,
+files/rpc-mountd.service, +files/rpc-statd.service,
+nfs-utils-1.2.8-r1.ebuild, -files/nfs-utils-1.2.6-cross-build.patch,
-files/nfs-utils-1.2.7-heomdal.patch, -files/nfs-utils-1.2.7-libio.patch,
-files/nfs-utils-1.2.7-nfsiostat-python3.patch, -nfs-utils-1.2.7.ebuild:
Bump the patch
13 Apr 2013; Mike Frysinger <vapier@gentoo.org> nfs-utils-1.2.6.ebuild,
nfs-utils-1.2.7.ebuild:
Force sqlite test to work even when cross-compiling #465576 by Dennis

View File

@ -1,19 +1,22 @@
AUX 0001-mountd-Fix-is_subdirectory-again.patch 2704 SHA256 1c1204dc5fc62debb8cc66ca299a741a3d8e515f480ff7aecb4ad72819658de7 SHA512 59a29c72096357fc35e805f0a1e443c7a6ee9b07c96ed85481b1101a6090311937b39f45aefa60325f968a5c7d2bc5550c2a43f2f54bd8522b615b84bdf71c86 WHIRLPOOL fc0c806c3c68f6d215f24a418b92b94188e23cc9249a8e0cea6ec22a1139747ab05cccab253bddff6787a15301225792658dadc8d6d1c4c6aba5543ea893d600
AUX 0001-statd-exit-if-a-statd-is-already-running.patch 3593 SHA256 d3e402c73b204d4b5e161563005269318dad6e992792c902da76ff8368b872cb SHA512 e04d451618d6f6197dc0692844cc115fec93575525cd0569d582f9278007e2dbec692ef46065c675de13d608e034161f39a60d46766873933d05d18b94633f6c WHIRLPOOL fdf6de89a5ae3f26c1091f8b314684ba0cac3aab68731d3d56e5a909a2211b8f84b8212fbf0f7179427f98bdb102b9bb3d1c3828e66e283bc70abddc9ef3964d
AUX exports 66 SHA256 5d6356df546682e2f1a87131d1bb67de9b1f9a34d3a5742343dc64e890cf71d5 SHA512 fd8052dc8e17eccb0bb1443f341c97ec7c9dac5824294cadf486d91475bc728d4bb69300034b528a690707520590f6675ee371f92e9838afc8ed88092ee0f220 WHIRLPOOL 7cc6b59c1f7013a0ad98518623b03d1cba784ecaf6d6a085b85282192c6f41ac1c649a39dc6e1b42ff38a571c00a85aed6e04ea57d6339a072cc4f2c41d5d74e
AUX nfs-utils-1.1.4-mtab-sym.patch 1020 SHA256 0232799d085151649a1eb1f31644105de7e5cfba888794354005499a0db277c3 SHA512 1cd916028a8515772f05ef63832d73a09e9720055aedc9e2e4ce3a08ce1820948700a4f00ca9c4ee684880f18e67aca888dd857fc7931d923021ba50964be998 WHIRLPOOL c16ecee3228ad4522cf4ede1d05ca50cece3910955314c96eb88a61cfe07b7f6a95c42bb15a7f7f9fd211fa62cdcbb02925e68702d5066338b4543baf56fb2df
AUX nfs-utils-1.2.6-cross-build.patch 1909 SHA256 847f22436f8f389c390beb9bc99195cad182910eff68769317a5dd9902f8c0ab SHA512 ea2fd45ad9f526a72cbc669cb748268aaed5b4e5f01eec8bdeb143226795a09c305732433958261d1b65302eddb68c104eb89d1ad34718038d8b3b06817ae799 WHIRLPOOL 71e398dc619e2971a0f7a3c9c24d9cc2b3a99c4d49568c3a51ac363265e89a13534b73f8e5a744884aff32c8bfebdbfb78b2635dc19caa527bbd3801dc02cac7
AUX nfs-utils-1.2.7-heomdal.patch 6643 SHA256 f8845cb5471313516ebd389a1fb692b984f5f9f663923488a539d8adec8de247 SHA512 dea96554579dcb1b2404724ddcf68a27034cef7f5a0c3d4b6838e46abfcd9a05af3cd56c28f0878f1ec777ea0a2c43fb7c795adf74aa2080c8feb26e7e83d938 WHIRLPOOL cd783ee2b91332753abbf8de8125f6cebd36dd4852ce804d8822fd5cfc28d6d4f608634fcd00b4a30be5aeba9be97c2c122e3beb1d2961182f1bfce8c652e7d2
AUX nfs-utils-1.2.7-libio.patch 1601 SHA256 788b6bcca6ec03a8690b5cbabef06ad325211ab79a332b33d17708e8b0b63093 SHA512 a9643fd3689c95bf82c28a6aa5a82540459e0e6eafbb1a774ff74ad69b4f3f28bc0624f84913a78405cbdcb3321a02f912ace2407bb5534c292f5fdd930b68c3 WHIRLPOOL cb382521d1bbfb2ab823d5d44f788f1e9f1a608f7cdd632f84c046787920237569bd57fda8f298ed255254e6bdb56ef8a845cf3013ba1766e9636ce71e63c788
AUX nfs-utils-1.2.7-nfsiostat-python3.patch 11260 SHA256 c71f3d53c3b076e609ba2de1a1565deacc7a797a2b8c8325341bd6c5b08de6ac SHA512 778640c90ab5a751b9613c02a13a4332e994620c4ff2301bd141edd563bed00ebd1fed7d850adc9d72b3eb3a64d44d7791fef4501fbe0772e7aeb0b14d7d1daa WHIRLPOOL 7c89f6152fe6e1f20c1c57168f98d872cfb55ad34ea8940b5a737c57f21adddf0be5be9a696141e3f45a5848a29c5990a02dba25c804b472848d24b944fc4fc6
AUX nfs-utils-1.2.7-heimdal.patch 6643 SHA256 f8845cb5471313516ebd389a1fb692b984f5f9f663923488a539d8adec8de247 SHA512 dea96554579dcb1b2404724ddcf68a27034cef7f5a0c3d4b6838e46abfcd9a05af3cd56c28f0878f1ec777ea0a2c43fb7c795adf74aa2080c8feb26e7e83d938 WHIRLPOOL cd783ee2b91332753abbf8de8125f6cebd36dd4852ce804d8822fd5cfc28d6d4f608634fcd00b4a30be5aeba9be97c2c122e3beb1d2961182f1bfce8c652e7d2
AUX nfs-utils-1.2.8-cross-build.patch 1323 SHA256 281ae4f2af4d28adc936be961c2ab4aa4f77c4fb74ba08f2cef1038c6e03b30e SHA512 42a41411d0de384b66a2875fa9ea15e4b854150b5f75ba2db54ad7785fd147ee329eb8867d24a26b2b1d9ef89bd887caeaf0b5a59cdda15f5a11c47888882b9a WHIRLPOOL 52f5704ec8b88eeb3fab37e4aa9a7ca64ca76f0665c66347ab663624cb3b70309a262d86b21882dc5f687741c73974dc6efbc01d6c386e3ea607bbdb89619edb
AUX nfs.confd 948 SHA256 22bba4ee5d58bae422650875c7c8a797a52fc121ddd02d48297c075b8a35401e SHA512 0981f9ea34d5aaf25b558aa1f4c32f6750b657b450d5d22b999e1556b583207c8d88b83f6f803747c56cc70531556f5a8741589125429f93d0bbc73ae31c137e WHIRLPOOL ff6db7d613126c4fd76a6b99dc432a44f086ea22c78a42e3bcb2df04b95c31e9552cb2c080345b71027c71f97b0b7470fd53ffb81502b3f77bc9bb80a38fe9cc
AUX nfs.initd 4378 SHA256 8df22f253770a24c6a53ce332d821ab680d0ede18d0e968c1c5d8b3796cb74be SHA512 1577a43b47ebf12261504dd1c9ae564e19d80edc424c4b1e308ac46b12907f6684242284f18a6cd2edafec88c815debf895b6c29d13b9bca59d6d7c883bc1f38 WHIRLPOOL da3762c3467af7d46aef1890aa9c95a85e759c6cab09a5590a00c8f6a37b600a6cf3d4c17b1593a3bc7556ad25bfe001ccabcad70bdc1a2848aa9f842e349d48
AUX nfsd.service 339 SHA256 fada3d017779466e28a6b84c5adda1d9ef7c9b9e9458884f4456efc7e85a87c7 SHA512 4accd4aa77b3f91b1472b24ba5303cb5442aee1ecc1b813605bb4815320144cfe6505265659f8ec79ba6259c8e41ee968462d67b71981cc46dd830764fe786eb WHIRLPOOL 3fca5f83bf62f4d06854066940592cad2a3d636adf6a20e103c6344f8f3abdedfc94aeed280fa285b195b461f78674a07a334215048f83655c1f1bd17bbfc55a
AUX nfsmount.confd 326 SHA256 b9389e143c2c4f95c11f97a8a379e007f140559016f60011c9d2ff0935758bcb SHA512 6e23897885cc33c49d9c7353b456585a1e0c7300822edba81bc48ba4ccc18297adce137260cc0aa9487aa5ef0aab3eecf931532cfa5bd40fd03bc9e0ddacfb28 WHIRLPOOL 97939b074a9b5717184512088388c9c22a31f37009996b69137023a0f8a97ce6eb41f7cb0a25843ea088f00d37cb45f6b3bd1ba0f801de7cb8f6dc2e5d374dfb
AUX nfsmount.initd 1126 SHA256 b57637c7eb8e40b5cc1655e8afa69dc0aaecbd3186bdca3301586d1e9b797357 SHA512 e2c4d2bf9690b092d7062d95f4242e2591e3ed0aa8b9b36eae977d5d0350b0d90d339f7e75bdcc794abef27cf1541642a8a6dbbaed90e58cc823db4c92af9336 WHIRLPOOL 54a2bdb24015a6d8184fdde3351b152c5625cb6e4ff17876d592a1600fedec1724081b4ff233711ad9d290ea761827067c40ba8ae21121fc6066ba7ed230e483
AUX rpc-mountd.service 251 SHA256 d48a2bedfc62e20a21e2b55b822290ca849cc43bd8aafafd72687a389956e44b SHA512 6d9d163d35ebfeb2cd2d00f4d3c4d7973c6f6b9615c59e1e05e5431b91e0ade3cdd414896245f53ad0bf897ad70dcb0d06eb94c71d52c9ea3787df08483f2e1b WHIRLPOOL 5aa94ae3d682919790e485a5c00b8b396674e8059b563472dd007e8be0084ab6a8aadf9a72f0a01ee68260d71e51075cbd9c86de36b713495a7beb275a3f4cab
AUX rpc-statd.service 268 SHA256 f6e9479410ea3c41949ef8c552c0246cfc4324d60a69900fa14d10c50dc2c305 SHA512 6e0ff528f98b669c33e810082c772161c9750b626e755f0bc07e2134e43ab26eb3b73d92d1da5e05926a88c1ddbd44c2670c9388de470d2a90a82c7f34253775 WHIRLPOOL 97d1fff09f4dbda3a54a88c2323df594c6170fb3891d8e542370757bd80916b0e8b027358e81fdf08ae4a8e2a79ca1c0361320fc552221626fbcbb17a4ece937
AUX rpc.gssd.initd 567 SHA256 00d9c29280a83e8458c33139d04a9b38c6fdba9d7cb9b420ca83bf6b10e6435d SHA512 cd4f763c7cced0eecb03e2d4c8fb1d5fbbddd119a014dee4e9cb881d3750fb01a50daa4475700914785cb1313ceef638b7de4d8dddac90cbab63888cc81938f6 WHIRLPOOL d9f4c381f18b76a2c5b1c0c2adb56b0005264a3230c436d4556c45e13372bea09cf1fc35f02d734cac7081322f72873e46d2b2d451334ad908f14ad7fcd54acc
AUX rpc.idmapd.initd 595 SHA256 3ce65326859c43983dad25ad2d4731488c488037796e39b6b5eda336e8bf81ef SHA512 624ac8c5a381a0ccc1bb7dfd06c080a9de85a9e94e1d4071a6ef401e1b20f0d05d767be5e85eea374c3a4c29218b3db6013383afa0bdd1a7f61b77260675bfdb WHIRLPOOL f25787957ec201bc97754c7864ada3e2c9be05bda054fc8ebdc29e6ebfa2280419d3dc44f54f71a1adf195f257e6e8292645b55e76006341bff101e5bddec94f
AUX rpc.pipefs.initd 822 SHA256 6503951b3c200ccf3f46396f7b9274f0a565807f7f6e561c17bed6b0133ae49a SHA512 d711406b29f6634fcde0f21157eb6b2230574e535c261c4478194c3c2c3ffa4bce7b326cbfa0e9f8e816c48b95a306a5cdbc94422db2acf64b48593637df133b WHIRLPOOL 4dec97b8883efdf03ef3692606baa430029e71e35cf34857f8dde287dba3d071a442ae03924c6a478f7fdf6fa79b211d39b08f16e241cbd0cfa31f763c028439
AUX rpc.statd.initd 818 SHA256 0c7bd35a14da6c0c2577f09ae82a41ddb693a88157eeaf80684616f79be6c304 SHA512 e7c85a5437f65c82bcab6818fa3aa27fdf746ce745b41987d0e59d620b59529b7a8613aad59e831a5b46fee1fe4410d6982a3e76e7834c79675c4c271b0db3b0 WHIRLPOOL b3c6c4147634f3db39f0a50307a7433e0d28f8cf2d89452d90f9db1b56d55c41add68336640a442508ebfc75270dd627154af787b00f603659a5c730ab724340
AUX rpc.svcgssd.initd 584 SHA256 f1c460d8b0e91e54a551397d755135d05a3728d81de596535bf8bda074455677 SHA512 844e8d41a6a8b632d98585724aca2e9ae596f72c67e17e4e8fb9eb81e6c58eed9e10cf8b2a96896dba8fd1efaa95d846954e712bdf3402a847ae17742dae2157 WHIRLPOOL f1e4a38168c112ce07e40432527a77e17aa80b4a37aeccb8b01a9e655f0437e67e4c12998d62ea7c162319cca956c18edd3cb3c64cfd8e17370782ea30fef677
DIST nfs-utils-1.2.7.tar.bz2 2902130 SHA256 7ef8e0a8b22cd7ff33f3afd28e770d45643fae303468a180640c2967833fe75e SHA512 c63b28be8e7b9cbc3ccb4950f31fd30f3ddc9c8707dcad4c3f2ee78fb464df9e0f1f58dc0c47e530c5afaa604712b4dc5e15af795810374e833c09a19dfd32e1 WHIRLPOOL 785511e2eb03649027977d81f11d7a5b1f960d4fdc57b790af5a3d441aa63858d8c2876e851049ea1b799a93796b209c9a3d22837f3aa3744ba17395a4fc8dbc
EBUILD nfs-utils-1.2.7.ebuild 3776 SHA256 f383993ed7516032e11389b9b22251c831a235787830d0a1efb8f90e362bad26 SHA512 3987b65bf44276b4612d93c59ca302157abc21077a49aa87e10d7f4f6003199aad782215bdece20643997e7972297eddf2a0c87fc1803e5515bdc0dc4d2b17ac WHIRLPOOL 285e8ff734267ac8e9ba73d786f18814af5fc2043e733108af40c412e95b56c7783bfeaa0020d865087c6524e8b832dacd9f04cd0d63e28e211ed2f20f4c8f7d
MISC ChangeLog 33915 SHA256 ce464a74e4ba54679eb1afba7ccde1fe026026abaed116e69d268c428ee54261 SHA512 0843cc5a8452ebc4d52339a0b46269a7d96c0c032c6897b98eb8763fbdf79c9b6a1abceae24efa6024d44f4f34f2eabd2313767b840b8e531fa68bf3735e9e86 WHIRLPOOL b444df4809543e45cf4491d69638ac62752e4ac915d49f81a8c3e3320abcf6fc14c1e50116802b2598133e972012ce72010723c4087da8f84a3f68e439dea5d4
DIST nfs-utils-1.2.8.tar.bz2 2747577 SHA256 1cc8f02a633eddbf0a1d93421f331479c4cdab4c5ab33b8bf8c7c369f9156ac6 SHA512 abe13f37dccb40258ac2f654143e540b9ac8c41ca10fe88f104ebb558334d41c0e31220dbae0122836e43236cac763fbcfc1d5bd708aca3b282152ac3ac7213b WHIRLPOOL 95bc97e572aebae4b99d20b67845e081d75f4126fc74e9f081a6bc1a913796f5370befb5a21c7626668bd430b8671c4732ddfbf319e6a2ef8df8e15f4ef213a1
EBUILD nfs-utils-1.2.8-r1.ebuild 4073 SHA256 d9ae4b31ed2f31425242bac2328d7a8cfad06a36ab22196992abf321e4f38461 SHA512 14a9574d6ef7818c355ee26217170d25cdbc954400beca795b6296f056d318888500c7e3c578cc20714015d39bde0c9346ad177cd78aeed13089a202be7213b0 WHIRLPOOL 99a2fb0b205cbada83c2fa3885c48a2797fff907f58cc2ac75a3e46a111c48f8a382834b8c88dd3d147fca6e975e34c18e415494da42f37f46db4222ab720a3c
MISC ChangeLog 34518 SHA256 0d7eab61ac8b2d7554d965dae2e2a58aff183a076fecca92762030e04aead869 SHA512 9507c212bdf53c71a5ad8160252a21f75255c7a776aa4ef314795819d861e2beb9864e3b7ea297f4980e68fd8ce22c413c37f7c3a52c5509bb4027fafc872e81 WHIRLPOOL 7da356270d943590034bade800eb09928d12731c3318eecd1283976eb4895e579107bca170fc88acf847331b4739d84e0a4b20a64a44d7b4932643c4ff08fb12
MISC metadata.xml 668 SHA256 d9ecc29c31ebf779ec222513db190cc0e9d0737f806aea26913d097b09bbfa47 SHA512 2b269153829d1d8df6e97871814479af8fbe18a48cf0b6a33947212264875a4002feda4163b465b4a67e253e5f27e47badc53d414ebb9f3281253f813fa1dacd WHIRLPOOL a53c14f8e6f7cce4f75a7fda60d8b9f96a57eb3a877470906fa1c40befcd9791411934e7ab610ce612f6d42d4d953e0a2a78ffc9e21e9b98328a395c4de7daa8

View File

@ -0,0 +1,81 @@
From 23d3980b6cfea4e9056d9b7b81e48b4fefc645e0 Mon Sep 17 00:00:00 2001
From: NeilBrown <neilb@suse.de>
Date: Tue, 7 May 2013 11:46:18 -0400
Subject: [PATCH] mountd: Fix is_subdirectory again
The problem was that is_subdirectory() would also succeed if the two
directories were the same. This is needed for path_matches() which
needs to see if the child is same-or-descendant.
So this patch rearranges path_matches() to do the "are they the same"
test itself and only bother with is_subdirectory() if it they are not
the same.
So now is_subdirectory() can be strict, and so can be usable for
subexport(), which needs a strong 'in subdirectory - not the same' test.
Acked-by: J. Bruce Fields <bfields@redhat.com>
Signed-off-by: NeilBrown <neilb@suse.de>
Signed-off-by: Steve Dickson <steved@redhat.com>
---
utils/mountd/cache.c | 24 ++++++++++++++----------
1 file changed, 14 insertions(+), 10 deletions(-)
diff --git a/utils/mountd/cache.c b/utils/mountd/cache.c
index 737927c..517aa62 100644
--- a/utils/mountd/cache.c
+++ b/utils/mountd/cache.c
@@ -347,20 +347,26 @@ static char *next_mnt(void **v, char *p)
static int is_subdirectory(char *child, char *parent)
{
+ /* Check is child is strictly a subdirectory of
+ * parent or a more distant descendant.
+ */
size_t l = strlen(parent);
- if (strcmp(parent, "/") == 0)
+ if (strcmp(parent, "/") == 0 && child[1] != 0)
return 1;
- return strcmp(child, parent) == 0
- || (strncmp(child, parent, l) == 0 && child[l] == '/');
+ return (strncmp(child, parent, l) == 0 && child[l] == '/');
}
static int path_matches(nfs_export *exp, char *path)
{
- if (exp->m_export.e_flags & NFSEXP_CROSSMOUNT)
- return is_subdirectory(path, exp->m_export.e_path);
- return strcmp(path, exp->m_export.e_path) == 0;
+ /* Does the path match the export? I.e. is it an
+ * exact match, or does the export have CROSSMOUNT, and path
+ * is a descendant?
+ */
+ return strcmp(path, exp->m_export.e_path) == 0
+ || ((exp->m_export.e_flags & NFSEXP_CROSSMOUNT)
+ && is_subdirectory(path, exp->m_export.e_path));
}
static int
@@ -369,15 +375,13 @@ export_matches(nfs_export *exp, char *dom, char *path, struct addrinfo *ai)
return path_matches(exp, path) && client_matches(exp, dom, ai);
}
-/* True iff e1 is a child of e2 and e2 has crossmnt set: */
+/* True iff e1 is a child of e2 (or descendant) and e2 has crossmnt set: */
static bool subexport(struct exportent *e1, struct exportent *e2)
{
char *p1 = e1->e_path, *p2 = e2->e_path;
- size_t l2 = strlen(p2);
return e2->e_flags & NFSEXP_CROSSMOUNT
- && strncmp(p1, p2, l2) == 0
- && p1[l2] == '/';
+ && is_subdirectory(p1, p2);
}
struct parsed_fsid {
--
1.8.3.2

View File

@ -0,0 +1,126 @@
From 342446a4a624d4ee8254af859bb7f1de6d268679 Mon Sep 17 00:00:00 2001
From: Weston Andros Adamson <dros@netapp.com>
Date: Tue, 7 May 2013 11:25:29 -0400
Subject: [PATCH] statd: exit if a statd is already running
Moves nfs_probe_statd from mount to nfs support lib to share with statd.
Acked-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: Weston Andros Adamson <dros@netapp.com>
Signed-off-by: Steve Dickson <steved@redhat.com>
---
support/include/nfsrpc.h | 5 +++++
support/nfs/getport.c | 22 ++++++++++++++++++++++
utils/mount/network.c | 17 -----------------
utils/statd/statd.c | 7 +++++++
4 files changed, 34 insertions(+), 17 deletions(-)
diff --git a/support/include/nfsrpc.h b/support/include/nfsrpc.h
index a0b80e1..1bfae7a 100644
--- a/support/include/nfsrpc.h
+++ b/support/include/nfsrpc.h
@@ -156,6 +156,11 @@ extern unsigned long nfs_pmap_getport(const struct sockaddr_in *,
const struct timeval *);
/*
+ * Use nfs_pmap_getport to see if statd is running locally
+ */
+extern int nfs_probe_statd(void);
+
+/*
* Contact a remote RPC service to discover whether it is responding
* to requests.
*/
diff --git a/support/nfs/getport.c b/support/nfs/getport.c
index 3331ad4..081594c 100644
--- a/support/nfs/getport.c
+++ b/support/nfs/getport.c
@@ -1102,3 +1102,25 @@ unsigned long nfs_pmap_getport(const struct sockaddr_in *sin,
return port;
}
+
+static const char *nfs_ns_pgmtbl[] = {
+ "status",
+ NULL,
+};
+
+/*
+ * nfs_probe_statd - use nfs_pmap_getport to see if statd is running locally
+ *
+ * Returns non-zero if statd is running locally.
+ */
+int nfs_probe_statd(void)
+{
+ struct sockaddr_in addr = {
+ .sin_family = AF_INET,
+ .sin_addr.s_addr = htonl(INADDR_LOOPBACK),
+ };
+ rpcprog_t program = nfs_getrpcbyname(NSMPROG, nfs_ns_pgmtbl);
+
+ return nfs_getport_ping((struct sockaddr *)(char *)&addr, sizeof(addr),
+ program, (rpcvers_t)1, IPPROTO_UDP);
+}
diff --git a/utils/mount/network.c b/utils/mount/network.c
index 4be48cd..e2cdcaf 100644
--- a/utils/mount/network.c
+++ b/utils/mount/network.c
@@ -65,11 +65,6 @@ extern int nfs_mount_data_version;
extern char *progname;
extern int verbose;
-static const char *nfs_ns_pgmtbl[] = {
- "status",
- NULL,
-};
-
static const char *nfs_mnt_pgmtbl[] = {
"mount",
"mountd",
@@ -761,18 +756,6 @@ int probe_bothports(clnt_addr_t *mnt_server, clnt_addr_t *nfs_server)
&nfs_server->pmap);
}
-static int nfs_probe_statd(void)
-{
- struct sockaddr_in addr = {
- .sin_family = AF_INET,
- .sin_addr.s_addr = htonl(INADDR_LOOPBACK),
- };
- rpcprog_t program = nfs_getrpcbyname(NSMPROG, nfs_ns_pgmtbl);
-
- return nfs_getport_ping(SAFE_SOCKADDR(&addr), sizeof(addr),
- program, (rpcvers_t)1, IPPROTO_UDP);
-}
-
/**
* start_statd - attempt to start rpc.statd
*
diff --git a/utils/statd/statd.c b/utils/statd/statd.c
index 652546c..8c51bcc 100644
--- a/utils/statd/statd.c
+++ b/utils/statd/statd.c
@@ -28,6 +28,7 @@
#include "statd.h"
#include "nfslib.h"
+#include "nfsrpc.h"
#include "nsm.h"
/* Socket operations */
@@ -237,6 +238,12 @@ int main (int argc, char **argv)
/* Set hostname */
MY_NAME = NULL;
+ /* Refuse to start if another statd is running */
+ if (nfs_probe_statd()) {
+ fprintf(stderr, "Statd service already running!\n");
+ exit(1);
+ }
+
/* Process command line switches */
while ((arg = getopt_long(argc, argv, "h?vVFNH:dn:p:o:P:L", longopts, NULL)) != EOF) {
switch (arg) {
--
1.8.3.2

View File

@ -1,50 +0,0 @@
https://bugs.gentoo.org/459200
From 2d9fb08c588970b842ce2a609088079181e6aafb Mon Sep 17 00:00:00 2001
From: Mike Frysinger <vapier@gentoo.org>
Date: Sun, 24 Mar 2013 17:41:19 -0400
Subject: [PATCH [nfs-utils]] check for libio.h availability
On some systems (like uClibc), there isn't a libio.h header. But it
isn't also needed on them. So check for the header first.
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
---
configure.ac | 2 +-
support/include/sockaddr.h | 6 ++++++
2 files changed, 7 insertions(+), 1 deletion(-)
diff --git a/configure.ac b/configure.ac
index f461219..cc7f3b4 100644
--- a/configure.ac
+++ b/configure.ac
@@ -358,7 +358,7 @@ AC_CHECK_HEADERS([arpa/inet.h fcntl.h libintl.h limits.h \
stdlib.h string.h sys/file.h sys/ioctl.h sys/mount.h \
sys/param.h sys/socket.h sys/time.h sys/vfs.h \
syslog.h unistd.h com_err.h et/com_err.h \
- ifaddrs.h nfs-plugin.h])
+ ifaddrs.h nfs-plugin.h libio.h])
dnl *************************************************************
dnl Checks for typedefs, structures, and compiler characteristics
diff --git a/support/include/sockaddr.h b/support/include/sockaddr.h
index 72766db..a1c30f9 100644
--- a/support/include/sockaddr.h
+++ b/support/include/sockaddr.h
@@ -20,7 +20,13 @@
#ifndef NFS_UTILS_SOCKADDR_H
#define NFS_UTILS_SOCKADDR_H
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+#ifdef HAVE_LIBIO_H
#include <libio.h>
+#endif
#include <stdbool.h>
#include <sys/socket.h>
#include <netinet/in.h>
--
1.8.1.2

View File

@ -1,287 +0,0 @@
From b0e3dc0c1332884a82f509f98434abd78358c7ed Mon Sep 17 00:00:00 2001
From: Mike Frysinger <vapier@gentoo.org>
Date: Sun, 24 Mar 2013 15:59:12 -0400
Subject: [PATCH] nfsiostat: make it work w/python3
Simple fixes here to work with python 2 & 3:
- use print() everywhere
- dict.iteritems() -> dict.items()
- file() -> open()
- sys.maxint -> sys.maxsize
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
---
tools/nfs-iostat/nfs-iostat.py | 130 +++++++++++++++++++++--------------------
1 file changed, 66 insertions(+), 64 deletions(-)
diff --git a/tools/nfs-iostat/nfs-iostat.py b/tools/nfs-iostat/nfs-iostat.py
index d909632..dfbef87 100644
--- a/tools/nfs-iostat/nfs-iostat.py
+++ b/tools/nfs-iostat/nfs-iostat.py
@@ -3,6 +3,8 @@
"""Emulate iostat for NFS mount points using /proc/self/mountstats
"""
+from __future__ import print_function
+
__copyright__ = """
Copyright (C) 2005, Chuck Lever <cel@netapp.com>
@@ -201,9 +203,9 @@ class DeviceData:
result = DeviceData()
# copy self into result
- for key, value in self.__nfs_data.iteritems():
+ for key, value in self.__nfs_data.items():
result.__nfs_data[key] = value
- for key, value in self.__rpc_data.iteritems():
+ for key, value in self.__rpc_data.items():
result.__rpc_data[key] = value
# compute the difference of each item in the list
@@ -233,9 +235,9 @@ class DeviceData:
client_bytes_read = float(nfs_stats['serverreadbytes'] - nfs_stats['directreadbytes'])
ratio = ((app_bytes_read - client_bytes_read) * 100) / app_bytes_read
- print
- print 'app bytes: %f client bytes %f' % (app_bytes_read, client_bytes_read)
- print 'Data cache hit ratio: %4.2f%%' % ratio
+ print()
+ print('app bytes: %f client bytes %f' % (app_bytes_read, client_bytes_read))
+ print('Data cache hit ratio: %4.2f%%' % ratio)
def __print_attr_cache_stats(self, sample_time):
"""Print attribute cache efficiency stats
@@ -255,13 +257,13 @@ class DeviceData:
data_invalidates = float(nfs_stats['datainvalidates'])
attr_invalidates = float(nfs_stats['attrinvalidates'])
- print
- print '%d inode revalidations, hitting in cache %4.2f%% of the time' % \
- (revalidates, ratio)
- print '%d open operations (mandatory GETATTR requests)' % opens
+ print()
+ print('%d inode revalidations, hitting in cache %4.2f%% of the time' % \
+ (revalidates, ratio))
+ print('%d open operations (mandatory GETATTR requests)' % opens)
if getattr_ops != 0:
- print '%4.2f%% of GETATTRs resulted in data cache invalidations' % \
- ((data_invalidates * 100) / getattr_ops)
+ print('%4.2f%% of GETATTRs resulted in data cache invalidations' % \
+ ((data_invalidates * 100) / getattr_ops))
def __print_dir_cache_stats(self, sample_time):
"""Print directory stats
@@ -277,13 +279,13 @@ class DeviceData:
lookups = nfs_stats['vfslookup']
getdents = nfs_stats['vfsreaddir']
- print
- print '%d open operations (pathname lookups)' % opens
- print '%d dentry revalidates and %d vfs lookup requests' % \
- (dentry_revals, lookups),
- print 'resulted in %d LOOKUPs on the wire' % lookup_ops
- print '%d vfs getdents calls resulted in %d READDIRs on the wire' % \
- (getdents, readdir_ops)
+ print()
+ print('%d open operations (pathname lookups)' % opens)
+ print('%d dentry revalidates and %d vfs lookup requests' % \
+ (dentry_revals, lookups))
+ print('resulted in %d LOOKUPs on the wire' % lookup_ops)
+ print('%d vfs getdents calls resulted in %d READDIRs on the wire' % \
+ (getdents, readdir_ops))
def __print_page_stats(self, sample_time):
"""Print page cache stats
@@ -297,33 +299,33 @@ class DeviceData:
vfswritepages = nfs_stats['vfswritepages']
pages_written = nfs_stats['writepages']
- print
- print '%d nfs_readpage() calls read %d pages' % \
- (vfsreadpage, vfsreadpage)
- print '%d nfs_readpages() calls read %d pages' % \
- (vfsreadpages, pages_read - vfsreadpage),
+ print()
+ print('%d nfs_readpage() calls read %d pages' % \
+ (vfsreadpage, vfsreadpage))
+ print('%d nfs_readpages() calls read %d pages' % \
+ (vfsreadpages, pages_read - vfsreadpage))
if vfsreadpages != 0:
- print '(%.1f pages per call)' % \
- (float(pages_read - vfsreadpage) / vfsreadpages)
+ print('(%.1f pages per call)' % \
+ (float(pages_read - vfsreadpage) / vfsreadpages))
else:
- print
-
- print
- print '%d nfs_updatepage() calls' % nfs_stats['vfsupdatepage']
- print '%d nfs_writepage() calls wrote %d pages' % \
- (vfswritepage, vfswritepage)
- print '%d nfs_writepages() calls wrote %d pages' % \
- (vfswritepages, pages_written - vfswritepage),
+ print()
+
+ print()
+ print('%d nfs_updatepage() calls' % nfs_stats['vfsupdatepage'])
+ print('%d nfs_writepage() calls wrote %d pages' % \
+ (vfswritepage, vfswritepage))
+ print('%d nfs_writepages() calls wrote %d pages' % \
+ (vfswritepages, pages_written - vfswritepage))
if (vfswritepages) != 0:
- print '(%.1f pages per call)' % \
- (float(pages_written - vfswritepage) / vfswritepages)
+ print('(%.1f pages per call)' % \
+ (float(pages_written - vfswritepage) / vfswritepages))
else:
- print
+ print()
congestionwaits = nfs_stats['congestionwait']
if congestionwaits != 0:
- print
- print '%d congestion waits' % congestionwaits
+ print()
+ print('%d congestion waits' % congestionwaits)
def __print_rpc_op_stats(self, op, sample_time):
"""Print generic stats for one RPC op
@@ -351,15 +353,15 @@ class DeviceData:
exe_per_op = 0.0
op += ':'
- print '%s' % op.lower().ljust(15),
- print ' ops/s\t\t kB/s\t\t kB/op\t\tretrans\t\tavg RTT (ms)\tavg exe (ms)'
+ print('%s' % op.lower().ljust(15))
+ print(' ops/s\t\t kB/s\t\t kB/op\t\tretrans\t\tavg RTT (ms)\tavg exe (ms)')
- print '\t\t%7.3f' % (ops / sample_time),
- print '\t%7.3f' % (kilobytes / sample_time),
- print '\t%7.3f' % kb_per_op,
- print ' %7d (%3.1f%%)' % (retrans, retrans_percent),
- print '\t%7.3f' % rtt_per_op,
- print '\t%7.3f' % exe_per_op
+ print('\t\t%7.3f' % (ops / sample_time))
+ print('\t%7.3f' % (kilobytes / sample_time))
+ print('\t%7.3f' % kb_per_op)
+ print(' %7d (%3.1f%%)' % (retrans, retrans_percent))
+ print('\t%7.3f' % rtt_per_op)
+ print('\t%7.3f' % exe_per_op)
def ops(self, sample_time):
sends = float(self.__rpc_data['rpcsends'])
@@ -384,14 +386,14 @@ class DeviceData:
else:
backlog = 0.0
- print
- print '%s mounted on %s:' % \
- (self.__nfs_data['export'], self.__nfs_data['mountpoint'])
- print
+ print()
+ print('%s mounted on %s:' % \
+ (self.__nfs_data['export'], self.__nfs_data['mountpoint']))
+ print()
- print ' op/s\t\trpc bklog'
- print '%7.2f' % (sends / sample_time),
- print '\t%7.2f' % backlog
+ print(' op/s\t\trpc bklog')
+ print('%7.2f' % (sends / sample_time))
+ print('\t%7.2f' % backlog)
if which == 0:
self.__print_rpc_op_stats('READ', sample_time)
@@ -424,7 +426,7 @@ def parse_stats_file(filename):
ms_dict = dict()
key = ''
- f = file(filename)
+ f = open(filename)
for line in f.readlines():
words = line.split()
if len(words) == 0:
@@ -494,7 +496,7 @@ def list_nfs_mounts(givenlist, mountstats):
if stats.is_nfs_mountpoint():
list += [device]
else:
- for device, descr in mountstats.iteritems():
+ for device, descr in mountstats.items():
stats = DeviceData()
stats.parse_stats(descr)
if stats.is_nfs_mountpoint():
@@ -527,7 +529,7 @@ client are listed.
usage="usage: %prog [ <interval> [ <count> ] ] [ <options> ] [ <mount point> ]",
description=mydescription,
version='version %s' % Iostats_version)
- parser.set_defaults(which=0, sort=False, list=sys.maxint)
+ parser.set_defaults(which=0, sort=False, list=sys.maxsize)
statgroup = OptionGroup(parser, "Statistics Options",
'File I/O is displayed unless one of the following is specified:')
@@ -572,29 +574,29 @@ client are listed.
try:
interval = int(arg)
except:
- print 'Illegal <interval> value %s' % arg
+ print('Illegal <interval> value %s' % arg)
return
if interval > 0:
interval_seen = True
else:
- print 'Illegal <interval> value %s' % arg
+ print('Illegal <interval> value %s' % arg)
return
elif not count_seen:
try:
count = int(arg)
except:
- print 'Ilegal <count> value %s' % arg
+ print('Ilegal <count> value %s' % arg)
return
if count > 0:
count_seen = True
else:
- print 'Illegal <count> value %s' % arg
+ print('Illegal <count> value %s' % arg)
return
# make certain devices contains only NFS mount points
devices = list_nfs_mounts(origdevices, mountstats)
if len(devices) == 0:
- print 'No NFS mount points were found'
+ print('No NFS mount points were found')
return
@@ -616,7 +618,7 @@ client are listed.
# we need to recheck the devices list when reparsing
devices = list_nfs_mounts(origdevices,mountstats)
if len(devices) == 0:
- print 'No NFS mount points were found'
+ print('No NFS mount points were found')
return
count -= 1
else:
@@ -630,7 +632,7 @@ client are listed.
# we need to recheck the devices list when reparsing
devices = list_nfs_mounts(origdevices,mountstats)
if len(devices) == 0:
- print 'No NFS mount points were found'
+ print('No NFS mount points were found')
return
#
@@ -641,7 +643,7 @@ prog = os.path.basename(sys.argv[0])
try:
iostat_command(prog)
except KeyboardInterrupt:
- print 'Caught ^C... exiting'
+ print('Caught ^C... exiting')
sys.exit(1)
sys.exit(0)
--
1.8.1.2

View File

@ -20,27 +20,6 @@ for us atm, so hack away :(
-testlk_CPPFLAGS=$(CPPFLAGS_FOR_BUILD)
-testlk_LDFLAGS=$(LDFLAGS_FOR_BUILD)
MAINTAINERCLEANFILES = Makefile.in
--- a/tools/rpcdebug/Makefile.am
+++ b/tools/rpcdebug/Makefile.am
@@ -1,15 +1,14 @@
## Process this file with automake to produce Makefile.in
CC=$(CC_FOR_BUILD)
-LIBTOOL = @LIBTOOL@ --tag=CC
+CFLAGS=$(CFLAGS_FOR_BUILD)
+CPPFLAGS=$(CPPFLAGS_FOR_BUILD)
+LDFLAGS=$(LDFLAGS_FOR_BUILD)
man8_MANS = rpcdebug.man
EXTRA_DIST = $(man8_MANS)
sbin_PROGRAMS = rpcdebug
rpcdebug_SOURCES = rpcdebug.c
-rpcdebug_CFLAGS=$(CFLAGS_FOR_BUILD)
-rpcdebug_CPPFLAGS=$(CPPFLAGS_FOR_BUILD) -I$(top_srcdir)/support/include
-rpcdebug_LDFLAGS=$(LDFLAGS_FOR_BUILD)
MAINTAINERCLEANFILES = Makefile.in
--- a/tools/rpcgen/Makefile.am
+++ b/tools/rpcgen/Makefile.am

View File

@ -0,0 +1,16 @@
[Unit]
Description=NFS server
After=rpcbind.service
Requires=rpcbind.service
[Service]
Type=oneshot
EnvironmentFile=/etc/conf.d/nfs
ExecStart=/usr/sbin/rpc.nfsd $OPTS_RPC_NFSD
ExecStartPost=/usr/sbin/exportfs -a
ExecStop=/usr/sbin/rpc.nfsd 0
ExecStopPost=/usr/sbin/exportfs -a -u
RemainAfterExit=yes
[Install]
WantedBy=multi-user.target

View File

@ -0,0 +1,12 @@
[Unit]
Description=NFS Mount Daemon
After=rpcbind.service nfsd.service
Requires=rpcbind.service nfsd.service
[Service]
Type=forking
EnvironmentFile=/etc/conf.d/nfs
ExecStart=/usr/sbin/rpc.mountd $OPTS_RPC_MOUNTD
[Install]
WantedBy=multi-user.target

View File

@ -0,0 +1,13 @@
[Unit]
Description=NFSv2/3 Network Status Monitor Daemon
After=rpcbind.service
Requires=rpcbind.service
Before=remote-fs-pre.target
[Service]
Type=forking
EnvironmentFile=/etc/conf.d/nfs
ExecStart=/sbin/rpc.statd $OPTS_RPC_STATD
[Install]
WantedBy=multi-user.target

View File

@ -1,10 +1,10 @@
# Copyright 1999-2013 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/net-fs/nfs-utils/nfs-utils-1.2.7.ebuild,v 1.3 2013/04/13 20:02:02 vapier Exp $
# $Header: /var/cvsroot/gentoo-x86/net-fs/nfs-utils/nfs-utils-1.2.8-r1.ebuild,v 1.2 2013/08/07 13:54:00 xarthisius Exp $
EAPI="4"
inherit eutils flag-o-matic multilib autotools
inherit eutils flag-o-matic multilib autotools systemd
DESCRIPTION="NFS client and server daemons"
HOMEPAGE="http://linux-nfs.org/"
@ -23,7 +23,7 @@ RESTRICT="test" #315573
DEPEND_COMMON="tcpd? ( sys-apps/tcp-wrappers )
caps? ( sys-libs/libcap )
sys-libs/e2fsprogs-libs
net-nds/rpcbind
>=net-nds/rpcbind-0.2.0-r1
net-libs/libtirpc
nfsdcld? ( >=dev-db/sqlite-3.3 )
nfsv4? (
@ -31,6 +31,7 @@ DEPEND_COMMON="tcpd? ( sys-apps/tcp-wrappers )
>=net-libs/libnfsidmap-0.21-r1
kerberos? (
net-libs/librpcsecgss
>=net-libs/libgssglue-0.3
net-libs/libtirpc[kerberos]
virtual/krb5
)
@ -53,10 +54,10 @@ DEPEND="${DEPEND_COMMON}
src_prepare() {
epatch "${FILESDIR}"/${PN}-1.1.4-mtab-sym.patch
epatch "${FILESDIR}"/${PN}-1.2.6-cross-build.patch
epatch "${FILESDIR}"/${PN}-1.2.7-nfsiostat-python3.patch #458934
epatch "${FILESDIR}"/${PN}-1.2.7-libio.patch #459200
epatch "${FILESDIR}"/${PN}-1.2.7-heomdal.patch
epatch "${FILESDIR}"/${PN}-1.2.8-cross-build.patch
epatch "${FILESDIR}"/0001-statd-exit-if-a-statd-is-already-running.patch
epatch "${FILESDIR}"/0001-mountd-Fix-is_subdirectory-again.patch
epatch "${FILESDIR}"/nfs-utils-1.2.7-heimdal.patch
eautoreconf
}
@ -76,10 +77,16 @@ src_configure() {
$(usex nfsv4 "$(use_enable kerberos gss)" "--disable-gss")
}
src_compile(){
# remove compiled files bundled in the tarball
emake clean
default
}
src_install() {
default
rm linux-nfs/Makefile* || die
dodoc -r linux-nfs ChangeLog README
dodoc -r linux-nfs README
# Don't overwrite existing xtab/etab, install the original
# versions somewhere safe... more info in pkg_postinst
@ -115,6 +122,9 @@ src_install() {
sed -i \
-e "/^NFS_NEEDED_SERVICES=/s:=.*:=\"${opt_need}\":" \
"${ED}"/etc/conf.d/nfs || die #234132
systemd_dounit "${FILESDIR}"/nfsd.service
systemd_dounit "${FILESDIR}"/rpc-statd.service
systemd_dounit "${FILESDIR}"/rpc-mountd.service
}
pkg_postinst() {