diff options
author | Sam James <sam@gentoo.org> | 2022-09-10 14:06:33 +0100 |
---|---|---|
committer | Sam James <sam@gentoo.org> | 2022-09-10 14:29:54 +0100 |
commit | 33bd8437e8964991053c4ec1897ec015f84d577d (patch) | |
tree | 2bc43cd9a150d701a99da79e12ae4a13a868d771 /sys-apps/xinetd | |
parent | dev-libs/libcgroup: add 3.0.0 (diff) | |
download | gentoo-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>
Diffstat (limited to 'sys-apps/xinetd')
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 +} |