Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Spotify] Plugin install, undefined symbol #5521

Closed
2 tasks done
jkw opened this issue Oct 21, 2016 · 6 comments
Closed
2 tasks done

[Spotify] Plugin install, undefined symbol #5521

jkw opened this issue Oct 21, 2016 · 6 comments

Comments

@jkw
Copy link

jkw commented Oct 21, 2016

Before posting

Please follow the steps below and check the boxes with [x] once you did the step.

  • I checked the issue tracker for similar issues
  • I checked the changelog if the issue is already resolved
  • [-] I tried the latest Clementine build from here

System information

Please provide information about your system and the version of Clementine used.

  • Operating System: Antergos (ArchLinux)
  • Clementine version: 1.3.1

Expected behaviour / actual behaviour

  • Clementine says installing Spotify plugin, then crashes.

Steps to reproduce the problem (only for bugs)

  • Click Spotify.
  • Choose install plugin.
  • Crash with error:
    clementine: symbol lookup error: clementine: undefined symbol: _ZN8CryptoPP6SHA5129InitStateEPy
@AoifeHughes
Copy link

I've just loaded up the 1.3.1 version to try this out.

I'd be tempted to say that you have a missing library, have a look at the full list of dependancies here

Also try running from terminal and see if your output is similar to mine or if anything else appears

I have this as my console output:
20:01:14.698 INFO SpotifyBlobDownloader:91 Downloading QUrl( "https://spotify.clementine-player.org/version16-64bit/blob" ) 20:01:14.698 INFO SpotifyBlobDownloader:91 Downloading QUrl( "https://spotify.clementine-player.org/version16-64bit/blob.sha512" ) 20:01:14.699 INFO SpotifyBlobDownloader:91 Downloading QUrl( "https://spotify.clementine-player.org/version16-64bit/libspotify.so.12.1.51" ) 20:01:14.699 INFO SpotifyBlobDownloader:91 Downloading QUrl( "https://spotify.clementine-player.org/version16-64bit/libspotify.so.12.1.51.sha512" ) 20:01:18.894 DEBUG SpotifyBlobDownloader:212 Verifying "blob" against "blob.sha512" true 20:01:18.910 DEBUG SpotifyBlobDownloader:212 Verifying "libspotify.so.12.1.51" against "libspotify.so.12.1.51.sha512" true 20:01:18.910 INFO SpotifyBlobDownloader:146 Writing "/home/nathan/.config/Clementine/spotifyblob/version16-64bit/blob" 20:01:18.911 INFO SpotifyBlobDownloader:146 Writing "/home/nathan/.config/Clementine/spotifyblob/version16-64bit/libspotify.so.12.1.51" 20:01:18.913 DEBUG SpotifyBlobDownloader:165 Linking "/home/nathan/.config/Clementine/spotifyblob/version16-64bit/libspotify.so.12.1.51" to "/home/nathan/.config/Clementine/spotifyblob/version16-64bit/libspotify.so" 20:01:18.913 DEBUG SpotifyBlobDownloader:165 Linking "/home/nathan/.config/Clementine/spotifyblob/version16-64bit/libspotify.so.12.1.51" to "/home/nathan/.config/Clementine/spotifyblob/version16-64bit/libspotify.so.12" 20:01:18.913 DEBUG SpotifyBlobDownloader:165 Linking "/home/nathan/.config/Clementine/spotifyblob/version16-64bit/libspotify.so.12.1.51" to "/home/nathan/.config/Clementine/spotifyblob/version16-64bit/libspotify.so.12.1" 20:01:18.914 INFO SpotifyService:356 Starting "/home/nathan/.config/Clementine/spotifyblob/version16-64bit/blob" 20:01:18.936 DEBUG SpotifyClient:84 Using: "/home/nathan/.config/Clementine/spotify-cache" for Spotify cache 20:01:18.936 DEBUG SpotifyClient:86 Using: "/home/nathan/.config/Clementine/spotify-settings" for Spotify settings 20:01:18.936 DEBUG SpotifyClient:114 Connecting to port 38745 20:01:18.936 INFO SpotifyServer:53 Connection from port 60066 20:01:18.937 DEBUG SpotifyClient:321 Setting playback settings: bitrate 1 normalisation false 20:01:18.937 WARN SpotifyClient:343 Tried to relogin but no stored credentials

