Change:
When running Dropbox, it crashes immediately. The log reports: System: Nix version: Nixpkgs version: Git revision
There were some recent fixes in master, we should probably backport.
That git revision is .
It also says so how are you invoking dropbox?
Oh sorry, see updated steps to reproduce. I have a clone of in home, and I install into my user profile.
Possibly cc
I can't reproduce this, but I am running staging. That suggests there's some impurity in the package, I think. I don't think this commit is at fault; is really just a wrapper around , so the change is totally trivial.
Since I can't reproduce this, could you try my version of dropbox at ttuegel/nixpkgs
No dice there either I'm afraid :(
Ok, I found the problem, I seem to have a directory which contains binaries. If I nuke that, everything works again. I wonder if there's anything we can do about this...
Turns out I didn't find the problem, just made progress. If I remove dropbox does launch, sync, and then crashes in the same way as before :(
Yes, it crashes, when it auto updates itself. We need to find a way to disable dropbox auto updates. I just lost my hopes with dropbox, it's ugly piece of software, just run it in docker or something. V čet., 19. maj 2016 11:11 je oseba Oliver Charles napisala:
I was wondering if we might be better using a Steam-like chroot for it.
Unfortunately my laptop is now also unable to run dropbox. I wonder if a GC is enough to cause it to break?
This is still failing to work reliably, but here's a FHS user env for running the binary:
I think we may need to switch to using an FHS user environment for Dropbox in Nixpkgs, because I can't seem to get the latest version working any other way.
I think it's the way to go. I personally think anything that's shipped as a binary should probably go down the FHS path. , Thomas Tuegel <:

Discussion:
<del> { mkDerivation, stdenv, lib, fetchurl, makeDesktopItem , makeWrapper, patchelf , dbus_libs, fontconfig, freetype, gcc, glib , libdrm, libffi, libICE, libSM , libX11, libXcomposite, libXext, libXmu, libXrender, libxcb , libxml2, libxslt, ncurses, zlib , qtbase, qtdeclarative, qtwebkit, wmctrl }: </del> <ins> { stdenv, lib, buildFHSUserEnv, writeScript, makeDesktopItem }: </ins> <del> # 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. </del> <ins> let platforms = [ "i686-linux" "x86_64-linux" ]; in </ins> <del> # 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. </del> <ins> assert lib.elem stdenv.system platforms; # Dropbox client to bootstrap installation. # The client is self-updating, so the actual version may be newer. </ins> let <del> ## Prefetch commands to run after update, from this directory: ## e.g. with Emacs: C-u M-x shell-command # nix-prefetch-url ../../../../ -A dropbox.src # nix-prefetch-url ../../../../ -A pkgsi686Linux.dropbox.src # NOTE: When updating, please also update in current stable, # as older versions stop working version = "37.4.29"; sha256 = { "x86_64-linux" = "0ymy8gb57bjq2mq35n52q2viww6am7wy0vskyvypliicggga8iaj"; "i686-linux"   = "0a7zir6x7z3ad71fj1iljc2l6x09f4wi40jfaiinf8ykx85cldw6"; }."${stdenv.system}" or (throw "system ${stdenv.system} not supported"); </del> <ins> version = "38.4.27"; </ins> arch = { "x86_64-linux" = "x86_64"; "i686-linux"   = "x86"; <del> }."${stdenv.system}" or (throw "system ${stdenv.system} not supported"); # relative location where the dropbox libraries are stored appdir = "opt/dropbox"; </del> <ins> }.${stdenv.system}; </ins> <del> libs = [ dbus_libs fontconfig freetype gcc.cc glib libdrm libffi libICE libSM libX11 libXcomposite libXext libXmu libXrender libxcb libxml2 libxslt ncurses zlib qtbase qtdeclarative qtwebkit ]; ldpath = stdenv.lib.makeLibraryPath libs; </del> <ins> installer = "https://clientupdates.dropboxstatic.com/dbx-releng/client/dropbox-lnx.${arch}-${version}.tar.gz"; in let </ins> desktopItem = makeDesktopItem { name = "dropbox"; exec = "dropbox";

