From 72450d9b735e7f0d012e21424b4211ecc0f0f098 Mon Sep 17 00:00:00 2001 From: Arie Middelkoop Date: Fri, 24 Feb 2012 17:53:19 +0000 Subject: [PATCH] Added dropbox (binary). svn path=/nixpkgs/trunk/; revision=32545 --- .../networking/dropbox/default.nix | 86 +++++++++++++++++++ pkgs/top-level/all-packages.nix | 2 + 2 files changed, 88 insertions(+) create mode 100644 pkgs/applications/networking/dropbox/default.nix diff --git a/pkgs/applications/networking/dropbox/default.nix b/pkgs/applications/networking/dropbox/default.nix new file mode 100644 index 00000000000..5e7e921710f --- /dev/null +++ b/pkgs/applications/networking/dropbox/default.nix @@ -0,0 +1,86 @@ +{ stdenv, fetchurl, makeDesktopItem +, xlibs, gtkLibs, gnome +, dbus, dbus_glib, fontconfig, gcc, patchelf +}: + +# this package contains the daemon version of dropbox +# it's unfortunately closed source +# +# 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. + +# note: there is a i686 version available as well +assert stdenv.system == "x86_64-linux"; + +let + + version = "1.2.52"; + sha256 = "72aeaf00727da9f3fe39386dcf883bb303de928ba43c738fcc5bb62b93eca252"; + + # relative location where the dropbox libraries are stored + sharedir = "share/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 = with xlibs; with gtkLibs; with gnome; + 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 + ]; + + desktopItem = makeDesktopItem { + name = "dropbox"; + exec = "dropbox"; + comment = "Online directories"; + desktopName = "Dropbox"; + genericName = "Online storage"; + categories = "Application;Internet;"; + }; + +in stdenv.mkDerivation { + name = "dropbox-${version}-bin"; + src = fetchurl { + name = "dropbox-${version}.tar.gz"; + url = "http://www.dropbox.com/download?plat=lnx.x86_64"; + inherit sha256; + }; + + sourceRoot = "."; + + patchPhase = '' + rm -f .dropbox-dist/dropboxd + ''; + + installPhase = '' + ensureDir "$out/${sharedir}" + cp -r .dropbox-dist/* "$out/${sharedir}/" + ensureDir "$out/bin" + ln -s "$out/${sharedir}/dropbox" "$out/bin/dropbox" + + patchelf --set-interpreter ${stdenv.glibc}/lib/ld-linux-x86-64.so.2 \ + "$out/${sharedir}/dropbox" + + RPATH=${ldpath}:${gcc.gcc}/lib64:$out/${sharedir} + echo "updating rpaths to: $RPATH" + find "$out/${sharedir}" -type f -a -perm +0100 \ + -print -exec patchelf --force-rpath --set-rpath "$RPATH" {} \; + + ensureDir "$out/share/applications" + cp ${desktopItem}/share/applications/* $out/share/applications + ''; + + buildInputs = [ patchelf ]; + + meta = { + description = "Online stored folders (daemon version)"; + homepage = http://www.dropbox.com; + }; +} \ No newline at end of file diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index b033176ef61..063e20d175a 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -7426,6 +7426,8 @@ let usePulseAudio = getConfig [ "pulseaudio" ] false; # disabled by default (the 100% cpu bug) }; + dropbox = callPackage ../applications/networking/dropbox { }; + slim = callPackage ../applications/display-managers/slim { }; sndBase = builderDefsPackage (import ../applications/audio/snd) {