You are not logged in.

#1 2022-01-06 16:39:36

grepfor32
Member
Registered: 2022-01-04
Posts: 2

mpd-0.23.5-1.0-pentium4 runtime symbol missing

Looks like mpd-0.23.5-1.0-pentium4 was built against pipewire-1:0.3.34-1.0-pentium4, which (for reasons I did not try to fathom) does not define dynamic symbol PW_LOG_TOPIC_DEFAULT, hence will not run.

I found a later version of pipewire (pipewire-1_0.3.40-1.2-pentium4)  in the staging repo, which does have that symbol defined, and seems to solve the problem.

Can anyone reproduce this?  Steps to reproduce:

   1. install mpd-0.23.5-1.0-pentium4 on a system which has libs associated with
       pipewire-1:0.3.34-1.0  but not  pipewire-1_0.3.40-1.2.

   2. Attempt to run mpd from commandline.

What I see is a runtime symbol lookup failure on PW_LOG_TOPIC_DEFAULT.

Then, after updating pipewire to the later version mentioned above (1_0.3.40-1.2), mpd executes successfully.


Side issue/observation: There's a small,  possibly unintentional, syntactic difference between the naming of the packagefiles of the two versions of pipewire mentioned above:  1:0.3.34-1.0 vs. 1_0.3.40-1.2 (colon vs. underscore after the leading "1").  Not sure if this is intentional and/or problematic in any way, just mentioning it for completeness sake in case it may have been a typo.

Last edited by grepfor32 (2022-01-06 16:41:29)

Offline

#2 2022-01-06 16:54:38

levi
Moderator
From: Yorkshire, UK
Registered: 2018-06-16
Posts: 1,179

Re: mpd-0.23.5-1.0-pentium4 runtime symbol missing

I suspect mpd was built against pipewire 1_0.3.40 becausse that's what's in staging, but it's expecting it to run against pipewire 1.0.3.34, but yeah your conclusions sound good to me.

I can only find two packages on my local system with underscores in the version number (dialog and libedit) which both have an underscore next to a date field.  I think it's a typo, but the impact should be minimal I reckon.


Architecture: pentium4, Testing repos: Yes, Hardware: EeePC 901+2GB RAM+OS half on the SD card.

Offline

#3 2022-01-06 17:28:35

grepfor32
Member
Registered: 2022-01-04
Posts: 2

Re: mpd-0.23.5-1.0-pentium4 runtime symbol missing

You may well be right that mpd was built against the later (staging) version of pipewire, with only the expectation that all dynamic symbols  would resolve vs. the earlier one.

But this still leaves open a question, at least in my mind: Why did my install (of mpd) not fail with an unsatisfied dependency on the staging version of pipewire? I have neither the testing nor the staging repos enabled in my pacman.conf, so I would have thought that the soname mismatch would catch this, hence pacman would have failed my mpd install attempt due to an unsatisfiable dependency.

Is this reasoning wrong? If so, can you (or anyone) provide a quick explanation of what proper user expectation should be in a case like this (i.e. a required dynamic symbol is absent from a library in the {core,extra,community}  repos)? Is it a packaging boo-boo, or just wrong user expectation on my part?

Offline

Board footer

Powered by FluxBB