Gentoo Archives: gentoo-commits

From: Pacho Ramos <pacho@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] repo/gentoo:master commit in: media-libs/imlib/, media-libs/imlib/files/
Date: Sun, 09 Oct 2016 11:18:16
Message-Id: 1476011884.c6d0ed89ad5653421f21cbf3b3d40fd9a1361828.pacho@gentoo
1 commit: c6d0ed89ad5653421f21cbf3b3d40fd9a1361828
2 Author: Pacho Ramos <pacho <AT> gentoo <DOT> org>
3 AuthorDate: Sun Oct 9 11:05:30 2016 +0000
4 Commit: Pacho Ramos <pacho <AT> gentoo <DOT> org>
5 CommitDate: Sun Oct 9 11:18:04 2016 +0000
6 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=c6d0ed89
7
8 media-libs/imlib: Fix giflib-5.1 support (#538976), pkgconfig file (#499268), dependencies and bump eapi.
9
10 Package-Manager: portage-2.3.1
11
12 media-libs/imlib/files/imlib-1.9.15-asneeded.patch | 4 +-
13 .../files/imlib-1.9.15-bpp16-CVE-2007-3568.patch | 4 +-
14 .../imlib/files/imlib-1.9.15-giflib51-1.patch | 122 +++++++++++++++++++++
15 .../imlib/files/imlib-1.9.15-giflib51-2.patch | 107 ++++++++++++++++++
16 media-libs/imlib/files/imlib-1.9.15-libpng15.patch | 16 +--
17 media-libs/imlib/files/imlib-1.9.15-linking.patch | 9 ++
18 media-libs/imlib/imlib-1.9.15-r5.ebuild | 73 ++++++++++++
19 7 files changed, 323 insertions(+), 12 deletions(-)
20
21 diff --git a/media-libs/imlib/files/imlib-1.9.15-asneeded.patch b/media-libs/imlib/files/imlib-1.9.15-asneeded.patch
22 index 3b7dd8a..d9ccde7 100644
23 --- a/media-libs/imlib/files/imlib-1.9.15-asneeded.patch
24 +++ b/media-libs/imlib/files/imlib-1.9.15-asneeded.patch
25 @@ -4,8 +4,8 @@ an error...
26
27 Adding include is necessary for gcc-4.3.
28
29 ---- configure.in 2008-07-16 09:18:35 +0000
30 -+++ configure.in 2008-07-16 09:18:43 +0000
31 +--- a/configure.in 2008-07-16 09:18:35 +0000
32 ++++ b/configure.in 2008-07-16 09:18:43 +0000
33 @@ -61,6 +61,7 @@
34 AC_TRY_RUN([
35 #include <glib.h>
36
37 diff --git a/media-libs/imlib/files/imlib-1.9.15-bpp16-CVE-2007-3568.patch b/media-libs/imlib/files/imlib-1.9.15-bpp16-CVE-2007-3568.patch
38 index 94595ff..308f9ab 100644
39 --- a/media-libs/imlib/files/imlib-1.9.15-bpp16-CVE-2007-3568.patch
40 +++ b/media-libs/imlib/files/imlib-1.9.15-bpp16-CVE-2007-3568.patch
41 @@ -1,5 +1,5 @@
42 ---- Imlib/load.c.orig 2007-08-13 23:06:20.000000000 -0300
43 -+++ Imlib/load.c 2007-08-13 23:06:51.000000000 -0300
44 +--- a/Imlib/load.c.orig 2007-08-13 23:06:20.000000000 -0300
45 ++++ b/Imlib/load.c 2007-08-13 23:06:51.000000000 -0300
46 @@ -645,7 +645,7 @@
47 planes = (int)word;
48 fread(&word, 2, 1, file);
49
50 diff --git a/media-libs/imlib/files/imlib-1.9.15-giflib51-1.patch b/media-libs/imlib/files/imlib-1.9.15-giflib51-1.patch
51 new file mode 100644
52 index 00000000..d0e3ac7
53 --- /dev/null
54 +++ b/media-libs/imlib/files/imlib-1.9.15-giflib51-1.patch
55 @@ -0,0 +1,122 @@
56 +diff -Nru imlib-1.9.15.old/gdk_imlib/io-gif.c imlib-1.9.15/gdk_imlib/io-gif.c
57 +--- imlib-1.9.15.old/gdk_imlib/io-gif.c 2014-05-28 13:54:48.860293627 +0100
58 ++++ imlib-1.9.15/gdk_imlib/io-gif.c 2014-05-28 13:58:29.992185729 +0100
59 +@@ -1,8 +1,10 @@
60 + #include <config.h>
61 + #include "gdk_imlib.h"
62 + #include "gdk_imlib_private.h"
63 ++#include <gifutil.h>
64 +
65 + #ifndef HAVE_LIBGIF
66 ++/*------------------------*/
67 + unsigned char loader_gif (FILE *f, int *w, int *h, int *t)
68 + {
69 + return NULL;
70 +@@ -43,14 +45,14 @@
71 + {
72 + if (DGifGetRecordType(gif, &rec) == GIF_ERROR)
73 + {
74 +- PrintGifError();
75 ++ _PrintGifError(gif);
76 + rec = TERMINATE_RECORD_TYPE;
77 + }
78 + if ((rec == IMAGE_DESC_RECORD_TYPE) && (!done))
79 + {
80 + if (DGifGetImageDesc(gif) == GIF_ERROR)
81 + {
82 +- PrintGifError();
83 ++ _PrintGifError(gif);
84 + rec = TERMINATE_RECORD_TYPE;
85 + }
86 + *w = gif->Image.Width;
87 +diff -Nru imlib-1.9.15.old/gifutil.h imlib-1.9.15/gifutil.h
88 +--- imlib-1.9.15.old/gifutil.h 1970-01-01 01:00:00.000000000 +0100
89 ++++ imlib-1.9.15/gifutil.h 2014-05-28 13:57:45.019424755 +0100
90 +@@ -0,0 +1,26 @@
91 ++#ifndef __GIFUTIL_H__
92 ++#define __GIFUTIL_H__
93 ++
94 ++static void
95 ++_PrintGifError(GifFileType *gif)
96 ++{
97 ++ /* GIFLIB_MAJOR is only defined in libgif >= 4.2.0 */
98 ++ /* libgif 4.2.0 has retired PrintGifError() and added GifErrorString() */
99 ++#if defined(GIFLIB_MAJOR) && defined(GIFLIB_MINOR) && \
100 ++ ((GIFLIB_MAJOR == 4 && GIFLIB_MINOR >= 2) || GIFLIB_MAJOR > 4)
101 ++ /* Static string actually, hence the const char* cast */
102 ++
103 ++#if GIFLIB_MAJOR >= 5
104 ++ const char* gifliberr = (const char*) GifErrorString(gif->Error);
105 ++#else
106 ++ const char* gifliberr = (const char*) GifErrorString();
107 ++#endif
108 ++ if (gifliberr == NULL)
109 ++ gifliberr = "Unknown error";
110 ++ fprintf(stderr, "%s\n", gifliberr);
111 ++#else
112 ++ PrintGifError();
113 ++#endif
114 ++}
115 ++
116 ++#endif
117 +diff -Nru imlib-1.9.15.old/Imlib/load.c imlib-1.9.15/Imlib/load.c
118 +--- imlib-1.9.15.old/Imlib/load.c 2014-05-28 13:54:49.008295568 +0100
119 ++++ imlib-1.9.15/Imlib/load.c 2014-05-28 14:00:21.321983945 +0100
120 +@@ -3,6 +3,7 @@
121 + #include "Imlib.h"
122 + #include "Imlib_private.h"
123 + #include <setjmp.h>
124 ++#include <gifutil.h>
125 +
126 + #define G_MAXINT ((int) 0x7fffffff)
127 +
128 +@@ -431,6 +432,8 @@
129 + #endif /* HAVE_LIBTIFF */
130 +
131 + #ifdef HAVE_LIBGIF
132 ++/*------------------------*/
133 ++/*------------------------*/
134 + unsigned char *
135 + _LoadGIF(ImlibData * id, FILE *f, int *w, int *h, int *t)
136 + {
137 +@@ -454,22 +457,38 @@
138 + fd = fileno(f);
139 + /* Apparently rewind(f) isn't sufficient */
140 + lseek(fd, (long) 0, 0);
141 ++
142 ++#if GIFLIB_MAJOR >= 5
143 ++ int errCode = 0;
144 ++
145 ++ gif = DGifOpenFileHandle(fd, &errCode);
146 ++ if (!gif)
147 ++ {
148 ++ const char* gifliberr = (const char*) GifErrorString(errCode);
149 ++ if (gifliberr == NULL)
150 ++ gifliberr = "Unknown error";
151 ++ fprintf(stderr, "%s\n", gifliberr);
152 ++ return NULL;
153 ++ }
154 ++#else
155 + gif = DGifOpenFileHandle(fd);
156 +
157 + if (!gif)
158 + return NULL;
159 ++#endif
160 ++
161 + do
162 + {
163 + if (DGifGetRecordType(gif, &rec) == GIF_ERROR)
164 + {
165 +- PrintGifError();
166 ++ _PrintGifError(gif);
167 + rec = TERMINATE_RECORD_TYPE;
168 + }
169 + if ((rec == IMAGE_DESC_RECORD_TYPE) && (!done))
170 + {
171 + if (DGifGetImageDesc(gif) == GIF_ERROR)
172 + {
173 +- PrintGifError();
174 ++ _PrintGifError(gif);
175 + rec = TERMINATE_RECORD_TYPE;
176 + }
177 + *w = gif->Image.Width;
178
179 diff --git a/media-libs/imlib/files/imlib-1.9.15-giflib51-2.patch b/media-libs/imlib/files/imlib-1.9.15-giflib51-2.patch
180 new file mode 100644
181 index 00000000..7911e7c
182 --- /dev/null
183 +++ b/media-libs/imlib/files/imlib-1.9.15-giflib51-2.patch
184 @@ -0,0 +1,107 @@
185 +diff -Nru imlib-1.9.15.old/gifutil.h imlib-1.9.15/gifutil.h
186 +--- imlib-1.9.15.old/gifutil.h 2015-02-03 00:53:09.742075193 +0000
187 ++++ imlib-1.9.15/gifutil.h 2015-02-05 19:24:09.848783163 +0000
188 +@@ -2,7 +2,7 @@
189 + #define __GIFUTIL_H__
190 +
191 + static void
192 +-_PrintGifError(GifFileType *gif)
193 ++_PrintGifError(int errorCode)
194 + {
195 + /* GIFLIB_MAJOR is only defined in libgif >= 4.2.0 */
196 + /* libgif 4.2.0 has retired PrintGifError() and added GifErrorString() */
197 +@@ -11,7 +11,7 @@
198 + /* Static string actually, hence the const char* cast */
199 +
200 + #if GIFLIB_MAJOR >= 5
201 +- const char* gifliberr = (const char*) GifErrorString(gif->Error);
202 ++ const char* gifliberr = (const char*) GifErrorString(errorCode);
203 + #else
204 + const char* gifliberr = (const char*) GifErrorString();
205 + #endif
206 +diff -Nru imlib-1.9.15.old/Imlib/load.c imlib-1.9.15/Imlib/load.c
207 +--- imlib-1.9.15.old/Imlib/load.c 2015-02-03 00:53:09.742075193 +0000
208 ++++ imlib-1.9.15/Imlib/load.c 2015-02-05 19:30:12.847147998 +0000
209 +@@ -434,6 +434,19 @@
210 + #ifdef HAVE_LIBGIF
211 + /*------------------------*/
212 + /*------------------------*/
213 ++void
214 ++_CloseGIF(GifFileType *gif)
215 ++{
216 ++#if GIFLIB_MAJOR > 5 || (GIFLIB_MAJOR == 5 && GIFLIB_MINOR >= 1)
217 ++ int errCode = 0;
218 ++
219 ++ if (DGifCloseFile(gif, &errCode) != GIF_OK)
220 ++ _PrintGifError(errCode);
221 ++#else
222 ++ DGifCloseFile(gif);
223 ++#endif
224 ++}
225 ++
226 + unsigned char *
227 + _LoadGIF(ImlibData * id, FILE *f, int *w, int *h, int *t)
228 + {
229 +@@ -464,10 +477,7 @@
230 + gif = DGifOpenFileHandle(fd, &errCode);
231 + if (!gif)
232 + {
233 +- const char* gifliberr = (const char*) GifErrorString(errCode);
234 +- if (gifliberr == NULL)
235 +- gifliberr = "Unknown error";
236 +- fprintf(stderr, "%s\n", gifliberr);
237 ++ _PrintGifError(errCode);
238 + return NULL;
239 + }
240 + #else
241 +@@ -481,14 +491,14 @@
242 + {
243 + if (DGifGetRecordType(gif, &rec) == GIF_ERROR)
244 + {
245 +- _PrintGifError(gif);
246 ++ _PrintGifError(gif->Error);
247 + rec = TERMINATE_RECORD_TYPE;
248 + }
249 + if ((rec == IMAGE_DESC_RECORD_TYPE) && (!done))
250 + {
251 + if (DGifGetImageDesc(gif) == GIF_ERROR)
252 + {
253 +- _PrintGifError(gif);
254 ++ _PrintGifError(gif->Error);
255 + rec = TERMINATE_RECORD_TYPE;
256 + }
257 + *w = gif->Image.Width;
258 +@@ -500,13 +510,13 @@
259 + rows = malloc(*h * sizeof(GifRowType *));
260 + if (!rows)
261 + {
262 +- DGifCloseFile(gif);
263 ++ _CloseGIF(gif);
264 + return NULL;
265 + }
266 + data = _imlib_malloc_image(*w, *h);
267 + if (!data)
268 + {
269 +- DGifCloseFile(gif);
270 ++ _CloseGIF(gif);
271 + free(rows);
272 + return NULL;
273 + }
274 +@@ -517,7 +527,7 @@
275 + rows[i] = malloc(*w * sizeof(GifPixelType));
276 + if (!rows[i])
277 + {
278 +- DGifCloseFile(gif);
279 ++ _CloseGIF(gif);
280 + for (i = 0; i < *h; i++)
281 + if (rows[i])
282 + free(rows[i]);
283 +@@ -606,7 +616,7 @@
284 + }
285 + }
286 + }
287 +- DGifCloseFile(gif);
288 ++ _CloseGIF(gif);
289 + for (i = 0; i < *h; i++)
290 + free(rows[i]);
291 + free(rows);
292
293 diff --git a/media-libs/imlib/files/imlib-1.9.15-libpng15.patch b/media-libs/imlib/files/imlib-1.9.15-libpng15.patch
294 index 7837cd4..3539608 100644
295 --- a/media-libs/imlib/files/imlib-1.9.15-libpng15.patch
296 +++ b/media-libs/imlib/files/imlib-1.9.15-libpng15.patch
297 @@ -1,5 +1,5 @@
298 ---- gdk_imlib/io-png.c
299 -+++ gdk_imlib/io-png.c
300 +--- a/gdk_imlib/io-png.c
301 ++++ b/gdk_imlib/io-png.c
302 @@ -40,13 +40,13 @@
303 return NULL;
304 }
305 @@ -67,8 +67,8 @@
306 {
307 fclose(f);
308 png_destroy_write_struct(&png_ptr, (png_infopp) NULL);
309 ---- Imlib/load.c
310 -+++ Imlib/load.c
311 +--- a/Imlib/load.c
312 ++++ b/Imlib/load.c
313 @@ -197,12 +197,12 @@
314 png_destroy_read_struct(&png_ptr, NULL, NULL);
315 return NULL;
316 @@ -110,8 +110,8 @@
317 else
318 {
319 for (y = 0; y < *h; y++)
320 ---- Imlib/save.c
321 -+++ Imlib/save.c
322 +--- a/Imlib/save.c
323 ++++ b/Imlib/save.c
324 @@ -342,7 +342,7 @@
325 png_destroy_write_struct(&png_ptr, (png_infopp) NULL);
326 return 0;
327 @@ -121,8 +121,8 @@
328 {
329 fclose(f);
330 png_destroy_write_struct(&png_ptr, (png_infopp) NULL);
331 ---- Imlib/utils.c
332 -+++ Imlib/utils.c
333 +--- a/Imlib/utils.c
334 ++++ b/Imlib/utils.c
335 @@ -1981,14 +1981,13 @@
336 png_destroy_read_struct(&png_ptr, NULL, NULL);
337 return NULL;
338
339 diff --git a/media-libs/imlib/files/imlib-1.9.15-linking.patch b/media-libs/imlib/files/imlib-1.9.15-linking.patch
340 new file mode 100644
341 index 00000000..a00b089
342 --- /dev/null
343 +++ b/media-libs/imlib/files/imlib-1.9.15-linking.patch
344 @@ -0,0 +1,9 @@
345 +gentoo bug #499268
346 +--- a/Imlib/Makefile.am
347 ++++ b/Imlib/Makefile.am
348 +@@ -43,4 +43,4 @@
349 +
350 + check_PROGRAMS = t-load
351 +
352 +-t_load_LDADD = libImlib.la
353 ++t_load_LDADD = libImlib.la -lX11
354
355 diff --git a/media-libs/imlib/imlib-1.9.15-r5.ebuild b/media-libs/imlib/imlib-1.9.15-r5.ebuild
356 new file mode 100644
357 index 00000000..89c1968
358 --- /dev/null
359 +++ b/media-libs/imlib/imlib-1.9.15-r5.ebuild
360 @@ -0,0 +1,73 @@
361 +# Copyright 1999-2016 Gentoo Foundation
362 +# Distributed under the terms of the GNU General Public License v2
363 +# $Id$
364 +
365 +EAPI=6
366 +inherit autotools multilib-minimal
367 +
368 +PVP=(${PV//[-\._]/ })
369 +DESCRIPTION="Image loading and rendering library"
370 +HOMEPAGE="http://ftp.acc.umu.se/pub/GNOME/sources/imlib/1.9/"
371 +SRC_URI="mirror://gnome/sources/${PN}/${PVP[0]}.${PVP[1]}/${P}.tar.bz2
372 + mirror://gentoo/gtk-1-for-imlib.m4.bz2"
373 +
374 +LICENSE="GPL-2"
375 +SLOT="0"
376 +KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~sh ~sparc ~x86 ~x86-fbsd"
377 +IUSE="doc static-libs"
378 +
379 +RDEPEND="
380 + >=media-libs/tiff-3.9.7-r1:0[${MULTILIB_USEDEP}]
381 + >=media-libs/giflib-5.1:0=[${MULTILIB_USEDEP}]
382 + >=media-libs/libpng-1.2.51:0=[${MULTILIB_USEDEP}]
383 + >=virtual/jpeg-0-r2:0[${MULTILIB_USEDEP}]
384 + >=x11-libs/libICE-1.0.8-r1[${MULTILIB_USEDEP}]
385 + >=x11-libs/libSM-1.2.1-r1[${MULTILIB_USEDEP}]
386 + >=x11-libs/libXext-1.3.2[${MULTILIB_USEDEP}]
387 +"
388 +DEPEND="${RDEPEND}"
389 +
390 +src_prepare() {
391 + default
392 +
393 + # Fix aclocal underquoted definition warnings.
394 + # Conditionalize gdk functions for bug 40453.
395 + # Fix imlib-config for bug 3425.
396 + eapply "${FILESDIR}"/${P}.patch
397 + eapply "${FILESDIR}"/${PN}-security.patch #security #72681
398 + eapply "${FILESDIR}"/${P}-bpp16-CVE-2007-3568.patch # security #201887
399 + eapply "${FILESDIR}"/${P}-fix-rendering.patch #197489
400 + eapply "${FILESDIR}"/${P}-asneeded.patch #207638
401 + eapply "${FILESDIR}"/${P}-libpng15.patch #357167
402 + eapply "${FILESDIR}"/${P}-underlinking-test.patch #367645
403 + eapply "${FILESDIR}"/${P}-no-LDFLAGS-in-pc.patch
404 + eapply "${FILESDIR}"/${P}-giflib51-{1,2}.patch #538976
405 +
406 + mkdir m4 && cp "${WORKDIR}"/gtk-1-for-imlib.m4 m4
407 +
408 + AT_M4DIR="m4" eautoreconf
409 +}
410 +
411 +multilib_src_configure() {
412 + ECONF_SOURCE="${S}" econf \
413 + --sysconfdir=/etc/imlib \
414 + $(use_enable static-libs static) \
415 + --disable-gdk \
416 + --disable-gtktest
417 +}
418 +
419 +multilib_src_install() {
420 + emake DESTDIR="${D}" install
421 + # fix target=@gdk-target@ in pkgconfig, bug #499268
422 + sed -e '/^target=/d' \
423 + -i "${ED}"usr/$(get_libdir)/pkgconfig/imlib.pc || die
424 +}
425 +
426 +multilib_src_install_all() {
427 + einstalldocs
428 + use doc && dohtml doc/*
429 +
430 + # Punt unused files
431 + rm -f "${D}"/usr/lib*/pkgconfig/imlibgdk.pc
432 + find "${D}" -name '*.la' -exec rm -f {} + || die
433 +}