Procházet zdrojové kódy

package/xinetd: bump version to 2.3.15.4

Switched to maintained fork:
https://github.com/xinetd-org/xinetd/issues/30

Removed all patches, they are either included in this release or not
needed anymore.

uClibc builds are broken due to missing ecvt/fcvt functions:
https://cgit.uclibc-ng.org/cgi/cgit/uclibc-ng.git/tree/include/stdlib.h?h=v1.0.55#n830
needed by
https://github.com/openSUSE/xinetd/blob/master/src/sio/sprint.c#L176

Added -std=gnu17 to CFLAGS as per upstream recommendation to fix build
errors with newer gcc: https://github.com/openSUSE/xinetd/issues/49

COPYRIGHT file has changed with the following changes:

+Modifications:
+Version 2.3.15.x
+Copyright 2017 SUSE LINUX GmbH and other parties

Fixes:

  https://autobuild.buildroot.net/results/399108140f1932e867e2907c5fa1be2add53beab/

Note: this also fixes issues affecting 2025.02.x, but there is no
simple backport to address those issues. Therefore, the most
reasonable option is probably to take this version bump in 2025.02.x.

Signed-off-by: Bernd Kuhls <bernd@kuhls.net>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Bernd Kuhls před 1 měsícem
rodič
revize
4ced81d0b4

+ 0 - 4
.checkpackageignore

@@ -1081,10 +1081,6 @@ package/xen/0001-9pfs-include-linux-limits.h-for-XATTR_SIZE_MAX.patch lib_patch.
 package/xen/0002-Fix-build-with-64-bits-time_t.patch lib_patch.Upstream
 package/xen/0003-libs-light-fix-tv_sec-printf-format.patch lib_patch.Upstream
 package/xen/0004-libs-light-fix-tv_sec-fprintf-format.patch lib_patch.Upstream
-package/xinetd/0001-ar.patch lib_patch.Upstream
-package/xinetd/0002-destdir.patch lib_patch.Upstream
-package/xinetd/0003-rpc-fix.patch lib_patch.Upstream
-package/xinetd/0004-configure-rlim_t.patch lib_patch.Upstream
 package/xl2tp/xl2tpd lib_shellscript.TrailingSpace
 package/xml-security-c/0001-fix-build-with-libressl-3.5.0.patch lib_patch.Upstream
 package/yajl/0001-Let-the-shared-and-the-static-library-have-the-same-.patch lib_patch.Upstream

+ 0 - 74
package/xinetd/0001-ar.patch

@@ -1,74 +0,0 @@
-This patch changes all of the hard-coded invocations of "ar" to $(AR), to
-support a cross-compilation toolchain.
-
-The content of this patch was copied from the OpenWrt project:
-https://dev.openwrt.org/browser/packages/net/xinetd/patches/001-ar.patch
-
-Signed-off-by: Danomi Manchego <danomimanchego123@gmail.com>
-
---- a/libs/src/misc/Makefile.in
-+++ b/libs/src/misc/Makefile.in
-@@ -62,7 +62,7 @@
- 
- 
- $(LIBNAME): $(OBJECTS)
--	ar r $@ $?
-+	$(AR) r $@ $?
- 	$(RANLIB) $@
- 
- install: $(LIBNAME)
---- a/libs/src/portable/Makefile.in
-+++ b/libs/src/portable/Makefile.in
-@@ -57,7 +57,7 @@
- 
- 
- $(LIBNAME): $(OBJECTS)
--	ar r $@ $?
-+	$(AR) r $@ $?
- 	$(RANLIB) $@
- 
- install: $(LIBNAME)
---- a/libs/src/pset/Makefile.in
-+++ b/libs/src/pset/Makefile.in
-@@ -53,7 +53,7 @@
- 	mv $(LIBNAME) $(LIBDIR)/optimized
- 
- $(LIBNAME): $(OBJECTS)
--	ar r $@ $?
-+	$(AR) r $@ $?
- 	$(RANLIB) $@
- 
- install: $(LIBNAME)
---- a/libs/src/sio/Makefile.in
-+++ b/libs/src/sio/Makefile.in
-@@ -52,7 +52,7 @@
- 	$(INSTALL) $(FMODE) $(LIBNAME) $(LIBDIR)/optimized
- 
- $(LIBNAME): $(OBJECTS)
--	ar r $@ $?
-+	$(AR) r $@ $?
- 	$(RANLIB) $@
- 
- install: $(LIBNAME)
---- a/libs/src/str/Makefile.in
-+++ b/libs/src/str/Makefile.in
-@@ -63,7 +63,7 @@
- 	$(INSTALL) $(FMODE) $(LIBNAME) $(LIBDIR)-O
- 
- $(LIBNAME): $(OBJECTS)
--	ar r $@ $?
-+	$(AR) r $@ $?
- 	$(RANLIB) $@
- 
- LINT_IGNORE=possible pointer alignment|RCSid unused
---- a/libs/src/xlog/Makefile.in
-+++ b/libs/src/xlog/Makefile.in
-@@ -58,7 +58,7 @@
- 	$(INSTALL) $(FMODE) $(LIBNAME) $(LIBDIR)/optimized
- 
- $(LIBNAME): $(OBJECTS)
--	ar r $@ $?
-+	$(AR) r $@ $?
- 	$(RANLIB) $@
- 
- install: $(LIBNAME)

