Libvpx struggle and question

Hey everyone, this may be a little long winded but it's rather important for context. Today I found out I was having some odd issues libvpx, specifically with gzdoom. The error I kept on getting is:
gzdoom: error while loading shared libraries: libvpx.so.7: cannot open shared object file: No such file or directory

I looked up many threads online as there seems to be numerous reports of others having this same problem with various software. I've seen seeing threads say I should update my system and then reset the machine and that didn't work. Some others saying to remove the software and recompile through the AUR and that still didn't work. And even tried downloading various versions of libvpx to no avail.

I however did end up taking a bit of a ridiculous approach in "fixing" this problem by going into /usr/lib/ and creating a duplicate of the libvpx.so.8 symbolic link, renamed it to libvpx.so.7 and that seemed to fix the issue. And now gzdoom seems to be perfectly fine. The dilemma I'm facing is this feels like an improper workaround, making me feel like I'm missing some important steps or key components to properly solve this problem. Is this a common solution that many people use to solve problems with software not yet updated for up to snuff libraries or is this a rather foolish thing to do and can lead to issues in the future?

Cheers.

System:
  Kernel: 6.2.2-zen1-1-zen arch: x86_64 bits: 64 compiler: gcc v: 12.2.1
    parameters: BOOT_IMAGE=/@/boot/vmlinuz-linux-zen
    root=UUID=d1811421-52d9-438e-bac3-684cad066ec0 rw rootflags=subvol=@
    quiet quiet splash rd.udev.log_priority=3 vt.global_cursor_default=0
    loglevel=3 ibt=off
  Desktop: Cinnamon v: 5.6.7 tk: GTK v: 3.24.37 wm: muffin vt: 7 dm: LightDM
    v: 1.32.0 Distro: Garuda Linux base: Arch Linux
Machine:
  Type: Desktop System: Tactus product: Custom v: N/A
    serial: <superuser required>
  Mobo: ASUSTeK model: ROG STRIX X570-E GAMING WIFI II v: Rev X.0x
    serial: <superuser required> UEFI: American Megatrends v: 4101
    date: 09/10/2021
CPU:
  Info: model: AMD Ryzen 9 5900X bits: 64 type: MT MCP arch: Zen 3+ gen: 4
    level: v3 note: check built: 2022 process: TSMC n6 (7nm) family: 0x19 (25)
    model-id: 0x21 (33) stepping: 2 microcode: 0xA201204
  Topology: cpus: 1x cores: 12 tpc: 2 threads: 24 smt: enabled cache:
    L1: 768 KiB desc: d-12x32 KiB; i-12x32 KiB L2: 6 MiB desc: 12x512 KiB
    L3: 64 MiB desc: 2x32 MiB
  Speed (MHz): avg: 3744 high: 4596 min/max: 2200/4950 boost: enabled
    scaling: driver: acpi-cpufreq governor: performance cores: 1: 4415 2: 3593
    3: 3572 4: 3741 5: 3552 6: 3592 7: 3697 8: 3682 9: 4592 10: 3590 11: 3577
    12: 3592 13: 3700 14: 3592 15: 3591 16: 3700 17: 3593 18: 3561 19: 3700
    20: 3642 21: 4596 22: 3591 23: 3700 24: 3700 bogomips: 177269
  Flags: avx avx2 ht lm nx pae sse sse2 sse3 sse4_1 sse4_2 sse4a ssse3 svm
  Vulnerabilities: <filter>
