SHA256
1
0
forked from pool/libtirpc
libtirpc/012-libtirpc-needs-rpcsvc-nis.h-for-compiling-but-does-n.patch

144 lines
4.2 KiB
Diff
Raw Normal View History

Accepting request 381804 from home:kukuk:NIS - Add some patches to get libtirpc compiled without needing glibc deprecated functions: - 015-Fix-includes-to-compile-without-deprecated-glibc-fun.patch - 014-Add-des_crypt.c-and-des_impl.c-to-become-independent.patch - 013-If-we-don-t-compile-in-YP-support-don-t-include-YP-h.patch - Add 012-libtirpc-needs-rpcsvc-nis.h-for-compiling-but-does-n.patch to allow bootstrapping of libtirpc without glibc sunrpc code or libnsl NIS+ code. - Add 011-Fix-typo-in-src-libtirpc.map-which-prevents-that-key.patch (fix export of key_secretkey_is_set) - Add the following patches to fix some bugs from the poll() port and an endless loop: - 006-Remove-old-meanwhile-wrong-comment-about-FD_SETSIZE-.patch - 007-Change-rtime-function-to-use-poll-instead-of-select.patch - 008-Add-parameters-to-local-prototypes-to-fix-compiler-w.patch - 009-makefd_xprt-checks-that-the-filedesriptor-is-lower-t.patch - 010-The-goto-again-statement-was-an-left-over-from-the-p.patch - Remove 004-netconfig-prefer-IPv6.patch for SLES12. - Remove libtirpc-getnetconfig-races.patch (was backport). [FATE#320393] - Drop libtirpc-xdr-header.patch (was backport) - Fix public xdr.h header - xdr_rpcvers() were broken (bsc#902439) Added: libtirpc-xdr-header.patch - Fix race conditions in getnetconfig (bsc#899576, bsc#882973) Added: libtirpc-getnetconfig-races.patch OBS-URL: https://build.opensuse.org/request/show/381804 OBS-URL: https://build.opensuse.org/package/show/Base:System/libtirpc?expand=0&rev=57
2016-04-04 13:47:30 +02:00
From c4230a45c0daa8f65a3f777d183cba4b175a0c68 Mon Sep 17 00:00:00 2001
From: Thorsten Kukuk <kukuk@thkukuk.de>
Date: Mon, 14 Mar 2016 11:57:08 +0100
Subject: [PATCH 2/2] 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
...
Since we only need the nis_server * struct, the solution is to
create an internal minimal nis.h which only contains this struct.
Signed-off-by: Thorsten Kukuk <kukuk@thkukuk.de>
---
src/auth_des.c | 4 ++--
src/auth_time.c | 4 ++--
src/nis.h | 70 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
src/rpc_soc.c | 2 +-
4 files changed, 75 insertions(+), 5 deletions(-)
create mode 100644 src/nis.h
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;
--
1.8.5.6