Return to gThumb main page

Development

This is the development page for gthumb

Hacking gThumb

Patches incorporating new features and new strings should be based on the git master branch.

You can compile the most recent development code on your system if you have the latest release of a bleeding-edge distro like Fedora or Ubuntu. The basic procedure for anonymous access is this:

git clone git://git.gnome.org/gthumb
cd gthumb
./autogen.sh --prefix=/usr CFLAGS="-ggdb"
make
sudo make install

Developers with commit privileges would use a different "git clone" command:

git clone ssh://yourusername@git.gnome.org/git/gthumb

If you want to run gThumb without having to install it (not to overwrite your stable version of gThumb for example), you can use the --enable-run-in-place with autogen, like this:

./autogen.sh --prefix=/usr CFLAGS="-ggdb" --enable-run-in-place

A segmentation fault may result if gthumb is run after moving the source directory. To solve this run "make clean", followed by the above command, and finally "make" once more.

If you make major changes to the code, it is generally helpful to run cppcheck to check your code, like this:

cppcheck -q --enable=unusedFunctions .

or, adding additional style checks,

cppcheck -q --enable=all .

This may give some false warnings, however (especially with --enable=all).

Dependencies

To compile gThumb, you will need some packages that are not normally installed on a desktop system.

Ubuntu

The minimum ones are:

sudo apt-get install git-core gnome-common libgnome2-dev libgtk2.0-dev libunique-dev libexiv2-dev libgphoto2-dev

Optionals are:

Option

Packages

TIFF tools

libtiff4-dev

Clutter support (used for slideshow)

libclutter-gtk-0.10-dev

GStreamer support (to display videos)

libgstreamer0.10-dev libgstreamer-plugins-base0.10-dev

Web services support

libsoup-gnome2.4-dev

To use GNOME Keyring

libgnome-keyring-dev

Burn disc support

libbrasero-media-dev libdbus-glib-1-dev

Web albums

bison flex

To install all optional packages:

sudo apt-get install libtiff4-dev libclutter-gtk-0.10-dev libgstreamer0.10-dev libgstreamer-plugins-base0.10-dev libsoup-gnome2.4-dev libgnome-keyring-dev libbrasero-media-dev libdbus-glib-1-dev bison flex

On Fedora

Build dependencies can be installed via the command :

dnf builddep gthumb

These are the build dependencies of the fedora-packaged rpm version of gthumb. Additional packages might be necessary for extensions. If the autogen process fails, and says "missing somefile.so", you can use "dnf provides */somefile.so" to figure out the needed package.

Using git

To get code:

git clone git://git.gnome.org/gthumb

To generate a patch:

  • edit the source files
  • git commit -a
  • git format-patch origin
  • Attach the generated patch to a bug report, or email it to the mailing list

You can also quickly browse the code through the git web viewer here

More information about git is available here:

Extensions / Plug-Ins

gThumb supports plug-ins. Many of the existing tools are implemented as plug-ins. If you want to add a feature (like geolocation, etc) consider writing an extension!

Apps/gthumb/development (last edited 2015-12-16 14:34:25 by MichaelChudobiak)