Commit Graph

438 Commits

Author SHA1 Message Date
Øyvind Kolås c2666ae5b8 configure, app: depend on babl-0.1.57 2018-09-05 00:20:59 +02:00
Ell 667efc221d app: add Windows backend to GimpBacktrace
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.
2018-09-03 15:57:53 -04:00
Ell 80bf686c94 app: add GimpBacktrace
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.
2018-09-02 02:54:43 -04:00
Debarshi Ray 3bf1c6a571 configure: Simplify libjpeg detection
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
it.

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.

https://gitlab.gnome.org/GNOME/gimp/merge_requests/28
2018-08-30 13:22:44 +02:00
Jehan b8d4ab4808 configure: reorder the dependency version list.
Current order was just completely random, which makes it hard to manage.
Let's order alphabetically.
2018-08-20 17:06:16 +02:00
Jehan 17e37ddf24 INSTALL: add appstream-glib in the dependency list. 2018-08-19 18:11:56 +02:00
Jehan 11cee13f62 configure: more explicit error message for gtk-encode-symbolic-svg.
Make it obvious this is a tool searched in PATH (and not for instance a
lib) from the error message.
2018-08-19 18:07:09 +02:00
Ell f1ff239d68 configure.ac: require GEGL >= 0.4.9 2018-08-19 03:38:53 -04:00
Øyvind Kolås 6ad5d74565 configure/app: depend on GEGL 0.4.8 2018-08-18 15:23:22 +02:00
Jehan babf74a3db icons: generate PNG symbolic icons with `gtk-encode-symbolic-svg`.
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.
2018-08-18 12:51:59 +02:00
Jehan 624edf9017 Issue #1809: update DLL directory for 32-bit plug-in run from 64-bit...
... 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 91c139f4d0)
2018-08-15 14:34:19 +02:00
Øyvind Kolås 3d464e03b4 configure/app: depend on babl 0.1.56 2018-08-14 18:47:29 +02:00
Jehan fb57133d55 INSTALL, configure: replace Jasper with OpenJPEG.
Just realizing we haven't updated the INSTALL file with the dependency
change.
2018-08-13 12:32:12 +02:00
Jehan ddeff31476 app, configure: add a --enable-win32-debug-console build option.
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 1a28878943)
2018-08-12 22:54:25 +02:00
Jehan 8e453330c9 configure: GLIB_COMPILE_RESOURCES is wrong when cross-compiling.
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 d1d9eb17e5)
2018-08-12 22:52:45 +02:00
Ell d4ef45bdbd configure.ac: require GEGL >= 0.4.7 2018-08-09 19:02:57 -04:00
Jehan 8e6afe10a6 configure: making xgettext recommended version a requirement.
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 feb1bf2797.
2018-08-01 18:54:18 +02:00
Øyvind Kolås cb132d2a97 configure/app: depend on GEGL 0.4.6 2018-07-23 04:45:43 +02:00
Øyvind Kolås 5fdcc0dfbb configure/app: depend on babl 0.1.54 2018-07-23 04:44:58 +02:00
Ell 450e61f853 configure.ac: require GEGL >= 0.4.5 2018-07-05 09:51:40 -04:00
Michael Natterer a62fdce55a configure.ac: require GEGL >= 0.4.4 2018-07-04 12:44:48 +02:00
Jehan b70424b20a app: add base classes for the extension manager.
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).
2018-07-02 21:16:14 +02:00
Michael Natterer 7aa4273806 configure.ac: require babl >= 0.1.52 2018-07-02 20:03:56 +02:00
Jehan 8da2646372 configure: replace --enable-bundled-mypaint-brushes with...
... --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.
2018-06-26 23:22:02 +02:00
Adrian Perez de Castro d34f46b3c4 plug-ins: port help-browser to WebKitGTK+ 2
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.
2018-06-25 23:54:56 +00:00
Jehan 276d9b60b3 configure, tools: actually use GIMP_PKGCONFIG_VERSION and...
... GIMP_TOOL_VERSION rather than hardcoding versions.
We may still have issues with "gtk+-3.0", but let's let this one slip
for now.
2018-06-15 17:22:38 +02:00
Ell 5139a46602 configure.ac: require babl >= 0.1.51 2018-06-05 04:39:32 -04:00
Ell d5cab08215 configure.ac: require GEGL >= 0.4.3 2018-06-05 04:04:47 -04:00
Michael Natterer ccf1c2812d configure.ac: update the logic that doesn't add FOO_DISABLE_DEPRECATED
for future glib and pango versions.
2018-05-31 20:41:03 +02:00
Jehan 38091a5796 configure: fix "webkit_required_version".
In commit dbd9797a13, it had been renamed to webkitgtk_required_version
in some places, but not all!
2018-05-31 15:36:15 +02:00
Ell ebd0a14e97 configure.ac: don't generate_po_makefile([po-python])
It's skipped.  See previous commits.
2018-05-31 02:01:17 -04:00
Ell 8cc2aeaee4 configure.ac, Makefile.am: skip po-python/
... to fix distcheck, since we don't build pygimp ATM.
2018-05-31 00:29:36 -04:00
Ell 7c96d4569b configure.ac: disable devel-docs and pygimp makefile generation
Commit b2df13749c disabled building
devel-docs and pygimp in the makefiles, but their makefiles are
still generated by configure, which breaks distcheck, because the
necessary Makefile.in files are missing from the tarball.

