about summary refs log tree commit diff
path: root/pkgs
diff options
context:
space:
mode:
authorThomas Tuegel <ttuegel@gmail.com>2015-02-24 15:59:14 -0600
committerThomas Tuegel <ttuegel@gmail.com>2015-02-24 15:59:14 -0600
commit030eed83078d668224edfbe741f2d2d5318db843 (patch)
tree9c33f4e9c430294b2931fe8bc75a414290d0e99e /pkgs
parent8300898f98e235dcfa321887d52b7f72f80b5ad5 (diff)
parentf12536f1511fc045b3a12a1f9421c40c87f7be59 (diff)
downloadnixlib-030eed83078d668224edfbe741f2d2d5318db843.tar
nixlib-030eed83078d668224edfbe741f2d2d5318db843.tar.gz
nixlib-030eed83078d668224edfbe741f2d2d5318db843.tar.bz2
nixlib-030eed83078d668224edfbe741f2d2d5318db843.tar.lz
nixlib-030eed83078d668224edfbe741f2d2d5318db843.tar.xz
nixlib-030eed83078d668224edfbe741f2d2d5318db843.tar.zst
nixlib-030eed83078d668224edfbe741f2d2d5318db843.zip
Merge branch 'dropbox'
Diffstat (limited to 'pkgs')
-rw-r--r--pkgs/applications/networking/dropbox/default.nix77
-rw-r--r--pkgs/top-level/all-packages.nix4
2 files changed, 54 insertions, 27 deletions
diff --git a/pkgs/applications/networking/dropbox/default.nix b/pkgs/applications/networking/dropbox/default.nix
index d49162d07232..ad6dac31dece 100644
--- a/pkgs/applications/networking/dropbox/default.nix
+++ b/pkgs/applications/networking/dropbox/default.nix
@@ -1,8 +1,6 @@
-{ stdenv, fetchurl, makeDesktopItem
-, libSM, libX11, libXext, libXcomposite, libXcursor, libXdamage
-, libXfixes, libXi, libXinerama, libXrandr, libXrender
-, dbus, dbus_glib, fontconfig, gcc, patchelf
-, atk, glib, gdk_pixbuf, gtk, pango, zlib
+{ stdenv, fetchurl, makeDesktopItem, makeWrapper
+, dbus_libs, gcc, glib, libdrm, libffi, libICE, libSM
+, libX11, libXmu, ncurses, popt, qt5, zlib
 }:
 
 # this package contains the daemon version of dropbox
@@ -11,10 +9,13 @@
 # note: the resulting program has to be invoced as
 # 'dropbox' because the internal python engine takes
 # uses the name of the program as starting point.
-#
-# todo: dropbox is shipped with some copies of libraries.
-# replace these libraries with the appropriate ones in
-# nixpkgs.
+
+# Dropbox ships with its own copies of some libraries.
+# Unfortunately, upstream makes changes to the source of
+# some libraries, rendering them incompatible with the
+# open-source versions. Wherever possible, we must try
+# to make the bundled libraries work, rather than replacing
+# them with our own.
 
 let
   arch = if stdenv.system == "x86_64-linux" then "x86_64"
@@ -25,22 +26,19 @@ let
     else if stdenv.system == "i686-linux" then "ld-linux.so.2"
     else throw "Dropbox client for: ${stdenv.system} not supported!";
 
-  version = "2.10.52";
-  sha256 = if stdenv.system == "x86_64-linux" then "0fn2frp00f0p0r6v5czzxfbw1ifan9w12k3ry8gq1m4bvx6g27p6"
-    else if stdenv.system == "i686-linux" then "1rm5kspb53zqgaz48v8x3ffk1mcfi0nh0zsmsdniyrgqbis5mmm9"
+  version = "3.2.6";
+  sha256 = if stdenv.system == "x86_64-linux" then "1pih4dgqsxx9s8vjmn49qdrrgfkkw8wl3m68x7mdz6wqb4lj3sry"
+    else if stdenv.system == "i686-linux" then "0nnxj32xvhn312a16fhhxjf0brbivaw6m0s8d8qdn44qmg9fr4bz"
     else throw "Dropbox client for: ${stdenv.system} not supported!";
 
   # relative location where the dropbox libraries are stored
   appdir = "opt/dropbox";
 
-  # Libraries referenced by dropbox binary.
-  # Be aware that future versions of the dropbox binary may refer
-  # to different versions than are currently in these packages.
-  ldpath = stdenv.lib.makeSearchPath "lib" [
-      libSM libX11 libXext libXcomposite libXcursor libXdamage
-      libXfixes libXi libXinerama libXrandr libXrender
-      atk dbus dbus_glib glib fontconfig gcc gdk_pixbuf
-      gtk pango zlib
+  ldpath = stdenv.lib.makeSearchPath "lib"
+    [
+      dbus_libs gcc glib libdrm libffi libICE libSM libX11
+      libXmu ncurses popt qt5.base qt5.declarative qt5.webkit
+      zlib
     ];
 
   desktopItem = makeDesktopItem {
@@ -56,7 +54,6 @@ in stdenv.mkDerivation {
   name = "dropbox-${version}-bin";
   src = fetchurl {
     name = "dropbox-${version}.tar.gz";
-    
     url = "https://dl-web.dropbox.com/u/17/dropbox-lnx.${arch}-${version}.tar.gz";
     inherit sha256;
   };
@@ -67,15 +64,39 @@ in stdenv.mkDerivation {
     rm -f .dropbox-dist/dropboxd
   '';
 
+  buildInputs = [ makeWrapper ];
+
   installPhase = ''
     mkdir -p "$out/${appdir}"
     cp -r ".dropbox-dist/dropbox-lnx.${arch}-${version}"/* "$out/${appdir}/"
-    mkdir -p "$out/bin"
-    ln -s "$out/${appdir}/dropbox" "$out/bin/dropbox"
 
-    patchelf --set-interpreter ${stdenv.glibc}/lib/${interpreter} \
-      "$out/${appdir}/dropbox"
-    
+    rm "$out/${appdir}/libdrm.so.2"
+    rm "$out/${appdir}/libffi.so.6"
+    rm "$out/${appdir}/libicudata.so.42"
+    rm "$out/${appdir}/libicui18n.so.42"
+    rm "$out/${appdir}/libicuuc.so.42"
+    rm "$out/${appdir}/libGL.so.1"
+    rm "$out/${appdir}/libpopt.so.0"
+    rm "$out/${appdir}/libQt5Core.so.5"
+    rm "$out/${appdir}/libQt5DBus.so.5"
+    rm "$out/${appdir}/libQt5Gui.so.5"
+    rm "$out/${appdir}/libQt5Network.so.5"
+    rm "$out/${appdir}/libQt5OpenGL.so.5"
+    rm "$out/${appdir}/libQt5PrintSupport.so.5"
+    rm "$out/${appdir}/libQt5Qml.so.5"
+    rm "$out/${appdir}/libQt5Quick.so.5"
+    rm "$out/${appdir}/libQt5Sql.so.5"
+    rm "$out/${appdir}/libQt5WebKit.so.5"
+    rm "$out/${appdir}/libQt5WebKitWidgets.so.5"
+    rm "$out/${appdir}/libQt5Widgets.so.5"
+    rm "$out/${appdir}/libX11-xcb.so.1"
+
+    rm "$out/${appdir}/qt.conf"
+    rm -fr "$out/${appdir}/plugins"
+
+    find "$out/${appdir}" -type f -a -perm +0100 \
+      -print -exec patchelf --set-interpreter ${stdenv.glibc}/lib/${interpreter} {} \;
+
     RPATH=${ldpath}:${gcc.cc}/lib:$out/${appdir}
     echo "updating rpaths to: $RPATH"
     find "$out/${appdir}" -type f -a -perm +0100 \
@@ -83,6 +104,10 @@ in stdenv.mkDerivation {
 
     mkdir -p "$out/share/applications"
     cp "${desktopItem}/share/applications/"* $out/share/applications
+
+    mkdir -p "$out/bin"
+    makeWrapper "$out/${appdir}/dropbox" "$out/bin/dropbox" \
+      --prefix LD_LIBRARY_PATH : "${ldpath}"
   '';
 
   meta = {
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 2371fbaaa985..4dea95572d6e 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -11384,7 +11384,9 @@ let
 
   copy-com = callPackage ../applications/networking/copy-com { };
 
-  dropbox = callPackage ../applications/networking/dropbox { };
+  dropbox = callPackage ../applications/networking/dropbox {
+    qt5 = qt54;
+  };
 
   dropbox-cli = callPackage ../applications/networking/dropbox-cli { };