Upgrading GNU Troff -- dependency hell!

Hello, all

When trying to upgrade GNU Troff (groff-base/oldstable) from version 1.22.4-3 to 1.22.4-3+ , `apt' proposes to do the following:

The following NEW packages will be installed: acl bc colord colord-data cups cups-browsed cups-client cups-common cups-core-drivers cups-daemon cups-filters cups-filters-core-drivers cups-ipp-utils cups-pk-helper cups-ppdc cups-server-common gir1.2-atk-1.0 gir1.2-freedesktop gir1.2-gtk-3.0 gir1.2-packagekitglib-1.0 gir1.2-pango-1.0 gir1.2-polkit-1.0 gir1.2-secret-1 hplip hplip-data libasound2-plugins libcolorhug2 libfontembed1 libgtksourceview-3.0-1 libgtksourceview-3.0-common libgusb2 libgutenprint-common libgutenprint9 libhpmud0 libieee1284-3 liblouis-data liblouis17 liblouisutdml-bin liblouisutdml-data liblouisutdml8 libmariadb3 libpulsedsp libqpdf21 libsane libsane-common libsane-hpaio libsnmp-base libsnmp30 mariadb-common mousepad mysql-common poppler-utils printer-driver-gutenprint printer-driver-hpcups printer-driver-postscript-hp pulseaudio pulseaudio-utils python3-cairo python3-cups python3-cupshelpers python3-pexpect python3-ptyprocess python3-renderpm python3-reportlab python3-reportlab-accel python3-smbc rpi.gpio-common rtkit sane-utils ssl-cert system-config-printer system-config-printer-common system-config-printer-udev update-inetd

The following packages will be upgraded: alsa-utils apt apt-utils arandr aspell avahi-daemon base-files bind9-host bluez bluez-firmware ca-certificates chromium-browser chromium-browser-l10n chromium-codecs-ffmpeg-extra curl dbus dbus-user-session dbus-x11 device-tree-compiler dillo distro-info-data dphys-swapfile ffmpeg file firmware-atheros firmware-brcm80211 firmware-libertas firmware-misc-nonfree firmware-realtek fuse ghostscript git git-man glib-networking glib-networking-common glib-networking-services gpicview groff-base gstreamer1.0-alsa gstreamer1.0-gl gstreamer1.0-libav gstreamer1.0-plugins-bad gstreamer1.0-plugins-base gstreamer1.0-plugins-good gstreamer1.0-x gtk2-engines-clearlookspix iproute2 iputils-ping isc-dhcp-client isc-dhcp-common klibc-utils libapt-inst2.0 libapt-pkg5.0 libaspell15 libavahi-client3 libavahi-common-data libavahi-common3 libavahi-core7 libavahi-glib1 libavahi-ui-gtk3-0 libavcodec58 libavdevice58 libavfilter7 libavformat58 libavresample4 libavutil56 libbind9-161 libblockdev-fs2 libblockdev-loop2 libblockdev-part-err2 libblockdev-part2 libblockdev-swap2 libblockdev-utils2 libblockdev2 libbluetooth3 libbrotli1 libbsd0 libc-bin libc-dev-bin libc-l10n libc6 libc6-dbg libc6-dev libcups2 libcupsimage2 libcurl3-gnutls libcurl4 libdbus-1-3 libdbus-1-dev libdns-export1104 libdns1104 libegl-mesa0 libegl1-mesa-dev libexif12 libexiv2-14 libfluidsynth1 libfm-data libfm-extra4 libfm-gtk-data libfm-gtk4 libfm-modules libfm4 libfreerdp-client2-2 libfreerdp2-2 libfreetype6 libfreetype6-dev libfuse2 libgbm1 libgcrypt20 libgl1-mesa-dev libgl1-mesa-dri libglapi-mesa libgles2-mesa libgles2-mesa-dev libglx-mesa0 libgnutls30 libgs9 libgs9-common libgssapi-krb5-2 libgssdp-1.0-3 libgstreamer-gl1.0-0 libgstreamer-plugins-bad1.0-0 libgstreamer-plugins-base1.0-0 libgupnp-1.0-4 libhogweed4 libicu63 libimobiledevice6 libinput-bin libinput10 libisc-export1100 libisc1100 libisccc161 libisccfg163 libjavascriptcoregtk-4.0-18 libjpeg-turbo-progs libjpeg62-turbo libjs-jquery libjs-underscore libjson-c3 libk5crypto3 libklibc libkrb5-3 libkrb5support0 libldap-2.4-2 libldap-common libldb1 liblirc-client0 liblwres161 liblz4-1 libmagic-mgc libmagic1 libnettle6 libnftnl11 libnss3 libntfs-3g883 libobrender32v5 libobt2v5 libopenjp2-7 libopenmpt-modplug1 libopenmpt0 libp11-kit0 libpam-chksshpwd libpam-modules libpam-modules-bin libpam-runtime libpam-systemd libpam0g libpango-1.0-0 libpangocairo-1.0-0 libpangoft2-1.0-0 libpangoxft-1.0-0 libpigpio-dev libpigpio1 libpigpiod-if-dev libpigpiod-if1 libpigpiod-if2-1 libpolkit-agent-1-0 libpolkit-backend-1-0 libpolkit-gobject-1-0 libpostproc55 libproxy-tools libproxy1v5 libpulse-dev libpulse-mainloop-glib0 libpulse0 libpython3.7 libpython3.7-dev libpython3.7-minimal libpython3.7-stdlib libqt5concurrent5 libqt5core5a libqt5dbus5 libqt5gui5 libqt5network5 libqt5printsupport5 libqt5sql5 libqt5sql5-sqlite libqt5widgets5 libqt5xml5 libraspberrypi-bin libraspberrypi-dev libraspberrypi-doc libraspberrypi0 libruby2.5 libsndfile1 libsqlite3-0 libssh-4 libssh-gcrypt-4 libssl1.1 libswresample3 libswscale5 libsystemd0 libtag1v5 libtag1v5-vanilla libtiff5 libturbojpeg0 libudev-dev libudev1 libunwind8 libvlc-bin libvlc5 libvlccore9 libvncclient1 libwebkit2gtk-4.0-37 libwebp6 libwebpdemux2 libwebpmux3 libwinpr2-2 libx11-6 libx11-data libx11-dev libx11-xcb1 libxml2 libzmq5 libzstd1 linux-libc-dev locales lxinput lxpanel lxpanel-data lxplug-bluetooth lxplug-cputemp lxplug-ejecter lxplug-network lxplug-ptbatt lxplug-volume lxterminal mesa-va-drivers mesa-vdpau-drivers meson multiarch-support nfs-common ninja-build ntfs-3g openbox openssh-client openssh-server openssh-sftp-server openssl pcmanfm pi-bluetooth pi-greeter pigpio pigpio-tools pigpiod pipanel pishutdown piwiz pixflat-icons policykit-1 pprompt python-apt-common python-gpiozero python-motephat python-pigpio python-pil python-rpi.gpio python-spidev python3-apt python3-gpiozero python3-lxml python3-motephat python3-pgzero python3-pigpio python3-pil python3-rpi.gpio python3-spidev python3.7 python3.7-dev python3.7-minimal python3.7-venv rake raspberrypi-bootloader raspberrypi-kernel raspi-config rc-gui realvnc-vnc-server rpd-plym-splash rpi-eeprom rpi-eeprom-images rpi-update ruby2.5 rubygems-integration ssh sudo systemd systemd-sysv tzdata udev unzip vlc vlc-bin vlc-data vlc-l10n vlc-plugin-base vlc-plugin-qt vlc-plugin-samba vlc-plugin-skins2 vlc-plugin-video-output vlc-plugin-video-splitter vlc-plugin-visualization wpasupplicant xserver-common xserver-xorg-core xterm 325 upgraded, 74 newly installed, 0 to remove and 2 not upgraded. Need to get 526 MB of archives. After this operation, 187 MB of additional disk space will be used.

How on Earth can a minor upgrade of GNU Troff start pull such an avanlange of dependencies? How can it, for example, directly or indirectly depend on `alsa-utils'? How can I see the branch of the dependency tree that contains `alsa-utils' ?

