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

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.

Master List of Dependencies

The following list contains all software that Barry depends on, and the reason for it. Some are only needed for building the source, and some are only needed for building CVS.

  • C and C++ compilers - 4.1.x or higher, for the tr1 includes (source build)
  • ccache - completely optional, but useful if you plan on compiling repeatedly
  • pkg-config (source build: so configure can autodetect library locations)
  • libusb, stable (0.1.x) - found at http://www.libusb.org/
  • pthread
  • boost version 1.33 or higher (optional, needed for the serialization library, which you need if you want to save downloads for later uploads to the device, using btool) http://www.boost.org
  • automake version 1.9 (CVS builds only)
  • autoconf version 2.61 (CVS builds only)
  • libtool version 1.5.22 (CVS builds only)
  • doxygen suggested version 1.5.6, only for building API documentation
  • gtkmm, glademm, glibmm C++ versions of the GTK libraries (needed for the barrybackup GUI)
  • libtar (barrybackup GUI)
  • zlib, needed for CRC32 checksums in library COD file support, and used by the barrybackup GUI
  • libopensync version 0.22 or, optionally, if building from source, latest opensync SVN tree
  • 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.
  • gettext, needed for the iconv.m4 file, on some systems, when building from CVS to generate configure.
  • php5, needed for generating static HTML documentation (CVS builds only)

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.

Of course, you probably don't want to read the intricate details of distro bugs. You just want it to work! For such systems, I usually grab the libtar source RPM package from here and then run:

rpmdev-setuptree (if this is your first time)
rpm -i libtar-1.2.11-11.fc10.src.rpm
cd ~/rpmbuild/SPECS
rpmbuild -ba libtar.spec
rpm -i ../RPMS/*/libtar*rpm

Dependency Packages for Common Distros

The following is a list of packages you'll need to install to build Barry from source, if you are using one of the below common distributions. Other distributions should have similar package names.

    Fedora 11:

    Use the yum package manager to install the following:

    • pkgconfig
    • libtool
    • libusb-devel
    • boost-devel (optional)
    • libtar-devel
    • gtkmm24-devel
    • glibmm24-devel
    • libglademm24-devel
    • fuse-devel
    • zlib-devel
    • gettext-devel
    • libopensync-devel (0.22)
    • ccache (optional)
    • doxygen (optional)
    • php-cli (optional, for generating docs)

    Debian stable:

    Use the apt-get package manager to install the following:

    • pkg-config
    • libtool
    • libusb-dev
    • libboost-serialization-dev
    • libtar-dev
    • libgtkmm-2.4-dev
    • libglibmm-2.4-dev
    • libglademm-2.4-dev
    • libfuse-dev
    • zlib1g-dev
    • gettext
    • libopensync0-dev
    • ccache (optional)
    • doxygen (optional)
    • php5-cli (optional, for generating docs)