summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Frysinger <vapier@gentoo.org>2018-06-19 02:05:17 -0400
committerMike Frysinger <vapier@gentoo.org>2018-06-19 02:06:41 -0400
commitaff3934b17388d503099592e1d9c9eae106fe886 (patch)
tree364a28e13c4b0edf5b1d84b18fc20e6646dfde2a /sys-apps/xinetd
parentmail-mta/postfix: bump to 3.4_pre20180618 (diff)
downloadgentoo-aff3934b17388d503099592e1d9c9eae106fe886.tar.gz
gentoo-aff3934b17388d503099592e1d9c9eae106fe886.tar.bz2
gentoo-aff3934b17388d503099592e1d9c9eae106fe886.zip
sys-apps/xinetd: restore USE=rpc support #651838
Closes: https://bugs.gentoo.org/651838
Diffstat (limited to 'sys-apps/xinetd')
-rw-r--r--sys-apps/xinetd/files/xinetd-2.3.15.3-no-rpc.patch50
-rw-r--r--sys-apps/xinetd/files/xinetd-2.3.15.3-rpc-configure.patch57
-rw-r--r--sys-apps/xinetd/xinetd-2.3.15.3-r1.ebuild60
3 files changed, 167 insertions, 0 deletions
diff --git a/sys-apps/xinetd/files/xinetd-2.3.15.3-no-rpc.patch b/sys-apps/xinetd/files/xinetd-2.3.15.3-no-rpc.patch
new file mode 100644
index 000000000000..3bd995a0892d
--- /dev/null
+++ b/sys-apps/xinetd/files/xinetd-2.3.15.3-no-rpc.patch
@@ -0,0 +1,50 @@
+https://github.com/openSUSE/xinetd/pull/8
+
+From 4278495b1858b5b1ce94d72bd619eb79aab8ca04 Mon Sep 17 00:00:00 2001
+From: Mike Frysinger <vapier@gentoo.org>
+Date: Mon, 18 Jun 2018 18:49:38 -0400
+Subject: [PATCH] fix no-rpc builds
+
+The code base already has support for -DNO_RPC, so fix the breakage
+introduced by commit 56520dcc88c35113877c8f4f52bd98ad95b44653.
+---
+ src/confparse.c | 5 ++++-
+ 1 file changed, 4 insertions(+), 1 deletion(-)
+
+diff --git a/src/confparse.c b/src/confparse.c
+index 5b149dd03808..7965cc405f24 100644
+--- a/src/confparse.c
++++ b/src/confparse.c
+@@ -13,10 +13,12 @@
+ #include <stdlib.h>
+ #include <fcntl.h>
+ #include <unistd.h>
++#ifndef NO_RPC
+ #include <rpc/rpc.h>
+ #ifdef HAVE_RPCENT_H
+ #include <rpc/rpcent.h>
+ #endif
++#endif
+ #include <netdb.h>
+
+ #include "str.h"
+@@ -730,7 +732,7 @@ static status_e check_entry( struct service_config *scp,
+ }
+ }
+
+-/* #ifndef NO_RPC */
++#ifndef NO_RPC
+ if ( SC_IS_RPC( scp ) && !SC_IS_UNLISTED( scp ) )
+ {
+ struct rpcent *rep = (struct rpcent *)getrpcbyname( SC_NAME(scp) ) ;
+@@ -743,6 +745,7 @@ static status_e check_entry( struct service_config *scp,
+ SC_RPCDATA( scp )->rd_program_number = rep->r_number ;
+ }
+ else
++#endif
+ {
+ if ( !SC_IS_UNLISTED( scp ) )
+ {
+--
+2.16.1
+
diff --git a/sys-apps/xinetd/files/xinetd-2.3.15.3-rpc-configure.patch b/sys-apps/xinetd/files/xinetd-2.3.15.3-rpc-configure.patch
new file mode 100644
index 000000000000..682dece1b2b6
--- /dev/null
+++ b/sys-apps/xinetd/files/xinetd-2.3.15.3-rpc-configure.patch
@@ -0,0 +1,57 @@
+From 928d69309592704892d124b1f8de9111164c3793 Mon Sep 17 00:00:00 2001
+From: Mike Frysinger <vapier@gentoo.org>
+Date: Mon, 18 Jun 2018 22:11:21 -0400
+Subject: [PATCH] configure: add a --without-rpc flag
+
+The build already supports NO_RPC to disable all RPC logic. Turn it
+into a proper configure flag so people don't have to hack it up.
+---
+ configure.ac | 25 ++++++++++++++++++++-----
+ 1 file changed, 20 insertions(+), 5 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index 8d0b562ddaac..75ae7fb472dc 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -37,11 +37,6 @@ AC_CHECK_LIB([m], [log10], [
+ AC_MSG_ERROR([Unable to find working libm.so])
+ ])
+ AC_SUBST([LIBM_LIBS])
+-PKG_CHECK_MODULES([TIRPC],[libtirpc], [
+- AC_DEFINE([HAVE_RPCENT_H], [1], [Have <rpc/rpcent.h>.])
+-], [
+- AC_MSG_WARN([Libtirpc not found, will not use <rpc/rpcent.h>])
+-])
+
+ # ======================================
+ # Check for various headers and settings
+@@ -112,6 +107,26 @@ AS_IF([test x"$with_labeled_networking" != "xno"], [
+ ])
+ ])
+
++AC_ARG_WITH([rpc],
++ [AS_HELP_STRING([--without-rpc], [Do not include RPC support])],
++ [with_rpc="$withval"],
++ [with_rpc="auto"]
++)
++AS_IF([test x"$with_rpc" != "xno"], [
++ PKG_CHECK_MODULES([TIRPC],[libtirpc], [
++ AC_DEFINE([HAVE_RPCENT_H], [1], [Have <rpc/rpcent.h>.])
++ ], [
++ AS_IF([test x"$with_rpc" = "xyes"], [
++ AC_MSG_ERROR([RPC support requested but not found])
++ ])
++ with_rpc="no"
++ AC_MSG_WARN([Libtirpc not found, will not use <rpc/rpcent.h>])
++ ])
++])
++AS_IF([test x"$with_rpc" = "xno"], [
++ AC_DEFINE([NO_RPC], [1], [Omit RPC support.])
++])
++
+ # =========
+ # Hardening
+ # =========
+--
+2.16.1
+
diff --git a/sys-apps/xinetd/xinetd-2.3.15.3-r1.ebuild b/sys-apps/xinetd/xinetd-2.3.15.3-r1.ebuild
new file mode 100644
index 000000000000..080798648ff8
--- /dev/null
+++ b/sys-apps/xinetd/xinetd-2.3.15.3-r1.ebuild
@@ -0,0 +1,60 @@
+# Copyright 1999-2018 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="6"
+
+inherit flag-o-matic systemd toolchain-funcs autotools
+
+DESCRIPTION="powerful replacement for inetd"
+HOMEPAGE="https://github.com/xinetd-org/xinetd https://github.com/openSUSE/xinetd"
+SRC_URI="https://github.com/openSUSE/xinetd/releases/download/${PV}/${P}.tar.xz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~x86-fbsd"
+IUSE="perl rpc selinux tcpd"
+
+DEPEND="
+ rpc? ( net-libs/libtirpc:= )
+ selinux? ( sys-libs/libselinux )
+ tcpd? ( >=sys-apps/tcp-wrappers-7.6-r2 )
+"
+RDEPEND="
+ ${DEPEND}
+ perl? ( dev-lang/perl )
+"
+DEPEND="
+ ${DEPEND}
+ virtual/pkgconfig
+"
+
+PATCHES=(
+ "${FILESDIR}"/${P}-no-rpc.patch #651838
+ "${FILESDIR}"/${P}-rpc-configure.patch #651838
+)
+
+src_prepare() {
+ default
+ eautoreconf
+}
+
+src_configure() {
+ econf \
+ $(use_with tcpd libwrap) \
+ $(use_with selinux labeled-networking) \
+ $(use_with rpc) \
+ --with-loadavg
+}
+
+src_install() {
+ default
+
+ use perl || rm -f "${ED}"/usr/sbin/xconv.pl
+
+ newinitd "${FILESDIR}"/xinetd.rc6 xinetd
+ newconfd "${FILESDIR}"/xinetd.confd xinetd
+ systemd_dounit "${FILESDIR}/${PN}.service"
+
+ newdoc contrib/xinetd.conf xinetd.conf.dist.sample
+ dodoc README.md CHANGELOG
+}