From dd592d7ef363cf7d8922105f8a89f6fd271bbab1 Mon Sep 17 00:00:00 2001 From: Rickard Nilsson Date: Tue, 13 May 2014 12:04:20 +0200 Subject: spotify: Fix missing src url for qt. Add missing dependencies. --- pkgs/applications/audio/spotify/default.nix | 64 +++++++++++++++++++++++++---- 1 file changed, 55 insertions(+), 9 deletions(-) (limited to 'pkgs/applications/audio') diff --git a/pkgs/applications/audio/spotify/default.nix b/pkgs/applications/audio/spotify/default.nix index 874cc321f8be..a76e71488468 100644 --- a/pkgs/applications/audio/spotify/default.nix +++ b/pkgs/applications/audio/spotify/default.nix @@ -1,24 +1,62 @@ { fetchurl, stdenv, dpkg, xlibs, qt4, alsaLib, makeWrapper, openssl, freetype , glib, pango, cairo, atk, gdk_pixbuf, gtk, cups, nspr, nss, libpng, GConf -, libgcrypt, chromium, sqlite, gst_plugins_base, gstreamer, udev }: +, libgcrypt, chromium, sqlite, gst_plugins_base, gstreamer, udev, fontconfig +, dbus, expat }: assert stdenv.system == "i686-linux" || stdenv.system == "x86_64-linux"; let version = "0.9.4.183"; + qt4webkit = if stdenv.system == "i686-linux" then fetchurl { - name = "libqtwebkit4_2.2_i386.deb"; - url = http://mirrors.us.kernel.org/ubuntu/pool/main/q/qtwebkit-source/libqtwebkit4_2.2~2011week36-0ubuntu1_i386.deb; + name = "libqtwebkit4_2.3.2_i386.deb"; + url = http://ie.archive.ubuntu.com/ubuntu/pool/main/q/qtwebkit-source/libqtwebkit4_2.3.2-0ubuntu7_i386.deb; sha256 = "0hi6cwx2b2cwa4nv5phqqw526lc8p9x7kjkcza9x47ny3npw2924"; } else fetchurl { - name = "libqtwebkit4_2.2_amd64.deb"; - url = http://ie.archive.ubuntu.com/ubuntu/pool/main/q/qtwebkit-source/libqtwebkit4_2.2~2011week36-0ubuntu1_amd64.deb; - sha256 = "0bvy6qz9y19ck391z8c049v07y4vdyvgykpxi7x1nvn078p1imiw"; + name = "libqtwebkit4_2.3.2_amd64.deb"; + url = http://ie.archive.ubuntu.com/ubuntu/pool/main/q/qtwebkit-source/libqtwebkit4_2.3.2-0ubuntu7_amd64.deb; + sha256 = "0sac88avfivwkfhmd6fik7ili8fdznqas6741dbspf9mfnawbwch"; }; + + deps = [ + alsaLib + atk + cairo + cups + dbus + expat + fontconfig + freetype + GConf + gdk_pixbuf + glib + gst_plugins_base + gstreamer + gtk + libgcrypt + libpng + nss + pango + qt4 + sqlite + stdenv.gcc.gcc + xlibs.libX11 + xlibs.libXcomposite + xlibs.libXdamage + xlibs.libXext + xlibs.libXfixes + xlibs.libXi + xlibs.libXrandr + xlibs.libXrender + xlibs.libXrender + xlibs.libXScrnSaver + #xlibs.libXss + ]; + in stdenv.mkDerivation { @@ -64,21 +102,29 @@ stdenv.mkDerivation { mkdir -p $out/bin + rpath="$out/spotify-client/Data:$out/lib:$out/spotify-client:${stdenv.gcc.gcc}/lib64" + ln -s $out/spotify-client/spotify $out/bin/spotify + + patchelf \ + --interpreter "$(cat $NIX_GCC/nix-support/dynamic-linker)" \ + --set-rpath $rpath $out/spotify-client/spotify + patchelf \ --interpreter "$(cat $NIX_GCC/nix-support/dynamic-linker)" \ - --set-rpath $out/spotify-client/Data:$out/lib:$out/spotify-client:${stdenv.lib.makeLibraryPath [ xlibs.libXScrnSaver xlibs.libX11 qt4 alsaLib stdenv.gcc.gcc freetype glib pango cairo atk gdk_pixbuf gtk GConf cups sqlite xlibs.libXdamage ]}:${stdenv.gcc.gcc}/lib64 \ - $out/spotify-client/spotify + --set-rpath $rpath $out/spotify-client/Data/SpotifyHelper dpkg-deb -x ${qt4webkit} ./ mkdir -p $out/lib/ cp -v usr/lib/*/* $out/lib/ preload=$out/libexec/spotify/libpreload.so + librarypath="${stdenv.lib.makeLibraryPath deps}:$out/lib" 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 : "${stdenv.lib.makeLibraryPath [ GConf libpng cups libgcrypt sqlite gst_plugins_base gstreamer xlibs.libXdamage ]}:$out/lib" + 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" # Desktop file mkdir -p "$out/share/applications/" -- cgit 1.4.1