Barry Dependencies

System Specific

Fedora systems:

  • ConsoleKit - required for accessing the Blackberry without root privileges.

Debian systems:

  • fakeroot - optional program to assist building your own Debian binary packages without root privileges
  • cdbs and debhelper - required to build binary packages
  • apt-utils - optional, if you wish to create a binary package repository

OpenBSD systems:

  • Uberry - the uberry kernel module conflicts with the ugen interface that libusb uses to talk to the device. To work around this, you will need to boot your kernel with "boot -c" and disable the uberry module. Suggestions for better ways to work around this conflict are welcome.

Mac OSX systems:

  • gettext - the default gettext autoconf scripts do not always do a very good job of detecting gettext and libintl libraries on the Mac. If it cannot find libintl, it will automatically disable NLS support. If this is important to you, add --with-libintl-prefix=/opt/local/ to the configure command line when building from source.

Master List of Dependencies

The following list contains all software that Barry depends on, the minimal version required, and the reason for its dependency. Some dependencies are only needed for building from source, and some are only needed for building from git.

Note: In the Barry source tree, under maintainer/depscripts/ you will find a number of distro-specific scripts which contain the appropriate apt-get or yum command lines to install all these dependencies for you. Review the script closest to your system. It may save you time.

  • git - for retrieving source from repositories
  • C and C++ compilers - 4.1.x or higher, for the tr1 includes (source build)
  • ccache - completely optional, but very useful if you plan on compiling repeatedly
  • pkg-config - source build only, so configure can autodetect library locations)
  • libusb - both versions 0.1.x and 1.x are supported and autodetected by the configure script. Found at http://www.libusb.org/
  • pthread
  • boost - optional dependency for serialization support. Use version 1.33 or higher http://www.boost.org
  • automake version 1.9 (git builds only)
  • autoconf version 2.61 (git builds only)
  • autoconf-archive
  • libtool version 1.5.22 (git builds only)
  • autopoint on some systems, this is a separate package, yet on others, it is part of gettext (git builds only)
  • doxygen suggested version 1.5.6, only for building API documentation
  • gtkmm, glademm, glibmm - version 2.4 or compatible - C++ versions of the GTK libraries, which are needed for the barrybackup GUI
  • libtar - needed for libbarrybackup, and therefore the (barrybackup GUI as well
  • zlib - needed for CRC32 checksums in library COD file support, and also used by the barrybackup GUI to compress backup files
  • libopensync version 0.2x or version 0.39 devel
  • sqlite, glib2, libxml2 - needed for syncing, required by OpenSync
  • libfuse - version 2.5 or higher (optional)
  • libiconv - needed for international charset conversions. Most Linux distros have this as part of libc. If you are using another OS such as FreeBSD, you'll have to install this separately.
  • libxml++ - version 2.6 for the Desktop
  • gettext - needed for the iconv.m4 file, on some systems, when building from git to generate configure
  • php5 - optional, needed for generating static HTML documentation (git builds only)
  • rpmdevtools and rpm-build - if building RPMs yourself
  • wxWidgets - version 2.8, required by the Desktop GUI
  • libgcal - version 0.9.6 or higher, if building the Barry Desktop
  • libSDL - optional, needed by the bwatch program
  • evolution-data-server and libebook, libedata* libraries - needed by the OpenSync evolution plugin
  • gksu or beesu or equivalent GUI sudo - needed by the Desktop for modem functionality

The Case of the Broken libtar

Well meaning people, in efforts to port the libtar examples to 64-bit systems have introduced a bug that causes libtar to mismatch standard read() and write() function call prototypes.

This bug has been seen in the Mandriva, ArchLinux, and Gentoo distros. Depending on your system, and how up to date it is, it may already have been fixed.

The curious can read more about this bug here and here.

This bug has been fixed for a long time, or never existed, on distros like Fedora or Debian, and you can probably grab sources from those distros if you really need them. If you run into this problem and require help to solve it, please email the mailing list .

The latest version of libtar can be found here.

Dependency Packages for Common Distros

I used to maintain lists of packages for common distros here, but it is much more useful to have a script that just works.

In the Barry source tree, under maintainer/depscripts/ you will find a number of distro-specific scripts which contain the appropriate apt-get or yum command lines to install all these dependencies for you. Review the script closest to your system. It may save you time.