1DESCRIPTION = "netkit-telnet includes the telnet daemon and client."
2HOMEPAGE = "http://www.hcs.harvard.edu/~dholland/computers/netkit.html"
3SECTION = "net"
4DEPENDS = "ncurses"
5LICENSE = "BSD-4-Clause"
6LIC_FILES_CHKSUM = "file://telnet/telnet.cc;beginline=2;endline=3;md5=780868e7b566313e70cb701560ca95ef"
7
8SRC_URI = "${DEBIAN_MIRROR}/main/n/netkit-telnet/netkit-telnet_${PV}.orig.tar.gz \
9           file://To-aviod-buffer-overflow-in-telnet.patch \
10           file://Warning-fix-in-the-step-of-install.patch \
11           file://telnet-xinetd \
12           file://cross-compile.patch \
13           file://0001-telnet-telnetd-Fix-print-format-strings.patch \
14           file://0001-telnet-telnetd-Fix-deadlock-on-cleanup.patch \
15           file://CVE-2020-10188.patch \
16           file://0001-telnetd-utility.c-Fix-buffer-overflow-in-netoprintf.patch \
17           "
18
19UPSTREAM_CHECK_URI = "${DEBIAN_MIRROR}/main/n/netkit-telnet/"
20UPSTREAM_CHECK_REGEX = "(?P<pver>\d+(\.\d+)+)\.orig\.tar"
21
22EXTRA_OEMAKE = "INSTALLROOT=${D} SBINDIR=${sbindir} DAEMONMODE=755 \
23    MANMODE=644 MANDIR=${mandir}"
24
25do_configure () {
26    ./configure --prefix=${prefix}
27    sed -e 's#^CFLAGS=\(.*\)$#CFLAGS= -D_GNU_SOURCE \1#' \
28        -e 's#^CXXFLAGS=\(.*\)$#CXXFLAGS= -D_GNU_SOURCE \1#' \
29        -e 's#^LDFLAGS=.*$#LDFLAGS= ${LDFLAGS}#' \
30        -i MCONFIG
31}
32
33do_compile () {
34    oe_runmake 'CC=${CC}' 'LD=${LD}' 'LDFLAGS=${LDFLAGS}' SUB=telnet
35    oe_runmake 'CC=${CC}' 'LD=${LD}' 'LDFLAGS=${LDFLAGS}' LIBS=-lutil SUB=telnetd
36    oe_runmake 'CC=${CC}' 'LD=${LD}' 'LDFLAGS=${LDFLAGS}' SUB=telnetlogin
37}
38
39do_install () {
40    install -d ${D}${bindir}
41    install -m 0755 telnet/telnet ${D}${bindir}/telnet.${PN}
42    install -d ${D}${sbindir}
43    install -d ${D}${mandir}/man1
44    install -d ${D}${mandir}/man5
45    install -d ${D}${mandir}/man8
46    oe_runmake SUB=telnetd install
47    rm -rf ${D}${mandir}/man1
48    install -D -m 4750 ${B}/telnetlogin/telnetlogin ${D}/${libdir}/telnetlogin
49    # fix up hardcoded paths
50    sed -i -e 's,/usr/sbin/,${sbindir}/,' ${WORKDIR}/telnet-xinetd
51    install -d  ${D}/etc/xinetd.d/
52    install -p -m644 ${WORKDIR}/telnet-xinetd ${D}/etc/xinetd.d/telnet
53}
54
55inherit update-alternatives
56
57ALTERNATIVE_PRIORITY = "100"
58ALTERNATIVE:${PN} = "telnet"
59ALTERNATIVE_LINK_NAME[telnet] = "${bindir}/telnet"
60ALTERNATIVE_TARGET[telnet] = "${bindir}/telnet.${PN}"
61
62ALTERNATIVE:${PN}-doc = "telnetd.8"
63ALTERNATIVE_LINK_NAME[telnetd.8] = "${mandir}/man8/telnetd.8"
64
65SRC_URI[md5sum] = "d6beabaaf53fe6e382c42ce3faa05a36"
66SRC_URI[sha256sum] = "9c80d5c7838361a328fb6b60016d503def9ce53ad3c589f3b08ff71a2bb88e00"
67FILES:${PN} += "${sbindir}/in.* ${libdir}/* ${sysconfdir}/xinetd.d/*"
68
69# http://errors.yoctoproject.org/Errors/Details/186954/
70COMPATIBLE_HOST:libc-musl = 'null'
71RCONFLICTS:${PN} = "inetutils-telnetd"
72