summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSam James <sam@gentoo.org>2022-09-10 14:06:33 +0100
committerSam James <sam@gentoo.org>2022-09-10 14:29:54 +0100
commit33bd8437e8964991053c4ec1897ec015f84d577d (patch)
tree2bc43cd9a150d701a99da79e12ae4a13a868d771
parentdev-libs/libcgroup: add 3.0.0 (diff)
downloadgentoo-33bd8437e8964991053c4ec1897ec015f84d577d.tar.gz
gentoo-33bd8437e8964991053c4ec1897ec015f84d577d.tar.bz2
gentoo-33bd8437e8964991053c4ec1897ec015f84d577d.zip
sys-apps/xinetd: fix build on musl & implicit function decls
Signed-off-by: Sam James <sam@gentoo.org>
-rw-r--r--sys-apps/xinetd/files/xinetd-2.3.15.4-0001-configure.ac-use-AC_USE_SYSTEM_EXTENSIONS.patch43
-rw-r--r--sys-apps/xinetd/files/xinetd-2.3.15.4-0002-redirect-drop-deprecated-sys-signal.h-include.patch24
-rw-r--r--sys-apps/xinetd/xinetd-2.3.15.4-r1.ebuild62
3 files changed, 129 insertions, 0 deletions
diff --git a/sys-apps/xinetd/files/xinetd-2.3.15.4-0001-configure.ac-use-AC_USE_SYSTEM_EXTENSIONS.patch b/sys-apps/xinetd/files/xinetd-2.3.15.4-0001-configure.ac-use-AC_USE_SYSTEM_EXTENSIONS.patch
new file mode 100644
index 000000000000..d2be93f08607
--- /dev/null
+++ b/sys-apps/xinetd/files/xinetd-2.3.15.4-0001-configure.ac-use-AC_USE_SYSTEM_EXTENSIONS.patch
@@ -0,0 +1,43 @@
+https://github.com/openSUSE/xinetd/pull/42
+
+From 0539bd4450020c83c6b72eec1004e3ce3f64554b Mon Sep 17 00:00:00 2001
+From: Sam James <sam@gentoo.org>
+Date: Sat, 10 Sep 2022 13:59:20 +0100
+Subject: [PATCH 1/2] configure.ac: use AC_USE_SYSTEM_EXTENSIONS
+
+We use fcvt and gcvt, both of which are extensions
+guarded by GNU_SOURCE. Use AC_USE_SYSTEM_EXTENSIONS
+to ensure they're always available.
+
+Fixes a build failure on musl with Clang 15:
+```
+src/sio/sprint.c:176:15: error: call to undeclared function 'fcvt'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
+ p = (char *)fcvt( num, precision, &decimal_point, is_negative ) ;
+src/sio/sprint.c:178:15: error: call to undeclared function 'ecvt'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
+ p = (char *)ecvt( num, precision+1, &decimal_point, is_negative ) ;
+```
+
+And drop a single #define _GNU_SOURCE from signals.c, as it's
+preferable to have it consistently defined across the codebase
+where possible. We have autotools, so let's use it.
+--- a/configure.ac
++++ b/configure.ac
+@@ -38,6 +38,8 @@ AC_CHECK_LIB([m], [log10], [
+ ])
+ AC_SUBST([LIBM_LIBS])
+
++AC_USE_SYSTEM_EXTENSIONS
++
+ # ======================================
+ # Check for various headers and settings
+ # ======================================
+--- a/src/signals.c
++++ b/src/signals.c
+@@ -7,7 +7,6 @@
+
+
+ #include "config.h"
+-#define _GNU_SOURCE
+ #include <sys/types.h>
+ #include <sys/time.h>
+ #include <signal.h>
diff --git a/sys-apps/xinetd/files/xinetd-2.3.15.4-0002-redirect-drop-deprecated-sys-signal.h-include.patch b/sys-apps/xinetd/files/xinetd-2.3.15.4-0002-redirect-drop-deprecated-sys-signal.h-include.patch
new file mode 100644
index 000000000000..f53a11eba650
--- /dev/null
+++ b/sys-apps/xinetd/files/xinetd-2.3.15.4-0002-redirect-drop-deprecated-sys-signal.h-include.patch
@@ -0,0 +1,24 @@
+https://github.com/openSUSE/xinetd/pull/42
+
+From 953a37c570a42743358cfc64e00e990813db1e09 Mon Sep 17 00:00:00 2001
+From: Sam James <sam@gentoo.org>
+Date: Sat, 10 Sep 2022 14:01:00 +0100
+Subject: [PATCH 2/2] redirect: drop deprecated <sys/signal.h> include
+
+Fix warning when building on musl:
+```
+In file included from src/redirect.c:23:
+/usr/include/sys/signal.h:1:2: warning: redirecting incorrect #include <sys/signal.h> to <signal.h> [-W#warnings]
+```
+
+We already include <signal.h>.
+--- a/src/redirect.c
++++ b/src/redirect.c
+@@ -20,7 +20,6 @@
+ #include <unistd.h>
+ #include <netinet/tcp.h>
+ #include <arpa/inet.h>
+-#include <sys/signal.h>
+
+ #include "redirect.h"
+ #include "service.h"
diff --git a/sys-apps/xinetd/xinetd-2.3.15.4-r1.ebuild b/sys-apps/xinetd/xinetd-2.3.15.4-r1.ebuild
new file mode 100644
index 000000000000..1f81038eb7bc
--- /dev/null
+++ b/sys-apps/xinetd/xinetd-2.3.15.4-r1.ebuild
@@ -0,0 +1,62 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit autotools systemd
+
+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 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+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 )
+"
+BDEPEND="virtual/pkgconfig"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-2.3.15.4-0001-configure.ac-use-AC_USE_SYSTEM_EXTENSIONS.patch
+ "${FILESDIR}"/${PN}-2.3.15.4-0002-redirect-drop-deprecated-sys-signal.h-include.patch
+)
+
+src_prepare() {
+ default
+
+ sed -i \
+ -e 's:/usr/bin/kill:/bin/kill:' \
+ "contrib/${PN}.service" || die
+
+ 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 "contrib/${PN}.service"
+
+ newdoc contrib/xinetd.conf xinetd.conf.dist.sample
+ dodoc README.md CHANGELOG
+}