@mueslo
Copy link

mueslo commented Oct 29, 2016

I have the same issue, also on Arch Linux with Clementine 1.3.1-3. The referenced symbol seems to be part of crypto++, which I have installed (5.6.5-2).

~/.c/Clementine ❯❯❯ clementine --verbose                                                                                           ⏎
19:41:00.160 WARN  unknown                          libpng warning: iCCP: known incorrect sRGB profile 
19:41:00.191 WARN  unknown                          QxtGlobalShortcut failed to register: "Media Next"  
19:41:00.191 WARN  unknown                          QxtGlobalShortcut failed to register: "Media Play"  
19:41:00.191 WARN  unknown                          QxtGlobalShortcut failed to register: "Media Previous"  
19:41:00.191 WARN  unknown                          QxtGlobalShortcut failed to register: "Media Stop"  
19:41:00.304 WARN  unknown                          QPainter::begin: Paint device returned engine == 0, type: 2 
clementine: symbol lookup error: clementine: undefined symbol: _ZN8CryptoPP6SHA5129InitStateEPy

@emilio-aburto
Copy link

Seems to be a problem with crypto++, I just downgraded the package to 5.6.4 and everything is working ok. I'm gonna post the bug in their repo.

@mueslo
Copy link

mueslo commented Nov 6, 2016

I would suppose the problem is that the arch maintainer built clementine against cryptopp 5.6.4, while the current version in the repos is 5.6.5

@Chocobozzz
Copy link
Contributor

@noloader
Copy link

noloader commented Nov 6, 2016

It's weird crypto++ broke the ABI with a patch version.

Yes, we fumbled the 5.6.5 release. More correctly, I fumbled it. Our sincerest apologies for that.

If interested, more of the back story is we caught Issue 277/CVE-2016-7420. It was a procedural finding that effectively said, "You did not tell someone they needed to defined NDEBUG for release builds". Someone who did not do it was in risk of an assert, which could egress data from the app's security boundary into another's boundary, like Apple, Google, Microsoft or Ubuntu by way of Error Reporting. We cleared the issue in 6 commits over a few days. After the six or so commits, the instance problem was solved.

Stepping back to 10,000 feet, we recognized the bigger problem was (1) the library did not ship in the recommended or "best state", (2) users needed to do something special to get into a recommended or "best state", and (3) users needed to RTFM to figure out what the best state was. The short of that is, "If RTFM was going to work, then it would have happened by now".

At 5.6.5 we shipped the library in the recommended or "best state". Effectively, we sacrificed distros for users. It was an awful decision to make and it really bothered everyone who is part of the Crypto++ project. We knew someone was going to get the pointy end of the stick.

We thought we had nearly all of the bases covered the 5.6.5. We knew 5.6.5 needed a recompile to vet the asserts and we thought the recompile would massage out any problems because symbols were not being removed. However, we wrong because we are here (q.v.).

If interested, here's where Debian, Fedora and Gentoo experienced the pain point (Clementine was added to the list):

If interested, we maintain a wiki page for Distributions. The section Post-Release Patches has a handful of bug reports you might be interested in. I try to keep commits coupled tightly to a report, so you should not have any trouble cherry picking. I strongly encourage Clementine to cherry-pick the changes for Crypto++ Issue 283 and Crypto++ 332. As far as I know, they are the two "symbol problems" for 5.6.5.

Finally, I also maintain a private mailing list for distros and other interested parties. Its very low volume and only makes contact with maintainers and packagers when necessary. If you want to be added to the discussions, then email me at _noloader, gmail account_.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

6 participants