Commit Graph

356 Commits

Author SHA1 Message Date
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
Michael Natterer 2b65ff4551 configure.ac: require glib >= 2.54.2 2018-01-01 14:49:03 +01:00
Jehan 1d0fa313ea configure: don't nest anymore poppler and poppler-data checks.
Since they are both mandatory dependencies now, no need to do a nested
check anymore. Also I was getting some weird warnings in the configure
output (maybe also because of missing square brackets?), which are
coincidentally fixed this way as well.
2017-12-28 16:37:43 +01:00
Jehan c99ac02d34 configure: two levels of quoting needed with AC_CONFIG_COMMANDS.
So it seems that [[]] are needed to quote the command part of
AC_CONFIG_COMMANDS(), in particular when square brackets are used inside
the command (which is our case since we used sed with regex classes []).
It is not even in the docs of AC_CONFIG_COMMANDS() but I found this
information in the docs of the deprecated AC_OUTPUT_COMMANDS()!
https://www.gnu.org/software/autoconf/manual/autoconf.html#index-AC_005fOUTPUT_005fCOMMANDS-2135

> Conversely, where one level of quoting was enough for literal strings
> with AC_OUTPUT_COMMANDS, you need two with AC_CONFIG_COMMANDS. The
> following lines are equivalent:
>    AC_OUTPUT_COMMANDS([echo "Square brackets: []"])
>    AC_CONFIG_COMMANDS([default], [[echo "Square brackets: []"]])
2017-12-28 16:16:24 +01:00
Ting-Wei Lan bccaf39dc9 configure: Fix the usage of sed on FreeBSD
FreeBSD requires the right brace to be preceded by a newline. Putting it
on the same line as other commands is not allowed.

https://bugzilla.gnome.org/show_bug.cgi?id=791989
2017-12-28 15:15:33 +01:00
Jehan 7d3adc87c0 configure: properly generate POTFILES for po-*/.
By default, autoconf only takes care of po/POTFILES, not any
po-*/POTFILES. The file contents has to go in po-*/Makefile, after
running `config-status`, step which was consequently not properly done.
And last consequence is that `make update-po` in any po-*/ was quite
broken. Now things should be better.
2017-12-27 02:38:15 +01:00
Ell 1f27ee6219 build, configure.ac: misc Windows installer translations build improvements
In configure.ac, add --enable-windows-installer option (off by
default), which should be set to generate the necessary files for
the installer translations during the build.  Using this option is
only supported when building from git, since the installer files
are not included in source tarballs.

Rename setup.isl.desktop.in to setup.isl.in, and instruct intltool
to treat it as an .ini file explicitly.

Delete generated message files during make clean.
2017-12-25 07:42:20 -05:00
Ell f1070f4c80 build: use intltool for Windows installer translations
Use intltool for managing the translations for the Windows
installer, instead of manually maintaining the translated message
files.

