1 |
commit: 3d5b16d3365e80c281e9131e011a6d88ddf61167 |
2 |
Author: Andrew Savchenko <bircoph <AT> gentoo <DOT> org> |
3 |
AuthorDate: Mon May 2 15:51:22 2016 +0000 |
4 |
Commit: Andrew Savchenko <bircoph <AT> gentoo <DOT> org> |
5 |
CommitDate: Mon May 2 15:51:43 2016 +0000 |
6 |
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=3d5b16d3 |
7 |
|
8 |
media-libs/libafterimage-1.20-r1: fix bug 571654 |
9 |
|
10 |
- port to giflib-5 API; |
11 |
- update ebuild to EAPI 6; |
12 |
- add new USE flags and deps for previously ignored dependencies. |
13 |
|
14 |
Package-Manager: portage-2.2.28 |
15 |
Signed-off-by: Andrew Savchenko <bircoph <AT> gentoo.org> |
16 |
|
17 |
.../files/libafterimage-giflib5.patch | 382 +++++++++++++++++++++ |
18 |
.../libafterimage/libafterimage-1.20-r1.ebuild | 108 ++++++ |
19 |
media-libs/libafterimage/metadata.xml | 4 + |
20 |
3 files changed, 494 insertions(+) |
21 |
|
22 |
diff --git a/media-libs/libafterimage/files/libafterimage-giflib5.patch b/media-libs/libafterimage/files/libafterimage-giflib5.patch |
23 |
new file mode 100644 |
24 |
index 0000000..32037d9 |
25 |
--- /dev/null |
26 |
+++ b/media-libs/libafterimage/files/libafterimage-giflib5.patch |
27 |
@@ -0,0 +1,382 @@ |
28 |
+diff -Naurd libAfterImage-1.20.orig/export.c libAfterImage-1.20/export.c |
29 |
+--- libAfterImage-1.20.orig/export.c 2016-05-01 11:44:19.000000000 +0300 |
30 |
++++ libAfterImage-1.20/export.c 2016-05-02 10:57:59.688984491 +0300 |
31 |
+@@ -1048,6 +1048,9 @@ |
32 |
+ Bool new_image = True ; |
33 |
+ START_TIME(started); |
34 |
+ int cmap_size = 1; |
35 |
++#if (GIFLIB_MAJOR>=5) |
36 |
++ int errcode; |
37 |
++#endif |
38 |
+ #define GIF_NETSCAPE_EXT_BYTES 3 |
39 |
+ unsigned char netscape_ext_bytes[GIF_NETSCAPE_EXT_BYTES] = { 0x1, 0x0, 0x0}; |
40 |
+ #define GIF_GCE_BYTES 4 |
41 |
+@@ -1086,10 +1089,18 @@ |
42 |
+ |
43 |
+ while( cmap_size < 256 && cmap_size < (int)cmap.count+(gce_bytes[0]&0x01) ) |
44 |
+ cmap_size = cmap_size<<1 ; |
45 |
++#if (GIFLIB_MAJOR>=5) |
46 |
++ if( (gif_cmap = GifMakeMapObject(cmap_size, NULL )) == NULL ) |
47 |
++#else |
48 |
+ if( (gif_cmap = MakeMapObject(cmap_size, NULL )) == NULL ) |
49 |
++#endif |
50 |
+ { |
51 |
+ free( mapped_im ); |
52 |
++#if (GIFLIB_MAJOR>=5) |
53 |
++ ASIM_PrintGifError(E_GIF_ERR_NOT_ENOUGH_MEM); |
54 |
++#else |
55 |
+ ASIM_PrintGifError(); |
56 |
++#endif |
57 |
+ return False; |
58 |
+ } |
59 |
+ memcpy( &(gif_cmap->Colors[0]), &(cmap.entries[0]), MIN(cmap.count,(unsigned int)cmap_size)*3 ); |
60 |
+@@ -1101,13 +1112,25 @@ |
61 |
+ SavedImage *images = NULL ; |
62 |
+ int count = 0 ; |
63 |
+ /* TODO: do something about multiimage files !!! */ |
64 |
++#if (GIFLIB_MAJOR>=5) |
65 |
++ gif = open_gif_read(infile, &errcode); |
66 |
++#else |
67 |
+ gif = open_gif_read(infile); |
68 |
++#endif |
69 |
+ if( gif == NULL || get_gif_saved_images(gif, -1, &images, &count) == GIF_ERROR) |
70 |
+ { |
71 |
++#if (GIFLIB_MAJOR>=5) |
72 |
++ ASIM_PrintGifError(errcode); |
73 |
++#else |
74 |
+ ASIM_PrintGifError(); |
75 |
++#endif |
76 |
+ if( gif ) |
77 |
+ { |
78 |
++#if (GIFLIB_MAJOR>=5) |
79 |
++ DGifCloseFile(gif, &errcode); |
80 |
++#else |
81 |
+ DGifCloseFile(gif); |
82 |
++#endif |
83 |
+ gif = NULL ; |
84 |
+ } |
85 |
+ if (infile) |
86 |
+@@ -1123,14 +1146,22 @@ |
87 |
+ gif_src = *gif ; |
88 |
+ gif->SColorMap = NULL ; |
89 |
+ gif->Image.ColorMap = NULL ; |
90 |
++#if (GIFLIB_MAJOR>=5) |
91 |
++ DGifCloseFile(gif, &errcode); |
92 |
++#else |
93 |
+ DGifCloseFile(gif); |
94 |
++#endif |
95 |
+ gif = NULL; |
96 |
+ fclose (infile); |
97 |
+ infile = NULL; |
98 |
+ outfile = open_writeable_image_file( path ); |
99 |
+ |
100 |
+ if (outfile) |
101 |
++#if (GIFLIB_MAJOR>=5) |
102 |
++ gif = EGifOpenFileHandle(fileno(outfile), &errcode); |
103 |
++#else |
104 |
+ gif = EGifOpenFileHandle(fileno(outfile)); |
105 |
++#endif |
106 |
+ |
107 |
+ if (gif) |
108 |
+ { |
109 |
+@@ -1141,26 +1172,46 @@ |
110 |
+ gif_src.SColorMap )) == GIF_OK ) |
111 |
+ status = write_gif_saved_images( gif, images, count ); |
112 |
+ if( status != GIF_OK ) |
113 |
++#if (GIFLIB_MAJOR>=5) |
114 |
++ ASIM_PrintGifError(status); |
115 |
++#else |
116 |
+ ASIM_PrintGifError(); |
117 |
++#endif |
118 |
+ } |
119 |
+ if (gif_src.SColorMap) |
120 |
+ { /* we only want to save private colormap if it is any different from |
121 |
+ * screen colormap ( saves us 768 bytes per image ) */ |
122 |
+ if( gif_cmap->ColorCount == gif_src.SColorMap->ColorCount ) |
123 |
+ dont_save_cmap = ( memcmp( gif_cmap->Colors, gif_src.SColorMap->Colors, gif_cmap->ColorCount*sizeof(GifColorType)) == 0 ); |
124 |
++#if (GIFLIB_MAJOR>=5) |
125 |
++ GifFreeMapObject(gif_src.SColorMap); |
126 |
++#else |
127 |
+ FreeMapObject(gif_src.SColorMap); |
128 |
++#endif |
129 |
+ } |
130 |
+ if (gif) |
131 |
+ { |
132 |
+ EGifPutExtension(gif, GRAPHICS_EXT_FUNC_CODE, GIF_GCE_BYTES, &(gce_bytes[0])); |
133 |
+ if( get_flags( params->gif.flags, EXPORT_ANIMATION_REPEATS ) ) |
134 |
+ { |
135 |
++#if (GIFLIB_MAJOR>=5) |
136 |
++ EGifPutExtensionLeader(gif, APPLICATION_EXT_FUNC_CODE); |
137 |
++ EGifPutExtensionBlock(gif, 11, "NETSCAPE2.0"); |
138 |
++ EGifPutExtensionBlock(gif, GIF_NETSCAPE_EXT_BYTES, &(netscape_ext_bytes[0])); |
139 |
++ EGifPutExtensionTrailer(gif); |
140 |
++#else |
141 |
+ EGifPutExtensionFirst(gif, APPLICATION_EXT_FUNC_CODE, 11, "NETSCAPE2.0"); |
142 |
+ EGifPutExtensionLast(gif, 0, GIF_NETSCAPE_EXT_BYTES, &(netscape_ext_bytes[0])); |
143 |
++#endif |
144 |
+ } |
145 |
+ |
146 |
++#if (GIFLIB_MAJOR>=5) |
147 |
++ if( (errcode = EGifPutImageDesc(gif, 0, 0, im->width, im->height, FALSE, (dont_save_cmap)?NULL:gif_cmap )) == GIF_ERROR ) |
148 |
++ ASIM_PrintGifError(errcode); |
149 |
++#else |
150 |
+ if( EGifPutImageDesc(gif, 0, 0, im->width, im->height, FALSE, (dont_save_cmap)?NULL:gif_cmap ) == GIF_ERROR ) |
151 |
+ ASIM_PrintGifError(); |
152 |
++#endif |
153 |
+ } |
154 |
+ } |
155 |
+ free_gif_saved_images( images, count ); |
156 |
+@@ -1172,24 +1223,46 @@ |
157 |
+ outfile = open_writeable_image_file(path); |
158 |
+ |
159 |
+ if (outfile) |
160 |
++ { |
161 |
++#if (GIFLIB_MAJOR>=5) |
162 |
++ gif = EGifOpenFileHandle(fileno(outfile), &errcode); |
163 |
++ if (errcode != E_GIF_SUCCEEDED) |
164 |
++ ASIM_PrintGifError(errcode); |
165 |
++#else |
166 |
+ if ((gif = EGifOpenFileHandle(fileno(outfile))) == NULL) |
167 |
+ ASIM_PrintGifError(); |
168 |
++#endif |
169 |
++ } |
170 |
+ } |
171 |
+ |
172 |
+ if( new_image && gif ) |
173 |
+ { |
174 |
++#if (GIFLIB_MAJOR>=5) |
175 |
++ if( (errcode = EGifPutScreenDesc(gif, im->width, im->height, cmap_size, 0, gif_cmap )) == GIF_ERROR ) |
176 |
++ ASIM_PrintGifError(errcode); |
177 |
++#else |
178 |
+ if( EGifPutScreenDesc(gif, im->width, im->height, cmap_size, 0, gif_cmap ) == GIF_ERROR ) |
179 |
+ ASIM_PrintGifError(); |
180 |
++#endif |
181 |
+ |
182 |
+ EGifPutExtension(gif, 0xf9, GIF_GCE_BYTES, &(gce_bytes[0])); |
183 |
+ |
184 |
++#if (GIFLIB_MAJOR>=5) |
185 |
++ if( (errcode = EGifPutImageDesc(gif, 0, 0, im->width, im->height, FALSE, NULL )) == GIF_ERROR ) |
186 |
++ ASIM_PrintGifError(errcode); |
187 |
++#else |
188 |
+ if( EGifPutImageDesc(gif, 0, 0, im->width, im->height, FALSE, NULL ) == GIF_ERROR ) |
189 |
+ ASIM_PrintGifError(); |
190 |
++#endif |
191 |
+ } |
192 |
+ |
193 |
+ if( gif_cmap ) |
194 |
+ { |
195 |
++#if (GIFLIB_MAJOR>=5) |
196 |
++ GifFreeMapObject(gif_cmap); |
197 |
++#else |
198 |
+ FreeMapObject(gif_cmap); |
199 |
++#endif |
200 |
+ gif_cmap = NULL ; |
201 |
+ } |
202 |
+ if( gif ) |
203 |
+@@ -1203,12 +1276,23 @@ |
204 |
+ register int *src = mapped_im + x*y; |
205 |
+ while( --x >= 0 ) |
206 |
+ row_pointer[x] = src[x] ; |
207 |
++#if (GIFLIB_MAJOR>=5) |
208 |
++ if( (errcode = EGifPutLine(gif, row_pointer, im->width)) == GIF_ERROR) |
209 |
++ ASIM_PrintGifError(errcode); |
210 |
++#else |
211 |
+ if( EGifPutLine(gif, row_pointer, im->width) == GIF_ERROR) |
212 |
+ ASIM_PrintGifError(); |
213 |
++#endif |
214 |
+ } |
215 |
+ free( row_pointer ); |
216 |
++#if (GIFLIB_MAJOR>=5) |
217 |
++ EGifCloseFile(gif, &errcode); |
218 |
++ if (errcode != E_GIF_SUCCEEDED) |
219 |
++ ASIM_PrintGifError(errcode); |
220 |
++#else |
221 |
+ if (EGifCloseFile(gif) == GIF_ERROR) |
222 |
+ ASIM_PrintGifError(); |
223 |
++#endif |
224 |
+ gif = NULL; |
225 |
+ } |
226 |
+ free( mapped_im ); |
227 |
+diff -Naurd libAfterImage-1.20.orig/import.c libAfterImage-1.20/import.c |
228 |
+--- libAfterImage-1.20.orig/import.c 2016-05-01 11:44:19.000000000 +0300 |
229 |
++++ libAfterImage-1.20/import.c 2016-05-02 11:01:58.979496755 +0300 |
230 |
+@@ -2178,6 +2178,9 @@ |
231 |
+ int transparent = -1 ; |
232 |
+ unsigned int y; |
233 |
+ unsigned int width = 0, height = 0; |
234 |
++#if (GIFLIB_MAJOR>=5) |
235 |
++ int errcode; |
236 |
++#endif |
237 |
+ ColorMapObject *cmap = NULL ; |
238 |
+ |
239 |
+ START_TIME(started); |
240 |
+@@ -2186,7 +2189,11 @@ |
241 |
+ |
242 |
+ if ((fp = open_image_file(path)) == NULL) |
243 |
+ return NULL; |
244 |
++#if (GIFLIB_MAJOR>=5) |
245 |
++ if( (gif = open_gif_read(fp, &errcode)) != NULL ) |
246 |
++#else |
247 |
+ if( (gif = open_gif_read(fp)) != NULL ) |
248 |
++#endif |
249 |
+ { |
250 |
+ SavedImage *sp = NULL ; |
251 |
+ int count = 0 ; |
252 |
+@@ -2289,13 +2296,21 @@ |
253 |
+ } |
254 |
+ free_gif_saved_images( sp, count ); |
255 |
+ }else if( status != GIF_OK ) |
256 |
++#if (GIFLIB_MAJOR>=5) |
257 |
++ ASIM_PrintGifError(status); |
258 |
++#else |
259 |
+ ASIM_PrintGifError(); |
260 |
++#endif |
261 |
+ else if( params->subimage == -1 ) |
262 |
+ show_error( "Image file \"%s\" does not have any valid image information.", path ); |
263 |
+ else |
264 |
+ show_error( "Image file \"%s\" does not have subimage %d.", path, params->subimage ); |
265 |
+ |
266 |
++#if (GIFLIB_MAJOR>=5) |
267 |
++ DGifCloseFile(gif, &errcode); |
268 |
++#else |
269 |
+ DGifCloseFile(gif); |
270 |
++#endif |
271 |
+ fclose( fp ); |
272 |
+ } |
273 |
+ SHOW_TIME("image loading",started); |
274 |
+diff -Naurd libAfterImage-1.20.orig/ungif.c libAfterImage-1.20/ungif.c |
275 |
+--- libAfterImage-1.20.orig/ungif.c 2011-01-15 08:52:22.000000000 +0300 |
276 |
++++ libAfterImage-1.20/ungif.c 2016-05-02 16:03:57.590148737 +0300 |
277 |
+@@ -75,13 +75,21 @@ |
278 |
+ if( sp ) |
279 |
+ { |
280 |
+ if (sp->ImageDesc.ColorMap) |
281 |
++#if (GIFLIB_MAJOR>=5) |
282 |
++ GifFreeMapObject(sp->ImageDesc.ColorMap); |
283 |
++#else |
284 |
+ FreeMapObject(sp->ImageDesc.ColorMap); |
285 |
++#endif |
286 |
+ |
287 |
+ if (sp->RasterBits) |
288 |
+ free((char *)sp->RasterBits); |
289 |
+ |
290 |
+ if (sp->ExtensionBlocks) |
291 |
++#if (GIFLIB_MAJOR>=5) |
292 |
++ GifFreeExtensions(sp->ExtensionBlockCount, sp->ExtensionBlocks); |
293 |
++#else |
294 |
+ FreeExtension(sp); |
295 |
++#endif |
296 |
+ |
297 |
+ if( !reusable ) |
298 |
+ free( sp ); |
299 |
+@@ -119,11 +127,19 @@ |
300 |
+ return ret; |
301 |
+ } |
302 |
+ |
303 |
++#if (GIFLIB_MAJOR>=5) |
304 |
++GifFileType* |
305 |
++open_gif_read( FILE *in_stream, int *errcode ) |
306 |
++{ |
307 |
++ return DGifOpen(in_stream, fread_gif, errcode); |
308 |
++} |
309 |
++#else |
310 |
+ GifFileType* |
311 |
+ open_gif_read( FILE *in_stream ) |
312 |
+ { |
313 |
+ return DGifOpen(in_stream, fread_gif); |
314 |
+ } |
315 |
++#endif |
316 |
+ |
317 |
+ int |
318 |
+ get_gif_image_desc( GifFileType *gif, SavedImage *im ) |
319 |
+@@ -151,7 +167,11 @@ |
320 |
+ memcpy( &(im->ImageDesc), &(gif->Image), sizeof(GifImageDesc)); |
321 |
+ if( gif->Image.ColorMap ) |
322 |
+ { |
323 |
++#if (GIFLIB_MAJOR>=5) |
324 |
++ im->ImageDesc.ColorMap = GifMakeMapObject(gif->Image.ColorMap->ColorCount, NULL); |
325 |
++#else |
326 |
+ im->ImageDesc.ColorMap = MakeMapObject(gif->Image.ColorMap->ColorCount, NULL); |
327 |
++#endif |
328 |
+ fseek( gif->UserData, start_pos+9, SEEK_SET ); |
329 |
+ fread( im->ImageDesc.ColorMap->Colors, 1, gif->Image.ColorMap->ColorCount*3, gif->UserData); |
330 |
+ fseek( gif->UserData, end_pos, SEEK_SET ); |
331 |
+@@ -166,6 +186,9 @@ |
332 |
+ { |
333 |
+ GifRecordType RecordType; |
334 |
+ GifByteType *ExtData; |
335 |
++#if (GIFLIB_MAJOR>=5) |
336 |
++ int ExtCode; |
337 |
++#endif |
338 |
+ SavedImage temp_save; |
339 |
+ int curr_image = 0, ret_count = *ret_images ; |
340 |
+ int status = GIF_OK; |
341 |
+@@ -197,13 +220,23 @@ |
342 |
+ break; |
343 |
+ |
344 |
+ case EXTENSION_RECORD_TYPE: |
345 |
++#if (GIFLIB_MAJOR>=5) |
346 |
++ status = DGifGetExtension(gif,&ExtCode,&ExtData); |
347 |
++#else |
348 |
+ status = DGifGetExtension(gif,&temp_save.Function,&ExtData); |
349 |
++#endif |
350 |
+ while (ExtData != NULL && status == GIF_OK ) |
351 |
+ { |
352 |
+ /* Create an extension block with our data */ |
353 |
++#if (GIFLIB_MAJOR>=5) |
354 |
++ if ((status = GifAddExtensionBlock(&temp_save.ExtensionBlockCount, &temp_save.ExtensionBlocks, |
355 |
++ ExtCode, sizeof(ExtData), ExtData)) == GIF_OK) |
356 |
++ status = DGifGetExtension(gif,&ExtCode,&ExtData); |
357 |
++#else |
358 |
+ if ((status = AddExtensionBlock(&temp_save, ExtData[0], (char*)&(ExtData[1]))) == GIF_OK) |
359 |
+ status = DGifGetExtensionNext(gif, &ExtData); |
360 |
+ temp_save.Function = 0; |
361 |
++#endif |
362 |
+ } |
363 |
+ break; |
364 |
+ |
365 |
+diff -Naurd libAfterImage-1.20.orig/ungif.h libAfterImage-1.20/ungif.h |
366 |
+--- libAfterImage-1.20.orig/ungif.h 2011-01-15 08:52:22.000000000 +0300 |
367 |
++++ libAfterImage-1.20/ungif.h 2016-05-02 10:57:59.715983533 +0300 |
368 |
+@@ -7,11 +7,29 @@ |
369 |
+ extern "C" { |
370 |
+ #endif |
371 |
+ |
372 |
++#if ((GIFLIB_MAJOR==4) && (GIFLIB_MINOR>=2)) |
373 |
++static inline void PrintGifError(void) { |
374 |
++ fprintf(stderr, "%s\n", GifErrorString()); |
375 |
++} |
376 |
++#elif (GIFLIB_MAJOR>=5) |
377 |
++static inline void PrintGifError(int code) { |
378 |
++ fprintf(stderr, "%s\n", GifErrorString(code)); |
379 |
++} |
380 |
++#endif |
381 |
++ |
382 |
++#if (GIFLIB_MAJOR>=5) |
383 |
++#ifdef __GNUC__ |
384 |
++#define ASIM_PrintGifError(code) do{ fprintf( stderr, "%s():%d:<%s> ",__FUNCTION__, __LINE__, path?path:"null" ); PrintGifError(code); }while(0) |
385 |
++#else |
386 |
++#define ASIM_PrintGifError(code) do{ PrintGifError(code); }while(0) |
387 |
++#endif |
388 |
++#else // (GIFLIB_MAJOR>=5) |
389 |
+ #ifdef __GNUC__ |
390 |
+ #define ASIM_PrintGifError() do{ fprintf( stderr, "%s():%d:<%s> ",__FUNCTION__, __LINE__, path?path:"null" ); PrintGifError(); }while(0) |
391 |
+ #else |
392 |
+ #define ASIM_PrintGifError() do{ PrintGifError(); }while(0) |
393 |
+ #endif |
394 |
++#endif // (GIFLIB_MAJOR>=5) |
395 |
+ |
396 |
+ #define GIF_GCE_DELAY_BYTE_LOW 1 |
397 |
+ #define GIF_GCE_DELAY_BYTE_HIGH 2 |
398 |
+@@ -24,7 +42,11 @@ |
399 |
+ |
400 |
+ |
401 |
+ int fread_gif( GifFileType *gif, GifByteType* buf, int len ); |
402 |
++#if (GIFLIB_MAJOR>=5) |
403 |
++GifFileType* open_gif_read( FILE *in_stream, int *errcode ); |
404 |
++#else |
405 |
+ GifFileType* open_gif_read( FILE *in_stream ); |
406 |
++#endif |
407 |
+ |
408 |
+ int get_gif_image_desc( GifFileType *gif, SavedImage *im ); |
409 |
+ |
410 |
|
411 |
diff --git a/media-libs/libafterimage/libafterimage-1.20-r1.ebuild b/media-libs/libafterimage/libafterimage-1.20-r1.ebuild |
412 |
new file mode 100644 |
413 |
index 0000000..8d289c3 |
414 |
--- /dev/null |
415 |
+++ b/media-libs/libafterimage/libafterimage-1.20-r1.ebuild |
416 |
@@ -0,0 +1,108 @@ |
417 |
+# Copyright 1999-2016 Gentoo Foundation |
418 |
+# Distributed under the terms of the GNU General Public License v2 |
419 |
+# $Id$ |
420 |
+ |
421 |
+EAPI=6 |
422 |
+inherit autotools |
423 |
+ |
424 |
+MY_PN=libAfterImage |
425 |
+ |
426 |
+DESCRIPTION="Afterstep's standalone generic image manipulation library" |
427 |
+HOMEPAGE="http://www.afterstep.org/afterimage/index.php" |
428 |
+SRC_URI="ftp://ftp.afterstep.org/stable/${MY_PN}/${MY_PN}-${PV}.tar.bz2" |
429 |
+ |
430 |
+LICENSE="LGPL-2.1" |
431 |
+SLOT="0" |
432 |
+KEYWORDS="~alpha ~amd64 ~hppa ~ia64 ~ppc ~ppc64 ~sparc ~x86 ~x86-fbsd ~amd64-linux ~x86-linux" |
433 |
+IUSE="+X cpu_flags_x86_mmx examples gif jpeg nls opengl png static-libs shm +shaping svg tiff truetype" |
434 |
+ |
435 |
+RDEPEND=" |
436 |
+ X? ( x11-libs/libSM |
437 |
+ x11-libs/libXext |
438 |
+ x11-libs/libXrender ) |
439 |
+ gif? ( media-libs/giflib ) |
440 |
+ jpeg? ( virtual/jpeg:= ) |
441 |
+ opengl? ( virtual/opengl ) |
442 |
+ png? ( >=media-libs/libpng-1.4:0 ) |
443 |
+ svg? ( gnome-base/librsvg ) |
444 |
+ tiff? ( media-libs/tiff:0 ) |
445 |
+ truetype? ( media-libs/freetype )" |
446 |
+DEPEND="${RDEPEND} |
447 |
+ X? ( x11-proto/xextproto ) |
448 |
+ virtual/pkgconfig |
449 |
+ !!x11-wm/afterstep" |
450 |
+REQUIRED_USE=" |
451 |
+ opengl? ( X ) |
452 |
+ shaping? ( X ) |
453 |
+ shm? ( X )" |
454 |
+ |
455 |
+S="${WORKDIR}/${MY_PN}-${PV}" |
456 |
+ |
457 |
+src_prepare() { |
458 |
+ default |
459 |
+ |
460 |
+ # fix some ldconfig problem in makefile.in |
461 |
+ eapply -p0 "${FILESDIR}"/${PN}-makefile.in.patch |
462 |
+ # fix lib paths in afterimage-config |
463 |
+ eapply -p0 "${FILESDIR}"/${PN}-config.patch |
464 |
+ # fix gif unbundle |
465 |
+ eapply -p0 "${FILESDIR}"/${PN}-gif.patch |
466 |
+ # fix for libpng15 compability |
467 |
+ eapply -p0 "${FILESDIR}"/${PN}-libpng15.patch |
468 |
+ # add giflib-5 API support, bug 571654 |
469 |
+ eapply "${FILESDIR}"/${PN}-giflib5.patch |
470 |
+ # do not build examples |
471 |
+ use examples || sed -i \ |
472 |
+ -e '/^all:/s/apps//' \ |
473 |
+ -e '/^install:/s/install.apps//' \ |
474 |
+ Makefile.in || die "sed failed" |
475 |
+ # remove forced flags |
476 |
+ sed -i \ |
477 |
+ -e 's/CFLAGS="-O3"//' \ |
478 |
+ -e 's/ -rdynamic//' \ |
479 |
+ configure.in || die "sed failed" |
480 |
+ |
481 |
+ mv configure.in configure.ac || die |
482 |
+ eautoreconf |
483 |
+} |
484 |
+ |
485 |
+src_configure() { |
486 |
+ econf \ |
487 |
+ $(use_enable cpu_flags_x86_mmx mmx-optimization) \ |
488 |
+ $(use_enable opengl glx) \ |
489 |
+ $(use_enable nls i18n) \ |
490 |
+ $(use_enable shaping) \ |
491 |
+ $(use_enable shm shmimage ) \ |
492 |
+ $(use_enable static-libs staticlibs) \ |
493 |
+ $(use_with X x) \ |
494 |
+ $(use_with gif) \ |
495 |
+ $(use_with jpeg) \ |
496 |
+ $(use_with png) \ |
497 |
+ $(use_with svg) \ |
498 |
+ $(use_with tiff) \ |
499 |
+ $(use_with truetype ttf) \ |
500 |
+ --enable-sharedlibs \ |
501 |
+ --with-xpm \ |
502 |
+ --without-builtin-gif \ |
503 |
+ --without-builtin-jpeg \ |
504 |
+ --without-builtin-png \ |
505 |
+ --without-builtin-zlib \ |
506 |
+ --without-afterbase |
507 |
+} |
508 |
+ |
509 |
+src_install() { |
510 |
+ emake \ |
511 |
+ DESTDIR="${D}" \ |
512 |
+ AFTER_DOC_DIR="${ED}/usr/share/doc/${PF}" \ |
513 |
+ install |
514 |
+ dodoc ChangeLog README |
515 |
+ if use examples; then |
516 |
+ cd apps || die |
517 |
+ mv ascompose.man ascompose.1 || die |
518 |
+ doman ascompose.1 |
519 |
+ emake clean |
520 |
+ rm Makefile* ascompose.1 || die |
521 |
+ insinto /usr/share/doc/${PF}/examples |
522 |
+ doins * |
523 |
+ fi |
524 |
+} |
525 |
|
526 |
diff --git a/media-libs/libafterimage/metadata.xml b/media-libs/libafterimage/metadata.xml |
527 |
index 8f9405d..2366dac 100644 |
528 |
--- a/media-libs/libafterimage/metadata.xml |
529 |
+++ b/media-libs/libafterimage/metadata.xml |
530 |
@@ -16,4 +16,8 @@ |
531 |
included, providing support for TrueType fonts using FreeType library, |
532 |
and anti-aliasing of standard fonts from X window system. |
533 |
</longdescription> |
534 |
+<use> |
535 |
+ <flag name="shaping">Use MIT shaped X windows extention.</flag> |
536 |
+ <flag name="shm">Use MIT shared memory extention for X image transfer.</flag> |
537 |
+</use> |
538 |
</pkgmetadata> |