commit 1d3cab4d99ea40e92673d560097eb151d7dcec46
parent 945979a011e8035ffdff04dde6c4e08983df9ecd
Author: parazyd <parazyd@dyne.org>
Date: Thu, 6 Oct 2016 17:02:08 +0200
net-misc/telnet-bsd: Add 1.2-r99 with musl-libc support.
Diffstat:
5 files changed, 188 insertions(+), 0 deletions(-)
diff --git a/net-misc/telnet-bsd/Manifest b/net-misc/telnet-bsd/Manifest
@@ -0,0 +1 @@
+DIST telnet-bsd-1.2.tar.bz2 194518 SHA256 d6a9d26740ef75565cb1ed8ff11e327d240e6734748b2d1d2e96c126849e4733 SHA512 e3867362e1a2bc46779bcbc7631ccf08a0bfae84b71653e39099dc2db42995e5fcd39a978595006053e688430445db7ebb7a7bfbbb02a8e4dba209acbf66a69d WHIRLPOOL 673a5178f7c2305c9ad1ece9151d8d6c874ace147640f2d0e02a39f2641935af02fe42861c9ccc17b9f84e328c7e821f93ecf37dc3a86a9d1cf49700e7527f20
diff --git a/net-misc/telnet-bsd/files/fix-musl-build.patch b/net-misc/telnet-bsd/files/fix-musl-build.patch
@@ -0,0 +1,23 @@
+diff --git a/telnet/misc-proto.h b/telnet/misc-proto.h
+index 5845751..a4af2e1 100644
+--- a/telnet/misc-proto.h
++++ b/telnet/misc-proto.h
+@@ -63,7 +63,6 @@
+ #ifndef __MISC_PROTO__
+ #define __MISC_PROTO__
+
+-#include <sys/cdefs.h>
+
+ void auth_encrypt_init __P((char *, char *, char *, int));
+ void auth_encrypt_user __P((char *));
+diff --git a/telnet/ring.h b/telnet/ring.h
+index 9ef8fb8..a53fe39 100644
+--- a/telnet/ring.h
++++ b/telnet/ring.h
+@@ -28,7 +28,6 @@
+ *
+ */
+
+-#include <sys/cdefs.h>
+ #include <sys/types.h>
+ #define P __P
diff --git a/net-misc/telnet-bsd/files/telnet-bsd-1.2-fbsd.patch b/net-misc/telnet-bsd/files/telnet-bsd-1.2-fbsd.patch
@@ -0,0 +1,105 @@
+diff --git a/configure.in b/configure.in
+index 1547e9b..eda5fb1 100644
+--- a/configure.in
++++ b/configure.in
+@@ -12,6 +12,8 @@ ALL_LINGUAS="de"
+ AC_SUBST(PACKAGE)
+ AC_SUBST(VERSION)
+
++AC_CHECK_HEADERS([pty.h utmp.h])
++
+ if test x"$ac_default_prefix" = x"/usr"
+ then
+ if test x"${mandir}" = x'${prefix}/man'
+diff --git a/telnet/commands.c b/telnet/commands.c
+index c0d349c..fa2cf8a 100644
+--- a/telnet/commands.c
++++ b/telnet/commands.c
+@@ -29,11 +29,13 @@
+
+ #include "telnet_locl.h"
+ #include <err.h>
++#include <unistd.h>
+
+ #if defined(IPPROTO_IP) && defined(IP_TOS)
+ int tos = -1;
+ #endif /* defined(IPPROTO_IP) && defined(IP_TOS) */
+
++extern char **environ;
+ char *hostname;
+
+ typedef int (*intrtn_t) __P ((int, char **));
+diff --git a/telnet/ring.h b/telnet/ring.h
+index 66f7191..9ef8fb8 100644
+--- a/telnet/ring.h
++++ b/telnet/ring.h
+@@ -29,6 +29,7 @@
+ */
+
+ #include <sys/cdefs.h>
++#include <sys/types.h>
+ #define P __P
+
+ /*
+diff --git a/telnetd/setproctitle.c b/telnetd/setproctitle.c
+index f332277..b2adc92 100644
+--- a/telnetd/setproctitle.c
++++ b/telnetd/setproctitle.c
+@@ -72,6 +72,7 @@ char setproctitle_rcsid[] =
+ static char **Argv = NULL; /* pointer to argument vector */
+ static char *LastArgv = NULL; /* end of argv */
+ static char Argv0[128]; /* program name */
++extern char **environ;
+
+ void
+ initsetproctitle(int argc, char **argv, char **envp)
+@@ -86,10 +87,10 @@ initsetproctitle(int argc, char **argv, char **envp)
+
+ for (i = 0; envp[i] != NULL; i++)
+ continue;
+- __environ = (char **) malloc(sizeof (char *) * (i + 1));
++ environ = (char **) malloc(sizeof (char *) * (i + 1));
+ for (i = 0; envp[i] != NULL; i++)
+- __environ[i] = strdup(envp[i]);
+- __environ[i] = NULL;
++ environ[i] = strdup(envp[i]);
++ environ[i] = NULL;
+
+ /*
+ ** Save start and extent of argv for setproctitle.
+diff --git a/telnetd/sys_term.c b/telnetd/sys_term.c
+index 1235428..6fcc601 100644
+--- a/telnetd/sys_term.c
++++ b/telnetd/sys_term.c
+@@ -27,8 +27,15 @@
+ * SUCH DAMAGE.
+ */
+
++#include <config.h>
++
++#include <sys/types.h>
++#ifdef HAVE_UTMP_H
+ #include <utmp.h>
++#endif
++#ifdef HAVE_PTY_H
+ #include <pty.h>
++#endif
+
+ #include "telnetd.h"
+ #include "pathnames.h"
+@@ -820,6 +827,7 @@ addarg (struct argv_stuff *avs, const char *val)
+ void
+ cleanup (int sig)
+ {
++#if !defined(__FreeBSD__) || __FreeBSD__ < 9
+ sigset_t sigset;
+ char *p;
+ (void) sig;
+@@ -847,6 +855,7 @@ cleanup (int sig)
+ *p = 'p';
+ chmod (line, 0666);
+ chown (line, 0, 0);
++#endif
+ shutdown (net, 2);
+ exit (1);
+ }
diff --git a/net-misc/telnet-bsd/files/telnetd.xinetd b/net-misc/telnet-bsd/files/telnetd.xinetd
@@ -0,0 +1,10 @@
+service telnet
+{
+ flags = REUSE
+ socket_type = stream
+ wait = no
+ user = root
+ server = /usr/sbin/in.telnetd
+ log_on_failure += USERID
+ disable = yes
+}
diff --git a/net-misc/telnet-bsd/telnet-bsd-1.2-r99.ebuild b/net-misc/telnet-bsd/telnet-bsd-1.2-r99.ebuild
@@ -0,0 +1,49 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+inherit eutils autotools toolchain-funcs
+
+DESCRIPTION="Telnet and telnetd ported from OpenBSD with IPv6 support"
+HOMEPAGE="ftp://ftp.suse.com/pub/people/kukuk/ipv6/"
+SRC_URI="ftp://ftp.suse.com/pub/people/kukuk/ipv6/${P}.tar.bz2"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="alpha amd64 arm hppa ia64 m68k ppc ppc64 s390 sh sparc x86 ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~x64-macos"
+IUSE="nls xinetd"
+
+RDEPEND="sys-libs/ncurses:="
+DEPEND="${RDEPEND}
+ !net-misc/netkit-telnetd
+ xinetd? ( sys-apps/xinetd )
+ virtual/pkgconfig"
+
+src_prepare() {
+ epatch "${FILESDIR}"/${P}-fbsd.patch
+ epatch "${FILESDIR}"/fix-musl-build.patch
+ eaclocal
+ eautoreconf
+}
+
+src_configure() {
+ # FreeBSD doesn't seem to support PIE neither does hppa
+ if use kernel_FreeBSD; then
+ export libc_cv_fpie="no"
+ fi
+
+ econf
+ emake LIBS="$("$(tc-getPKG_CONFIG)" --libs ncurses)"
+}
+
+src_install() {
+ emake DESTDIR="${D}" install
+
+ if use xinetd ; then
+ insinto /etc/xinetd.d
+ newins "${FILESDIR}"/telnetd.xinetd telnetd
+ fi
+
+ dodoc README THANKS NEWS AUTHORS ChangeLog INSTALL
+}