| Patrick Williams | 8e7b46e | 2023-05-01 14:19:06 -0500 | [diff] [blame] | 1 | SUMMARY = "The GNU inetutils are a collection of common networking utilities and servers." | 
| Andrew Geissler | eff2747 | 2021-10-29 15:35:00 -0500 | [diff] [blame] | 2 | DESCRIPTION = "The GNU inetutils are a collection of common \ | 
|  | 3 | networking utilities and servers including ftp, ftpd, rcp, \ | 
|  | 4 | rexec, rlogin, rlogind, rsh, rshd, syslog, syslogd, talk, \ | 
|  | 5 | talkd, telnet, telnetd, tftp, tftpd, and uucpd." | 
|  | 6 | HOMEPAGE = "http://www.gnu.org/software/inetutils" | 
|  | 7 | SECTION = "net" | 
|  | 8 | DEPENDS = "ncurses netbase readline virtual/crypt" | 
|  | 9 |  | 
| Andrew Geissler | 7e0e3c0 | 2022-02-25 20:34:39 +0000 | [diff] [blame] | 10 | LICENSE = "GPL-3.0-only" | 
| Andrew Geissler | eff2747 | 2021-10-29 15:35:00 -0500 | [diff] [blame] | 11 |  | 
|  | 12 | LIC_FILES_CHKSUM = "file://COPYING;md5=0c7051aef9219dc7237f206c5c4179a7" | 
|  | 13 |  | 
| Patrick Williams | 7784c42 | 2022-11-17 07:29:11 -0600 | [diff] [blame] | 14 | SRC_URI[sha256sum] = "1789d6b1b1a57dfe2a7ab7b533ee9f5dfd9cbf5b59bb1bb3c2612ed08d0f68b2" | 
| Andrew Geissler | eff2747 | 2021-10-29 15:35:00 -0500 | [diff] [blame] | 15 | SRC_URI = "${GNU_MIRROR}/inetutils/inetutils-${PV}.tar.xz \ | 
| Andrew Geissler | 5082cc7 | 2023-09-11 08:41:39 -0400 | [diff] [blame] | 16 | file://rexec.xinetd.inetutils \ | 
| Andrew Geissler | eff2747 | 2021-10-29 15:35:00 -0500 | [diff] [blame] | 17 | file://rlogin.xinetd.inetutils \ | 
|  | 18 | file://rsh.xinetd.inetutils \ | 
|  | 19 | file://telnet.xinetd.inetutils \ | 
|  | 20 | file://tftpd.xinetd.inetutils \ | 
| Andrew Geissler | 5082cc7 | 2023-09-11 08:41:39 -0400 | [diff] [blame] | 21 | file://0001-CVE-2023-40303-ftpd-rcp-rlogin-rsh-rshd-uucpd-fix-ch.patch \ | 
|  | 22 | file://0002-CVE-2023-40303-Indent-changes-in-previous-commit.patch \ | 
|  | 23 | " | 
| Andrew Geissler | eff2747 | 2021-10-29 15:35:00 -0500 | [diff] [blame] | 24 |  | 
|  | 25 | inherit autotools gettext update-alternatives texinfo | 
|  | 26 |  | 
|  | 27 | acpaths = "-I ./m4" | 
|  | 28 |  | 
| Andrew Geissler | eff2747 | 2021-10-29 15:35:00 -0500 | [diff] [blame] | 29 | PACKAGECONFIG ??= "ftp uucpd \ | 
|  | 30 | ${@bb.utils.filter('DISTRO_FEATURES', 'pam', d)} \ | 
|  | 31 | ${@bb.utils.contains('DISTRO_FEATURES', 'ipv6', 'ipv6 ping6', '', d)} \ | 
|  | 32 | " | 
|  | 33 | PACKAGECONFIG[ftp] = "--enable-ftp,--disable-ftp,readline" | 
|  | 34 | PACKAGECONFIG[uucpd] = "--enable-uucpd,--disable-uucpd,readline" | 
|  | 35 | PACKAGECONFIG[pam] = "--with-pam,--without-pam,libpam" | 
|  | 36 | PACKAGECONFIG[ipv6] = "--enable-ipv6,--disable-ipv6 gl_cv_socket_ipv6=no," | 
|  | 37 | PACKAGECONFIG[ping6] = "--enable-ping6,--disable-ping6," | 
|  | 38 |  | 
|  | 39 | EXTRA_OECONF = "--with-ncurses-include-dir=${STAGING_INCDIR} \ | 
| Andrew Geissler | eff2747 | 2021-10-29 15:35:00 -0500 | [diff] [blame] | 40 | --with-libreadline-prefix=${STAGING_LIBDIR} \ | 
|  | 41 | --enable-rpath=no \ | 
| Andrew Geissler | 5082cc7 | 2023-09-11 08:41:39 -0400 | [diff] [blame] | 42 | --with-path-login=${base_bindir}/login \ | 
|  | 43 | --with-path-cp=${base_bindir}/cp \ | 
|  | 44 | --with-path-uucico=${libexecdir}/uuico \ | 
|  | 45 | --with-path-procnet-dev=/proc/net/dev \ | 
|  | 46 | " | 
|  | 47 |  | 
|  | 48 | EXTRA_OECONF:append:libc-musl = " --with-path-utmpx=/dev/null/utmpx --with-path-wtmpx=/dev/null/wtmpx" | 
| Andrew Geissler | eff2747 | 2021-10-29 15:35:00 -0500 | [diff] [blame] | 49 |  | 
|  | 50 | # These are horrible for security, disable them | 
|  | 51 | EXTRA_OECONF:append = " --disable-rsh --disable-rshd --disable-rcp \ | 
|  | 52 | --disable-rlogin --disable-rlogind --disable-rexec --disable-rexecd" | 
|  | 53 |  | 
| Andrew Geissler | 5082cc7 | 2023-09-11 08:41:39 -0400 | [diff] [blame] | 54 | # The configure script guesses many paths in cross builds, check for this happening | 
|  | 55 | do_configure_cross_check() { | 
|  | 56 | if grep "may be incorrect because of cross-compilation" ${B}/config.log; then | 
|  | 57 | bberror Default path values used, these must be set explicitly | 
|  | 58 | fi | 
|  | 59 | } | 
|  | 60 | do_configure[postfuncs] += "do_configure_cross_check" | 
|  | 61 |  | 
|  | 62 | # The --with-path options are not actually options, so this check needs to be silenced | 
|  | 63 | ERROR_QA:remove = "unknown-configure-option" | 
|  | 64 |  | 
| Andrew Geissler | eff2747 | 2021-10-29 15:35:00 -0500 | [diff] [blame] | 65 | do_configure:prepend () { | 
|  | 66 | export HELP2MAN='true' | 
| Andrew Geissler | eff2747 | 2021-10-29 15:35:00 -0500 | [diff] [blame] | 67 | } | 
|  | 68 |  | 
|  | 69 | do_install:append () { | 
|  | 70 | install -m 0755 -d ${D}${base_sbindir} | 
|  | 71 | install -m 0755 -d ${D}${sbindir} | 
|  | 72 | install -m 0755 -d ${D}${sysconfdir}/xinetd.d | 
|  | 73 | if [ "${base_bindir}" != "${bindir}" ] ; then | 
|  | 74 | install -m 0755 -d ${D}${base_bindir} | 
|  | 75 | mv ${D}${bindir}/ping* ${D}${base_bindir}/ | 
|  | 76 | mv ${D}${bindir}/hostname ${D}${base_bindir}/ | 
|  | 77 | mv ${D}${bindir}/dnsdomainname ${D}${base_bindir}/ | 
|  | 78 | fi | 
|  | 79 | mv ${D}${bindir}/ifconfig ${D}${base_sbindir}/ | 
|  | 80 | mv ${D}${libexecdir}/syslogd ${D}${base_sbindir}/ | 
|  | 81 | mv ${D}${libexecdir}/tftpd ${D}${sbindir}/in.tftpd | 
|  | 82 | mv ${D}${libexecdir}/telnetd ${D}${sbindir}/in.telnetd | 
|  | 83 | if [ -e ${D}${libexecdir}/rexecd ]; then | 
|  | 84 | mv ${D}${libexecdir}/rexecd ${D}${sbindir}/in.rexecd | 
|  | 85 | cp ${WORKDIR}/rexec.xinetd.inetutils ${D}/${sysconfdir}/xinetd.d/rexec | 
|  | 86 | fi | 
|  | 87 | if [ -e ${D}${libexecdir}/rlogind ]; then | 
|  | 88 | mv ${D}${libexecdir}/rlogind ${D}${sbindir}/in.rlogind | 
|  | 89 | cp ${WORKDIR}/rlogin.xinetd.inetutils ${D}/${sysconfdir}/xinetd.d/rlogin | 
|  | 90 | fi | 
|  | 91 | if [ -e ${D}${libexecdir}/rshd ]; then | 
|  | 92 | mv ${D}${libexecdir}/rshd ${D}${sbindir}/in.rshd | 
|  | 93 | cp ${WORKDIR}/rsh.xinetd.inetutils ${D}/${sysconfdir}/xinetd.d/rsh | 
|  | 94 | fi | 
|  | 95 | if [ -e ${D}${libexecdir}/talkd ]; then | 
|  | 96 | mv ${D}${libexecdir}/talkd ${D}${sbindir}/in.talkd | 
|  | 97 | fi | 
|  | 98 | mv ${D}${libexecdir}/uucpd ${D}${sbindir}/in.uucpd | 
|  | 99 | mv ${D}${libexecdir}/* ${D}${bindir}/ | 
|  | 100 | cp ${WORKDIR}/telnet.xinetd.inetutils  ${D}/${sysconfdir}/xinetd.d/telnet | 
|  | 101 | cp ${WORKDIR}/tftpd.xinetd.inetutils  ${D}/${sysconfdir}/xinetd.d/tftpd | 
|  | 102 |  | 
|  | 103 | sed -e 's,@SBINDIR@,${sbindir},g' -i ${D}/${sysconfdir}/xinetd.d/* | 
|  | 104 | if [ -e ${D}${libdir}/charset.alias ]; then | 
|  | 105 | rm -rf ${D}${libdir}/charset.alias | 
|  | 106 | fi | 
|  | 107 | rm -rf ${D}${libexecdir}/ | 
|  | 108 | # remove usr/lib if empty | 
|  | 109 | rmdir ${D}${libdir} || true | 
|  | 110 | } | 
|  | 111 |  | 
|  | 112 | PACKAGES =+ "${PN}-ping ${PN}-ping6 ${PN}-hostname ${PN}-ifconfig \ | 
|  | 113 | ${PN}-tftp ${PN}-logger ${PN}-traceroute ${PN}-syslogd \ | 
|  | 114 | ${PN}-ftp ${PN}-ftpd ${PN}-tftpd ${PN}-telnet ${PN}-telnetd ${PN}-inetd \ | 
|  | 115 | ${PN}-rsh ${PN}-rshd" | 
|  | 116 |  | 
|  | 117 | # The packages tftpd, telnetd and rshd conflict with the ones | 
|  | 118 | # provided by netkit, so add the corresponding -dbg packages | 
|  | 119 | # for them to avoid the confliction between the dbg package | 
|  | 120 | # of inetutils and netkit. | 
|  | 121 | PACKAGES =+ "${PN}-tftpd-dbg ${PN}-telnetd-dbg ${PN}-rshd-dbg" | 
|  | 122 | NOAUTOPACKAGEDEBUG = "1" | 
|  | 123 |  | 
|  | 124 | ALTERNATIVE_PRIORITY = "79" | 
|  | 125 | ALTERNATIVE:${PN} = "whois dnsdomainname" | 
|  | 126 | ALTERNATIVE_LINK_NAME[uucpd]  = "${sbindir}/in.uucpd" | 
|  | 127 | ALTERNATIVE_LINK_NAME[dnsdomainname]  = "${base_bindir}/dnsdomainname" | 
|  | 128 |  | 
|  | 129 | ALTERNATIVE_PRIORITY_${PN}-logger = "60" | 
|  | 130 | ALTERNATIVE:${PN}-logger = "logger" | 
|  | 131 | ALTERNATIVE:${PN}-syslogd = "syslogd" | 
|  | 132 | ALTERNATIVE_LINK_NAME[syslogd]  = "${base_sbindir}/syslogd" | 
|  | 133 |  | 
|  | 134 | ALTERNATIVE:${PN}-ftp = "ftp" | 
|  | 135 | ALTERNATIVE:${PN}-ftpd = "ftpd" | 
|  | 136 | ALTERNATIVE:${PN}-tftp = "tftp" | 
|  | 137 | ALTERNATIVE:${PN}-tftpd = "tftpd" | 
|  | 138 | ALTERNATIVE_LINK_NAME[tftpd] = "${sbindir}/tftpd" | 
|  | 139 | ALTERNATIVE_TARGET[tftpd]  = "${sbindir}/in.tftpd" | 
|  | 140 |  | 
|  | 141 | ALTERNATIVE:${PN}-telnet = "telnet" | 
|  | 142 | ALTERNATIVE:${PN}-telnetd = "telnetd" | 
|  | 143 | ALTERNATIVE_LINK_NAME[telnetd] = "${sbindir}/telnetd" | 
|  | 144 | ALTERNATIVE_TARGET[telnetd] = "${sbindir}/in.telnetd" | 
|  | 145 |  | 
|  | 146 | ALTERNATIVE:${PN}-inetd= "inetd" | 
|  | 147 | ALTERNATIVE:${PN}-traceroute = "traceroute" | 
|  | 148 |  | 
|  | 149 | ALTERNATIVE:${PN}-hostname = "hostname" | 
|  | 150 | ALTERNATIVE_LINK_NAME[hostname]  = "${base_bindir}/hostname" | 
|  | 151 |  | 
|  | 152 | ALTERNATIVE:${PN}-doc = "hostname.1 dnsdomainname.1 logger.1 syslogd.8 \ | 
|  | 153 | tftpd.8 tftp.1 telnetd.8" | 
|  | 154 | ALTERNATIVE_LINK_NAME[hostname.1] = "${mandir}/man1/hostname.1" | 
|  | 155 | ALTERNATIVE_LINK_NAME[dnsdomainname.1] = "${mandir}/man1/dnsdomainname.1" | 
|  | 156 | ALTERNATIVE_LINK_NAME[logger.1] = "${mandir}/man1/logger.1" | 
|  | 157 | ALTERNATIVE_LINK_NAME[syslogd.8] = "${mandir}/man8/syslogd.8" | 
|  | 158 | ALTERNATIVE_LINK_NAME[telnetd.8] = "${mandir}/man8/telnetd.8" | 
|  | 159 | ALTERNATIVE_LINK_NAME[tftpd.8] = "${mandir}/man8/tftpd.8" | 
|  | 160 | ALTERNATIVE_LINK_NAME[tftp.1] = "${mandir}/man1/tftp.1" | 
|  | 161 |  | 
|  | 162 | ALTERNATIVE:${PN}-ifconfig = "ifconfig" | 
|  | 163 | ALTERNATIVE_LINK_NAME[ifconfig]  = "${base_sbindir}/ifconfig" | 
|  | 164 |  | 
|  | 165 | ALTERNATIVE:${PN}-ping = "ping" | 
|  | 166 | ALTERNATIVE_LINK_NAME[ping]   = "${base_bindir}/ping" | 
|  | 167 |  | 
|  | 168 | ALTERNATIVE:${PN}-ping6 = "${@bb.utils.filter('PACKAGECONFIG', 'ping6', d)}" | 
|  | 169 | ALTERNATIVE_LINK_NAME[ping6]  = "${base_bindir}/ping6" | 
|  | 170 |  | 
|  | 171 |  | 
|  | 172 | FILES:${PN}-dbg += "${base_bindir}/.debug ${base_sbindir}/.debug ${bindir}/.debug ${sbindir}/.debug" | 
|  | 173 | FILES:${PN}-ping = "${base_bindir}/ping.${BPN}" | 
|  | 174 | FILES:${PN}-ping6 = "${base_bindir}/ping6.${BPN}" | 
|  | 175 | FILES:${PN}-hostname = "${base_bindir}/hostname.${BPN}" | 
|  | 176 | FILES:${PN}-ifconfig = "${base_sbindir}/ifconfig.${BPN}" | 
|  | 177 | FILES:${PN}-traceroute = "${bindir}/traceroute.${BPN}" | 
|  | 178 | FILES:${PN}-logger = "${bindir}/logger.${BPN}" | 
|  | 179 |  | 
|  | 180 | FILES:${PN}-syslogd = "${base_sbindir}/syslogd.${BPN}" | 
|  | 181 | RCONFLICTS:${PN}-syslogd = "rsyslog busybox-syslog sysklogd syslog-ng" | 
|  | 182 |  | 
|  | 183 | FILES:${PN}-ftp = "${bindir}/ftp.${BPN}" | 
|  | 184 |  | 
|  | 185 | FILES:${PN}-tftp = "${bindir}/tftp.${BPN}" | 
|  | 186 | FILES:${PN}-telnet = "${bindir}/telnet.${BPN}" | 
|  | 187 |  | 
|  | 188 | # We make us of RCONFLICTS / RPROVIDES here rather than using the normal | 
|  | 189 | # alternatives method as this leads to packaging QA issues when using | 
|  | 190 | # musl as that library does not provide what these applications need to | 
|  | 191 | # build. | 
|  | 192 | FILES:${PN}-rsh = "${bindir}/rsh ${bindir}/rlogin ${bindir}/rexec ${bindir}/rcp" | 
|  | 193 | RCONFLICTS:${PN}-rsh += "netkit-rsh-client" | 
|  | 194 | RPROVIDES:${PN}-rsh = "rsh" | 
|  | 195 |  | 
|  | 196 | FILES:${PN}-rshd = "${sbindir}/in.rshd ${sbindir}/in.rlogind ${sbindir}/in.rexecd \ | 
|  | 197 | ${sysconfdir}/xinetd.d/rsh ${sysconfdir}/xinetd.d/rlogin ${sysconfdir}/xinetd.d/rexec" | 
|  | 198 | FILES:${PN}-rshd-dbg = "${sbindir}/.debug/in.rshd ${sbindir}/.debug/in.rlogind ${sbindir}/.debug/in.rexecd" | 
|  | 199 | RDEPENDS:${PN}-rshd += "xinetd tcp-wrappers" | 
|  | 200 | RCONFLICTS:${PN}-rshd += "netkit-rshd-server" | 
|  | 201 | RPROVIDES:${PN}-rshd = "rshd" | 
|  | 202 |  | 
|  | 203 | FILES:${PN}-ftpd = "${bindir}/ftpd.${BPN}" | 
|  | 204 | FILES:${PN}-ftpd-dbg = "${bindir}/.debug/ftpd.${BPN}" | 
|  | 205 | RDEPENDS:${PN}-ftpd += "xinetd" | 
|  | 206 |  | 
|  | 207 | FILES:${PN}-tftpd = "${sbindir}/in.tftpd ${sysconfdir}/xinetd.d/tftpd" | 
|  | 208 | FILES:${PN}-tftpd-dbg = "${sbindir}/.debug/in.tftpd" | 
|  | 209 | RCONFLICTS:${PN}-tftpd += "netkit-tftpd" | 
|  | 210 | RDEPENDS:${PN}-tftpd += "xinetd" | 
|  | 211 |  | 
|  | 212 | FILES:${PN}-telnetd = "${sbindir}/in.telnetd ${sysconfdir}/xinetd.d/telnet" | 
|  | 213 | FILES:${PN}-telnetd-dbg = "${sbindir}/.debug/in.telnetd" | 
|  | 214 | RCONFLICTS:${PN}-telnetd += "netkit-telnet" | 
|  | 215 | RPROVIDES:${PN}-telnetd = "telnetd" | 
|  | 216 | RDEPENDS:${PN}-telnetd += "xinetd" | 
|  | 217 |  | 
|  | 218 | FILES:${PN}-inetd = "${bindir}/inetd.${BPN}" | 
|  | 219 |  | 
|  | 220 | RDEPENDS:${PN} = "xinetd" |