aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNatanael Copa <ncopa@alpinelinux.org>2012-01-02 13:53:33 +0000
committerNatanael Copa <ncopa@alpinelinux.org>2012-01-02 13:53:33 +0000
commit8083a74b34a0d7b12e24bf15be3db5e77635e7b0 (patch)
treea53a122fbe993bed23ba80c578b9dfa0ca129044
parentccfebb5a5e5c3b4547896cfde292521daceb9de5 (diff)
downloadaports-8083a74b34a0d7b12e24bf15be3db5e77635e7b0.tar.bz2
aports-8083a74b34a0d7b12e24bf15be3db5e77635e7b0.tar.xz
main/gimp: fix underlinking, enable lcms, tiff, poppler and gio
-rw-r--r--main/gimp/APKBUILD20
-rw-r--r--main/gimp/gimp-2.6.11-underlinking.patch3021
-rw-r--r--main/gimp/gimp-poppler-0.18.patch476
3 files changed, 3511 insertions, 6 deletions
diff --git a/main/gimp/APKBUILD b/main/gimp/APKBUILD
index d297aae275..208d164f7d 100644
--- a/main/gimp/APKBUILD
+++ b/main/gimp/APKBUILD
@@ -1,20 +1,24 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=gimp
pkgver=2.6.11
-pkgrel=6
+pkgrel=7
pkgdesc="GNU Image Manipulation Program"
url="http://www.gimp.org/"
arch="all"
license="GPL"
makedepends="gtk+-dev libxpm-dev libxmu-dev librsvg-dev dbus-glib-dev
libexif-dev desktop-file-utils intltool gegl-dev tiff-dev
- jpeg-dev libpng-dev"
+ jpeg-dev libpng-dev iso-codes lcms-dev poppler-gtk-dev
+ autoconf automake libtool"
install=
subpackages="$pkgname-dev $pkgname-doc $pkgname-lang"
source="ftp://ftp.$pkgname.org/pub/$pkgname/v2.6/$pkgname-$pkgver.tar.bz2
gimp-libpng1.5-compat.patch
gimp-curl-fix.patch
- cve-2011-2896.patch"
+ cve-2011-2896.patch
+ gimp-poppler-0.18.patch
+ gimp-2.6.11-underlinking.patch
+ "
_builddir="${srcdir}/${pkgname}-${pkgver}"
prepare() {
@@ -28,18 +32,20 @@ prepare() {
;;
esac
done
+ libtoolize --force || return 1
+ aclocal -I m4macros && autoconf && automake || return 1
}
build() {
cd "$_builddir"
./configure --prefix=/usr \
+ --disable-dependency-tracking \
--sysconfdir=/etc \
--enable-mp \
--enable-gimp-console \
--enable-gimp-remote \
- --disable-devel-docs \
--disable-python \
- --without-gvfs \
+ --with-gvfs \
--without-gnomevfs \
--with-gif-compression=lzw \
--without-aa || return 1
@@ -56,4 +62,6 @@ package() {
md5sums="bb2939fe13e54fc7255cef5d097bb5dd gimp-2.6.11.tar.bz2
7dfc4006676fdea887f1883ccc6c7772 gimp-libpng1.5-compat.patch
678010acec374e06140e65f7de24ff69 gimp-curl-fix.patch
-c317eae455c808b8434e9b600afee648 cve-2011-2896.patch"
+c317eae455c808b8434e9b600afee648 cve-2011-2896.patch
+bfc73f80e911ed7a7d500d80973469f1 gimp-poppler-0.18.patch
+b1fde5d284544440ae2c556b380800ab gimp-2.6.11-underlinking.patch"
diff --git a/main/gimp/gimp-2.6.11-underlinking.patch b/main/gimp/gimp-2.6.11-underlinking.patch
new file mode 100644
index 0000000000..99ed46be6c
--- /dev/null
+++ b/main/gimp/gimp-2.6.11-underlinking.patch
@@ -0,0 +1,3021 @@
+ libgimpthumb/Makefile.am | 2 +-
+ libgimpthumb/Makefile.in | 2 +-
+ plug-ins/Makefile.am | 1 +
+ plug-ins/color-rotate/Makefile.am | 3 +-
+ plug-ins/color-rotate/Makefile.in | 3 +-
+ plug-ins/common/Makefile.am | 316 +++++++++++++++++--------------
+ plug-ins/common/Makefile.in | 294 +++++++++++++++--------------
+ plug-ins/flame/Makefile.am | 3 +-
+ plug-ins/flame/Makefile.in | 3 +-
+ plug-ins/fractal-explorer/Makefile.am | 3 +-
+ plug-ins/fractal-explorer/Makefile.in | 3 +-
+ plug-ins/gfig/Makefile.am | 3 +-
+ plug-ins/gfig/Makefile.in | 3 +-
+ plug-ins/gimpressionist/Makefile.am | 3 +-
+ plug-ins/gimpressionist/Makefile.in | 3 +-
+ plug-ins/gradient-flare/Makefile.am | 3 +-
+ plug-ins/gradient-flare/Makefile.in | 3 +-
+ plug-ins/ifs-compose/Makefile.am | 3 +-
+ plug-ins/ifs-compose/Makefile.in | 3 +-
+ plug-ins/imagemap/Makefile.am | 3 +-
+ plug-ins/imagemap/Makefile.in | 3 +-
+ plug-ins/lighting/Makefile.am | 3 +-
+ plug-ins/lighting/Makefile.in | 3 +-
+ plug-ins/map-object/Makefile.am | 3 +-
+ plug-ins/map-object/Makefile.in | 3 +-
+ plug-ins/pagecurl/Makefile.am | 3 +-
+ plug-ins/pagecurl/Makefile.in | 3 +-
+ plug-ins/script-fu/Makefile.am | 3 +-
+ plug-ins/script-fu/Makefile.in | 3 +-
+ plug-ins/selection-to-path/Makefile.am | 3 +-
+ plug-ins/selection-to-path/Makefile.in | 3 +-
+ 31 files changed, 381 insertions(+), 312 deletions(-)
+
+diff --git a/libgimpthumb/Makefile.am b/libgimpthumb/Makefile.am
+index 2e7b531..1572fa7 100644
+--- a/libgimpthumb/Makefile.am
++++ b/libgimpthumb/Makefile.am
+@@ -86,7 +86,7 @@ noinst_PROGRAMS = gimp-thumbnail-list
+
+ gimp_thumbnail_list_SOURCES = gimp-thumbnail-list.c
+
+-gimp_thumbnail_list_LDADD = libgimpthumb-$(GIMP_API_VERSION).la
++gimp_thumbnail_list_LDADD = libgimpthumb-$(GIMP_API_VERSION).la $(GLIB_LIBS)
+
+
+ install-data-local: install-ms-lib install-libtool-import-lib
+diff --git a/libgimpthumb/Makefile.in b/libgimpthumb/Makefile.in
+index 92ec7d4..d3f333f 100644
+--- a/libgimpthumb/Makefile.in
++++ b/libgimpthumb/Makefile.in
+@@ -462,7 +462,7 @@ libgimpthumb_2_0_la_LDFLAGS = \
+
+ libgimpthumb_2_0_la_LIBADD = $(GDK_PIXBUF_LIBS) $(GLIB_LIBS)
+ gimp_thumbnail_list_SOURCES = gimp-thumbnail-list.c
+-gimp_thumbnail_list_LDADD = libgimpthumb-$(GIMP_API_VERSION).la
++gimp_thumbnail_list_LDADD = libgimpthumb-$(GIMP_API_VERSION).la $(GLIB_LIBS)
+
+ #
+ # rules to generate built sources
+diff --git a/plug-ins/Makefile.am b/plug-ins/Makefile.am
+index 25eab53..922ce65 100644
+--- a/plug-ins/Makefile.am
++++ b/plug-ins/Makefile.am
+@@ -3,6 +3,7 @@
+ EXTRA_DIST = \
+ makefile.msc
+
++LDADD = -lm
+
+ if BUILD_HELP_BROWSER
+ help_browser = help-browser
+diff --git a/plug-ins/color-rotate/Makefile.am b/plug-ins/color-rotate/Makefile.am
+index c713c8c..34366cb 100644
+--- a/plug-ins/color-rotate/Makefile.am
++++ b/plug-ins/color-rotate/Makefile.am
+@@ -49,4 +49,5 @@ LDADD = \
+ $(libgimpbase) \
+ $(GTK_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) \
++ -lm
+diff --git a/plug-ins/color-rotate/Makefile.in b/plug-ins/color-rotate/Makefile.in
+index 0d8ae02..763aac7 100644
+--- a/plug-ins/color-rotate/Makefile.in
++++ b/plug-ins/color-rotate/Makefile.in
+@@ -460,7 +460,8 @@ LDADD = \
+ $(libgimpbase) \
+ $(GTK_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) \
++ -lm
+
+ all: all-recursive
+
+diff --git a/plug-ins/common/Makefile.am b/plug-ins/common/Makefile.am
+index 66dc6dd..7c39a1f 100644
+--- a/plug-ins/common/Makefile.am
++++ b/plug-ins/common/Makefile.am
+@@ -35,6 +35,7 @@ INCLUDES = \
+ $(GTK_CFLAGS) \
+ -I$(includedir)
+
++
+ libexec_PROGRAMS = \
+ alien-map \
+ align-layers \
+@@ -222,7 +223,8 @@ alien_map_LDADD = \
+ $(libgimpbase) \
+ $(GTK_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) \
++ -lm
+
+ align_layers_SOURCES = \
+ align-layers.c
+@@ -238,7 +240,8 @@ align_layers_LDADD = \
+ $(libgimpbase) \
+ $(GTK_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) \
++ -lm
+
+ animation_optimize_SOURCES = \
+ animation-optimize.c
+@@ -251,7 +254,7 @@ animation_optimize_LDADD = \
+ $(libgimpbase) \
+ $(GLIB_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) -lm
+
+ animation_play_SOURCES = \
+ animation-play.c
+@@ -267,7 +270,8 @@ animation_play_LDADD = \
+ $(libgimpbase) \
+ $(GTK_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) \
++ -lm
+
+ antialias_SOURCES = \
+ antialias.c
+@@ -280,7 +284,8 @@ antialias_LDADD = \
+ $(libgimpbase) \
+ $(GLIB_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) \
++ -lm
+
+ apply_canvas_SOURCES = \
+ apply-canvas.c
+@@ -296,7 +301,8 @@ apply_canvas_LDADD = \
+ $(libgimpbase) \
+ $(GTK_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS)
++ -lm
+
+ blinds_SOURCES = \
+ blinds.c
+@@ -312,7 +318,8 @@ blinds_LDADD = \
+ $(libgimpbase) \
+ $(GTK_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) \
++ -lm
+
+ blur_SOURCES = \
+ blur.c
+@@ -325,7 +332,8 @@ blur_LDADD = \
+ $(libgimpbase) \
+ $(GLIB_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) \
++ -lm
+
+ blur_gauss_SOURCES = \
+ blur-gauss.c
+@@ -341,7 +349,8 @@ blur_gauss_LDADD = \
+ $(libgimpbase) \
+ $(GTK_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) \
++ -lm
+
+ blur_gauss_selective_CFLAGS = $(MMX_EXTRA_CFLAGS)
+
+@@ -359,7 +368,8 @@ blur_gauss_selective_LDADD = \
+ $(libgimpbase) \
+ $(GTK_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) \
++ -lm
+
+ blur_motion_SOURCES = \
+ blur-motion.c
+@@ -375,7 +385,8 @@ blur_motion_LDADD = \
+ $(libgimpbase) \
+ $(GTK_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) \
++ -lm
+
+ border_average_SOURCES = \
+ border-average.c
+@@ -391,7 +402,8 @@ border_average_LDADD = \
+ $(libgimpbase) \
+ $(GTK_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) \
++ -lm
+
+ bump_map_SOURCES = \
+ bump-map.c
+@@ -407,7 +419,8 @@ bump_map_LDADD = \
+ $(libgimpbase) \
+ $(GTK_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) \
++ -lm
+
+ cartoon_SOURCES = \
+ cartoon.c
+@@ -423,7 +436,8 @@ cartoon_LDADD = \
+ $(libgimpbase) \
+ $(GTK_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) \
++ -lm
+
+ channel_mixer_SOURCES = \
+ channel-mixer.c
+@@ -439,7 +453,8 @@ channel_mixer_LDADD = \
+ $(libgimpbase) \
+ $(GTK_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) \
++ -lm
+
+ checkerboard_SOURCES = \
+ checkerboard.c
+@@ -455,7 +470,8 @@ checkerboard_LDADD = \
+ $(libgimpbase) \
+ $(GTK_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) \
++ -lm
+
+ cml_explorer_SOURCES = \
+ cml-explorer.c
+@@ -471,7 +487,8 @@ cml_explorer_LDADD = \
+ $(libgimpbase) \
+ $(GTK_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) \
++ -lm
+
+ color_cube_analyze_SOURCES = \
+ color-cube-analyze.c
+@@ -487,7 +504,8 @@ color_cube_analyze_LDADD = \
+ $(libgimpbase) \
+ $(GTK_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) \
++ -lm
+
+ color_enhance_SOURCES = \
+ color-enhance.c
+@@ -503,7 +521,8 @@ color_enhance_LDADD = \
+ $(libgimpbase) \
+ $(GTK_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) \
++ -lm
+
+ color_exchange_SOURCES = \
+ color-exchange.c
+@@ -519,7 +538,8 @@ color_exchange_LDADD = \
+ $(libgimpbase) \
+ $(GTK_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) \
++ -lm
+
+ color_to_alpha_SOURCES = \
+ color-to-alpha.c
+@@ -535,7 +555,8 @@ color_to_alpha_LDADD = \
+ $(libgimpbase) \
+ $(GTK_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) \
++ -lm
+
+ colorify_SOURCES = \
+ colorify.c
+@@ -551,7 +572,8 @@ colorify_LDADD = \
+ $(libgimpbase) \
+ $(GTK_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) \
++ -lm
+
+ colormap_remap_SOURCES = \
+ colormap-remap.c
+@@ -567,7 +589,8 @@ colormap_remap_LDADD = \
+ $(libgimpbase) \
+ $(GTK_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) \
++ -lm
+
+ compose_SOURCES = \
+ compose.c
+@@ -583,7 +606,8 @@ compose_LDADD = \
+ $(libgimpbase) \
+ $(GTK_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS)
++ -lm
+
+ contrast_normalize_SOURCES = \
+ contrast-normalize.c
+@@ -596,7 +620,8 @@ contrast_normalize_LDADD = \
+ $(libgimpbase) \
+ $(GLIB_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS)
++ -lm
+
+ contrast_retinex_SOURCES = \
+ contrast-retinex.c
+@@ -612,7 +637,8 @@ contrast_retinex_LDADD = \
+ $(libgimpbase) \
+ $(GTK_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) \
++ -lm
+
+ contrast_stretch_SOURCES = \
+ contrast-stretch.c
+@@ -625,7 +651,8 @@ contrast_stretch_LDADD = \
+ $(libgimpbase) \
+ $(GLIB_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) \
++ -lm
+
+ contrast_stretch_hsv_SOURCES = \
+ contrast-stretch-hsv.c
+@@ -638,7 +665,8 @@ contrast_stretch_hsv_LDADD = \
+ $(libgimpbase) \
+ $(GLIB_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) \
++ -lm
+
+ convolution_matrix_SOURCES = \
+ convolution-matrix.c
+@@ -654,7 +682,8 @@ convolution_matrix_LDADD = \
+ $(libgimpbase) \
+ $(GTK_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS)
++ -lm
+
+ crop_auto_SOURCES = \
+ crop-auto.c
+@@ -667,7 +696,8 @@ crop_auto_LDADD = \
+ $(libgimpbase) \
+ $(GLIB_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) \
++ -lm
+
+ crop_zealous_SOURCES = \
+ crop-zealous.c
+@@ -696,7 +726,7 @@ cubism_LDADD = \
+ $(libgimpbase) \
+ $(GTK_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) -lm
+
+ curve_bend_SOURCES = \
+ curve-bend.c
+@@ -712,7 +742,7 @@ curve_bend_LDADD = \
+ $(libgimpbase) \
+ $(GTK_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) -lm
+
+ decompose_SOURCES = \
+ decompose.c
+@@ -728,7 +758,7 @@ decompose_LDADD = \
+ $(libgimpbase) \
+ $(GTK_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) -lm
+
+ deinterlace_SOURCES = \
+ deinterlace.c
+@@ -744,7 +774,7 @@ deinterlace_LDADD = \
+ $(libgimpbase) \
+ $(GTK_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) -lm
+
+ depth_merge_SOURCES = \
+ depth-merge.c
+@@ -760,7 +790,7 @@ depth_merge_LDADD = \
+ $(libgimpbase) \
+ $(GTK_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) -lm
+
+ despeckle_SOURCES = \
+ despeckle.c
+@@ -776,7 +806,7 @@ despeckle_LDADD = \
+ $(libgimpbase) \
+ $(GTK_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) -lm
+
+ destripe_SOURCES = \
+ destripe.c
+@@ -792,7 +822,7 @@ destripe_LDADD = \
+ $(libgimpbase) \
+ $(GTK_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) -lm
+
+ diffraction_SOURCES = \
+ diffraction.c
+@@ -808,7 +838,7 @@ diffraction_LDADD = \
+ $(libgimpbase) \
+ $(GTK_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) -lm
+
+ displace_SOURCES = \
+ displace.c
+@@ -824,7 +854,7 @@ displace_LDADD = \
+ $(libgimpbase) \
+ $(GTK_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) -lm
+
+ edge_SOURCES = \
+ edge.c
+@@ -840,7 +870,7 @@ edge_LDADD = \
+ $(libgimpbase) \
+ $(GTK_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) -lm
+
+ edge_dog_SOURCES = \
+ edge-dog.c
+@@ -856,7 +886,7 @@ edge_dog_LDADD = \
+ $(libgimpbase) \
+ $(GTK_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) -lm
+
+ edge_laplace_SOURCES = \
+ edge-laplace.c
+@@ -869,7 +899,7 @@ edge_laplace_LDADD = \
+ $(libgimpbase) \
+ $(GLIB_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) -lm
+
+ edge_neon_SOURCES = \
+ edge-neon.c
+@@ -885,7 +915,7 @@ edge_neon_LDADD = \
+ $(libgimpbase) \
+ $(GTK_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) -lm
+
+ edge_sobel_SOURCES = \
+ edge-sobel.c
+@@ -901,7 +931,7 @@ edge_sobel_LDADD = \
+ $(libgimpbase) \
+ $(GTK_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) -lm
+
+ emboss_SOURCES = \
+ emboss.c
+@@ -917,7 +947,7 @@ emboss_LDADD = \
+ $(libgimpbase) \
+ $(GTK_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) -lm
+
+ engrave_SOURCES = \
+ engrave.c
+@@ -933,7 +963,7 @@ engrave_LDADD = \
+ $(libgimpbase) \
+ $(GTK_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) -lm
+
+ file_aa_SOURCES = \
+ file-aa.c
+@@ -950,7 +980,7 @@ file_aa_LDADD = \
+ $(GTK_LIBS) \
+ $(AA_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) -lm
+
+ file_cel_SOURCES = \
+ file-cel.c
+@@ -966,7 +996,7 @@ file_cel_LDADD = \
+ $(libgimpbase) \
+ $(GTK_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) -lm
+
+ file_compressor_SOURCES = \
+ file-compressor.c
+@@ -979,7 +1009,7 @@ file_compressor_LDADD = \
+ $(libgimpbase) \
+ $(GLIB_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) -lm
+
+ file_csource_SOURCES = \
+ file-csource.c
+@@ -995,7 +1025,7 @@ file_csource_LDADD = \
+ $(libgimpbase) \
+ $(GTK_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) -lm
+
+ file_desktop_link_SOURCES = \
+ file-desktop-link.c
+@@ -1008,7 +1038,7 @@ file_desktop_link_LDADD = \
+ $(libgimpbase) \
+ $(GLIB_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) -lm
+
+ file_dicom_SOURCES = \
+ file-dicom.c
+@@ -1024,7 +1054,7 @@ file_dicom_LDADD = \
+ $(libgimpbase) \
+ $(GTK_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) -lm
+
+ file_gbr_SOURCES = \
+ file-gbr.c
+@@ -1040,7 +1070,7 @@ file_gbr_LDADD = \
+ $(libgimpbase) \
+ $(GTK_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) -lm
+
+ file_gif_load_SOURCES = \
+ file-gif-load.c
+@@ -1053,7 +1083,7 @@ file_gif_load_LDADD = \
+ $(libgimpbase) \
+ $(GLIB_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) -lm
+
+ file_gif_save_SOURCES = \
+ file-gif-save.c
+@@ -1069,7 +1099,7 @@ file_gif_save_LDADD = \
+ $(libgimpbase) \
+ $(GTK_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) -lm
+
+ file_gih_SOURCES = \
+ file-gih.c
+@@ -1085,7 +1115,7 @@ file_gih_LDADD = \
+ $(libgimpbase) \
+ $(GTK_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) -lm
+
+ file_glob_SOURCES = \
+ file-glob.c
+@@ -1098,7 +1128,7 @@ file_glob_LDADD = \
+ $(libgimpbase) \
+ $(GLIB_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) -lm
+
+ file_header_SOURCES = \
+ file-header.c
+@@ -1114,7 +1144,7 @@ file_header_LDADD = \
+ $(libgimpbase) \
+ $(GTK_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) -lm
+
+ file_html_table_SOURCES = \
+ file-html-table.c
+@@ -1130,7 +1160,7 @@ file_html_table_LDADD = \
+ $(libgimpbase) \
+ $(GTK_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) -lm
+
+ file_mng_SOURCES = \
+ file-mng.c
+@@ -1147,7 +1177,7 @@ file_mng_LDADD = \
+ $(GTK_LIBS) \
+ $(MNG_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) -lm
+
+ file_pat_SOURCES = \
+ file-pat.c
+@@ -1163,7 +1193,7 @@ file_pat_LDADD = \
+ $(libgimpbase) \
+ $(GTK_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) -lm
+
+ file_pcx_SOURCES = \
+ file-pcx.c
+@@ -1179,7 +1209,7 @@ file_pcx_LDADD = \
+ $(libgimpbase) \
+ $(GTK_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) -lm
+
+ file_pdf_CFLAGS = $(POPPLER_CFLAGS)
+
+@@ -1198,7 +1228,7 @@ file_pdf_LDADD = \
+ $(GTK_LIBS) \
+ $(POPPLER_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) -lm
+
+ file_pix_SOURCES = \
+ file-pix.c
+@@ -1214,7 +1244,7 @@ file_pix_LDADD = \
+ $(libgimpbase) \
+ $(GTK_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) -lm
+
+ file_png_CFLAGS = $(PNG_CFLAGS)
+
+@@ -1233,7 +1263,7 @@ file_png_LDADD = \
+ $(GTK_LIBS) \
+ $(PNG_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) -lm
+
+ file_pnm_SOURCES = \
+ file-pnm.c
+@@ -1249,7 +1279,7 @@ file_pnm_LDADD = \
+ $(libgimpbase) \
+ $(GTK_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) -lm
+
+ file_ps_SOURCES = \
+ file-ps.c
+@@ -1265,7 +1295,7 @@ file_ps_LDADD = \
+ $(libgimpbase) \
+ $(GTK_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) -lm
+
+ file_psp_SOURCES = \
+ file-psp.c
+@@ -1282,7 +1312,7 @@ file_psp_LDADD = \
+ $(GTK_LIBS) \
+ $(Z_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) -lm
+
+ file_raw_SOURCES = \
+ file-raw.c
+@@ -1298,7 +1328,7 @@ file_raw_LDADD = \
+ $(libgimpbase) \
+ $(GTK_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) -lm
+
+ file_sunras_SOURCES = \
+ file-sunras.c
+@@ -1314,7 +1344,7 @@ file_sunras_LDADD = \
+ $(libgimpbase) \
+ $(GTK_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) -lm
+
+ file_svg_CFLAGS = $(SVG_CFLAGS)
+
+@@ -1333,7 +1363,7 @@ file_svg_LDADD = \
+ $(GTK_LIBS) \
+ $(SVG_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) -lm
+
+ file_tga_SOURCES = \
+ file-tga.c
+@@ -1349,7 +1379,7 @@ file_tga_LDADD = \
+ $(libgimpbase) \
+ $(GTK_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) -lm
+
+ file_tiff_load_SOURCES = \
+ file-tiff-load.c
+@@ -1366,7 +1396,7 @@ file_tiff_load_LDADD = \
+ $(GTK_LIBS) \
+ $(TIFF_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) -lm
+
+ file_tiff_save_SOURCES = \
+ file-tiff-save.c
+@@ -1383,7 +1413,7 @@ file_tiff_save_LDADD = \
+ $(GTK_LIBS) \
+ $(TIFF_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) -lm
+
+ file_wmf_CFLAGS = $(WMF_CFLAGS)
+
+@@ -1402,7 +1432,7 @@ file_wmf_LDADD = \
+ $(GTK_LIBS) \
+ $(WMF_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) -lm
+
+ file_xbm_SOURCES = \
+ file-xbm.c
+@@ -1418,7 +1448,7 @@ file_xbm_LDADD = \
+ $(libgimpbase) \
+ $(GTK_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) -lm
+
+ file_xpm_SOURCES = \
+ file-xpm.c
+@@ -1435,7 +1465,7 @@ file_xpm_LDADD = \
+ $(GTK_LIBS) \
+ $(XPM_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) -lm
+
+ file_xwd_SOURCES = \
+ file-xwd.c
+@@ -1451,7 +1481,7 @@ file_xwd_LDADD = \
+ $(libgimpbase) \
+ $(GTK_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) -lm
+
+ film_SOURCES = \
+ film.c
+@@ -1467,7 +1497,7 @@ film_LDADD = \
+ $(libgimpbase) \
+ $(GTK_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) -lm
+
+ filter_pack_SOURCES = \
+ filter-pack.c
+@@ -1483,7 +1513,7 @@ filter_pack_LDADD = \
+ $(libgimpbase) \
+ $(GTK_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) -lm
+
+ fractal_trace_SOURCES = \
+ fractal-trace.c
+@@ -1499,7 +1529,7 @@ fractal_trace_LDADD = \
+ $(libgimpbase) \
+ $(GTK_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) -lm
+
+ gee_SOURCES = \
+ gee.c
+@@ -1515,7 +1545,7 @@ gee_LDADD = \
+ $(libgimpbase) \
+ $(GTK_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) -lm
+
+ gee_zoom_SOURCES = \
+ gee-zoom.c
+@@ -1531,7 +1561,7 @@ gee_zoom_LDADD = \
+ $(libgimpbase) \
+ $(GTK_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) -lm
+
+ gradient_map_SOURCES = \
+ gradient-map.c
+@@ -1544,7 +1574,7 @@ gradient_map_LDADD = \
+ $(libgimpbase) \
+ $(GLIB_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) -lm
+
+ grid_SOURCES = \
+ grid.c
+@@ -1560,7 +1590,7 @@ grid_LDADD = \
+ $(libgimpbase) \
+ $(GTK_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) -lm
+
+ guillotine_SOURCES = \
+ guillotine.c
+@@ -1573,7 +1603,7 @@ guillotine_LDADD = \
+ $(libgimpbase) \
+ $(GLIB_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) -lm
+
+ hot_SOURCES = \
+ hot.c
+@@ -1589,7 +1619,7 @@ hot_LDADD = \
+ $(libgimpbase) \
+ $(GTK_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) -lm
+
+ illusion_SOURCES = \
+ illusion.c
+@@ -1605,7 +1635,7 @@ illusion_LDADD = \
+ $(libgimpbase) \
+ $(GTK_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) -lm
+
+ iwarp_SOURCES = \
+ iwarp.c
+@@ -1621,7 +1651,7 @@ iwarp_LDADD = \
+ $(libgimpbase) \
+ $(GTK_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) -lm
+
+ jigsaw_SOURCES = \
+ jigsaw.c
+@@ -1637,7 +1667,7 @@ jigsaw_LDADD = \
+ $(libgimpbase) \
+ $(GTK_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) -lm
+
+ lcms_CFLAGS = $(LCMS_CFLAGS)
+
+@@ -1656,7 +1686,7 @@ lcms_LDADD = \
+ $(GTK_LIBS) \
+ $(LCMS_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) -lm
+
+ lens_apply_SOURCES = \
+ lens-apply.c
+@@ -1672,7 +1702,7 @@ lens_apply_LDADD = \
+ $(libgimpbase) \
+ $(GTK_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) -lm
+
+ lens_distortion_SOURCES = \
+ lens-distortion.c
+@@ -1688,7 +1718,7 @@ lens_distortion_LDADD = \
+ $(libgimpbase) \
+ $(GTK_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) -lm
+
+ lens_flare_SOURCES = \
+ lens-flare.c
+@@ -1704,7 +1734,7 @@ lens_flare_LDADD = \
+ $(libgimpbase) \
+ $(GTK_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) -lm
+
+ mail_SOURCES = \
+ mail.c
+@@ -1720,7 +1750,7 @@ mail_LDADD = \
+ $(libgimpbase) \
+ $(GTK_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) -lm
+
+ max_rgb_SOURCES = \
+ max-rgb.c
+@@ -1736,7 +1766,7 @@ max_rgb_LDADD = \
+ $(libgimpbase) \
+ $(GTK_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) -lm
+
+ mosaic_SOURCES = \
+ mosaic.c
+@@ -1752,7 +1782,7 @@ mosaic_LDADD = \
+ $(libgimpbase) \
+ $(GTK_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) -lm
+
+ newsprint_SOURCES = \
+ newsprint.c
+@@ -1768,7 +1798,7 @@ newsprint_LDADD = \
+ $(libgimpbase) \
+ $(GTK_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) -lm
+
+ nl_filter_SOURCES = \
+ nl-filter.c
+@@ -1784,7 +1814,7 @@ nl_filter_LDADD = \
+ $(libgimpbase) \
+ $(GTK_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) -lm
+
+ noise_hsv_SOURCES = \
+ noise-hsv.c
+@@ -1800,7 +1830,7 @@ noise_hsv_LDADD = \
+ $(libgimpbase) \
+ $(GTK_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) -lm
+
+ noise_randomize_SOURCES = \
+ noise-randomize.c
+@@ -1816,7 +1846,7 @@ noise_randomize_LDADD = \
+ $(libgimpbase) \
+ $(GTK_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) -lm
+
+ noise_rgb_SOURCES = \
+ noise-rgb.c
+@@ -1832,7 +1862,7 @@ noise_rgb_LDADD = \
+ $(libgimpbase) \
+ $(GTK_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) -lm
+
+ noise_solid_SOURCES = \
+ noise-solid.c
+@@ -1848,7 +1878,7 @@ noise_solid_LDADD = \
+ $(libgimpbase) \
+ $(GTK_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) -lm
+
+ noise_spread_SOURCES = \
+ noise-spread.c
+@@ -1864,7 +1894,7 @@ noise_spread_LDADD = \
+ $(libgimpbase) \
+ $(GTK_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) -lm
+
+ nova_SOURCES = \
+ nova.c
+@@ -1880,7 +1910,7 @@ nova_LDADD = \
+ $(libgimpbase) \
+ $(GTK_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) -lm
+
+ oilify_SOURCES = \
+ oilify.c
+@@ -1896,7 +1926,7 @@ oilify_LDADD = \
+ $(libgimpbase) \
+ $(GTK_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) -lm
+
+ photocopy_SOURCES = \
+ photocopy.c
+@@ -1912,7 +1942,7 @@ photocopy_LDADD = \
+ $(libgimpbase) \
+ $(GTK_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) -lm
+
+ pixelize_SOURCES = \
+ pixelize.c
+@@ -1928,7 +1958,7 @@ pixelize_LDADD = \
+ $(libgimpbase) \
+ $(GTK_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) -lm
+
+ plasma_SOURCES = \
+ plasma.c
+@@ -1944,7 +1974,7 @@ plasma_LDADD = \
+ $(libgimpbase) \
+ $(GTK_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) -lm
+
+ plugin_browser_SOURCES = \
+ plugin-browser.c
+@@ -1960,7 +1990,7 @@ plugin_browser_LDADD = \
+ $(libgimpbase) \
+ $(GTK_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) -lm
+
+ polar_coords_SOURCES = \
+ polar-coords.c
+@@ -1976,7 +2006,7 @@ polar_coords_LDADD = \
+ $(libgimpbase) \
+ $(GTK_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) -lm
+
+ procedure_browser_SOURCES = \
+ procedure-browser.c
+@@ -1992,7 +2022,7 @@ procedure_browser_LDADD = \
+ $(libgimpbase) \
+ $(GTK_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) -lm
+
+ qbist_SOURCES = \
+ qbist.c
+@@ -2008,7 +2038,7 @@ qbist_LDADD = \
+ $(libgimpbase) \
+ $(GTK_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) -lm
+
+ red_eye_removal_SOURCES = \
+ red-eye-removal.c
+@@ -2024,7 +2054,7 @@ red_eye_removal_LDADD = \
+ $(libgimpbase) \
+ $(GTK_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) -lm
+
+ ripple_SOURCES = \
+ ripple.c
+@@ -2040,7 +2070,7 @@ ripple_LDADD = \
+ $(libgimpbase) \
+ $(GTK_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) -lm
+
+ rotate_SOURCES = \
+ rotate.c
+@@ -2053,7 +2083,7 @@ rotate_LDADD = \
+ $(libgimpbase) \
+ $(GLIB_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) -lm
+
+ sample_colorize_SOURCES = \
+ sample-colorize.c
+@@ -2069,7 +2099,7 @@ sample_colorize_LDADD = \
+ $(libgimpbase) \
+ $(GTK_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) -lm
+
+ screenshot_CFLAGS = $(XFIXES_CFLAGS)
+
+@@ -2088,7 +2118,7 @@ screenshot_LDADD = \
+ $(GTK_LIBS) \
+ $(SCREENSHOT_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) -lm
+
+ semi_flatten_SOURCES = \
+ semi-flatten.c
+@@ -2101,7 +2131,7 @@ semi_flatten_LDADD = \
+ $(libgimpbase) \
+ $(GLIB_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) -lm
+
+ sharpen_SOURCES = \
+ sharpen.c
+@@ -2117,7 +2147,7 @@ sharpen_LDADD = \
+ $(libgimpbase) \
+ $(GTK_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) -lm
+
+ shift_SOURCES = \
+ shift.c
+@@ -2133,7 +2163,7 @@ shift_LDADD = \
+ $(libgimpbase) \
+ $(GTK_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) -lm
+
+ sinus_SOURCES = \
+ sinus.c
+@@ -2149,7 +2179,7 @@ sinus_LDADD = \
+ $(libgimpbase) \
+ $(GTK_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) -lm
+
+ smooth_palette_SOURCES = \
+ smooth-palette.c
+@@ -2165,7 +2195,7 @@ smooth_palette_LDADD = \
+ $(libgimpbase) \
+ $(GTK_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) -lm
+
+ softglow_SOURCES = \
+ softglow.c
+@@ -2181,7 +2211,7 @@ softglow_LDADD = \
+ $(libgimpbase) \
+ $(GTK_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) -lm
+
+ sparkle_SOURCES = \
+ sparkle.c
+@@ -2197,7 +2227,7 @@ sparkle_LDADD = \
+ $(libgimpbase) \
+ $(GTK_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) -lm
+
+ sphere_designer_SOURCES = \
+ sphere-designer.c
+@@ -2213,7 +2243,7 @@ sphere_designer_LDADD = \
+ $(libgimpbase) \
+ $(GTK_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) -lm
+
+ threshold_alpha_SOURCES = \
+ threshold-alpha.c
+@@ -2229,7 +2259,7 @@ threshold_alpha_LDADD = \
+ $(libgimpbase) \
+ $(GTK_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) -lm
+
+ tile_SOURCES = \
+ tile.c
+@@ -2245,7 +2275,7 @@ tile_LDADD = \
+ $(libgimpbase) \
+ $(GTK_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) -lm
+
+ tile_glass_SOURCES = \
+ tile-glass.c
+@@ -2261,7 +2291,7 @@ tile_glass_LDADD = \
+ $(libgimpbase) \
+ $(GTK_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) -lm
+
+ tile_paper_SOURCES = \
+ tile-paper.c
+@@ -2277,7 +2307,7 @@ tile_paper_LDADD = \
+ $(libgimpbase) \
+ $(GTK_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) -lm
+
+ tile_seamless_SOURCES = \
+ tile-seamless.c
+@@ -2290,7 +2320,7 @@ tile_seamless_LDADD = \
+ $(libgimpbase) \
+ $(GLIB_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) -lm
+
+ tile_small_SOURCES = \
+ tile-small.c
+@@ -2306,7 +2336,7 @@ tile_small_LDADD = \
+ $(libgimpbase) \
+ $(GTK_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) -lm
+
+ unit_editor_SOURCES = \
+ unit-editor.c
+@@ -2322,7 +2352,7 @@ unit_editor_LDADD = \
+ $(libgimpbase) \
+ $(GTK_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) -lm
+
+ unsharp_mask_SOURCES = \
+ unsharp-mask.c
+@@ -2338,7 +2368,7 @@ unsharp_mask_LDADD = \
+ $(libgimpbase) \
+ $(GTK_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) -lm
+
+ value_invert_SOURCES = \
+ value-invert.c
+@@ -2351,7 +2381,7 @@ value_invert_LDADD = \
+ $(libgimpbase) \
+ $(GLIB_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) -lm
+
+ value_propagate_SOURCES = \
+ value-propagate.c
+@@ -2367,7 +2397,7 @@ value_propagate_LDADD = \
+ $(libgimpbase) \
+ $(GTK_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) -lm
+
+ van_gogh_lic_SOURCES = \
+ van-gogh-lic.c
+@@ -2383,7 +2413,7 @@ van_gogh_lic_LDADD = \
+ $(libgimpbase) \
+ $(GTK_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) -lm
+
+ video_SOURCES = \
+ video.c
+@@ -2399,7 +2429,7 @@ video_LDADD = \
+ $(libgimpbase) \
+ $(GTK_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) -lm
+
+ warp_SOURCES = \
+ warp.c
+@@ -2415,7 +2445,7 @@ warp_LDADD = \
+ $(libgimpbase) \
+ $(GTK_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) -lm
+
+ waves_SOURCES = \
+ waves.c
+@@ -2431,7 +2461,7 @@ waves_LDADD = \
+ $(libgimpbase) \
+ $(GTK_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) -lm
+
+ web_browser_SOURCES = \
+ web-browser.c
+@@ -2444,7 +2474,7 @@ web_browser_LDADD = \
+ $(libgimpbase) \
+ $(GLIB_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) -lm
+
+ whirl_pinch_SOURCES = \
+ whirl-pinch.c
+@@ -2460,7 +2490,7 @@ whirl_pinch_LDADD = \
+ $(libgimpbase) \
+ $(GTK_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) -lm
+
+ wind_SOURCES = \
+ wind.c
+@@ -2476,4 +2506,4 @@ wind_LDADD = \
+ $(libgimpbase) \
+ $(GTK_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) -lm
+diff --git a/plug-ins/common/Makefile.in b/plug-ins/common/Makefile.in
+index 5fb299c..47811b0 100644
+--- a/plug-ins/common/Makefile.in
++++ b/plug-ins/common/Makefile.in
+@@ -1458,6 +1458,8 @@ INCLUDES = \
+ alien_map_SOURCES = \
+ alien-map.c
+
++LD = -lm
++
+ alien_map_LDADD = \
+ $(libgimpui) \
+ $(libgimpwidgets) \
+@@ -1469,7 +1471,7 @@ alien_map_LDADD = \
+ $(libgimpbase) \
+ $(GTK_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) -lm
+
+ align_layers_SOURCES = \
+ align-layers.c
+@@ -1485,7 +1487,8 @@ align_layers_LDADD = \
+ $(libgimpbase) \
+ $(GTK_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) \
++ -lm
+
+ animation_optimize_SOURCES = \
+ animation-optimize.c
+@@ -1498,7 +1501,7 @@ animation_optimize_LDADD = \
+ $(libgimpbase) \
+ $(GLIB_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) -lm
+
+ animation_play_SOURCES = \
+ animation-play.c
+@@ -1514,7 +1517,8 @@ animation_play_LDADD = \
+ $(libgimpbase) \
+ $(GTK_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) \
++ -lm
+
+ antialias_SOURCES = \
+ antialias.c
+@@ -1527,7 +1531,7 @@ antialias_LDADD = \
+ $(libgimpbase) \
+ $(GLIB_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) -lm
+
+ apply_canvas_SOURCES = \
+ apply-canvas.c
+@@ -1559,7 +1563,7 @@ blinds_LDADD = \
+ $(libgimpbase) \
+ $(GTK_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) -lm
+
+ blur_SOURCES = \
+ blur.c
+@@ -1572,7 +1576,8 @@ blur_LDADD = \
+ $(libgimpbase) \
+ $(GLIB_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) \
++ -lm
+
+ blur_gauss_SOURCES = \
+ blur-gauss.c
+@@ -1588,7 +1593,8 @@ blur_gauss_LDADD = \
+ $(libgimpbase) \
+ $(GTK_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) \
++ -lm
+
+ blur_gauss_selective_CFLAGS = $(MMX_EXTRA_CFLAGS)
+ blur_gauss_selective_SOURCES = \
+@@ -1605,7 +1611,7 @@ blur_gauss_selective_LDADD = \
+ $(libgimpbase) \
+ $(GTK_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) -lm
+
+ blur_motion_SOURCES = \
+ blur-motion.c
+@@ -1621,7 +1627,8 @@ blur_motion_LDADD = \
+ $(libgimpbase) \
+ $(GTK_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) \
++ -lm
+
+ border_average_SOURCES = \
+ border-average.c
+@@ -1637,7 +1644,8 @@ border_average_LDADD = \
+ $(libgimpbase) \
+ $(GTK_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) \
++ -lm
+
+ bump_map_SOURCES = \
+ bump-map.c
+@@ -1653,7 +1661,8 @@ bump_map_LDADD = \
+ $(libgimpbase) \
+ $(GTK_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) \
++ -lm
+
+ cartoon_SOURCES = \
+ cartoon.c
+@@ -1669,7 +1678,8 @@ cartoon_LDADD = \
+ $(libgimpbase) \
+ $(GTK_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) \
++ -lm
+
+ channel_mixer_SOURCES = \
+ channel-mixer.c
+@@ -1685,7 +1695,8 @@ channel_mixer_LDADD = \
+ $(libgimpbase) \
+ $(GTK_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) \
++ -lm
+
+ checkerboard_SOURCES = \
+ checkerboard.c
+@@ -1701,7 +1712,7 @@ checkerboard_LDADD = \
+ $(libgimpbase) \
+ $(GTK_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) -lm
+
+ cml_explorer_SOURCES = \
+ cml-explorer.c
+@@ -1717,7 +1728,7 @@ cml_explorer_LDADD = \
+ $(libgimpbase) \
+ $(GTK_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) -lm
+
+ color_cube_analyze_SOURCES = \
+ color-cube-analyze.c
+@@ -1733,7 +1744,7 @@ color_cube_analyze_LDADD = \
+ $(libgimpbase) \
+ $(GTK_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) -lm
+
+ color_enhance_SOURCES = \
+ color-enhance.c
+@@ -1749,7 +1760,8 @@ color_enhance_LDADD = \
+ $(libgimpbase) \
+ $(GTK_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) \
++ -lm
+
+ color_exchange_SOURCES = \
+ color-exchange.c
+@@ -1765,7 +1777,7 @@ color_exchange_LDADD = \
+ $(libgimpbase) \
+ $(GTK_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) -lm
+
+ color_to_alpha_SOURCES = \
+ color-to-alpha.c
+@@ -1797,7 +1809,7 @@ colorify_LDADD = \
+ $(libgimpbase) \
+ $(GTK_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) -lm
+
+ colormap_remap_SOURCES = \
+ colormap-remap.c
+@@ -1829,7 +1841,7 @@ compose_LDADD = \
+ $(libgimpbase) \
+ $(GTK_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) -lm
+
+ contrast_normalize_SOURCES = \
+ contrast-normalize.c
+@@ -1842,7 +1854,7 @@ contrast_normalize_LDADD = \
+ $(libgimpbase) \
+ $(GLIB_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) -lm
+
+ contrast_retinex_SOURCES = \
+ contrast-retinex.c
+@@ -1858,7 +1870,7 @@ contrast_retinex_LDADD = \
+ $(libgimpbase) \
+ $(GTK_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) -lm
+
+ contrast_stretch_SOURCES = \
+ contrast-stretch.c
+@@ -1871,7 +1883,7 @@ contrast_stretch_LDADD = \
+ $(libgimpbase) \
+ $(GLIB_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) -lm
+
+ contrast_stretch_hsv_SOURCES = \
+ contrast-stretch-hsv.c
+@@ -1884,7 +1896,7 @@ contrast_stretch_hsv_LDADD = \
+ $(libgimpbase) \
+ $(GLIB_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) -lm
+
+ convolution_matrix_SOURCES = \
+ convolution-matrix.c
+@@ -1900,7 +1912,7 @@ convolution_matrix_LDADD = \
+ $(libgimpbase) \
+ $(GTK_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) -lm
+
+ crop_auto_SOURCES = \
+ crop-auto.c
+@@ -1913,7 +1925,7 @@ crop_auto_LDADD = \
+ $(libgimpbase) \
+ $(GLIB_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) -lm
+
+ crop_zealous_SOURCES = \
+ crop-zealous.c
+@@ -1926,7 +1938,7 @@ crop_zealous_LDADD = \
+ $(libgimpbase) \
+ $(GLIB_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) -lm
+
+ cubism_SOURCES = \
+ cubism.c
+@@ -1942,7 +1954,7 @@ cubism_LDADD = \
+ $(libgimpbase) \
+ $(GTK_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) -lm
+
+ curve_bend_SOURCES = \
+ curve-bend.c
+@@ -1958,7 +1970,7 @@ curve_bend_LDADD = \
+ $(libgimpbase) \
+ $(GTK_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) -lm
+
+ decompose_SOURCES = \
+ decompose.c
+@@ -1974,7 +1986,7 @@ decompose_LDADD = \
+ $(libgimpbase) \
+ $(GTK_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) -lm
+
+ deinterlace_SOURCES = \
+ deinterlace.c
+@@ -1990,7 +2002,7 @@ deinterlace_LDADD = \
+ $(libgimpbase) \
+ $(GTK_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) -lm
+
+ depth_merge_SOURCES = \
+ depth-merge.c
+@@ -2006,7 +2018,7 @@ depth_merge_LDADD = \
+ $(libgimpbase) \
+ $(GTK_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) -lm
+
+ despeckle_SOURCES = \
+ despeckle.c
+@@ -2022,7 +2034,7 @@ despeckle_LDADD = \
+ $(libgimpbase) \
+ $(GTK_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) -lm
+
+ destripe_SOURCES = \
+ destripe.c
+@@ -2038,7 +2050,7 @@ destripe_LDADD = \
+ $(libgimpbase) \
+ $(GTK_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) -lm
+
+ diffraction_SOURCES = \
+ diffraction.c
+@@ -2054,7 +2066,7 @@ diffraction_LDADD = \
+ $(libgimpbase) \
+ $(GTK_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) -lm
+
+ displace_SOURCES = \
+ displace.c
+@@ -2070,7 +2082,7 @@ displace_LDADD = \
+ $(libgimpbase) \
+ $(GTK_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) -lm
+
+ edge_SOURCES = \
+ edge.c
+@@ -2086,7 +2098,7 @@ edge_LDADD = \
+ $(libgimpbase) \
+ $(GTK_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) -lm
+
+ edge_dog_SOURCES = \
+ edge-dog.c
+@@ -2102,7 +2114,7 @@ edge_dog_LDADD = \
+ $(libgimpbase) \
+ $(GTK_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) -lm
+
+ edge_laplace_SOURCES = \
+ edge-laplace.c
+@@ -2115,7 +2127,7 @@ edge_laplace_LDADD = \
+ $(libgimpbase) \
+ $(GLIB_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) -lm
+
+ edge_neon_SOURCES = \
+ edge-neon.c
+@@ -2131,7 +2143,7 @@ edge_neon_LDADD = \
+ $(libgimpbase) \
+ $(GTK_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) -lm
+
+ edge_sobel_SOURCES = \
+ edge-sobel.c
+@@ -2147,7 +2159,7 @@ edge_sobel_LDADD = \
+ $(libgimpbase) \
+ $(GTK_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) -lm
+
+ emboss_SOURCES = \
+ emboss.c
+@@ -2163,7 +2175,7 @@ emboss_LDADD = \
+ $(libgimpbase) \
+ $(GTK_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) -lm
+
+ engrave_SOURCES = \
+ engrave.c
+@@ -2179,7 +2191,7 @@ engrave_LDADD = \
+ $(libgimpbase) \
+ $(GTK_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) -lm
+
+ file_aa_SOURCES = \
+ file-aa.c
+@@ -2196,7 +2208,7 @@ file_aa_LDADD = \
+ $(GTK_LIBS) \
+ $(AA_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) -lm
+
+ file_cel_SOURCES = \
+ file-cel.c
+@@ -2212,7 +2224,7 @@ file_cel_LDADD = \
+ $(libgimpbase) \
+ $(GTK_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) -lm
+
+ file_compressor_SOURCES = \
+ file-compressor.c
+@@ -2225,7 +2237,7 @@ file_compressor_LDADD = \
+ $(libgimpbase) \
+ $(GLIB_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) -lm
+
+ file_csource_SOURCES = \
+ file-csource.c
+@@ -2241,7 +2253,7 @@ file_csource_LDADD = \
+ $(libgimpbase) \
+ $(GTK_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) -lm
+
+ file_desktop_link_SOURCES = \
+ file-desktop-link.c
+@@ -2254,7 +2266,7 @@ file_desktop_link_LDADD = \
+ $(libgimpbase) \
+ $(GLIB_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) -lm
+
+ file_dicom_SOURCES = \
+ file-dicom.c
+@@ -2270,7 +2282,7 @@ file_dicom_LDADD = \
+ $(libgimpbase) \
+ $(GTK_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) -lm
+
+ file_gbr_SOURCES = \
+ file-gbr.c
+@@ -2286,7 +2298,7 @@ file_gbr_LDADD = \
+ $(libgimpbase) \
+ $(GTK_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) -lm
+
+ file_gif_load_SOURCES = \
+ file-gif-load.c
+@@ -2299,7 +2311,7 @@ file_gif_load_LDADD = \
+ $(libgimpbase) \
+ $(GLIB_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) -lm
+
+ file_gif_save_SOURCES = \
+ file-gif-save.c
+@@ -2315,7 +2327,7 @@ file_gif_save_LDADD = \
+ $(libgimpbase) \
+ $(GTK_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) -lm
+
+ file_gih_SOURCES = \
+ file-gih.c
+@@ -2331,7 +2343,7 @@ file_gih_LDADD = \
+ $(libgimpbase) \
+ $(GTK_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) -lm
+
+ file_glob_SOURCES = \
+ file-glob.c
+@@ -2344,7 +2356,7 @@ file_glob_LDADD = \
+ $(libgimpbase) \
+ $(GLIB_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) -lm
+
+ file_header_SOURCES = \
+ file-header.c
+@@ -2360,7 +2372,7 @@ file_header_LDADD = \
+ $(libgimpbase) \
+ $(GTK_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) -lm
+
+ file_html_table_SOURCES = \
+ file-html-table.c
+@@ -2376,7 +2388,7 @@ file_html_table_LDADD = \
+ $(libgimpbase) \
+ $(GTK_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) -lm
+
+ file_mng_SOURCES = \
+ file-mng.c
+@@ -2393,7 +2405,7 @@ file_mng_LDADD = \
+ $(GTK_LIBS) \
+ $(MNG_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) -lm
+
+ file_pat_SOURCES = \
+ file-pat.c
+@@ -2409,7 +2421,7 @@ file_pat_LDADD = \
+ $(libgimpbase) \
+ $(GTK_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) -lm
+
+ file_pcx_SOURCES = \
+ file-pcx.c
+@@ -2425,7 +2437,7 @@ file_pcx_LDADD = \
+ $(libgimpbase) \
+ $(GTK_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) -lm
+
+ file_pdf_CFLAGS = $(POPPLER_CFLAGS)
+ file_pdf_SOURCES = \
+@@ -2443,7 +2455,7 @@ file_pdf_LDADD = \
+ $(GTK_LIBS) \
+ $(POPPLER_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) -lm
+
+ file_pix_SOURCES = \
+ file-pix.c
+@@ -2459,7 +2471,7 @@ file_pix_LDADD = \
+ $(libgimpbase) \
+ $(GTK_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) -lm
+
+ file_png_CFLAGS = $(PNG_CFLAGS)
+ file_png_SOURCES = \
+@@ -2477,7 +2489,7 @@ file_png_LDADD = \
+ $(GTK_LIBS) \
+ $(PNG_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) -lm
+
+ file_pnm_SOURCES = \
+ file-pnm.c
+@@ -2493,7 +2505,7 @@ file_pnm_LDADD = \
+ $(libgimpbase) \
+ $(GTK_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) -lm
+
+ file_ps_SOURCES = \
+ file-ps.c
+@@ -2509,7 +2521,7 @@ file_ps_LDADD = \
+ $(libgimpbase) \
+ $(GTK_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) -lm
+
+ file_psp_SOURCES = \
+ file-psp.c
+@@ -2526,7 +2538,7 @@ file_psp_LDADD = \
+ $(GTK_LIBS) \
+ $(Z_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) -lm
+
+ file_raw_SOURCES = \
+ file-raw.c
+@@ -2542,7 +2554,7 @@ file_raw_LDADD = \
+ $(libgimpbase) \
+ $(GTK_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) -lm
+
+ file_sunras_SOURCES = \
+ file-sunras.c
+@@ -2558,7 +2570,7 @@ file_sunras_LDADD = \
+ $(libgimpbase) \
+ $(GTK_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) -lm
+
+ file_svg_CFLAGS = $(SVG_CFLAGS)
+ file_svg_SOURCES = \
+@@ -2576,7 +2588,7 @@ file_svg_LDADD = \
+ $(GTK_LIBS) \
+ $(SVG_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) -lm
+
+ file_tga_SOURCES = \
+ file-tga.c
+@@ -2592,7 +2604,7 @@ file_tga_LDADD = \
+ $(libgimpbase) \
+ $(GTK_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) -lm
+
+ file_tiff_load_SOURCES = \
+ file-tiff-load.c
+@@ -2609,7 +2621,7 @@ file_tiff_load_LDADD = \
+ $(GTK_LIBS) \
+ $(TIFF_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) -lm
+
+ file_tiff_save_SOURCES = \
+ file-tiff-save.c
+@@ -2626,7 +2638,7 @@ file_tiff_save_LDADD = \
+ $(GTK_LIBS) \
+ $(TIFF_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) -lm
+
+ file_wmf_CFLAGS = $(WMF_CFLAGS)
+ file_wmf_SOURCES = \
+@@ -2644,7 +2656,7 @@ file_wmf_LDADD = \
+ $(GTK_LIBS) \
+ $(WMF_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) -lm
+
+ file_xbm_SOURCES = \
+ file-xbm.c
+@@ -2660,7 +2672,7 @@ file_xbm_LDADD = \
+ $(libgimpbase) \
+ $(GTK_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) -lm
+
+ file_xpm_SOURCES = \
+ file-xpm.c
+@@ -2677,7 +2689,7 @@ file_xpm_LDADD = \
+ $(GTK_LIBS) \
+ $(XPM_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) -lm
+
+ file_xwd_SOURCES = \
+ file-xwd.c
+@@ -2693,7 +2705,7 @@ file_xwd_LDADD = \
+ $(libgimpbase) \
+ $(GTK_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) -lm
+
+ film_SOURCES = \
+ film.c
+@@ -2709,7 +2721,7 @@ film_LDADD = \
+ $(libgimpbase) \
+ $(GTK_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) -lm
+
+ filter_pack_SOURCES = \
+ filter-pack.c
+@@ -2725,7 +2737,7 @@ filter_pack_LDADD = \
+ $(libgimpbase) \
+ $(GTK_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) -lm
+
+ fractal_trace_SOURCES = \
+ fractal-trace.c
+@@ -2741,7 +2753,7 @@ fractal_trace_LDADD = \
+ $(libgimpbase) \
+ $(GTK_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) -lm
+
+ gee_SOURCES = \
+ gee.c
+@@ -2757,7 +2769,7 @@ gee_LDADD = \
+ $(libgimpbase) \
+ $(GTK_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) -lm
+
+ gee_zoom_SOURCES = \
+ gee-zoom.c
+@@ -2773,7 +2785,7 @@ gee_zoom_LDADD = \
+ $(libgimpbase) \
+ $(GTK_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) -lm
+
+ gradient_map_SOURCES = \
+ gradient-map.c
+@@ -2786,7 +2798,7 @@ gradient_map_LDADD = \
+ $(libgimpbase) \
+ $(GLIB_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) -lm
+
+ grid_SOURCES = \
+ grid.c
+@@ -2802,7 +2814,7 @@ grid_LDADD = \
+ $(libgimpbase) \
+ $(GTK_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) -lm
+
+ guillotine_SOURCES = \
+ guillotine.c
+@@ -2815,7 +2827,7 @@ guillotine_LDADD = \
+ $(libgimpbase) \
+ $(GLIB_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) -lm
+
+ hot_SOURCES = \
+ hot.c
+@@ -2831,7 +2843,7 @@ hot_LDADD = \
+ $(libgimpbase) \
+ $(GTK_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) -lm
+
+ illusion_SOURCES = \
+ illusion.c
+@@ -2847,7 +2859,7 @@ illusion_LDADD = \
+ $(libgimpbase) \
+ $(GTK_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) -lm
+
+ iwarp_SOURCES = \
+ iwarp.c
+@@ -2863,7 +2875,7 @@ iwarp_LDADD = \
+ $(libgimpbase) \
+ $(GTK_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) -lm
+
+ jigsaw_SOURCES = \
+ jigsaw.c
+@@ -2879,7 +2891,7 @@ jigsaw_LDADD = \
+ $(libgimpbase) \
+ $(GTK_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) -lm
+
+ lcms_CFLAGS = $(LCMS_CFLAGS)
+ lcms_SOURCES = \
+@@ -2897,7 +2909,7 @@ lcms_LDADD = \
+ $(GTK_LIBS) \
+ $(LCMS_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) -lm
+
+ lens_apply_SOURCES = \
+ lens-apply.c
+@@ -2913,7 +2925,7 @@ lens_apply_LDADD = \
+ $(libgimpbase) \
+ $(GTK_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) -lm
+
+ lens_distortion_SOURCES = \
+ lens-distortion.c
+@@ -2929,7 +2941,7 @@ lens_distortion_LDADD = \
+ $(libgimpbase) \
+ $(GTK_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) -lm
+
+ lens_flare_SOURCES = \
+ lens-flare.c
+@@ -2945,7 +2957,7 @@ lens_flare_LDADD = \
+ $(libgimpbase) \
+ $(GTK_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) -lm
+
+ mail_SOURCES = \
+ mail.c
+@@ -2961,7 +2973,7 @@ mail_LDADD = \
+ $(libgimpbase) \
+ $(GTK_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) -lm
+
+ max_rgb_SOURCES = \
+ max-rgb.c
+@@ -2977,7 +2989,7 @@ max_rgb_LDADD = \
+ $(libgimpbase) \
+ $(GTK_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) -lm
+
+ mosaic_SOURCES = \
+ mosaic.c
+@@ -2993,7 +3005,7 @@ mosaic_LDADD = \
+ $(libgimpbase) \
+ $(GTK_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) -lm
+
+ newsprint_SOURCES = \
+ newsprint.c
+@@ -3009,7 +3021,7 @@ newsprint_LDADD = \
+ $(libgimpbase) \
+ $(GTK_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) -lm
+
+ nl_filter_SOURCES = \
+ nl-filter.c
+@@ -3025,7 +3037,7 @@ nl_filter_LDADD = \
+ $(libgimpbase) \
+ $(GTK_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) -lm
+
+ noise_hsv_SOURCES = \
+ noise-hsv.c
+@@ -3041,7 +3053,7 @@ noise_hsv_LDADD = \
+ $(libgimpbase) \
+ $(GTK_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) -lm
+
+ noise_randomize_SOURCES = \
+ noise-randomize.c
+@@ -3057,7 +3069,7 @@ noise_randomize_LDADD = \
+ $(libgimpbase) \
+ $(GTK_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) -lm
+
+ noise_rgb_SOURCES = \
+ noise-rgb.c
+@@ -3073,7 +3085,7 @@ noise_rgb_LDADD = \
+ $(libgimpbase) \
+ $(GTK_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) -lm
+
+ noise_solid_SOURCES = \
+ noise-solid.c
+@@ -3089,7 +3101,7 @@ noise_solid_LDADD = \
+ $(libgimpbase) \
+ $(GTK_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) -lm
+
+ noise_spread_SOURCES = \
+ noise-spread.c
+@@ -3105,7 +3117,7 @@ noise_spread_LDADD = \
+ $(libgimpbase) \
+ $(GTK_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) -lm
+
+ nova_SOURCES = \
+ nova.c
+@@ -3121,7 +3133,7 @@ nova_LDADD = \
+ $(libgimpbase) \
+ $(GTK_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) -lm
+
+ oilify_SOURCES = \
+ oilify.c
+@@ -3137,7 +3149,7 @@ oilify_LDADD = \
+ $(libgimpbase) \
+ $(GTK_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) -lm
+
+ photocopy_SOURCES = \
+ photocopy.c
+@@ -3153,7 +3165,7 @@ photocopy_LDADD = \
+ $(libgimpbase) \
+ $(GTK_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) -lm
+
+ pixelize_SOURCES = \
+ pixelize.c
+@@ -3169,7 +3181,7 @@ pixelize_LDADD = \
+ $(libgimpbase) \
+ $(GTK_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) -lm
+
+ plasma_SOURCES = \
+ plasma.c
+@@ -3185,7 +3197,7 @@ plasma_LDADD = \
+ $(libgimpbase) \
+ $(GTK_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) -lm
+
+ plugin_browser_SOURCES = \
+ plugin-browser.c
+@@ -3201,7 +3213,7 @@ plugin_browser_LDADD = \
+ $(libgimpbase) \
+ $(GTK_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) -lm
+
+ polar_coords_SOURCES = \
+ polar-coords.c
+@@ -3217,7 +3229,7 @@ polar_coords_LDADD = \
+ $(libgimpbase) \
+ $(GTK_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) -lm
+
+ procedure_browser_SOURCES = \
+ procedure-browser.c
+@@ -3233,7 +3245,7 @@ procedure_browser_LDADD = \
+ $(libgimpbase) \
+ $(GTK_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) -lm
+
+ qbist_SOURCES = \
+ qbist.c
+@@ -3249,7 +3261,7 @@ qbist_LDADD = \
+ $(libgimpbase) \
+ $(GTK_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) -lm
+
+ red_eye_removal_SOURCES = \
+ red-eye-removal.c
+@@ -3265,7 +3277,7 @@ red_eye_removal_LDADD = \
+ $(libgimpbase) \
+ $(GTK_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) -lm
+
+ ripple_SOURCES = \
+ ripple.c
+@@ -3281,7 +3293,7 @@ ripple_LDADD = \
+ $(libgimpbase) \
+ $(GTK_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) -lm
+
+ rotate_SOURCES = \
+ rotate.c
+@@ -3294,7 +3306,7 @@ rotate_LDADD = \
+ $(libgimpbase) \
+ $(GLIB_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) -lm
+
+ sample_colorize_SOURCES = \
+ sample-colorize.c
+@@ -3310,7 +3322,7 @@ sample_colorize_LDADD = \
+ $(libgimpbase) \
+ $(GTK_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) -lm
+
+ screenshot_CFLAGS = $(XFIXES_CFLAGS)
+ screenshot_SOURCES = \
+@@ -3328,7 +3340,7 @@ screenshot_LDADD = \
+ $(GTK_LIBS) \
+ $(SCREENSHOT_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) -lm
+
+ semi_flatten_SOURCES = \
+ semi-flatten.c
+@@ -3341,7 +3353,7 @@ semi_flatten_LDADD = \
+ $(libgimpbase) \
+ $(GLIB_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) -lm
+
+ sharpen_SOURCES = \
+ sharpen.c
+@@ -3357,7 +3369,7 @@ sharpen_LDADD = \
+ $(libgimpbase) \
+ $(GTK_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) -lm
+
+ shift_SOURCES = \
+ shift.c
+@@ -3373,7 +3385,7 @@ shift_LDADD = \
+ $(libgimpbase) \
+ $(GTK_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) -lm
+
+ sinus_SOURCES = \
+ sinus.c
+@@ -3389,7 +3401,7 @@ sinus_LDADD = \
+ $(libgimpbase) \
+ $(GTK_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) -lm
+
+ smooth_palette_SOURCES = \
+ smooth-palette.c
+@@ -3405,7 +3417,7 @@ smooth_palette_LDADD = \
+ $(libgimpbase) \
+ $(GTK_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) -lm
+
+ softglow_SOURCES = \
+ softglow.c
+@@ -3421,7 +3433,7 @@ softglow_LDADD = \
+ $(libgimpbase) \
+ $(GTK_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) -lm
+
+ sparkle_SOURCES = \
+ sparkle.c
+@@ -3437,7 +3449,7 @@ sparkle_LDADD = \
+ $(libgimpbase) \
+ $(GTK_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) -lm
+
+ sphere_designer_SOURCES = \
+ sphere-designer.c
+@@ -3453,7 +3465,7 @@ sphere_designer_LDADD = \
+ $(libgimpbase) \
+ $(GTK_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) -lm
+
+ threshold_alpha_SOURCES = \
+ threshold-alpha.c
+@@ -3469,7 +3481,7 @@ threshold_alpha_LDADD = \
+ $(libgimpbase) \
+ $(GTK_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) -lm
+
+ tile_SOURCES = \
+ tile.c
+@@ -3485,7 +3497,7 @@ tile_LDADD = \
+ $(libgimpbase) \
+ $(GTK_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) -lm
+
+ tile_glass_SOURCES = \
+ tile-glass.c
+@@ -3501,7 +3513,7 @@ tile_glass_LDADD = \
+ $(libgimpbase) \
+ $(GTK_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) -lm
+
+ tile_paper_SOURCES = \
+ tile-paper.c
+@@ -3517,7 +3529,7 @@ tile_paper_LDADD = \
+ $(libgimpbase) \
+ $(GTK_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) -lm
+
+ tile_seamless_SOURCES = \
+ tile-seamless.c
+@@ -3530,7 +3542,7 @@ tile_seamless_LDADD = \
+ $(libgimpbase) \
+ $(GLIB_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) -lm
+
+ tile_small_SOURCES = \
+ tile-small.c
+@@ -3546,7 +3558,7 @@ tile_small_LDADD = \
+ $(libgimpbase) \
+ $(GTK_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) -lm
+
+ unit_editor_SOURCES = \
+ unit-editor.c
+@@ -3562,7 +3574,7 @@ unit_editor_LDADD = \
+ $(libgimpbase) \
+ $(GTK_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) -lm
+
+ unsharp_mask_SOURCES = \
+ unsharp-mask.c
+@@ -3578,7 +3590,7 @@ unsharp_mask_LDADD = \
+ $(libgimpbase) \
+ $(GTK_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) -lm
+
+ value_invert_SOURCES = \
+ value-invert.c
+@@ -3591,7 +3603,7 @@ value_invert_LDADD = \
+ $(libgimpbase) \
+ $(GLIB_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) -lm
+
+ value_propagate_SOURCES = \
+ value-propagate.c
+@@ -3607,7 +3619,7 @@ value_propagate_LDADD = \
+ $(libgimpbase) \
+ $(GTK_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) -lm
+
+ van_gogh_lic_SOURCES = \
+ van-gogh-lic.c
+@@ -3623,7 +3635,7 @@ van_gogh_lic_LDADD = \
+ $(libgimpbase) \
+ $(GTK_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) -lm
+
+ video_SOURCES = \
+ video.c
+@@ -3639,7 +3651,7 @@ video_LDADD = \
+ $(libgimpbase) \
+ $(GTK_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) -lm
+
+ warp_SOURCES = \
+ warp.c
+@@ -3655,7 +3667,7 @@ warp_LDADD = \
+ $(libgimpbase) \
+ $(GTK_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) -lm
+
+ waves_SOURCES = \
+ waves.c
+@@ -3671,7 +3683,7 @@ waves_LDADD = \
+ $(libgimpbase) \
+ $(GTK_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) -lm
+
+ web_browser_SOURCES = \
+ web-browser.c
+@@ -3684,7 +3696,7 @@ web_browser_LDADD = \
+ $(libgimpbase) \
+ $(GLIB_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) -lm
+
+ whirl_pinch_SOURCES = \
+ whirl-pinch.c
+@@ -3700,7 +3712,7 @@ whirl_pinch_LDADD = \
+ $(libgimpbase) \
+ $(GTK_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) -lm
+
+ wind_SOURCES = \
+ wind.c
+@@ -3716,7 +3728,7 @@ wind_LDADD = \
+ $(libgimpbase) \
+ $(GTK_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) -lm
+
+ all: all-am
+
+diff --git a/plug-ins/flame/Makefile.am b/plug-ins/flame/Makefile.am
+index 262a9aa..cf41f38 100644
+--- a/plug-ins/flame/Makefile.am
++++ b/plug-ins/flame/Makefile.am
+@@ -45,4 +45,5 @@ LDADD = \
+ $(libgimpbase) \
+ $(GTK_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) \
++ -lm
+diff --git a/plug-ins/flame/Makefile.in b/plug-ins/flame/Makefile.in
+index 5ebbfa1..23c93ba 100644
+--- a/plug-ins/flame/Makefile.in
++++ b/plug-ins/flame/Makefile.in
+@@ -416,7 +416,8 @@ LDADD = \
+ $(libgimpbase) \
+ $(GTK_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) \
++ -lm
+
+ all: all-am
+
+diff --git a/plug-ins/fractal-explorer/Makefile.am b/plug-ins/fractal-explorer/Makefile.am
+index 16ae83a..ac47d9f 100644
+--- a/plug-ins/fractal-explorer/Makefile.am
++++ b/plug-ins/fractal-explorer/Makefile.am
+@@ -41,4 +41,5 @@ LDADD = \
+ $(libgimpbase) \
+ $(GTK_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) \
++ -lm
+diff --git a/plug-ins/fractal-explorer/Makefile.in b/plug-ins/fractal-explorer/Makefile.in
+index 0d9363c..c4753e2 100644
+--- a/plug-ins/fractal-explorer/Makefile.in
++++ b/plug-ins/fractal-explorer/Makefile.in
+@@ -450,7 +450,8 @@ LDADD = \
+ $(libgimpbase) \
+ $(GTK_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) \
++ -lm
+
+ all: all-recursive
+
+diff --git a/plug-ins/gfig/Makefile.am b/plug-ins/gfig/Makefile.am
+index b0a3ae7..a3a7194 100644
+--- a/plug-ins/gfig/Makefile.am
++++ b/plug-ins/gfig/Makefile.am
+@@ -72,4 +72,5 @@ LDADD = \
+ $(libgimpbase) \
+ $(GTK_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) \
++ -lm
+diff --git a/plug-ins/gfig/Makefile.in b/plug-ins/gfig/Makefile.in
+index 730291e..5bcb2a1 100644
+--- a/plug-ins/gfig/Makefile.in
++++ b/plug-ins/gfig/Makefile.in
+@@ -485,7 +485,8 @@ LDADD = \
+ $(libgimpbase) \
+ $(GTK_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) \
++ -lm
+
+ all: all-recursive
+
+diff --git a/plug-ins/gimpressionist/Makefile.am b/plug-ins/gimpressionist/Makefile.am
+index bdca573..1decc10 100644
+--- a/plug-ins/gimpressionist/Makefile.am
++++ b/plug-ins/gimpressionist/Makefile.am
+@@ -72,6 +72,7 @@ LDADD = \
+ $(libgimpbase) \
+ $(GTK_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) \
++ -lm
+
+ EXTRA_DIST = README
+diff --git a/plug-ins/gimpressionist/Makefile.in b/plug-ins/gimpressionist/Makefile.in
+index 7428a5d..d539ec3 100644
+--- a/plug-ins/gimpressionist/Makefile.in
++++ b/plug-ins/gimpressionist/Makefile.in
+@@ -487,7 +487,8 @@ LDADD = \
+ $(libgimpbase) \
+ $(GTK_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) \
++ -lm
+
+ EXTRA_DIST = README
+ all: all-recursive
+diff --git a/plug-ins/gradient-flare/Makefile.am b/plug-ins/gradient-flare/Makefile.am
+index 8597665..958ec36 100644
+--- a/plug-ins/gradient-flare/Makefile.am
++++ b/plug-ins/gradient-flare/Makefile.am
+@@ -37,4 +37,5 @@ LDADD = \
+ $(libgimpbase) \
+ $(GTK_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) \
++ -lm
+diff --git a/plug-ins/gradient-flare/Makefile.in b/plug-ins/gradient-flare/Makefile.in
+index 7682317..ae821fc 100644
+--- a/plug-ins/gradient-flare/Makefile.in
++++ b/plug-ins/gradient-flare/Makefile.in
+@@ -444,7 +444,8 @@ LDADD = \
+ $(libgimpbase) \
+ $(GTK_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) \
++ -lm
+
+ all: all-recursive
+
+diff --git a/plug-ins/ifs-compose/Makefile.am b/plug-ins/ifs-compose/Makefile.am
+index 6e2de02..0acc963 100644
+--- a/plug-ins/ifs-compose/Makefile.am
++++ b/plug-ins/ifs-compose/Makefile.am
+@@ -41,4 +41,5 @@ LDADD = \
+ $(libgimpbase) \
+ $(GTK_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) \
++ -lm
+diff --git a/plug-ins/ifs-compose/Makefile.in b/plug-ins/ifs-compose/Makefile.in
+index cd1fcf7..002cce2 100644
+--- a/plug-ins/ifs-compose/Makefile.in
++++ b/plug-ins/ifs-compose/Makefile.in
+@@ -412,7 +412,8 @@ LDADD = \
+ $(libgimpbase) \
+ $(GTK_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) \
++ -lm
+
+ all: all-am
+
+diff --git a/plug-ins/imagemap/Makefile.am b/plug-ins/imagemap/Makefile.am
+index 1c06f94..940ad74 100644
+--- a/plug-ins/imagemap/Makefile.am
++++ b/plug-ins/imagemap/Makefile.am
+@@ -139,7 +139,8 @@ LDADD = \
+ $(libgimpbase) \
+ $(GTK_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) \
++ -lm
+
+ CLEANFILES = y.tab.c y.tab.h
+
+diff --git a/plug-ins/imagemap/Makefile.in b/plug-ins/imagemap/Makefile.in
+index 11e3368..0273db1 100644
+--- a/plug-ins/imagemap/Makefile.in
++++ b/plug-ins/imagemap/Makefile.in
+@@ -578,7 +578,8 @@ LDADD = \
+ $(libgimpbase) \
+ $(GTK_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) \
++ -lm
+
+ CLEANFILES = y.tab.c y.tab.h
+ LEX = flex
+diff --git a/plug-ins/lighting/Makefile.am b/plug-ins/lighting/Makefile.am
+index 1bf79fc..2e2899b 100644
+--- a/plug-ins/lighting/Makefile.am
++++ b/plug-ins/lighting/Makefile.am
+@@ -51,4 +51,5 @@ LDADD = \
+ $(libgimpbase) \
+ $(GTK_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) \
++ -lm
+diff --git a/plug-ins/lighting/Makefile.in b/plug-ins/lighting/Makefile.in
+index 53cf170..142433c 100644
+--- a/plug-ins/lighting/Makefile.in
++++ b/plug-ins/lighting/Makefile.in
+@@ -462,7 +462,8 @@ LDADD = \
+ $(libgimpbase) \
+ $(GTK_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) \
++ -lm
+
+ all: all-recursive
+
+diff --git a/plug-ins/map-object/Makefile.am b/plug-ins/map-object/Makefile.am
+index 2f7b7bc..483b29b 100644
+--- a/plug-ins/map-object/Makefile.am
++++ b/plug-ins/map-object/Makefile.am
+@@ -51,4 +51,5 @@ LDADD = \
+ $(libgimpbase) \
+ $(GTK_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) \
++ -lm
+diff --git a/plug-ins/map-object/Makefile.in b/plug-ins/map-object/Makefile.in
+index e270c37..ea59968 100644
+--- a/plug-ins/map-object/Makefile.in
++++ b/plug-ins/map-object/Makefile.in
+@@ -425,7 +425,8 @@ LDADD = \
+ $(libgimpbase) \
+ $(GTK_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) \
++ -lm
+
+ all: all-am
+
+diff --git a/plug-ins/pagecurl/Makefile.am b/plug-ins/pagecurl/Makefile.am
+index 2a6eafb..40680c4 100644
+--- a/plug-ins/pagecurl/Makefile.am
++++ b/plug-ins/pagecurl/Makefile.am
+@@ -42,7 +42,8 @@ LDADD = \
+ $(libgimpbase) \
+ $(GTK_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) \
++ -lm
+
+
+ PAGECURL_IMAGES = \
+diff --git a/plug-ins/pagecurl/Makefile.in b/plug-ins/pagecurl/Makefile.in
+index c8bd4f2..c157820 100644
+--- a/plug-ins/pagecurl/Makefile.in
++++ b/plug-ins/pagecurl/Makefile.in
+@@ -411,7 +411,8 @@ LDADD = \
+ $(libgimpbase) \
+ $(GTK_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) \
++ -lm
+
+ PAGECURL_IMAGES = \
+ curl0.png \
+diff --git a/plug-ins/script-fu/Makefile.am b/plug-ins/script-fu/Makefile.am
+index 3075b83..692b86e 100644
+--- a/plug-ins/script-fu/Makefile.am
++++ b/plug-ins/script-fu/Makefile.am
+@@ -74,4 +74,5 @@ LDADD = \
+ $(SOCKET_LIBS) \
+ $(WINSOCK_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) \
++ -lm
+diff --git a/plug-ins/script-fu/Makefile.in b/plug-ins/script-fu/Makefile.in
+index 65c8b31..3d0fd50 100644
+--- a/plug-ins/script-fu/Makefile.in
++++ b/plug-ins/script-fu/Makefile.in
+@@ -487,7 +487,8 @@ LDADD = \
+ $(SOCKET_LIBS) \
+ $(WINSOCK_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) \
++ -lm
+
+ all: all-recursive
+
+diff --git a/plug-ins/selection-to-path/Makefile.am b/plug-ins/selection-to-path/Makefile.am
+index 7e3ac65..385f5ea 100644
+--- a/plug-ins/selection-to-path/Makefile.am
++++ b/plug-ins/selection-to-path/Makefile.am
+@@ -59,4 +59,5 @@ LDADD = \
+ $(libgimpbase) \
+ $(GTK_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) \
++ -lm
+diff --git a/plug-ins/selection-to-path/Makefile.in b/plug-ins/selection-to-path/Makefile.in
+index d4cbdf1..e4b6d25 100644
+--- a/plug-ins/selection-to-path/Makefile.in
++++ b/plug-ins/selection-to-path/Makefile.in
+@@ -433,7 +433,8 @@ LDADD = \
+ $(libgimpbase) \
+ $(GTK_LIBS) \
+ $(RT_LIBS) \
+- $(INTLLIBS)
++ $(INTLLIBS) \
++ -lm
+
+ all: all-am
+
diff --git a/main/gimp/gimp-poppler-0.18.patch b/main/gimp/gimp-poppler-0.18.patch
new file mode 100644
index 0000000000..0715460bca
--- /dev/null
+++ b/main/gimp/gimp-poppler-0.18.patch
@@ -0,0 +1,476 @@
+From 69f69eed816b89be9a01a48a1f0643d1fd496118 Mon Sep 17 00:00:00 2001
+From: Nils Philippsen <nils@redhat.com>
+Date: Fri, 6 May 2011 11:58:44 +0200
+Subject: [PATCH] patch: poppler-0.17
+
+Squashed commit of the following:
+
+commit 529d940222dfc352d41fbf72de29134421aa4002
+Author: Nils Philippsen <nils@redhat.com>
+Date: Fri May 6 11:50:30 2011 +0200
+
+ use code based on pixbufs instead of cairo surfaces
+
+ this is done to avoid adding to libgimp, thanks to Mukund Sivaraman for
+ hints how to do this
+
+commit f8671d8767d4cdab830dc06310e96c63a88ec0fd
+Author: Mukund Sivaraman <muks@banu.com>
+Date: Thu Apr 21 13:57:13 2011 +0530
+
+ file-pdf-load: Update attribution, removing bogus copyright
+ (cherry picked from commit e999122e0b20b6ccd6bde3ce039bb64068fc0019)
+
+commit 89a78f2590d298dac2f42e6d9a3016fc5d672c70
+Author: Nils Philippsen <nils@redhat.com>
+Date: Thu Apr 21 13:52:18 2011 +0200
+
+ file-pdf-load: Use better API + cleanups
+
+ * fixes issues with poppler 0.17 completely
+ * uses new libgimp API to pass surfaces instead of pixbufs
+ * uses GTK+ 3 API to convert surfaces to pixbufs where available
+ (backported from commit 7bdadd80ba479d6ff904e276d805e16f6b940ee2)
+
+commit 4e92302c4a14a961f112587a0ad86696c88da2f8
+Author: Nils Philippsen <nils@redhat.com>
+Date: Thu Apr 21 13:38:08 2011 +0200
+
+ file-pdf-load: Don't use deprecated API (bug #646947)
+
+ (cherry picked from commit 9b3e1c91fd2eac69da6947ec9c7fbf10096ba237)
+
+ Conflicts:
+
+ plug-ins/common/file-pdf.c
+---
+ plug-ins/common/file-pdf.c | 323 ++++++++++++++++++++++++++++++++++++++------
+ 1 files changed, 283 insertions(+), 40 deletions(-)
+
+diff --git a/plug-ins/common/file-pdf.c b/plug-ins/common/file-pdf.c
+index a43b459..43c2b7d 100644
+--- a/plug-ins/common/file-pdf.c
++++ b/plug-ins/common/file-pdf.c
+@@ -4,6 +4,9 @@
+ *
+ * Copyright (C) 2005 Nathan Summers
+ *
++ * Some code in render_page_to_surface() borrowed from
++ * poppler.git/glib/poppler-page.cc.
++ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+@@ -80,16 +83,20 @@ static gboolean load_dialog (PopplerDocument *doc,
+ static PopplerDocument * open_document (const gchar *filename,
+ GError **error);
+
+-static GdkPixbuf * get_thumbnail (PopplerDocument *doc,
++static cairo_surface_t * get_thumb_surface (PopplerDocument *doc,
++ gint page,
++ gint preferred_size);
++
++static GdkPixbuf * get_thumb_pixbuf (PopplerDocument *doc,
+ gint page,
+ gint preferred_size);
+
+ static gint32 layer_from_pixbuf (gint32 image,
+- const gchar *layer_name,
+- gint position,
+- GdkPixbuf *buf,
+- gdouble progress_start,
+- gdouble progress_scale);
++ const gchar *layer_name,
++ gint position,
++ GdkPixbuf *pixbuf,
++ gdouble progress_start,
++ gdouble progress_scale);
+
+ /**
+ ** the following was formerly part of
+@@ -433,11 +440,12 @@ run (const gchar *name,
+ }
+ else
+ {
+- gdouble width = 0;
+- gdouble height = 0;
+- gdouble scale;
+- gint32 image = -1;
+- GdkPixbuf *pixbuf = NULL;
++ gdouble width = 0;
++ gdouble height = 0;
++ gdouble scale;
++ gint32 image = -1;
++ gint num_pages = 0;
++ GdkPixbuf *pixbuf = NULL;
+
+ /* Possibly retrieve last settings */
+ gimp_get_data (LOAD_PROC, &loadvals);
+@@ -455,7 +463,10 @@ run (const gchar *name,
+ g_object_unref (page);
+ }
+
+- pixbuf = get_thumbnail (doc, 0, param[1].data.d_int32);
++ num_pages = poppler_document_get_n_pages (doc);
++
++ pixbuf = get_thumb_pixbuf (doc, 0, param[1].data.d_int32);
++
+ g_object_unref (doc);
+ }
+
+@@ -548,6 +559,187 @@ open_document (const gchar *filename,
+ return doc;
+ }
+
++/* FIXME: Remove this someday when we depend fully on GTK+ >= 3 */
++
++#if (!GTK_CHECK_VERSION (3, 0, 0))
++
++static cairo_format_t
++gdk_cairo_format_for_content (cairo_content_t content)
++{
++ switch (content)
++ {
++ case CAIRO_CONTENT_COLOR:
++ return CAIRO_FORMAT_RGB24;
++ case CAIRO_CONTENT_ALPHA:
++ return CAIRO_FORMAT_A8;
++ case CAIRO_CONTENT_COLOR_ALPHA:
++ default:
++ return CAIRO_FORMAT_ARGB32;
++ }
++}
++
++static cairo_surface_t *
++gdk_cairo_surface_coerce_to_image (cairo_surface_t *surface,
++ cairo_content_t content,
++ int src_x,
++ int src_y,
++ int width,
++ int height)
++{
++ cairo_surface_t *copy;
++ cairo_t *cr;
++
++ copy = cairo_image_surface_create (gdk_cairo_format_for_content (content),
++ width,
++ height);
++
++ cr = cairo_create (copy);
++ cairo_set_operator (cr, CAIRO_OPERATOR_SOURCE);
++ cairo_set_source_surface (cr, surface, -src_x, -src_y);
++ cairo_paint (cr);
++ cairo_destroy (cr);
++
++ return copy;
++}
++
++static void
++convert_alpha (guchar *dest_data,
++ int dest_stride,
++ guchar *src_data,
++ int src_stride,
++ int src_x,
++ int src_y,
++ int width,
++ int height)
++{
++ int x, y;
++
++ src_data += src_stride * src_y + src_x * 4;
++
++ for (y = 0; y < height; y++) {
++ guint32 *src = (guint32 *) src_data;
++
++ for (x = 0; x < width; x++) {
++ guint alpha = src[x] >> 24;
++
++ if (alpha == 0)
++ {
++ dest_data[x * 4 + 0] = 0;
++ dest_data[x * 4 + 1] = 0;
++ dest_data[x * 4 + 2] = 0;
++ }
++ else
++ {
++ dest_data[x * 4 + 0] = (((src[x] & 0xff0000) >> 16) * 255 + alpha / 2) / alpha;
++ dest_data[x * 4 + 1] = (((src[x] & 0x00ff00) >> 8) * 255 + alpha / 2) / alpha;
++ dest_data[x * 4 + 2] = (((src[x] & 0x0000ff) >> 0) * 255 + alpha / 2) / alpha;
++ }
++ dest_data[x * 4 + 3] = alpha;
++ }
++
++ src_data += src_stride;
++ dest_data += dest_stride;
++ }
++}
++
++static void
++convert_no_alpha (guchar *dest_data,
++ int dest_stride,
++ guchar *src_data,
++ int src_stride,
++ int src_x,
++ int src_y,
++ int width,
++ int height)
++{
++ int x, y;
++
++ src_data += src_stride * src_y + src_x * 4;
++
++ for (y = 0; y < height; y++) {
++ guint32 *src = (guint32 *) src_data;
++
++ for (x = 0; x < width; x++) {
++ dest_data[x * 3 + 0] = src[x] >> 16;
++ dest_data[x * 3 + 1] = src[x] >> 8;
++ dest_data[x * 3 + 2] = src[x];
++ }
++
++ src_data += src_stride;
++ dest_data += dest_stride;
++ }
++}
++
++/**
++ * gdk_pixbuf_get_from_surface:
++ * @surface: surface to copy from
++ * @src_x: Source X coordinate within @surface
++ * @src_y: Source Y coordinate within @surface
++ * @width: Width in pixels of region to get
++ * @height: Height in pixels of region to get
++ *
++ * Transfers image data from a #cairo_surface_t and converts it to an RGB(A)
++ * representation inside a #GdkPixbuf. This allows you to efficiently read
++ * individual pixels from cairo surfaces. For #GdkWindows, use
++ * gdk_pixbuf_get_from_window() instead.
++ *
++ * This function will create an RGB pixbuf with 8 bits per channel.
++ * The pixbuf will contain an alpha channel if the @surface contains one.
++ *
++ * Return value: (transfer full): A newly-created pixbuf with a reference
++ * count of 1, or %NULL on error
++ */
++static GdkPixbuf *
++gdk_pixbuf_get_from_surface (cairo_surface_t *surface,
++ gint src_x,
++ gint src_y,
++ gint width,
++ gint height)
++{
++ cairo_content_t content;
++ GdkPixbuf *dest;
++
++ /* General sanity checks */
++ g_return_val_if_fail (surface != NULL, NULL);
++ g_return_val_if_fail (width > 0 && height > 0, NULL);
++
++ content = cairo_surface_get_content (surface) | CAIRO_CONTENT_COLOR;
++ dest = gdk_pixbuf_new (GDK_COLORSPACE_RGB,
++ !!(content & CAIRO_CONTENT_ALPHA),
++ 8,
++ width, height);
++
++ surface = gdk_cairo_surface_coerce_to_image (surface, content,
++ src_x, src_y,
++ width, height);
++ cairo_surface_flush (surface);
++ if (cairo_surface_status (surface) || dest == NULL)
++ {
++ cairo_surface_destroy (surface);
++ return NULL;
++ }
++
++ if (gdk_pixbuf_get_has_alpha (dest))
++ convert_alpha (gdk_pixbuf_get_pixels (dest),
++ gdk_pixbuf_get_rowstride (dest),
++ cairo_image_surface_get_data (surface),
++ cairo_image_surface_get_stride (surface),
++ 0, 0,
++ width, height);
++ else
++ convert_no_alpha (gdk_pixbuf_get_pixels (dest),
++ gdk_pixbuf_get_rowstride (dest),
++ cairo_image_surface_get_data (surface),
++ cairo_image_surface_get_stride (surface),
++ 0, 0,
++ width, height);
++
++ cairo_surface_destroy (surface);
++ return dest;
++}
++
++#endif
++
+ static gint32
+ layer_from_pixbuf (gint32 image,
+ const gchar *layer_name,
+@@ -566,6 +758,54 @@ layer_from_pixbuf (gint32 image,
+ return layer;
+ }
+
++static cairo_surface_t *
++render_page_to_surface (PopplerPage *page,
++ int width,
++ int height,
++ double scale)
++{
++ cairo_surface_t *surface;
++ cairo_t *cr;
++
++ surface = cairo_image_surface_create (CAIRO_FORMAT_ARGB32, width, height);
++ cr = cairo_create (surface);
++
++ cairo_save (cr);
++ cairo_translate (cr, 0.0, 0.0);
++
++ if (scale != 1.0)
++ cairo_scale (cr, scale, scale);
++
++ poppler_page_render (page, cr);
++ cairo_restore (cr);
++
++ cairo_set_operator (cr, CAIRO_OPERATOR_DEST_OVER);
++ cairo_set_source_rgb (cr, 1.0, 1.0, 1.0);
++ cairo_paint (cr);
++
++ cairo_destroy (cr);
++
++ return surface;
++}
++
++static GdkPixbuf *
++render_page_to_pixbuf (PopplerPage *page,
++ int width,
++ int height,
++ double scale)
++{
++ GdkPixbuf *pixbuf;
++ cairo_surface_t *surface;
++
++ surface = render_page_to_surface (page, width, height, scale);
++ pixbuf = gdk_pixbuf_get_from_surface (surface, 0, 0,
++ cairo_image_surface_get_width (surface),
++ cairo_image_surface_get_height (surface));
++ cairo_surface_destroy (surface);
++
++ return pixbuf;
++}
++
+ static gint32
+ load_image (PopplerDocument *doc,
+ const gchar *filename,
+@@ -597,7 +837,7 @@ load_image (PopplerDocument *doc,
+ gdouble page_width;
+ gdouble page_height;
+
+- GdkPixbuf *buf;
++ GdkPixbuf *pixbuf;
+ gint width;
+ gint height;
+
+@@ -627,15 +867,13 @@ load_image (PopplerDocument *doc,
+ gimp_image_set_resolution (image_ID, resolution, resolution);
+ }
+
+- buf = gdk_pixbuf_new (GDK_COLORSPACE_RGB, FALSE, 8, width, height);
+-
+- poppler_page_render_to_pixbuf (page, 0, 0, width, height, scale, 0, buf);
++ pixbuf = render_page_to_pixbuf (page, width, height, scale);
+
+- layer_from_pixbuf (image_ID, page_label, i, buf,
++ layer_from_pixbuf (image_ID, page_label, i, pixbuf,
+ doc_progress, 1.0 / pages->n_pages);
+
+ g_free (page_label);
+- g_object_unref (buf);
++ g_object_unref(pixbuf);
+
+ doc_progress = (double) (i + 1) / pages->n_pages;
+ gimp_progress_update (doc_progress);
+@@ -676,30 +914,22 @@ load_image (PopplerDocument *doc,
+ return image_ID;
+ }
+
+-static GdkPixbuf *
+-get_thumbnail (PopplerDocument *doc,
+- gint page_num,
+- gint preferred_size)
++static cairo_surface_t *
++get_thumb_surface (PopplerDocument *doc,
++ gint page_num,
++ gint preferred_size)
+ {
+ PopplerPage *page;
+- GdkPixbuf *pixbuf;
++ cairo_surface_t *surface;
+
+ page = poppler_document_get_page (doc, page_num);
+
+ if (! page)
+ return NULL;
+
+- /* XXX: Remove conditional when we depend on poppler 0.8.0, but also
+- * add configure check to make sure POPPLER_WITH_GDK is enabled!
+- */
+-#ifdef POPPLER_WITH_GDK
+- pixbuf = poppler_page_get_thumbnail_pixbuf (page);
+-#else
+- pixbuf = poppler_page_get_thumbnail (page);
+-#endif
+-
++ surface = poppler_page_get_thumbnail (page);
+
+- if (! pixbuf)
++ if (! surface)
+ {
+ gdouble width;
+ gdouble height;
+@@ -712,15 +942,28 @@ get_thumbnail (PopplerDocument *doc,
+ width *= scale;
+ height *= scale;
+
+- pixbuf = gdk_pixbuf_new (GDK_COLORSPACE_RGB, FALSE, 8,
+- width, height);
+-
+- poppler_page_render_to_pixbuf (page,
+- 0, 0, width, height, scale, 0, pixbuf);
++ surface = render_page_to_surface (page, width, height, scale);
+ }
+
+ g_object_unref (page);
+
++ return surface;
++}
++
++static GdkPixbuf *
++get_thumb_pixbuf (PopplerDocument *doc,
++ gint page_num,
++ gint preferred_size)
++{
++ cairo_surface_t *surface;
++ GdkPixbuf *pixbuf;
++
++ surface = get_thumb_surface (doc, page_num, preferred_size);
++ pixbuf = gdk_pixbuf_get_from_surface (surface, 0, 0,
++ cairo_image_surface_get_width (surface),
++ cairo_image_surface_get_height (surface));
++ cairo_surface_destroy (surface);
++
+ return pixbuf;
+ }
+
+@@ -769,8 +1012,8 @@ thumbnail_thread (gpointer data)
+ idle_data->page_no = i;
+
+ /* FIXME get preferred size from somewhere? */
+- idle_data->pixbuf = get_thumbnail (thread_data->document, i,
+- THUMBNAIL_SIZE);
++ idle_data->pixbuf = get_thumb_pixbuf (thread_data->document, i,
++ THUMBNAIL_SIZE);
+
+ g_idle_add (idle_set_thumbnail, idle_data);
+
+--
+1.7.5