Okay, so you heard there are some cool new features in gimp-2.7. Well, it’s an unstable version. “But I want layer folders”. Yeah yeah, okay, so this should work for non-developers, but remember 2.7 is unstable.

The following will do a build from “gimp-build” directory which is in your home directory and install into “gimp” in your home directory.

Suggestions for improvements welcome.

This is using Ubuntu 10.04. Different versions may require some additional packages be installed.

cd
export PREFIX=`echo ~/gimp`
export PATH=$PREFIX/bin:$PATH
export PKG_CONFIG_PATH=$PREFIX/lib/pkgconfig:$PREFIX/share/pkgconfig
sudo apt-get install libtool automake1.10 autoconf git-core gettext \
libglib2.0-0 libglib2.0-dev libgtk2.0-0 libgtk2.0-dev ruby \
intltool libtiff4 libtiff4-dev python-dev python-gtk2-dev \
libexif-dev libmng-dev liblcms1-dev libxpm-dev librsvg2-dev \
libwmf-dev libasound2-dev

mkdir gimp-build
cd gimp-build
git clone git://git.gnome.org/babl
git clone git://git.gnome.org/gegl
git clone git://git.gnome.org/gimp

cd babl
./autogen.sh –prefix=$PREFIX
make
make install

cd ../gegl
./autogen.sh –prefix=$PREFIX
make
make install

cd ../gimp
./autogen.sh –prefix=$PREFIX
make
make install

Now you can run gimp as

~/gimp/bin/gimp-2.7

