Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!

Bug 487520

Summary: media-sound/spotify-0.9.4.183 version bump
Product: Gentoo Linux Reporter: Lukas Polacek <lukas>
Component: Current packagesAssignee: Matthew Thode ( prometheanfire ) <prometheanfire>
Status: RESOLVED FIXED    
Severity: normal Keywords: EBUILD
Priority: Normal    
Version: unspecified   
Hardware: All   
OS: Linux   
Whiteboard:
Package list:
Runtime testing required: ---
Attachments: Ebuild v1

Description Lukas Polacek 2013-10-10 13:31:06 UTC
New version of Spotify is available.

Some comments:
1. Local playback only works with libavcodec.so.53, which means using old ffmpeg. You can have both old ffmpeg and new 1.2 installed.
2. There is a new executable SpotifyHelper and in the ebuild I needed to do some search and replace inside that one as well.
3. The security problem from #474010 is gone.

I am no expert in making ebuilds, so someone please check it. 

Reproducible: Always
Comment 1 Lukas Polacek 2013-10-10 13:31:54 UTC
Created attachment 360582 [details]
Ebuild v1
Comment 2 Lukas Polacek 2013-10-10 13:51:09 UTC
2 more things about the ebuild.

I had to fix a libudev symlink, we now have libudev.so.1 but the application is linked with libudev.so.0.

It's only written for amd64, partly because of libudev.
Comment 3 Jeroen Roovers (RETIRED) gentoo-dev 2013-10-10 13:55:43 UTC
Comment on attachment 360582 [details]
Ebuild v1

--- spotify-0.9.1.55.ebuild     2013-10-02 06:52:50.385183502 +0200
+++ -   2013-10-10 15:55:29.517088319 +0200
@@ -1,23 +1,20 @@
 # Copyright 1999-2013 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/media-sound/spotify/spotify-0.9.1.55.ebuild,v 1.2 2013/10/01 16:54:32 prometheanfire Exp $
 EAPI=4
-inherit eutils fdo-mime gnome2-utils pax-utils unpacker
+inherit eutils pax-utils unpacker
 DESCRIPTION="Spotify is a social music platform"
 HOMEPAGE="https://www.spotify.com/ch-de/download/previews/"
-MY_PV="${PV}.gbdd3b79.203-1"
+MY_PV="${PV}.g644e24e.428-1"
 MY_P="${PN}-client_${MY_PV}"
 SRC_BASE="http://repository.spotify.com/pool/non-free/${PN:0:1}/${PN}/"
 SRC_URI="
-       x86?   ( ${SRC_BASE}${MY_P}_i386.deb )
        amd64? ( ${SRC_BASE}${MY_P}_amd64.deb )
        "
 LICENSE="Spotify"
 SLOT="0"
-#amd64 and x86 keywords removed due to security concerns, see bug 474010
-KEYWORDS=""
+KEYWORDS="~amd64"
 IUSE="gnome pax_kernel pulseaudio"
 RESTRICT="mirror strip"
@@ -57,8 +54,10 @@
                dev-libs/nss
                dev-libs/glib:2
                net-print/cups
+               <media-video/ffmpeg-1.0
                pulseaudio? ( >=media-sound/pulseaudio-0.9.21 )
-               gnome? ( gnome-extra/gnome-integration-spotify )"
+               gnome? ( gnome-extra/gnome-integration-spotify )
+               "
 S=${WORKDIR}
@@ -70,11 +69,13 @@
        sed -i \
                -e 's/\(lib\(ssl\|crypto\).so\).0.9.8/\1.1.0.0/g' \
                opt/spotify/spotify-client/spotify || die "sed failed"
+       sed -i \
+               -e 's/\(lib\(ssl\|crypto\).so\).0.9.8/\1.1.0.0/g' \
+               opt/spotify/spotify-client/Data/SpotifyHelper || die "sed failed"
        # different NSPR / NSS library names for some reason
        sed -i \
