commit:     253b5cce58ee7e965d48da56adc81f5df30d45d3
Author:     Kerin Millar <kfm <AT> plushkava <DOT> net>
AuthorDate: Tue Jan 11 20:54:19 2022 +0000
Commit:     Matthew Thode <prometheanfire <AT> gentoo <DOT> org>
CommitDate: Tue Jan 11 23:11:50 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=253b5cce

media-sound/spotify: Fix POSIX sh violations in the wrapper script

Adjust the wrapper script template so as to operate correctly in POSIX
sh(1), in addition to incorporating some minor quality improvements.
Relocate the template to FILESDIR and use envsubst(1) to substitute the
SPOTIFY_HOME and LIBDIR variables at the point that the wrapper is
generated. Doing so makes it simpler to read and maintain.

Closes: https://bugs.gentoo.org/831029
Signed-off-by: Kerin Millar <kfm <AT> plushkava.net>
Signed-off-by: Matthew Thode <prometheanfire <AT> gentoo.org>

 media-sound/spotify/files/spotify-wrapper    |  23 ++++++
 media-sound/spotify/spotify-1.1.72-r2.ebuild | 116 +++++++++++++++++++++++++++
 2 files changed, 139 insertions(+)

diff --git a/media-sound/spotify/files/spotify-wrapper 
b/media-sound/spotify/files/spotify-wrapper
new file mode 100644
index 000000000000..db8f8b948780
--- /dev/null
+++ b/media-sound/spotify/files/spotify-wrapper
@@ -0,0 +1,23 @@
+#!/bin/sh
+
+export LD_LIBRARY_PATH="/usr/$LIBDIR/apulse"
+
+if command -v spotify-dbus.py > /dev/null; then
+       echo "Launching spotify with Gnome systray integration."
+       spotify-dbus.py "$@"
+elif command -v spotify-tray > /dev/null; then
+       echo "Launching spotify with generic systray integration."
+       minimized=
+       for arg; do
+               if [ "$arg" = --minimized ]; then
+                       minimized=$arg
+                       break
+               fi
+       done
+       spotify-tray \
+               --client-path="$SPOTIFY_HOME/spotify" --toggle $minimized -- 
"$@"
+else
+       echo "Neither gnome-integration-spotify nor spotify-tray are installed."
+       echo "Launching spotify without systray integration."
+       exec "$SPOTIFY_HOME/spotify" "$@"
+fi

