Well, the requirements are “minimum version” requirements. So install the latest of the two versions in your prefix for GIMP 2.9, or install glib from git in your prefix, which can be riskier than installing an official release version, but usually works just fine.
GEGL is actually used by software other than GIMP. So it’s entirely possible that someone might want to install GEGL without also installing GIMP, in which case “what GIMP needs” and what “some other software needs” in terms of GEGL and also in terms of other libraries such as glib, are likely to be very different. This is one of the advantages of compiling software in a prefix - if done correctly, you can install for example glib and GEGL in one prefix for GIMP, and agan in another prefix for some other software, without causing any unwanted interaction between the versions of GEGL and glib in the two different prefixes.
You might find this older article useful to peruse:
As you might guess, library version requirements for GIMP 2.9, 2.8, and 2.6 are very different. 2.6 required libraries that were “too old” to be in my Linux repository, and 2.9 required libraries that were “too new” to be in my Linux repository. But using three different prefixes allowed all three versions to be installed, all at once, and even run all at the same time.
When I switched to Linux it was I was tired of that antivirus which rotated for minutes and those virus and malwares which were annunced.
In theese eleven years I wanted to learn more possible about this new system which was and which is unknown to most. Actually when I talk with someone and I say I have “Linux”, they say: “what?”; or “Linux, but switch to W…s”.
I’m very proud to have a Linux distro on all my pc’s (laptop,desktop,raspberry,router,NAS etc.) and I wish to understand more possible about it.
After, it arrived Photography passion and to have the lastest function is necessary for competing with friends which have the others softwares.
However the first wish is to understand in deep this amazing world of FOSS’s and if a distro force me to that depth it 's not bad.
I’ll decide…
PS. I’ll never stop to thank, sufficiently who codes in FOSS.
ahhrg…
I compiled gimp into /home/gabriele/code/gimpdefault with this hint but the issue is the same:
I have
Making all in . make[4]: Entering directory ‘/home/gabriele/code/gimpdefault/build/gimp/app’
_ CCLD gimp-2.9
_ CCLD gimp-console-2.9_ core/libappcore.a(gimpimage-undo.o): In function gimp_image_undo_push':_ _/home/gabriele/code/gimpdefault/build/gimp/app/core/gimpimage-undo.c:402: undefined reference to g_object_new_with_properties’ /home/gabriele/code/gimpdefault/install/lib/libgio-2.0.so: undefined reference to g_build_filename_valist'_ _/home/gabriele/code/gimpdefault/install/lib/libgio-2.0.so: undefined reference to g_sequence_is_empty’ collect2: error: ld returned 1 exit status Makefile:985: recipe for target ‘gimp-console-2.9’ failed make[4]: *** [gimp-console-2.9] Error 1 make[4]: *** Waiting for unfinished jobs… gui/libappgui.a(gui-vtable.o): In function gui_pdb_dialog_new':_ _/home/gabriele/code/gimpdefault/build/gimp/app/gui/gui-vtable.c:546: undefined reference to g_object_new_with_properties’ core/libappcore.a(gimpimage-undo.o): In function gimp_image_undo_push':_ _/home/gabriele/code/gimpdefault/build/gimp/app/core/gimpimage-undo.c:402: undefined reference to g_object_new_with_properties’ /home/gabriele/code/gimpdefault/install/lib/libgio-2.0.so: undefined reference to g_build_filename_valist'_ _/home/gabriele/code/gimpdefault/install/lib/libgio-2.0.so: undefined reference to g_sequence_is_empty’ collect2: error: ld returned 1 exit status Makefile:981: recipe for target ‘gimp-2.9’ failed make[4]: *** [gimp-2.9] Error 1
_
and after
That does indicate that GIMP isn’t seeing the right version of glib. When you look in “/home/gabriele/code/gimpdefault/install/bin”, do you see any glib executables? For example, in my own “gimpdefault/install/bin” I see these: gapplication gdbus gdbus-codegen gio gio-querymodules glib-compile-resources glib-compile-schemas glib-genmarshal glib-gettextize glib-mkenums gobject-query gresource gsettings gtester gtester-report. And of course there’s also glib “stuff” in the include, lib, and share folders.
Comparing your ouput to what I see after establishing the prefix and build folders for GIMP, one thing that stands out is the result of echo $GIO_EXTRA_MODULES. You get home/gabriele/code/gimpdefault/install/lib/gio/modules. I get this:
echo $GIO_EXTRA_MODULES
/usr/lib/gio/modules
This is almost certainly a problem, even if it’s not the problem. Your system “gio extra modules” are probably located at “/usr/lib/gio/modules” or “/usr/lib64/gio/modules” or “/usr/lib/x86_64-linux-gnu/gio/modules”, or something similar, depending on what version of Linux you are using.
Hi Elle, I reread this
What you mean here when you talk about GIO_EXTRA_MODULES=/usr/lib/gio/modules… you mean if you install GIMP and all its dependencies into the $PREFIX you have to install GIO , which is part of GLib, not in the $PREFIX but under /usr or lib or lib64 all based on the distribution?
If it is ,I under /usr/lib64 have GIO which is installed by my distribution… and If I install GIO from glib for git gimp I’ll rewrite GIO libs of my distro…
I’m confused
Hmm, I can see the room for confusion. But no, don’t install GIO for glib for git gimp in /usr/lib64. Leave system libraries alone, let your Linux repository take care of all system libraries.
Looking at your list of installed files, you are installing a whole lot more stuff in the prefix than I’ve ever had to install. So maybe what you really need to do is somehow “add” the prefix “gio” stuff to the system “gio” stuff, similarly to how we add the prefix path to the system path, and such. But this is a guess, a wild and probably completely off-base guess, I’ve never had to do this and I don’t even know if what I just said makes any sense.
At this point I don’t really know what needs to be done given the very large number of software packages that you’ve had to install to get GIMP 2.9 up and running.
Here’s what I would suggest: Replace the “GIO” line for establishing the prefix with your system library location, and then do “make uninstall && make clean && git clean -xdf” and start over at “./autogen.sh” at least for babl/GEGL/mypaint/GIMP, and possibly even for everything that you installed in the prefix, basically just starting over. If this doesn’t work, then someone more knowledgeable than I am regarding system libraries and especially glib-related libraries will have to help figure out why installing GIMP from git in a prefix isn’t working.
Hi,
after last failures I upgrade to bleeding edge of my distro where there’s glib2-2.54.3 …
but when I compile libmypaint I have (I had to install json-c from git because it removed ) :
make[2]: Entering directory ‘/root/git/libmypaint’
depbase=echo mypaint-brush.lo | sed 's|[^/]*$|.deps/&|;s|\.lo$||';
/bin/sh ./libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I/usr/local/include/json-c -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -D_POSIX_C_SOURCE=200809L -g -O2 -MT mypaint-brush.lo -MD -MP -MF $depbase.Tpo -c -o mypaint-brush.lo mypaint-brush.c &&
mv -f $depbase.Tpo $depbase.Plo
libtool: compile: gcc -DHAVE_CONFIG_H -I. -I/usr/local/include/json-c -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -D_POSIX_C_SOURCE=200809L -g -O2 -MT mypaint-brush.lo -MD -MP -MF .deps/mypaint-brush.Tpo -c mypaint-brush.c -fPIC -DPIC -o .libs/mypaint-brush.o
mypaint-brush.c: In function ‘mypaint_brush_new’:
mypaint-brush.c:133:26: error: ‘FALSE’ undeclared (first use in this function); did you mean ‘FILE’?
self->print_inputs = FALSE;
^~~~~
FILE
mypaint-brush.c:133:26: note: each undeclared identifier is reported only once for each function it appears in
mypaint-brush.c:142:29: error: ‘TRUE’ undeclared (first use in this function)
self->reset_requested = TRUE;
^~~~
mypaint-brush.c: In function ‘mypaint_brush_reset’:
mypaint-brush.c:225:29: error: ‘TRUE’ undeclared (first use in this function)
self->reset_requested = TRUE;
^~~~
mypaint-brush.c: In function ‘mypaint_brush_stroke_to’:
mypaint-brush.c:961:31: error: ‘FALSE’ undeclared (first use in this function); did you mean ‘FILE’?
self->reset_requested = FALSE;
^~~~~
FILE
mypaint-brush.c:980:14: error: ‘TRUE’ undeclared (first use in this function)
return TRUE;
^~~~
mypaint-brush.c: In function ‘obj_get’:
mypaint-brush.c:1100:44: error: ‘TRUE’ undeclared (first use in this function)
&& (obj_out ? (*obj_out != NULL) : TRUE);
^~~~
mypaint-brush.c: In function ‘update_brush_setting_from_json_object’:
mypaint-brush.c:1120:16: error: ‘FALSE’ undeclared (first use in this function); did you mean ‘FILE’?
return FALSE;
^~~~~
FILE
mypaint-brush.c:1167:12: error: ‘TRUE’ undeclared (first use in this function)
return TRUE;
^~~~
mypaint-brush.c: In function ‘update_brush_from_json_object’:
mypaint-brush.c:1177:16: error: ‘FALSE’ undeclared (first use in this function); did you mean ‘FILE’?
return FALSE;
^~~~~
FILE
mypaint-brush.c:1193:28: error: ‘TRUE’ undeclared (first use in this function)
gboolean updated_all = TRUE;
^~~~
mypaint-brush.c: In function ‘mypaint_brush_from_string’:
mypaint-brush.c:1227:16: error: ‘FALSE’ undeclared (first use in this function); did you mean ‘FILE’?
return FALSE;
^~~~~
FILE
make[2]: *** [Makefile:730: mypaint-brush.lo] Error 1
make[2]: Leaving directory ‘/root/git/libmypaint’
make[1]: *** [Makefile:840: all-recursive] Error 1
make[1]: Leaving directory ‘/root/git/libmypaint’
make: *** [Makefile:598: all] Error 2