11 Comments

  1. David Ryder says:

    Hi
    I have been using the guide. I get to:
    cd ../gimp
    ./autogen.sh –prefix=$PREFIX

    and get:
    checking for iso-codes… yes
    checking for BABL… yes
    checking for GEGL… configure: error: Package requirements (gegl >= 0.1.2) were not met:

    No package ‘gegl’ found

    Consider adjusting the PKG_CONFIG_PATH environment variable if you
    installed software in a non-standard prefix.

    Alternatively, you may set the environment variables GEGL_CFLAGS
    and GEGL_LIBS to avoid the need to call pkg-config.
    See the pkg-config man page for more details.

    Configure failed or did not finish!
    david@ubuntu64:~/gimp-build/gimp$

    All steps were definitely followed.

    Please can you help?

    Many thanks,
    David

  2. cameron says:

    G’Day,
    check that the following properties are set:

    export PREFIX=`echo ~/gimp`
    export PATH=$PREFIX/bin:$PATH
    export PKG_CONFIG_PATH=$PREFIX/lib/pkgconfig:$PREFIX/share/pkgconfig

    you can check it with:
    echo $PREFIX
    echo $PATH
    echo $PKG_CONFIG_PATH

    If all still seems okay, then what OS are you using?

    Cameron

  3. photocomix says:

    i try to follow your instruction

    blog.bloke.com/2010/05/install-gimp-2-7-from-git-using-ub…
    except for a dependency not listed (gtk everything worked smooth …till almost the end

    “and then.. :gaah

    animation-play.o: In function `detach_callback’:
    /home/photocomix/gimp-build/gimp/plug-ins/common/animation-play.c:418: undefined reference to `GTK_WIDGET_REALIZED’
    collect2: ld returned 1 exit status
    make[3]: *** [animation-play] Errore 1
    make[3]: uscita dalla directory «/home/photocomix/gimp-build/gimp/plug-ins/common»
    make[2]: *** [all-recursive] Errore 1
    make[2]: uscita dalla directory «/home/photocomix/gimp-build/gimp/plug-ins»
    make[1]: *** [all-recursive] Errore 1
    make[1]: uscita dalla directory «/home/photocomix/gimp-build/gimp»
    make: *** [all] Errore 2
    photocomix@photocomix-laptop:~/gimp-build/gimp$ make install~/gimp/bin/gimp-2.7
    make: *** Nessuna regola per creare l’obiettivo «install~/gimp/bin/gimp-2.7». Arresto.”

    Last line means
    make: ***no rule to create the object «install~/gimp/bin/gimp-2.7». stop.

    do you have a suggestion to solve

  4. photocomix says:

    sorry there is a typo. the dependency not listed was obviously not gtk but gtk-doc

    anyway that was easy to solve is for “/home/photocomix/gimp-build/gimp/plug-ins/common/animation-play.c:418: undefined reference to `GTK_WIDGET_REALIZED’” that i have no clue

  5. cameron says:

    yes, please remember that the git version is really bleeding edge, so at any given time there is no guarantee that it will compile. Of course it should, but it really is the unstable version!

    Martin recently set up buildbot (on a machine I donated 🙂 ) to test the build every day, so problem should get picked up faster now.

    GTK_WIDGET_REALIZED is defined in gtk/gtkwidget.h, however I would guess that
    you might be picking up an old version of GTK?

    check with pkg_config or wait a day 🙂

    Cameron

  6. photocomix says:

    my gtk is the last available for ubuntu (and my software source include getdebian )
    In any case i would have no problem to build a more recent if needed

    but maybe was a temporary problem solved in today git, i will try again

  7. cameron says:

    how did you go? I noticed that yesterday the daily build worked, but today, it has failed.

    Cameron

  8. Harry Phillips says:

    I tried doing this on Ubuntu 10.10, it was missing the package gtk-docs-tools.

    The version I compiled was really broken. How do I now update using git? This is what happened:

    ~/gimp-build$ git clone git://git.gnome.org/babl
    fatal: destination path ‘babl’ already exists and is not an empty directory.

  9. Harry Phillips says:

    Don’t worry, found how to update and recompile from here:
    http://www.chromecode.com/

  10. cameron says:

    yes, just cd babl (and gegl and gimp)
    git pull –rebase
    make
    make install

    Cameron

  11. Rod says:

    Hey there, i have been trying to compile on windows xp using MINGW32
    Here are my results..
    I may still be able to compile it for windows if i can get intltool working correctly
    I downloaded and installed the latest version set the path variable and set the environment variable to force intltool to use the xml parser in active perl.
    However this is still the result…
    The tarball is already unzipped using MINGW32…

    Compaq_Owner@Family-Room ~
    $ cd gimp-2.7.2

    Compaq_Owner@Family-Room ~/gimp-2.7.2
    $ ./configure
    checking for a BSD-compatible install… /usr/bin/install -c
    checking whether build environment is sane… yes
    checking for a thread-safe mkdir -p… /usr/bin/mkdir -p
    checking for gawk… gawk
    checking whether make sets $(MAKE)… yes
    checking for gcc… gcc
    checking whether the C compiler works… yes
    checking for C compiler default output file name… a.exe
    checking for suffix of executables… .exe
    checking whether we are cross compiling… no
    checking for suffix of object files… o
    checking whether we are using the GNU C compiler… yes
    checking whether gcc accepts -g… yes
    checking for gcc option to accept ISO C89… none needed
    checking for style of include used by make… GNU
    checking dependency style of gcc… gcc3
    checking whether gcc and cc understand -c and -o together… yes
    checking build system type… i686-pc-cygwin
    checking host system type… i686-pc-cygwin
    checking for as… as
    checking for dlltool… dlltool
    checking for objdump… objdump
    checking how to print strings… printf
    checking for a sed that does not truncate output… /usr/bin/sed
    checking for grep that handles long lines and -e… /usr/bin/grep
    checking for egrep… /usr/bin/grep -E
    checking for fgrep… /usr/bin/grep -F
    checking for ld used by gcc… c:/strawberry/c/i686-w64-mingw32/bin/ld.exe
    checking if the linker (c:/strawberry/c/i686-w64-mingw32/bin/ld.exe) is GNU ld..
    . yes
    checking for BSD- or MS-compatible name lister (nm)… /cygdrive/c/strawberry/c/
    bin/nm -B
    checking the name lister (/cygdrive/c/strawberry/c/bin/nm -B) interface… BSD n
    m
    checking whether ln -s works… yes
    checking the maximum length of command line arguments… 8192
    checking whether the shell understands some XSI constructs… yes
    checking whether the shell understands “+=”… yes
    checking for c:/strawberry/c/i686-w64-mingw32/bin/ld.exe option to reload object
    files… -r
    checking for objdump… (cached) objdump
    checking how to recognize dependent libraries… file_magic ^x86 archive import|
    ^x86 DLL
    checking for ar… ar
    checking for strip… strip
    checking for ranlib… ranlib
    checking command to parse /cygdrive/c/strawberry/c/bin/nm -B output from gcc obj
    ect… ok
    checking how to run the C preprocessor… gcc -E
    checking for ANSI C header files… yes
    checking for sys/types.h… yes
    checking for sys/stat.h… yes
    checking for stdlib.h… yes
    checking for string.h… yes
    checking for memory.h… yes
    checking for strings.h… yes
    checking for inttypes.h… yes
    checking for stdint.h… yes
    checking for unistd.h… yes
    checking for dlfcn.h… yes
    checking for objdir… .libs
    checking if gcc supports -fno-rtti -fno-exceptions… no
    checking for gcc option to produce PIC… -DDLL_EXPORT -DPIC
    checking if gcc PIC flag -DDLL_EXPORT -DPIC works… yes
    checking if gcc static flag -static works… yes
    checking if gcc supports -c -o file.o… yes
    checking if gcc supports -c -o file.o… (cached) yes
    checking whether the gcc linker (c:/strawberry/c/i686-w64-mingw32/bin/ld.exe) su
    pports shared libraries… yes
    checking whether -lc should be explicitly linked in… yes
    checking dynamic linker characteristics… Win32 ld.exe
    checking how to hardcode library paths into programs… immediate
    checking whether stripping libraries is possible… yes
    checking if libtool supports shared libraries… yes
    checking whether to build shared libraries… yes
    checking whether to build static libraries… no
    checking dependency style of gcc… gcc3
    checking whether to enable maintainer-specific portions of Makefiles… no
    checking for pkg-config… /cygdrive/c/GTK/bin/pkg-config
    checking pkg-config is at least version 0.16… yes
    checking for target architecture… i686-pc-cygwin
    checking for some Win32 platform… yes
    checking for native Win32… no
    checking for library containing strerror… none required
    checking whether make sets $(MAKE)… (cached) yes
    checking for special C compiler options needed for large files… no
    checking for _FILE_OFFSET_BITS value needed for large files… unknown
    checking for _LARGE_FILES value needed for large files… unknown
    checking whether to turn on debugging… no
    checking whether to turn on profiling… no
    checking whether gcc understands -Wdeclaration-after-statement… yes
    checking whether gcc understands -Wmissing-prototypes… yes
    checking whether gcc understands -Wstrict-prototypes… yes
    checking whether gcc understands -Wmissing-declarations… yes
    checking whether gcc understands -Winit-self… yes
    checking whether gcc understands -Wpointer-arith… yes
    checking whether gcc understands -Wold-style-definition… yes
    checking whether gcc understands -Wmissing-format-attribute… yes
    checking whether gcc understands -Wformat-security… yes
    checking whether gcc understands -Wformat-non-literal… no
    checking for ANSI C header files… (cached) yes
    checking for sys/wait.h that is POSIX.1 compatible… no
    checking whether time.h and sys/time.h may both be included… yes
    checking sys/param.h usability… yes
    checking sys/param.h presence… yes
    checking for sys/param.h… yes
    checking sys/time.h usability… yes
    checking sys/time.h presence… yes
    checking for sys/time.h… yes
    checking sys/times.h usability… no
    checking sys/times.h presence… no
    checking for sys/times.h… no
    checking for sys/wait.h… (cached) no
    checking for unistd.h… (cached) yes
    checking for pid_t… yes
    checking return type of signal handlers… void
    checking for vprintf… yes
    checking for _doprnt… no
    checking for size_t… yes
    checking for working alloca.h… no
    checking for alloca… yes
    checking for fsync… no
    checking for difftime… yes
    checking for mmap… no
    checking whether binary relocation support should be enabled… no
    checking for _NL_MEASUREMENT_MEASUREMENT… no
    checking whether NLS is requested… yes
    checking for intltool >= 0.40.1… ./configure: /cygdrive/c/GTK/bin/intltool-upd
    ate: /opt/perl/bin/perl: bad interpreter: Invalid argument
    found
    configure: error: Your intltool is too old. You need intltool 0.40.1 or later.

    Compaq_Owner@Family-Room ~/gimp-2.7.2
    $

    So if anyone out there knows how to get intltool to work please let me know. =)
    Until then i am stuck =\

    Here are the paths i set, just wondering if they look right? Should the Intltool folder be in GTK directory, and the path set to that?
    INTLTOOL – C:\Perl\bin\intltool_0.40.4-1_win32 <— for intltool call at compile
    INTLTOOL_PERL – C:\Perl\bin\perl <— for xml parser perl module that intltool needs

Leave a Reply