diff --git a/sys-apps/xinetd/patches/xinetd-2.3.14.patch b/sys-apps/xinetd/patches/xinetd-2.3.15.patchset similarity index 68% rename from sys-apps/xinetd/patches/xinetd-2.3.14.patch rename to sys-apps/xinetd/patches/xinetd-2.3.15.patchset index 928312700..d89488b90 100644 --- a/sys-apps/xinetd/patches/xinetd-2.3.14.patch +++ b/sys-apps/xinetd/patches/xinetd-2.3.15.patchset @@ -1,7 +1,14 @@ -diff -urN xinetd-2.3.14/Makefile.in xinetd-2.3.14-haiku/Makefile.in ---- xinetd-2.3.14/Makefile.in 2003-08-15 14:00:45.017039360 +0000 -+++ xinetd-2.3.14-haiku/Makefile.in 2011-01-20 16:23:31.770965504 +0000 -@@ -76,26 +76,26 @@ +From 54208b419757982ed670e2b875fb22b39385f3f6 Mon Sep 17 00:00:00 2001 +From: Begasus +Date: Sat, 28 Apr 2018 13:06:05 +0200 +Subject: import previous patch + + +diff --git a/Makefile.in b/Makefile.in +index a629a1f..403f049 100644 +--- a/Makefile.in ++++ b/Makefile.in +@@ -76,26 +76,26 @@ dlibxlog: dlibsio dlibstr install: build for i in $(DAEMONDIR) $(BINDIR) $(MANDIR)/man5 $(MANDIR)/man8 ; do \ test -d $$i || mkdir -p $$i ; done @@ -43,10 +50,11 @@ diff -urN xinetd-2.3.14/Makefile.in xinetd-2.3.14-haiku/Makefile.in distclean: clean rm -f config.cache config.log Makefile config.status xinetd/itox -diff -urN xinetd-2.3.14/configure.in xinetd-2.3.14-haiku/configure.in ---- xinetd-2.3.14/configure.in 2005-03-30 23:15:28.006815744 +0000 -+++ xinetd-2.3.14-haiku/configure.in 2011-01-20 15:05:58.205783040 +0000 -@@ -7,9 +7,9 @@ +diff --git a/configure.in b/configure.in +index be80dce..cdf510c 100644 +--- a/configure.in ++++ b/configure.in +@@ -7,9 +7,9 @@ AC_PROG_INSTALL AC_PROG_RANLIB AC_CHECK_LIB(compat, main) @@ -59,7 +67,7 @@ diff -urN xinetd-2.3.14/configure.in xinetd-2.3.14-haiku/configure.in AC_CHECK_FUNCS(getnameinfo inet_ntop) AC_CHECK_FUNCS(difftime, , AC_CHECK_LIB(m, difftime)) -@@ -27,8 +27,9 @@ +@@ -27,8 +27,9 @@ AC_CHECK_FUNC(socket, , AC_CHECK_LIB(nsl, socket))) AC_CHECK_FUNC(inet_aton, , AC_CHECK_LIB(nsl, inet_aton, , @@ -70,9 +78,10 @@ diff -urN xinetd-2.3.14/configure.in xinetd-2.3.14-haiku/configure.in AC_CHECK_FUNC(setenv,[AC_DEFINE(HAVE_SETENV)]) AC_CHECK_FUNC(strsignal, [AC_DEFINE(HAVE_STRSIGNAL)]) AC_CHECK_LIB(c, sys_siglist, [AC_DEFINE(HAVE_SYS_SIGLIST)]) -diff -urN xinetd-2.3.14/libs/src/sio/sio.c xinetd-2.3.14-haiku/libs/src/sio/sio.c ---- xinetd-2.3.14/libs/src/sio/sio.c 2003-06-01 21:57:23.013369344 +0000 -+++ xinetd-2.3.14-haiku/libs/src/sio/sio.c 2011-01-20 15:47:03.457441280 +0000 +diff --git a/libs/src/sio/sio.c b/libs/src/sio/sio.c +index 1b4f542..f815dc0 100644 +--- a/libs/src/sio/sio.c ++++ b/libs/src/sio/sio.c @@ -10,7 +10,7 @@ #include #endif @@ -82,9 +91,10 @@ diff -urN xinetd-2.3.14/libs/src/sio/sio.c xinetd-2.3.14-haiku/libs/src/sio/sio. #undef HAVE_MMAP #endif -diff -urN xinetd-2.3.14/libs/src/sio/siosup.c xinetd-2.3.14-haiku/libs/src/sio/siosup.c ---- xinetd-2.3.14/libs/src/sio/siosup.c 2003-09-06 14:41:59.013893632 +0000 -+++ xinetd-2.3.14-haiku/libs/src/sio/siosup.c 2011-01-20 15:06:05.893386752 +0000 +diff --git a/libs/src/sio/siosup.c b/libs/src/sio/siosup.c +index de68ee2..b4c4414 100644 +--- a/libs/src/sio/siosup.c ++++ b/libs/src/sio/siosup.c @@ -13,7 +13,7 @@ #include #include @@ -94,10 +104,11 @@ diff -urN xinetd-2.3.14/libs/src/sio/siosup.c xinetd-2.3.14-haiku/libs/src/sio/s #undef HAVE_MMAP #endif -diff -urN xinetd-2.3.14/xinetd/child.c xinetd-2.3.14-haiku/xinetd/child.c ---- xinetd-2.3.14/xinetd/child.c 2004-12-23 21:46:02.018350080 +0000 -+++ xinetd-2.3.14-haiku/xinetd/child.c 2011-01-20 16:01:02.000000000 +0000 -@@ -313,7 +313,11 @@ +diff --git a/xinetd/child.c b/xinetd/child.c +index e7781b6..f237da1 100644 +--- a/xinetd/child.c ++++ b/xinetd/child.c +@@ -338,7 +338,11 @@ void child_process( struct server *serp ) { set_credentials( scp ) ; if ( SC_SPECIFIED( scp, A_NICE ) ) @@ -109,10 +120,11 @@ diff -urN xinetd-2.3.14/xinetd/child.c xinetd-2.3.14-haiku/xinetd/child.c } if ( svc_child_access_control(sp, cp) != OK ) -diff -urN xinetd-2.3.14/xinetd/confparse.c xinetd-2.3.14-haiku/xinetd/confparse.c ---- xinetd-2.3.14/xinetd/confparse.c 2005-04-08 21:35:48.018612224 +0000 -+++ xinetd-2.3.14-haiku/xinetd/confparse.c 2011-01-20 15:27:06.675282944 +0000 -@@ -716,8 +716,8 @@ +diff --git a/xinetd/confparse.c b/xinetd/confparse.c +index b277bf9..d9d651d 100644 +--- a/xinetd/confparse.c ++++ b/xinetd/confparse.c +@@ -745,8 +745,8 @@ static status_e check_entry( struct service_config *scp, } } @@ -123,9 +135,10 @@ diff -urN xinetd-2.3.14/xinetd/confparse.c xinetd-2.3.14-haiku/xinetd/confparse. if ( SC_IS_RPC( scp ) && !SC_IS_UNLISTED( scp ) ) { struct rpcent *rep = (struct rpcent *)getrpcbyname( SC_NAME(scp) ) ; -diff -urN xinetd-2.3.14/xinetd/server.h xinetd-2.3.14-haiku/xinetd/server.h ---- xinetd-2.3.14/xinetd/server.h 2003-08-06 06:12:10.024641536 +0000 -+++ xinetd-2.3.14-haiku/xinetd/server.h 2011-01-20 11:31:20.000000000 +0000 +diff --git a/xinetd/server.h b/xinetd/server.h +index 43b282a..44fee7b 100644 +--- a/xinetd/server.h ++++ b/xinetd/server.h @@ -24,6 +24,9 @@ typedef int pid_t ; #endif @@ -136,9 +149,10 @@ diff -urN xinetd-2.3.14/xinetd/server.h xinetd-2.3.14-haiku/xinetd/server.h /* * This struct describes running servers -diff -urN xinetd-2.3.14/xinetd/signals.h xinetd-2.3.14-haiku/xinetd/signals.h ---- xinetd-2.3.14/xinetd/signals.h 2003-02-19 17:29:28.025165824 +0000 -+++ xinetd-2.3.14-haiku/xinetd/signals.h 2011-01-20 15:02:27.000000000 +0000 +diff --git a/xinetd/signals.h b/xinetd/signals.h +index 6acf97c..3aaf0b8 100644 +--- a/xinetd/signals.h ++++ b/xinetd/signals.h @@ -6,6 +6,10 @@ #ifndef _X_SIGNALS #define _X_SIGNALS @@ -150,9 +164,10 @@ diff -urN xinetd-2.3.14/xinetd/signals.h xinetd-2.3.14-haiku/xinetd/signals.h #include "defs.h" #if defined(NO_POSIX_SIGS) -diff -urN xinetd-2.3.14/xinetd/util.h xinetd-2.3.14-haiku/xinetd/util.h ---- xinetd-2.3.14/xinetd/util.h 2005-10-05 21:45:41.026214400 +0000 -+++ xinetd-2.3.14-haiku/xinetd/util.h 2011-01-20 11:46:15.000000000 +0000 +diff --git a/xinetd/util.h b/xinetd/util.h +index f46563d..d94730d 100644 +--- a/xinetd/util.h ++++ b/xinetd/util.h @@ -4,6 +4,10 @@ #include "pset.h" #include "defs.h" @@ -164,3 +179,29 @@ diff -urN xinetd-2.3.14/xinetd/util.h xinetd-2.3.14-haiku/xinetd/util.h void out_of_memory(const char *func); const struct name_value *nv_find_value(const struct name_value nv_array[],const char *name); const struct name_value *nv_find_name(const struct name_value nv_array[],int value); +-- +2.16.2 + + +From 704349f11c61e50a55b5258b059fc9aad8e4b602 Mon Sep 17 00:00:00 2001 +From: begasus +Date: Sat, 28 Apr 2018 13:11:59 +0200 +Subject: add a fix for CVE-2013-4342 + + +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.16.2 + diff --git a/sys-apps/xinetd/xinetd-2.3.14.recipe b/sys-apps/xinetd/xinetd-2.3.14.recipe deleted file mode 100644 index 6d0e0b3c1..000000000 --- a/sys-apps/xinetd/xinetd-2.3.14.recipe +++ /dev/null @@ -1,45 +0,0 @@ -DESCRIPTION="powerful replacement for inetd" -HOMEPAGE="http://www.xinetd.org/" -SOURCE_URI="http://www.xinetd.org/xinetd-2.3.14.tar.gz" -REVISION="1" -STATUS_HAIKU="stable" -DEPEND="" -CHECKSUM_MD5="567382d7972613090215c6c54f9b82d9" -BUILD() -{ - cd xinetd-2.3.14 - - # if we don't have rpc/rpc.h then why does it still try to use it?? - # let's change the #ifndef NO_RPC to #ifdef HAVE_RPC_RPC - sed -i 's/ndef NO_RPC/def HAVE_RPC_RPC/g' xinetd/*.c - - # workaround while (SIGBUS == SIGSEGV) on HAIKU - sed -i 's/case SIGBUS:/\n/g' xinetd/signals.c - - # save rlim_t - sed -i 's/XINETD_CHECK_TYPE(rlim_t/dnl XINETD_CHECK_TYPE(rlim_t/' configure.in - - libtoolize --force --copy --install - aclocal - autoconf - mkdir -p ${DESTDIR}/`finddir B_COMMON_BIN_DIRECTORY` - mkdir -p ${DESTDIR}/`finddir B_COMMON_DOCUMENTATION_DIRECTORY`/man/man5 - mkdir -p ${DESTDIR}/`finddir B_COMMON_DOCUMENTATION_DIRECTORY`/man/man8 - ./configure --prefix=`finddir B_COMMON_DIRECTORY` \ - --sbindir=`finddir B_COMMON_BIN_DIRECTORY` \ - --mandir=`finddir B_COMMON_DOCUMENTATION_DIRECTORY`/man - make -} - -INSTALL() -{ - cd xinetd-2.3.14 - mkdir -p ${DESTDIR}/`finddir B_COMMON_BIN_DIRECTORY` - mkdir -p ${DESTDIR}/`finddir B_COMMON_DOCUMENTATION_DIRECTORY`/man/man5 - mkdir -p ${DESTDIR}/`finddir B_COMMON_DOCUMENTATION_DIRECTORY`/man/man8 - make install DESTDIR=${DESTDIR} -} - -LICENSE="Xinetd" -COPYRIGHT="1992 by Panagiotis Tsirigotis - 1998-2001 by Rob Braun" diff --git a/sys-apps/xinetd/xinetd-2.3.15.recipe b/sys-apps/xinetd/xinetd-2.3.15.recipe new file mode 100644 index 000000000..d1c43fca5 --- /dev/null +++ b/sys-apps/xinetd/xinetd-2.3.15.recipe @@ -0,0 +1,62 @@ +SUMMARY="A secure replacement for inetd" +DESCRIPTION="powerful replacement for inetd" +HOMEPAGE="https://github.com/xinetd-org/xinetd" +COPYRIGHT="1992 Panagiotis Tsirigotis + 1998-2001 Rob Braun" +LICENSE="Xinetd" +REVISION="1" +SOURCE_URI="https://github.com/xinetd-org/xinetd/archive/xinetd-${portVersion//\./-}.tar.gz" +CHECKSUM_SHA256="620b25f4ab4d72fdf32b13797156ea40df2049f1c07e640177e5fec544e9a94c" +SOURCE_DIR="xinetd-xinetd-${portVersion//\./-}" +PATCHES="xinetd-$portVersion.patchset" + +ARCHITECTURES="?x86_gcc2 ?x86_64" + +PROVIDES=" + xinetd = $portVersion + cmd:itox = $portVersion + cmd:xconv.pl = $portVersion + cmd:xinetd = $portVersion + " +REQUIRES=" + haiku + " + +BUILD_REQUIRES=" + haiku_devel + " +BUILD_PREREQUIRES=" + cmd:aclocal + cmd:autoconf + cmd:gcc + cmd:libtoolize + cmd:make + cmd:perl + " + +PATCH() +{ + # if we don't have rpc/rpc.h then why does it still try to use it?? + # let's change the #ifndef NO_RPC to #ifdef HAVE_RPC_RPC + sed -i 's/ndef NO_RPC/def HAVE_RPC_RPC/g' xinetd/*.c + + # workaround while (SIGBUS == SIGSEGV) on HAIKU + sed -i 's/case SIGBUS:/\n/' xinetd/signals.c + + # save rlim_t + sed -i 's/XINETD_CHECK_TYPE(rlim_t/dnl &/' configure.in +} + +BUILD() +{ + libtoolize --force --copy --install + aclocal + autoconf + runConfigure ./configure + make $jobArgs +} + +INSTALL() +{ + make install +}