From eadc260707b766492fbff002b3d4776e68487177 Mon Sep 17 00:00:00 2001 From: Natanael Copa Date: Mon, 28 Apr 2014 15:48:19 +0200 Subject: 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. --- main/rpcbind/APKBUILD | 6 +++++- main/rpcbind/musl-sunrpc.patch | 25 +++++++++++++++++++++++++ 2 files changed, 30 insertions(+), 1 deletion(-) create mode 100644 main/rpcbind/musl-sunrpc.patch (limited to 'main/rpcbind') diff --git a/main/rpcbind/APKBUILD b/main/rpcbind/APKBUILD index b73bee1043..b2efa6c0d5 100644 --- a/main/rpcbind/APKBUILD +++ b/main/rpcbind/APKBUILD @@ -1,7 +1,7 @@ # Maintainer: Natanael Copa 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 0000000000..d8a2e27e24 --- /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", -- cgit v1.2.3