Graphics:
  Device-1: AMD Navi 21 [Radeon RX 6800/6800 XT / 6900 XT] vendor: Gigabyte
    driver: amdgpu v: kernel arch: RDNA-2 code: Navi-2x process: TSMC n7 (7nm)
    built: 2020-22 pcie: gen: 4 speed: 16 GT/s lanes: 16 ports: active: DP-2
    empty: DP-1,HDMI-A-1,HDMI-A-2 bus-ID: 0c:00.0 chip-ID: 1002:73bf
    class-ID: 0300
  Display: x11 server: X.Org v: 21.1.7 with: Xwayland v: 22.1.8 driver: X:
    loaded: amdgpu unloaded: modesetting,radeon alternate: fbdev,vesa
    dri: radeonsi gpu: amdgpu display-ID: :0 screens: 1
  Screen-1: 0 s-res: 2560x1440 s-dpi: 96 s-size: 677x381mm (26.65x15.00")
    s-diag: 777mm (30.58")
  Monitor-1: DP-2 mapped: DisplayPort-1 model: Gigabyte AORUS FI32Q
    serial: <filter> built: 2021 res: 2560x1440 dpi: 93 gamma: 1.2
    size: 698x392mm (27.48x15.43") diag: 801mm (31.5") ratio: 16:9 modes:
    max: 2560x1440 min: 720x400
  API: OpenGL v: 4.6 Mesa 22.3.6 renderer: AMD Radeon RX 6800 XT (navi21
    LLVM 15.0.7 DRM 3.49 6.2.2-zen1-1-zen) direct-render: Yes
Audio:
  Device-1: AMD Navi 21/23 HDMI/DP Audio driver: snd_hda_intel v: kernel
    bus-ID: 3-2:2 pcie: chip-ID: 041e:3272 gen: 4 class-ID: 0300 speed: 16 GT/s
    lanes: 16 serial: <filter> bus-ID: 0c:00.1 chip-ID: 1002:ab28
    class-ID: 0403
  Device-2: AMD Starship/Matisse HD Audio vendor: ASUSTeK
    driver: snd_hda_intel v: kernel pcie: gen: 4 speed: 16 GT/s lanes: 16
    bus-ID: 0e:00.4 chip-ID: 1022:1487 class-ID: 0403
  Device-3: Creative Pebble V3 type: USB
    driver: hid-generic,snd-usb-audio,usbhid
  Device-4: RODE Microphones NT-USB type: USB
    driver: hid-generic,snd-usb-audio,usbhid bus-ID: 3-3:3 chip-ID: 19f7:0003
    class-ID: 0300
  Sound API: ALSA v: k6.2.2-zen1-1-zen running: yes
  Sound Server-1: PulseAudio v: 16.1 running: no
  Sound Server-2: PipeWire v: 0.3.66 running: yes
Network:
  Device-1: MEDIATEK MT7921K Wi-Fi 6E 80MHz driver: mt7921e v: kernel pcie:
    gen: 2 speed: 5 GT/s lanes: 1 bus-ID: 04:00.0 chip-ID: 14c3:0608
    class-ID: 0280
  IF: wlp4s0 state: up mac: <filter>
  Device-2: Realtek RTL8125 2.5GbE vendor: ASUSTeK driver: r8169 v: kernel
    pcie: gen: 2 speed: 5 GT/s lanes: 1 port: e000 bus-ID: 05:00.0
    chip-ID: 10ec:8125 class-ID: 0200
  IF: enp5s0 state: down mac: <filter>
  Device-3: Intel I211 Gigabit Network vendor: ASUSTeK driver: igb v: kernel
    pcie: gen: 1 speed: 2.5 GT/s lanes: 1 port: d000 bus-ID: 06:00.0
    chip-ID: 8086:1539 class-ID: 0200
  IF: enp6s0 state: up speed: 100 Mbps duplex: full mac: <filter>
  Device-4: ASUSTek ROG KERIS WIRELESS type: USB driver: hid-generic,usbhid
    bus-ID: 2-1.4:4 chip-ID: 0b05:1960 class-ID: 0301
Bluetooth:
  Device-1: MediaTek Wireless_Device type: USB driver: btusb v: 0.8
    bus-ID: 3-6:5 chip-ID: 0e8d:0608 class-ID: e001 serial: <filter>
  Report: bt-adapter ID: hci0 rfk-id: 0 state: up address: <filter>
Drives:
  Local Storage: total: 8.19 TiB used: 4.38 TiB (53.5%)
  SMART Message: Required tool smartctl not installed. Check --recommends
  ID-1: /dev/nvme0n1 maj-min: 259:0 vendor: Seagate model: FireCuda 530
    ZP1000GM30013 size: 931.51 GiB block-size: physical: 512 B logical: 512 B
    speed: 63.2 Gb/s lanes: 4 type: SSD serial: <filter> rev: SU6SM001
    temp: 43.9 C scheme: GPT
  ID-2: /dev/sda maj-min: 8:0 vendor: Samsung model: SSD 870 QVO 2TB
    size: 1.82 TiB block-size: physical: 512 B logical: 512 B speed: 6.0 Gb/s
    type: SSD serial: <filter> rev: 2B6Q
  ID-3: /dev/sdb maj-min: 8:16 vendor: Seagate model: ST2000DM008-2FR102
    size: 1.82 TiB block-size: physical: 4096 B logical: 512 B speed: 6.0 Gb/s
    type: HDD rpm: 7200 serial: <filter> rev: 0001
  ID-4: /dev/sdc maj-min: 8:32 vendor: Seagate model: ST4000NE001-2MA101
    size: 3.64 TiB block-size: physical: 4096 B logical: 512 B speed: 6.0 Gb/s
    type: HDD rpm: 7200 serial: <filter> rev: EN01
Partition:
  ID-1: / raw-size: 931.22 GiB size: 931.22 GiB (100.00%)
    used: 434.22 GiB (46.6%) fs: btrfs dev: /dev/nvme0n1p2 maj-min: 259:2
  ID-2: /boot/efi raw-size: 300 MiB size: 299.4 MiB (99.80%)
    used: 608 KiB (0.2%) fs: vfat dev: /dev/nvme0n1p1 maj-min: 259:1
  ID-3: /home raw-size: 931.22 GiB size: 931.22 GiB (100.00%)
    used: 434.22 GiB (46.6%) fs: btrfs dev: /dev/nvme0n1p2 maj-min: 259:2
  ID-4: /var/log raw-size: 931.22 GiB size: 931.22 GiB (100.00%)
    used: 434.22 GiB (46.6%) fs: btrfs dev: /dev/nvme0n1p2 maj-min: 259:2
  ID-5: /var/tmp raw-size: 931.22 GiB size: 931.22 GiB (100.00%)
    used: 434.22 GiB (46.6%) fs: btrfs dev: /dev/nvme0n1p2 maj-min: 259:2
Swap:
  Kernel: swappiness: 133 (default 60) cache-pressure: 100 (default)
  ID-1: swap-1 type: zram size: 62.7 GiB used: 1.21 GiB (1.9%) priority: 100
    dev: /dev/zram0
Sensors:
  System Temperatures: cpu: 43.0 C mobo: 36.0 C gpu: amdgpu temp: 66.0 C
    mem: 64.0 C
  Fan Speeds (RPM): N/A gpu: amdgpu fan: 0
Info:
  Processes: 507 Uptime: 37m wakeups: 0 Memory: 62.7 GiB used: 5.56 GiB (8.9%)
  Init: systemd v: 253 default: graphical tool: systemctl Compilers:
  gcc: 12.2.1 Packages: 1485 pm: pacman pkgs: 1472 libs: 415
  tools: gnome-software,octopi,paru pm: flatpak pkgs: 13 Shell: fish v: 3.6.0
  default: Bash v: 5.1.16 running-in: gnome-terminal inxi: 3.3.25
Garuda (2.6.15-1):
  System install date:     2022-11-20
  Last full system update: 2023-03-06 ↻
  Is partially upgraded:   No
  Relevant software:       snapper NetworkManager mkinitcpio
  Windows dual boot:       No/Undetected
  Failed units:

That’s strange indeed.
It defintely looks like case 1. here, so a rebuild should have fixed it.

It also matches with the latest comment in the package AUR.
https://aur.archlinux.org/packages/gzdoom#comment-904736

4 Likes

Yeah I tried exactly that but I compiled it several times and it didn't do the job. It did seem like a case where the terminal was actually correct in saying the libvpx.so.7 was definitely missing, likely from a system update so creating that symbolic link definitely seems to have worked for now. It just seems like a totally bizarre workaround that I'm not sure is the right way of going about it.

Normally this is not the right approach and it's risky. Libraries receive soname bumps when they are not backwards compatible.
This was probably a lucky case :wink:

2 Likes

I thought so, had a feeling that was probably the wrong approach to take but I just felt like I had to try it. And if it work for now with no discernible issues then I guess it's not the end of the world, especially when I didn't have to do anything dodgy that I don't understand :laughing: I guess it's just now a case of waiting for software to get the updates they need, but thanks for the heads up :+1:

1 Like