[arch-general] drop dependencies on legacy inetutils for `hostname`
Eli Schwartz
eschwartz at archlinux.org
Thu Aug 27 18:34:41 UTC 2020
On 8/23/20 10:50 AM, Geert Hendrickx via arch-general wrote:
> Hi
>
> A number of packages depend on inetutils merely for the `hostname` command.
> Common packages include xorg-xinit and mariadb, which makes that inetutils
> is still installed on a large number of Arch systems, although its other
> components like rcp, rsh, talk, telnet ... and their server counterparts,
> are really old, deprecated, and totally insecure. Plus the implementation
> seems to be largely abandoned by upstream (see FS#61041). Needless to say,
> I don't want any of these installed on my systems.
Why is it bad if you have it installed but not running?
Anyway, xorg-xinit could probably not depend on inetutils at all, since
it only uses it to check `xauth list "$(hostname -f)"` which will always
fail because you actually do not want the --fqdn there. (For some odd
reason it only does this if you're using Linux *and* a GNU
implementation like the inetutils or gettext ones, but for busybox it
omits the -f, even though busybox supports -f.) It makes no practical
difference whether the routine fails because of a programming error or
because of a missing dependency.
You could use https://www.archlinux.org/packages/community/any/sx/ which
doesn't depend on inetutils.
For xorg-xinit, Geert's proposed patch gets rid of the incorrect -fqdn
as a side effect of switching to the portable uname -n.
> Since `hostname` is still somewhat common though, there are probably more
> implicit dependencies on it, for example FS#66603.
>
> So I would like to eliminate dependencies on inetutils just for hostname,
> in one of the following ways:
>
> 1/ Split the inetutils package and provide hostname as a sub-package (but
> then still need to maintain inetutils)
>
> 2/ Package the Debian implementation, also used by Fedora and others (but
> this includes other legacy shit like `nisdomainname` and `ypdomainname`)
> See https://packages.qa.debian.org/h/hostname.html
>
> 3/ Use the implementation provided by gettext (/usr/lib/gettext/hostname),
> which is already part of base, and thus eliminates the need for explicit
> dependencies. Although this implementation can only *get* the hostname,
> not *set* it, that's all the dependent packages need, and setting the
> hostname is nowadays handled by systemd's `hostnamectl` anyway.
Or 4) submit upstream patches to make such programs first try to read
/proc/sys/kernel/hostname instead of shelling out, or invoke `uname -n`
rather than `hostname`.
The gettext thing seems like deep, dark magic, and the fact that a
hostname program even exists in there is due to deep dark magic inside
/usr/bin/msginit which invokes the shell script
/usr/lib/gettext/user-email in order to grep various programs (mutt,
openoffice, Thunderbird, netscape, emacs) with complicated fallbacks
before prompting you to select an option or input your own email address
when authoring a PO translation file.
I don't think we should be relying on this level of indirection. It
could be dropped at any time.
> My preference would be 3/, for simplicity. I already run my systems with
> /usr/bin/hostname symlinked to /usr/lib/gettext/hostname (after forcibly
> removing inetutils), and noticed no issues.
>
> This can be done in two steps:
> i. make the gettext package install (or symlink) /usr/bin/hostname,
> drop it from inetutils, and introduce mutual conflicts on older
> versions of each.
> ii. drop the dependency on inetutils from other packages (or replace it
> with a dependency on hostname if options 1/ or 2/ are preferred).
>
> Fans of `telnet` can continue to install inetutils manually, of course. ;-)
Eventually we will have
https://wiki.archlinux.org/index.php/User:Allan/Alternatives and then
you could install your own preferred hostname implementation without
conflicts. It would not be unreasonable at that time to make packages
depend on a virtual provides for "hostname".
--
Eli Schwartz
Bug Wrangler and Trusted User
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 1601 bytes
Desc: OpenPGP digital signature
URL: <https://lists.archlinux.org/pipermail/arch-general/attachments/20200827/975b14d2/attachment.sig>
More information about the arch-general
mailing list