The message files are generated in the source directory, under
build/windows/installer/lang, as part of the build, and can be
subsequently used to build the installer, as before.
2017-12-24 16:45:32 -05:00
Michael Natterer b05cfc6050 pdb: (try 3) move PDB generation and sources to toplevel/pdb
It never belonged inside "tools". Also rename its "pdb" subdirectory
to "groups". This had to happen before 2.10 so cherry-picking between
branches doesn't become a nightmare in the future.
2017-12-17 14:16:08 -05:00
Michael Natterer 89a9d0e93e configure.ac: require GEGL => 0.3.27 2017-12-17 18:19:08 +01:00
Jehan 1b8281269b plug-ins: the file-ps plug-in won't take care about PDF import anymore. 2017-12-13 20:35:41 +01:00
Jehan ce894dfd1e configure: MIME_TYPES value only cares about import.
This variable is used for the MimeType key in the desktop file, which
allows to know if a software can open a file with the Exec key command.
Whether GIMP can also export such format is not to be taken into
consideration.
2017-12-13 20:17:14 +01:00
Jehan a207570cfe Bug 791397 - Gimp import multi page PDF only imports first page.
Poppler and poppler-data are now hard dependencies.
PDF is a common-enough format nowadays that import support is likely
considered as a granted feature by everyone. Moreover the current
fallback to the PostScript plug-in for PDF support just gives a degraded
experience with less features (and probably a lot of bugs since
basically nobody uses this code).
Poppler-data is also considered mandatory because non-western language
support should never be considered an "option". People using non-western
languages are not second class citizens and therefore if we say that PDF
import is now a hard feature, it should also include PDF using CJK or
Cyrillic languages.
2017-12-13 20:16:24 +01:00
Michael Natterer e8dd20feda configure.ac: post-release version bump to 2.9.9 2017-12-12 20:54:13 +01:00
Michael Natterer 18794a6ba2 configure.ac: release 2.9.8 2017-12-12 20:41:01 +01:00
Ell fd9cce57ee configure.ac: require perl >= 5.10.0
Commit 4b521435a1 uses recursive
regex patterns in gimp-mkenums, which requires perl >= 5.10.0.
2017-12-04 09:00:34 -05:00
Ell 5180c01045 configure.ac: require GEGL >= 0.3.24 2017-11-24 08:42:04 -05:00
Michael Natterer a30f855981 configure.ac: require babl >= 0.1.38 2017-11-20 12:53:59 +01:00
Michael Natterer 393336b76f configure.ac: require GEGL >= 0.3.22 2017-11-12 20:18:14 +01:00
Michael Natterer 79836aea34 configure.ac: require babl >= 0.1.36 2017-11-12 18:36:24 +01:00
Jehan 2c19ea2145 app: add compiler info in `gimp -v`. 2017-09-10 01:21:55 +02:00
Jehan 9b4382614b Bug 787222 - Can't convert from 16 bit to 16 bit floating point.
This comes from a bug in GCC itself.
Comparing with GCC's revision dates (bug introduced in revision 250312
in 18th of July 2017), this bug apparently affects only GCC 7.2.
Let's just add a configure warning so that builders are made aware of
the issue when they use this compiler.
See also: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82108
2017-09-09 23:27:19 +02:00
Michael Natterer fd8fd89d98 configure.ac: require lcms >= 2.8 2017-09-02 17:10:01 +02:00
Michael Natterer 2a9bacb528 configure.ac: require Babl >= 0.1.31 and GEGL >= 0.3.21 2017-08-28 11:34:48 +02:00
Michael Natterer 468dc22898 configure.ac: post-release version bump to 2.9.7 2017-08-24 21:24:07 +02:00
Michael Natterer 5afea2f6d3 Release 2.9.6 2017-08-24 20:39:20 +02:00
Øyvind Kolås 4410ab0db0 bump required GEGL version to 0.3.20 2017-08-15 23:11:12 +02:00
Øyvind Kolås 90a808e863 bump required babl version to 0.1.30 2017-08-15 20:54:05 +02:00
Jehan b6c4905844 configure: libwebp(de)?mux follow libwebp version.
They are sub-libraries of libwebp, enabled by build options
(--enable-libwebp(de)?mux), and therefore I don't think it makes sense
to have separate version prerequisites.

Also let's improve the config output by testing for libwebp(de)?mux only
when libwebp check is successful and displaying more accurate info
(instead of saying "WebP not found", "WebP not built with libwebpmux" is
much more accurate for instance, in order to understand the problem if
you are sure you installed the proper version of libwebp).
2017-08-01 19:28:40 +02:00
Jehan da4f137ac9 configure: libwebp dependency bumped to 0.6.0.
This is to make use of the better logics of kmax (now that it finally
makes sense). Adding now, since it is now available in Debian Testing.
2017-08-01 18:31:14 +02:00
Michael Natterer 87438c885a plug-ins: merge file-rawtherapee/ into file-raw/
and use the same file-formats.h
2017-07-24 20:58:25 +02:00
Michael Natterer a653a477d1 plug-ins: rename file-darktable/ to file-raw/
It will soon host all raw loader plug-ins.
2017-07-24 20:26:18 +02:00
Michael Natterer 0b9dd1d800 configure.ac: require gexiv2 >= 0.10.6 2017-07-23 15:58:28 +02:00
Ben Touchette dc9856cfe1 Bug 769820 - Cannot enter Iptc information when no metadata is available...
...and fails to write it to file when it is

Completely redo metadata editor and viewer code, adds support for
Xmp.xmpMM.History and more.
2017-07-07 18:11:39 +02:00
Michael Natterer e8ee5475b7 app: move all propgui files from app/widgets/ to new folder app/propgui/
We are getting more and app/widgets/ is already too large.
2017-07-03 12:29:41 +02:00
Jehan 6b094de4cd configure: clean a bit libtiff check.
Since commit 48046d2, libtiff is a hard dependency. So the have_libtiff
variable is not needed anymore. Just rename it and use it to output a
little bit more informative error message on libtiff check failure.
2017-06-27 21:31:10 +02:00