Can you please check your GNU Troff installations and tell me whether the standard macro packages `mm', `ms', and `me' are available, for I cannot find them in mine, which is *very* strange.

--
()  ascii ribbon campaign - against html e-mail 
/\  http://preview.tinyurl.com/qcy6mjc [archived]
Reply to
Anton Shepelev
Loading thread data ...

Are you sure 3+ is even a real version? I see 1.22.4-3+deb10u1 where the

+deb10u1 part means it's a customisation. Have you not updated your system in a long time? Perhaps some version jumps of dependencies require further updates of their dependencies etc.

apt-cache show groff-base apt-cache depends groff-base apt-cache rdepends groff-base

Reply to
A. Dumas

What command did you actually type and what was the complete output? It?s not possible to reliably interpret output like this without context.

What does dpkg --audit display?

[...]

It doesn?t.

$ apt depends groff-base groff-base Depends: libc6 (>= 2.17) Depends: libgcc1 (>= 1:4.0) Depends: libstdc++6 (>= 4.1.1) Depends: libuchardet0 (>= 0.0.1) Breaks: groff (

Reply to
Richard Kettlewell

A. Dumas to Anton Shepelev:

I had only about half an hour at my RPi and misinterpreted the output. This is my fault.

Yes. When tried to update GNU Troff the first time, `apt' prepared to download a sensible 25 Mb, but failed because of unacessible servers. It recommended that I issue `apt-get update', after which trying to upgrade GNU Troff produced the avalanche quoted in the previous post.

That is what I tried to understand, because `apt' claimed all those updates were part to the GNU Troff dependency tree!

I will do them when I get to the RPi again (which in my off- town house). Thank you.

--
()  ascii ribbon campaign -- against html e-mail 
/\  http://preview.tinyurl.com/qcy6mjc [archived]
Reply to
Anton Shepelev

Before ANY "apt upgrade", ALWAYS do an "apt update" (OK, maybe not when you already did it 2 minutes ago). It gets you all the most recent package information from the servers. The errors you got were probably from starting with outdated package info; then apt can't find the old ones on the server.

So yeah, I still think the avalanche of updates you got were "just" system updates from not having updated for a long time. Also, sometimes things get added between revisions. The RPi Foundation tries to make one image to please all of their users so they add and remove things you might not like. Easiest thing to do is simply accept the state of things and follow their updates.

Reply to
A. Dumas

I wrote to A. Dumas:

`show groff-base' displays the following dependencies:

Depends: libc6 (>= 2.4), libgcc1 (>= 1:4.0), libstdc++6 (>= 4.3.0), libuchardet0 (>= 0.0.1)

which is what I should expect.

`depends groff-base' shows:

Depends: libc6 Depends: libgcc1 Depends: libstdc++6 Depends: libuchardet0 Breaks: groff Breaks: Breaks: pmake Breaks: troffcvt Suggests: groff Replaces: groff Replaces:

`ardepends groff-base' shows:

man-db qmail-src rpmlint perl-doc groff live-task-standard imagemagick-6.q16hdri imagemagick-6.q16 groff bioperl gdisk doclifter cppman

A. Dumas:

Thanks for the advice and the explanation.

And I only wanted a missing Groff macro package :-( I will upgrade now, and you will hear from me yet if my RPi survives it.

P.S.: `apt install groff' did it without any unwaned updates. The avalanche menitioned above was due to my attept to upgrade groff-base/old-stable . And now I have the `mm' package.

P.P.S. I had to pass --allow-release-info-change to `apt update'.

--
()  ascii ribbon campaign - against html e-mail 
/\  http://preview.tinyurl.com/qcy6mjc [archived]
Reply to
Anton Shepelev

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.