app-misc/ckermit: import from upstream

BUG=None
TEST=`emerge-{x86,amd64,arm}-generic ckermit`

Change-Id: I54f9c58434eb52161aba03d4ae6c35998776aa33
Reviewed-on: https://gerrit.chromium.org/gerrit/58030
Commit-Queue: Ben Chan <benchan@chromium.org>
Tested-by: Ben Chan <benchan@chromium.org>
Reviewed-by: Mike Frysinger <vapier@chromium.org>
diff --git a/app-misc/ckermit/Manifest b/app-misc/ckermit/Manifest
new file mode 100644
index 0000000..2a5442b
--- /dev/null
+++ b/app-misc/ckermit/Manifest
@@ -0,0 +1 @@
+DIST cku211.tar.gz 2878523 SHA256 39e7cd4892502344a635952843487d9b4bfa98e59d1e1acad5ef8aa969abba93 SHA512 470bf56d5b5f30721d0030ff89a5cd845f365dba81d097942524cc04dd620070678d278d1009fb67bae3cb875715808cbbfc7c0358b9671f30c65ce1d9bd35ad WHIRLPOOL 160aee04d5f5c425ebb2011b71923257deb154cf1ca7070208cd8a2253189ff5529940c3b1deb7fc5280f5d9ff8f699dff8ebab3881584439b96da251b0c9435
diff --git a/app-misc/ckermit/ckermit-8.0.211-r4.ebuild b/app-misc/ckermit/ckermit-8.0.211-r4.ebuild
new file mode 100644
index 0000000..a6f2582
--- /dev/null
+++ b/app-misc/ckermit/ckermit-8.0.211-r4.ebuild
@@ -0,0 +1,76 @@
+# Copyright 1999-2013 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/app-misc/ckermit/ckermit-8.0.211-r4.ebuild,v 1.5 2013/06/10 17:42:53 vapier Exp $
+
+EAPI="4"
+
+inherit versionator eutils flag-o-matic toolchain-funcs
+
+# Columbia University only uses the third component, e.g. cku211.tar.gz for
+# what we would call 8.0.211.
+MY_P="cku$( get_version_component_range 3 ${PV} )"
+
+DESCRIPTION="combined serial and network communication software package"
+SRC_URI="ftp://kermit.columbia.edu/kermit/archives/${MY_P}.tar.gz"
+HOMEPAGE="http://www.kermit-project.org/"
+
+LICENSE="Kermit"
+SLOT="0"
+KEYWORDS="amd64 arm ~hppa ppc ppc64 x86"
+IUSE="ncurses"
+
+DEPEND="ncurses? ( >=sys-libs/ncurses-5.2 )"
+RDEPEND="${DEPEND}
+	net-dialup/lrzsz"
+
+S=${WORKDIR}
+
+src_prepare() {
+	epatch "${FILESDIR}"/${P}-cleanup.patch
+	epatch "${FILESDIR}"/${P}-build-wart.patch
+	tc-export_build_env BUILD_CC
+	sed -i -r \
+		-e 's:"(CC2?) = gcc":"\1=$(CC)":g' \
+		-e 's:"CFLAGS = -O:"CFLAGS = $(CFLAGS):' \
+		makefile || die
+}
+
+ck_use() {
+	use $1 && append-cppflags $2 && libs+=" $3"
+}
+src_compile() {
+	# we don't enable any of the telnet/ftp authentication stuff
+	# since there are other packages which do these things better
+	# USE="kerberos pam shadow ssl zlib"
+	append-cppflags -DNO_AUTHENTICATION -DNOLOGIN -DNOFTP
+
+	local libs
+	ck_use ncurses -DCK_NCURSES -lncurses
+	append-cppflags -DHAVE_PTMX -D_XOPEN_SOURCE -D_BSD_SOURCE #202840
+	append-cppflags -DHAVE_CRYPT_H
+	emake \
+		CC="$(tc-getCC)" \
+		KFLAGS="${CPPFLAGS}" \
+		LIBS="-lcrypt -lresolv ${libs}" \
+		LNKFLAGS="${LDFLAGS}" \
+		linuxa
+}
+
+src_install() {
+	dodir /usr/bin /usr/share/man/man1
+	emake \
+		DESTDIR="${ED}" \
+		BINDIR=/usr/bin \
+		MANDIR="${ED}"/usr/share/man/man1 \
+		MANEXT=1 \
+		install
+	dodoc *.txt
+
+	# make the correct symlink
+	rm "${ED}"/usr/bin/kermit-sshsub || die
+	dosym /usr/bin/kermit /usr/bin/kermit-sshsub
+
+	# the ckermit.ini script is calling the wrong kermit binary --
+	# the one from ${D}
+	sed -i "s:${D}::g" "${ED}"/usr/bin/ckermit.ini
+}
diff --git a/app-misc/ckermit/files/ckermit-8.0.211-build-wart.patch b/app-misc/ckermit/files/ckermit-8.0.211-build-wart.patch
new file mode 100644
index 0000000..59f28a9
--- /dev/null
+++ b/app-misc/ckermit/files/ckermit-8.0.211-build-wart.patch
@@ -0,0 +1,23 @@
+the wart util is used at build time only, so use BUILD_* so we can cross-compile
+
+--- a/makefile
++++ b/makefile
+@@ -1406,12 +1406,17 @@
+ 
+ ckctel.$(EXT): ckcsym.h ckcdeb.h ckcker.h ckcnet.h ckctel.h ckclib.h
+ 
++BUILD_CC ?= $(CC)
++BUILD_CFLAGS ?= $(CFLAGS)
++BUILD_CPPFLAGS ?= $(CPPFLAGS)
++BUILD_LDFLAGS ?= $(LDFLAGS)
+ wart: ckwart.$(EXT)
+-	$(CC) $(LNKFLAGS) -o wart ckwart.$(EXT) $(LIBS)
++	$(BUILD_CC) $(BUILD_CFLAGS) $(BUILD_CPPFLAGS) -o wart ckwart.$(EXT) $(BUILD_LDFLAGS)
+ 
+ ckcmdb.$(EXT): ckcmdb.c ckcdeb.h ckcsym.h ckclib.h
+ 
+ ckwart.$(EXT): ckwart.c
++	$(BUILD_CC) $(BUILD_CFLAGS) $(BUILD_CPPFLAGS) -o $@ -c $<
+ 
+ ckudia.$(EXT): ckudia.c ckcker.h ckcdeb.h ckucmd.h ckcasc.h ckcsym.h ckcsig.h \
+ 		ckcnet.h ckctel.h ckclib.h
diff --git a/app-misc/ckermit/files/ckermit-8.0.211-cleanup.patch b/app-misc/ckermit/files/ckermit-8.0.211-cleanup.patch
new file mode 100644
index 0000000..5b7c1ed
--- /dev/null
+++ b/app-misc/ckermit/files/ckermit-8.0.211-cleanup.patch
@@ -0,0 +1,78 @@
+clean up missing prototypes and broken printfs
+
+--- a/ckcmai.c
++++ b/ckcmai.c
+@@ -623,6 +623,8 @@ ACKNOWLEDGMENTS:
+ #include "ckntap.h"
+ #endif /* NT */
+ 
++#include <time.h>
++
+ #ifndef NOSERVER
+ /* Text message definitions.. each should be 256 chars long, or less. */
+ #ifdef MINIX
+--- a/ckufio.c
++++ b/ckufio.c
+@@ -40,6 +40,7 @@ char *ckzv = "UNIX File support, 8.0.200, 4 Mar 2004";
+ #include "ckcsym.h"
+ #include "ckcdeb.h"
+ #include "ckcasc.h"
++#include "ckuusr.h"
+ 
+ #ifndef NOCSETS
+ #include "ckcxla.h"
+@@ -1803,6 +1804,8 @@ zxin(n,s,x) int n, x; char *s; {
+     return(fread(s, sizeof (char), x, fp[n]));
+ }
+ 
++extern int ttwait(int fd, int secs);
++
+ /*
+   Z I N F I L L  --  Buffered file input.
+ 
+--- a/ckutio.c
++++ b/ckutio.c
+@@ -1808,6 +1808,11 @@ ttgwsiz() {
+ #endif /* NONAWS */
+ }
+ 
++#ifdef CK_NAWS                          /* Negotiate About Window Size */
++#ifdef RLOGCODE
++_PROTOTYP( int rlog_naws, (void) );
++#endif /* RLOGCODE */
++#endif /* CK_NAWS */
+ 
+ #ifndef NOSIGWINCH
+ #ifdef SIGWINCH
+--- a/ckuus5.c
++++ b/ckuus5.c
+@@ -7747,7 +7747,7 @@ doshow(x) int x; {
+           printf(" --bannerfile=%s\n",bannerfile ? bannerfile : "(null)");
+           printf(" --cdfile:%s\n",cdmsgstr ? cdmsgstr : "(null)");
+           printf(" --cdmessage:%d\n",srvcdmsg);
+-          printf(" --helpfile:%d\n",helpfile);
++          printf(" --helpfile:%s\n",helpfile ? helpfile : "(null)");
+           if (inserver) {
+               printf("\n");
+               break;
+--- a/ckuus7.c
++++ b/ckuus7.c
+@@ -2981,7 +2981,7 @@ dopurge() {                             /* Do the PURGE command */
+     if (n < tokeep) {                   /* Not deleting any */
+         count = 0;
+         if (listing)
+-          printf(" Matches = %d: Not enough to purge.\n");
++          printf(" Matches = %d: Not enough to purge.\n", n);
+         goto xpurge;
+     }
+ 
+--- a/ckuusx.c
++++ b/ckuusx.c
+@@ -56,7 +56,6 @@
+ #include <termcap.h>
+ #endif /* NOHTERMCAP */
+ #endif /* BSD44 */
+-#else  /* !BSD44 */
+ #ifdef linux
+ #include <term.h>
+ #endif /* linux */
diff --git a/app-misc/ckermit/metadata.xml b/app-misc/ckermit/metadata.xml
new file mode 100644
index 0000000..59e2b8f
--- /dev/null
+++ b/app-misc/ckermit/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+	<maintainer>
+		<email>maintainer-needed@gentoo.org</email>
+		<name>Default assignee for orphaned packages</name>
+	</maintainer>
+</pkgmetadata>