diff --git a/media-sound/spotify/spotify-1.1.72-r2.ebuild 
b/media-sound/spotify/spotify-1.1.72-r2.ebuild
new file mode 100644
index 000000000000..d3f98c51dd26
--- /dev/null
+++ b/media-sound/spotify/spotify-1.1.72-r2.ebuild
@@ -0,0 +1,116 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit desktop optfeature pax-utils unpacker xdg
+
+DESCRIPTION="Spotify is a social music platform"
+HOMEPAGE="https://www.spotify.com/download/linux/";
+SRC_BASE="http://repository.spotify.com/pool/non-free/s/${PN}-client/";
+BUILD_ID_AMD64="439.gc253025e"
+SRC_URI="${SRC_BASE}${PN}-client_${PV}.${BUILD_ID_AMD64}_amd64.deb"
+
+LICENSE="Spotify"
+SLOT="0"
+KEYWORDS="~amd64"
+IUSE="libnotify local-playback pax-kernel pulseaudio"
+RESTRICT="mirror strip"
+
+BDEPEND="
+       >=dev-util/patchelf-0.10
+       sys-devel/gettext
+"
+RDEPEND="
+       dev-libs/nss
+       dev-python/dbus-python
+       libnotify? ( x11-libs/libnotify )
+       dev-libs/openssl:0=
+       media-libs/alsa-lib
+       media-libs/fontconfig
+       media-libs/harfbuzz
+       media-libs/mesa[X(+)]
+       net-misc/curl[ssl]
+       net-print/cups[ssl]
+       pulseaudio? ( media-sound/pulseaudio )
+       !pulseaudio? ( media-sound/apulse )
+       local-playback? ( media-video/ffmpeg:0/56.58.58 )
+       x11-libs/gtk+:3
+       app-accessibility/at-spi2-atk
+       x11-libs/libxkbcommon
+       x11-libs/libXScrnSaver
+       x11-libs/libXtst
+       x11-libs/libSM
+       x11-libs/libICE
+"
+       #sys-libs/glibc
+
+S="${WORKDIR}/"
+
+QA_PREBUILT="
+       opt/spotify/spotify-client/spotify
+       opt/spotify/spotify-client/libEGL.so
+       opt/spotify/spotify-client/libGLESv2.so
+       opt/spotify/spotify-client/libcef.so
+       opt/spotify/spotify-client/libvk_swiftshader.so
+       opt/spotify/spotify-client/libvulkan.so.1
+       opt/spotify/spotify-client/swiftshader/libEGL.so
+       opt/spotify/spotify-client/swiftshader/libGLESv2.so
+"
+
+src_prepare() {
+       default
+       # Spotify links against libcurl-gnutls.so.4, which does not exist in 
Gentoo.
+       patchelf --replace-needed libcurl-gnutls.so.4 libcurl.so.4 
usr/bin/spotify \
+               || die "failed to patch libcurl library dependency"
+}
+
+src_install() {
+       gunzip usr/share/doc/spotify-client/changelog.gz || die
+       dodoc usr/share/doc/spotify-client/changelog
+
+       SPOTIFY_PKG_HOME=usr/share/spotify
+       insinto /usr/share/pixmaps
+       doins ${SPOTIFY_PKG_HOME}/icons/*.png
+
+       # install in /opt/spotify
+       SPOTIFY_HOME=/opt/spotify/spotify-client
+       insinto ${SPOTIFY_HOME}
+       doins -r ${SPOTIFY_PKG_HOME}/*
+       fperms +x ${SPOTIFY_HOME}/spotify
+
+       dodir /usr/bin
+       SPOTIFY_HOME=${SPOTIFY_HOME} LIBDIR=$(get_libdir) \
+               envsubst '$SPOTIFY_HOME $LIBDIR' \
+               < "${FILESDIR}/spotify-wrapper" > "${D}/usr/bin/spotify" || die
+       fperms +x /usr/bin/spotify
+
+       local size
+       for size in 16 22 24 32 48 64 128 256 512; do
+               newicon -s ${size} 
"${S}${SPOTIFY_PKG_HOME}/icons/spotify-linux-${size}.png" \
+                       "spotify-client.png"
+       done
+       domenu "${S}${SPOTIFY_PKG_HOME}/spotify.desktop"
+       if use pax-kernel; then
+               #create the headers, reset them to default, then paxmark -m them
+               pax-mark C "${ED}${SPOTIFY_HOME}/${PN}" || die
+               pax-mark z "${ED}${SPOTIFY_HOME}/${PN}" || die
+               pax-mark m "${ED}${SPOTIFY_HOME}/${PN}" || die
+               eqawarn "You have set USE=pax-kernel meaning that you intend to 
run"
+               eqawarn "${PN} under a PaX enabled kernel.      To do so, we 
must modify"
+               eqawarn "the ${PN} binary itself and this *may* lead to 
breakage!  If"
+               eqawarn "you suspect that ${PN} is being broken by this 
modification,"
+               eqawarn "please open a bug."
+       fi
+}
+
+pkg_postinst() {
+       xdg_pkg_postinst
+
+       ewarn "If Spotify crashes after an upgrade its cache may be corrupt."
+       ewarn "To remove the cache:"
+       ewarn "rm -rf ~/.cache/spotify"
+
+       optfeature "Gnome specific systray integration" 
gnome-extra/gnome-integration-spotify
+       optfeature "systray integration on non-Gnome DEs" 
media-sound/spotify-tray
+}

Reply via email to