Some newer GNU/Linux systems no longer have a "utmp" file.
This file is used by both syslogd and talkd to find the
TTY device files of active user sessions in order to send
messages to specific or all users.
Gnulib can emulate a utmp file via the read_utmp() function
from the readutmp module. This emulation is activated by
defining "READUTMP_USE_SYSTEMD", triggered via configure's
"--enable-systemd" option on systems without utmp and with
systemd.
But, this emulation reports non-existing TTY device files
for active user sessions. Attempting to send a message to a
non-existing TTY produces an error, but that is normal behavior
for such a system. Thus, ignore this error on such systems,
but not others.
* NEWS.md: Mention enhancement.
* libinetutils/ttymsg.c (inetutils_ttymsg): Ignore errors for
non-existings TTY files reported in emulated utmp entries.
Both syslogd and talkd use the Gnulib read_utmp options
READ_UTMP_USER_PROCESS | READ_UTMP_CHECK_PIDS, but the
test file tests/readutmp.c only used READ_UTMP_USER_PROCESS.
But tests/readutmp.c is intended to check if syslogd and
talkd can read utmp information, so use the same options.
* tests/readutmp.c (main): Add READ_UTMP_CHECK_PIDS to options
used with Gnulib's read_utmp() function.
DEL is a non-printable control character. Make it visible in
syslogd log files by transliterating it in the same way as most
other ASCII control characters (TAB and NL are transliterated
as SP).
* NEWS: Mention change.
* src/syslogd.c (printline): Transliterate the ASCII DEL control
character the same way as most other ASCII control characters.
When logging a message, ASCII control characters are transliterated.
This transliteration uses two printable characters for each control
character. If the last character that fits into the destination
buffer is a control character, the buffer needs place for two
characters in addition to the string terminator. This was missing
from the code, resulting in a stack-based buffer overflow weakness
(CWE-121).
* NEWS: Mention fix.
* src/syslogd.c (printline): Allocate an additional byte in the
"line" buffer to account for control character transliteration.
One part of ftpd user authentication is to check if the user has
a so called "standard shell". But, it is no longer obvious what
that actually is. The Linux man-pages project uses different
names to designate a "standard shell", i.e., "valid login shell"
when documenting /etc/shells, "permitted user shells" and "valid
user shell" when documenting getusershell(), making it harder to
figure this out.
Expand ftpd user authentication step 3 by adding information about
/etc/shells and getusershell(), and the different names used for
"standard shell".
* NEWS: Mention ftpd documentation improvement.
* doc/inetutils.texi (ftpd invocation): Explain "standard shell"
as used in the ftpd authentication rules.
This module provides the asprintf function that is needed by Inetutils
but is missing on many platforms. Found on AIX 7.3.
* NEWS: Mention the change.
* bootstrap.conf (gnulib_modules): Add vasprintf-posix.
* .x-update-copyright: New file.
* bootstrap.conf (buildreq): Remove help2man.
* configure.ac: Fallback to distributed help2man if it is not installed.
* man/Makefile.am (EXTRA_DIST): Add help2man.
* man/help2man: Import file.
Also arrange order of directories so that am__aclocal_m4_deps
in Makefile.in is generated the same by ./bootstrap and
autoreconf. The latter is invoked by 'make release' (via the
_version rule in GNUmakefile) to change the version number.
We want am__aclocal_m4_deps to be identical so that the
"make dist" and "make release" tarballs are identical.
* Makefile.am (ACLOCAL_AMFLAGS): Remove.
configure.ac (AC_CONFIG_MACRO_DIRS): Add.
bootstrap.conf (ACLOCAL_AMFLAGS): Remove.
Makefile.am (texi-stamps-to-mtime-NEWS): Set modtime of
doc/inetutils.texi to that of NEWS file on "make dist", so that
stamp-vti and version.texi have a reproducible time stamp.