1. 12 Sep, 2019 1 commit
    • Jehan's avatar
      configure: fix LUA test. · 2791328e
      Jehan authored
      Bug discovered by Simon. See #3921.
      The logics of the whole test for binding interpreters may still change
      (or even disappear), but for now, at least make it work as expected.
      2791328e
  2. 09 Sep, 2019 1 commit
  3. 22 Aug, 2019 1 commit
  4. 20 Aug, 2019 1 commit
  5. 16 Aug, 2019 1 commit
    • Jehan's avatar
      plug-ins: fix and install the Lua goat-exercise. · 0abdbeba
      Jehan authored
      So procedure:new_return_values() just seems broken with LGI. It doesn't
      even look like it reaches the C code.
      Anyway we can also just reconstruct the GimpValueArray, which works
      fine. We now have official support for Lua plug-ins!
      0abdbeba
  6. 09 Aug, 2019 3 commits
    • Jehan's avatar
      configure: add a check for gjs (JavaScript interpreter with GI binding). · f9f144b4
      Jehan authored
      As discussed on IRC, I am not sure if really this is needed, since
      theoretically we now have support for a whole bunch of languages without
      doing anything (languages supported by GObject Introspection) and we are
      not going to check for all of them.
      Yet since now we install one JS plug-in, let's still do a quick check.
      We'll see later if we want to change how we handle supported script
      languages.
      f9f144b4
    • Jehan's avatar
      m4macros, configure: add and use AM_PYTHON_CHECK_PYGOBJECT() macro. · b1662443
      Jehan authored
      Rather than looking for pygobject-3.0 with pkg-config, run an actual
      test in python, loading the 'gi' module.
      I also added a version parameter making it possible to even check for a
      required version of PyGObject, though it is currently unused (as I have
      no idea if we have a minimum requirement for our plug-ins to work well).
      
      This is an improvement of commit 8e938e09 as I realized that we don't
      need any development files, therefore I don't think that searching with
      pkg-config was the right idea in our case.
      b1662443
    • Jehan's avatar
      configure: also look for pygobject-3.0 runtime dependency. · 8e938e09
      Jehan authored
      If we decide to look for Python dependencies, we should also look for
      pygobject as it provides the GI binding to Python.
      I'm still not sure if we should look for these runtime dependencies at
      configure time. But for the time being, if we continue doing so, let's
      do it right.
      8e938e09
  7. 06 Aug, 2019 2 commits
    • Jehan's avatar
      plug-ins: move goat-exercise to a goat-exercises/ directory. · fc334892
      Jehan authored
      We will fill this up with more examples of plug-ins in other languages.
      Also we will improve a bit the examples to redirect people to source
      code so that they understand what these plug-ins are.
      fc334892
    • Jehan's avatar
      configure: fix the Python checks. · bfda31a6
      Jehan authored
      1/ First I realize we were still using AM_PATH_PYTHON() and not
         AM_PATH_PYTHON3().
      2/ We don't need to check anymore for pygtk, pycairo, nor do we need
         Python headers. Everything is now taken care of by GObject
         Introspection and we have nothing else to build GIMP-side.
      3/ Change --enable-python into --with-python. We don't actually build
         anything now. There is no Python support to enable or disable
         anymore. We simply install Python plug-ins or not. The 3 values are
         "yes" (default, configure breaks if a Python 3 interpreter is not
         found), "no" (Python plug-ins are not installed, not recommended) and
         "force" (install Python plug-ins anyway even if an interpreter is not
         found; this can be useful especially for cross-compilation since
         Python is not useful at build-time anymore).
      
         Note that --with-python=force, if an interpreter is not found, the
         file `pygimp.interp` won't be installed. This is not a problem at all
         if the interpreter can be found at runtime the standard way.
         Otherwise packagers should add themselves a pygimp.interp file with
         the known interpreter path.
      bfda31a6
  8. 02 Aug, 2019 1 commit
  9. 30 Jul, 2019 1 commit
    • Jehan's avatar
      plug-ins: port python-console to new GObject-introspected API. · 62d87f15
      Jehan authored
      I may have missed things. That is the problem of non-compiled script
      languages. There is also a known warning:
      > DeprecationWarning: Gtk.Dialog.set_alternative_button_order_from_array is deprecated
      I'll see later about this one.
      
      Push-time note: calling various functions is actually broken right now
      in the console since the late API changes (it was working fine yesterday
      evening when I tested the same python-console code). Pushing anyway for
      now.
      62d87f15
  10. 28 Jul, 2019 5 commits
    • Ell's avatar
      configure.ac: s/GOBJECT_INTROSPECTION_CHECK/GOBJECT_INTROSPECTION_REQUIRE/ · 41d3b478
      Ell authored
      Make sure configure fails when introspection is not installed,
      since we compile it unconditionally for now.
      41d3b478
    • Jehan's avatar
      po-python: install again localization for Python plug-ins. · 0f0cf4df
      Jehan authored
      This used to be deactivated. Let's install them again.
      Also activate localization in the palette-to-gradient plug-in.
      0f0cf4df
    • Jehan's avatar
      plug-ins: port Python plug-in palette-to-gradient to introspected API. · 65fb7536
      Jehan authored
      Localization still doesn't work, but this is normal (po-python is not
      installed). I will later make the proper tests for this.
      
      Other than this, it is a pretty simple port. It lost all particularities
      and facilities of pygimp, but the fact that it now works similarly to
      the C API is quite nice too.
      It still uses the legacy API for plug-ins though and will have to be
      ported further when the new API will be stable.
      
      Also I still haven't figured out why we need to return the number of
      returned values. With the proper annotations, an array length parameter
      disappears in introspected Python (because it is useless as Python lists
      know their length). But it would seem that this annotation doesn't work
      the same for returned values, which is a bit sad as it creates ugly
      redundancy.
      
      It can be noted that I an going to move all Python plug-ins from
      plug-ins/pygimp/plug-ins/ to plug-ins/python/. The whole pygimp/
      subdirectory will actually be deleted eventually (I keep it around for
      now as reference) as Python plug-in should not need to be considered
      particularly from now on. They can just be considered as generic
      executables.
      65fb7536
    • Jehan's avatar
      configure: some Python test cleanup/improvements. · 521ff83c
      Jehan authored
      In particular, when header check fails, Python option is disabled.
      
      Also let's use pkg-config to search for the Python include directory.
      The reason is that include/python{version} is not always
      true. On my system in particular, python3.7 was in `include/python3.7m`.
      521ff83c
    • Akkana Peck's avatar
      Re-enable Python in the build, but requiring Python >3.6.0 since... · 872aa50c
      Akkana Peck authored
      ... we'll need that for gobject introspection
      Edit by Jehan: don't actually re-enable pygimp, only do bring back the
      Python 3 configure search.
      872aa50c
  11. 25 Jul, 2019 2 commits
  12. 23 Jul, 2019 1 commit
  13. 28 Jun, 2019 1 commit
  14. 25 Jun, 2019 1 commit
  15. 12 Jun, 2019 1 commit
  16. 02 Jun, 2019 1 commit
  17. 25 May, 2019 1 commit
  18. 20 May, 2019 1 commit
    • Ell's avatar
      configure.ac: improve compiler version string escaping · 04f9281b
      Ell authored
      In configure.ac, improve backslash escaping in the compiler
      version string.  Backslashes are currently not properly escaped in
      our Windows builds, leading to spurious (and, in particular, non-
      UTF8) characters in the compiler version string.
      04f9281b
  19. 08 May, 2019 1 commit
  20. 12 Apr, 2019 1 commit
    • Jehan's avatar
      app: new "gex" format (GIMP Extension). · 406279e4
      Jehan authored
      File extension (.gex) may still change if anything better is proposed.
      This format is currently just a compressed archive containing the
      extension data (plug-in, brushes or whatever) and the metadata file.
      
      For now, opening such file will simply install it as a new extension,
      keeping all file permissions and structure. Of course in the future, it
      will have to trigger a confirmation dialog.
      
      Currently the compression used is zip, which is just a first draft. This
      is not a decisive choice as well. We could use some tarball compressed
      in whatever other compression algorithm. I use libarchive as a new
      dependency to support unarchiving as it seems to be a common library
      (and since it is already used by AppStream-glib anyway, this doesn't add
      any actual dependency, just make it direct).
      406279e4
  21. 01 Apr, 2019 1 commit
  22. 01 Mar, 2019 2 commits
  23. 11 Feb, 2019 1 commit
    • Michael Natterer's avatar
      app, plug-ins: start consolidating brush and pattern loading/saving code · a4e77e57
      Michael Natterer authored
      We currently have brush and pattern I/O code in both the core and
      plug-ins. This commit starts removing plug-in code in favor of having
      one copy of the code in the core, much like XCF loading and saving is
      implemented.
      
      Add app/file-data/ module with file procedure registering code, for
      now just with an implementation of file-gbr-load.
      
      Remove the file-gbr-load code from the file-gbr plug-in.
      a4e77e57
  24. 05 Feb, 2019 2 commits
    • Jehan's avatar
      configure.ac: remove old outdated code. · 60d407ac
      Jehan authored
      There was still code for a warning, now irrelevant as it was about
      non-recommended GTK+2 version for Windows. Anyway this is now removed.
      60d407ac
    • Jehan's avatar
      app, libgimpbase: --enable-relocatable-bundle replaces --enable-binreloc · 4d84c1d7
      Jehan authored
      Older --enable-binreloc configure option had basically the same purpose
      as the newer --enable-relocatable-bundle, though the old binreloc was
      only used for gimpenv.c code.
      As a consequence, commit 10ce7021 was still not working fine since
      gimp_installation_directory_file() also need binreloc enabled (to be
      actually relocatable).
      
      Let's get rid of this whole mess, by implying we want binreloc code to
      be used when --enable-relocatable-bundle is ON. We don't need the
      m4macros anymore, since AM_BINRELOC was basically just checking that
      `/proc/self/maps` was present. But anyway being present at compile time
      does not mean it will be at runtime (nor the opposite). So this test is
      not that useful. The binreloc code will anyway fallback gracefully to
      the non-binreloc code (i.e. trying to use build-time install paths) if
      the procfs is lacking at runtime.
      4d84c1d7
  25. 30 Jan, 2019 1 commit
  26. 23 Jan, 2019 1 commit
    • Jehan's avatar
      desktop: check that no remaining TODOs are in appdata file. · c0fed5af
      Jehan authored
      Before each release, we prepare now a <release> tag. Unfortunately some
      details are not always well known for sure in advance, in particular the
      date of release (plans are made to be broken!), and also the release
      news URL (since the date is in the URL). So I usually leave them as TODO
      and until now, I never forgot to update them just before release. But
      there is always the risk of forgetting.
      Now the test for the appdata files will also look for remaining "TODO"
      in the file if and only if the micro version is even (which means it's a
      release). So we won't ever forget to update the file as long as we run
      `make check` on the last commit (which we always do obviously).
      c0fed5af
  27. 07 Jan, 2019 1 commit
  28. 02 Jan, 2019 1 commit
  29. 01 Jan, 2019 1 commit
  30. 15 Nov, 2018 1 commit