Commit graph

591 commits

Author SHA1 Message Date
Øyvind Kolås
f0077265b4 configure, meson, app: depend on gegl-0.4.18 2019-10-27 01:37:24 +02:00
Ell
6b87e2f90c configure.ac: add AC_MSG_RESULT() for color-profile directory check 2019-10-26 22:22:25 +03:00
Jehan
2791328e41 configure: fix LUA test.
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.
2019-09-12 18:02:06 +02:00
Félix Piédallu
0792cb65f4 [devel-docs] move version file to deduplicate code 2019-09-09 18:15:13 +00:00
Øyvind Kolås
fe3e945154 configure,app: depend on babl-0.1.72 2019-08-22 23:15:43 +02:00
Tobias Ellinghaus
583d965773
Fix typo in configure warning re: luajit 2019-08-20 14:02:43 +02:00
Jehan
0abdbebaad plug-ins: fix and install the Lua goat-exercise.
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!
2019-08-16 19:46:32 +02:00
Jehan
f9f144b4bc configure: add a check for gjs (JavaScript interpreter with GI binding).
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.
2019-08-09 18:40:14 +02:00
Jehan
b1662443af m4macros, configure: add and use AM_PYTHON_CHECK_PYGOBJECT() macro.
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 8e938e0960 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.
2019-08-09 18:18:21 +02:00
Jehan
8e938e0960 configure: also look for pygobject-3.0 runtime dependency.
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.
2019-08-09 16:43:34 +02:00
Jehan
fc33489223 plug-ins: move goat-exercise to a goat-exercises/ directory.
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.
2019-08-07 00:00:20 +02:00
Jehan
bfda31a67e configure: fix the Python checks.
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.
2019-08-06 18:35:53 +02:00
Øyvind Kolås
05d47f197a build: require babl-0.1.70 2019-08-02 18:44:15 +02:00
Jehan
62d87f15d9 plug-ins: port python-console to new GObject-introspected API.
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.
2019-07-30 12:57:59 +02:00
Ell
41d3b478a2 configure.ac: s/GOBJECT_INTROSPECTION_CHECK/GOBJECT_INTROSPECTION_REQUIRE/
Make sure configure fails when introspection is not installed,
since we compile it unconditionally for now.
2019-07-29 02:02:04 +03:00
Jehan
0f0cf4df87 po-python: install again localization for Python plug-ins.
This used to be deactivated. Let's install them again.
Also activate localization in the palette-to-gradient plug-in.
2019-07-28 21:06:36 +02:00
Jehan
65fb7536e1 plug-ins: port Python plug-in palette-to-gradient to introspected API.
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.
2019-07-28 18:43:00 +02:00
Jehan
521ff83cba configure: some Python test cleanup/improvements.
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`.
2019-07-28 18:43:00 +02:00
Akkana Peck
872aa50c56 Re-enable Python in the build, but requiring Python >3.6.0 since...
... 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.
2019-07-28 18:43:00 +02:00
Øyvind Kolås
23ade7b80b build, app: require babl-0.1.68 or newer 2019-07-25 15:10:22 +02:00
Jehan
0c75cd7fc4 configure, libgimpbase, m4macros: first steps into API introspection.
So far only libgimpbase is introspected. It just works though (I could
test that I could just run a plug-in which could access libgimpbase API
without any problem).
The g-ir-scanner call outputs a lot of warning but I won't care for
these right now.

The `introspection.m4` is taken straight from GEGL tree.
2019-07-25 10:51:03 +02:00
Michael Natterer
b9a4fdd1e0 configure.ac: build the devel-docs again 2019-07-23 19:33:48 +02:00
Michael Natterer
928b85d25c app: add gegl:bayer-matrix and gegl:linear-sinusoid to the menus
in Filters -> Render -> Pattern. Also depend on GEGL from git.
2019-06-28 15:48:47 +02:00
Michael Natterer
62f010df90 configure.ac, plug-ins: make file-heif build with older libheif again
Lower requirement to 1.3.2 and check for 1.4.0 separately. Put color
profile code in #ifdef HAVE_LIBHEIF_1_4_0.
2019-06-25 13:20:07 +02:00
Øyvind Kolås
b3dcb5aaac build: depend on babl-0.1.66 2019-06-12 21:32:47 +02:00
Michael Natterer
df0c659f8b configure.ac: also check for gtk-update-icon-cache-3.0
not only gtk-update-icon-cache, the exacutable name seems to depend on
how GTK is built and packaged.
2019-06-02 15:57:42 +02:00
Øyvind Kolås
a3f2d734a7 depend on babl-0.1.64 2019-05-25 19:51:42 +02:00
Ell
04f9281bdd configure.ac: improve compiler version string escaping
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.
2019-05-20 03:09:20 -04:00
Ell
29d575c033 configure.ac: require GEGL >= 0.4.16 2019-05-08 04:22:38 -04:00
Jehan
406279e4ef app: new "gex" format (GIMP Extension).
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).
2019-04-12 18:49:18 +02:00
Jehan
22e14e0b9b Issue #3164: HEIC doesnt have color profile.
Since this requires libheif 1.4.0, released end of February 2019, this
commit should not go into the gimp-2-10 branch right now.
2019-04-01 15:29:58 +02:00
Øyvind Kolås
dde7108584 build,app: require GEGL-0.4.14 2019-03-01 14:42:26 +01:00
Øyvind Kolås
3e2d9e6b9e build,app: require babl-0.1.62 2019-03-01 14:42:23 +01:00
Michael Natterer
a4e77e57f6 app, plug-ins: start consolidating brush and pattern loading/saving code
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.
2019-02-11 12:51:31 +01:00
Jehan
60d407ac21 configure.ac: remove old outdated code.
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.
2019-02-05 15:33:02 +01:00
Jehan
4d84c1d7ee app, libgimpbase: --enable-relocatable-bundle replaces --enable-binreloc
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 10ce702188 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.
2019-02-05 14:50:31 +01:00
Michael Natterer
2c81d9cbcf Issue #1683 - possibly undefined macro: AM_PATH_GTK_3_0
Stop using AM_PATH_GTK_3_0(), it's deprecated, use PKG_CHECK_MODULES()
instead.
2019-01-30 21:47:16 +01:00
Jehan
c0fed5afd6 desktop: check that no remaining TODOs are in appdata file.
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).
2019-01-23 23:48:02 +01:00
Michael Natterer
19320235f1 Issue #1004 - file-pdf-load crashes in lcms when opening PDF with...
...color profile

The issue is fixed in poppler 0.50, but since this is git master, we
now depend on poppler >= 0.69 and poppler-data >= 0.4.9
2019-01-07 03:34:41 +01:00
Alexandre Prokoudine
79bc2dc1ef file-dds: add original source code of the DDS plug-in
This is the code from the 'gimp-2.9' branch of the plug-in,
integrated into GIMP's build system.
2019-01-02 18:33:46 +01:00
Michael Natterer
b24cc6e7fa configure.ac: require babl >= 0.1.61 2019-01-01 19:21:52 +01:00
Ell
3821ce4bcd configure.ac: require babl >= 0.1.60 2018-11-15 12:55:46 -05:00
Ell
43e3939d4a configure.ac: require GEGL >= 0.4.13 2018-11-14 10:52:02 -05:00
Ell
c0b107531e configure.ac: escape backslash chars in compiler version string
When constructing CC_VERSION, escape backslash characters in the
compiler version string, so that they don't get interpreted as
escape sequences by the compiler.  This is especially important on
Windows, where the version string of MinGW may contain backslash
characters as part of paths.
2018-11-11 05:49:09 -05:00
Massimo Valentini
df4e35a846 Issue #2454: recent libwmf uses pkg-config. 2018-11-08 11:39:30 +01:00
Ell
a75c57f2cd configure.ac: add devel-docs/performance-logs/Makefile
Skipped for now on master, together with the rest of devel-docs/.

Should have been part of fa9161e4f2.
2018-11-08 03:51:11 -05:00
Øyvind Kolås
a39b4abfbc configure/app: depend on GEGL 0.4.12 2018-10-23 14:36:26 +02:00
Michael Natterer
0f88830a00 configure.ac: the list of required versions is now alphabetically ordered 2018-10-18 18:31:43 +02:00
Øyvind Kolås
d885ef34f5 configure/app: depend on GEGL 0.4.10 2018-10-16 18:54:37 +02:00
Øyvind Kolås
ca6e22f0f8 app/configure: depend on babl-0.1.58 2018-10-05 16:28:30 +02:00
Ell
0245775346 configure.ac: fix libbacktrace test
... added in last commit.
2018-09-22 22:46:35 -04:00
Ell
7cdd1ebeef app: add source location information to the Linux GimpBacktrace backend
When libbacktrace is available, use it to retrieve source location
information in the Linux GimpBacktrace backend.
2018-09-22 22:39:08 -04:00
Jehan
9560a653c5 configure: check presence of "gegl:matting-levin" with gegl --exists.
This is a runtime dependency. If absent, we simply won't have access to
the alternative Matting Levin engine in the foreground selection tool.

If we don't add a test in configure, this may be easily forgotten. I
created the `gegl --exists` feature specifically for this kind of
checks, so let's check operation existence.
2018-09-17 16:40:00 +02:00
Ø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
Jehan
660926eb3d desktop: add a desktop file test with desktop-file-validate utils. 2018-05-13 15:57:28 +02:00
Jehan
8d7f13be18 Bug 795855 - File chooser dialogs do not show folders or files for...
... drive roots (e.g. C:\, D:\, ...))

This is a regression of glib 2.56 (not applying to 2.54 since it is new
code). It has been fixed recently in what will be 2.56.2 but is not
released yet, so we can't just bump the requirement.

Since it is a pretty bad bug though, let's add a test specifically for
these versions in the configure script so that nobody will package these
versions of glib. We can remove this test when we will bump the glib
requirement.
2018-05-12 23:12:38 +02:00
Michael Natterer
ba149f1759 plug-ins: add HEIF loading/saving plug-in written by Dirk Farin
Thanks a lot to Dirk for contributing this, added him to AUTHORS.

Import the code from https://github.com/strukturag/heif-gimp-plugin.git
as of today. Merged the files into a single-file plug-in. Changed
the code a lot to match our coding style, but only formatting,
no logic changes.

Still uses deprecated GimpDrawable API and no GIO, but I wanted to do
actual code changes separately from the initial import. Also disabled
metadata support because updating that to GimpMetadata was too much
for the initial import.
2018-05-04 20:49:56 +02:00
Ting-Wei Lan
077036273c libgimpbase: Find thread ID on FreeBSD with thr_self
https://bugzilla.gnome.org/show_bug.cgi?id=795510
2018-04-28 17:09:34 +02:00
Michael Natterer
ee47a848eb configure.ac: no need to override gimp_version any longer 2018-04-28 02:18:44 +02:00
Jehan
2451435323 configure: argh! Forgot to AC_SUBST() the GEGL major-minor version. 2018-04-28 01:45:45 +02:00
Jehan
f6a8d93190 configure, gimp.pc: do no hardcode the major.minor version of GEGL. 2018-04-28 01:30:19 +02:00
Michael Natterer
8be9b12e78 configure.ac: require GEGL >= 0.4.1 2018-04-27 17:22:54 +02:00
Michael Natterer
fa79130c35 configure.ac: post-release version bump to 2.10.1 2018-04-27 14:31:11 +02:00
Michael Natterer
5e662c37d7 configure.ac: release GIMP 2.10.0 \o/ 2018-04-27 13:38:31 +02:00
Øyvind Kolås
f1db670f19 configure,app: depend on GEGL-0.4.0 2018-04-26 14:59:12 +02:00
Jehan
87f9e65408 data: move the Pepper brush to a "Fun" category.
This brush is not to be considered seriously and is mostly a "troll". If
we want to keep it, let's make a proper category.
2018-04-22 19:51:44 +02:00
Ell
76eedf2198 configure.ac: require a C++14 compiler
This didn't take long :)  Require a C++14 compiler, for polymorphic
lambdas, which are used in the next commit.
2018-04-19 05:36:31 -04:00
luz.paz
147c09f19e Bug 795161 - Misc. typo fixes in source comments and doxygen
Found via `codespell`
Follow-up to  commit 7fdb963e01
2018-04-18 21:06:57 +02:00
Michael Natterer
bccaaeb56c configure.ac: post-release version bump to 2.10.0-RC2-git 2018-04-17 22:24:35 +02:00
Michael Natterer
6582692ec6 configure.ac: release 2.10.0-RC2 2018-04-17 21:27:05 +02:00
Michael Natterer
cb84e0ab56 configure.ac: reqire GEGL >= 0.3.34 2018-04-17 00:08:48 +02:00
Øyvind Kolås
5e98dade14 configure/app: depend on GEGL 0.3.32 2018-04-14 12:38:43 +02:00
Øyvind Kolås
087d2462bc configure/app: depend on babl 0.1.46 2018-04-10 23:29:41 +02:00
Elle Stone
54ca0a7f68 Add Gray theme back to GIMP
that was removed by commit 7aecc90e10
2018-04-10 00:16:26 +02:00
Ville Pätsi
7aecc90e10 Remove Lighter, Darker, and Gray themes 2018-04-05 23:59:22 +03:00
Ell
700cc33bec configure.ac: require a C++11 compiler
The following commits use C++11 lambdas.
2018-04-04 17:49:46 -04:00
Michael Natterer
a3071d2620 configure.ac: require babl >= 0.1.45 and GEGL => 0.3.31
and set gimp_version to "2.10.0-RC1-git" so we can distinguish it
from the RC1 tarball.
2018-03-31 18:39:53 +02:00
Michael Natterer
29d7cee100 configure.ac: add new option --enable-bundled-mypaint-brushes
because a simple platform dependency in gimpcoreconfig.c doesn't do
the trick (there can be both manual builds and bundled builds on
windows and macos). Use an AC_DEFINE() instead.

Also, make sure the system gimprc and its manpage are generated with
the correct values.
2018-03-30 14:41:13 +02:00
Michael Natterer
452b1bd558 Stop leaking properties of the distcheck machine into the tarball
Some gimprc properties' default values depend on the machine where
"make dist" in run. We had an ugly hack in place to force
(num-processors 1) in the installed system gimprc and its manpage, but
were still leaking "tile-cache-size" and "mypaint-brush-path".

The files are generated by the hidden options --dump-gimprc-system
and --dump-gimprc-manpage which exist only for this purpose.

In gimpconfig-dump.c, special case the three properties in
dump_gimprc_system() and dump_gimprc_manpage() to output constant
default values for "num-processors" and "tile-cache-size" and
output @mypaint_brushes_dir@ in "mypaint-brush-path" which can
be replaced at configure time.

Also introduce etc/gimprc.in so @mypaint_brushes_dir@ can actually be
substituted for the installed system gimprc.
2018-03-30 13:19:22 +02:00
Jehan
479bcaafdd configure, docs: set correct "mypaint-brush-path" value in man page.
This was hard-coded to what I guess was a personal prefix (commit
368c7c0511), which is obviously wrong. This has to be constructed at
compilation and the man must mirror whatever is the actual installation
path of mypaint-brushes package.
2018-03-29 17:26:23 +02:00
Michael Natterer
7c1ea0345e configure.ac: fix check for freetype2 2018-03-29 12:25:27 +02:00
Jehan
527ad94a7e Bug 794772 - detect freetype2 using pkg-config.
I hesitated keeping both the pkg-config and freetype-config (which is
mostly a wrapper to pkg-config nowadays apparently) as fallback, but
anyway I can see in their repositories that they have a pkg-config file
since 2003. Really I don't think it makes sense to hold onto such old
and deprecated dependency configuration systems.
2018-03-28 19:48:16 +02:00
Michael Natterer
e5e14b3898 configure.ac: bump version to 2.10.0-RC1 2018-03-27 01:07:28 +02:00
Øyvind Kolås
a0c55a6b96 depend on GEGL 0.3.30 2018-03-23 19:05:54 +01:00
Ell
5893d2dc73 tools, app-tools: move gimp-debug-tool from tools/ to app-tools/
Move gimp-debug-tools.c from tools/ to a new app-tools/ subdir,
which should contain external tools needed by app/, and which is
built *after* app/ (unlinke tools/).  This allows gimp-debug-tool
to depend on libapp and libappwidgets, instead of on actual source
files from app/.  Building sources from app/ in another subdir
screws with the distclean rules, and breaks distcheck.
2018-03-10 17:56:56 -05:00
Jehan
65ba879c65 configure: make clearer the test for native GEGL executable.
If running for instance in a cross-compilation, I need to make clearer
the fact we are looking for a native GEGL and also that we are looking
for the executable (used during the build), not the library. This is a
different test as the one for the library with PKG_CHECK_MODULES (which
looks for the target platform's library).
2018-03-09 17:46:02 +01:00
Ell
cdb541f81b app: add gimp_spawn_set_cloexec()
... which prevents child processes from inheriting a given pipe,
under *nix and Windows.
2018-03-06 16:31:17 -05:00
Ell
0f2df18dde app: add gimp_spawn_async()
gimp_spawn_async() is similar to, but more limited than,
g_spawn_sync().  Unlike the latter, gimp_spawn_async() uses
vfork(), instead of fork(), when possible.

On Linux, a process that uses large amounts of memory (as GIMP may)
can hang during a fork() if overcommitting is enabled, and there's
not enough memroy.  Using vfork() avoids that, since it doesn't
duplicate the parent's address space.
2018-03-05 01:55:40 -05:00
Ell
0f2c966c5f libgimpbase: in gimp_stack_trace_print(), enable ptrace under Yama
On Linux, when /proc/sys/kernel/yama/ptrace_scope is 1, a process
may only ptrace its descendants by default, which prevents the GDB
process spawned by gimp_stack_trace_print() from attaching to, and
producing a backtrace for, the calling process.

Use prctl() with PR_SET_PTRACER, when available, in the parent
process, to allow the child process to ptrace it.
2018-03-05 01:55:40 -05:00
Mukund Sivaraman
58a0a65160 file-jp2-load: Switch from Jasper to OpenJPEG library 2018-03-04 18:21:22 +01:00
Jehan
796d3cb38b configure: bump fontconfig requirement for all platforms.
In a previous commit, I bumped it for Windows only, where major bugs had
been fixed in recent fontconfig. Yet as Mitch notes, Debian testing has
Fontconfig 2.12.6, so we can simply use the same requirement on all
platforms. No need to make our configuration script over-complicated
with per-platform requirements here.
2018-02-25 23:13:36 +01:00
Jehan
12f9353410 configure: oups, forgot to change an autoconfig variable.
Cf. previous commit.
2018-02-25 03:50:50 +01:00
Jehan
36625e087b Bug 782676: require fontconfig 2.12.4 on Windows.
Fontconfig has a new slowness issue, this time apparently because of
locked cache files, preventing a successful cache update.
See: https://bugs.freedesktop.org/show_bug.cgi?id=99360
Furthermore the slowness apparently happens at every GIMP startup, and
also even when GIMP closes according to various reports. So let's bump
Fontconfig version (for Win32 builds only).

Also let's not make it a recommendation anymore, but a requirement. That
makes quite a few Win32-specific fontconfig bugs which have been fixed,
and most are quite serious so this should not be considered as optional
anymore, I guess.
2018-02-25 03:28:40 +01:00
Øyvind Kolås
12b579da96 configure.ac: require babl >= 0.1.44 2018-02-18 12:43:37 +01:00
Jehan
4fd1c6c97c app: add support for Linux backtrace() API.
It is nice because when available (Linux only?), it is a lot faster than
using a dedicated debugger such as GDB or LLDB, and also it allows to
always have a backtrace, even when no debuggers are installed.
Unfortunately the output is a lot less detailed, with no file paths, no
line numbers (even when debug symbols are there), no local values
printout, etc. It's pretty bare, with function names and the stack
levels. This is why it is not given priority, and GDB and LLDB are still
preferred when available.
2018-01-29 01:48:30 +01:00
Ell
7dfe81f13d configure.ac: require GEGL >= 0.3.29 2018-01-28 16:37:33 -05:00
Ell
12148e04c4 configure.ac: require babl >= 0.1.42 and GEGL >= 0.3.28 2018-01-23 11:08:24 -05:00
Øyvind Kolås
7d5188cae6 configure: depend on babl 0.1.40 or newer 2018-01-17 16:06:10 +01:00
Jehan
458e313000 Rename gimp.appdata.xml.in to org.gimp.GIMP.appdata.xml.in.in.
I completely forgot to rename the appstream file according to the new
ID. While doing so, I also make it a .in.in file, with initial
processing by the autotools. Indeed I need @GIMP_COMMAND@ to be replaced
by AC_CONFIG_FILES().
Finally I fix a badly closed XML tag (which reminds me I should always
test a commit, even when it's a simple non-C 1-liner change!).
2018-01-14 03:54:17 +01:00
Jehan
341105366d configure: use the poppler-data required version in pkg-config check.
This makes no functional differences since this package has a pkg-config
file only since 0.4.7, our current requirement. This means that
searching for any poppler-data through pkg-config is the same as
searching for this minimum version.
But at least that makes for better output in case of error. People who
wish to build GIMP will have proper error information of the minimum
requirement for poppler-data.
2018-01-12 19:28:01 +01:00
Jehan
f8e1d3b9c8 app, configure: adding dependency to mypaint-brushes.
This ensures that MyPaint default brushes are installed, otherwise this
makes the MyPaint brush tool quite useless and confusing unless MyPaint
is installed (which was making MyPaint a de-facto dependency of GIMP
until this commit!). Also we won't have to guess anymore the right path
for these brushs. The path will be known at compile time.
2018-01-01 22:33:56 +01:00