summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKerin Millar <kfm@plushkava.net>2022-01-11 22:54:19 +0200
committerMatthew Thode <prometheanfire@gentoo.org>2022-01-11 17:11:50 -0600
commit253b5cce58ee7e965d48da56adc81f5df30d45d3 (patch)
tree4c534cb1ef0dd17db6f9c49105cfc921957d230b /media-sound/spotify
parentapp-misc/hello: version bump to 2.11 (diff)
downloadgentoo-253b5cce58ee7e965d48da56adc81f5df30d45d3.tar.gz
gentoo-253b5cce58ee7e965d48da56adc81f5df30d45d3.tar.bz2
gentoo-253b5cce58ee7e965d48da56adc81f5df30d45d3.zip
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@plushkava.net> Signed-off-by: Matthew Thode <prometheanfire@gentoo.org>
Diffstat (limited to 'media-sound/spotify')
-rw-r--r--media-sound/spotify/files/spotify-wrapper23
-rw-r--r--media-sound/spotify/spotify-1.1.72-r2.ebuild116
2 files changed, 139 insertions, 0 deletions
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
+}