site  contact  subhomenews

Finding XBPS to be very frustrating

October 11, 2024 — BarryK

The XBPS package manager in Void Linux, and used in QV, is great, except when the database becomes broken. Then, fixing can be inpossible, or so it seems.

I'm running QV with a deliberately broken package database. This can happen to someone running Void and they haven't updated or synced for a long time. Try and do anything, maybe install a package with 'xbps-install', and get messages with "broken, unresolvable shlib".

The official advice is to run "xbps-install -Su", which is to sync to latest database and update everything ... except, that doesn't work, gives lots of "broken, unresolvable shlib".

Here is an example:

# xbps-install --repository=https://repo-fi.voidlinux.org/current --force --verbose libndp
Found NetworkManager-1.48.10_1 in repository https://repo-fi.voidlinux.org/current
Found libndp-1.8_1 in repository https://repo-fi.voidlinux.org/current
Found openresolv-3.13.2_1 in repository https://repo-fi.voidlinux.org/current
Found wpa_supplicant-2.10_5 in repository https://repo-fi.voidlinux.org/current
Found libmm-glib-1.18.12_1 in repository https://repo-fi.voidlinux.org/current
Found libnm-1.48.10_1 in repository https://repo-fi.voidlinux.org/current
Found newt-0.52.21_7 in repository https://repo-fi.voidlinux.org/current
Found libcurl-8.10.1_1 in repository https://repo-fi.voidlinux.org/current
newt-0.52.21_7: broken, unresolvable shlib `libpopt.so.0'
NetworkManager-1.48.10_1: broken, unresolvable shlib `libpsl.so.5'
libcurl-8.10.1_1: broken, unresolvable shlib `libpsl.so.5'
newt-0.52.21_7: broken, unresolvable shlib `libslang.so.2'
Transaction aborted due to unresolved shlibs.

So, perhaps we can work down recursively and update all the packages. Yes, except 'xbps-install' is too dumb, cannot do that. It is possible, see this:

# xbps-install --repository=https://repo-fi.voidlinux.org/current --force sox
sox-14.4.2_8: broken, unresolvable shlib `libao.so.4'
Transaction aborted due to unresolved shlibs.
# xbps-install --repository=https://repo-fi.voidlinux.org/current --force libao
libcurl-8.10.1_1: broken, unresolvable shlib `libpsl.so.5'
Transaction aborted due to unresolved shlibs.

We have traced down, it looks like maybe can install libpsl...

# xbps-install --repository=https://repo-fi.voidlinux.org/current --force libpsl

Name Action Version New version Download size
public-suffix install - 2024.08.25_1 130KB
libpsl downgrade 0.21.5_2 0.21.5_1 72KB

Size to download: 203KB
Size required on disk: 485KB
Space available on disk: 43GB

Do you want to continue? [Y/n]

OK, now go back up, try libao...

# xbps-install --repository=https://repo-fi.voidlinux.org/current --force --ignore-file-conflicts libao

Name Action Version New version Download size
libid3tag update 0.15.1_2 0.15.1b_8 28KB
libmad update 0.15.1_2 0.15.1b_10 53KB
libwavpack install - 5.7.0_1 89KB
opusfile install - 0.12_3 44KB
sox update 14.4.2_2 14.4.2_8 385KB
libcurl install - 8.10.1_1 368KB
vorbis-tools update 1.4.2_2 1.4.2_3 206KB
libao update 1.2.0_2 1.2.2_2 29KB

Size to download: 1206KB
Size required on disk: 3076KB
Space available on disk: 43GB

Do you want to continue? [Y/n]

...yay!

I just happened to find these two able to install, but there is no tool to do it, to fix an entire installation. 'xbps-install' is too dumb, or too smart for its own good.    

Tags: quirky