Hi Chris,

sorry that we're slightly drifting away from the irqtop topic (I
nearly wanted to type "irqtopic" :-) to more general transition
topics. Feel free to tell me if you want to have this discussion
elsewhere. (I allowed myself to remove at least zhenwei from the Cc
for that reason.)

Chris Hofstaedtler wrote:
> > Why does util-linux have a hard dependency on util-linux-extra?
> 
> This is for transitional reasons: hwclock (and some other less
> important bits) got moved to -extra.

If hwclock is such a relevant part of util-linux-extra (and that seems
the case, see below), it probably should be mentioned in the package
description. Actually. since I only see four commands plus the hwclock
infrastructure in it, I'd mention them all in the package description.
(Sorry for another round of package description nitpicking — wasn't
aware of hwclock being involved as I just looked on the list of
binaries under /bin/ and /usr/bin/ so far.)

> I want to avoid surprises for users that still need hwclock.

IMHO Recommends should suffice there for end users who deliberately
need hwclock.

Recommends are installed by default, and if the user decides to not
install them — either by setting this as default or manually — that's
the user's problem and not the package's. (Mentioning such stuff in
the package description helps — except for those users who don't read
them. ;-)

And Recommends aren't uninstalled while upgrading (unless there's a
dependency conflict which I don't see here).

For other packages that really depend on it, there are transition bug
reports needed now to make them have a hard dependency on
util-linux-extra.

> After bookworm I'll replace Depends with Suggests/Recommends.

I'd use Recommends due to hwclock. Only containers and VMs don't need
it — and I currently expected most systems still be on real hardware
(although quite a bunch of SBCs like the Raspberry Pi doesn't have a
hwclock ex factory), but I maybe wrong.

Suggests IMHO only makes sense if the Debian Installer takes care of
installing util-linux-extra if it runs on real hardware and the
hardware has a RTC clock.

Since there are no transitional packages involved (which cause the
"automatically installed" flag not to be set for their dependencies by
default) I would expect the same problems, you don't want to see now,
just later.

>From a short look, this would be the following 98 packages refering to
hwclock in some way according to
https://codesearch.debian.net/search?q=%5Cbhwclock%5Cb&literal=0

And I see no other essential package (besides obvious ones like
util-linux which I kicked out manually), but tons of near-essential
ones li.ke the Linux kernel, APT, glibc, most (IMHO all relevant) init
systems.

Then again, I did a few cross-check because some packages don't seem
to make sense to have a reference to hwclock. E.g. jc doesn't seem to
refer to hwclock in its binary package, just in its test suite in some
rather randomly chosen data:

→ dfgrep hwclock jc
→ apt-get source jc
[…]
→ cd jc-1.18.5
→ fgrep -rl hwclock
tests/fixtures/ubuntu-18.04/systemctl-luf.out
tests/fixtures/ubuntu-18.04/systemctl-luf.json
tests/fixtures/centos-7.7/ls-glob.out
tests/fixtures/centos-7.7/ls-glob.json
→ 

I assume that there will be many more such cases. I also don't expect
many (if at all any) cases where hwclock needed as build-dependency.
So we IMHO could focus on binary packages only. (Is there a service
like codesearch.debian.net which has the contents of all files in all
binary packages indexed?)

Anyway, here's the full list (with just util-linux removed for obvoius
reasons) according to codesearch.debian.net:

abs-guide
acpi-support
acpid
adjtimex
aide
android-platform-system-core
android-platform-tools
ansible
ansible-core
apt
aptly
autopkgtest
bash-completion
busybox
calamares
calamares-settings-debian
cdist
chromium
chrony
cinnamon-settings-daemon
clock-setup
cruft
debian-edu-fai
debian-handbook
debian-lan-config
debian-reference
debram
dracut
drbl
etckeeper
fai
fake-hwclock
finit
glibc
google-guest-agent
highlight
htpdate
initramfs-tools
insserv
ipmiutil
jc
kiwi
labgrid
lava
libgtop2
libguestfs
libvma
lintian
linux
live-config
ltsp
lxc-templates
manpages-fr-extra
manpages-ja
manpages-l10n
mate-settings-daemon
mc
monitoring-plugins-systemd
ntpsec
nvram-wakeup
open-build-service
open-infrastructure-system-tools
openrc
osinfo-db
packagekit
pbuilder
plasma-desktop
pm-utils
prelude-lml-rules
puppet
qemu
qt6-webengine
qtwebengine-opensource-src
rcconf
refpolicy
reprotest
rkhunter
salt
shutdown-at-night
skiboot
snapd
sosreport
system-tools-backends
systemd
sysvinit
toybox
tripwire
typespeed
u-boot
ukui-control-center
user-mode-linux-doc
virt-p2v
watchdog
wvdial
xen
xen-tools
yadm
yuma123

> Technically the Depends from irqtop to util-linux-extra is not
> needed.

Correct.

> I think it still makes sense to have it, in case the relations
> between util-linux and util-linux-extra change before the release.

Hmm, I've also (yesterday) added a Suggests on both packages
containing an irqtop implementation, so that despite the fulfilled
hard dependency the other package should be listed as "Suggested but
not installed package", too.

Then again, that will not trigger either if I would change the
dependency on irqtop-nf only and put util-linux-extra only into
Suggests. Hrm.

Still wonder if using "Depends: irqtop-nf" plus "Suggests:
util-linux-extra" instead of how I proposed it beforehand and how it's
currently in git.

> Do you agree?

Hmmm, I kinda see where the reasoning comes from, but it doesn't look
like being a proper solution to me so far.

Oh, and JFTR: I fully agree that the hwclock infrastructure should not
be "essential" but optional in the sense of that the admin has the
possibility to not install or uninstall it if the installation is e.g.
a VM, a container or a SBC without an hardware clock.

                Regards, Axel
-- 
 ,''`.  |  Axel Beckert <a...@debian.org>, https://people.debian.org/~abe/
: :' :  |  Debian Developer, ftp.ch.debian.org Admin
`. `'   |  4096R: 2517 B724 C5F6 CA99 5329  6E61 2FF9 CD59 6126 16B5
  `-    |  1024D: F067 EA27 26B9 C3FC 1486  202E C09E 1D89 9593 0EDE

Reply via email to