categories = "Network;FileTransfer;"; startupNotify = "false"; }; <ins> in </ins> <del> in mkDerivation { name = "dropbox-${version}"; src = fetchurl { name = "dropbox-${version}.tar.gz"; url = "https://clientupdates.dropboxstatic.com/dbx-releng/client/dropbox-lnx.${arch}-${version}.tar.gz"; inherit sha256; }; sourceRoot = ".dropbox-dist"; </del> <ins> buildFHSUserEnv { name = "dropbox"; </ins> <del> nativeBuildInputs = [ makeWrapper patchelf ]; buildInputs = libs; dontStrip = true; # already done installPhase = '' runHook preInstall mkdir -p "$out/${appdir}" cp -r --no-preserve=mode "dropbox-lnx.${arch}-${version}"/* "$out/${appdir}/" # Vendored libraries interact poorly with our graphics drivers rm "$out/${appdir}/libdrm.so.2" rm "$out/${appdir}/libffi.so.6" rm "$out/${appdir}/libGL.so.1" rm "$out/${appdir}/libX11-xcb.so.1" # Cannot use vendored Qt libraries due to problem with xkbcommon rm "$out/${appdir}/"libQt5*.so.5 rm "$out/${appdir}/qt.conf" rm -fr "$out/${appdir}/plugins" </del> <ins> targetPkgs = pkgs: with pkgs; with xlibs; [ libICE libSM libX11 libXcomposite libXdamage libXext libXfixes libXrender libXxf86vm libxcb curl dbus fontconfig freetype gcc glib gnutar libxml2 libxslt zlib ]; extraInstallCommands = '' </ins> mkdir -p "$out/share/applications" cp "${desktopItem}/share/applications/"* $out/share/applications <del> mkdir -p "$out/share/icons" ln -s "$out/${appdir}/images/hicolor" "$out/share/icons/hicolor" mkdir -p "$out/bin" RPATH="${ldpath}:$out/${appdir}" chmod 755 $out/${appdir}/dropbox makeWrapper "$out/${appdir}/dropbox" "$out/bin/dropbox"  --prefix LD_LIBRARY_PATH : "$RPATH" rm $out/${appdir}/wmctrl ln -s ${wmctrl}/bin/wmctrl $out/${appdir}/wmctrl runHook postInstall </del> ''; <del> preFixup = '' INTERP=$(cat $NIX_CC/nix-support/dynamic-linker) RPATH="${ldpath}:$out/${appdir}" getType='s/ *Type: *([A-Z]*) (.*/1/' find "$out/${appdir}" -type f -print | while read obj; do dynamic=$(readelf -S "$obj" 2>/dev/null | grep "DYNAMIC" || true) if [[ -n "$dynamic" ]]; then if readelf -l "$obj" 2>/dev/null | grep "INTERP" >/dev/null; then echo "patching interpreter path in $type $obj" patchelf --set-interpreter "$INTERP" "$obj" fi type=$(readelf -h "$obj" 2>/dev/null | grep 'Type:' | sed -e "$getType") if [ "$type" == "EXEC" ] || [ "$type" == "DYN" ]; then echo "patching RPATH in $type $obj" oldRPATH=$(patchelf --print-rpath "$obj") patchelf --set-rpath "''${oldRPATH:+$oldRPATH:}$RPATH" "$obj" else echo "unknown ELF type "$type"; not patching $obj" fi fi done paxmark m $out/${appdir}/dropbox </del> <ins> runScript = writeScript "install-and-start-dropbox" '' if ! [ -d "$HOME/.dropbox-dist" ]; then # Dropbox is not installed. # Download and unpack the client. If a newer version is available, # the client will update itself when run. curl '${installer}' | tar -C "$HOME" -x -z fi exec "$HOME/.dropbox-dist/dropboxd" </ins> ''; meta = with lib; { description = "Online stored folders (daemon version)"; <del> homepage    = http://www.dropbox.com; maintainers = with maintainers; [ ttuegel ]; </del> <ins> homepage    = http://www.dropbox.com/; </ins> license     = licenses.unfree; <ins> maintainers = with maintainers; [ ttuegel ]; </ins> platforms   = [ "i686-linux" "x86_64-linux" ]; }; }

bittorrentSync14 = callPackage ../applications/networking/bittorrentsync/1.4.x.nix { }; bittorrentSync20 = callPackage ../applications/networking/bittorrentsync/2.0.x.nix { }; <del> dropbox = libsForQt5.callPackage ../applications/networking/dropbox { }; </del> <ins> dropbox = callPackage ../applications/networking/dropbox { }; </ins> dropbox-cli = callPackage ../applications/networking/dropbox-cli { };