From c6e1284c7e3437353e76c04d5c1eeabd1e1b466f Mon Sep 17 00:00:00 2001 From: Mario Fetka Date: Fri, 16 Aug 2013 08:31:59 +0200 Subject: [PATCH] Bump the patch Package-Manager: portage-2.2.0_alpha188 RepoMan-Options: --force --- net-fs/nfs-utils/ChangeLog | 13 + net-fs/nfs-utils/Manifest | 17 +- ...001-mountd-Fix-is_subdirectory-again.patch | 81 +++++ ...d-exit-if-a-statd-is-already-running.patch | 126 ++++++++ ...al.patch => nfs-utils-1.2.7-heimdal.patch} | 0 .../files/nfs-utils-1.2.7-libio.patch | 50 --- .../nfs-utils-1.2.7-nfsiostat-python3.patch | 287 ------------------ ...atch => nfs-utils-1.2.8-cross-build.patch} | 21 -- net-fs/nfs-utils/files/nfsd.service | 16 + net-fs/nfs-utils/files/rpc-mountd.service | 12 + net-fs/nfs-utils/files/rpc-statd.service | 13 + ...1.2.7.ebuild => nfs-utils-1.2.8-r1.ebuild} | 26 +- 12 files changed, 289 insertions(+), 373 deletions(-) create mode 100644 net-fs/nfs-utils/files/0001-mountd-Fix-is_subdirectory-again.patch create mode 100644 net-fs/nfs-utils/files/0001-statd-exit-if-a-statd-is-already-running.patch rename net-fs/nfs-utils/files/{nfs-utils-1.2.7-heomdal.patch => nfs-utils-1.2.7-heimdal.patch} (100%) delete mode 100644 net-fs/nfs-utils/files/nfs-utils-1.2.7-libio.patch delete mode 100644 net-fs/nfs-utils/files/nfs-utils-1.2.7-nfsiostat-python3.patch rename net-fs/nfs-utils/files/{nfs-utils-1.2.6-cross-build.patch => nfs-utils-1.2.8-cross-build.patch} (69%) create mode 100644 net-fs/nfs-utils/files/nfsd.service create mode 100644 net-fs/nfs-utils/files/rpc-mountd.service create mode 100644 net-fs/nfs-utils/files/rpc-statd.service rename net-fs/nfs-utils/{nfs-utils-1.2.7.ebuild => nfs-utils-1.2.8-r1.ebuild} (83%) diff --git a/net-fs/nfs-utils/ChangeLog b/net-fs/nfs-utils/ChangeLog index e7b160b2..67ee3185 100644 --- a/net-fs/nfs-utils/ChangeLog +++ b/net-fs/nfs-utils/ChangeLog @@ -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 + +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 nfs-utils-1.2.6.ebuild, nfs-utils-1.2.7.ebuild: Force sqlite test to work even when cross-compiling #465576 by Dennis diff --git a/net-fs/nfs-utils/Manifest b/net-fs/nfs-utils/Manifest index 832411d9..1e83471d 100644 --- a/net-fs/nfs-utils/Manifest +++ b/net-fs/nfs-utils/Manifest @@ -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 diff --git a/net-fs/nfs-utils/files/0001-mountd-Fix-is_subdirectory-again.patch b/net-fs/nfs-utils/files/0001-mountd-Fix-is_subdirectory-again.patch new file mode 100644 index 00000000..e6f372b7 --- /dev/null +++ b/net-fs/nfs-utils/files/0001-mountd-Fix-is_subdirectory-again.patch @@ -0,0 +1,81 @@ +From 23d3980b6cfea4e9056d9b7b81e48b4fefc645e0 Mon Sep 17 00:00:00 2001 +From: NeilBrown +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 +Signed-off-by: NeilBrown +Signed-off-by: Steve Dickson +--- + 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 + diff --git a/net-fs/nfs-utils/files/0001-statd-exit-if-a-statd-is-already-running.patch b/net-fs/nfs-utils/files/0001-statd-exit-if-a-statd-is-already-running.patch new file mode 100644 index 00000000..4e8be2fd --- /dev/null +++ b/net-fs/nfs-utils/files/0001-statd-exit-if-a-statd-is-already-running.patch @@ -0,0 +1,126 @@ +From 342446a4a624d4ee8254af859bb7f1de6d268679 Mon Sep 17 00:00:00 2001 +From: Weston Andros Adamson +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 +Signed-off-by: Weston Andros Adamson +Signed-off-by: Steve Dickson +--- + 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 + diff --git a/net-fs/nfs-utils/files/nfs-utils-1.2.7-heomdal.patch b/net-fs/nfs-utils/files/nfs-utils-1.2.7-heimdal.patch similarity index 100% rename from net-fs/nfs-utils/files/nfs-utils-1.2.7-heomdal.patch rename to net-fs/nfs-utils/files/nfs-utils-1.2.7-heimdal.patch diff --git a/net-fs/nfs-utils/files/nfs-utils-1.2.7-libio.patch b/net-fs/nfs-utils/files/nfs-utils-1.2.7-libio.patch deleted file mode 100644 index 056ae7db..00000000 --- a/net-fs/nfs-utils/files/nfs-utils-1.2.7-libio.patch +++ /dev/null @@ -1,50 +0,0 @@ -https://bugs.gentoo.org/459200 - -From 2d9fb08c588970b842ce2a609088079181e6aafb Mon Sep 17 00:00:00 2001 -From: Mike Frysinger -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 ---- - 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 -+#endif -+ -+#ifdef HAVE_LIBIO_H - #include -+#endif - #include - #include - #include --- -1.8.1.2 - diff --git a/net-fs/nfs-utils/files/nfs-utils-1.2.7-nfsiostat-python3.patch b/net-fs/nfs-utils/files/nfs-utils-1.2.7-nfsiostat-python3.patch deleted file mode 100644 index 994fc726..00000000 --- a/net-fs/nfs-utils/files/nfs-utils-1.2.7-nfsiostat-python3.patch +++ /dev/null @@ -1,287 +0,0 @@ -From b0e3dc0c1332884a82f509f98434abd78358c7ed Mon Sep 17 00:00:00 2001 -From: Mike Frysinger -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 ---- - 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 - -@@ -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 [ [ ] ] [ ] [ ]", - 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 value %s' % arg -+ print('Illegal value %s' % arg) - return - if interval > 0: - interval_seen = True - else: -- print 'Illegal value %s' % arg -+ print('Illegal value %s' % arg) - return - elif not count_seen: - try: - count = int(arg) - except: -- print 'Ilegal value %s' % arg -+ print('Ilegal value %s' % arg) - return - if count > 0: - count_seen = True - else: -- print 'Illegal value %s' % arg -+ print('Illegal 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 - diff --git a/net-fs/nfs-utils/files/nfs-utils-1.2.6-cross-build.patch b/net-fs/nfs-utils/files/nfs-utils-1.2.8-cross-build.patch similarity index 69% rename from net-fs/nfs-utils/files/nfs-utils-1.2.6-cross-build.patch rename to net-fs/nfs-utils/files/nfs-utils-1.2.8-cross-build.patch index 2becf943..7317115a 100644 --- a/net-fs/nfs-utils/files/nfs-utils-1.2.6-cross-build.patch +++ b/net-fs/nfs-utils/files/nfs-utils-1.2.8-cross-build.patch @@ -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 diff --git a/net-fs/nfs-utils/files/nfsd.service b/net-fs/nfs-utils/files/nfsd.service new file mode 100644 index 00000000..80bfacbb --- /dev/null +++ b/net-fs/nfs-utils/files/nfsd.service @@ -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 diff --git a/net-fs/nfs-utils/files/rpc-mountd.service b/net-fs/nfs-utils/files/rpc-mountd.service new file mode 100644 index 00000000..0511dde8 --- /dev/null +++ b/net-fs/nfs-utils/files/rpc-mountd.service @@ -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 diff --git a/net-fs/nfs-utils/files/rpc-statd.service b/net-fs/nfs-utils/files/rpc-statd.service new file mode 100644 index 00000000..103b6fee --- /dev/null +++ b/net-fs/nfs-utils/files/rpc-statd.service @@ -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 diff --git a/net-fs/nfs-utils/nfs-utils-1.2.7.ebuild b/net-fs/nfs-utils/nfs-utils-1.2.8-r1.ebuild similarity index 83% rename from net-fs/nfs-utils/nfs-utils-1.2.7.ebuild rename to net-fs/nfs-utils/nfs-utils-1.2.8-r1.ebuild index 4d960e2e..d57b1d16 100644 --- a/net-fs/nfs-utils/nfs-utils-1.2.7.ebuild +++ b/net-fs/nfs-utils/nfs-utils-1.2.8-r1.ebuild @@ -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() {