diff options
author | Christopher Lübbemeier <christopher.luebbemeier@gmail.com> | 2016-01-06 23:28:11 +0100 |
---|---|---|
committer | Robin Gloster <mail@glob.in> | 2016-01-17 19:18:32 +0000 |
commit | ebd1a4ca9f66c369ff4c475cfa4329110a73ac18 (patch) | |
tree | 5e4cd63b47f619ee21df57886c670081ce37ed70 /pkgs/applications | |
parent | ff837f92880721f1ef5ca71fbe65ad8d61cd12bc (diff) | |
download | nixlib-ebd1a4ca9f66c369ff4c475cfa4329110a73ac18.tar nixlib-ebd1a4ca9f66c369ff4c475cfa4329110a73ac18.tar.gz nixlib-ebd1a4ca9f66c369ff4c475cfa4329110a73ac18.tar.bz2 nixlib-ebd1a4ca9f66c369ff4c475cfa4329110a73ac18.tar.lz nixlib-ebd1a4ca9f66c369ff4c475cfa4329110a73ac18.tar.xz nixlib-ebd1a4ca9f66c369ff4c475cfa4329110a73ac18.tar.zst nixlib-ebd1a4ca9f66c369ff4c475cfa4329110a73ac18.zip |
spotify: 0.9.17.1 -> 1.0.19.106
changes by @globin: used wrapper instead of propagatedUserEnvPkgs for zenity closes #12191 Signed-off-by: Robin Gloster <mail@glob.in>
Diffstat (limited to 'pkgs/applications')
-rw-r--r-- | pkgs/applications/audio/spotify/default.nix | 48 | ||||
-rw-r--r-- | pkgs/applications/audio/spotify/preload.c | 66 |
2 files changed, 19 insertions, 95 deletions
diff --git a/pkgs/applications/audio/spotify/default.nix b/pkgs/applications/audio/spotify/default.nix index 81c2ee59bc53..cdfbf2f2b4c7 100644 --- a/pkgs/applications/audio/spotify/default.nix +++ b/pkgs/applications/audio/spotify/default.nix @@ -1,18 +1,18 @@ -{ fetchurl, stdenv, dpkg, xorg, qt4, alsaLib, makeWrapper, openssl_1_0_1, freetype +{ fetchurl, stdenv, dpkg, xorg, alsaLib, makeWrapper, openssl_1_0_1, freetype , glib, pango, cairo, atk, gdk_pixbuf, gtk, cups, nspr, nss, libpng, GConf -, libgcrypt, chromium, udev, fontconfig -, dbus, expat, ffmpeg_0_10 }: +, libgcrypt, udev, fontconfig, dbus, expat, ffmpeg_0_10, curl, zlib, gnome }: assert stdenv.system == "x86_64-linux"; let - version = "0.9.17.1.g9b85d43.7"; + version = "1.0.19.106.gb8a7150f"; deps = [ alsaLib atk cairo cups + curl dbus expat ffmpeg_0_10 @@ -26,19 +26,20 @@ let libpng nss pango - qt4 stdenv.cc.cc udev xorg.libX11 xorg.libXcomposite + xorg.libXcursor xorg.libXdamage xorg.libXext xorg.libXfixes xorg.libXi xorg.libXrandr xorg.libXrender - xorg.libXrender xorg.libXScrnSaver + xorg.libXtst + zlib ]; in @@ -48,8 +49,8 @@ stdenv.mkDerivation { src = fetchurl { - url = "http://repository.spotify.com/pool/non-free/s/spotify/spotify-client_${version}-1_amd64.deb"; - sha256 = "0x87q7gd2997sgppsm4lmdiz1cm11x5vnd5c34nqb5d4ry5qfyki"; + url = "http://repository-origin.spotify.com/pool/non-free/s/spotify-client/spotify-client_${version}_amd64.deb"; + sha256 = "be6b99329bb2fccdc9d77bc949dd463576fdb40db7f56195b4284bd348c470be"; }; buildInputs = [ dpkg makeWrapper ]; @@ -61,8 +62,8 @@ stdenv.mkDerivation { libdir=$out/lib/spotify mkdir -p $libdir dpkg-deb -x $src $out - mv $out/opt/spotify/* $out/ - rm -rf $out/usr $out/opt + mv $out/usr/* $out/ + rm -rf $out/usr # Work around Spotify referring to a specific minor version of # OpenSSL. @@ -72,33 +73,22 @@ stdenv.mkDerivation { ln -s ${nspr}/lib/libnspr4.so $libdir/libnspr4.so ln -s ${nspr}/lib/libplc4.so $libdir/libplc4.so - mkdir -p $out/bin - - rpath="$out/spotify-client/Data:$libdir:$out/spotify-client:${stdenv.cc.cc}/lib64" - - ln -s $out/spotify-client/spotify $out/bin/spotify + rpath="$out/share/spotify:$libdir" patchelf \ --interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \ - --set-rpath $rpath $out/spotify-client/spotify + --set-rpath $rpath $out/share/spotify/spotify - patchelf \ - --interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \ - --set-rpath $rpath $out/spotify-client/Data/SpotifyHelper - - preload=$out/libexec/spotify/libpreload.so librarypath="${stdenv.lib.makeLibraryPath deps}:$libdir" - mkdir -p $out/libexec/spotify - gcc -shared ${./preload.c} -o $preload -ldl -DOUT=\"$out\" -fPIC - - wrapProgram $out/bin/spotify --set LD_PRELOAD $preload --prefix LD_LIBRARY_PATH : "$librarypath" - wrapProgram $out/spotify-client/Data/SpotifyHelper --set LD_PRELOAD $preload --prefix LD_LIBRARY_PATH : "$librarypath" + wrapProgram $out/share/spotify/spotify \ + --prefix LD_LIBRARY_PATH : "$librarypath" \ + --prefix PATH : "${gnome.zenity}/bin" # Desktop file mkdir -p "$out/share/applications/" - cp "$out/spotify-client/spotify.desktop" "$out/share/applications/" - sed -i "s|Icon=.*|Icon=$out/spotify-client/Icons/spotify-linux-512.png|" "$out/share/applications/spotify.desktop" - ''; # */ + cp "$out/share/spotify/spotify.desktop" "$out/share/applications/" + sed -i "s|Icon=.*|Icon=$out/share/spotify/Icons/spotify-linux-512.png|" "$out/share/applications/spotify.desktop" + ''; dontStrip = true; dontPatchELF = true; diff --git a/pkgs/applications/audio/spotify/preload.c b/pkgs/applications/audio/spotify/preload.c deleted file mode 100644 index 42d482c21e43..000000000000 --- a/pkgs/applications/audio/spotify/preload.c +++ /dev/null @@ -1,66 +0,0 @@ -/* Spotify looks for its theme data in /usr/share/spotify/theme. This - LD_PRELOAD library intercepts open() and stat() calls to redirect - them to the corresponding location in $out. */ - -#define _GNU_SOURCE -#include <stdio.h> -#include <stdarg.h> -#include <stdlib.h> -#include <dlfcn.h> -#include <sys/types.h> -#include <sys/stat.h> -#include <fcntl.h> -#include <limits.h> - -char themeDir [] = "/usr/share/spotify/theme"; -char realThemeDir [] = OUT "/share/spotify/theme"; - -const char * rewrite(const char * path, char * buf) -{ - if (strncmp(path, themeDir, sizeof(themeDir) - 1) != 0) return path; - if (snprintf(buf, PATH_MAX, "%s%s", realThemeDir, path + sizeof(themeDir) - 1) >= PATH_MAX) - abort(); - return buf; -} - -int open(const char *path, int flags, ...) -{ - char buf[PATH_MAX]; - int (*_open) (const char *, int, mode_t) = dlsym(RTLD_NEXT, "open"); - mode_t mode = 0; - if (flags & O_CREAT) { - va_list ap; - va_start(ap, flags); - mode = va_arg(ap, mode_t); - va_end(ap); - } - return _open(rewrite(path, buf), flags, mode); -} - -int open64(const char *path, int flags, ...) -{ - char buf[PATH_MAX]; - int (*_open64) (const char *, int, mode_t) = dlsym(RTLD_NEXT, "open64"); - mode_t mode = 0; - if (flags & O_CREAT) { - va_list ap; - va_start(ap, flags); - mode = va_arg(ap, mode_t); - va_end(ap); - } - return _open64(rewrite(path, buf), flags, mode); -} - -int __xstat64(int ver, const char *path, struct stat64 *st) -{ - char buf[PATH_MAX]; - int (*___xstat64) (int ver, const char *, struct stat64 *) = dlsym(RTLD_NEXT, "__xstat64"); - return ___xstat64(ver, rewrite(path, buf), st); -} - -int access(const char *path, int mode) -{ - char buf[PATH_MAX]; - int (*_access) (const char *path, int mode) = dlsym(RTLD_NEXT, "access"); - return _access(rewrite(path, buf), mode); -} |