+ 0 - 55
package/xinetd/0002-destdir.patch

@@ -1,55 +0,0 @@
-This patch adds $(DESTDIR) to xinetd's installation paths, to support 
-installation to a cross-compiled RFS area.
-
-The content of this patch was inspired by the OpenWrt project:
-https://dev.openwrt.org/browser/packages/net/xinetd/patches/002-destdir.patch
-
-Signed-off-by: Danomi Manchego <danomimanchego123@gmail.com>
-
-diff -urN xinetd-2.3.15.ORIG/Makefile.in xinetd-2.3.15/Makefile.in
---- xinetd-2.3.15.ORIG/Makefile.in	2007-09-20 13:01:52.000000000 -0400
-+++ xinetd-2.3.15/Makefile.in	2012-06-18 10:20:00.540864388 -0400
-@@ -75,27 +75,27 @@
- 
- install: build
- 	for i in $(DAEMONDIR) $(BINDIR) $(MANDIR)/man5 $(MANDIR)/man8 ; do \
--	   test -d $$i || mkdir -p $$i ; done
--	$(INSTALL_CMD) -m 755 xinetd/xinetd $(DAEMONDIR)
--	$(INSTALL_CMD) -m 755 xinetd/itox $(DAEMONDIR)
--	$(INSTALL_CMD) -m 755 $(SRCDIR)/xinetd/xconv.pl $(DAEMONDIR)
--	$(INSTALL_CMD) -m 644 $(SRCDIR)/xinetd/xinetd.conf.man $(MANDIR)/man5/xinetd.conf.5
--	$(INSTALL_CMD) -m 644 $(SRCDIR)/xinetd/xinetd.log.man $(MANDIR)/man8/xinetd.log.8
--	$(INSTALL_CMD) -m 644 $(SRCDIR)/xinetd/xinetd.man $(MANDIR)/man8/xinetd.8
--	$(INSTALL_CMD) -m 644 $(SRCDIR)/xinetd/itox.8 $(MANDIR)/man8/itox.8
--	$(INSTALL_CMD) -m 644 $(SRCDIR)/xinetd/xconv.pl.8 $(MANDIR)/man8/xconv.pl.8
-+	   test -d $(DESTDIR)$$i || mkdir -p $(DESTDIR)$$i ; done
-+	$(INSTALL_CMD) -m 755 xinetd/xinetd $(DESTDIR)$(DAEMONDIR)
-+	$(INSTALL_CMD) -m 755 xinetd/itox $(DESTDIR)$(DAEMONDIR)
-+	$(INSTALL_CMD) -m 755 $(SRCDIR)/xinetd/xconv.pl $(DESTDIR)$(DAEMONDIR)
-+	$(INSTALL_CMD) -m 644 $(SRCDIR)/xinetd/xinetd.conf.man $(DESTDIR)$(MANDIR)/man5/xinetd.conf.5
-+	$(INSTALL_CMD) -m 644 $(SRCDIR)/xinetd/xinetd.log.man $(DESTDIR)$(MANDIR)/man8/xinetd.log.8
-+	$(INSTALL_CMD) -m 644 $(SRCDIR)/xinetd/xinetd.man $(DESTDIR)$(MANDIR)/man8/xinetd.8
-+	$(INSTALL_CMD) -m 644 $(SRCDIR)/xinetd/itox.8 $(DESTDIR)$(MANDIR)/man8/itox.8
-+	$(INSTALL_CMD) -m 644 $(SRCDIR)/xinetd/xconv.pl.8 $(DESTDIR)$(MANDIR)/man8/xconv.pl.8
- 	@echo "You must put your xinetd.conf in /etc/xinetd.conf"
- 	@echo "There is a sample config file in xinetd/sample.conf and you can"
- 	@echo "use xconv.pl to convert your old inetd.conf file to an xinetd format"
- 
- uninstall:
--	rm -f $(DAEMONDIR)/xinetd
--	rm -f $(DAEMONDIR)/itox
--	rm -f $(DAEMONDIR)/xconv.pl
--	rm -f $(MANDIR)/man5/xinetd.conf.5
--	rm -f $(MANDIR)/man8/xinetd.log.8
--	rm -f $(MANDIR)/man8/xinetd.8
--	rm -f $(MANDIR)/man8/itox.8
-+	rm -f $(DESTDIR)$(DAEMONDIR)/xinetd
-+	rm -f $(DESTDIR)$(DAEMONDIR)/itox
-+	rm -f $(DESTDIR)$(DAEMONDIR)/xconv.pl
-+	rm -f $(DESTDIR)$(MANDIR)/man5/xinetd.conf.5
-+	rm -f $(DESTDIR)$(MANDIR)/man8/xinetd.log.8
-+	rm -f $(DESTDIR)$(MANDIR)/man8/xinetd.8
-+	rm -f $(DESTDIR)$(MANDIR)/man8/itox.8
-  
- distclean: clean
- 	rm -f config.cache config.log Makefile config.status xinetd/itox

