summaryrefslogtreecommitdiff
path: root/net-libs/libtirpc
diff options
context:
space:
mode:
authorV3n3RiX <venerix@redcorelinux.org>2017-10-09 18:53:29 +0100
committerV3n3RiX <venerix@redcorelinux.org>2017-10-09 18:53:29 +0100
commit4f2d7949f03e1c198bc888f2d05f421d35c57e21 (patch)
treeba5f07bf3f9d22d82e54a462313f5d244036c768 /net-libs/libtirpc
reinit the tree, so we can have metadata
Diffstat (limited to 'net-libs/libtirpc')
-rw-r--r--net-libs/libtirpc/Manifest31
-rw-r--r--net-libs/libtirpc/files/libtirpc-0.2.5-stdarg.patch29
-rw-r--r--net-libs/libtirpc/files/libtirpc-1.0.1-CVE-2017-8779.patch255
-rw-r--r--net-libs/libtirpc/files/libtirpc-1.0.1_add-des_impl-c-7f6bb9a3467a.patch29
-rw-r--r--net-libs/libtirpc/files/libtirpc-1.0.1_ifdef-out-yp-headers-742bbdff6ddf.patch30
-rw-r--r--net-libs/libtirpc/files/libtirpc-1.0.1_remove-des-deps-to-glibc-503ac2e9fa56.patch43
-rw-r--r--net-libs/libtirpc/files/libtirpc-1.0.1_remove-nis-h-dep-5f00f8c78c5d.patch137
-rw-r--r--net-libs/libtirpc/files/libtirpc-1.0.1_uclibc-dont-use-struct-rpcent.patch51
-rw-r--r--net-libs/libtirpc/files/libtirpc-1.0.1_uclibc-use-memset-not-bzero.patch21
-rw-r--r--net-libs/libtirpc/files/libtirpc-1.0.2-bcopy-to-memmove.patch49
-rw-r--r--net-libs/libtirpc/files/libtirpc-1.0.2-bzero-to-memset.patch36
-rw-r--r--net-libs/libtirpc/files/libtirpc-1.0.2-exports.patch17
-rw-r--r--net-libs/libtirpc/files/libtirpc-1.0.2-glibc-2.26.patch12
-rw-r--r--net-libs/libtirpc/libtirpc-0.2.4-r1.ebuild49
-rw-r--r--net-libs/libtirpc/libtirpc-0.2.4-r2.ebuild60
-rw-r--r--net-libs/libtirpc/libtirpc-0.2.5.ebuild64
-rw-r--r--net-libs/libtirpc/libtirpc-0.3.1.ebuild60
-rw-r--r--net-libs/libtirpc/libtirpc-1.0.1-r1.ebuild60
-rw-r--r--net-libs/libtirpc/libtirpc-1.0.1-r2.ebuild67
-rw-r--r--net-libs/libtirpc/libtirpc-1.0.1-r3.ebuild68
-rw-r--r--net-libs/libtirpc/libtirpc-1.0.1.ebuild55
-rw-r--r--net-libs/libtirpc/libtirpc-1.0.2-r1.ebuild64
-rw-r--r--net-libs/libtirpc/libtirpc-1.0.2.ebuild63
-rw-r--r--net-libs/libtirpc/metadata.xml11
24 files changed, 1361 insertions, 0 deletions
diff --git a/net-libs/libtirpc/Manifest b/net-libs/libtirpc/Manifest
new file mode 100644
index 000000000000..b928b0b1a75a
--- /dev/null
+++ b/net-libs/libtirpc/Manifest
@@ -0,0 +1,31 @@
+AUX libtirpc-0.2.5-stdarg.patch 667 SHA256 2b31b1148af9d96c9a9e6f609c0b5b03424954d6251c18d64b6119afd8afa6f7 SHA512 2197f8c2ed3b4dbfc54ee37e973a6e275d19c6dde5d066b9ce45beecdbb17c9e620d7c6f0997b7ebfeb2bd1741327028a793b34edd94d59a89c8b36ac102b025 WHIRLPOOL 90d4e88c18f0d93ab8dfef4981377c2a6df42ff90b70049d07e203e7b66a5087910fe501cf9e1b93782eb25a8b3a8680c03287ccc563b838f517e5d1524b12c5
+AUX libtirpc-1.0.1-CVE-2017-8779.patch 7032 SHA256 091d3ff2b53a3ef9b20c61af19192434f652e528070fd57c706bce2988de0279 SHA512 b7c97f6f202cd57c988ff026e2805011942f470c71fdfd81a2647a0e197386db937b022f0056e6ad106bb143c36323835748965b4915a293b89efba3cd171c84 WHIRLPOOL 44f65f1fadec76e742641a3ec7c22f90f54309c3b9e6f1076b2de1dd14aaf0012c323d3c92599775b43446405253cf1375d9c4c3d5bf26d8de1224b42a552ead
+AUX libtirpc-1.0.1_add-des_impl-c-7f6bb9a3467a.patch 1207 SHA256 1e65651a135c7c10a5ffae19ff176eb479b125b252ff4222dcd6797d583d9163 SHA512 dd6c61bc885dace248bf69d9fa15d79cb8a73530c434f834a3c53ad5d3f5598b0b04786d9d708b25c53202d2421c0888e00b9c1a260abcafa776f25cef694c19 WHIRLPOOL d436222fa75dbf26346f870aedafb1326d61c883ba90a563e99e2d56b4fc3521296cfa7bb554bbca238dea37c5dde72de802a85cfd5193da330b4c8f6a6c5fd7
+AUX libtirpc-1.0.1_ifdef-out-yp-headers-742bbdff6ddf.patch 821 SHA256 96ffc42c9c7acf1b95b39f76f817caf9f2fd555de3fca593390154e1327e9777 SHA512 3733c1e88acf91f30ec647f83f6ad44d1dbe087e89996db7cd4197b7eed7924443fb4854bfb4c0e5ce0e2c7b3569e2af444a1e6a8a4139ea3c408e9838419b88 WHIRLPOOL 3a9cc31c4e2eb8dfbf1e3a44caabcc90c52d0d2c30088f2120ee549060d66923f5170b6b3129598d1c70886735b7f69e65fa7142db4c07331ece3487b3298ac2
+AUX libtirpc-1.0.1_remove-des-deps-to-glibc-503ac2e9fa56.patch 1232 SHA256 fffab75fc00ebcbb1d860d1869d9e525ede9aca68f46e40c9d94b2ee0e563d2d SHA512 24a5012481eae9d8152267287546b390edb0fe9925bc043df50a3b82057517487e8a1b94782adc9e14ac1e72ded9b1cb44dd25e09c9a5451053a26adb3a821a2 WHIRLPOOL e210f5417d74b8589c7898f319c91e5c3c6244e703fa9fbf3fb089ec63f2694f1f6acc082a30d2f3a55131e4b0d69708ac5c2785ae5b13651217d8047adba345
+AUX libtirpc-1.0.1_remove-nis-h-dep-5f00f8c78c5d.patch 4015 SHA256 c185fd419d636a0992813b3f674f9a847ba28c56a6236246f36f39d29214d6d9 SHA512 fcd76037bd78e298a261f288b51de6ff25d362c40a416e86ed2c766b3c106339e4633e92546b96b727d38d14c85566250be25b82c1093c470e8c8cb1c86faafa WHIRLPOOL b1d4d4f58f6dadad87680ef1a4f7e5b67035f9e36dff24d1609430c4de31c6bb3e169cb052f982198409a0521d7e2ee910df4e395709b05fa0a511e1580666ba
+AUX libtirpc-1.0.1_uclibc-dont-use-struct-rpcent.patch 2010 SHA256 a747da94e2a7d5dc260ddcd5d52a3a787f4dc78076e6f2d8444a42e997a00e70 SHA512 0486bd17ab67aaeba1ed536c20297f78091c2b5badb7ce41cd0cfdb0c6139e8501b827d40798b03f114e2bf03f4c98a684aa43f47cc5a1953f8245292a0f036a WHIRLPOOL bd3f9938903e4d70ce0710c608d7da85deb2f12f9a315809b5c127428869ffbce802ae5bce99aba531fb0399d5214345379478c5f7e463dcacb5dfeb33f4d8b7
+AUX libtirpc-1.0.1_uclibc-use-memset-not-bzero.patch 759 SHA256 177266c0e4658af8b5b6c1c0ff7ce7fca08410a5e1acf2c395a341e6a6de84a1 SHA512 122a1ae24fc08ede5580d31749f7e1cfc21266b628e2f82936feef856b2ea5b0da99f60291e5bdf87d87c5711891515b0c6bdc351b0bd46f97192ab215e5f25d WHIRLPOOL ebd781854a5b7d7f1fcd84e595d42c8394a5b9f7c8651c9750fe4fbdf5fd884e84ca081957f433d2aecb12bd5b5e9f9f0b81bb177fa8eae180c3d63344d4ed11
+AUX libtirpc-1.0.2-bcopy-to-memmove.patch 2226 SHA256 c10ee40829a294facee2db686cd03bbfd0ea798b253ccbb93e062896de71c864 SHA512 221c85c47ec56edbdb4ce95e0f67680050b8d9f666c6795ceef7f7720acdf05a535e4afbcdc4e2e5eaeb6edc04bd43f65486df772ad2a0c87987d1c204661f00 WHIRLPOOL 58ec2d8c894276a01f7a3fa4c1db1ee3463b2e9ed4b3bf6ae90f03f38187af6b4abcab8619594013949f46a035afb5e43cec4dbf26baa53ae71edf75b6f1c9e0
+AUX libtirpc-1.0.2-bzero-to-memset.patch 1587 SHA256 d419e78f2e3a38cd34aa4c375ec1d74e3506875bc46d91cc00febf7ffe64e7a2 SHA512 aaea43a11e02094f9e43640866dffe7ef509362ba169500d6032b088f048eb855a3a7a75f2e7a2c999d6a252cb4b66d970cd8cc76dd0747376cb382b53e43385 WHIRLPOOL dd761551ea8a0693ec51ea2d83d12061a3884f3df15403db424fe8ea89dd99c3945b9282b7ee9b87a0e276e98a4e48fc8ba8cc8e5f4b5172790f7911e87c384e
+AUX libtirpc-1.0.2-exports.patch 424 SHA256 8a1d77f665c3716a028c7006fc4916bf80d4d1937e41a23836fda059fc2dd966 SHA512 66a4925ed0236aea2e181e9a07677dc9f41c287311c9cb02129d17b9a61b6102997258082d38e45d193a0ceb4b8e2bc0b8dfe1610a298bc508c1f5c70c1b466d WHIRLPOOL 190073f621e7aba762ef503559e017fcd653926b55aff88c154bd30dd9d3d74cb705272f87b45e1655cc1b724e437d7d1edcfb9a4c8c7e91b1a6e97c4989596f
+AUX libtirpc-1.0.2-glibc-2.26.patch 276 SHA256 b0b03ab8f7e1847982411013ab46cb1d5a5c81e0d8eb3607cb29aff6b1fcec65 SHA512 67256d618db1330eeb616ade4b79376a600ed2457c03b420fc88b9ba89ea2451c9aac3f48c4967bc5695f10e6d8c895370cc10144ecc53ed0d3810d4cf65265a WHIRLPOOL 5481a51d537bd8e6d04101b6079a6b42e9c567976f2687529d64c0acf41e247457baba9fca0e3c6f3a75ab32235bfbb595bff3c35c25cc90ccbb3d28175ea77e
+DIST libtirpc-0.2.4.tar.bz2 458544 SHA256 45c3e21dfc23a5ba501f9dfc6671678316fdfdb8355a1ec404ae2aa2f81943a1 SHA512 8b7fec13d34ad0ddfa3832f4a4955607d94f6a691fedcc81a98554345f6c6e64d5f289490a10a80600cebf5b53cfad99c0d78007b88f8f2fbc60cbb8680fc87f WHIRLPOOL c12cb4503fc621437ea0c1543abd0ce739bca40e1f77eba1af533456e93c62fb137a0d1e99d815c6026fae4321d90d9a032d7d1e6daeab1531bcb59bc66b746f
+DIST libtirpc-0.2.5.tar.bz2 459094 SHA256 62f9de7c2c8686c568757730e1fef66502a0e00d6cacf33546d0267984e002db SHA512 9f8afa1acb04a2c2c558018f2528f8caaa79994a2af2abeed947f914145872ef72988b241e11925c799db0de9ec51fd9baecd2b08150240b22f91e2e55a45194 WHIRLPOOL a2b4f1c4825f2b774c2290cccd9d552bb7566ec9eb5988d3ab619d7870a907600f67e7af39fbc3e245606db8534f114c990145789c383206d3a9cf96cf043d8c
+DIST libtirpc-0.3.1.tar.bz2 479721 SHA256 a8838fe180deb8a6f6e491ee665325a28dee4100ec6b1f0b86d611dbfe3a2bb8 SHA512 31b0a00a5390e418ab909e02fb67cbe31bef3326ee0105b2d9dc3ed93270a86e30d4cd618335af01be6b4da4bea215c111b9bead0d8d3e225c2e1d1b2f1e76a3 WHIRLPOOL 183f8ef45c381287e33f50c183c5fdb02ccf6e58dc69a80bbf31c46fcf990c422f3971ce40c9f6607a6be0daf015e412633b9e49ff77be41e6b804a21d6fc72c
+DIST libtirpc-1.0.1.tar.bz2 495125 SHA256 5156974f31be7ccbc8ab1de37c4739af6d9d42c87b1d5caf4835dda75fcbb89e SHA512 c9b449e737bc2bd3d56e31e8352f312e89a7ec2a11b73b5ac314e7d82d3b644c611e422b623912453b67b668f86a6de7bb7f18c9495dd15de8e2798ec2ff41c8 WHIRLPOOL cce6a4e69bd634b40d66594a81c23d2044b63eec16d6c96d6fcfaa7f2ca41fb9af99c8e2b964ec12be82682afa4090b218d7e14399fdfc9b32df6c2234bc3c9e
+DIST libtirpc-1.0.2.tar.bz2 509601 SHA256 723c5ce92706cbb601a8db09110df1b4b69391643158f20ff587e20e7c5f90f5 SHA512 6c819019a8e81d8263d3c509b2eee59ba1ef092222c5a0a8d28f004c711afa252097eca7e6b0b919b2d780883dfd9ee7a363df4cee7fd2c9159a065257637cec WHIRLPOOL 59306a645df28cfcfc1bf9e5215c59f0af7b8a01375ccef66c2ded4863e7183afd4b3ae0e7694f3eff78cc88f3978a4fd0c1b3375698fb90b59a08989021ebdc
+DIST libtirpc-glibc-nfs.tar.xz 8948 SHA256 2677cfedf626f3f5a8f6e507aed5bb8f79a7453b589d684dbbc086e755170d83 SHA512 90255bf0a27af16164e0710dd940778609925d473f4343093ff19d98cc4f23023788bf4edf0178eae1961afc0ba8b69b273de95b7d7e2afdb706701d8ba6f7ba WHIRLPOOL 06bcf3fd4e424a86071e5c4ddeb89aa571c862e765aae9382d9f9a55ab72cd1c623490555c1a9bd3380a2d04ecb10fb47a75a7dddf449d4368a1a01617226858
+EBUILD libtirpc-0.2.4-r1.ebuild 1153 SHA256 1d8051f19dcc9548cafae4f263fca76a870d5229c2af1cd9098724c43a27acb4 SHA512 5993683da8f5140e3b7431485cf41fe16aabb844ea4888644dfd2675341cf3ef09c579a1aaa38836a9e7db2e3a5e77c1dd7572f72939e4a028b56c87c8315410 WHIRLPOOL 57365aacb861b94878657bd107e7366d5a3140a2230f5ba52b8ebd73008490409adc0dad83fe5b3b663397536f28408b2dca7c5efea0151a21eb816445f9ad8b
+EBUILD libtirpc-0.2.4-r2.ebuild 1459 SHA256 37111c85fb363c857ba9077424240ba56acc4cfd3e8eb4f1b213d61be094c93a SHA512 67f360dc4ca8016e25cf6c14303710b3a9ad18bb64c142e1c1971bbbf57863a79839d9d38739d6b468c5a719c18e7c1f888ef150fbe4994e43142c60efc27829 WHIRLPOOL 3644f34b19084a70b28bbe719b679f94a48d3305c67b48ab8725d8f105e977045cbf7f219d91da3fcd3ea3e8c0c1636a997367d03732383f85dc1f8fa8d1a307
+EBUILD libtirpc-0.2.5.ebuild 1506 SHA256 cbb53b4ba08df24234a464400b2360069b91822019dd0fe2a7a05e5878a85575 SHA512 ed05ba699a800c4a5ef8030c530ea08413d69a41091e070ee9ae2ebb4ac953f246b06316c4b587da48c39e1ef28b657f5c952ac4a6af16492530dc487b164bc4 WHIRLPOOL c96ab6c85e524f03bdf0cb9357dc6a781376c857c1049f3f88df2bb1b46f8f55e2116fe3ca44058b4fd74411e8251463baa2ec0c1526b95795d7a0d73b980b48
+EBUILD libtirpc-0.3.1.ebuild 1459 SHA256 453aa5d080bf08ddc86ae8dd27bea574756599ab442520d6d8f7b60b19311db3 SHA512 bc67a707b5cc2acb36260aeb5ea16868edc9c78bdba2d54bdaafa01c096c1ecbd34205cfc55e42895e79f5183762bc84b94d47d99aa92cbe436c10101ce01ca1 WHIRLPOOL 071b2c500010d6f86894f70b564e723575fa4c278789fe69a5c8da58b9c0c7c80c1360004931b8eb37a026a06212ab1c2af8ace7e4e45b3f04eb30f805cef4d1
+EBUILD libtirpc-1.0.1-r1.ebuild 1430 SHA256 ca48870a784ec70469da77ace428b8e3081a4e9a8607a15560422314194818aa SHA512 a34cfe1e3b527ee2229cce79aef82c3e8efee5fb5aceb260997932a625e4ffe453ff09ea5b52090e6d45c7065e857d684bfd0f8f8b31394b58c4e2fcd2f1bdd9 WHIRLPOOL 5446351be0f00a5279687916425608e9b42ef6406db1cbd2fb07eb525d19ad3d526c0322c64a6a1cd6bbbdb9f8ac5c0089a61396e7e03ebad46816fa5ce751fc
+EBUILD libtirpc-1.0.1-r2.ebuild 1806 SHA256 4d210c54a776163be8031cd189e4e714350df79210b1200181ee0971c84ff4cf SHA512 e7481fadedabd7abaffd842caec5c675904eaa7831952f51c58a2f9a417bce561d8dd67817c97755a2d1f8971a79e78e4107f1a9b669a62d36cc1ecf35d4475c WHIRLPOOL 7768d9236b74d236891bbb198685cca430465c05b38e6ec931ccb79caf9d43b4bffa7d51c093f526eee591e1de00cdf7da8b1aedbf44eb94e197fdaa4cdc7ff9
+EBUILD libtirpc-1.0.1-r3.ebuild 1800 SHA256 85866973a4da6985132a995961fc0fdbb3e8950fd6af8a7e6140b166b3ec1deb SHA512 4ec32de659a18443beb10475739887d08c7f922ff8c9533ff0898ac2e430785a0502d6e858130469638a80764e89d4d4ef15251011f2efc2a738d025efc8d913 WHIRLPOOL 3b784a1daa5ba6f3583c3aabf9f044a712b5dfa4303c2b6e70bf5f96250ec053d641f6da14aa3ab86ebcaddd914a5ab06f888f4e1805756d1c0984d0e6cc5fba
+EBUILD libtirpc-1.0.1.ebuild 1332 SHA256 3853ace7ed906426ad4c143ac5725d455099f1dc9475cfa18958bbd8789a6582 SHA512 694588932991003e27c95a2d80333624ba866f232324d1605b152d3b48a9486c73cbaa145cd8299c0d3bc61e8002bcfce001d91654f5499466f1092d3a42396f WHIRLPOOL 04a6d31a3b26696bc34c5c510ad5150cc9e8874f134da48d8622f5b47aa40672ae559fbd171f5f437a96c009824f8af9d9db0f26cd712ff921a034bf4a409bc0
+EBUILD libtirpc-1.0.2-r1.ebuild 1636 SHA256 d674b14a2b9bba4bb1a992ac603cd4897e067321cc9a6edbb2de5964636351b3 SHA512 20ec130077184b8e9a1b86ea3d9fa79b21ad8885ceebcaf575dda50b38ebad616e9b8365008e803900004a324942170f498ce2b547ef596999fb7b59377ae529 WHIRLPOOL 531faa01e558e8d0f390e2ae03c6b5eb4ca891ee4514ceebf447a2f6f144d2c2ec514ab6866c3a661848509e981d4460d2fbd84ad534b86e6ece0165b475a644
+EBUILD libtirpc-1.0.2.ebuild 1565 SHA256 3a05578fdd1c861b31f7746cdd2dbd959a69833ffa8c00d1a6a5eb9d3f21ba65 SHA512 39c50eef8a5844a0a7f4327bb5ff04e0bd50fd3c1b01d47e1c56d7c622c8a13eb675ee81108baa80beeb8637be11b665e00b2198c37cc6d5821070973258f572 WHIRLPOOL c92c58ab6aff6e52b591fe3670f85ebe60998e9fedf46da4c73ff078852f6863f4cc30f069bf98d62ec96e505d653ab0ff45cd196ab36796899e22ad7abcd490
+MISC ChangeLog 3619 SHA256 66808f3ec40599ff543cce805e725d0e9d986c06b88d995a21d496016881dddc SHA512 052e389398b2377344603a809f1074ff58c7f4c23ed0fff485e86a42506d3fab02dc5bef607907c30161692e3606e2f5f0630e5676f64f38b91de95cadbba259 WHIRLPOOL f28a3b6934034a6b620ae97cae64e833011e30326d8a96e6b1581fdcd11b5a147e59ace3f69b1fb4375e7bca6cc901f868b76e616cb5c2e3db47ff3c3a895b62
+MISC ChangeLog-2015 7643 SHA256 8e9dc2f8d3f72cdc3e8b5546cf3f2a84bf8ffe18945d1e890fecb4ec56fa11f6 SHA512 dd49b196ee86b22d8de0e424b9139893a7f4f78faed33c3a7b4397e4bee11d95adfad9cb7af497ea6277e770ccb4f14d735af9d257b87aaa8e1cd87603414400 WHIRLPOOL dc837e6a157142e0661512cc03069feb411dfc07a5e7c6da2826e47adf4bd4263c86ba48712ef3ce0bcad5f05dc34fc9a3c6875f9b553a64e21725b551761e5f
+MISC metadata.xml 335 SHA256 02e9487e791e2d6aa99e74025dd90a6c54d86c73d530c96316e93f7552e1439a SHA512 d6dd857293827907e545dc6e8631d06682d20e13442f8ce6cbd2e2a789d885c8a788f4ed1d062a8c54c4165d22eb096279d4c2f598e462a57faaf8bec1e9777b WHIRLPOOL 6a802fc6b1fdd5bc815c4d2d41de0cba5cff351cdd1fa80021c02233b3facf21674d94ec7b822c2d514e5e1c721cf3ae2b88c885afdce8a7b60d2e63da71183c
diff --git a/net-libs/libtirpc/files/libtirpc-0.2.5-stdarg.patch b/net-libs/libtirpc/files/libtirpc-0.2.5-stdarg.patch
new file mode 100644
index 000000000000..8006de39e4dc
--- /dev/null
+++ b/net-libs/libtirpc/files/libtirpc-0.2.5-stdarg.patch
@@ -0,0 +1,29 @@
+From d26607bade0893fe8652e1a0983f9fae59c64649 Mon Sep 17 00:00:00 2001
+From: Mike Frysinger <vapier@gentoo.org>
+Date: Tue, 12 Aug 2014 03:11:41 -0400
+Subject: [PATCH libtirpc] include stdarg.h when used
+
+The debug.h header uses va_list but doesn't include stdarg.h which
+can lead to random build failures.
+
+Signed-off-by: Mike Frysinger <vapier@gentoo.org>
+---
+ src/debug.h | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/src/debug.h b/src/debug.h
+index afc8d57..c971ac3 100644
+--- a/src/debug.h
++++ b/src/debug.h
+@@ -21,6 +21,8 @@
+
+ #ifndef _DEBUG_H
+ #define _DEBUG_H
++
++#include <stdarg.h>
+ #include <syslog.h>
+
+ extern int libtirpc_debug_level;
+--
+2.0.0
+
diff --git a/net-libs/libtirpc/files/libtirpc-1.0.1-CVE-2017-8779.patch b/net-libs/libtirpc/files/libtirpc-1.0.1-CVE-2017-8779.patch
new file mode 100644
index 000000000000..91a50fad6497
--- /dev/null
+++ b/net-libs/libtirpc/files/libtirpc-1.0.1-CVE-2017-8779.patch
@@ -0,0 +1,255 @@
+diff --git a/src/rpc_generic.c b/src/rpc_generic.c
+index 2f09a8f..589cbd5 100644
+--- a/src/rpc_generic.c
++++ b/src/rpc_generic.c
+@@ -615,6 +615,9 @@ __rpc_taddr2uaddr_af(int af, const struct netbuf *nbuf)
+
+ switch (af) {
+ case AF_INET:
++ if (nbuf->len < sizeof(*sin)) {
++ return NULL;
++ }
+ sin = nbuf->buf;
+ if (inet_ntop(af, &sin->sin_addr, namebuf, sizeof namebuf)
+ == NULL)
+@@ -626,6 +629,9 @@ __rpc_taddr2uaddr_af(int af, const struct netbuf *nbuf)
+ break;
+ #ifdef INET6
+ case AF_INET6:
++ if (nbuf->len < sizeof(*sin6)) {
++ return NULL;
++ }
+ sin6 = nbuf->buf;
+ if (inet_ntop(af, &sin6->sin6_addr, namebuf6, sizeof namebuf6)
+ == NULL)
+@@ -667,6 +673,8 @@ __rpc_uaddr2taddr_af(int af, const char *uaddr)
+
+ port = 0;
+ sin = NULL;
++ if (uaddr == NULL)
++ return NULL;
+ addrstr = strdup(uaddr);
+ if (addrstr == NULL)
+ return NULL;
+diff --git a/src/rpcb_prot.c b/src/rpcb_prot.c
+index 43fd385..a923c8e 100644
+--- a/src/rpcb_prot.c
++++ b/src/rpcb_prot.c
+@@ -41,6 +41,7 @@
+ #include <rpc/types.h>
+ #include <rpc/xdr.h>
+ #include <rpc/rpcb_prot.h>
++#include "rpc_com.h"
+
+ bool_t
+ xdr_rpcb(xdrs, objp)
+@@ -53,13 +54,13 @@ xdr_rpcb(xdrs, objp)
+ if (!xdr_u_int32_t(xdrs, &objp->r_vers)) {
+ return (FALSE);
+ }
+- if (!xdr_string(xdrs, &objp->r_netid, (u_int)~0)) {
++ if (!xdr_string(xdrs, &objp->r_netid, RPC_MAXDATASIZE)) {
+ return (FALSE);
+ }
+- if (!xdr_string(xdrs, &objp->r_addr, (u_int)~0)) {
++ if (!xdr_string(xdrs, &objp->r_addr, RPC_MAXDATASIZE)) {
+ return (FALSE);
+ }
+- if (!xdr_string(xdrs, &objp->r_owner, (u_int)~0)) {
++ if (!xdr_string(xdrs, &objp->r_owner, RPC_MAXDATASIZE)) {
+ return (FALSE);
+ }
+ return (TRUE);
+@@ -159,19 +160,19 @@ xdr_rpcb_entry(xdrs, objp)
+ XDR *xdrs;
+ rpcb_entry *objp;
+ {
+- if (!xdr_string(xdrs, &objp->r_maddr, (u_int)~0)) {
++ if (!xdr_string(xdrs, &objp->r_maddr, RPC_MAXDATASIZE)) {
+ return (FALSE);
+ }
+- if (!xdr_string(xdrs, &objp->r_nc_netid, (u_int)~0)) {
++ if (!xdr_string(xdrs, &objp->r_nc_netid, RPC_MAXDATASIZE)) {
+ return (FALSE);
+ }
+ if (!xdr_u_int32_t(xdrs, &objp->r_nc_semantics)) {
+ return (FALSE);
+ }
+- if (!xdr_string(xdrs, &objp->r_nc_protofmly, (u_int)~0)) {
++ if (!xdr_string(xdrs, &objp->r_nc_protofmly, RPC_MAXDATASIZE)) {
+ return (FALSE);
+ }
+- if (!xdr_string(xdrs, &objp->r_nc_proto, (u_int)~0)) {
++ if (!xdr_string(xdrs, &objp->r_nc_proto, RPC_MAXDATASIZE)) {
+ return (FALSE);
+ }
+ return (TRUE);
+@@ -292,7 +293,7 @@ xdr_rpcb_rmtcallres(xdrs, p)
+ bool_t dummy;
+ struct r_rpcb_rmtcallres *objp = (struct r_rpcb_rmtcallres *)(void *)p;
+
+- if (!xdr_string(xdrs, &objp->addr, (u_int)~0)) {
++ if (!xdr_string(xdrs, &objp->addr, RPC_MAXDATASIZE)) {
+ return (FALSE);
+ }
+ if (!xdr_u_int(xdrs, &objp->results.results_len)) {
+@@ -312,6 +313,11 @@ xdr_netbuf(xdrs, objp)
+ if (!xdr_u_int32_t(xdrs, (u_int32_t *) &objp->maxlen)) {
+ return (FALSE);
+ }
++
++ if (objp->maxlen > RPC_MAXDATASIZE) {
++ return (FALSE);
++ }
++
+ dummy = xdr_bytes(xdrs, (char **)&(objp->buf),
+ (u_int *)&(objp->len), objp->maxlen);
+ return (dummy);
+diff --git a/src/rpcb_st_xdr.c b/src/rpcb_st_xdr.c
+index 08db745..28e6a48 100644
+--- a/src/rpcb_st_xdr.c
++++ b/src/rpcb_st_xdr.c
+@@ -37,6 +37,7 @@
+
+
+ #include <rpc/rpc.h>
++#include "rpc_com.h"
+
+ /* Link list of all the stats about getport and getaddr */
+
+@@ -58,7 +59,7 @@ xdr_rpcbs_addrlist(xdrs, objp)
+ if (!xdr_int(xdrs, &objp->failure)) {
+ return (FALSE);
+ }
+- if (!xdr_string(xdrs, &objp->netid, (u_int)~0)) {
++ if (!xdr_string(xdrs, &objp->netid, RPC_MAXDATASIZE)) {
+ return (FALSE);
+ }
+
+@@ -109,7 +110,7 @@ xdr_rpcbs_rmtcalllist(xdrs, objp)
+ IXDR_PUT_INT32(buf, objp->failure);
+ IXDR_PUT_INT32(buf, objp->indirect);
+ }
+- if (!xdr_string(xdrs, &objp->netid, (u_int)~0)) {
++ if (!xdr_string(xdrs, &objp->netid, RPC_MAXDATASIZE)) {
+ return (FALSE);
+ }
+ if (!xdr_pointer(xdrs, (char **)&objp->next,
+@@ -147,7 +148,7 @@ xdr_rpcbs_rmtcalllist(xdrs, objp)
+ objp->failure = (int)IXDR_GET_INT32(buf);
+ objp->indirect = (int)IXDR_GET_INT32(buf);
+ }
+- if (!xdr_string(xdrs, &objp->netid, (u_int)~0)) {
++ if (!xdr_string(xdrs, &objp->netid, RPC_MAXDATASIZE)) {
+ return (FALSE);
+ }
+ if (!xdr_pointer(xdrs, (char **)&objp->next,
+@@ -175,7 +176,7 @@ xdr_rpcbs_rmtcalllist(xdrs, objp)
+ if (!xdr_int(xdrs, &objp->indirect)) {
+ return (FALSE);
+ }
+- if (!xdr_string(xdrs, &objp->netid, (u_int)~0)) {
++ if (!xdr_string(xdrs, &objp->netid, RPC_MAXDATASIZE)) {
+ return (FALSE);
+ }
+ if (!xdr_pointer(xdrs, (char **)&objp->next,
+diff --git a/src/xdr.c b/src/xdr.c
+index f3fb9ad..b9a1558 100644
+--- a/src/xdr.c
++++ b/src/xdr.c
+@@ -42,8 +42,10 @@
+ #include <stdlib.h>
+ #include <string.h>
+
++#include <rpc/rpc.h>
+ #include <rpc/types.h>
+ #include <rpc/xdr.h>
++#include <rpc/rpc_com.h>
+
+ typedef quad_t longlong_t; /* ANSI long long type */
+ typedef u_quad_t u_longlong_t; /* ANSI unsigned long long type */
+@@ -53,7 +55,6 @@ typedef u_quad_t u_longlong_t; /* ANSI unsigned long long type */
+ */
+ #define XDR_FALSE ((long) 0)
+ #define XDR_TRUE ((long) 1)
+-#define LASTUNSIGNED ((u_int) 0-1)
+
+ /*
+ * for unit alignment
+@@ -629,6 +630,7 @@ xdr_bytes(xdrs, cpp, sizep, maxsize)
+ {
+ char *sp = *cpp; /* sp is the actual string pointer */
+ u_int nodesize;
++ bool_t ret, allocated = FALSE;
+
+ /*
+ * first deal with the length since xdr bytes are counted
+@@ -652,6 +654,7 @@ xdr_bytes(xdrs, cpp, sizep, maxsize)
+ }
+ if (sp == NULL) {
+ *cpp = sp = mem_alloc(nodesize);
++ allocated = TRUE;
+ }
+ if (sp == NULL) {
+ warnx("xdr_bytes: out of memory");
+@@ -660,7 +663,14 @@ xdr_bytes(xdrs, cpp, sizep, maxsize)
+ /* FALLTHROUGH */
+
+ case XDR_ENCODE:
+- return (xdr_opaque(xdrs, sp, nodesize));
++ ret = xdr_opaque(xdrs, sp, nodesize);
++ if ((xdrs->x_op == XDR_DECODE) && (ret == FALSE)) {
++ if (allocated == TRUE) {
++ free(sp);
++ *cpp = NULL;
++ }
++ }
++ return (ret);
+
+ case XDR_FREE:
+ if (sp != NULL) {
+@@ -754,6 +764,7 @@ xdr_string(xdrs, cpp, maxsize)
+ char *sp = *cpp; /* sp is the actual string pointer */
+ u_int size;
+ u_int nodesize;
++ bool_t ret, allocated = FALSE;
+
+ /*
+ * first deal with the length since xdr strings are counted-strings
+@@ -793,8 +804,10 @@ xdr_string(xdrs, cpp, maxsize)
+ switch (xdrs->x_op) {
+
+ case XDR_DECODE:
+- if (sp == NULL)
++ if (sp == NULL) {
+ *cpp = sp = mem_alloc(nodesize);
++ allocated = TRUE;
++ }
+ if (sp == NULL) {
+ warnx("xdr_string: out of memory");
+ return (FALSE);
+@@ -803,7 +816,14 @@ xdr_string(xdrs, cpp, maxsize)
+ /* FALLTHROUGH */
+
+ case XDR_ENCODE:
+- return (xdr_opaque(xdrs, sp, size));
++ ret = xdr_opaque(xdrs, sp, size);
++ if ((xdrs->x_op == XDR_DECODE) && (ret == FALSE)) {
++ if (allocated == TRUE) {
++ free(sp);
++ *cpp = NULL;
++ }
++ }
++ return (ret);
+
+ case XDR_FREE:
+ mem_free(sp, nodesize);
+@@ -823,7 +843,7 @@ xdr_wrapstring(xdrs, cpp)
+ XDR *xdrs;
+ char **cpp;
+ {
+- return xdr_string(xdrs, cpp, LASTUNSIGNED);
++ return xdr_string(xdrs, cpp, RPC_MAXDATASIZE);
+ }
+
+ /*
diff --git a/net-libs/libtirpc/files/libtirpc-1.0.1_add-des_impl-c-7f6bb9a3467a.patch b/net-libs/libtirpc/files/libtirpc-1.0.1_add-des_impl-c-7f6bb9a3467a.patch
new file mode 100644
index 000000000000..a62f23d87e94
--- /dev/null
+++ b/net-libs/libtirpc/files/libtirpc-1.0.1_add-des_impl-c-7f6bb9a3467a.patch
@@ -0,0 +1,29 @@
+From: Thorsten Kukuk <kukuk@thkukuk.de>
+Date: Mon, 4 Apr 2016 13:48:04 +0000 (-0400)
+Subject: Compile des_crypt.c and des_impl.c
+X-Git-Tag: libtirpc-1-0-2-rc3~1
+X-Git-Url: http://git.linux-nfs.org/?p=steved%2Flibtirpc.git;a=commitdiff_plain;h=7f6bb9a3467a57caf43425d213a06aeb7870086b
+
+Compile des_crypt.c and des_impl.c
+
+Add des_impl.c to become independent of deprecated functions of glibc
+
+Fixes: f17b44048003 ('Revert commit c0547c56dafb')
+Signed-off-by: Thorsten Kukuk <kukuk@thkukuk.de>
+Signed-off-by: Steve Dickson <steved@redhat.com>
+---
+
+diff --git a/src/Makefile.am b/src/Makefile.am
+index e4ed8aa..fba2aa4 100644
+--- a/src/Makefile.am
++++ b/src/Makefile.am
+@@ -24,7 +24,7 @@ libtirpc_la_SOURCES = auth_none.c auth_unix.c authunix_prot.c bindresvport.c cln
+ rpcb_st_xdr.c svc.c svc_auth.c svc_dg.c svc_auth_unix.c svc_auth_none.c \
+ svc_auth_des.c \
+ svc_generic.c svc_raw.c svc_run.c svc_simple.c svc_vc.c getpeereid.c \
+- auth_time.c auth_des.c authdes_prot.c debug.c
++ auth_time.c auth_des.c authdes_prot.c debug.c des_crypt.c des_impl.c
+
+ ## XDR
+ libtirpc_la_SOURCES += xdr.c xdr_rec.c xdr_array.c xdr_float.c xdr_mem.c xdr_reference.c xdr_stdio.c xdr_sizeof.c
+
diff --git a/net-libs/libtirpc/files/libtirpc-1.0.1_ifdef-out-yp-headers-742bbdff6ddf.patch b/net-libs/libtirpc/files/libtirpc-1.0.1_ifdef-out-yp-headers-742bbdff6ddf.patch
new file mode 100644
index 000000000000..481ace7e6fcd
--- /dev/null
+++ b/net-libs/libtirpc/files/libtirpc-1.0.1_ifdef-out-yp-headers-742bbdff6ddf.patch
@@ -0,0 +1,30 @@
+From: Thorsten Kukuk <kukuk@thkukuk.de>
+Date: Mon, 4 Apr 2016 13:37:32 +0000 (-0400)
+Subject: getpublickey.c: ifdef out yp headers
+X-Git-Tag: libtirpc-1-0-2-rc3~3
+X-Git-Url: http://git.linux-nfs.org/?p=steved%2Flibtirpc.git;a=commitdiff_plain;h=742bbdff6ddff4dde0d610a842cd8ac0408af0a0
+
+getpublickey.c: ifdef out yp headers
+
+If we don't compile in YP support, don't include YP
+
+Signed-off-by: Thorsten Kukuk <kukuk@thkukuk.de>
+Signed-off-by: Steve Dickson <steved@redhat.com>
+---
+
+diff --git a/src/getpublickey.c b/src/getpublickey.c
+index 764a5f9..8cf4dc2 100644
+--- a/src/getpublickey.c
++++ b/src/getpublickey.c
+@@ -38,8 +38,10 @@
+ #include <pwd.h>
+ #include <rpc/rpc.h>
+ #include <rpc/key_prot.h>
++#ifdef YP
+ #include <rpcsvc/yp_prot.h>
+ #include <rpcsvc/ypclnt.h>
++#endif
+ #include <string.h>
+ #include <stdlib.h>
+
+
diff --git a/net-libs/libtirpc/files/libtirpc-1.0.1_remove-des-deps-to-glibc-503ac2e9fa56.patch b/net-libs/libtirpc/files/libtirpc-1.0.1_remove-des-deps-to-glibc-503ac2e9fa56.patch
new file mode 100644
index 000000000000..0ef15290ea14
--- /dev/null
+++ b/net-libs/libtirpc/files/libtirpc-1.0.1_remove-des-deps-to-glibc-503ac2e9fa56.patch
@@ -0,0 +1,43 @@
+From: Thorsten Kukuk <kukuk@thkukuk.de>
+Date: Mon, 4 Apr 2016 13:51:15 +0000 (-0400)
+Subject: Remove des*.c dependencies to glibc
+X-Git-Tag: libtirpc-1-0-2-rc3
+X-Git-Url: http://git.linux-nfs.org/?p=steved%2Flibtirpc.git;a=commitdiff_plain;h=503ac2e9fa569d95e366766202a7ca840e28b28a
+
+Remove des*.c dependencies to glibc
+
+Our des_impl.c has dependencies to glibc header files
+and different arguments then our header file has.
+Bring our own code in sync.
+
+Signed-off-by: Thorsten Kukuk <kukuk@thkukuk.de>
+Signed-off-by: Steve Dickson <steved@redhat.com>
+---
+
+diff --git a/src/des_impl.c b/src/des_impl.c
+index c5b7ed6..9dbccaf 100644
+--- a/src/des_impl.c
++++ b/src/des_impl.c
+@@ -6,7 +6,8 @@
+ /* see <http://www.gnu.org/licenses/> to obtain a copy. */
+ #include <string.h>
+ #include <stdint.h>
+-#include <rpc/rpc_des.h>
++#include <sys/types.h>
++#include <rpc/des.h>
+
+
+ static const uint32_t des_SPtrans[8][64] =
+diff --git a/tirpc/rpc/des.h b/tirpc/rpc/des.h
+index d2881ad..018aa48 100644
+--- a/tirpc/rpc/des.h
++++ b/tirpc/rpc/des.h
+@@ -82,6 +82,6 @@ struct desparams {
+ /*
+ * Software DES.
+ */
+-extern int _des_crypt( char *, int, struct desparams * );
++extern int _des_crypt( char *, unsigned, struct desparams * );
+
+ #endif
+
diff --git a/net-libs/libtirpc/files/libtirpc-1.0.1_remove-nis-h-dep-5f00f8c78c5d.patch b/net-libs/libtirpc/files/libtirpc-1.0.1_remove-nis-h-dep-5f00f8c78c5d.patch
new file mode 100644
index 000000000000..a8ad182f76b4
--- /dev/null
+++ b/net-libs/libtirpc/files/libtirpc-1.0.1_remove-nis-h-dep-5f00f8c78c5d.patch
@@ -0,0 +1,137 @@
+From: Thorsten Kukuk <kukuk@thkukuk.de>
+Date: Mon, 4 Apr 2016 13:44:19 +0000 (-0400)
+Subject: Remove dependency to nis.h
+X-Git-Tag: libtirpc-1-0-2-rc3~2
+X-Git-Url: http://git.linux-nfs.org/?p=steved%2Flibtirpc.git;a=commitdiff_plain;h=5f00f8c78c5d13437d50c0737ce77ad67fd4361d
+
+Remove dependency to nis.h
+
+libtirpc needs rpcsvc/nis.h for compiling, but does not
+provide this head file. It's only provided by glibc,
+if the sunrpc code is not marked as deprecated, and
+by libnsl. But libnsl needs libtirpc to compile...
+
+Signed-off-by: Steve Dickson <steved@redhat.com>
+---
+
+diff --git a/src/auth_des.c b/src/auth_des.c
+index 4d3639e..af2f61f 100644
+--- a/src/auth_des.c
++++ b/src/auth_des.c
+@@ -46,8 +46,8 @@
+ #include <rpc/clnt.h>
+ #include <rpc/xdr.h>
+ #include <sys/socket.h>
+-#undef NIS
+-#include <rpcsvc/nis.h>
++
++#include "nis.h"
+
+ #if defined(LIBC_SCCS) && !defined(lint)
+ #endif
+diff --git a/src/auth_time.c b/src/auth_time.c
+index 10e58eb..7f83ab4 100644
+--- a/src/auth_time.c
++++ b/src/auth_time.c
+@@ -44,8 +44,8 @@
+ #include <rpc/rpcb_prot.h>
+ //#include <clnt_soc.h>
+ #include <sys/select.h>
+-#undef NIS
+-#include <rpcsvc/nis.h>
++
++#include "nis.h"
+
+
+ #ifdef TESTING
+diff --git a/src/nis.h b/src/nis.h
+new file mode 100644
+index 0000000..588c041
+--- /dev/null
++++ b/src/nis.h
+@@ -0,0 +1,70 @@
++/*
++ * Copyright (c) 2010, Oracle America, Inc.
++ *
++ * Redistribution and use in source and binary forms, with or without
++ * modification, are permitted provided that the following conditions are
++ * met:
++ *
++ * * Redistributions of source code must retain the above copyright
++ * notice, this list of conditions and the following disclaimer.
++ * * Redistributions in binary form must reproduce the above
++ * copyright notice, this list of conditions and the following
++ * disclaimer in the documentation and/or other materials
++ * provided with the distribution.
++ * * Neither the name of the "Oracle America, Inc." nor the names of its
++ * contributors may be used to endorse or promote products derived
++ * from this software without specific prior written permission.
++ *
++ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
++ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
++ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
++ * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
++ * COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
++ * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
++ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
++ * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
++ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
++ * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
++ * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
++ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
++ */
++
++#ifndef _INTERNAL_NIS_H
++#define _INTERNAL_NIS_H 1
++
++/* This file only contains the definition of nis_server, to be
++ able to compile libtirpc without the need to have a glibc
++ with sunrpc or a libnsl already installed. */
++
++#define NIS_PK_NONE 0
++
++struct nis_attr {
++ char *zattr_ndx;
++ struct {
++ u_int zattr_val_len;
++ char *zattr_val_val;
++ } zattr_val;
++};
++typedef struct nis_attr nis_attr;
++
++typedef char *nis_name;
++
++struct endpoint {
++ char *uaddr;
++ char *family;
++ char *proto;
++};
++typedef struct endpoint endpoint;
++
++struct nis_server {
++ nis_name name;
++ struct {
++ u_int ep_len;
++ endpoint *ep_val;
++ } ep;
++ uint32_t key_type;
++ netobj pkey;
++};
++typedef struct nis_server nis_server;
++
++#endif /* ! _INTERNAL_NIS_H */
+diff --git a/src/rpc_soc.c b/src/rpc_soc.c
+index 1ec7b3f..ed0892a 100644
+--- a/src/rpc_soc.c
++++ b/src/rpc_soc.c
+@@ -61,8 +61,8 @@
+ #include <string.h>
+ #include <unistd.h>
+ #include <fcntl.h>
+-#include <rpcsvc/nis.h>
+
++#include "nis.h"
+ #include "rpc_com.h"
+
+ extern mutex_t rpcsoc_lock;
+
diff --git a/net-libs/libtirpc/files/libtirpc-1.0.1_uclibc-dont-use-struct-rpcent.patch b/net-libs/libtirpc/files/libtirpc-1.0.1_uclibc-dont-use-struct-rpcent.patch
new file mode 100644
index 000000000000..b2760d2b77b4
--- /dev/null
+++ b/net-libs/libtirpc/files/libtirpc-1.0.1_uclibc-dont-use-struct-rpcent.patch
@@ -0,0 +1,51 @@
+From https://patchwork.kernel.org/patch/5499671/:
+
+ Subject: [6/9] Define struct rpcent on non GNU libc
+ From: Natanael Copa <ncopa@alpinelinux.org>
+ X-Patchwork-Id: 5499671
+ Message-Id: <1418718540-13667-7-git-send-email-ncopa@alpinelinux.org>
+ To: libtirpc-devel@lists.sourceforge.net
+ Cc: linux-nfs@vger.kernel.org, Natanael Copa <ncopa@alpinelinux.org>
+ Date: Tue, 16 Dec 2014 09:28:57 +0100
+
+ This fixes the following compile error with musl libc:
+ getrpcent.c:65:16: error: field 'rpc' has incomplete type
+ struct rpcent rpc;
+ ^
+
+ Signed-off-by: Natanael Copa <ncopa@alpinelinux.org>
+ ---
+ This patch could probably be better. It assumes that only GNU libc has
+ the rpcent struct defined, but the BSDs probably has it too.
+
+ I am not sure if uClibc has it, but uClibc does define __GLIBC__ so it
+ might be broken there too.
+
+ I looked into using AC_CHECK_MEMBER but I don't think it is a good idea
+ so depend on config.h since this is a header that will be installed on
+ the system.
+
+ I also found out that struct rpcent is also defined in
+ /usr/include/gssrpc/netdb.h but I am unsure if we can depend on that
+ too since GSS is optional.
+
+ So I am a bit in doubt what the proper fix is. Meanwhile, this works
+ for musl libc.
+
+We fix the uClibc case by checking for __UCLIBC__ as well, since uClibc will
+define __GLIBC__ as well (why?) as __UCLIBC__. This should not affect the
+musl case.
+---
+
+diff -Naurp libtirpc-1.0.1.orig/tirpc/rpc/rpcent.h libtirpc-1.0.1/tirpc/rpc/rpcent.h
+--- libtirpc-1.0.1.orig/tirpc/rpc/rpcent.h 2015-10-30 15:15:14.000000000 +0000
++++ libtirpc-1.0.1/tirpc/rpc/rpcent.h 2017-07-05 04:58:27.141468000 +0000
+@@ -49,7 +49,7 @@ extern "C" {
+ #endif
+
+ /* These are defined in /usr/include/rpc/netdb.h */
+-#if !defined(__GLIBC__)
++#if !defined(__GLIBC__) || defined(__UCLIBC__)
+ struct rpcent {
+ char *r_name; /* name of server for this rpc program */
+ char **r_aliases; /* alias list */
diff --git a/net-libs/libtirpc/files/libtirpc-1.0.1_uclibc-use-memset-not-bzero.patch b/net-libs/libtirpc/files/libtirpc-1.0.1_uclibc-use-memset-not-bzero.patch
new file mode 100644
index 000000000000..f7657f74db43
--- /dev/null
+++ b/net-libs/libtirpc/files/libtirpc-1.0.1_uclibc-use-memset-not-bzero.patch
@@ -0,0 +1,21 @@
+Inspired by a similar fix here:
+http://git.yoctoproject.org/cgit.cgi/poky/plain/meta/packages/nfs-utils/files/uclibc_bzero_fix.patch?id=39d8c0fc4a9d14b7bad1442e05c536e28b196a47
+
+Because uclibc does not have a working implementation of `__bzero'.
+---
+
+diff -Naurp libtirpc-1.0.1.orig/src/des_impl.c libtirpc-1.0.1/src/des_impl.c
+--- libtirpc-1.0.1.orig/src/des_impl.c 2017-07-05 06:16:07.441468000 +0000
++++ libtirpc-1.0.1/src/des_impl.c 2017-07-05 06:19:57.351468000 +0000
+@@ -588,7 +588,11 @@ _des_crypt (char *buf, unsigned len, str
+ }
+ tin0 = tin1 = tout0 = tout1 = xor0 = xor1 = 0;
+ tbuf[0] = tbuf[1] = 0;
++#ifndef __UCLIBC__
+ __bzero (schedule, sizeof (schedule));
++#else
++ memset (schedule, 0, sizeof (schedule));
++#endif
+
+ return (1);
+ }
diff --git a/net-libs/libtirpc/files/libtirpc-1.0.2-bcopy-to-memmove.patch b/net-libs/libtirpc/files/libtirpc-1.0.2-bcopy-to-memmove.patch
new file mode 100644
index 000000000000..91619b7ac9fb
--- /dev/null
+++ b/net-libs/libtirpc/files/libtirpc-1.0.2-bcopy-to-memmove.patch
@@ -0,0 +1,49 @@
+diff -Naurp libtirpc-1.0.2.orig/src/auth_time.c libtirpc-1.0.2/src/auth_time.c
+--- libtirpc-1.0.2.orig/src/auth_time.c 2017-07-05 11:02:23.000000000 -0400
++++ libtirpc-1.0.2/src/auth_time.c 2017-07-30 17:48:31.361420071 -0400
+@@ -104,7 +104,7 @@ static int uaddr_to_sockaddr(uaddr, sin)
+ p_bytes[1] = (unsigned char)a[5] & 0x000000FF;
+
+ sin->sin_family = AF_INET; /* always */
+- bcopy((char *)&p_bytes, (char *)&sin->sin_port, 2);
++ memmove((char *)&sin->sin_port, (char *)&p_bytes, 2);
+
+ return (0);
+ }
+diff -Naurp libtirpc-1.0.2.orig/src/crypt_client.c libtirpc-1.0.2/src/crypt_client.c
+--- libtirpc-1.0.2.orig/src/crypt_client.c 2017-07-05 11:02:23.000000000 -0400
++++ libtirpc-1.0.2/src/crypt_client.c 2017-07-30 17:49:57.911419445 -0400
+@@ -75,8 +75,8 @@ _des_crypt_call(buf, len, dparms)
+ des_crypt_1_arg.desbuf.desbuf_val = buf;
+ des_crypt_1_arg.des_dir = dparms->des_dir;
+ des_crypt_1_arg.des_mode = dparms->des_mode;
+- bcopy(dparms->des_ivec, des_crypt_1_arg.des_ivec, 8);
+- bcopy(dparms->des_key, des_crypt_1_arg.des_key, 8);
++ memmove(des_crypt_1_arg.des_ivec, dparms->des_ivec, 8);
++ memmove(des_crypt_1_arg.des_key, dparms->des_key, 8);
+
+ result_1 = des_crypt_1(&des_crypt_1_arg, clnt);
+ if (result_1 == (desresp *) NULL) {
+@@ -88,8 +88,8 @@ _des_crypt_call(buf, len, dparms)
+
+ if (result_1->stat == DESERR_NONE ||
+ result_1->stat == DESERR_NOHWDEVICE) {
+- bcopy(result_1->desbuf.desbuf_val, buf, len);
+- bcopy(result_1->des_ivec, dparms->des_ivec, 8);
++ memmove(buf, result_1->desbuf.desbuf_val, len);
++ memmove(dparms->des_ivec, result_1->des_ivec, 8);
+ }
+
+ clnt_freeres(clnt, (xdrproc_t)xdr_desresp, result_1);
+diff -Naurp libtirpc-1.0.2.orig/src/svc_auth_des.c libtirpc-1.0.2/src/svc_auth_des.c
+--- libtirpc-1.0.2.orig/src/svc_auth_des.c 2017-07-05 11:02:23.000000000 -0400
++++ libtirpc-1.0.2/src/svc_auth_des.c 2017-07-30 17:50:36.591419165 -0400
+@@ -145,7 +145,7 @@ _svcauth_des(rqst, msg)
+ return (AUTH_BADCRED);
+ }
+ cred->adc_fullname.name = area->area_netname;
+- bcopy((char *)ixdr, cred->adc_fullname.name,
++ memmove(cred->adc_fullname.name, (char *)ixdr,
+ (u_int)namelen);
+ cred->adc_fullname.name[namelen] = 0;
+ ixdr += (RNDUP(namelen) / BYTES_PER_XDR_UNIT);
diff --git a/net-libs/libtirpc/files/libtirpc-1.0.2-bzero-to-memset.patch b/net-libs/libtirpc/files/libtirpc-1.0.2-bzero-to-memset.patch
new file mode 100644
index 000000000000..64b516ed8262
--- /dev/null
+++ b/net-libs/libtirpc/files/libtirpc-1.0.2-bzero-to-memset.patch
@@ -0,0 +1,36 @@
+diff -Naurp libtirpc-1.0.2.orig/src/auth_time.c libtirpc-1.0.2/src/auth_time.c
+--- libtirpc-1.0.2.orig/src/auth_time.c 2017-07-05 11:02:23.000000000 -0400
++++ libtirpc-1.0.2/src/auth_time.c 2017-07-30 17:46:39.481420880 -0400
+@@ -317,7 +317,7 @@ __rpc_get_time_offset(td, srv, thost, ua
+ sprintf(ipuaddr, "%d.%d.%d.%d.0.111", a1, a2, a3, a4);
+ useua = &ipuaddr[0];
+
+- bzero((char *)&sin, sizeof(sin));
++ memset((char *)&sin, 0, sizeof(sin));
+ if (uaddr_to_sockaddr(useua, &sin)) {
+ msg("unable to translate uaddr to sockaddr.");
+ if (needfree)
+diff -Naurp libtirpc-1.0.2.orig/src/des_impl.c libtirpc-1.0.2/src/des_impl.c
+--- libtirpc-1.0.2.orig/src/des_impl.c 2017-07-05 11:02:23.000000000 -0400
++++ libtirpc-1.0.2/src/des_impl.c 2017-07-30 17:46:49.581420807 -0400
+@@ -588,7 +588,7 @@ _des_crypt (char *buf, unsigned len, str
+ }
+ tin0 = tin1 = tout0 = tout1 = xor0 = xor1 = 0;
+ tbuf[0] = tbuf[1] = 0;
+- __bzero (schedule, sizeof (schedule));
++ memset (schedule, 0, sizeof (schedule));
+
+ return (1);
+ }
+diff -Naurp libtirpc-1.0.2.orig/src/svc_auth_des.c libtirpc-1.0.2/src/svc_auth_des.c
+--- libtirpc-1.0.2.orig/src/svc_auth_des.c 2017-07-05 11:02:23.000000000 -0400
++++ libtirpc-1.0.2/src/svc_auth_des.c 2017-07-30 17:46:58.771420741 -0400
+@@ -356,7 +356,7 @@ cache_init()
+
+ authdes_cache = (struct cache_entry *)
+ mem_alloc(sizeof(struct cache_entry) * AUTHDES_CACHESZ);
+- bzero((char *)authdes_cache,
++ memset((char *)authdes_cache, 0,
+ sizeof(struct cache_entry) * AUTHDES_CACHESZ);
+
+ authdes_lru = (short *)mem_alloc(sizeof(short) * AUTHDES_CACHESZ);
diff --git a/net-libs/libtirpc/files/libtirpc-1.0.2-exports.patch b/net-libs/libtirpc/files/libtirpc-1.0.2-exports.patch
new file mode 100644
index 000000000000..174f4e3471f8
--- /dev/null
+++ b/net-libs/libtirpc/files/libtirpc-1.0.2-exports.patch
@@ -0,0 +1,17 @@
+See
+https://bugs.alpinelinux.org/issues/7041
+https://git.alpinelinux.org/cgit/aports/commit/?id=9edb53cea056101c4963a04b747bf102de23f919
+(just hit this myself when building libnsl)
+... dilfridge
+
+--- a/src/libtirpc.map
++++ b/src/libtirpc.map
+@@ -298,7 +298,7 @@
+ key_gendes;
+ key_get_conv;
+ key_setsecret;
+- key_secret_is_set;
++ key_secretkey_is_set;
+ key_setnet;
+ netname2host;
+ netname2user;
diff --git a/net-libs/libtirpc/files/libtirpc-1.0.2-glibc-2.26.patch b/net-libs/libtirpc/files/libtirpc-1.0.2-glibc-2.26.patch
new file mode 100644
index 000000000000..6d583e6149d0
--- /dev/null
+++ b/net-libs/libtirpc/files/libtirpc-1.0.2-glibc-2.26.patch
@@ -0,0 +1,12 @@
+diff --git a/src/xdr_sizeof.c b/src/xdr_sizeof.c
+index d23fbd1..79d6707 100644
+--- a/src/xdr_sizeof.c
++++ b/src/xdr_sizeof.c
+@@ -39,6 +39,7 @@
+ #include <rpc/xdr.h>
+ #include <sys/types.h>
+ #include <stdlib.h>
++#include <stdint.h>
+ #include "un-namespace.h"
+
+ /* ARGSUSED */
diff --git a/net-libs/libtirpc/libtirpc-0.2.4-r1.ebuild b/net-libs/libtirpc/libtirpc-0.2.4-r1.ebuild
new file mode 100644
index 000000000000..86a1d4ad8426
--- /dev/null
+++ b/net-libs/libtirpc/libtirpc-0.2.4-r1.ebuild
@@ -0,0 +1,49 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="4"
+
+inherit toolchain-funcs
+
+DESCRIPTION="Transport Independent RPC library (SunRPC replacement)"
+HOMEPAGE="http://libtirpc.sourceforge.net/"
+SRC_URI="mirror://sourceforge/${PN}/${P}.tar.bz2
+ mirror://gentoo/${PN}-glibc-nfs.tar.xz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="alpha amd64 arm arm64 hppa ia64 ~mips ppc ppc64 s390 sh sparc x86"
+IUSE="ipv6 kerberos static-libs"
+
+RDEPEND="kerberos? ( virtual/krb5 )"
+DEPEND="${RDEPEND}
+ app-arch/xz-utils
+ virtual/pkgconfig"
+
+src_unpack() {
+ unpack ${A}
+ cp -r tirpc "${S}"/ || die
+}
+
+src_configure() {
+ econf \
+ $(use_enable ipv6) \
+ $(use_enable kerberos gssapi) \
+ $(use_enable static-libs static)
+}
+
+src_install() {
+ default
+ insinto /etc
+ doins doc/netconfig
+
+ insinto /usr/include/tirpc
+ doins -r "${WORKDIR}"/tirpc/*
+
+ # libtirpc replaces rpc support in glibc, so we need it in /
+ gen_usr_ldscript -a tirpc
+
+ # makes sure that the linking order for nfs-utils is proper, as
+ # libtool would inject a libgssglue dependency in the list.
+ use static-libs || find "${ED}" -name '*.la' -delete
+}
diff --git a/net-libs/libtirpc/libtirpc-0.2.4-r2.ebuild b/net-libs/libtirpc/libtirpc-0.2.4-r2.ebuild
new file mode 100644
index 000000000000..eacc746bba6c
--- /dev/null
+++ b/net-libs/libtirpc/libtirpc-0.2.4-r2.ebuild
@@ -0,0 +1,60 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="4"
+
+inherit multilib-minimal toolchain-funcs
+
+DESCRIPTION="Transport Independent RPC library (SunRPC replacement)"
+HOMEPAGE="http://libtirpc.sourceforge.net/"
+SRC_URI="mirror://sourceforge/${PN}/${P}.tar.bz2
+ mirror://gentoo/${PN}-glibc-nfs.tar.xz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86"
+IUSE="ipv6 kerberos static-libs"
+
+RDEPEND="kerberos? ( >=virtual/krb5-0-r1[${MULTILIB_USEDEP}] )"
+DEPEND="${RDEPEND}
+ app-arch/xz-utils
+ >=virtual/pkgconfig-0-r1[${MULTILIB_USEDEP}]"
+RDEPEND="${RDEPEND}
+ abi_x86_32? (
+ !<=app-emulation/emul-linux-x86-baselibs-20140508-r7
+ !app-emulation/emul-linux-x86-baselibs[-abi_x86_32(-)]
+ )"
+
+src_unpack() {
+ unpack ${A}
+ cp -r tirpc "${S}"/ || die
+}
+
+multilib_src_configure() {
+ ECONF_SOURCE=${S} \
+ econf \
+ $(use_enable ipv6) \
+ $(use_enable kerberos gssapi) \
+ $(use_enable static-libs static)
+}
+
+multilib_src_install() {
+ default
+
+ # libtirpc replaces rpc support in glibc, so we need it in /
+ gen_usr_ldscript -a tirpc
+}
+
+multilib_src_install_all() {
+ einstalldocs
+
+ insinto /etc
+ doins doc/netconfig
+
+ insinto /usr/include/tirpc
+ doins -r "${WORKDIR}"/tirpc/*
+
+ # makes sure that the linking order for nfs-utils is proper, as
+ # libtool would inject a libgssglue dependency in the list.
+ use static-libs || prune_libtool_files
+}
diff --git a/net-libs/libtirpc/libtirpc-0.2.5.ebuild b/net-libs/libtirpc/libtirpc-0.2.5.ebuild
new file mode 100644
index 000000000000..8117f9af846a
--- /dev/null
+++ b/net-libs/libtirpc/libtirpc-0.2.5.ebuild
@@ -0,0 +1,64 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="4"
+
+inherit multilib-minimal toolchain-funcs
+
+DESCRIPTION="Transport Independent RPC library (SunRPC replacement)"
+HOMEPAGE="http://libtirpc.sourceforge.net/"
+SRC_URI="mirror://sourceforge/${PN}/${P}.tar.bz2
+ mirror://gentoo/${PN}-glibc-nfs.tar.xz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="alpha amd64 arm arm64 hppa ia64 ~mips ppc ppc64 s390 sh sparc x86"
+IUSE="ipv6 kerberos static-libs"
+
+RDEPEND="kerberos? ( >=virtual/krb5-0-r1[${MULTILIB_USEDEP}] )"
+DEPEND="${RDEPEND}
+ app-arch/xz-utils
+ >=virtual/pkgconfig-0-r1[${MULTILIB_USEDEP}]"
+RDEPEND="${RDEPEND}
+ abi_x86_32? (
+ !<=app-emulation/emul-linux-x86-baselibs-20140508-r7
+ !app-emulation/emul-linux-x86-baselibs[-abi_x86_32(-)]
+ )"
+
+src_unpack() {
+ unpack ${A}
+ cp -r tirpc "${S}"/ || die
+}
+
+src_prepare() {
+ epatch "${FILESDIR}"/${P}-stdarg.patch
+}
+
+multilib_src_configure() {
+ ECONF_SOURCE=${S} \
+ econf \
+ $(use_enable ipv6) \
+ $(use_enable kerberos gssapi) \
+ $(use_enable static-libs static)
+}
+
+multilib_src_install() {
+ default
+
+ # libtirpc replaces rpc support in glibc, so we need it in /
+ gen_usr_ldscript -a tirpc
+}
+
+multilib_src_install_all() {
+ einstalldocs
+
+ insinto /etc
+ doins doc/netconfig
+
+ insinto /usr/include/tirpc
+ doins -r "${WORKDIR}"/tirpc/*
+
+ # makes sure that the linking order for nfs-utils is proper, as
+ # libtool would inject a libgssglue dependency in the list.
+ use static-libs || prune_libtool_files
+}
diff --git a/net-libs/libtirpc/libtirpc-0.3.1.ebuild b/net-libs/libtirpc/libtirpc-0.3.1.ebuild
new file mode 100644
index 000000000000..5413eddfe386
--- /dev/null
+++ b/net-libs/libtirpc/libtirpc-0.3.1.ebuild
@@ -0,0 +1,60 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="4"
+
+inherit multilib-minimal toolchain-funcs
+
+DESCRIPTION="Transport Independent RPC library (SunRPC replacement)"
+HOMEPAGE="http://libtirpc.sourceforge.net/"
+SRC_URI="mirror://sourceforge/${PN}/${P}.tar.bz2
+ mirror://gentoo/${PN}-glibc-nfs.tar.xz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86"
+IUSE="ipv6 kerberos static-libs"
+
+RDEPEND="kerberos? ( >=virtual/krb5-0-r1[${MULTILIB_USEDEP}] )"
+DEPEND="${RDEPEND}
+ app-arch/xz-utils
+ >=virtual/pkgconfig-0-r1[${MULTILIB_USEDEP}]"
+RDEPEND="${RDEPEND}
+ abi_x86_32? (
+ !<=app-emulation/emul-linux-x86-baselibs-20140508-r7
+ !app-emulation/emul-linux-x86-baselibs[-abi_x86_32(-)]
+ )"
+
+src_unpack() {
+ unpack ${A}
+ cp -r tirpc "${S}"/ || die
+}
+
+multilib_src_configure() {
+ ECONF_SOURCE=${S} \
+ econf \
+ $(use_enable ipv6) \
+ $(use_enable kerberos gssapi) \
+ $(use_enable static-libs static)
+}
+
+multilib_src_install() {
+ default
+
+ # libtirpc replaces rpc support in glibc, so we need it in /
+ gen_usr_ldscript -a tirpc
+}
+
+multilib_src_install_all() {
+ einstalldocs
+
+ insinto /etc
+ doins doc/netconfig
+
+ insinto /usr/include/tirpc
+ doins -r "${WORKDIR}"/tirpc/*
+
+ # makes sure that the linking order for nfs-utils is proper, as
+ # libtool would inject a libgssglue dependency in the list.
+ use static-libs || prune_libtool_files
+}
diff --git a/net-libs/libtirpc/libtirpc-1.0.1-r1.ebuild b/net-libs/libtirpc/libtirpc-1.0.1-r1.ebuild
new file mode 100644
index 000000000000..9791662277b2
--- /dev/null
+++ b/net-libs/libtirpc/libtirpc-1.0.1-r1.ebuild
@@ -0,0 +1,60 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="5"
+
+inherit multilib-minimal toolchain-funcs eutils
+
+DESCRIPTION="Transport Independent RPC library (SunRPC replacement)"
+HOMEPAGE="http://libtirpc.sourceforge.net/"
+SRC_URI="mirror://sourceforge/${PN}/${P}.tar.bz2
+ mirror://gentoo/${PN}-glibc-nfs.tar.xz"
+
+LICENSE="GPL-2"
+SLOT="0/3" # subslot matches SONAME major
+KEYWORDS="alpha amd64 arm ~arm64 hppa ia64 ~mips ppc ppc64 ~s390 ~sh sparc x86"
+IUSE="ipv6 kerberos static-libs"
+
+RDEPEND="kerberos? ( >=virtual/krb5-0-r1[${MULTILIB_USEDEP}] )"
+DEPEND="${RDEPEND}
+ app-arch/xz-utils
+ >=virtual/pkgconfig-0-r1[${MULTILIB_USEDEP}]"
+
+PATCHES=(
+ "${FILESDIR}/${P}-CVE-2017-8779.patch"
+)
+
+src_prepare() {
+ cp -r "${WORKDIR}"/tirpc "${S}"/ || die
+ epatch "${PATCHES[@]}"
+ epatch_user
+}
+
+multilib_src_configure() {
+ ECONF_SOURCE=${S} \
+ econf \
+ $(use_enable ipv6) \
+ $(use_enable kerberos gssapi) \
+ $(use_enable static-libs static)
+}
+
+multilib_src_install() {
+ default
+
+ # libtirpc replaces rpc support in glibc, so we need it in /
+ gen_usr_ldscript -a tirpc
+}
+
+multilib_src_install_all() {
+ einstalldocs
+
+ insinto /etc
+ doins doc/netconfig
+
+ insinto /usr/include/tirpc
+ doins -r "${WORKDIR}"/tirpc/*
+
+ # makes sure that the linking order for nfs-utils is proper, as
+ # libtool would inject a libgssglue dependency in the list.
+ use static-libs || prune_libtool_files
+}
diff --git a/net-libs/libtirpc/libtirpc-1.0.1-r2.ebuild b/net-libs/libtirpc/libtirpc-1.0.1-r2.ebuild
new file mode 100644
index 000000000000..d1f98f791063
--- /dev/null
+++ b/net-libs/libtirpc/libtirpc-1.0.1-r2.ebuild
@@ -0,0 +1,67 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="5"
+
+inherit autotools multilib-minimal toolchain-funcs eutils
+
+DESCRIPTION="Transport Independent RPC library (SunRPC replacement)"
+HOMEPAGE="http://libtirpc.sourceforge.net/"
+SRC_URI="mirror://sourceforge/${PN}/${P}.tar.bz2
+ mirror://gentoo/${PN}-glibc-nfs.tar.xz"
+
+LICENSE="GPL-2"
+SLOT="0/3" # subslot matches SONAME major
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86"
+IUSE="ipv6 kerberos static-libs"
+
+RDEPEND="kerberos? ( >=virtual/krb5-0-r1[${MULTILIB_USEDEP}] )"
+DEPEND="${RDEPEND}
+ app-arch/xz-utils
+ >=virtual/pkgconfig-0-r1[${MULTILIB_USEDEP}]"
+
+PATCHES=(
+ "${FILESDIR}/${P}-CVE-2017-8779.patch"
+ "${FILESDIR}/${P}_uclibc-dont-use-struct-rpcent.patch"
+ "${FILESDIR}/${P}_ifdef-out-yp-headers-742bbdff6ddf.patch"
+ "${FILESDIR}/${P}_remove-nis-h-dep-5f00f8c78c5d.patch"
+ "${FILESDIR}/${P}_add-des_impl-c-7f6bb9a3467a.patch"
+ "${FILESDIR}/${P}_remove-des-deps-to-glibc-503ac2e9fa56.patch"
+ "${FILESDIR}/${P}_uclibc-use-memset-not-bzero.patch"
+)
+
+src_prepare() {
+ cp -r "${WORKDIR}"/tirpc "${S}"/ || die
+ epatch "${PATCHES[@]}"
+ epatch_user
+ eautoreconf
+}
+
+multilib_src_configure() {
+ ECONF_SOURCE=${S} \
+ econf \
+ $(use_enable ipv6) \
+ $(use_enable kerberos gssapi) \
+ $(use_enable static-libs static)
+}
+
+multilib_src_install() {
+ default
+
+ # libtirpc replaces rpc support in glibc, so we need it in /
+ gen_usr_ldscript -a tirpc
+}
+
+multilib_src_install_all() {
+ einstalldocs
+
+ insinto /etc
+ doins doc/netconfig
+
+ insinto /usr/include/tirpc
+ doins -r "${WORKDIR}"/tirpc/*
+
+ # makes sure that the linking order for nfs-utils is proper, as
+ # libtool would inject a libgssglue dependency in the list.
+ use static-libs || prune_libtool_files
+}
diff --git a/net-libs/libtirpc/libtirpc-1.0.1-r3.ebuild b/net-libs/libtirpc/libtirpc-1.0.1-r3.ebuild
new file mode 100644
index 000000000000..a87b7fdbbc17
--- /dev/null
+++ b/net-libs/libtirpc/libtirpc-1.0.1-r3.ebuild
@@ -0,0 +1,68 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="6"
+
+inherit autotools multilib-minimal toolchain-funcs
+
+DESCRIPTION="Transport Independent RPC library (SunRPC replacement)"
+HOMEPAGE="http://libtirpc.sourceforge.net/"
+SRC_URI="mirror://sourceforge/${PN}/${P}.tar.bz2
+ mirror://gentoo/${PN}-glibc-nfs.tar.xz"
+
+LICENSE="GPL-2"
+SLOT="0/3" # subslot matches SONAME major
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86"
+IUSE="ipv6 kerberos static-libs"
+
+RDEPEND="kerberos? ( >=virtual/krb5-0-r1[${MULTILIB_USEDEP}] )"
+DEPEND="${RDEPEND}
+ app-arch/xz-utils
+ >=virtual/pkgconfig-0-r1[${MULTILIB_USEDEP}]"
+
+PATCHES=(
+ "${FILESDIR}/${P}-CVE-2017-8779.patch"
+ "${FILESDIR}/${P}_uclibc-dont-use-struct-rpcent.patch"
+ "${FILESDIR}/${P}_ifdef-out-yp-headers-742bbdff6ddf.patch"
+ "${FILESDIR}/${P}_remove-nis-h-dep-5f00f8c78c5d.patch"
+ "${FILESDIR}/${P}_add-des_impl-c-7f6bb9a3467a.patch"
+ "${FILESDIR}/${P}_remove-des-deps-to-glibc-503ac2e9fa56.patch"
+ "${FILESDIR}/${P}_uclibc-use-memset-not-bzero.patch"
+)
+
+src_prepare() {
+ default
+ cp -r "${WORKDIR}"/tirpc . || die
+ eautoreconf
+}
+
+multilib_src_configure() {
+ ECONF_SOURCE=${S} \
+ econf \
+ $(use_enable ipv6) \
+ $(use_enable kerberos gssapi) \
+ $(use_enable static-libs static)
+}
+
+multilib_src_install() {
+ default
+
+ # libtirpc replaces rpc support in glibc, so we need it in /
+ gen_usr_ldscript -a tirpc
+}
+
+multilib_src_install_all() {
+ einstalldocs
+
+ insinto /etc
+ doins doc/netconfig
+
+ insinto /usr/include/tirpc
+ doins -r "${WORKDIR}"/tirpc/.
+
+ # makes sure that the linking order for nfs-utils is proper, as
+ # libtool would inject a libgssglue dependency in the list.
+ if ! use static-libs ; then
+ find "${D}" -name '*.la' -delete || die
+ fi
+}
diff --git a/net-libs/libtirpc/libtirpc-1.0.1.ebuild b/net-libs/libtirpc/libtirpc-1.0.1.ebuild
new file mode 100644
index 000000000000..f75f44e2a1fd
--- /dev/null
+++ b/net-libs/libtirpc/libtirpc-1.0.1.ebuild
@@ -0,0 +1,55 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="5"
+
+inherit multilib-minimal toolchain-funcs
+
+DESCRIPTION="Transport Independent RPC library (SunRPC replacement)"
+HOMEPAGE="http://libtirpc.sourceforge.net/"
+SRC_URI="mirror://sourceforge/${PN}/${P}.tar.bz2
+ mirror://gentoo/${PN}-glibc-nfs.tar.xz"
+
+LICENSE="GPL-2"
+SLOT="0/3" # subslot matches SONAME major
+KEYWORDS="alpha amd64 arm ~arm64 hppa ia64 ~mips ppc ppc64 ~s390 ~sh sparc x86"
+IUSE="ipv6 kerberos static-libs"
+
+RDEPEND="kerberos? ( >=virtual/krb5-0-r1[${MULTILIB_USEDEP}] )"
+DEPEND="${RDEPEND}
+ app-arch/xz-utils
+ >=virtual/pkgconfig-0-r1[${MULTILIB_USEDEP}]"
+
+src_unpack() {
+ unpack ${A}
+ cp -r tirpc "${S}"/ || die
+}
+
+multilib_src_configure() {
+ ECONF_SOURCE=${S} \
+ econf \
+ $(use_enable ipv6) \
+ $(use_enable kerberos gssapi) \
+ $(use_enable static-libs static)
+}
+
+multilib_src_install() {
+ default
+
+ # libtirpc replaces rpc support in glibc, so we need it in /
+ gen_usr_ldscript -a tirpc
+}
+
+multilib_src_install_all() {
+ einstalldocs
+
+ insinto /etc
+ doins doc/netconfig
+
+ insinto /usr/include/tirpc
+ doins -r "${WORKDIR}"/tirpc/*
+
+ # makes sure that the linking order for nfs-utils is proper, as
+ # libtool would inject a libgssglue dependency in the list.
+ use static-libs || prune_libtool_files
+}
diff --git a/net-libs/libtirpc/libtirpc-1.0.2-r1.ebuild b/net-libs/libtirpc/libtirpc-1.0.2-r1.ebuild
new file mode 100644
index 000000000000..7dcf52cf8b7d
--- /dev/null
+++ b/net-libs/libtirpc/libtirpc-1.0.2-r1.ebuild
@@ -0,0 +1,64 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="5"
+
+inherit autotools multilib-minimal toolchain-funcs eutils
+
+DESCRIPTION="Transport Independent RPC library (SunRPC replacement)"
+HOMEPAGE="http://libtirpc.sourceforge.net/"
+SRC_URI="mirror://sourceforge/${PN}/${P}.tar.bz2
+ mirror://gentoo/${PN}-glibc-nfs.tar.xz"
+
+LICENSE="GPL-2"
+SLOT="0/3" # subslot matches SONAME major
+KEYWORDS="~alpha amd64 ~arm ~arm64 ~hppa ia64 ~mips ppc ppc64 ~s390 ~sh ~sparc x86 ~amd64-linux ~arm-linux ~x86-linux"
+IUSE="ipv6 kerberos static-libs"
+
+RDEPEND="kerberos? ( >=virtual/krb5-0-r1[${MULTILIB_USEDEP}] )"
+DEPEND="${RDEPEND}
+ app-arch/xz-utils
+ >=virtual/pkgconfig-0-r1[${MULTILIB_USEDEP}]"
+
+PATCHES=(
+ "${FILESDIR}/${PN}-1.0.2-bcopy-to-memmove.patch"
+ "${FILESDIR}/${PN}-1.0.2-bzero-to-memset.patch"
+ "${FILESDIR}/${PN}-1.0.2-glibc-2.26.patch"
+ "${FILESDIR}/${PN}-1.0.2-exports.patch"
+)
+
+src_prepare() {
+ cp -r "${WORKDIR}"/tirpc "${S}"/ || die
+ epatch "${PATCHES[@]}"
+ epatch_user
+ eautoreconf
+}
+
+multilib_src_configure() {
+ ECONF_SOURCE=${S} \
+ econf \
+ $(use_enable ipv6) \
+ $(use_enable kerberos gssapi) \
+ $(use_enable static-libs static)
+}
+
+multilib_src_install() {
+ default
+
+ # libtirpc replaces rpc support in glibc, so we need it in /
+ gen_usr_ldscript -a tirpc
+}
+
+multilib_src_install_all() {
+ einstalldocs
+
+ insinto /etc
+ doins doc/netconfig
+
+ insinto /usr/include/tirpc
+ doins -r "${WORKDIR}"/tirpc/*
+
+ # makes sure that the linking order for nfs-utils is proper, as
+ # libtool would inject a libgssglue dependency in the list.
+ use static-libs || prune_libtool_files
+}
diff --git a/net-libs/libtirpc/libtirpc-1.0.2.ebuild b/net-libs/libtirpc/libtirpc-1.0.2.ebuild
new file mode 100644
index 000000000000..5ca806450953
--- /dev/null
+++ b/net-libs/libtirpc/libtirpc-1.0.2.ebuild
@@ -0,0 +1,63 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="5"
+
+inherit autotools multilib-minimal toolchain-funcs eutils
+
+DESCRIPTION="Transport Independent RPC library (SunRPC replacement)"
+HOMEPAGE="http://libtirpc.sourceforge.net/"
+SRC_URI="mirror://sourceforge/${PN}/${P}.tar.bz2
+ mirror://gentoo/${PN}-glibc-nfs.tar.xz"
+
+LICENSE="GPL-2"
+SLOT="0/3" # subslot matches SONAME major
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86"
+IUSE="ipv6 kerberos static-libs"
+
+RDEPEND="kerberos? ( >=virtual/krb5-0-r1[${MULTILIB_USEDEP}] )"
+DEPEND="${RDEPEND}
+ app-arch/xz-utils
+ >=virtual/pkgconfig-0-r1[${MULTILIB_USEDEP}]"
+
+PATCHES=(
+ "${FILESDIR}/${PN}-1.0.2-bcopy-to-memmove.patch"
+ "${FILESDIR}/${PN}-1.0.2-bzero-to-memset.patch"
+ "${FILESDIR}/${PN}-1.0.2-glibc-2.26.patch"
+)
+
+src_prepare() {
+ cp -r "${WORKDIR}"/tirpc "${S}"/ || die
+ epatch "${PATCHES[@]}"
+ epatch_user
+ eautoreconf
+}
+
+multilib_src_configure() {
+ ECONF_SOURCE=${S} \
+ econf \
+ $(use_enable ipv6) \
+ $(use_enable kerberos gssapi) \
+ $(use_enable static-libs static)
+}
+
+multilib_src_install() {
+ default
+
+ # libtirpc replaces rpc support in glibc, so we need it in /
+ gen_usr_ldscript -a tirpc
+}
+
+multilib_src_install_all() {
+ einstalldocs
+
+ insinto /etc
+ doins doc/netconfig
+
+ insinto /usr/include/tirpc
+ doins -r "${WORKDIR}"/tirpc/*
+
+ # makes sure that the linking order for nfs-utils is proper, as
+ # libtool would inject a libgssglue dependency in the list.
+ use static-libs || prune_libtool_files
+}
diff --git a/net-libs/libtirpc/metadata.xml b/net-libs/libtirpc/metadata.xml
new file mode 100644
index 000000000000..36e84cdfa7e1
--- /dev/null
+++ b/net-libs/libtirpc/metadata.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>base-system@gentoo.org</email>
+ <name>Gentoo Base System</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="sourceforge">libtirpc</remote-id>
+ </upstream>
+</pkgmetadata>