diff options
-rw-r--r-- | main/libtirpc/APKBUILD | 2 | ||||
-rw-r--r-- | main/libtirpc/libtirpc-0.3.2-get-default-domain.patch | 104 | ||||
-rw-r--r-- | main/libtirpc/yp.patch | 13 |
3 files changed, 118 insertions, 1 deletions
diff --git a/main/libtirpc/APKBUILD b/main/libtirpc/APKBUILD index 54470bc716..c9b2a21ed1 100644 --- a/main/libtirpc/APKBUILD +++ b/main/libtirpc/APKBUILD @@ -1,7 +1,7 @@ # Maintainer: Natanael Copa <ncopa@alpinelinux.org> pkgname=libtirpc pkgver=0.3.2 -pkgrel=1 +pkgrel=2 pkgdesc="Transport Independent RPC library (SunRPC replacement)" url="http://libtirpc.sourceforge.net/" arch="all" diff --git a/main/libtirpc/libtirpc-0.3.2-get-default-domain.patch b/main/libtirpc/libtirpc-0.3.2-get-default-domain.patch new file mode 100644 index 0000000000..dc0635b987 --- /dev/null +++ b/main/libtirpc/libtirpc-0.3.2-get-default-domain.patch @@ -0,0 +1,104 @@ +commit f7f6d01a83d136c98acbc1d7f098da25097bd0b6 +Author: Armin K <krejzi@email.com> +Date: Thu Jun 18 11:59:18 2015 -0400 + + __rpc_get_default_domain is undefined with LDFLAGS=-Wl,--no-undefined + + commit 109ccb9fe removed the __rpc_get_default_domain() + interface which is not defined in the glibc. This + brings the interface back. + + Reviewed-by: Chuck Lever <chuck.lever@oracle.com> + Signed-off-by: Steve Dickson <steved@redhat.com> + +diff --git a/src/Makefile.am b/src/Makefile.am +index 6cc567a..66fcc6c 100644 +--- a/src/Makefile.am ++++ b/src/Makefile.am +@@ -69,7 +69,7 @@ if GSS + endif + + libtirpc_la_SOURCES += key_call.c key_prot_xdr.c getpublickey.c +-libtirpc_la_SOURCES += netname.c netnamer.c rtime.c ++libtirpc_la_SOURCES += netname.c netnamer.c rpcdname.c rtime.c + + CLEANFILES = cscope.* *~ + DISTCLEANFILES = Makefile.in +diff --git a/src/rpcdname.c b/src/rpcdname.c +new file mode 100644 +index 0000000..3e6a988 +--- /dev/null ++++ b/src/rpcdname.c +@@ -0,0 +1,72 @@ ++/* ++ * Copyright (c) 2009, Sun Microsystems, Inc. ++ * All rights reserved. ++ * ++ * 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 Sun Microsystems, 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. ++ */ ++ ++/* ++ * rpcdname.c ++ * Gets the default domain name ++ */ ++ ++#include <stdlib.h> ++#include <unistd.h> ++#include <string.h> ++ ++static char *default_domain = 0; ++ ++static char * ++get_default_domain() ++{ ++ char temp[256]; ++ ++ if (default_domain) ++ return (default_domain); ++ if (getdomainname(temp, sizeof(temp)) < 0) ++ return (0); ++ if ((int) strlen(temp) > 0) { ++ default_domain = (char *)malloc((strlen(temp)+(unsigned)1)); ++ if (default_domain == 0) ++ return (0); ++ (void) strcpy(default_domain, temp); ++ return (default_domain); ++ } ++ return (0); ++} ++ ++/* ++ * This is a wrapper for the system call getdomainname which returns a ++ * ypclnt.h error code in the failure case. It also checks to see that ++ * the domain name is non-null, knowing that the null string is going to ++ * get rejected elsewhere in the NIS client package. ++ */ ++int ++__rpc_get_default_domain(domain) ++ char **domain; ++{ ++ if ((*domain = get_default_domain()) != 0) ++ return (0); ++ return (-1); ++} diff --git a/main/libtirpc/yp.patch b/main/libtirpc/yp.patch new file mode 100644 index 0000000000..dd32219254 --- /dev/null +++ b/main/libtirpc/yp.patch @@ -0,0 +1,13 @@ +--- ./src/getpublickey.c.orig ++++ ./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> + |