Comment out the skipped files in configure.ac too.
2018-05-30 15:08:46 -04:00
Jehan da3ae4cf75 configure: remove Symbolic-Inverted's Makefile from configure! 2018-05-30 12:36:32 +02:00
Jehan 6ebff7b3c5 configure, desktop: update the bug report URL.
Also make so that the metadata URL is taken from the one of the package
set with configure.
2018-05-25 15:05:47 +02:00
Jehan 9591bc88f8 data: remove obsolete brushes.
These were mostly kept for scripts which needed to keep working. Since
we don't ensure compatibility anymore, let's just get rid of old
deprecated data.
2018-05-20 21:06:30 +02:00
Jehan 0edde674b7 themes: remove Dark, Gray and Light themes.
These are not working anymore since we now need CSS themes.
Also we'll prefer to use theme variants anyway.
I also remove a remnant of the old "Small" theme, which was not
installed anymore anyway, and is not useful anymore.
2018-05-20 21:06:30 +02:00
Michael Natterer 6ab3a55919 configure.ac: don't define GDK/GTK_MULTIHEAD_SAFE, they are gone 2018-05-20 21:06:30 +02:00
Michael Natterer b9b39fc32a configure.ac: use the new GTK_CHECK_BACKEND() macro
so GTK+ target detection works again.
2018-05-20 21:06:29 +02:00
Michael Natterer dbd9797a13 Switch to version 2.99/3.0 in a lot of places and depend on GTK+ 3.22
and lots of other newer libraries.
2018-05-20 21:06:26 +02:00
Michael Natterer be7f9b433a configure.ac: release GIMP 2.10.2 2018-05-20 20:42:19 +02:00
Jehan 7a27d81eba configure, desktop: fix desktop-file-validate test.
Double copy-paste error! Must have been sleep-coding.
2018-05-20 18:10:00 +02:00
Michael Natterer 9ebf36f873 configure.ac: require babl >= 0.1.50 2018-05-20 15:24:33 +02:00
Michael Natterer 5a6b00ea86 Revert "depend on babl-0.1.50"
This reverts commit 0aec661cda
which accidentially deleted the start of configure.ac
2018-05-20 15:23:23 +02:00
Øyvind Kolås 0aec661cda depend on babl-0.1.50 2018-05-20 10:56:36 +02:00
Michael Natterer d35fecceb4 configure.ac: remove the option to disable script-fu
Forgot to do this for 2.10.0.
2018-05-18 13:06:24 +02:00
Jehan 6c9ba16e11 configure, libgimpwidgets: customizable default color profile directory
We have this problem with flatpak that the common directory
("/usr/share/color/icc") is not visible from inside the sandbox. With
proper permissions, it is actually accessible, yet the host's /usr is
mounted at /run/host/usr/.
Since sandbox systems are getting more common, we need to make this path
customizable. I am therefore adding a --with-icc-directory configure
option to change the default color profile folder at build time.
See: https://github.com/flathub/org.gimp.GIMP/issues/15
2018-05-18 09:08:51 +02:00
Øyvind Kolås 580576e702 configure/app: depend on GEGL 0.4.2 2018-05-16 23:26:44 +02:00
Øyvind Kolås 55429df954 configure/app: depend on babl-0.1.48 2018-05-15 21:50:45 +02:00
Jehan 20f20dd7b1 configure, app: encourage packagers to set custom bug tracker.
We get a lot of packaging bugs for third-party builds in our tracker,
especially since our debug tool now opens directly our bug tracker.
It would be preferred if third-party packagers were to make a first
filtering of bugs and only reported once they knew for sure that the bug
is in core code, and not in packaging.

Our configure script will now propose a --with-bug-report-url option
allowing to set a different web address. This address will be the one
opening in the debug dialog.
2018-05-14 05:44:06 +02:00