summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSebastian Pipping <sping@gentoo.org>2016-06-22 22:12:30 +0200
committerSebastian Pipping <sping@gentoo.org>2016-06-22 22:15:48 +0200
commit331ebdd3de4437b493d0e4e12fa8b97fa976f5a4 (patch)
tree90e5e37926a2a32a2cf08068bdbe7d81c7bd7e21 /media-gfx
parentnet-libs/phodav: Drop old (diff)
downloadgentoo-331ebdd3de4437b493d0e4e12fa8b97fa976f5a4.tar.gz
gentoo-331ebdd3de4437b493d0e4e12fa8b97fa976f5a4.tar.bz2
gentoo-331ebdd3de4437b493d0e4e12fa8b97fa976f5a4.zip
media-gfx/gimp: CVE-2016-4994 (bug #586666)
Package-Manager: portage-2.2.28
Diffstat (limited to 'media-gfx')
-rw-r--r--media-gfx/gimp/files/gimp-2.9.2-CVE-2016-4994.patch88
-rw-r--r--media-gfx/gimp/gimp-2.8.14-r2.ebuild171
-rw-r--r--media-gfx/gimp/gimp-2.8.16-r1.ebuild171
-rw-r--r--media-gfx/gimp/gimp-2.9.2-r1.ebuild168
4 files changed, 598 insertions, 0 deletions
diff --git a/media-gfx/gimp/files/gimp-2.9.2-CVE-2016-4994.patch b/media-gfx/gimp/files/gimp-2.9.2-CVE-2016-4994.patch
new file mode 100644
index 000000000000..846318b42149
--- /dev/null
+++ b/media-gfx/gimp/files/gimp-2.9.2-CVE-2016-4994.patch
@@ -0,0 +1,88 @@
+From 6d804bf9ae77bc86a0a97f9b944a129844df9395 Mon Sep 17 00:00:00 2001
+From: Shmuel H <shmuelgimp@gmail.com>
+Date: Mon, 20 Jun 2016 17:14:41 +0300
+Subject: Bug 767873 - (CVE-2016-4994) Multiple Use-After-Free when parsing...
+
+...XCF channel and layer properties
+
+The properties PROP_ACTIVE_LAYER, PROP_FLOATING_SELECTION,
+PROP_ACTIVE_CHANNEL saves the current object pointer the @info
+structure. Others like PROP_SELECTION (for channel) and
+PROP_GROUP_ITEM (for layer) will delete the current object and create
+a new object, leaving the pointers in @info invalid (dangling).
+
+Therefore, if a property from the first type will come before the
+second, the result will be an UaF in the last lines of xcf_load_image
+(when it actually using the pointers from @info).
+
+I wasn't able to exploit this bug because that
+g_object_instance->c_class gets cleared by the last g_object_unref and
+GIMP_IS_{LAYER,CHANNEL} detects that and return FALSE.
+---
+ app/xcf/xcf-load.c | 29 +++++++++++++++++++++++++++++
+ 1 file changed, 29 insertions(+)
+
+diff --git a/app/xcf/xcf-load.c b/app/xcf/xcf-load.c
+index f48558a..244d5c2 100644
+--- a/app/xcf/xcf-load.c
++++ b/app/xcf/xcf-load.c
+@@ -1141,6 +1141,18 @@ xcf_load_layer_props (XcfInfo *info,
+ case PROP_GROUP_ITEM:
+ {
+ GimpLayer *group;
++ gboolean is_active_layer;
++
++ /* We're going to delete *layer, Don't leave its pointers
++ * in @info. After that, we'll restore them back with the
++ * new pointer. See bug #767873.
++ */
++ is_active_layer = (*layer == info->active_layer);
++ if (is_active_layer)
++ info->active_layer = NULL;
++
++ if (*layer == info->floating_sel)
++ info->floating_sel = NULL;
+
+ group = gimp_group_layer_new (image);
+
+@@ -1150,6 +1162,13 @@ xcf_load_layer_props (XcfInfo *info,
+ g_object_ref_sink (*layer);
+ g_object_unref (*layer);
+ *layer = group;
++
++ if (is_active_layer)
++ info->active_layer = *layer;
++
++ /* Don't restore info->floating_sel because group layers
++ * can't be floating selections
++ */
+ }
+ break;
+
+@@ -1220,6 +1239,12 @@ xcf_load_channel_props (XcfInfo *info,
+ {
+ GimpChannel *mask;
+
++ /* We're going to delete *channel, Don't leave its pointer
++ * in @info. See bug #767873.
++ */
++ if (*channel == info->active_channel)
++ info->active_channel = NULL;
++
+ mask =
+ gimp_selection_new (image,
+ gimp_item_get_width (GIMP_ITEM (*channel)),
+@@ -1234,6 +1259,10 @@ xcf_load_channel_props (XcfInfo *info,
+ *channel = mask;
+ (*channel)->boundary_known = FALSE;
+ (*channel)->bounds_known = FALSE;
++
++ /* Don't restore info->active_channel because the
++ * selection can't be the active channel
++ */
+ }
+ break;
+
+--
+cgit v0.12
+
diff --git a/media-gfx/gimp/gimp-2.8.14-r2.ebuild b/media-gfx/gimp/gimp-2.8.14-r2.ebuild
new file mode 100644
index 000000000000..76c3efe79e83
--- /dev/null
+++ b/media-gfx/gimp/gimp-2.8.14-r2.ebuild
@@ -0,0 +1,171 @@
+# Copyright 1999-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit versionator virtualx autotools eutils gnome2 fdo-mime multilib python-single-r1
+
+DESCRIPTION="GNU Image Manipulation Program"
+HOMEPAGE="http://www.gimp.org/"
+SRC_URI="mirror://gimp/v$(get_version_component_range 1-2)/${P}.tar.bz2"
+LICENSE="GPL-3 LGPL-3"
+SLOT="2"
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~sparc ~x86 ~x86-interix ~amd64-linux ~arm-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~x64-solaris ~x86-solaris"
+
+LANGS="am ar ast az be bg br ca ca@valencia cs csb da de dz el en_CA en_GB eo es et eu fa fi fr ga gl gu he hi hr hu id is it ja ka kk km kn ko lt lv mk ml ms my nb nds ne nl nn oc pa pl pt pt_BR ro ru rw si sk sl sr sr@latin sv ta te th tr tt uk vi xh yi zh_CN zh_HK zh_TW"
+IUSE="alsa aalib altivec aqua bzip2 curl dbus debug doc exif gnome postscript jpeg jpeg2k lcms cpu_flags_x86_mmx mng pdf png python smp cpu_flags_x86_sse svg tiff udev webkit wmf xpm"
+
+for lang in ${LANGS}; do
+ IUSE+=" linguas_${lang}"
+done
+
+RDEPEND=">=dev-libs/glib-2.30.2:2
+ >=dev-libs/atk-2.2.0
+ >=x11-libs/gtk+-2.24.10:2
+ >=x11-libs/gdk-pixbuf-2.24.1:2
+ >=x11-libs/cairo-1.10.2
+ >=x11-libs/pango-1.29.4
+ xpm? ( x11-libs/libXpm )
+ >=media-libs/freetype-2.1.7
+ >=media-libs/fontconfig-2.2.0
+ sys-libs/zlib
+ dev-libs/libxml2
+ dev-libs/libxslt
+ x11-themes/hicolor-icon-theme
+ >=media-libs/babl-0.1.10
+ >=media-libs/gegl-0.2.0:0
+ aalib? ( media-libs/aalib )
+ alsa? ( media-libs/alsa-lib )
+ aqua? ( x11-libs/gtk-mac-integration )
+ curl? ( net-misc/curl )
+ dbus? ( dev-libs/dbus-glib )
+ gnome? ( gnome-base/gvfs )
+ webkit? ( >=net-libs/webkit-gtk-1.6.1:2 )
+ jpeg? ( virtual/jpeg:0 )
+ jpeg2k? ( media-libs/jasper )
+ exif? ( >=media-libs/libexif-0.6.15 )
+ lcms? ( >=media-libs/lcms-2.2:2 )
+ mng? ( media-libs/libmng )
+ pdf? ( >=app-text/poppler-0.12.4[cairo] )
+ png? ( >=media-libs/libpng-1.2.37:0 )
+ python? (
+ ${PYTHON_DEPS}
+ >=dev-python/pygtk-2.10.4:2[${PYTHON_USEDEP}]
+ )
+ tiff? ( >=media-libs/tiff-3.5.7:0 )
+ svg? ( >=gnome-base/librsvg-2.36.0:2 )
+ wmf? ( >=media-libs/libwmf-0.2.8 )
+ x11-libs/libXcursor
+ sys-libs/zlib
+ bzip2? ( app-arch/bzip2 )
+ postscript? ( app-text/ghostscript-gpl )
+ udev? ( virtual/libgudev:= )"
+DEPEND="${RDEPEND}
+ sys-apps/findutils
+ virtual/pkgconfig
+ >=dev-util/intltool-0.40.1
+ >=sys-devel/gettext-0.19
+ doc? ( >=dev-util/gtk-doc-1 )
+ >=sys-devel/libtool-2.2
+ >=sys-devel/automake-1.11
+ dev-util/gtk-doc-am" # due to our call to eautoreconf below (bug #386453)
+
+DOCS="AUTHORS ChangeLog* HACKING NEWS README*"
+
+S="${WORKDIR}"/${P}
+
+REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )"
+
+pkg_setup() {
+ G2CONF="--enable-default-binary \
+ --disable-silent-rules \
+ $(use_with !aqua x) \
+ $(use_with aalib aa) \
+ $(use_with alsa) \
+ $(use_enable altivec) \
+ $(use_with bzip2) \
+ $(use_with curl libcurl) \
+ $(use_with dbus) \
+ $(use_with gnome gvfs) \
+ $(use_with webkit) \
+ $(use_with jpeg libjpeg) \
+ $(use_with jpeg2k libjasper) \
+ $(use_with exif libexif) \
+ $(use_with lcms lcms lcms2) \
+ $(use_with postscript gs) \
+ $(use_enable cpu_flags_x86_mmx mmx) \
+ $(use_with mng libmng) \
+ $(use_with pdf poppler) \
+ $(use_with png libpng) \
+ $(use_enable python) \
+ $(use_enable smp mp) \
+ $(use_enable cpu_flags_x86_sse sse) \
+ $(use_with svg librsvg) \
+ $(use_with tiff libtiff) \
+ $(use_with udev gudev) \
+ $(use_with wmf) \
+ --with-xmc \
+ $(use_with xpm libxpm) \
+ --without-xvfb-run"
+
+ if use python; then
+ python-single-r1_pkg_setup
+ fi
+}
+
+src_prepare() {
+ epatch "${FILESDIR}"/${P}-blend-center.patch # bug 558878
+ epatch "${FILESDIR}"/${PN}-2.7.4-no-deprecation.patch # bug 395695, comment 9 and 16
+ epatch "${FILESDIR}"/${PN}-2.8.10-clang.patch # bug 449370 compile with clang
+ epatch "${FILESDIR}"/${PN}-2.9.2-CVE-2016-4994.patch # bug 586666
+
+ sed -i -e 's/== "xquartz"/= "xquartz"/' configure.ac || die #494864
+ eautoreconf # If you remove this: remove dev-util/gtk-doc-am from DEPEND, too
+
+ gnome2_src_prepare
+}
+
+_clean_up_locales() {
+ einfo "Cleaning up locales..."
+ for lang in ${LANGS}; do
+ use "linguas_${lang}" && {
+ einfo "- keeping ${lang}"
+ continue
+ }
+ rm -Rf "${ED}"/usr/share/locale/"${lang}" || die
+ done
+}
+
+src_test() {
+ Xemake check
+}
+
+src_install() {
+ gnome2_src_install
+
+ if use python; then
+ python_optimize
+ fi
+
+ # Workaround for bug #321111 to give GIMP the least
+ # precedence on PDF documents by default
+ mv "${ED}"/usr/share/applications/{,zzz-}gimp.desktop || die
+
+ prune_libtool_files --all
+
+ # Prevent dead symlink gimp-console.1 from downstream man page compression (bug #433527)
+ local gimp_app_version=$(get_version_component_range 1-2)
+ mv "${ED}"/usr/share/man/man1/gimp-console{-${gimp_app_version},}.1 || die
+
+ _clean_up_locales
+}
+
+pkg_postinst() {
+ gnome2_pkg_postinst
+}
+
+pkg_postrm() {
+ gnome2_pkg_postrm
+}
diff --git a/media-gfx/gimp/gimp-2.8.16-r1.ebuild b/media-gfx/gimp/gimp-2.8.16-r1.ebuild
new file mode 100644
index 000000000000..163f91eeb832
--- /dev/null
+++ b/media-gfx/gimp/gimp-2.8.16-r1.ebuild
@@ -0,0 +1,171 @@
+# Copyright 1999-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit versionator virtualx autotools eutils gnome2 fdo-mime multilib python-single-r1
+
+DESCRIPTION="GNU Image Manipulation Program"
+HOMEPAGE="http://www.gimp.org/"
+SRC_URI="mirror://gimp/v$(get_version_component_range 1-2)/${P}.tar.bz2"
+LICENSE="GPL-3 LGPL-3"
+SLOT="2"
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~sparc ~x86 ~x86-interix ~amd64-linux ~arm-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~x64-solaris ~x86-solaris"
+
+LANGS="am ar ast az be bg br ca ca@valencia cs csb da de dz el en_CA en_GB eo es et eu fa fi fr ga gl gu he hi hr hu id is it ja ka kk km kn ko lt lv mk ml ms my nb nds ne nl nn oc pa pl pt pt_BR ro ru rw si sk sl sr sr@latin sv ta te th tr tt uk vi xh yi zh_CN zh_HK zh_TW"
+IUSE="alsa aalib altivec aqua bzip2 curl dbus debug doc exif gnome postscript jpeg jpeg2k lcms cpu_flags_x86_mmx mng pdf png python smp cpu_flags_x86_sse svg tiff udev webkit wmf xpm"
+
+for lang in ${LANGS}; do
+ IUSE+=" linguas_${lang}"
+done
+
+RDEPEND=">=dev-libs/glib-2.30.2:2
+ >=dev-libs/atk-2.2.0
+ >=x11-libs/gtk+-2.24.10:2
+ >=x11-libs/gdk-pixbuf-2.24.1:2
+ >=x11-libs/cairo-1.10.2
+ >=x11-libs/pango-1.29.4
+ xpm? ( x11-libs/libXpm )
+ >=media-libs/freetype-2.1.7
+ >=media-libs/fontconfig-2.2.0
+ sys-libs/zlib
+ dev-libs/libxml2
+ dev-libs/libxslt
+ x11-themes/hicolor-icon-theme
+ >=media-libs/babl-0.1.10
+ >=media-libs/gegl-0.2.0:0
+ aalib? ( media-libs/aalib )
+ alsa? ( media-libs/alsa-lib )
+ aqua? ( x11-libs/gtk-mac-integration )
+ curl? ( net-misc/curl )
+ dbus? ( dev-libs/dbus-glib )
+ gnome? ( gnome-base/gvfs )
+ webkit? ( >=net-libs/webkit-gtk-1.6.1:2 )
+ jpeg? ( virtual/jpeg:0 )
+ jpeg2k? ( media-libs/jasper )
+ exif? ( >=media-libs/libexif-0.6.15 )
+ lcms? ( >=media-libs/lcms-2.2:2 )
+ mng? ( media-libs/libmng )
+ pdf? ( >=app-text/poppler-0.12.4[cairo] )
+ png? ( >=media-libs/libpng-1.2.37:0 )
+ python? (
+ ${PYTHON_DEPS}
+ >=dev-python/pygtk-2.10.4:2[${PYTHON_USEDEP}]
+ )
+ tiff? ( >=media-libs/tiff-3.5.7:0 )
+ svg? ( >=gnome-base/librsvg-2.36.0:2 )
+ wmf? ( >=media-libs/libwmf-0.2.8 )
+ x11-libs/libXcursor
+ sys-libs/zlib
+ bzip2? ( app-arch/bzip2 )
+ postscript? ( app-text/ghostscript-gpl )
+ udev? ( virtual/libgudev:= )"
+DEPEND="${RDEPEND}
+ sys-apps/findutils
+ virtual/pkgconfig
+ >=dev-util/intltool-0.40.1
+ >=sys-devel/gettext-0.19
+ doc? ( >=dev-util/gtk-doc-1 )
+ >=sys-devel/libtool-2.2
+ >=sys-devel/automake-1.11
+ dev-util/gtk-doc-am" # due to our call to eautoreconf below (bug #386453)
+
+DOCS="AUTHORS ChangeLog* HACKING NEWS README*"
+
+S="${WORKDIR}"/${P}
+
+REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )"
+
+pkg_setup() {
+ G2CONF="--enable-default-binary \
+ --disable-silent-rules \
+ $(use_with !aqua x) \
+ $(use_with aalib aa) \
+ $(use_with alsa) \
+ $(use_enable altivec) \
+ $(use_with bzip2) \
+ $(use_with curl libcurl) \
+ $(use_with dbus) \
+ $(use_with gnome gvfs) \
+ $(use_with webkit) \
+ $(use_with jpeg libjpeg) \
+ $(use_with jpeg2k libjasper) \
+ $(use_with exif libexif) \
+ $(use_with lcms lcms lcms2) \
+ $(use_with postscript gs) \
+ $(use_enable cpu_flags_x86_mmx mmx) \
+ $(use_with mng libmng) \
+ $(use_with pdf poppler) \
+ $(use_with png libpng) \
+ $(use_enable python) \
+ $(use_enable smp mp) \
+ $(use_enable cpu_flags_x86_sse sse) \
+ $(use_with svg librsvg) \
+ $(use_with tiff libtiff) \
+ $(use_with udev gudev) \
+ $(use_with wmf) \
+ --with-xmc \
+ $(use_with xpm libxpm) \
+ --without-xvfb-run"
+
+ if use python; then
+ python-single-r1_pkg_setup
+ fi
+}
+
+src_prepare() {
+ epatch "${FILESDIR}"/${PN}-2.8.14-blend-center.patch # bug 558878
+ epatch "${FILESDIR}"/${PN}-2.7.4-no-deprecation.patch # bug 395695, comment 9 and 16
+ epatch "${FILESDIR}"/${PN}-2.8.10-clang.patch # bug 449370 compile with clang
+ epatch "${FILESDIR}"/${PN}-2.9.2-CVE-2016-4994.patch # bug 586666
+
+ sed -i -e 's/== "xquartz"/= "xquartz"/' configure.ac || die #494864
+ eautoreconf # If you remove this: remove dev-util/gtk-doc-am from DEPEND, too
+
+ gnome2_src_prepare
+}
+
+_clean_up_locales() {
+ einfo "Cleaning up locales..."
+ for lang in ${LANGS}; do
+ use "linguas_${lang}" && {
+ einfo "- keeping ${lang}"
+ continue
+ }
+ rm -Rf "${ED}"/usr/share/locale/"${lang}" || die
+ done
+}
+
+src_test() {
+ Xemake check
+}
+
+src_install() {
+ gnome2_src_install
+
+ if use python; then
+ python_optimize
+ fi
+
+ # Workaround for bug #321111 to give GIMP the least
+ # precedence on PDF documents by default
+ mv "${ED}"/usr/share/applications/{,zzz-}gimp.desktop || die
+
+ prune_libtool_files --all
+
+ # Prevent dead symlink gimp-console.1 from downstream man page compression (bug #433527)
+ local gimp_app_version=$(get_version_component_range 1-2)
+ mv "${ED}"/usr/share/man/man1/gimp-console{-${gimp_app_version},}.1 || die
+
+ _clean_up_locales
+}
+
+pkg_postinst() {
+ gnome2_pkg_postinst
+}
+
+pkg_postrm() {
+ gnome2_pkg_postrm
+}
diff --git a/media-gfx/gimp/gimp-2.9.2-r1.ebuild b/media-gfx/gimp/gimp-2.9.2-r1.ebuild
new file mode 100644
index 000000000000..722f09baf5fe
--- /dev/null
+++ b/media-gfx/gimp/gimp-2.9.2-r1.ebuild
@@ -0,0 +1,168 @@
+# Copyright 1999-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit versionator virtualx autotools eutils gnome2 fdo-mime multilib python-single-r1
+
+DESCRIPTION="GNU Image Manipulation Program"
+HOMEPAGE="http://www.gimp.org/"
+SRC_URI="mirror://gimp/v$(get_version_component_range 1-2)/${P}.tar.bz2"
+LICENSE="GPL-3 LGPL-3"
+SLOT="2"
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~sparc ~x86 ~x86-interix ~amd64-linux ~arm-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~x64-solaris ~x86-solaris"
+
+LANGS="am ar ast az be bg br ca ca@valencia cs csb da de dz el en_CA en_GB eo es et eu fa fi fr ga gl gu he hi hr hu id is it ja ka kk km kn ko lt lv mk ml ms my nb nds ne nl nn oc pa pl pt pt_BR ro ru rw si sk sl sr sr@latin sv ta te th tr tt uk vi xh yi zh_CN zh_HK zh_TW"
+IUSE="alsa aalib altivec aqua debug doc openexr gnome postscript jpeg2k cpu_flags_x86_mmx mng pdf python smp cpu_flags_x86_sse svg tiff udev webkit wmf xpm"
+
+for lang in ${LANGS}; do
+ IUSE+=" linguas_${lang}"
+done
+
+RDEPEND=">=dev-libs/glib-2.30.2:2
+ >=dev-libs/atk-2.2.0
+ >=x11-libs/gtk+-2.24.10:2
+ dev-util/gtk-update-icon-cache
+ >=x11-libs/gdk-pixbuf-2.31:2
+ >=x11-libs/cairo-1.12.2
+ >=x11-libs/pango-1.29.4
+ xpm? ( x11-libs/libXpm )
+ >=media-libs/freetype-2.1.7
+ >=media-libs/harfbuzz-0.9.19
+ >=media-libs/gexiv2-0.6.1
+ >=media-libs/fontconfig-2.2.0
+ sys-libs/zlib
+ dev-libs/libxml2
+ dev-libs/libxslt
+ x11-themes/hicolor-icon-theme
+ >=media-libs/babl-0.1.14
+ >=media-libs/gegl-0.3.4:0.3[cairo]
+ >=dev-libs/glib-2.43
+ aalib? ( media-libs/aalib )
+ alsa? ( media-libs/alsa-lib )
+ aqua? ( x11-libs/gtk-mac-integration )
+ dev-util/gdbus-codegen
+ gnome? ( gnome-base/gvfs )
+ webkit? ( >=net-libs/webkit-gtk-1.6.1:2 )
+ virtual/jpeg:0
+ jpeg2k? ( media-libs/jasper )
+ >=media-libs/lcms-2.2:2
+ mng? ( media-libs/libmng )
+ openexr? ( >=media-libs/openexr-1.6.1 )
+ pdf? ( >=app-text/poppler-0.12.4[cairo] >=app-text/poppler-data-0.4.7 )
+ >=media-libs/libpng-1.2.37:0
+ python? (
+ ${PYTHON_DEPS}
+ >=dev-python/pygtk-2.10.4:2[${PYTHON_USEDEP}]
+ )
+ tiff? ( >=media-libs/tiff-3.5.7:0 )
+ svg? ( >=gnome-base/librsvg-2.36.0:2 )
+ wmf? ( >=media-libs/libwmf-0.2.8 )
+ x11-libs/libXcursor
+ sys-libs/zlib
+ app-arch/bzip2
+ >=app-arch/xz-utils-5.0.0
+ postscript? ( app-text/ghostscript-gpl )
+ udev? ( virtual/libgudev:= )"
+DEPEND="${RDEPEND}
+ sys-apps/findutils
+ virtual/pkgconfig
+ >=dev-util/intltool-0.40.1
+ >=sys-devel/gettext-0.19
+ doc? ( >=dev-util/gtk-doc-1 )
+ >=sys-devel/libtool-2.2
+ >=sys-devel/automake-1.11
+ dev-util/gtk-doc-am" # due to our call to eautoreconf below (bug #386453)
+
+DOCS="AUTHORS ChangeLog* HACKING NEWS README*"
+
+S="${WORKDIR}"/${P}
+
+REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )"
+
+pkg_setup() {
+ G2CONF="--enable-default-binary \
+ --disable-silent-rules \
+ $(use_with !aqua x) \
+ --without-libmypaint \
+ $(use_with aalib aa) \
+ $(use_with alsa) \
+ $(use_enable altivec) \
+ $(use_with webkit) \
+ $(use_with jpeg2k libjasper) \
+ $(use_with postscript gs) \
+ $(use_enable cpu_flags_x86_mmx mmx) \
+ $(use_with mng libmng) \
+ $(use_with openexr) \
+ $(use_with pdf poppler) \
+ $(use_enable python) \
+ $(use_enable smp mp) \
+ $(use_enable cpu_flags_x86_sse sse) \
+ $(use_with svg librsvg) \
+ $(use_with tiff libtiff) \
+ $(use_with udev gudev) \
+ $(use_with wmf) \
+ --with-xmc \
+ $(use_with xpm libxpm) \
+ --without-xvfb-run"
+
+ if use python; then
+ python-single-r1_pkg_setup
+ fi
+}
+
+src_prepare() {
+ epatch "${FILESDIR}"/${PN}-2.9.2-version.patch
+ epatch "${FILESDIR}"/${PN}-2.9.2-no-deprecation.patch # bug 395695, comment 9 and 16
+ epatch "${FILESDIR}"/${P}-CVE-2016-4994.patch # bug 586666
+
+ sed -i -e 's/== "xquartz"/= "xquartz"/' configure.ac || die #494864
+ eautoreconf # If you remove this: remove dev-util/gtk-doc-am from DEPEND, too
+
+ gnome2_src_prepare
+}
+
+_clean_up_locales() {
+ einfo "Cleaning up locales..."
+ for lang in ${LANGS}; do
+ use "linguas_${lang}" && {
+ einfo "- keeping ${lang}"
+ continue
+ }
+ rm -Rf "${ED}"/usr/share/locale/"${lang}" || die
+ done
+}
+
+src_test() {
+ Xemake check
+}
+
+src_install() {
+ gnome2_src_install
+
+ if use python; then
+ python_optimize
+ fi
+
+ # Workaround for bug #321111 to give GIMP the least
+ # precedence on PDF documents by default
+ mv "${ED}"/usr/share/applications/{,zzz-}gimp.desktop || die
+
+ prune_libtool_files --all
+
+ # Prevent dead symlink gimp-console.1 from downstream man page compression (bug #433527)
+ local gimp_app_version=$(get_version_component_range 1-2)
+ mv "${ED}"/usr/share/man/man1/gimp-console{-${gimp_app_version},}.1 || die
+
+ _clean_up_locales
+}
+
+pkg_postinst() {
+ gnome2_pkg_postinst
+}
+
+pkg_postrm() {
+ gnome2_pkg_postrm
+}