Install Barry from Source

Dependencies

See the software dependencies page for detailed information on the software that Barry needs.

Getting the Source

There are 2 ways to get the source code:

Using The Tarball Release

There are multiple source packages available on the Sourceforge download page. The main tarball is always the tar.bz2 package. This contains everything in git, as well as pre-built configure scripts and pre-generated HTML documentation.

Using git

The same development tree is also available via git, and can be browsed on the web at the Barry git page. You can clone the repository like this:

        git clone git://repo.or.cz/barry.git barry

This will place the Barry sources in the barry directory. To update your source tree periodically, do the following:

        cd barry
        ./buildgen.sh cleanall      (optional)
        git checkout master
        git pull origin

Preparing Git Sources for Configure

If you're using a development tree, you'll need to build the usual ./configure script before you can proceed. To do this, you will need autoconf, automake, and libtool as stated on the dependencies page. The correct sequence of commands to build ./configure is already stored in the ./buildgen.sh shell script in the root level directory of the Barry tree.

        cd barry
        ./buildgen.sh

Building the Source

At this point, or if you are using a source tarball, building Barry is a matter of the common set of commands:

        ./configure
        make
        make install          (possibly as root)

The top level configure script also has a number of additional sub-package options:

  • --enable-gui - compile the Barry Backup GUI
  • --enable-desktop - compile the Barry Desktop GUI
  • --enable-opensync-plugin - compile the Barry plugin for OpenSync 0.2x
  • --enable-opensync-plugin-4x - compile the Barry plugin for OpenSync 0.39/0.4x
  • --enable-boost - include Boost support in the btool utility
  • --enable-rpathhack - if specified, uses a libtool hack to disable rpath during the build

If you want to generate doxygen documentation, run 'doxygen' from the root source directory. The resulting files will be in doc/www/doxygen/html/. Doxygen 1.7.1 has been used to do this, but presumably more recent versions will work as well.

Build Everything!

An example that will build everything, including the Boost features in btool:

        cd barry
        ./buildgen.sh cleanall         (start with a fresh tree)
        ./buildgen.sh                  (this creates configure)
        ./configure --enable-boost --enable-gui --enable-opensync-plugin \
                --enable-opensync-plugin-4x --enable-desktop
        make
        make install
        doxygen

This will give you a set of command line tools (bcharge, btool, breset, bidentify, bjavaloader, pppob), as well as the backup GUI (barrybackup), the Desktop GUI (barrydesktop), and will install the opensync plugins into the system directory for opensync plugins (usually /usr/lib/opensync/plugins). Available man pages are also installed.

Configure udev to Run bcharge Automatically

The makefiles do not install udev rules automatically. There are sample udev rules files in the udev/ directory. For a Debian system, copy the udev/debian/10-blackberry.rules file to /etc/udev/rules.d/10-blackberry.rules, and copy the file modprobe/blacklist-berry_charge to /etc/modprobe.d/blacklist-berry_charge.

        cd barry
        (become root)
        cp udev/debian/10-blackberry.rules /etc/udev/rules.d/10-blackberry.rules
        cp modprobe/blacklist-berry_charge /etc/modprobe.d/blacklist-berry_charge

Make sure that bcharge was installed to /usr/sbin. If you used a different --prefix option on the ./configure command line, you will need to update your 10-blackberry.rules file to match.

Configure PPP chat scripts for your system

The source tree comes with sample PPP chat scripts for using your Blackberry as a modem. These sample scripts are located under ppp/ in your source directory.

The binary packages install all the ppp options files under /etc/ppp/peers/ and all the chat scripts (with the *.chat extensions) under /etc/chatscripts/. These directories are important, since the pppd program expects to find options files under peers/ and the options files reference the chatscripts.

Copy the above samples to their appropriate directories to install modem support for your system. Make sure you have pppd installed as well.

If you install Barry in a location other than /usr, you will need to edit the options files to correct the hard coded paths in these files. The files assume that pppob is located in /usr/sbin/pppob.

See the modem usage page for more information on using your Blackberry as a modem.

Building Barry RPMs from git

Paul Dugas reports on the mailing list that he uses the following steps for building RPMs from git:

        $ cd ~/work
        $ git clone...
        $ cd barry
        $ ./buildgen.sh
        $ ./configure --enable-gui --enable-opensync-plugin
        $ make dist
        $ rpmbuild -tb barry-0.13.tar.gz

        I prefer running rpmbuild from the tarball as it's typically the way
        non-developers would build them.  I have ~/.rpmmacros setting %_topdir
        to %(echo $HOME)/.rpmbuild so the RPM building can run as me and not
        root.  The resulting RPMs end up in ~/.rpmbuild/RPMS/x86_64.

On an RPM based system, install rpm-build and rpmdevtools, then run rpmdev-setuptree to create an "rpmbuild" directory in your home directory.

Building Barry DEBs from Source

Once you have ./configure generated as detailed above, you can create Debian-style binary packages for your system by running the following:

        cd barry
        fakeroot -- debian/rules binary

There are manual sub-targets in the debian/rules makefile to build binary packages for the OpenSync plugins, which you can invoke as follows:

        fakeroot -- debian/rules binary os22-binary

        or

        fakeroot -- debian/rules binary os22-binary