aboutsummaryrefslogtreecommitdiffstats
path: root/main/rpcbind
diff options
context:
space:
mode:
authorNatanael Copa <ncopa@alpinelinux.org>2014-04-28 15:48:19 +0200
committerNatanael Copa <ncopa@alpinelinux.org>2014-04-28 15:50:10 +0200
commiteadc260707b766492fbff002b3d4776e68487177 (patch)
treec4484b04287d11860b566a806573315c6ba43f13 /main/rpcbind
parent8603f58746e0bb6b1deeef36bea5ea3d6fe5afe4 (diff)
main/rpcbind: workaround broken getaddrinfo/getservbyname in musl
rpcbind tries to get port number for "portmapper" but since musl's getaddrinfo/getservbyname does not support aliases, it fails for us. We work around it by using the service "sunrpc" instead.
Diffstat (limited to 'main/rpcbind')
-rw-r--r--main/rpcbind/APKBUILD6
-rw-r--r--main/rpcbind/musl-sunrpc.patch25
2 files changed, 30 insertions, 1 deletions
diff --git a/main/rpcbind/APKBUILD b/main/rpcbind/APKBUILD
index b73bee10433..b2efa6c0d5c 100644
--- a/main/rpcbind/APKBUILD
+++ b/main/rpcbind/APKBUILD
@@ -1,7 +1,7 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=rpcbind
pkgver=0.2.1
-pkgrel=1
+pkgrel=2
pkgdesc="portmap replacement which supports RPC over various protocols"
url="http://rpcbind.sourceforge.net"
arch="all"
@@ -14,6 +14,7 @@ source="http://downloads.sourceforge.net/sourceforge/$pkgname/$pkgname-$pkgver.t
0002-uclibc-rpcsvc-defines.patch
rpcbind-0.2.1-rpcuser.patch
musl-poll.patch
+ musl-sunrpc.patch
rpcbind.initd
rpcbind.confd"
@@ -54,17 +55,20 @@ md5sums="0a5f9c2142af814c55d957aaab3bcc68 rpcbind-0.2.1.tar.bz2
bea09b7ec434264756ec7c09da59b8bf 0002-uclibc-rpcsvc-defines.patch
05a4f6558dbfe4c69574ff3a8fee250d rpcbind-0.2.1-rpcuser.patch
30bf8bbad7e28239a4fdd5f075640663 musl-poll.patch
+7825226deb532d8b91380e5425304965 musl-sunrpc.patch
381a2722c69b4597af532381f1ffeae0 rpcbind.initd
2517c71cdb08f133b0d50055a44c56de rpcbind.confd"
sha256sums="da169ff877a5a07581fad50a9a808ac6e96f0c277a3df49a7ef005778428496e rpcbind-0.2.1.tar.bz2
86f56219652ce4e8009b6bb28c8a970fff55fff22c244d10efbe6e097a2e66f9 0002-uclibc-rpcsvc-defines.patch
ba5d2f25b9c06b057da97418fd479b511e1d16dc7f300173383c33904f1890bd rpcbind-0.2.1-rpcuser.patch
91b795f046e956ded5d16b77867a6c8199f4b221e4cab467865b16f26b8bfd32 musl-poll.patch
+8852c055fa257113d3df3525a5600e6f02f4eacba29cf98a8c0c714e4551cfc9 musl-sunrpc.patch
674d5af3957c81ff4bd97811d88e064b75f742c351b63c51c397d3779fb57604 rpcbind.initd
55bcd47a4d0f194f09e6abb13695853459f869b54ce09ef051e55efcd8ad3903 rpcbind.confd"
sha512sums="5ec1e25c64ad3cd80fc2f14ced64a331afbe896fb3da54c812e3c4a78a69df181f607492762fe852732cc0ac9bd87ee118760b9e7fad2b3f028d581fecc93849 rpcbind-0.2.1.tar.bz2
205dcf072055f3ff0477b26f63be7e228244bcaeaf3670ad9f5a9a39faa9d58f89b9eb2a98d79059a749b6ff834d37c260e71a8b06507027e315b29152b2a94d 0002-uclibc-rpcsvc-defines.patch
f9836d2a0d4fa11a9033bdf654637645e977d27e01e6fe232f67d92e9c6ffb4124d9191101148cb9cf4df2672b020f5cfebc5f3d54fd5e592c6283ebc29f9833 rpcbind-0.2.1-rpcuser.patch
9ff75b07622f12dd8363ad21709bd60addcb7d428aa9e181467e8da0c4ac087653934fdfb7bcec31c52b43a96a1829793cee18e68878d5cc69fa920865bdbad8 musl-poll.patch
+f8782018825e176adcb323c93cdf44612914a7a71e12f2dd4afb1593c62b91709fcf62246cc4e57ae2527d117cb05eabfc8436958da524186490615bf50c0bd4 musl-sunrpc.patch
9fb26b3a496c616a36f85a3af5580fb364bf404ae040ba8719d30dbdea0ea906cf07e1bc1b4c5f6e4b95b121bbd5b5c687ae17cf26617b2b2981ff7e3ef6d83b rpcbind.initd
0641087162ebc8fb10c5cb329105261d77cad073daed3f9a6c92574177298cd8a19a87b62dde14161cc554b5e68680cfd870b5334f3cfd8d6074ec8a43f4dfe3 rpcbind.confd"
diff --git a/main/rpcbind/musl-sunrpc.patch b/main/rpcbind/musl-sunrpc.patch
new file mode 100644
index 00000000000..d8a2e27e244
--- /dev/null
+++ b/main/rpcbind/musl-sunrpc.patch
@@ -0,0 +1,25 @@
+The musl implementation of getaddrinfo and getservbyname does not
+aliases. As a workaround we use "sunprc" instead of "portmapper"
+
+diff --git a/src/rpcbind.c b/src/rpcbind.c
+index 83dbe93..9404df7 100644
+--- a/src/rpcbind.c
++++ b/src/rpcbind.c
+@@ -416,7 +416,7 @@ init_transport(struct netconfig *nconf)
+ if ((aicode = getaddrinfo(hosts[nhostsbak],
+ servname, &hints, &res)) != 0) {
+ if ((aicode = getaddrinfo(hosts[nhostsbak],
+- "portmapper", &hints, &res)) != 0) {
++ "sunrpc", &hints, &res)) != 0) {
+ syslog(LOG_ERR,
+ "cannot get local address for %s: %s",
+ nconf->nc_netid, gai_strerror(aicode));
+@@ -489,7 +489,7 @@ init_transport(struct netconfig *nconf)
+ if ((strcmp(nconf->nc_netid, "local") != 0) &&
+ (strcmp(nconf->nc_netid, "unix") != 0)) {
+ if ((aicode = getaddrinfo(NULL, servname, &hints, &res))!= 0) {
+- if ((aicode = getaddrinfo(NULL, "portmapper", &hints, &res))!= 0) {
++ if ((aicode = getaddrinfo(NULL, "sunrpc", &hints, &res))!= 0) {
+ printf("cannot get local address for %s: %s", nconf->nc_netid, gai_strerror(aicode));
+ syslog(LOG_ERR,
+ "cannot get local address for %s: %s",