-               -e 's/\(lib\(nss3\|nssutil3\|smime3\).so\).1d/\1\x00\x00\x00/g' \
-               -e 's/\(lib\(plc4\|nspr4\).so\).0d\(.\)/\1\x00\x00\3\3/g' \
-               opt/spotify/spotify-client/libcef.so || die "sed failed"
+               -e 's/\(lib\(plc4\|nspr4\).so\).9\(.\)/\1.0d\3\3/g' \
+               opt/spotify/spotify-client/Data/SpotifyHelper || die "sed failed"
        # Fix desktop entry to launch spotify-dbus.py for GNOME integration
        if use gnome ; then
        sed -i \
@@ -101,6 +102,7 @@
        insinto ${SPOTIFY_HOME}
        doins -r opt/spotify/spotify-client/*
        fperms +x ${SPOTIFY_HOME}/spotify
+       fperms +x ${SPOTIFY_HOME}/Data/SpotifyHelper
        dodir /usr/bin
        cat <<-EOF >"${D}"/usr/bin/spotify
@@ -138,7 +140,15 @@
        #hack to fix the nspr linking in spotify
        dosym /usr/lib/libnspr4.so /opt/spotify/spotify-client/libnspr4.so.9
        dosym /usr/lib/libplc4.so /opt/spotify/spotify-client/libplc4.so.9
-       sed -i 's/libcef\.so/libcef\.so\ \/opt\/spotify\/spotify\-client\/libnspr4\.so\.9\ \/opt\/spotify\/spotify\-client\/libplc4\.so\.9/g' "${ED}/usr/bin/spotify"
+       sed -i \
+               's/libcef\.so/libcef\.so\ \/opt\/spotify\/spotify\-client\/libnspr4\.so\.9\ \/opt\/spotify\/spotify\-client\/libplc4\.so\.9/g' \
+               ${ED}/usr/bin/spotify
+
+       #TODO maybe this symlink is not needed and could be fixed with previous sed
+       dosym /opt/${PN}/spotify-client/Data/libcef.so /opt/${PN}/spotify-client/
+
+       #TODO fix for x86
+       dosym /usr/lib64/libudev.so /opt/${PN}/spotify-client/Data/libudev.so.0
 }
 pkg_preinst() {
Comment 4 Matthew Thode ( prometheanfire ) archtester Gentoo Infrastructure gentoo-dev Security 2013-10-10 18:09:21 UTC
neato, when I am out of town too...  I'll get to it soon
Comment 5 Albert Veli 2013-10-11 11:09:44 UTC
I tried the new version with libcef moved to Data subdir and with the libudev.so.0 symlink. Playlists, playback and searching works. But show artist and show album does not work. Probably an upstream problem and not a gentoo problem. When I click on an artist I get the following error in the console:

11:01:52.255 I [AppManager.cpp:252              ] Creating instance of the application artist.
[1011/130152:ERROR:child_process_launcher.cc(326)] Failed to launch child process
Comment 6 Lukas Polacek 2013-10-11 18:06:25 UTC
(In reply to Albert Veli from comment #5)
> I tried the new version with libcef moved to Data subdir and with the
> libudev.so.0 symlink. Playlists, playback and searching works. But show
> artist and show album does not work. Probably an upstream problem and not a
> gentoo problem. When I click on an artist I get the following error in the
> console:
> 
> 11:01:52.255 I [AppManager.cpp:252              ] Creating instance of the
> application artist.
> [1011/130152:ERROR:child_process_launcher.cc(326)] Failed to launch child
> process

Works here... Is /opt/spotify/spotify-client/Data/SpotifyHelper executable?
Comment 7 Matthew Thode ( prometheanfire ) archtester Gentoo Infrastructure gentoo-dev Security 2013-10-13 01:45:18 UTC
(In reply to Albert Veli from comment #5)
> I tried the new version with libcef moved to Data subdir and with the
> libudev.so.0 symlink. Playlists, playback and searching works. But show
> artist and show album does not work. Probably an upstream problem and not a
> gentoo problem. When I click on an artist I get the following error in the
> console:
> 
> 11:01:52.255 I [AppManager.cpp:252              ] Creating instance of the
> application artist.
> [1011/130152:ERROR:child_process_launcher.cc(326)] Failed to launch child
> process

If you are running hardened you need SpotifyHelper to be paxmarked, but I'm putting what I have in tree tonight, so you should get it tomorrow.