diff options
Diffstat (limited to 'pkgs/applications/audio/spotify/default.nix')
-rw-r--r-- | pkgs/applications/audio/spotify/default.nix | 42 |
1 files changed, 24 insertions, 18 deletions
diff --git a/pkgs/applications/audio/spotify/default.nix b/pkgs/applications/audio/spotify/default.nix index 245d96dee01..d81ab4b3ac7 100644 --- a/pkgs/applications/audio/spotify/default.nix +++ b/pkgs/applications/audio/spotify/default.nix @@ -1,7 +1,7 @@ -{ fetchurl, stdenv, squashfsTools, xorg, alsaLib, makeWrapper, openssl, freetype -, glib, pango, cairo, atk, gdk-pixbuf, gtk2, cups, nspr, nss, libpng, libnotify -, libgcrypt, systemd, fontconfig, dbus, expat, ffmpeg_3, curl, zlib, gnome3 -, at-spi2-atk, at-spi2-core, libpulseaudio +{ fetchurl, lib, stdenv, squashfsTools, xorg, alsa-lib, makeWrapper, wrapGAppsHook, openssl, freetype +, glib, pango, cairo, atk, gdk-pixbuf, gtk3, cups, nspr, nss, libpng, libnotify +, libgcrypt, systemd, fontconfig, dbus, expat, ffmpeg, curl, zlib, gnome +, at-spi2-atk, at-spi2-core, libpulseaudio, libdrm, mesa, libxkbcommon }: let @@ -10,18 +10,17 @@ let # If an update breaks things, one of those might have valuable info: # https://aur.archlinux.org/packages/spotify/ # https://community.spotify.com/t5/Desktop-Linux - version = "1.1.26.501.gbe11e53b-15"; + version = "1.1.55.498.gf9a83c60"; # To get the latest stable revision: # curl -H 'X-Ubuntu-Series: 16' 'https://api.snapcraft.io/api/v1/snaps/details/spotify?channel=stable' | jq '.download_url,.version,.last_updated' # To get general information: # curl -H 'Snap-Device-Series: 16' 'https://api.snapcraft.io/v2/snaps/info/spotify' | jq '.' # More examples of api usage: # https://github.com/canonical-websites/snapcraft.io/blob/master/webapp/publisher/snaps/views.py - rev = "41"; - + rev = "46"; deps = [ - alsaLib + alsa-lib atk at-spi2-atk at-spi2-core @@ -30,16 +29,19 @@ let curl dbus expat - ffmpeg_3 + ffmpeg fontconfig freetype gdk-pixbuf glib - gtk2 + gtk3 + libdrm libgcrypt libnotify libpng libpulseaudio + libxkbcommon + mesa nss pango stdenv.cc.cc @@ -64,7 +66,7 @@ let in stdenv.mkDerivation { - pname = "spotify"; + pname = "spotify-unwrapped"; inherit version; # fetch from snapcraft instead of the debian repository most repos fetch from. @@ -77,10 +79,10 @@ stdenv.mkDerivation { # https://community.spotify.com/t5/Desktop-Linux/Redistribute-Spotify-on-Linux-Distributions/td-p/1695334 src = fetchurl { url = "https://api.snapcraft.io/api/v1/snaps/download/pOBIoZ2LrCB3rDohMxoYGnbN14EHOgD7_${rev}.snap"; - sha512 = "41bc8d20388bab39058d0709d99b1c8e324ea37af217620797356b8bc0b24aedbe801eaaa6e00a93e94e26765602e5dc27ad423ce2e777b4bec1b92daf04f81e"; + sha512 = "dabb55d2ba41f977b6d3f03bfcf147d11785136dd1277efc62011c8371ef25cc04531266bd16608639b9b6a500c1a18a45f44ba7a43e17ab5ac139e36eff7149"; }; - buildInputs = [ squashfsTools makeWrapper ]; + nativeBuildInputs = [ makeWrapper wrapGAppsHook squashfsTools ]; dontStrip = true; dontPatchELF = true; @@ -107,6 +109,9 @@ stdenv.mkDerivation { runHook postUnpack ''; + # Prevent double wrapping + dontWrapGApps = true; + installPhase = '' runHook preInstall @@ -125,8 +130,8 @@ stdenv.mkDerivation { ln -s ${nspr.out}/lib/libnspr4.so $libdir/libnspr4.so ln -s ${nspr.out}/lib/libplc4.so $libdir/libplc4.so - ln -s ${ffmpeg_3.out}/lib/libavcodec.so* $libdir - ln -s ${ffmpeg_3.out}/lib/libavformat.so* $libdir + ln -s ${ffmpeg.out}/lib/libavcodec.so* $libdir + ln -s ${ffmpeg.out}/lib/libavformat.so* $libdir rpath="$out/share/spotify:$libdir" @@ -134,10 +139,11 @@ stdenv.mkDerivation { --interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \ --set-rpath $rpath $out/share/spotify/spotify - librarypath="${stdenv.lib.makeLibraryPath deps}:$libdir" + librarypath="${lib.makeLibraryPath deps}:$libdir" wrapProgram $out/share/spotify/spotify \ + ''${gappsWrapperArgs[@]} \ --prefix LD_LIBRARY_PATH : "$librarypath" \ - --prefix PATH : "${gnome3.zenity}/bin" + --prefix PATH : "${gnome.zenity}/bin" # fix Icon line in the desktop file (#48062) sed -i "s:^Icon=.*:Icon=spotify-client:" "$out/share/spotify/spotify.desktop" @@ -157,7 +163,7 @@ stdenv.mkDerivation { runHook postInstall ''; - meta = with stdenv.lib; { + meta = with lib; { homepage = "https://www.spotify.com/"; description = "Play music from the Spotify music service"; license = licenses.unfree; |