diff options
author | Andrew Ammerlaan <andrewammerlaan@gentoo.org> | 2021-12-28 13:49:39 +0100 |
---|---|---|
committer | Matthew Thode <prometheanfire@gentoo.org> | 2022-01-05 10:42:34 -0600 |
commit | ffaf6180e1a5919724511fb7c896b45443910bab (patch) | |
tree | dd7c28ee0f903f13c7f4b2587ca55eb7f28f5d65 /media-sound | |
parent | dev-java/commons-collections: bump to 4.4 (diff) | |
download | gentoo-ffaf6180e1a5919724511fb7c896b45443910bab.tar.gz gentoo-ffaf6180e1a5919724511fb7c896b45443910bab.tar.bz2 gentoo-ffaf6180e1a5919724511fb7c896b45443910bab.zip |
media-sound/spotify: rework systray support
- drop systray flag
- expand launch script to detect and use systray application if present
- add optfeature
- bump to EAPI 8
Closes: https://bugs.gentoo.org/825406
Closes: https://bugs.gentoo.org/825410
Package-Manager: Portage-3.0.30, Repoman-3.0.3
Signed-off-by: Andrew Ammerlaan <andrewammerlaan@gentoo.org>
Signed-off-by: Matthew Thode <prometheanfire@gentoo.org>
Diffstat (limited to 'media-sound')
-rw-r--r-- | media-sound/spotify/spotify-1.1.72-r1.ebuild | 133 |
1 files changed, 133 insertions, 0 deletions
diff --git a/media-sound/spotify/spotify-1.1.72-r1.ebuild b/media-sound/spotify/spotify-1.1.72-r1.ebuild new file mode 100644 index 000000000000..b36208e04b8c --- /dev/null +++ b/media-sound/spotify/spotify-1.1.72-r1.ebuild @@ -0,0 +1,133 @@ +# Copyright 1999-2021 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" +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 + cat <<EOF >"${D}"/usr/bin/spotify || die +#! /bin/sh +if command -v spotify-dbus.py &> /dev/null; then + echo "Launching spotify with Gnome systray integration" + LD_LIBRARY_PATH="/usr/$(get_libdir)/apulse" \\ + spotify-dbus.py "\$@" +elif command -v spotify-tray &> /dev/null; then + echo "Launching spotify with generic systray integration" + TRAY_ARGS=" --client-path=${SPOTIFY_HOME}/spotify --toggle " + # seperate out the --minimized argument, parse it to spotify-tray + # propagate the rest to the spotify client itself + if [[ "\$@" == *"--minimized"* ]]; then + TRAY_ARGS+=" --minimized " + fi + LD_LIBRARY_PATH="/usr/$(get_libdir)/apulse" \\ + spotify-tray \${TRAY_ARGS} -- "\$@" +else + echo "Neither gnome-integration-spotify or spotify-tray installed" + echo "Launching spotify without systray integration" + LD_LIBRARY_PATH="/usr/$(get_libdir)/apulse" \\ + exec ${SPOTIFY_HOME}/spotify "\$@" +fi +EOF + 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 +} |