diff options
author | Kerin Millar <kfm@plushkava.net> | 2022-01-11 22:54:19 +0200 |
---|---|---|
committer | Matthew Thode <prometheanfire@gentoo.org> | 2022-01-11 17:11:50 -0600 |
commit | 253b5cce58ee7e965d48da56adc81f5df30d45d3 (patch) | |
tree | 4c534cb1ef0dd17db6f9c49105cfc921957d230b /media-sound/spotify | |
parent | app-misc/hello: version bump to 2.11 (diff) | |
download | gentoo-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-wrapper | 23 | ||||
-rw-r--r-- | media-sound/spotify/spotify-1.1.72-r2.ebuild | 116 |
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 +} |