1. 06 Feb, 2020 2 commits
    • Jehan's avatar
      app: now also process the build revision when checking for updates. · 7b5fff78
      Jehan authored
      The idea is to be able to advertize a new revision of the same version
      of GIMP. For instance, this would apply when we release a
      `gimp-2-10-14-setup-3.exe` Windows installer (then we are at revision
      3, provided we started at revision 0).
      The revision number is obviously only relevant to a given platform and
      version. Also the concept of build ID allows to differentiate various
      builds for a same platform, in particular to not look at revisions of
      third-party builds. The build ID can be any string. Maybe we could just
      use reverse DNS build id (such as "org.gimp.GIMP_official") to identify
      the official GIMP build. So in the end, we only compare revisions for an
      identical (version, platform, build-id) tuple.
    • Jehan's avatar
      app, configure: new --disable-check-update option at configuration. · 31566559
      Jehan authored
      Allows to disable the automatic update check at startup. I believe some
      packagers will want such options, in particular on Linux distribution
      (where they control their own release schedule and won't want GIMP to
      pop new version warning up because they have been slow to update their
      Note that it is still possible to query version checks manually in the
      about dialog, but the automatic check/popup is gone with this option.
  2. 17 Jan, 2020 1 commit
  3. 05 Jan, 2020 1 commit
  4. 13 Dec, 2019 1 commit
    • Jehan's avatar
      app: check last GIMP release from gimp.org/gimp_versions.json. · 506a0476
      Jehan authored
      GIMP will now process the remote gimp_versions json file to look if one
      is using the last version of GIMP. This initial code doesn't act up yet
      on this information. This will come in further commits.
      Here are the characteristics:
      - Since this requires internet access, a new checkbox is available in
        the Preferences dialog, allowing to disable version checks. Note that
        it is enabled by default as it is an important security feature, but
        it has to be deactivatable.
      - The remote access is done as an async operation because we don't want
        it to block the startup in any way (for whatever reason). Also it
        doesn't output errors if it fails to not be a bother (you don't
        technically need internet access for an image program).
      - We don't check at every startup. At each successful check, we save a
        timestamp to prevent too frequent useless checks (I set it the timer
        to a week or more for now).
  5. 11 Dec, 2019 1 commit
    • Jehan's avatar
      app, configure: add configure option for a build id and revision. · 73c09ebb
      Jehan authored
      The point will be for a packager to create a unique build ID to identify
      the build or provenance. I also add a revision number so that we can
      identify 2 builds from the same version/commit, same maker and platform.
      It will also be used later to check for new versions (see "phone home"
      feature #2584).
      Separating autotools and meson commits for easy backport.
  6. 13 Nov, 2019 2 commits
  7. 12 Nov, 2019 2 commits
    • Jehan's avatar
      Issue #2543: gimp doesn't open on debian stretch (libmypaint crash). · 5da252ca
      Jehan authored
      Known bug in libmypaint dependency. It has been fixed in libmypaint
      1.4.0, which we cannot hard require unfortunately (Debian testing still
      at 1.3.0).
      Still let's make add a warning so that packagers are aware of the issue
      and update when possible.
    • Jehan's avatar
      configure: improve libheif detection and output. · 41285813
      Jehan authored
      Replace the "Heif >= 1.4.0" line in the summary output by a comment in
      the "Heif" line explaining this is about profile support.
      Also add a >= 1.6.0 test and output a warning for Windows and macOS (cf.
      bug #4185).
  8. 07 Nov, 2019 1 commit
  9. 29 Oct, 2019 1 commit
  10. 26 Oct, 2019 2 commits
  11. 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.
  12. 09 Sep, 2019 1 commit
  13. 22 Aug, 2019 1 commit
  14. 20 Aug, 2019 1 commit
  15. 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!
  16. 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
    • 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.
    • 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.
  17. 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.
    • Jehan's avatar
      configure: fix the Python checks. · bfda31a6
      Jehan authored
      1/ First I realize we were still using AM_PATH_PYTHON() and not
      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.
  18. 02 Aug, 2019 1 commit
  19. 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
  20. 28 Jul, 2019 5 commits
    • Ell's avatar
      Ell authored
      Make sure configure fails when introspection is not installed,
      since we compile it unconditionally for now.
    • 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.
    • 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
      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
    • 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`.
    • 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.
  21. 25 Jul, 2019 2 commits
  22. 23 Jul, 2019 1 commit
  23. 28 Jun, 2019 1 commit
  24. 25 Jun, 2019 1 commit
  25. 12 Jun, 2019 1 commit
  26. 02 Jun, 2019 1 commit
  27. 25 May, 2019 1 commit
  28. 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.