From d6500b149d2f4527a67e48dd2f8fc8ffffcad9ef Mon Sep 17 00:00:00 2001 From: Steve Dickson Date: Thu, 18 Jun 2015 13:24:41 -0400 Subject: [PATCH] Added back __rpc_get_default_domain() Signed-off-by: Steve Dickson --- libtirpc-0.3.2-get-default-domain.patch | 104 ++++++++++++++++++++++++ libtirpc.spec | 9 +- 2 files changed, 112 insertions(+), 1 deletion(-) create mode 100644 libtirpc-0.3.2-get-default-domain.patch diff --git a/libtirpc-0.3.2-get-default-domain.patch b/libtirpc-0.3.2-get-default-domain.patch new file mode 100644 index 0000000..dc0635b --- /dev/null +++ b/libtirpc-0.3.2-get-default-domain.patch @@ -0,0 +1,104 @@ +commit f7f6d01a83d136c98acbc1d7f098da25097bd0b6 +Author: Armin K +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 + Signed-off-by: Steve Dickson + +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 ++#include ++#include ++ ++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/libtirpc.spec b/libtirpc.spec index 9a51200..602639c 100644 --- a/libtirpc.spec +++ b/libtirpc.spec @@ -2,7 +2,7 @@ Name: libtirpc Version: 0.3.2 -Release: 0.0%{?dist} +Release: 0.1%{?dist} Summary: Transport Independent RPC Library Group: System Environment/Libraries License: SISSL and BSD @@ -10,6 +10,8 @@ URL: http://nfsv4.bullopensource.org/ BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) Source0: http://downloads.sourceforge.net/libtirpc/libtirpc-%{version}.tar.bz2 +Patch001: libtirpc-0.3.2-get-default-domain.patch + BuildRequires: automake, autoconf, libtool, pkgconfig BuildRequires: krb5-devel @@ -39,6 +41,8 @@ developing programs which use the tirpc library. %prep %setup -q +%patch001 -p1 + # Remove .orig files find . -name "*.orig" | xargs rm -f @@ -130,6 +134,9 @@ rm -rf %{buildroot} %{_mandir}/*/* %changelog +* Thu Jun 18 2015 Steve Dickson 0.3.2-0.1 +- Added back __rpc_get_default_domain() + * Fri Jun 12 2015 Steve Dickson 0.3.2-0.0 - Updated to latest upstream release: libtirpc-0-3-2