[Solved] mythfrontend: symbol lookup error

Have a MythTV related problem? Ask for help from other MythTV users here.

Moderator: Forum Moderators

Post Reply
ZedThou
Junior
Posts: 25
Joined: Tue May 18, 2021 8:11 pm
United States of America

[Solved] mythfrontend: symbol lookup error

Post by ZedThou »

This is the latest v32 build on the Ubuntu 20.04 PPA, http://ppa.launchpad.net/mythbuntu/32/u ... _amd64.deb

Code: Select all

$ mythfrontend
/usr/bin/mythfrontend.real: symbol lookup error: /usr/bin/mythfrontend.real: undefined symbol: _Z10extractZIPR7QStringRKS_
I don't know who builds these packages, but hopefully someone who sees this can pass it along.
Last edited by ZedThou on Tue Jul 27, 2021 8:08 pm, edited 1 time in total.
User avatar
paulh
Developer
Posts: 909
Joined: Thu Feb 06, 2014 6:09 pm
Great Britain

Re: mythfrontend: symbol lookup error

Post by paulh »

This is a result of the new dependency on libzip.

Can you check if you have the libzip5 package installed with

Code: Select all

apt-cache policy libzip5
If it's not installed install it and then try running the frontend again

Code: Select all

sudo apt install libzip5
ZedThou
Junior
Posts: 25
Joined: Tue May 18, 2021 8:11 pm
United States of America

Re: mythfrontend: symbol lookup error

Post by ZedThou »

This is a bit confusing. I've got two machines running frontends.

One is Ubuntu 20.04, and it has libzip5 installed. On that machine,

Code: Select all

$ apt-cache policy libzip5
libzip5:
  Installed: 1.5.1-0ubuntu1
  Candidate: 1.5.1-0ubuntu1
  Version table:
 *** 1.5.1-0ubuntu1 500
        500 http://us.archive.ubuntu.com/ubuntu focal/universe amd64 Packages
        100 /var/lib/dpkg/status
The other is 20.10, but I get

Code: Select all

$ sudo apt install libzip5
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Package libzip5 is not available, but is referred to by another package.
This may mean that the package is missing, has been obsoleted, or
is only available from another source

E: Package 'libzip5' has no installation candidate
It does have libzip4, though.

In both cases, I see the mythfrontend error.

And shouldn't

Code: Select all

ldd /usr/bin/mythfrontend.real
show a dependency on libzip5? It doesn't.
User avatar
paulh
Developer
Posts: 909
Joined: Thu Feb 06, 2014 6:09 pm
Great Britain

Re: mythfrontend: symbol lookup error

Post by paulh »

Very strange.

It seems the runtime dependency for libzip-dev which is what we compile against depends on what version of Ubuntu you are on but in a strange way :?

bionic (18.04LTS) libzip4 (= 1.1.2-1.1)
focal (20.04LTS) libzip5 (= 1.5.1-0ubuntu1)
groovy (20.10) libzip5 (= 1.5.1-0ubuntu1)
hirsute (21.04) libzip4 (= 1.7.3-1ubuntu1)
impish libzip4 (= 1.7.3-1ubuntu1)

You would think hirsute and impish would continue to use libzip5 but goes back to libzip4. It does though look like both 20.04 and 20.10 both require libzip5 if the version information on https://packages.ubuntu.com/search?keyw ... ection=all is correct.

Are you sure the machine with libzip4 on it is 20.10?

ldd should show something like this

Code: Select all

libzip.so.5 => /lib/x86_64-linux-gnu/libzip.so.5 (0x00007f5003e20000)
Don't forget this dependency was only added in the last week or so so you will only see it on very recent v32 builds.

Plan B would be to just install libzip-dev since we know that will pull in the correct lib version and set up the correct symlinks

Code: Select all

sudo apt install libzip-dev
The downside it's the dev package so contains some stuff most user don't need.
ZedThou
Junior
Posts: 25
Joined: Tue May 18, 2021 8:11 pm
United States of America

Re: mythfrontend: symbol lookup error

Post by ZedThou »

My mistake, the libzip4 machine is 21.04, not 20.10. I've installed libzip-dev on both frontends, both are still throwing the same error.

One can download the deb link in my original post, unpack it and see that 'ldd' shows no libzip dependency, right?

I've also tried preloading libzip.so.5.0 with LD_PRELOAD, but to no effect, and 'nm -D' doesn't show any symbols with an "extract" in the name. My understanding of these things is vague, though.
User avatar
paulh
Developer
Posts: 909
Joined: Thu Feb 06, 2014 6:09 pm
Great Britain

Re: mythfrontend: symbol lookup error

Post by paulh »

Actually I see both in the deb :roll: :?

$ ldd /home/paul/data/usr/bin/mythfrontend.real | grep zip
libzip.so.5 => /lib/x86_64-linux-gnu/libzip.so.5 (0x00007f3122265000)

nm -D /home/paul/data/usr/bin/mythfrontend.real | grep extract
U _Z10extractZIPR7QStringRKS_
ZedThou
Junior
Posts: 25
Joined: Tue May 18, 2021 8:11 pm
United States of America

Re: mythfrontend: symbol lookup error

Post by ZedThou »

So, my understanding of how this works is incomplete. Why doesn't my mythfrontend.real show a libzip dependency?

Also, I meant that

Code: Select all

nm -D /usr/lib/x86_64-linux-gnu/libzip.so.5.0  | grep extract
comes up empty, since my assumption was that libzip was ultimately where it was supposed to reside.
ZedThou
Junior
Posts: 25
Joined: Tue May 18, 2021 8:11 pm
United States of America

Re: mythfrontend: symbol lookup error

Post by ZedThou »

Okay, I think I'm getting somewhere. The mythtv-frontend and mythtv-common packages have been upgraded, but not the libmyth package, which is where the libzip5 dependency comes in. After manually upgrading the other packages (libmyth, libmyth-python, libmythtv-perl), the frontend now works again.

Edit - the _Z10extractZIPR7QStringRKS_ symbol ended up being defined in libmythbase-32, so the old version of that library hanging around was ultimately the issue.
ZedThou
Junior
Posts: 25
Joined: Tue May 18, 2021 8:11 pm
United States of America

Re: [Solved] mythfrontend: symbol lookup error

Post by ZedThou »

I'm not quite sure how the libmyth and mythtv-frontend packages got out of synch, but I consider this solved.
willat8
Newcomer
Posts: 1
Joined: Mon Aug 02, 2021 3:07 am
Australia

Re: [Solved] mythfrontend: symbol lookup error

Post by willat8 »

Came across this today when trying to install the latest mythtv (from mythbuntu/32 ppa). I couldn't satisfy the libzip5 dependency because there's no package available in ubuntu impish (21.10).

I grabbed the latest libzip source package from groovy and rebuilt it for impish and pushed it to ppa:willat8/mythtv. Works fine now.
User avatar
paulh
Developer
Posts: 909
Joined: Thu Feb 06, 2014 6:09 pm
Great Britain

Re: [Solved] mythfrontend: symbol lookup error

Post by paulh »

Some versions of Ubuntu require libzip5 and others libzip4 each Ubuntu version only has one or the other available but not both.

For now I've changed the runtime dependency to libzip-dev since that acts like a meta package and pulls in the correct library version for us.
Post Reply