Hi,
yes tried it and it works.
Thanks
@dafrasaga wants to do it for the experience but nowadays we are fortunate enough to have most packages pre-built for our system.
BTW @dafrasaga, you could truncate long blocks of code by using three back ticks like so:
```
#Insert command line output.
```
turns into
#Insert command line output.
I could be wrong, but I think that’s not a safe thing to do!
It definitely isn’t.
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.
Hmm, “echoing” all that at once makes it very difficult to read. Here’s what the information looks like when sorted out, one “echo” at a time:
$PREFIX: /home/gabriele/code/gimpdefault/install
$PATH: /home/gabriele/code/gimpdefault/install/bin:/usr/local/bin:/usr/bin:/bin:/usr/games:/opt/blender:/usr/lib64/kde4/libexec:/usr/lib64/qt/bin:/usr/lib64/qt5/bin:/usr/share/texmf/bin
$LD_LIBRARY_PATH: /home/gabriele/code/gimpdefault/install/lib:
$XDG_DATA_DIRS: /home/gabriele/code/gimpdefault/install/share:/usr/share:/usr/share:/usr/local/share:/home/gabriele/.kde/share/
$ACLOCAL_FLAGS: /home/gabriele/code/gimpdefault/install/share/aclocal
$PKG_CONFIG_PATH: /home/gabriele/code/gimpdefault/install/share/pkgconfig:/home/gabriele/code/gimpdefault/install/lib/pkgconfig:/usr/local/lib64/pkgconfig:/usr/local/share/pkgconfig:/usr/lib64/pkgconfig:/usr/share/pkgconfig
$GIO_EXTRA_MODULES: /home/gabriele/code/gimpdefault/install/lib/gio/modules
$SRC_DIR: /home/gabriele/code/gimpdefault/build
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,
into bin,include and share I have
Summary
bin/:
total 1572
-rwxr-xr-x 1 gabriele gabriele 41696 Jan 24 07:06 gapplication
-rwxr-xr-x 1 gabriele gabriele 209800 Jan 24 17:56 gcut
-rwxr-xr-x 1 gabriele gabriele 140120 Jan 24 07:06 gdbus
-rwxr-xr-x 1 gabriele gabriele 2085 Jan 24 07:06 gdbus-codegen
-rwxr-xr-x 1 gabriele gabriele 28560 Jan 24 17:51 gdk-pixbuf-csource
-rwxr-xr-x 1 gabriele gabriele 23736 Jan 24 17:51 gdk-pixbuf-pixdata
-rwxr-xr-x 1 gabriele gabriele 37328 Jan 24 17:51 gdk-pixbuf-query-loaders
-rwxr-xr-x 1 gabriele gabriele 43128 Jan 24 17:52 gdk-pixbuf-thumbnailer
-rwxr-xr-x 1 gabriele gabriele 76928 Jan 24 17:56 gegl
-rwxr-xr-x 1 gabriele gabriele 29016 Jan 24 17:56 gegl-imgcmp
-rwxr-xr-x 1 gabriele gabriele 271736 Jan 24 07:06 gio
-rwxr-xr-x 1 gabriele gabriele 25856 Jan 24 07:06 gio-querymodules
-rwxr-xr-x 1 gabriele gabriele 111040 Jan 24 07:06 glib-compile-resources
-rwxr-xr-x 1 gabriele gabriele 152184 Jan 24 07:06 glib-compile-schemas
-rwxr-xr-x 1 gabriele gabriele 40929 Jan 24 07:06 glib-genmarshal
-rwxr-xr-x 1 gabriele gabriele 5410 Jan 24 07:06 glib-gettextize
-rwxr-xr-x 1 gabriele gabriele 27653 Jan 24 07:06 glib-mkenums
-rwxr-xr-x 1 gabriele gabriele 26320 Jan 24 07:06 gobject-query
-rwxr-xr-x 1 gabriele gabriele 53800 Jan 24 07:06 gresource
-rwxr-xr-x 1 gabriele gabriele 61144 Jan 24 07:06 gsettings
-rwxr-xr-x 1 gabriele gabriele 72760 Jan 24 07:06 gtester
-rwxr-xr-x 1 gabriele gabriele 18830 Jan 24 07:06 gtester-report
drwxr-xr-x 3 gabriele gabriele 4096 Jan 24 07:13 installed-tests
-rwxr-xr-x 1 gabriele gabriele 27368 Jan 24 07:13 json-glib-format
-rwxr-xr-x 1 gabriele gabriele 24664 Jan 24 07:13 json-glib-validate
include/:
total 32
drwxr-xr-x 3 gabriele gabriele 4096 Jan 24 17:53 babl-0.1
drwxr-xr-x 3 gabriele gabriele 4096 Jan 24 08:21 gdk-pixbuf-2.0
drwxr-xr-x 6 gabriele gabriele 4096 Jan 24 17:56 gegl-0.3
drwxr-xr-x 2 gabriele gabriele 4096 Jan 24 18:04 gexiv2
drwxr-xr-x 3 gabriele gabriele 4096 Jan 24 07:04 gio-unix-2.0
drwxr-xr-x 5 gabriele gabriele 4096 Jan 24 07:06 glib-2.0
drwxr-xr-x 3 gabriele gabriele 4096 Jan 24 07:13 json-glib-1.0
drwxr-xr-x 2 gabriele gabriele 4096 Jan 24 17:58 libmypaint
share/:
total 60
drwxr-xr-x 2 gabriele gabriele 4096 Jan 24 07:06 aclocal
drwxr-xr-x 3 gabriele gabriele 4096 Jan 24 07:04 bash-completion
drwxr-xr-x 3 gabriele gabriele 4096 Jan 24 18:02 dbus-1
drwxr-xr-x 3 gabriele gabriele 4096 Jan 24 07:04 gdb
drwxr-xr-x 3 gabriele gabriele 4096 Jan 24 07:04 gettext
drwxr-xr-x 2 gabriele gabriele 4096 Jan 24 18:04 gir-1.0
drwxr-xr-x 6 gabriele gabriele 4096 Jan 24 07:04 glib-2.0
drwxr-xr-x 3 gabriele gabriele 4096 Jan 24 17:56 gtk-doc
drwxr-xr-x 4 gabriele gabriele 4096 Jan 24 18:02 installed-tests
drwxr-xr-x 114 gabriele gabriele 4096 Jan 24 18:02 locale
drwxr-xr-x 3 gabriele gabriele 4096 Jan 24 08:21 man
drwxr-xr-x 3 gabriele gabriele 4096 Jan 24 17:58 mypaint-data
drwxr-xr-x 2 gabriele gabriele 4096 Jan 24 17:58 pkgconfig
drwxr-xr-x 2 gabriele gabriele 4096 Jan 24 17:52 thumbnailers
drwxr-xr-x 3 gabriele gabriele 4096 Jan 24 17:56 vala
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
Hi Gabriele,
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
Any hints??
Cheers
Include stdbool.h which gets you true
/ false
in C vs TRUE
/ FALSE
which might be defined in another header possibly missing.
Hi,
my apology but how to do it?? I’m noob…
Unsure of the best way to go about it, could you post the whole thing including the configure phase?
Do You mean all output of configure and make? It’s long…
Indeed it is. Use the code backticks (the </> button) to keep it in a box or use
Btw did you install glib2-devel?
Hi, the configure and make output are:
**configure**
checking for a BSD-compatible install... /usr/bin/ginstall -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 whether make supports nested variables... yes
checking for gcc... gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables...
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 whether gcc understands -c and -o together... yes
checking for style of include used by make... GNU
checking dependency style of gcc... gcc3
checking for gcc option to accept ISO C99... none needed
checking for ar... ar
checking the archiver (ar) interface... ar
checking build system type... x86_64-pc-linux-gnu
checking host system type... x86_64-pc-linux-gnu
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... /usr/x86_64-slackware-linux/bin/ld
checking if the linker (/usr/x86_64-slackware-linux/bin/ld) is GNU ld... yes
checking for BSD- or MS-compatible name lister (nm)... /usr/bin/nm -B
checking the name lister (/usr/bin/nm -B) interface... BSD nm
checking whether ln -s works... yes
checking the maximum length of command line arguments... 1572864
checking how to convert x86_64-pc-linux-gnu file names to x86_64-pc-linux-gnu format... func_convert_file_noop
checking how to convert x86_64-pc-linux-gnu file names to toolchain format... func_convert_file_noop
checking for /usr/x86_64-slackware-linux/bin/ld option to reload object files... -r
checking for objdump... objdump
checking how to recognize dependent libraries... pass_all
checking for dlltool... dlltool
checking how to associate runtime and link libraries... printf %s\n
checking for archiver @FILE support... @
checking for strip... strip
checking for ranlib... ranlib
checking command to parse /usr/bin/nm -B output from gcc object... ok
checking for sysroot... no
checking for a working dd... /usr/bin/dd
checking how to truncate binary pipes... /usr/bin/dd bs=4096 count=1
checking for mt... mt
checking if mt is a manifest tool... no
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... -fPIC -DPIC
checking if gcc PIC flag -fPIC -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 (/usr/x86_64-slackware-linux/bin/ld -m elf_x86_64) supports shared libraries... yes
checking whether -lc should be explicitly linked in... no
checking dynamic linker characteristics... GNU/Linux ld.so
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 whether to enable maintainer-specific portions of Makefiles... yes
checking for pkg-config... /usr/bin/pkg-config
checking pkg-config is at least version 0.16... yes
checking for some Win32 platform... no
checking for native Win32... no
checking if compiling for Mac OS X... no
checking whether to turn on debugging... no
checking whether to turn on profiling... no
checking for json-c... yes
checking for library containing floorf... -lm
checking for library containing powf... none required
checking for library containing expf... none required
checking whether C compiler accepts -fsanitize=undefined... yes
checking whether the linker accepts -fsanitize=undefined... yes
checking whether NLS is requested... yes
checking for intltool-update... /usr/bin/intltool-update
checking for intltool-merge... /usr/bin/intltool-merge
checking for intltool-extract... /usr/bin/intltool-extract
checking for xgettext... /usr/bin/xgettext
checking for msgmerge... /usr/bin/msgmerge
checking for msgfmt... /usr/bin/msgfmt
checking for gmsgfmt... /usr/bin/msgfmt
checking for perl... /usr/bin/perl
checking for perl >= 5.8.1... 5.26.1
checking for XML::Parser... ok
checking locale.h usability... yes
checking locale.h presence... yes
checking for locale.h... yes
checking for LC_MESSAGES... yes
checking for CFPreferencesCopyAppValue... no
checking for CFLocaleCopyCurrent... no
checking libintl.h usability... yes
checking libintl.h presence... yes
checking for libintl.h... yes
checking for ngettext in libc... yes
checking for dgettext in libc... yes
checking for bind_textdomain_codeset... yes
checking for msgfmt... (cached) /usr/bin/msgfmt
checking for dcgettext... yes
checking if msgfmt accepts -c... yes
checking for gmsgfmt... (cached) /usr/bin/msgfmt
checking for xgettext... (cached) /usr/bin/xgettext
checking for library containing dgettext... none required
checking for gobject-introspection... yes
checking for gobject-2.0... yes
checking that generated files are newer than configure... done
configure: creating ./config.status
config.status: creating doc/Makefile
config.status: creating gegl/libmypaint-gegl.pc
config.status: creating gegl/Makefile
config.status: creating libmypaint.pc
config.status: creating m4macros/Makefile
config.status: creating Makefile
config.status: creating po/Makefile.in
config.status: creating tests/Makefile
config.status: creating tests/gegl/Makefile
config.status: creating config.h
config.status: config.h is unchanged
config.status: executing depfiles commands
config.status: executing libtool commands
config.status: executing default-1 commands
config.status: executing po/stamp-it commands
Configured libmypaint 1.3.0
**make**
make all-recursive
make[1]: Entering directory '/root/git/libmypaint'
Making all in .
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
Hi I have Slackware 14.2 stable and current… in both there isn’t glib2-devel and in the stable the compilation works well.
Do I have to see for a particular file??
My guess is the proper inclusion of the proper glib.h is required. Looks like it is, but there is a glib2 difference between your Slackware stable and current.
One thing I would try on your Slackware current is building glib2 version 2.46.2 (the version in Slackware stable x86_64) into /usr/local
Pkg-config should then prefer it according the pkgconfig paths as set and compile it into libmypaint as it does in stable. I know 2.46.2 is from 2016 but so is libmypaint 1.3.0. Don’t know about compiling libmypaint from the master branch. It might lie beyond the bleeding edge presented by gimp.
Hi folks,
I SOLVED !!
The culprit was json-c as I explained into this thread and thanks to bathory
Now I have a working Gimp-git. Actually it is on e VM but when I’ll upgrade my distro to a current version which has glib2-2.54 I hope to have it on the production PC.
Cheers
Gabriele