media-gfx/gimp: Fix suppressing system CFLAGS on configuration tests
[gentoo.git] / media-gfx / gimp / gimp-2.9.8-r1.ebuild
1 # Copyright 1999-2020 Gentoo Authors
2 # Distributed under the terms of the GNU General Public License v2
3
4 EAPI=6
5 PYTHON_COMPAT=( python2_7 )
6
7 inherit versionator virtualx autotools eutils gnome2 multilib python-single-r1
8
9 DESCRIPTION="GNU Image Manipulation Program"
10 HOMEPAGE="https://www.gimp.org/"
11 SRC_URI="mirror://gimp/v$(get_version_component_range 1-2)/${P}.tar.bz2"
12 LICENSE="GPL-3 LGPL-3"
13 SLOT="2"
14 KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~ppc ~ppc64 ~x86"
15
16 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"
17 IUSE="alsa aalib altivec aqua debug doc openexr gnome postscript cpu_flags_x86_mmx mng pdf python smp cpu_flags_x86_sse udev vector-icons webp wmf xpm"
18
19 RESTRICT="!test? ( test )"
20
21 RDEPEND=">=dev-libs/glib-2.40.0:2
22         >=dev-libs/atk-2.2.0
23         >=x11-libs/gtk+-2.24.10:2
24         dev-util/gtk-update-icon-cache
25         >=x11-libs/gdk-pixbuf-2.31:2
26         >=x11-libs/cairo-1.12.2
27         >=x11-libs/pango-1.29.4
28         xpm? ( x11-libs/libXpm )
29         >=media-libs/freetype-2.1.7
30         >=media-libs/harfbuzz-0.9.19
31         >=media-libs/gexiv2-0.10.6
32         >=media-libs/libmypaint-1.3.0[gegl]
33         >=media-libs/fontconfig-2.2.0
34         sys-libs/zlib
35         dev-libs/libxml2
36         dev-libs/libxslt
37         x11-themes/hicolor-icon-theme
38         >=media-libs/babl-0.1.38
39         >=media-libs/gegl-0.3.24:0.3[cairo]
40         aalib? ( media-libs/aalib )
41         alsa? ( media-libs/alsa-lib )
42         aqua? ( x11-libs/gtk-mac-integration )
43         gnome? ( gnome-base/gvfs )
44         virtual/jpeg:0
45         >=media-libs/lcms-2.8:2
46         mng? ( media-libs/libmng )
47         openexr? ( >=media-libs/openexr-1.6.1 )
48         pdf? ( >=app-text/poppler-0.44[cairo] >=app-text/poppler-data-0.4.7 )
49         >=media-libs/libpng-1.6.25:0
50         python? (
51                 ${PYTHON_DEPS}
52                 >=dev-python/pygtk-2.10.4:2[${PYTHON_USEDEP}]
53                 >=dev-python/pycairo-1.0.2[${PYTHON_USEDEP}]
54         )
55         >=media-libs/tiff-3.5.7:0
56         >=gnome-base/librsvg-2.40.6:2
57         webp? ( >=media-libs/libwebp-0.6.0 )
58         wmf? ( >=media-libs/libwmf-0.2.8 )
59         net-libs/glib-networking[ssl]
60         x11-libs/libXcursor
61         sys-libs/zlib
62         app-arch/bzip2
63         >=app-arch/xz-utils-5.0.0
64         postscript? ( app-text/ghostscript-gpl )
65         udev? ( dev-libs/libgudev:= )"
66 DEPEND="${RDEPEND}
67         >=dev-lang/perl-5.10.0
68         dev-libs/appstream-glib
69         sys-apps/findutils
70         virtual/pkgconfig
71         >=dev-util/intltool-0.40.1
72         >=sys-devel/gettext-0.19
73         doc? ( >=dev-util/gtk-doc-1 )
74         >=sys-devel/libtool-2.2
75         >=sys-devel/automake-1.11
76         dev-util/gtk-doc-am"  # due to our call to eautoreconf below (bug #386453)
77
78 DOCS="AUTHORS ChangeLog* HACKING NEWS README*"
79
80 REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )"
81
82 pkg_setup() {
83         if use python; then
84                 python-single-r1_pkg_setup
85         fi
86 }
87
88 PATCHES=(
89         "${FILESDIR}"/${P}-cve-2017-17784.patch  # bug 641954
90         "${FILESDIR}"/${PN}-2.8.22-cve-2017-17785.patch  # bug 641954
91         "${FILESDIR}"/${PN}-2.8.22-cve-2017-17786-1.patch  # bug 641954
92         "${FILESDIR}"/${PN}-2.8.22-cve-2017-17786-2.patch  # bug 641954
93         "${FILESDIR}"/${PN}-2.8.22-cve-2017-17787.patch  # bug 641954
94         # NOTE:                           CVE-2017-17788 already fixed upstream
95         "${FILESDIR}"/${PN}-2.8.22-cve-2017-17789.patch  # bug 641954
96 )
97
98 src_prepare() {
99         # Disable system CFLAGS suppressing on SSE{2,4.1} support tests by addition of {SSE2,SSE4_1}_EXTRA_CFLAGS: bug #702554
100         sed -i -e 's:\$intrinsics_save_CFLAGS \$SSE2_EXTRA_CFLAGS:\$SSE2_EXTRA_CFLAGS \$intrinsics_save_CFLAGS:' \
101                 -e 's:\$intrinsics_save_CFLAGS \$SSE4_1_EXTRA_CFLAGS:\$SSE4_1_EXTRA_CFLAGS \$intrinsics_save_CFLAGS:' configure.ac || die
102
103         gnome2_src_prepare
104
105         sed -i -e 's/== "xquartz"/= "xquartz"/' configure.ac || die #494864
106         sed 's:-DGIMP_DISABLE_DEPRECATED:-DGIMP_protect_DISABLE_DEPRECATED:g' -i configure.ac || die #615144
107         eautoreconf  # If you remove this: remove dev-util/gtk-doc-am from DEPEND, too
108
109         sed 's:-DGIMP_protect_DISABLE_DEPRECATED:-DGIMP_DISABLE_DEPRECATED:g' -i configure || die #615144
110         fgrep -q GIMP_DISABLE_DEPRECATED configure || die #615144, self-test
111 }
112
113 src_configure() {
114         local myconf=(
115                 GEGL=${EPREFIX}/usr/bin/gegl-0.3
116                 GDBUS_CODEGEN=${EPREFIX}/bin/false
117
118                 --enable-default-binary
119                 --disable-silent-rules
120
121                 $(use_with !aqua x)
122                 $(use_with aalib aa)
123                 $(use_with alsa)
124                 $(use_enable altivec)
125                 --with-appdata-test
126                 --without-webkit
127                 --without-libjasper
128                 $(use_with postscript gs)
129                 $(use_enable cpu_flags_x86_mmx mmx)
130                 $(use_with mng libmng)
131                 $(use_with openexr)
132                 $(use_with webp)
133                 $(use_with pdf poppler)
134                 $(use_enable python)
135                 $(use_enable smp mp)
136                 $(use_enable cpu_flags_x86_sse sse)
137                 $(use_with udev gudev)
138                 $(use_with wmf)
139                 --with-xmc
140                 $(use_with xpm libxpm)
141                 $(use_enable vector-icons)
142                 --without-xvfb-run
143         )
144
145         gnome2_src_configure "${myconf[@]}"
146 }
147
148 src_compile() {
149         # Bugs #569738 and #591214
150         local nv
151         for nv in /dev/nvidia-uvm /dev/nvidiactl /dev/nvidia{0..9} ; do
152                 # We do not check for existence as they may show up later
153                 # https://bugs.gentoo.org/show_bug.cgi?id=569738#c21
154                 addwrite "${nv}"
155         done
156         addwrite /dev/dri/  # bug #574038
157         addwrite /dev/ati/  # bug 589198
158         addwrite /proc/mtrr  # bug 589198
159
160         export XDG_DATA_DIRS=${EPREFIX}/usr/share  # bug 587004
161         gnome2_src_compile
162 }
163
164 _clean_up_locales() {
165         [[ -z ${LINGUAS+set} ]] && return
166         einfo "Cleaning up locales..."
167         for lang in ${LANGS}; do
168                 has ${lang} ${LINGUAS} && {
169                         einfo "- keeping ${lang}"
170                         continue
171                 }
172                 rm -Rf "${ED}"/usr/share/locale/"${lang}" || die
173         done
174 }
175
176 src_test() {
177         virtx emake check
178 }
179
180 src_install() {
181         gnome2_src_install
182
183         if use python; then
184                 python_optimize
185         fi
186
187         # Workaround for bug #321111 to give GIMP the least
188         # precedence on PDF documents by default
189         mv "${ED}"/usr/share/applications/{,zzz-}gimp.desktop || die
190
191         prune_libtool_files --all
192
193         # Prevent dead symlink gimp-console.1 from downstream man page compression (bug #433527)
194         local gimp_app_version=$(get_version_component_range 1-2)
195         mv "${ED}"/usr/share/man/man1/gimp-console{-${gimp_app_version},}.1 || die
196
197         _clean_up_locales
198 }
199
200 pkg_postinst() {
201         gnome2_pkg_postinst
202 }
203
204 pkg_postrm() {
205         gnome2_pkg_postrm
206 }