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 |
+} |