Keep Your Data Synchronised Across Desktops and Online Services with GNOME Conduit

Keep things synchronisedGNOME Conduit, a synchronisation tool for the GNOME desktop, enables users to synchronise email, files, bookmarks, photos, contacts, and personal information, with another computer, Web-based service or an electronic device. This article provides a quick introduction to installing and using Conduit.

Even though technology has improved immensely over the years, the need for backups remains more or less the same. In fact, backups are becoming increasingly important, for companies as well as home users. Most of us use multiple computers today. With all the music, videos, photos and other files scattered across the hard drive and multiple systems, synchronisation software is a must.

The major issue with traditional backup systems is that they are usually one-way — you either backup your data, or restore from a backup. With more and more people using online bookmarking sites, social networking sites, online file-storage (and, most importantly, multiple computers), the need for synchronisation is slowly replacing the need for backups among individual users.

Conduit is one such synchronisation tool, for the GNOME desktop. It enables users to synchronise their emails, files, bookmarks, photos, contacts and personal information with another computer, with a Web-based service, or one or more electronic devices.

Some services offered by Conduit

Figure 1: Some services offered by Conduit

How Conduit functions

Conduit manages multiple data providers or service providers. These services contain a wide variety of applications, including websites, local files and directories, portable media players, bookmarking services, photos and contacts — almost everything a normal desktop user requires.

What makes Conduit a great choice is the way it handles data. In case of multiple services that use the same kind of data, Conduit performs any required data conversion once, and then reuses the data for other services, taking less time, and improving performance.

Some services are unidirectional; you can only receive data from these services. These include RSS feeds and music play-lists. Services like Facebook, on the other hand, only allow data to be dropped into them. You can add photos to Facebook albums from F-Spot, but cannot download them from Facebook. The third service type is mostly file-storage, which allows the flow of data in both directions.

Installing Conduit

Conduit is not available as a binary package for many popular distributions, and in most cases you will have to install it from source. Download the Conduit source tarball from . Then, as the root, issue the following command to unpack, build and install Conduit:

tar xvzf conduit-<current_version_number>

This will extract Conduit in the current directory, in a folder named conduit-<current_version_number>. Once you change the working directory to this directory, if you wish to try out Conduit without installing it, run the following commands:

cd conduit
./conduit

At this point, you should know something about Conduit: it installs fine even if you don’t have all the necessary components (for example, WebKit — without which you cannot use any service that needs authentication; even then, Conduit installs without any problems). The dependencies required by Conduit are:

  • goocanvas > 0.9.0
  • pygoocanvas
  • vobject
  • gtkmozembed (packaged as gnome-python-extras)
  • Python elementtree or Python 2.5
  • Python sqlite3 (packaged as pysqlite2) or Python 2.5
  • evolution-python

I strongly recommend that you use pre-built binary packages for your distribution, if they are available. Compiling from source can lead to dependency hell unless you know exactly what you are doing. To install Conduit, in the top-level directory (conduit-<current_version_number>), issue the following commands:

./configure
make && make install

Note: At the end of the configure script’s execution, it will list some plugins as disabled. Generally, there is no need to enable these plug-ins, as there is no significant advantage in having them. If you want to enable and install them, then enter the following arguments while running ./configure.

./configure --enable-eog-plugin --enable-totem-plugin --enable-nautilus-extension

That’s it. Conduit is now installed, with the executable installed into /usr/local/bin.

Using Conduit

Once you install Conduit on your system, start it up, and you will be presented with the view shown in Figure 2.

Gnome Conduit

Figure 2: Gnome Conduit

There are two panes by default: the pane on the left lists all the services supported by Conduit, while the one on the right is for configuring synchronisation options graphically (hence, it’s usually called the canvas). You can actually see the synchronisation process there.

Notice the small blue sync arrows shown near the icons in the left pane (refer to Figure 1); they indicate whether the service can synchronise bidirectionally or not. At the bottom of the canvas, there is an expandable menu for conflicts. It will get activated in case the rules you define for synchronisation cause conflicts with each other.

Simple example

Let’s start with a very simple example. We can assume that you want to synchronise two directories — one on your computer hard drive, the second on some backup media. Start Conduit, and then drag the Folder option from the services pane to the canvas. After that, drag another instance of the same Folder option right next to the first one. Double-click each Folder service provider that you dropped on the canvas, to configure its details. You can then add the directory path, and other options for synchronisation.

File-synchronisation

Figure 3: File-synchronisation

You can define synchronisation rules by right-clicking the current group and configuring options under the Synchronisation Options tab. To synchronise the two directories that we configured earlier, just right-click the group and select the Synchronise Group option.

Synchronisation options

Figure 4: Synchronisation options

Services that require authentication

Let’s consider an example where one of the data services requires authentication before Conduit can proceed. For instance, let’s suppose I want to synchronise all my photos between my Facebook account and the local F-Spot database. Remember, Facebook does not allow downloading of photos; you can only upload them. As in the previous case, place both Facebook and F-Spot service providers on the canvas, in the same group. Now, when you try to synchronise, you will be provided with a new window asking for your login details. Once you enter them, Conduit is ready to sync. Depending on the service you use, you may need to provide your login details every time you use Conduit.

Integrated WebKit browser for authentication

Figure 5: Integrated WebKit browser for authentication

Final thoughts

One of the major complaints about Conduit is the lack of cross-platform compatibility. Currently, GNOME Conduit is not a cross-platform application, and this may severely limit the usability of the application for some. Second, Conduit is still a bit buggy, and may not work at times.

The good thing is that you have a single application to manage multiple services, and with the graphical representation of actual data flow, you don’t have to worry about commands at all; you get a clearer picture of the operations to be performed. If you find a service you think should be in Conduit, and is not, then just drop a line to one of the developers to get it included in the next release — or, better still, write the port yourself and help others.

Bottom line: try Conduit, you will like it.

All published articles are released under Creative Commons Attribution-NonCommercial 3.0 Unported License, unless otherwise noted.
Open Source For You is powered by WordPress, which gladly sits on top of a CentOS-based LEMP stack.

Creative Commons License.