The recommended approach to get Entangle is to simply install your distro vendor’s own pre-built packages. In the case where their packages are too old though, the adventurous may wish to compile everything themselves from scratch. This page describes how to do this on Fedora or Ubuntu distros.

Building a custom libgphoto2

If the libgphoto2 package provided by the vendor is too old (eg lacking support for your camera), a new libgphoto2 can be built first

Installing pre-requisites for libgphoto2

Before compilation can be attempted, a number of build pre-requisites must be installed for libgphoto2.

Fedora packages

As root, run

# yum install libusb1-devel libusb-devel lockdev-devel \
  libexif-devel libjpeg-devel pkgconfig sharutils \
  libtool-ltdl-devel popt-devel gd-devel

Debian / Ubuntu packages

As root, run

# apt-get install libtool libltdl-dev zlib1g-dev libusb-dev \
  libgpmg1-dev pkg-config libexif-dev libjpeg-dev doxygen \
  graphviz libdbus-1-dev libgd2-xpm-dev

Unpack the new libgphoto2 release

As non-root, run

$ mkdir build
$ cd build
$ tar jxvf /path/to/download/of/libgphoto2-2.5.1.1.tar.bz2
$ cd libgphoto2-2.5.1.1

Compile the new libgphoto2 release

As non-root, run

$ ./configure --prefix=$HOME/entangle-0.5.1
$ make
$ make install

Install udev rules for USB devices

To make udev grant access to the USB camera device when it is plugged in, a rules file must be created and installed.
As non-root, run

$ cd $HOME/entangle-0.5.1
$ mkdir -p lib/udev/rules.d
$ ./lib/libgphoto2/print-camera-list udev-rules version 136 > \
    lib/udev/rules.d/40-libgphoto2.rules

As root, run

# cd /lib/udev/rules.d
# ln -s /home/YOURUSERNAME/entangle-0.5.1/lib/udev/rules.d/40-libgphoto2.rules .

Building a custom entangle

With the new libgphoto2 built, we can move onto building entangle itself

Installing pre-requisites for entangle

Before compilation can be attempted, a number of build pre-requisites must be installed for entangle.

Fedora packages

As root, run

# yum install gcc glib2-devel libgexiv2-devel \
  libgudev1-devel libpeas-devel lcms-devel gtk3-devel \
  gobject-introspection-devel dbus-glib-devel \
  intltool LibRaw-devel

If not building a custom ligphoto2, then add ‘libgphoto2-devel’ to the above command

Debian / Ubuntu packages

As root, run

# apt-get install gcc libglib2.0-dev libgdk-pixbuf2.0-dev \
  libgexiv2-dev libgudev-1.0-dev libpeas-dev \
  liblcms1-dev libgtk-3-dev libgirepository1.0-dev \
  libdbus-glib-1-dev libffi-dev gobject-introspection \
  intltool libraw-dev

If not building a custom libgphoto2, then add ‘libgphoto2-2-dev’ to the above command

Unpack the new entangle release

As non-root, run

$ mkdir build
$ cd build
$ tar xvf /path/to/download/of/entangle-0.5.1.tar.gz
$ cd entangle-0.5.1

Compile the new entangle release

As non-root, run

$ export PKG_CONFIG_PATH=$HOME/entangle-0.5.1/lib/pkgconfig
$ export LD_LIBRARY_PATH=$HOME/entangle-0.5.1/lib
$ ./configure --prefix=$HOME/entangle-0.5.1
$ make
$ make install

Setting up shell profile

Since entangle and libgphoto2 were installed into private directories, a few environment variables should be added to your shell profile. For bash users, edit $HOME/.profile and add the following lines at the end of it

export PATH=$HOME/entangle-0.5.1/bin:$PATH
export LD_LIBRARY_PATH=$HOME/entangle-0.5.1/lib
export XDG_DATA_DIRS=$HOME/entangle-0.5.1/share:/usr/share:/usr/local/share

Running entangle

Assuming you updated $HOME/.profile as detailed above, running entangle should simply be a matter of invoking the ‘entangle’ command from the shell.