1. 04 Sep, 2018 1 commit
  2. 03 Sep, 2018 1 commit
    • Ell's avatar
      app: add Windows backend to GimpBacktrace · 667efc22
      Ell authored
      The Windows backend produces full, multithreaded backtraces.  When
      DrMingw is available, it also provides full symbol and (where
      available) source-location information.  Otherwise, it provides
      symbol information for most of our libraries, but not for the GIMP
      binary itself.
  3. 02 Sep, 2018 1 commit
    • Ell's avatar
      app: add GimpBacktrace · 80bf686c
      Ell authored
      GimpBacktrace provides an interface for creating and traversing
      multi-threaded backtraces, as well as querying symbol information.
      While we already have some backtrace functionality, it relies on
      external tools for the most part, and as such is rather expensive,
      and is only meant for producing opaque backtraces.  GimpBacktrace,
      on the other hand, is meant to be relatively cheap (we're going to
      use it for profiling,) and allow inspection of the backtrace data.
      In the future, it might make sense to replace some, or all, of the
      other backtrace functions with GimpBacktrace.
      GimpBacktrace currently only supports Linux.  By default, it uses
      dladdr() to query symbol information, which is somewhat limited (in
      particular, it doesn't work for static functions.)  When libunwind
      is installed, GimpBacktrace uses it to get more complete symbol
      information.  libunwind is currently an optional dependency, but it
      might make sense to promote it to a mandatory, or opt-out,
      dependency, as it's lightweight and widely available.
      On other platforms, the GimpBacktrace interface can still be used,
      but it always returns NULL backtraces.
  4. 30 Aug, 2018 1 commit
    • Debarshi Ray's avatar
      configure: Simplify libjpeg detection · 3bf1c6a5
      Debarshi Ray authored
      The jpeg_save_markers API has existed since 27th March 1998! So it's
      safe to assume that everybody has it, and there's no need to check for
      libjpeg-turbo has had a libjpeg.pc since 2016, and the IJG's software
      has it too. Dropping support for old libraries is a small price to pay
      for the benefits of a simpler build.
  5. 20 Aug, 2018 1 commit
  6. 19 Aug, 2018 3 commits
  7. 18 Aug, 2018 2 commits
    • Øyvind "pippin" Kolås's avatar
    • Jehan's avatar
      icons: generate PNG symbolic icons with `gtk-encode-symbolic-svg`. · babf74a3
      Jehan authored
      We don't need to commit PNG symbolic icons as `gtk-encode-symbolic-svg`
      is perfectly able to generate them from the SVG.
      Moreover its man says that it makes "specially prepared png files",
      whatever that means. So I don't think we should just rename our
      self-exported PNG files as '*-symbolic.symbolic.png'. It is better to
      generate them with this tool.
      Note that I am now splitting icon-list.mk into 2 files. This is only a
      temporary stepback, as I am actually going to merge the 2 icon themes
      into one very soon, and hopefully we should be able to generate the list
      to ensure we don't miss an icon.
      Anyway the icon lists had already diverged earlier, even though it was
      only all still in a single file.
  8. 15 Aug, 2018 1 commit
    • Jehan's avatar
      Issue #1809: update DLL directory for 32-bit plug-in run from 64-bit... · 624edf90
      Jehan authored
      ... Windows installation of GIMP.
      Our default installer installs 32-bit version of the various DLLs in
      32/bin/ (under the installation prefix). Currently this additional
      folder is simply added in the PATH, so it works most of the time.
      Unfortunately the PATH is searched last for DLLs, and in particular, it
      is searched after system directories. So it means that if any misbehaved
      application is installing DLLs in system dirs (and in particular
      incompatible/older versions of the same DLLs a GIMP plug-in uses), it
      breaks the 32-bit plug-in.
      SetDllDirectoryW() bypasses this order and the set folder is searched in
      between the binary directory and the system dirs. We were already
      setting this for our main bin/ directory, which was good for 64-bit
      plug-ins, but this was not protecting 32-bit plug-ins. Now our code to
      run plug-ins check the bitness of the executable before running it, and
      updates the DLL folder accordingly.
      The alternative 32-bit folder can be overridden by the configure option
      --with-win32-32bit-dll-folder (default: 32/bin/). This option can only
      be set when building for 64-bit Windows obviously.
      Alternatively we could have put copies of 32-bit DLLs in a subfolder
      with each 32-bit plug-in, but this is at best a terrible workaround, as
      we would duplicate DLLs for every such case. And this would not have
      protected third-party plug-ins which wish to use some of our DLLs.
      Last alternative is to use AddDllDirectory(), but it works since Windows
      7 with a given update only. And our current official support is any
      Windows since Windows 7. So we don't want to use this right now (also
      I'm not sure it would actually be much better than current
      implementation, and it seems to have a bit more limitations than
      SetDllDirectoryW(), though I have not tested).
      (cherry picked from commit 91c139f4)
  9. 14 Aug, 2018 1 commit
  10. 13 Aug, 2018 1 commit
  11. 12 Aug, 2018 2 commits
    • Jehan's avatar
      app, configure: add a --enable-win32-debug-console build option. · ddeff314
      Jehan authored
      Debugging stable versions under Windows is a pain because we don't have
      access to the standard outputs. The debug console is indeed only built
      on unstable builds. Let's make the debug console a separate build option
      to allow building stable versions for debug (obviously the default
      behavior when not configuring, is same as before, i.e. stable without
      console and unstable with console).
      (cherry picked from commit 1a288789)
    • Jehan's avatar
      configure: GLIB_COMPILE_RESOURCES is wrong when cross-compiling. · 8e453330
      Jehan authored
      AM_PATH_GLIB_2_0 m4 macro actually computes this value using
      $PKG_CONFIG. Yet $PKG_CONFIG variable is the pkg-config tool looking for
      target libraries (not host), hence it would return the executable
      `glib-compile-resources` built for the target.
      Also using the same variable name invalidates our test: our own
      AC_PATH_PROG was never run as the variable was already set. And no
      environment variable could override this test anymore either. This is
      why I rename the test variable to HOST_GLIB_COMPILE_RESOURCES.
      (cherry picked from commit d1d9eb17)
  12. 09 Aug, 2018 1 commit
  13. 01 Aug, 2018 1 commit
    • Jehan's avatar
      configure: making xgettext recommended version a requirement. · 8e6afe10
      Jehan authored
      Back when I implemented this as a recommendation, gettext 0.19 was not
      even out yet. Nowadays it is in Debian Testing (Debian Stable even!), so
      it makes no sense to continue just "recommend" it, especially as it was
      breaking script-fu localization.
      See old commit feb1bf27.
  14. 23 Jul, 2018 2 commits
  15. 05 Jul, 2018 1 commit
  16. 04 Jul, 2018 1 commit
  17. 02 Jul, 2018 2 commits
    • Jehan's avatar
      app: add base classes for the extension manager. · b70424b2
      Jehan authored
      Right now it only loads AppStream data, which is completely useless, yet
      is a base of a managed extension system. Having proper metadata is what
      will allow to actually know what is installed.
      This is only the first draft.
      Note that I am not adding the extension path into GimpCoreConfig on
      purpose, since the point is not to have people manage their extension
      directories manually anymore.
      The extensions will be loaded from the build-time system path or the
      config directory, and that's all.
      What will probably be stored in the config though will be the remote
      repositories URLs (allowing third-party extension repositories).
    • Michael Natterer's avatar
      configure.ac: require babl >= 0.1.52 · 7aa42738
      Michael Natterer authored
  18. 26 Jun, 2018 1 commit
    • Jehan's avatar
      configure: replace --enable-bundled-mypaint-brushes with... · 8da26463
      Jehan authored
      ... --enable-relocatable-bundle option.
      This will allow to use this option for more than MyPaint brushes. For
      macOS and Windows, we default to "yes" and "no" for other OS, though it
      is always possible to set an explicit value.
  19. 25 Jun, 2018 1 commit
    • Adrián Pérez de Castro's avatar
      plug-ins: port help-browser to WebKitGTK+ 2 · d34f46b3
      Adrián Pérez de Castro authored
      This is the minimum set of changes needed to update help-browser to the
      WebKitGTK+ 2 API. Fortunately, the plug-in did not use parts of the old
      API which would have been difficult to port (DOM bindings, for example),
      and therefore the code translates quite well to the new API. The main
      differences are:
      - WebKitWebFrame is gone, most of its methods are now in WebKitWebView.
      - Searching for text inside Web pages has to be done now through the
        WebKitFindController object.
      - Checking whether there is selected text that can be copied now goes
        through WebKitEditorState.
      - The WebKitWebView::title-changed signal is no more, the callback is
        connected to notify::title instead.
      - The load-started and load-finished pair of signals are now merged
        into WebKitWebView::load-changed.
      - There are no methods to zoom a WebKitWebView in and out, instead
        the zoom-level property is set. The updated code ensures that the
        zoom lovel stays inside the [0.1, 10.0] range.
      - Page visit history now goes through WebKitBackForwardList.
      The updated plug-in was successfully built in tested with WebKitGTK+
      version 2.20.3.
  20. 15 Jun, 2018 1 commit
  21. 05 Jun, 2018 2 commits
  22. 31 May, 2018 4 commits
  23. 30 May, 2018 2 commits
  24. 25 May, 2018 1 commit
  25. 20 May, 2018 5 commits