You are not logged in.

#1 2014-12-13 07:47:23

Carl Karl
Member
Registered: 2013-06-12
Posts: 231

[solved] How does the forced Dropbox update work?

Seems to everyone agrees: The new Dropbox version (3.0.3) is awful. See comments there: https://aur.archlinux.org/packages/dropbox/
What makes it even more nasty: Even if you don't intend to update, it will update itself. Luckily, there is a hack in the wiki:

rm -rf ~/.dropbox-dist
install -dm0 ~/.dropbox-dist

https://wiki.archlinux.org/index.php/dr … uto_Update

But I wonder:
How is Dropbox even able to force an update without having root rights?
As far as I can see, it is connected to Dropbox running in the user directory:
/usr/bin/dropboxd is:

#!/bin/sh
# Copyright 2008-2013 Dropbox, Inc.
#
# Environment script for the dropbox executable.
PAR=$(dirname "$(readlink -f "$0")")
OLD_LD_LIBRARY_PATH="$LD_LIBRARY_PATH"
export OLD_LD_LIBRARY_PATH
exec "$PAR"/dropbox "$@"

where PAR just points to the current user directory.
So exec just starts /home/carl/dropbox for me? I don't understand, there is no /home/carl/dropbox in my files!

So does anyone understand what dropbox is doing? Specially concerned the forced auto-update.

[edit]that assumption regarding the path was wrong. as /usr/bin/dropboxd is a symlink to /opt/dropbox, it starts /opt/dropbox/dropbox.  see comment #3[/edit]

Last edited by Carl Karl (2014-12-13 11:47:34)

Offline

#2 2014-12-13 08:54:43

jasonwryan
Anarchist
From: .nz
Registered: 2009-05-09
Posts: 30,426
Website

Re: [solved] How does the forced Dropbox update work?

You have no idea what dropbox does, or how it does it: that is the beauty of closed source software.

Install Syncthing if you want freedom.


Arch + dwm   •   Mercurial repos  •   Surfraw

Registered Linux User #482438

Offline

#3 2014-12-13 09:56:54

Carl Karl
Member
Registered: 2013-06-12
Posts: 231

Re: [solved] How does the forced Dropbox update work?

OK, one step further:
On my next installation, I was to slow to stop the forced auto-update and now I see:
there is ~/.dropbox-dist/dropboxd including:

#!/bin/sh
PAR=$(dirname "$(readlink -f "$0")")
exec "$PAR/dropbox-lnx.x86_64-3.0.3/dropboxd" "$@"

and in fact there is~/.dropbox-dist/dropbox-lnx.x86_64-3.0.3/dropboxd
which includes

#!/bin/sh
# Copyright 2008-2013 Dropbox, Inc.
#
# Environment script for the dropbox executable.
PAR=$(dirname "$(readlink -f "$0")")
OLD_LD_LIBRARY_PATH="$LD_LIBRARY_PATH"
export OLD_LD_LIBRARY_PATH
exec "$PAR"/dropbox "$@"

like the old /usr/bin/dropboxd before, and in fact, there is a whole directory ~/.dropbox-dist/dropbox-lnx.x86_64-3.0.3/ which includes the executable ~/.dropbox-dist/dropbox-lnx.x86_64-3.0.3/dropbox.

So the forced upgrade is possible because the software runs in the user-directory.

I still don't understand, how that is called by the "dropboxd" command, as

$ which dropboxd
/usr/bin/dropboxd

and that still seems to execute ~/dropbox as described in #1. How is that script able to refer to ~/.dropbox-dist/* ?


@Jasonwryan:
Yes, I know, thanks anyway.
I need Dropbox for work as we use it there to share files. I don't use it for private stuff and sensible files are protected by encfs.

And understanding how an non-root-update is possible is interesting anyway. I hope that other software isn't inspired by passing by the repos that way....

Offline

#4 2014-12-13 10:03:29

Carl Karl
Member
Registered: 2013-06-12
Posts: 231

Re: [solved] How does the forced Dropbox update work?

OK, even one step further.
Using nautilus this time to look at /usr/bin and not nano to look at /usr/bin/dropboxd, I discovered /usr/bin/dropboxd is a symlink to ../../opt/dropbox/dropboxd so PAR=$(dirname "$(readlink -f "$0")") will refer to /opt/dropbox and in fact there is a /opt/dropbox/dropbox binary. And that binary will most likely (yes, closed source...) execute the ~/.dropbox-dist/dropbox-lnx.x86_64-3.0.3/dropbox binary.

Now I understand.

Offline

Board footer

Powered by FluxBB