Dropbox and CentOS 5

Well, since my last post I’ve been attempting to get Dropbox working on CentOS (since this is my server platform). I have so many potential uses for having dropbox running on my server that I’d probably bore anyone reading this if I listed them. Needless to say, it’d be very useful for me if Dropbox would work.

Rather than run the installation on my live server(s), I decided to do a test install on a Virtual Machine. I fired up VMWare and created a minimal installation of CentOS (and I mean minimal) and after installing VMware tools I installed the GNOME desktop along with the X11 Window Manager. I normally use KDE, but unfortunately Dropbox only currently supports Nautilus and not Konqueror :( .

yum --exclude=nautilus-sendto groupinstall "X Window System" "GNOME Desktop Environment"

Now, officially CentOS is not supported by Dropbox, there are no packages for CentOS provided by Dropbox so I thought I’d get the source and see what I could do with it. The package requirements are higher than the CentOS package versions available through traditional channels. I thought I’d have a pop anyway and document how far I got here. The two key problems are that Dropbox require glib2 version to be at least 2.14.0 and libnotify needs to be at least 0.4.4. CentOS 5.2 (current release at time of writing) only has packages for glib2 at 2.12.3-2 and libnotify at 0.4.2-6. I wasn’t about to let that stop my potential enjoyment of Dropbox though, so I installed the other dependencies using yum:

yum install bzip2 wget make gtk+-devel libnotify-devel nautilus-extensions.i386 nautilus-devel.i386 gnome-vfs2-devel compat-glibc-headers.i386 compat-glibc.i386 gnome-desktop-devel.i386

Then I got the latest source from the DropBox download page and untarred it:

wget http://dl.getdropbox.com/u/5143/nautilus-dropbox-packages/0.4.1/nautilus-dropbox-0.4.1.tar.bz2
tar jxf nautilus-dropbox-0.4.1.tar.bz2

Next, I had to alter the configure script to accept our versions of glib2 and libnotify which was just a matter of finding and replacing

GLIB_REQUIRED=2.14.0
LIBNOTIFY_REQUIRED=0.4.4

with

GLIB_REQUIRED=2.12.0
LIBNOTIFY_REQUIRED=0.4.2

Then I ran the

./configure
make
make install

Everything seemed to compile ok. Time to fire up the desktop… GNOME launched ok, but nautilus refuses to load. The problem is revealed when trying to start nautilus from the command line:

[rob@localhost ~]$ nautilus /home/rob
Initializing nautilus-dropbox 0.4.1
nautilus: symbol lookup error: /usr/lib/nautilus/extensions-1.0/libnautilus-dropbox.so: undefined symbol: g_timeout_add_seconds

It looks like Dropbox really does require the specified versions of those packages which is a real shame. So in short, unless anyone comes up with a workaround, or Dropbox release a more compatible version it looks like there’s no awesomeness to be had with Dropbox and CentOS / RHEL :(

Never-the-less the awesomeness still reigns on the Windows platform!

, , ,

  1. #1 by Toby - September 15th, 2008 at 20:55

    Hey there,

    Just found your post via the dropbox forums, and wanted to let you know that I ran into the exact same problem. We’re running CentOS 5 at my work and I wanted to give dropbox for linux a shot, but in the end I got the same result you did.

    I took a somewhat different approach: I downloaded the source of glib and libnotify and installed those manually, and then compiled and built the dropbox plugin. All went swimmingly until I tried to run nautilus – at which point I was prompted with the “g_timeout_add_seconds” error.

    Hopefully they’ll release a version that works with older versions of glib.

    –Toby

  2. #2 by Mike - September 28th, 2008 at 03:51

    Hopefully CentOS will update those packages soon, I’m off to search for a solution.

  3. #3 by ggcc - October 1st, 2008 at 14:22

    Here on the forums it says it’s enough to use Fedora RPM…

    http://forums.getdropbox.com/topic.php?id=2479&replies=2

    is that not true ?

    thx

  4. #4 by rob - October 1st, 2008 at 14:54

    Hi ggcc,
    Unfortunately that’s not true. The Fedora RPM requires the following packages to be available:

    libnotify.i386 0.4.4
    glib2.i386 2.14

    Unfortunately the versions of these packages which are held in the CentOS / RHEL repositories are too low for the Dropbox package to be installed properly. You can see this for yourself when using yum – the dependencies will fail due to version number requirements.

    The Fedora RPM will only work on a version of Fedora which has the the minimum version numbers for the dependency packages in an available repository. For CentOS / RHEL these are:

    libnotify.i386 0.4.2-6.el5
    glib2.i386 2.12.3-2.fc6

    And to Mike, good luck in your search, but I *highly* doubt that RHEL will be updating those packages in future 5.* release schedule since glib2 is a very important library, and updating that would undoubtedly cause unacceptable stability issues, as would upgrading GNOME to a version which includes libnotify 0.4.4

  5. #5 by ggcc - October 2nd, 2008 at 12:11

    Hi Rob,
    thanks for your answer.

    Just a curiosity for somebody that is not an insider of Linux matters… how comes such an important library is not updated in RHEL ? why would it cause stability issues if the actual stable version is 2.18.1 ?

  6. #6 by rob - October 2nd, 2008 at 15:00

    The library is updated, but only to a proven stable version – the most common reason for why a RHEL package is updated is due to either a security fix or, as is most common, a bugfix. RHEL runs behind Fedora by quite a way, due to the fact that most packages are taken at a snapshot of a historic Fedora release and then matured within the RHEL platform and made more stable due to rigourous testing and bug fixing on that one ’snapshot’. I wrote more of an explanation here:
    http://blog.itsmine.co.uk/2008/10/02/rhel-vs-fedora/

  7. #7 by consultorpc - October 12th, 2008 at 20:33

    Thanks for this article. At last I have it working on my CentOS 5.2 test box editing the file ./src/nautilus-dropbox-hooks.c and changing g_timeout_add_seconds to g_timeout_add and the parameter 1 to 1000. Look: http://library.gnome.org/devel/glib/2.18/glib-The-Main-Event-Loop.html

    Recompile and you should have it working.

  8. #8 by Max - October 14th, 2008 at 02:30

    So I just got DropBox installed and working in Fedora 8, which also does not have the required glib in the rpm repository.

    I also tried the compile from source method and clearly hit the snag that my glib wasn’t up-to-date.

    I went and just compiled the newest glib from source, which I found here:
    http://mail.gnome.org/archives/gtk-devel-list/2008-September/msg00101.html

    After installing that, I needed to install the libnotify-devel from yum install libnotify-devel, which carried my dependency just fine.

    Its running now on my machine, so hopefully that helps.

  9. #9 by Jason Martens - October 20th, 2008 at 01:24

    I’ve heard that you can run the dropbox daemon (which is statically linked) on a server. Maybe you could do the same for your users? You would forgo the very nice nautilus integration, but it should still sync the files.

  10. #10 by Linux - May 15th, 2009 at 09:43

    Thank for this “How to”. Work fine on my Fedora 8.

  11. #11 by Bob - May 20th, 2009 at 15:14

    Hi, I’m trying to install DropBox 0-6-1 on Centos 5.3 x86_64 reading your guide but the configure script exit after this error:

    checking for pygtk… Traceback (most recent call last):
    File “”, line 6, in ?
    TypeError: ’str’ object is not callable
    no
    configure: error: couldn’t find pygtk

    This is the result of -> rpm -qa |grep pygtk
    pygtk2-codegen-2.10.1-12.el5
    pygtk2-devel-2.10.1-12.el5
    pygtk2-libglade-2.10.1-12.el5
    pygtk2-devel-2.10.1-12.el5
    pygtk2-2.10.1-12.el5

    Any suggestion?
    Thanks

  12. #12 by spidertop - May 29th, 2009 at 13:00

    Same issue with Centos 5.3 i386
    :

    File “”, line 6, in ?
    TypeError: ’str’ object is not callable
    no
    configure: error: couldn’t find pygtk

    Please help

(will not be published)
Submit Comment
Subscribe to comments feed
  1. No trackbacks yet.
SetPageWidth