+ 0 - 26
package/xinetd/0003-rpc-fix.patch

@@ -1,26 +0,0 @@
-This patch fixes compiling xinetd without RPC support.
-
-The content of this patch was copied from the OpenWrt project:
-https://dev.openwrt.org/browser/packages/net/xinetd/patches/003-rpc_fix.patch
-
-Signed-off-by: Danomi Manchego <danomimanchego123@gmail.com>
-
---- a/xinetd/confparse.c
-+++ b/xinetd/confparse.c
-@@ -745,7 +745,7 @@ static status_e check_entry( struct serv
- 	   }
-    }
- 
--/* #ifndef NO_RPC */
-+#ifndef NO_RPC
- #if defined(HAVE_RPC_RPCENT_H) || defined(HAVE_NETDB_H)
-    if ( SC_IS_RPC( scp ) && !SC_IS_UNLISTED( scp ) )
-    {
-@@ -759,6 +759,7 @@ static status_e check_entry( struct serv
-       SC_RPCDATA( scp )->rd_program_number = rep->r_number ;
-    }
-    else
-+#endif
- #endif   /* ! NO_RPC */
-    {
-        if ( !SC_IS_UNLISTED( scp ) ) 

+ 0 - 18
package/xinetd/0004-configure-rlim_t.patch

@@ -1,18 +0,0 @@
-Have the configure script look for rlim_t in <sys/resource.h>
-
-That's where POSIX says it should be. Some libcs will include its
-definition via <sys/types.h> as well, but musl doesn't.
-
-Signed-off-by: Maarten ter Huurne <maarten@treewalker.org>
-
---- xinetd-2.3.15.orig/configure	2007-09-20 16:58:27.000000000 +0200
-+++ xinetd-2.3.15/configure	2014-09-16 17:20:22.787665449 +0200
-@@ -7909,7 +7909,7 @@
- cat confdefs.h >>conftest.$ac_ext
- cat >>conftest.$ac_ext <<_ACEOF
- /* end confdefs.h.  */
--#include <sys/types.h>
-+#include <sys/resource.h>
- #if STDC_HEADERS
- #include <stdlib.h>
- #endif

+ 0 - 31
package/xinetd/0005-CVE-2013-4342-xinetd-ignores-user-and-group-directiv.patch

@@ -1,31 +0,0 @@
-From 91e2401a219121eae15244a6b25d2e79c1af5864 Mon Sep 17 00:00:00 2001
-From: Thomas Swan <thomas.swan@gmail.com>
-Date: Wed, 2 Oct 2013 23:17:17 -0500
-Subject: [PATCH] CVE-2013-4342: xinetd: ignores user and group directives for
- TCPMUX services
-
-Originally reported to Debian in 2005 <http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=324678> and rediscovered <https://bugzilla.redhat.com/show_bug.cgi?id=1006100>, xinetd would execute TCPMUX services without dropping privilege to match the service configuration allowing the service to run with same privilege as the xinetd process (root).
-
-CVE: CVE-2013-4342
-Upstream: https://github.com/xinetd-org/xinetd/commit/e7c1ba41f4f86b436fb82b0d55cd5d387bd4ecc4
-Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
----
- xinetd/builtins.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/xinetd/builtins.c b/xinetd/builtins.c
-index 3b85579..34a5bac 100644
---- a/xinetd/builtins.c
-+++ b/xinetd/builtins.c
-@@ -617,7 +617,7 @@ static void tcpmux_handler( const struct server *serp )
-    if( SC_IS_INTERNAL( scp ) ) {
-       SC_INTERNAL(scp, nserp);
-    } else {
--      exec_server(nserp);
-+      child_process(nserp);
-    }
- }
- 
--- 
-2.20.1
-

+ 6 - 1
package/xinetd/Config.in

@@ -1,8 +1,13 @@
 config BR2_PACKAGE_XINETD
 	bool "xinetd"
 	depends on BR2_USE_MMU # fork()
+	depends on !BR2_TOOLCHAIN_USES_UCLIBC # no ecvt/fcvt
 	help
 	  xinetd is a secure replacement for inetd. It was originally
 	  written by panos@cs.colorado.edu.
 
-	  http://www.xinetd.org
+	  https://github.com/openSUSE/xinetd
+
+comment "xinetd needs a glibc or musl toolchain"
+	depends on BR2_USE_MMU
+	depends on BR2_TOOLCHAIN_USES_UCLIBC

+ 2 - 2
package/xinetd/xinetd.hash

@@ -1,3 +1,3 @@
 # locally computed
-sha256  620b25f4ab4d72fdf32b13797156ea40df2049f1c07e640177e5fec544e9a94c  xinetd-2.3.15.tar.gz
-sha256  2f3dd19831b1837f7360f80a7700a130c04a59e387d4359299d6df712308bbed  COPYRIGHT
+sha256  2baa581010bc70361abdfa37f121e92aeb9c5ce67f9a71913cebd69359cc9654  xinetd-2.3.15.4.tar.xz
+sha256  71c945b960d8f0666009d0486f0ac1f710c881c2b97b155187adbc98e07644da  COPYRIGHT

+ 14 - 4
package/xinetd/xinetd.mk

@@ -4,18 +4,28 @@
 #
 ################################################################################
 
-XINETD_VERSION = 2.3.15
-XINETD_SITE = \
-	$(call github,xinetd-org,xinetd,xinetd-$(subst .,-,$(XINETD_VERSION)))
+XINETD_VERSION = 2.3.15.4
+XINETD_SOURCE = xinetd-$(XINETD_VERSION).tar.xz
+XINETD_SITE = https://github.com/openSUSE/xinetd/releases/download/$(XINETD_VERSION)
 XINETD_LICENSE = xinetd license
 XINETD_LICENSE_FILES = COPYRIGHT
 XINETD_CPE_ID_VENDOR = xinetd
 
-# 0005-CVE-2013-4342-xinetd-ignores-user-and-group-directiv.patch
+# From NVD's standpoint, all versions are affected by CVE-2013-4342
+# since the official xinetd upstream never did a release with the
+# fix. However, the openSUSE fork we're using as the fix, in:
+# https://github.com/openSUSE/xinetd/commit/91e2401a219121eae15244a6b25d2e79c1af5864
 XINETD_IGNORE_CVES += CVE-2013-4342
 
 XINETD_CFLAGS = $(TARGET_CFLAGS)
 
+# gcc-15 defaults to -std=gnu23 which introduces build failures.
+# We force "-std=gnu17" for gcc version supporting it. Earlier gcc
+# versions will work, since they are using the older standard.
+ifeq ($(BR2_TOOLCHAIN_GCC_AT_LEAST_8),y)
+XINETD_CFLAGS += -std=gnu17
+endif
+
 # Three cases here:
 #  1. We have libtirpc, use it by passing special flags
 #  2. We have native RPC support, use it, no need to pass special