Need gegl to build gimp, and can't build gegl - Printable Version +- Gimp-Forum.net (https://www.gimp-forum.net) +-- Forum: GIMP (https://www.gimp-forum.net/Forum-GIMP) +--- Forum: Installation and usage (https://www.gimp-forum.net/Forum-Installation-and-usage) +---- Forum: Linux and other Unixen (https://www.gimp-forum.net/Forum-Linux-and-other-Unixen) +---- Thread: Need gegl to build gimp, and can't build gegl (/Thread-Need-gegl-to-build-gimp-and-can-t-build-gegl) |
Need gegl to build gimp, and can't build gegl - shachter - 09-08-2020 Esteemed Colleagues: Readers of this forum know that I recently built gimp 2.10 from source, and it was a nightmare, but I did it. Now -- apparently in search of suffering, for there can be no other reason for trying to do this -- I am trying to build gimp 2.10 from source again, for another operating system that shares the same hardware (my laptop is a multiboot machine, I have several operating systems installed on it). Because gimp 2.10 has many dependencies that are newer than the versions available thru my package manager -- or, in some cases, not available at all thru my package manager -- I have had to build those dependencies from source. Only one unbuilt dependency now remains on this operating system, gegl. I cannot build gegl on this operating system. That, of course, is surely not true, what I mean to say is that I have not figured out how to build gegl on this operating system. I turn to you, esteemed colleagues, for help once again. This is the error message that I get, time and time again, no matter what -f arguments I have given to the compiler (and I have tried many): operations/external/exr-load.so.p/exr-load.cpp.o: In function import_exr(_GeglBuffer*, char const*, int)': /usr/local/src/gegl-0.4.26/build/../operations/external/exr-load.cpp:506: undefined reference to Imf_2_1::Chromaticities::Chromaticities(Imath_2_2::Vec2<float> const&, Imath_2_2::Vec2<float> const&, Imath_2_2::Vec2<float> const&, Imath_2_2::Vec2<float> const&)' This is at operation [481/750] of the ninja build. Most likely this is a missing constructor that should have been created from a template, but which the c++ compiler is failing to create. But templates have been around for a long time (31 years, in fact -- I remember when Bjarne Stroustrup announced them in the Journal of Object-Oriented Programming; but I digress) and I am using gcc 9.2.0. Surely by gcc 9.2.0 the g++ compiler has managed to get templates right. So what is going on? I suppose I could build clang from scratch and then try to build gegl with clang++, but I am certain that this is not a compiler problem. And yet, this same version of gegl has been successfully built before. So why can I not build it on this operating system? What do I have to do? As always, I thank you in advance for any and all replies. jay at m5 dot chicago dot il dot us RE: Need gegl to build gimp, and can't build gegl - tmanni - 09-08-2020 Does it compile if you disable OpenEXR ? (add -Dopenexr=disabled to the meson setup) RE: Need gegl to build gimp, and can't build gegl - Ofnuts - 09-08-2020 There are two ways to rebuild from source: use a release tarball, or pull from Git. When you pull from git, unless you check out specific release tags, you get whatever was last committed by developers and sometimes they are missing things.... tarballs are usually safer. If you build from Git, then hang out on the IRC channels or the developer mailing lists, some one will likely explain the oopsie. The fact that the whole code is being refactored into C++ doesn't help with the stability of random Git pulls. RE: Need gegl to build gimp, and can't build gegl - shachter - 09-10-2020 I cannot blame git; I used a release tarball, for both gegl and gimp itself. I successfully compiled gegl after passing "-Dopenexr=disabled" to meson. Thank you for the advice; meson is new to me, and, moreover, that particular option is, as far as I can determine, not documented anywhere in the gegl release tarball. When I then tried to compile gimp, I got the exact same compiler error when attempting to compile its openexr wrapper, so I had to reconfigure gimp with "--disable-openexr" (that one was, in fact, documented). Then I was able to build gimp 2.10. The newly-compiled program then crashed and coredumped when it attempted to load the "pagecurl" plugin, a phenomenon with which I was familiar, and to which I brought this forum's attention a couple of weeks ago, in a different thread. Following the advice I received there, I removed execute permissions from the pagecurl plugin. Now I have a working gimp 2.10 which cannot curl its pages, but I am saved from the unhappiness which that would otherwise bring me, by not knowing what it means to curl pages. If I ever learn what that means, and decide that I want to curl some pages, I can always do so with Gimp 2.8, which remains installed on my system. Once again I thank my esteemed colleagues for your swift and useful answers. -- jfs |