Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Can't build the deprecations branch on windows. #115

Open
ghost opened this issue Oct 4, 2022 · 6 comments
Open

Can't build the deprecations branch on windows. #115

ghost opened this issue Oct 4, 2022 · 6 comments

Comments

@ghost
Copy link

ghost commented Oct 4, 2022

I get this error about glib config.h or something like that. I understand the deprecations branch is supposed to compile against GIMP3 which I have through msys2.

[1/13] Compiling C object src/resynthesizer/resynthesizer.exe.p/plugin.c.obj
FAILED: src/resynthesizer/resynthesizer.exe.p/plugin.c.obj
"cc" "-Isrc\resynthesizer\resynthesizer.exe.p" "-Isrc\resynthesizer" "-I..\src\resynthesizer" "-Ilib" "-I..\lib" "-ID:/msys64/mingw64/bin/../include/gtk-3.0" "-ID:/msys64/mingw64/bin/../include/pango-1.0" "-ID:/msys64/mingw64/bin/../include/glib-2.0" "-ID:/msys64/mingw64/bin/../lib/glib-2.0/include" "-ID:/msys64/mingw64/bin/../include" "-ID:/msys64/mingw64/bin/../include/fribidi" "-ID:/msys64/mingw64/bin/../include/freetype2" "-ID:/msys64/mingw64/bin/../include/libpng16" "-ID:/msys64/mingw64/bin/../include/harfbuzz" "-ID:/msys64/mingw64/bin/../include/cairo" "-ID:/msys64/mingw64/bin/../include/lzo" "-ID:/msys64/mingw64/bin/../include/pixman-1" "-ID:/msys64/mingw64/bin/../include/gimp-3.0" "-ID:/msys64/mingw64/bin/../include/gdk-pixbuf-2.0" "-ID:/msys64/mingw64/bin/../include/gegl-0.4" "-ID:/msys64/mingw64/bin/../include/gio-win32-2.0" "-ID:/msys64/mingw64/bin/../include/json-glib-1.0" "-ID:/msys64/mingw64/bin/../include/babl-0.1" "-ID:/msys64/mingw64/bin/../include/atk-1.0" "-fdiagnostics-color=always" "-D_FILE_OFFSET_BITS=64" "-Wall" "-Winvalid-pch" "-O2" "-g" "-DG_LOG_DOMAIN="Resynthesizer"" "-DGIMP_COMPILATION" -MD -MQ src/resynthesizer/resynthesizer.exe.p/plugin.c.obj -MF "src\resynthesizer\resynthesizer.exe.p\plugin.c.obj.d" -o src/resynthesizer/resynthesizer.exe.p/plugin.c.obj "-c" ../src/resynthesizer/plugin.c
../src/resynthesizer/plugin.c:2:10: fatal error: ../../config.h: No such file or directory
2 | #include "../../config.h" // GNU buildtools local configuration
| ^~~~~~~~~~~~~~~~
compilation terminated.
[2/13] Compiling C object src/resynthesizer/resynthesizer.exe.p/resynthesizer.c.obj
FAILED: src/resynthesizer/resynthesizer.exe.p/resynthesizer.c.obj
"cc" "-Isrc\resynthesizer\resynthesizer.exe.p" "-Isrc\resynthesizer" "-I..\src\resynthesizer" "-Ilib" "-I..\lib" "-ID:/msys64/mingw64/bin/../include/gtk-3.0" "-ID:/msys64/mingw64/bin/../include/pango-1.0" "-ID:/msys64/mingw64/bin/../include/glib-2.0" "-ID:/msys64/mingw64/bin/../lib/glib-2.0/include" "-ID:/msys64/mingw64/bin/../include" "-ID:/msys64/mingw64/bin/../include/fribidi" "-ID:/msys64/mingw64/bin/../include/freetype2" "-ID:/msys64/mingw64/bin/../include/libpng16" "-ID:/msys64/mingw64/bin/../include/harfbuzz" "-ID:/msys64/mingw64/bin/../include/cairo" "-ID:/msys64/mingw64/bin/../include/lzo" "-ID:/msys64/mingw64/bin/../include/pixman-1" "-ID:/msys64/mingw64/bin/../include/gimp-3.0" "-ID:/msys64/mingw64/bin/../include/gdk-pixbuf-2.0" "-ID:/msys64/mingw64/bin/../include/gegl-0.4" "-ID:/msys64/mingw64/bin/../include/gio-win32-2.0" "-ID:/msys64/mingw64/bin/../include/json-glib-1.0" "-ID:/msys64/mingw64/bin/../include/babl-0.1" "-ID:/msys64/mingw64/bin/../include/atk-1.0" "-fdiagnostics-color=always" "-D_FILE_OFFSET_BITS=64" "-Wall" "-Winvalid-pch" "-O2" "-g" "-DG_LOG_DOMAIN="Resynthesizer"" "-DGIMP_COMPILATION" -MD -MQ src/resynthesizer/resynthesizer.exe.p/resynthesizer.c.obj -MF "src\resynthesizer\resynthesizer.exe.p\resynthesizer.c.obj.d" -o src/resynthesizer/resynthesizer.exe.p/resynthesizer.c.obj "-c" ../src/resynthesizer/resynthesizer.c
../src/resynthesizer/resynthesizer.c:75:10: fatal error: ../../config.h: No such file or directory
75 | #include "../../config.h" // GNU buildtools local configuration
| ^~~~~~~~~~~~~~~~
compilation terminated.
[3/13] Compiling C object lib/liblibresynthesizer-3.0.dll.p/progress.c.obj
FAILED: lib/liblibresynthesizer-3.0.dll.p/progress.c.obj
"cc" "-Ilib\liblibresynthesizer-3.0.dll.p" "-Ilib" "-I..\lib" "-ID:/msys64/mingw64/bin/../include/glib-2.0" "-ID:/msys64/mingw64/bin/../lib/glib-2.0/include" "-ID:/msys64/mingw64/bin/../include" "-ID:/msys64/mingw64/bin/../include/gtk-3.0" "-ID:/msys64/mingw64/bin/../include/pango-1.0" "-ID:/msys64/mingw64/bin/../include/fribidi" "-ID:/msys64/mingw64/bin/../include/freetype2" "-ID:/msys64/mingw64/bin/../include/libpng16" "-ID:/msys64/mingw64/bin/../include/harfbuzz" "-ID:/msys64/mingw64/bin/../include/cairo" "-ID:/msys64/mingw64/bin/../include/lzo" "-ID:/msys64/mingw64/bin/../include/pixman-1" "-ID:/msys64/mingw64/bin/../include/gimp-3.0" "-ID:/msys64/mingw64/bin/../include/gdk-pixbuf-2.0" "-ID:/msys64/mingw64/bin/../include/gegl-0.4" "-ID:/msys64/mingw64/bin/../include/gio-win32-2.0" "-ID:/msys64/mingw64/bin/../include/json-glib-1.0" "-ID:/msys64/mingw64/bin/../include/babl-0.1" "-ID:/msys64/mingw64/bin/../include/atk-1.0" "-fdiagnostics-color=always" "-D_FILE_OFFSET_BITS=64" "-Wall" "-Winvalid-pch" "-O2" "-g" "-DG_LOG_DOMAIN="LibResynthesizer"" -MD -MQ lib/liblibresynthesizer-3.0.dll.p/progress.c.obj -MF "lib\liblibresynthesizer-3.0.dll.p\progress.c.obj.d" -o lib/liblibresynthesizer-3.0.dll.p/progress.c.obj "-c" ../lib/progress.c
../lib/progress.c:8:12: fatal error: ../config.h: No such file or directory
8 | #include "../config.h" // GNU buildtools local configuration
| ^~~~~~~~~~~~~
compilation terminated.
[4/13] Compiling C object lib/liblibresynthesizer-3.0.dll.p/engine.c.obj
FAILED: lib/liblibresynthesizer-3.0.dll.p/engine.c.obj
"cc" "-Ilib\liblibresynthesizer-3.0.dll.p" "-Ilib" "-I..\lib" "-ID:/msys64/mingw64/bin/../include/glib-2.0" "-ID:/msys64/mingw64/bin/../lib/glib-2.0/include" "-ID:/msys64/mingw64/bin/../include" "-ID:/msys64/mingw64/bin/../include/gtk-3.0" "-ID:/msys64/mingw64/bin/../include/pango-1.0" "-ID:/msys64/mingw64/bin/../include/fribidi" "-ID:/msys64/mingw64/bin/../include/freetype2" "-ID:/msys64/mingw64/bin/../include/libpng16" "-ID:/msys64/mingw64/bin/../include/harfbuzz" "-ID:/msys64/mingw64/bin/../include/cairo" "-ID:/msys64/mingw64/bin/../include/lzo" "-ID:/msys64/mingw64/bin/../include/pixman-1" "-ID:/msys64/mingw64/bin/../include/gimp-3.0" "-ID:/msys64/mingw64/bin/../include/gdk-pixbuf-2.0" "-ID:/msys64/mingw64/bin/../include/gegl-0.4" "-ID:/msys64/mingw64/bin/../include/gio-win32-2.0" "-ID:/msys64/mingw64/bin/../include/json-glib-1.0" "-ID:/msys64/mingw64/bin/../include/babl-0.1" "-ID:/msys64/mingw64/bin/../include/atk-1.0" "-fdiagnostics-color=always" "-D_FILE_OFFSET_BITS=64" "-Wall" "-Winvalid-pch" "-O2" "-g" "-DG_LOG_DOMAIN="LibResynthesizer"" -MD -MQ lib/liblibresynthesizer-3.0.dll.p/engine.c.obj -MF "lib\liblibresynthesizer-3.0.dll.p\engine.c.obj.d" -o lib/liblibresynthesizer-3.0.dll.p/engine.c.obj "-c" ../lib/engine.c
../lib/engine.c:79:12: fatal error: ../config.h: No such file or directory
79 | #include "../config.h" // GNU buildtools local configuration
| ^~~~~~~~~~~~~
compilation terminated.
[6/13] Compiling C object lib/liblibresynthesizer-3.0.dll.p/imageSynth.c.obj
In file included from ../lib/imageSynth.c:56:
../lib/adaptSimple.h:183:1: warning: 'initBufferAndAntiAdapt' defined but not used [-Wunused-function]
183 | initBufferAndAntiAdapt(
| ^~~~~~~~~~~~~~~~~~~~~~
[10/13] Compiling C object src/resynthesizer/resynthesizer.exe.p/drawable.c.obj
../src/resynthesizer/drawable.c: In function 'bpp':
../src/resynthesizer/drawable.c:96:51: warning: implicit declaration of function 'gimp_drawable_bpp'; did you mean 'gimp_drawable_type'? [-Wimplicit-function-declaration]
96 | gint bpp(GimpDrawable *d) { return gimp_drawable_bpp (d); }
| ^~~~~~~~~~~~~~~~~
| gimp_drawable_type
../src/resynthesizer/drawable.c: In function 'width':
../src/resynthesizer/drawable.c:97:51: warning: implicit declaration of function 'gimp_drawable_width'; did you mean 'gimp_drawable_fill'? [-Wimplicit-function-declaration]
97 | gint width (GimpDrawable *d) { return gimp_drawable_width (d); }
| ^~~~~~~~~~~~~~~~~~~
| gimp_drawable_fill
../src/resynthesizer/drawable.c: In function 'height':
../src/resynthesizer/drawable.c:98:51: warning: implicit declaration of function 'gimp_drawable_height'; did you mean 'gimp_drawable_get_height'? [-Wimplicit-function-declaration]
98 | gint height (GimpDrawable *d) { return gimp_drawable_height(d); }
| ^~~~~~~~~~~~~~~~~~~~
| gimp_drawable_get_height
../src/resynthesizer/drawable.c: In function 'offsets':
../src/resynthesizer/drawable.c:136:3: warning: implicit declaration of function 'gimp_drawable_offsets'; did you mean
gimp_drawable_offset'? [-Wimplicit-function-declaration]
136 | gimp_drawable_offsets( d, x, y );
| ^~~~~~~~~~~~~~~~~~~~~
| gimp_drawable_offset
../src/resynthesizer/drawable.c: In function 'get_selection':
../src/resynthesizer/drawable.c:145:55: warning: passing argument 1 of 'gimp_item_get_image' from incompatible pointer type [-Wincompatible-pointer-types]
145 | return gimp_image_get_selection(gimp_item_get_image(d));
| ^
| |
| GimpDrawable * {aka struct _GimpDrawable *}
In file included from D:/msys64/mingw64/include/gimp-3.0/libgimp/gimp_pdb_headers.h:62,
from D:/msys64/mingw64/include/gimp-3.0/libgimp/gimp.h:68,
from ../src/resynthesizer/drawable.c:4:
D:/msys64/mingw64/include/gimp-3.0/libgimp/gimpitem_pdb.h:43:66: note: expected 'GimpItem *' {aka 'struct _GimpItem *'} but argument is of type 'GimpDrawable *' {aka 'struct _GimpDrawable '}
43 | GimpImage
gimp_item_get_image (GimpItem *item);
| ~~~~~~~~~~~~~~~~~~~~^~~~
../src/resynthesizer/drawable.c:145:10: warning: returning 'GimpSelection *' {aka 'struct _GimpSelection *'} from a function with incompatible return type 'GimpDrawable *' {aka 'struct _GimpDrawable *'} [-Wincompatible-pointer-types]
145 | return gimp_image_get_selection(gimp_item_get_image(d));
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ninja: build stopped: subcommand failed.

What exactly is going on?

@cmyk-student
Copy link

There's a couple of issues.

  • You can fix the missing "config.h" by grabbing it from the GIMP source code and placing it in the main directory for Resynthesizer
  • /src/resynthesizer/drawable.c using some now outdated GIMP APIs that need to be fixed. Mostly it's just adding "get" to the function call. gimp_drawable_bpp () becomes gimp_drawable_get_bpp ()

That's enough to make the code compile. It won't yet work though, because GIMP also changed their API to potentially take in an array of layers rather than a single layer. The Resynthesizer code has to be updated for that, otherwise it crashes. I've got a few of the plug-ins ported over and working - I'll try to submit a pull request once I think it's ready to be looked at.

@bootchk
Copy link
Owner

bootchk commented Jan 4, 2023

@cmyk-student :

I've got a few of the plug-ins ported over and working

Do you mean you are porting the Python plugins that are part of resynthesizer to the Gimp v3 plugin API which uses GObject introspection? That is fine. Only that I didn't want to do it, but instead wrote GimpFuv3, which supports (more or less) v2 Gimp plugins in Gimp v3. And that is why I say the deprecations branch was working (more or less, at one time), without porting the plugins to the v3 API. I don't mean to say that one way is better than another, only that I am interested.

The "heal selection" plugin is the most popular, and thus highest priority.

Sometimes I wonder whether image synthesis using machine learning will make Resynthesizer obsolete.
And whether everyone will be using image apps in the cloud (on websites) instead of using installed Gimp.

@bootchk
Copy link
Owner

bootchk commented Jan 4, 2023

@jointri : sorry for not responding. The deprecations branch is really just proof of concept, not supported by me until Gimp 3 ships, and even then maybe not. I haven't built it in a long time. cmyk-student is probably correct, Gimp master (v3) API is still changing and I did not keep up with the changes.

I have actually been working on other areas of Gimp (ScriptFu mainly) instead.

@cmyk-student
Copy link

@bootchk Hello! I had to make changes to both the Python scripts and the C code for the Resynthesizer plug-in. Some of the APIs have changed and don't compile. Also the Resynthesizer plug-in crashes because GIMP now expects them to support multi-layer selections - so the arguments aren't passed in correctly.

I wanted to port all the Python plug-ins over to GObject Introspection, clean up my work and try to match the current GIMP code formatting style, then reach out to you to see if you wanted me to submit a merge request. If you want to see the in-progress work, I've started posting the relevant files here: https://gitlab.gnome.org/cmyk.student/resynthesizer-v3-port
So far I've got Heal Selection and Heal Transparency working, and Resynth Sharpen is ported (but I don't think it's producing the correct results, so I likely made a mistake somewhere)

Even if it become obsolete in the future, it's a really useful tool right now. :)
(I've also seen a lot of people interested in getting it working in Gimp 2.99 again, which I think is nice)

@JohnVV
Copy link

JohnVV commented Jan 5, 2023 via email

@salvecom333
Copy link

the deves over at OpenSUSE ( linux ) have ported the plugin to the current gimp 2.10 https://download.opensuse.org/repositories/graphics/15.4/x86_64/gimp-plugin-resynthesizer-2.0.3~git.20220422-lp154.8.1.x86_64.rpm a rpm file is basically a fancy zip file , on windows you can use any zip program to open it

On Wed, Jan 4, 2023 at 4:59 PM cmyk-student @.> wrote: @bootchk https://github.com/bootchk Hello! I had to make changes to both the Python scripts and the C code for the Resynthesizer plug-in. Some of the APIs have changed and don't compile. Also the Resynthesizer plug-in crashes because GIMP now expects them to support multi-layer selections - so the arguments aren't passed in correctly. I wanted to port all the Python plug-ins over to GObject Introspection, clean up my work and try to match the current GIMP code formatting style, then reach out to you to see if you wanted me to submit a merge request. If you want to see the in-progress work, I've started posting the relevant files here: https://gitlab.gnome.org/cmyk.student/resynthesizer-v3-port So far I've got Heal Selection and Heal Transparency working, and Resynth Sharpen is ported (but I don't think it's producing the correct results, so I likely made a mistake somewhere) Even if it become obsolete in the future, it's a really useful tool right now. :) (I've also seen a lot of people interested in getting it working in Gimp 2.99 again, which I think is nice) — Reply to this email directly, view it on GitHub <#115 (comment)>, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAQIWR4MV7VUKUOADAVUGTTWQXXC3ANCNFSM6AAAAAAQ4NU75A . You are receiving this because you are subscribed to this thread.Message ID: @.>
-- " I don't pitch Linux OS's to my friends, I let MS Windows 10 do that for me!!"

how do you install it, in windows?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants