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.
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.
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.
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.
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.
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
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).
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.
Bump librsvg requirement to 2.40.6.
This was bug 620923 in librsvg, fixed from 2.40.6 as of commit
5ba4343bccc7e1765f38f87490b3d6a3a500fde1 in their master branch.
Similarly to what I did for CFLAGS and LDFLAGS in commit 20fdb8d, the
preprocessor flags for build tools should also be correctly defaulted
and used when building invert-svg.
... because LDFLAGS is ignored.
Firstly let's make sure that invert-svg build uses LDFLAGS_FOR_BUILD and
CFLAGS_FOR_BUILD; secondly, default these to LDFLAGS and CFLAGS
respectively when not-cross-compiling, unless values are explicitly set.
If the compiler supports destructors (which should cover at least
GCC and Clang), pair the call to babl_init() in gimp_widgets_init()
with a call to babl_exit() when the library in unloaded. This is
important in particular since the babl fish cache is constructed/
updated upon the last matched call to babl_exit().
This way we can be warned quickly about any AppStream issue (cf. bug
782759). This test requires web access for screenshot verification.
Packagers are invited to use --without-appdata-test option if they want
to skip the test (for instance if build environment has restricted
network access).
Use a code test inspired by libsoup configure test.
This is a hard dependency because HTTPS should not be considered an
option anymore. Nowadays most websites will use HTTPS by default, HTTP
gives SEO penalties and browsers are starting to display various
security warnings on HTTP websites.
Also the experience will be significantly degraded without SSL/TLS
support since the help browser will fail to load the manual remotely,
and opening various remote files on secure protocols will fail.
Note: the test cannot be performed while cross-compiling. In this case,
we will just display a warning for packagers to be at least well aware
of this dependency.
Even though the SVG loader is installed, it needs to be properly
registered for GdkPixbuf to find it. This is a problem for Windows where
the installation prefix can end up being anything and where the command
`gdk-pixbuf-query-loaders` is not run by any common component anyway.
Let's just warn the Windows packager to not forget to have the installer
run it if vector icons are enabled.
It is apparently not used for file type detection on Windows since
SVG detection worked correctly without installing this package. But
vector icons end up broken under MacOS when this is not installed
(thanks to Kris for testing this!). I assume this is necessary on
GNU/Linux too.
SVG icons won't be properly displayed with an older GTK+. See:
https://bugzilla.gnome.org/show_bug.cgi?id=781020
Note: 2.24.32 is not out yet, but it will be the first stable release
with the right fix.
... when building on Windows.
From bug 780270, comment 18:
I'm still having issue with Windows MinGW, but I have traced the issue
with the autoconf itself, and the autoconf-archive script
"ax_prog_cc_for_build.m4". I have written to the autoconf-archive
mailing list.
It seem that this script never worked as intended since a long time
because the way it works, it pushdef a few elements, then it disable
cross-compiling (for the following test), and invoke AC_PROG_CC (which
in turn invoke the code that find and set the exe extention). Then it
grab the BUILD_EXEEXT from that. This is neat and simple, but the issue
is that the autoconf AC_PROG_CC macro only invoke the code that is
responsible for finding the exe (and obj) extensions once (with
m4_expand_once). So, the end-result is that in the resulting configure
script, EXEEXT is properly evaluated, but when comes the time to
evaluate BUILD_EXEEXT, no test is performed to actually find the exe
(and obj) extension, even if the cross-compilation option changed (which
is the case for the duration of this test).
So, BUILD_EXEEXT will always end up blank (defined, but blank).
... shortcuts for non-English locales (e.g. Russian).
This will be fixed with GTK+ 2.24.32, which has not been released at
this time. Yet since it is only a configure warning, there is no harm in
triggering it already (not a hard requirement, it does not prevent
compilation).