gentoo-ebuilds/net-misc/inetutils/inetutils-2.6-r1.ebuild
Hank Leininger fdf9a32b32
net-misc: add/update blockers between inetutils[r*] and netkit-rsh
Signed-off-by: Hank Leininger <hlein@korelogic.com>
Closes: https://bugs.gentoo.org/961156
Part-of: https://github.com/gentoo/gentoo/pull/43357
Closes: https://github.com/gentoo/gentoo/pull/43357
Signed-off-by: Mike Gilbert <floppym@gentoo.org>
2025-08-06 15:19:50 -04:00

172 lines
3.7 KiB
Bash

# Copyright 2021-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
inherit pam systemd
DESCRIPTION="Collection of common network programs"
HOMEPAGE="https://www.gnu.org/software/inetutils/"
SRC_URI="mirror://gnu/${PN}/${P}.tar.xz"
LICENSE="GPL-3+"
SLOT="0"
KEYWORDS="amd64"
SERVERS="ftpd inetd rexecd rlogind rshd syslogd talkd telnetd tftpd uucpd"
CLIENTS="ftp dnsdomainname hostname ping ping6 rcp rexec rlogin rsh logger telnet tftp whois ifconfig traceroute"
PROGRAMS="${SERVERS} ${CLIENTS}"
IUSE="idn kerberos pam tcpd ${PROGRAMS}"
DEPEND="
sys-libs/readline:0=
ftpd? ( virtual/libcrypt:0= )
idn? ( net-dns/libidn2:= )
kerberos? ( virtual/krb5 )
pam? ( sys-libs/pam )
tcpd? ( sys-apps/tcp-wrappers )
uucpd? ( virtual/libcrypt:0= )
"
RDEPEND="${DEPEND}
ftpd? ( net-ftp/ftpbase[pam?] )
ftp? ( !net-ftp/ftp )
dnsdomainname? ( !sys-apps/net-tools )
hostname? ( !sys-apps/coreutils[hostname(-)] !sys-apps/net-tools[hostname(+)] )
inetd? ( !sys-apps/netkit-base )
ping? ( !net-misc/iputils )
ping6? ( !net-misc/iputils[ipv6(+)] )
rcp? ( !net-misc/netkit-rsh )
rexec? ( !net-misc/netkit-rsh )
rexecd? ( !net-misc/netkit-rsh )
rlogin? ( !net-misc/netkit-rsh )
rlogind? ( !net-misc/netkit-rsh )
rsh? ( !net-misc/netkit-rsh )
rshd? ( !net-misc/netkit-rsh )
logger? ( !sys-apps/util-linux[logger(+)] )
syslogd? ( !app-admin/sysklogd )
talkd? ( !net-misc/netkit-talk )
telnet? ( !net-misc/telnet-bsd !net-misc/netkit-telnetd )
telnetd? ( !net-misc/telnet-bsd !net-misc/netkit-telnetd )
tftp? ( !net-ftp/tftp-hpa[client(+)] )
tftpd? ( !net-ftp/tftp-hpa[server(+)] )
whois? ( !net-misc/whois )
ifconfig? ( !sys-apps/net-tools )
traceroute? ( !net-analyzer/traceroute )
"
QA_CONFIG_IMPL_DECL_SKIP=( MIN static_assert alignof unreachable )
src_configure() {
local myconf=(
--localstatedir="${EPREFIX}/var"
--disable-clients
--disable-servers
$(use_with idn)
--without-krb4
$(use_with kerberos krb5)
--without-shishi
$(use_with pam)
$(use_with tcpd wrap)
)
local prog
for prog in ${PROGRAMS}; do
myconf+=( $(use_enable "${prog}") )
done
econf "${myconf[@]}"
}
iu_pamd() {
if use "$1"; then
pamd_mimic system-remote-login "$2" auth account password session
fi
}
create_init() {
use "$1" || return
newinitd - "$1" <<-EOF
#!${EPREFIX}/sbin/openrc-run
command="${EPREFIX}/usr/libexec/$1"
command_args="$2"
pidfile="${EPREFIX}/var/run/$1.pid"
EOF
systemd_newunit - "$1.service" <<-EOF
[Service]
ExecStart="${EPREFIX}/usr/libexec/$1"${2:+ }$2
PIDFile=${EPREFIX}/var/run/$1.pid
Type=forking
[Install]
WantedBy=multi-user.target
EOF
}
create_socket_stream() {
use "$1" || return
systemd_newunit - "$1.socket" <<-EOF
[Socket]
ListenStream=$2
Accept=yes
[Install]
WantedBy=sockets.target
EOF
systemd_newunit - "$1@.service" <<-EOF
[Unit]
CollectMode=inactive-or-failed
[Service]
ExecStart="${EPREFIX}/usr/libexec/$1"
StandardInput=socket
StandardError=journal
EOF
}
create_socket_datagram() {
use "$1" || return
systemd_newunit - "$1.socket" <<-EOF
[Socket]
ListenDatagram=$2
[Install]
WantedBy=sockets.target
EOF
systemd_newunit - "$1.service" <<-EOF
[Service]
ExecStart="${EPREFIX}/usr/libexec/$1"
StandardInput=socket
StandardError=journal
EOF
}
src_install() {
default
iu_pamd rexecd rexec
iu_pamd rlogind rlogin
iu_pamd rshd rsh
if use kerberos; then
iu_pamd rlogind krlogin
iu_pamd rshd krsh
fi
create_init ftpd --daemon
create_init inetd
create_init rlogind --daemon
create_init syslogd
create_socket_stream ftpd 21
create_socket_stream rexecd 512
create_socket_stream rlogind 513
create_socket_stream rshd 514
create_socket_stream telnetd 23
create_socket_stream uucpd 540
create_socket_datagram talkd 518
}