diff options
author | Mike Frysinger <vapier@gentoo.org> | 2011-02-21 01:05:55 +0000 |
---|---|---|
committer | Mike Frysinger <vapier@gentoo.org> | 2011-02-21 01:05:55 +0000 |
commit | 975fd0e8e7d8b2e7716148c45ce9d2b2d7a8c484 (patch) | |
tree | ea0bb879c3d3420d4b09b97c63949e2db424fe6c /dev-libs/DirectFB | |
parent | Stable for HPPA (bug #355099). (diff) | |
download | gentoo-2-975fd0e8e7d8b2e7716148c45ce9d2b2d7a8c484.tar.gz gentoo-2-975fd0e8e7d8b2e7716148c45ce9d2b2d7a8c484.tar.bz2 gentoo-2-975fd0e8e7d8b2e7716148c45ce9d2b2d7a8c484.zip |
Version bump. Fix building with libpng-1.5.x.
(Portage version: 2.2.0_alpha24/cvs/Linux x86_64)
Diffstat (limited to 'dev-libs/DirectFB')
-rw-r--r-- | dev-libs/DirectFB/ChangeLog | 8 | ||||
-rw-r--r-- | dev-libs/DirectFB/DirectFB-1.4.9.ebuild | 125 | ||||
-rw-r--r-- | dev-libs/DirectFB/files/DirectFB-1.4.9-libpng-1.5.patch | 244 |
3 files changed, 376 insertions, 1 deletions
diff --git a/dev-libs/DirectFB/ChangeLog b/dev-libs/DirectFB/ChangeLog index eda825895298..18b6e33530b7 100644 --- a/dev-libs/DirectFB/ChangeLog +++ b/dev-libs/DirectFB/ChangeLog @@ -1,6 +1,12 @@ # ChangeLog for dev-libs/DirectFB # Copyright 1999-2011 Gentoo Foundation; Distributed under the GPL v2 -# $Header: /var/cvsroot/gentoo-x86/dev-libs/DirectFB/ChangeLog,v 1.113 2011/01/22 18:11:57 xarthisius Exp $ +# $Header: /var/cvsroot/gentoo-x86/dev-libs/DirectFB/ChangeLog,v 1.114 2011/02/21 01:05:55 vapier Exp $ + +*DirectFB-1.4.9 (21 Feb 2011) + + 21 Feb 2011; Mike Frysinger <vapier@gentoo.org> +DirectFB-1.4.9.ebuild, + +files/DirectFB-1.4.9-libpng-1.5.patch: + Version bump. Fix building with libpng-1.5.x. 22 Jan 2011; Kacper Kowalik <xarthisius@gentoo.org> DirectFB-1.4.5.ebuild: ppc64 stable wrt #343103 diff --git a/dev-libs/DirectFB/DirectFB-1.4.9.ebuild b/dev-libs/DirectFB/DirectFB-1.4.9.ebuild new file mode 100644 index 000000000000..3e3ba2643e90 --- /dev/null +++ b/dev-libs/DirectFB/DirectFB-1.4.9.ebuild @@ -0,0 +1,125 @@ +# Copyright 1999-2011 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/dev-libs/DirectFB/DirectFB-1.4.9.ebuild,v 1.1 2011/02/21 01:05:55 vapier Exp $ + +EAPI=2 +inherit eutils toolchain-funcs + +# Map Gentoo IUSE expand vars to DirectFB drivers +# echo `sed -n '/Possible gfxdrivers are:/,/^$/{/Possible/d;s:\[ *::;s:\].*::;s:,::g;p}' configure.in` +I_TO_D_intel="i810,i830" +I_TO_D_mga="matrox" +I_TO_D_r128="ati128" +I_TO_D_s3="unichrome" +I_TO_D_sis="sis315" +I_TO_D_via="cle266" +# cyber5k davinci ep9x gl omap pxa3xx sh772x +IUSE_VIDEO_CARDS=" intel mach64 mga neomagic nsc nvidia r128 radeon s3 savage sis tdfx via vmware" +IUV=${IUSE_VIDEO_CARDS// / video_cards_} +# echo `sed -n '/Possible inputdrivers are:/,/^$/{/\(Possible\|^input\)/d;s:\[ *::;s:\].*::;s:,::g;p}' configure.in` +I_TO_D_elo2300="elo-input" +I_TO_D_evdev="linuxinput" +I_TO_D_mouse="ps2mouse serialmouse" +# dbox2remote dreamboxremote gunze h3600_ts penmount sonypijogdial ucb1x00 wm97xx zytronic +IUSE_INPUT_DEVICES=" dynapro elo2300 evdev joystick keyboard lirc mouse mutouch tslib" +IUD=${IUSE_INPUT_DEVICES// / input_devices_} + +DESCRIPTION="Thin library on top of the Linux framebuffer devices" +HOMEPAGE="http://www.directfb.org/" +SRC_URI="http://directfb.org/downloads/Core/${PN}-${PV:0:3}/${P}.tar.gz + http://directfb.org/downloads/Old/${P}.tar.gz" + +LICENSE="LGPL-2.1" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 -mips ~ppc ~ppc64 ~sh -sparc ~x86" +IUSE="debug doc fbcon gif jpeg mmx png sdl sse static-libs sysfs truetype v4l v4l2 X zlib ${IUV} ${IUD}" + +RDEPEND="sdl? ( media-libs/libsdl ) + gif? ( media-libs/giflib ) + png? ( media-libs/libpng ) + jpeg? ( virtual/jpeg ) + sysfs? ( sys-fs/sysfsutils ) + zlib? ( sys-libs/zlib ) + truetype? ( >=media-libs/freetype-2.0.1 ) + X? ( x11-libs/libXext x11-libs/libX11 )" +DEPEND="${RDEPEND} + X? ( x11-proto/xextproto x11-proto/xproto )" + +src_prepare() { + epatch \ + "${FILESDIR}"/${PN}-1.2.7-CFLAGS.patch \ + "${FILESDIR}"/${PN}-1.2.0-headers.patch \ + "${FILESDIR}"/${PN}-1.1.1-pkgconfig.patch \ + "${FILESDIR}"/${PN}-1.4.9-libpng-1.5.patch + + # the media subdir uses sqrt(), so make sure it links in -lm + sed -i \ + -e '/libdirectfb_media_la_LIBADD/s:$: -lm:' \ + src/media/Makefile.in || die + + # Avoid invoking `ld` directly #300779 + find . -name Makefile.in -exec sed -i \ + '/[$](LD)/s:$(LD) -o $@ -r:$(CC) $(LDFLAGS) $(CFLAGS) -Wl,-r -nostdlib -o $@:' {} + +} + +driver_list() { + local pfx=$1 + local dev devs map + shift + for dev in "$@" ; do + use ${pfx}_${dev} || continue + map="I_TO_D_${dev}" + devs=${devs:+${devs},}${!map:-${dev}} + done + echo ${devs:-none} +} + +src_configure() { + local sdlconf="--disable-sdl" + if use sdl ; then + # since SDL can link against DirectFB and trigger a + # dependency loop, only link against SDL if it isn't + # broken #61592 + echo 'int main(){}' > sdl-test.c + $(tc-getCC) sdl-test.c -lSDL 2>/dev/null \ + && sdlconf="--enable-sdl" \ + || ewarn "Disabling SDL since libSDL.so is broken" + fi + + econf \ + --disable-dependency-tracking \ + $(use_enable static-libs static) \ + $(use_enable X x11) \ + $(use_enable fbcon fbdev) \ + $(use_enable mmx) \ + $(use_enable sse) \ + $(use_enable jpeg) \ + $(use_enable png) \ + $(use_enable gif) \ + $(use_enable truetype freetype) \ + $(use_enable debug) \ + $(use_enable sysfs) \ + $(use_enable zlib) \ + $(use_enable v4l video4linux) \ + $(use_enable v4l2 video4linux2) \ + ${sdlconf} \ + --with-gfxdrivers="$(driver_list video_cards ${IUSE_VIDEO_CARDS})" \ + --with-inputdrivers="$(driver_list input_devices ${IUSE_INPUT_DEVICES})" \ + --disable-vnc +} + +src_install() { + emake DESTDIR="${D}" install || die "make install failed" + dodoc fb.modes AUTHORS ChangeLog NEWS README* TODO + use doc && dohtml -r docs/html/* +} + +pkg_postinst() { + ewarn "Each DirectFB update breaks DirectFB related applications." + ewarn "Please run \"revdep-rebuild\" which can be" + ewarn "found by emerging the package 'gentoolkit'." + ewarn + ewarn "If you have an ALPS touchpad, then you might get your mouse" + ewarn "unexpectedly set in absolute mode in all DirectFB applications." + ewarn "This can be fixed by removing linuxinput from INPUT_DEVICES." +} diff --git a/dev-libs/DirectFB/files/DirectFB-1.4.9-libpng-1.5.patch b/dev-libs/DirectFB/files/DirectFB-1.4.9-libpng-1.5.patch new file mode 100644 index 000000000000..a5df1caaffe9 --- /dev/null +++ b/dev-libs/DirectFB/files/DirectFB-1.4.9-libpng-1.5.patch @@ -0,0 +1,244 @@ +From 83180b25e90721e717bf37c5332c22713508786e Mon Sep 17 00:00:00 2001 +From: Mike Frysinger <vapier@gentoo.org> +Date: Sun, 20 Feb 2011 19:18:19 -0500 +Subject: [PATCH] png: add support for libpng 1.5.x + +Signed-off-by: Mike Frysinger <vapier@gentoo.org> +--- + .../idirectfbimageprovider_png.c | 56 ++++++++++++------- + 1 files changed, 35 insertions(+), 21 deletions(-) + +diff --git a/interfaces/IDirectFBImageProvider/idirectfbimageprovider_png.c b/interfaces/IDirectFBImageProvider/idirectfbimageprovider_png.c +index 6d65ea3..7d82c5c 100644 +--- a/interfaces/IDirectFBImageProvider/idirectfbimageprovider_png.c ++++ b/interfaces/IDirectFBImageProvider/idirectfbimageprovider_png.c +@@ -207,7 +207,7 @@ Construct( IDirectFBImageProvider *thiz, + if (!data->png_ptr) + goto error; + +- if (setjmp( data->png_ptr->jmpbuf )) { ++ if (png_jmpbuf( data->png_ptr )) { + D_ERROR( "ImageProvider/PNG: Error reading header!\n" ); + goto error; + } +@@ -292,7 +292,7 @@ IDirectFBImageProvider_PNG_RenderTo( IDirectFBImageProvider *thiz, + rect = dst_data->area.wanted; + } + +- if (setjmp( data->png_ptr->jmpbuf )) { ++ if (png_jmpbuf( data->png_ptr )) { + D_ERROR( "ImageProvider/PNG: Error during decoding!\n" ); + + if (data->stage < STAGE_IMAGE) +@@ -327,6 +327,7 @@ IDirectFBImageProvider_PNG_RenderTo( IDirectFBImageProvider *thiz, + } + else { + CoreSurfaceBufferLock lock; ++ png_byte bit_depth = png_get_bit_depth( data->png_ptr, data->info_ptr ); + + ret = dfb_surface_lock_buffer( dst_surface, CSBR_BACK, CSAID_CPU, CSAF_WRITE, &lock ); + if (ret) +@@ -334,7 +335,7 @@ IDirectFBImageProvider_PNG_RenderTo( IDirectFBImageProvider *thiz, + + switch (data->color_type) { + case PNG_COLOR_TYPE_PALETTE: +- if (dst_surface->config.format == DSPF_LUT8 && data->info_ptr->bit_depth == 8) { ++ if (dst_surface->config.format == DSPF_LUT8 && bit_depth == 8) { + /* + * Special indexed PNG to LUT8 loading. + */ +@@ -377,7 +378,7 @@ IDirectFBImageProvider_PNG_RenderTo( IDirectFBImageProvider *thiz, + } + else { + if (data->color_type == PNG_COLOR_TYPE_GRAY) { +- int num = 1 << data->info_ptr->bit_depth; ++ int num = 1 << bit_depth; + + for (x=0; x<num; x++) { + int value = x * 255 / (num - 1); +@@ -386,7 +387,7 @@ IDirectFBImageProvider_PNG_RenderTo( IDirectFBImageProvider *thiz, + } + } + +- switch (data->info_ptr->bit_depth) { ++ switch (bit_depth) { + case 8: + for (y=0; y<data->height; y++) { + u8 *S = data->image + data->pitch * y; +@@ -441,7 +442,7 @@ IDirectFBImageProvider_PNG_RenderTo( IDirectFBImageProvider *thiz, + + default: + D_ERROR( "ImageProvider/PNG: Unsupported indexed bit depth %d!\n", +- data->info_ptr->bit_depth ); ++ bit_depth ); + } + + dfb_scale_linear_32( image_argb, data->width, data->height, +@@ -594,16 +595,26 @@ png_info_callback( png_structp png_read_ptr, + NULL, NULL, NULL ); + + if (png_get_valid( data->png_ptr, data->info_ptr, PNG_INFO_tRNS )) { ++ png_bytep trans; ++ png_color_16p trans_color; ++ int num_trans; ++ ++ png_get_tRNS( data->png_ptr, data->info_ptr, &trans, &num_trans, &trans_color ); ++ + data->color_keyed = true; + + /* generate color key based on palette... */ + if (data->color_type == PNG_COLOR_TYPE_PALETTE) { + u32 key; +- png_colorp palette = data->info_ptr->palette; +- png_bytep trans = data->info_ptr->trans_alpha; +- int num_colors = MIN( MAXCOLORMAPSIZE, +- data->info_ptr->num_palette ); +- u8 cmap[3][num_colors]; ++ png_colorp palette; ++ int num_colors; ++ u8 *cmap[3]; ++ ++ png_get_PLTE( data->png_ptr, data->info_ptr, &palette, &num_colors ); ++ num_colors = MIN( MAXCOLORMAPSIZE, num_colors ); ++ cmap[0] = alloca (num_colors); ++ cmap[1] = alloca (num_colors); ++ cmap[2] = alloca (num_colors); + + for (i=0; i<num_colors; i++) { + cmap[0][i] = palette[i].red; +@@ -613,7 +624,7 @@ png_info_callback( png_structp png_read_ptr, + + key = FindColorKey( num_colors, &cmap[0][0] ); + +- for (i=0; i<data->info_ptr->num_trans; i++) { ++ for (i=0; i<num_trans; i++) { + if (!trans[i]) { + palette[i].red = (key & 0xff0000) >> 16; + palette[i].green = (key & 0x00ff00) >> 8; +@@ -625,20 +636,23 @@ png_info_callback( png_structp png_read_ptr, + } + else { + /* ...or based on trans rgb value */ +- png_color_16p trans = &data->info_ptr->trans_color; +- +- data->color_key = (((trans->red & 0xff00) << 8) | +- ((trans->green & 0xff00)) | +- ((trans->blue & 0xff00) >> 8)); ++ data->color_key = (((trans_color->red & 0xff00) << 8) | ++ ((trans_color->green & 0xff00)) | ++ ((trans_color->blue & 0xff00) >> 8)); + } + } + + switch (data->color_type) { + case PNG_COLOR_TYPE_PALETTE: { +- png_colorp palette = data->info_ptr->palette; +- png_bytep trans = data->info_ptr->trans_alpha; +- int num_trans = data->info_ptr->num_trans; +- int num_colors = MIN( MAXCOLORMAPSIZE, data->info_ptr->num_palette ); ++ png_colorp palette; ++ png_bytep trans; ++ png_color_16p trans_color; ++ int num_trans; ++ int num_colors; ++ ++ png_get_PLTE( data->png_ptr, data->info_ptr, &palette, &num_colors ); ++ num_colors = MIN( MAXCOLORMAPSIZE, num_colors ); ++ png_get_tRNS( data->png_ptr, data->info_ptr, &trans, &num_trans, &trans_color ); + + for (i=0; i<num_colors; i++) { + data->colors[i].a = (i < num_trans) ? trans[i] : 0xff; +-- +1.7.4.1 + +From 7a2a36fada3ecdd7f48fcfd782a552598477a8f5 Mon Sep 17 00:00:00 2001 +From: Mike Frysinger <vapier@gentoo.org> +Date: Sun, 20 Feb 2011 19:38:50 -0500 +Subject: [PATCH] tools: add support for libpng 1.5.x + +Signed-off-by: Mike Frysinger <vapier@gentoo.org> +--- + tools/directfb-csource.c | 20 +++++++++++++------- + tools/mkdfiff.c | 2 +- + tools/mkdgifft.cpp | 2 +- + 3 files changed, 15 insertions(+), 9 deletions(-) + +diff --git a/tools/directfb-csource.c b/tools/directfb-csource.c +index 8f2cbf0..487ea3c 100644 +--- a/tools/directfb-csource.c ++++ b/tools/directfb-csource.c +@@ -338,7 +338,7 @@ static DFBResult load_image (const char *filename, + if (!png_ptr) + goto cleanup; + +- if (setjmp (png_ptr->jmpbuf)) { ++ if (setjmp (png_jmpbuf (png_ptr))) { + if (desc->preallocated[0].data) { + free (desc->preallocated[0].data); + desc->preallocated[0].data = NULL; +@@ -405,17 +405,22 @@ static DFBResult load_image (const char *filename, + } + + switch (src_format) { +- case DSPF_LUT8: +- if (info_ptr->num_palette) { ++ case DSPF_LUT8: { ++ png_colorp png_palette; ++ int num_palette; ++ ++ png_get_PLTE( png_ptr, info_ptr, &png_palette, &num_palette ); ++ ++ if (num_palette) { + png_byte *alpha; + int i, num; + +- *palette_size = MIN (info_ptr->num_palette, 256); ++ *palette_size = MIN (num_palette, 256); + for (i = 0; i < *palette_size; i++) { + palette[i].a = 0xFF; +- palette[i].r = info_ptr->palette[i].red; +- palette[i].g = info_ptr->palette[i].green; +- palette[i].b = info_ptr->palette[i].blue; ++ palette[i].r = png_palette[i].red; ++ palette[i].g = png_palette[i].green; ++ palette[i].b = png_palette[i].blue; + } + if (png_get_valid (png_ptr, info_ptr, PNG_INFO_tRNS)) { + png_get_tRNS (png_ptr, info_ptr, &alpha, &num, NULL); +@@ -424,6 +429,7 @@ static DFBResult load_image (const char *filename, + } + } + break; ++ } + case DSPF_RGB32: + png_set_filler (png_ptr, 0xFF, + #ifdef WORDS_BIGENDIAN +diff --git a/tools/mkdfiff.c b/tools/mkdfiff.c +index 68a3b4f..edb58a7 100644 +--- a/tools/mkdfiff.c ++++ b/tools/mkdfiff.c +@@ -97,7 +97,7 @@ load_image (const char *filename, + if (!png_ptr) + goto cleanup; + +- if (setjmp (png_ptr->jmpbuf)) { ++ if (setjmp (png_jmpbuf (png_ptr))) { + if (desc->preallocated[0].data) { + free (desc->preallocated[0].data); + desc->preallocated[0].data = NULL; +diff --git a/tools/mkdgifft.cpp b/tools/mkdgifft.cpp +index 96e4220..d4b6bf4 100644 +--- a/tools/mkdgifft.cpp ++++ b/tools/mkdgifft.cpp +@@ -595,7 +595,7 @@ load_image (const char *filename, + if (!png_ptr) + goto cleanup; + +- if (setjmp (png_ptr->jmpbuf)) { ++ if (setjmp (png_jmpbuf (png_ptr))) { + if (desc->preallocated[0].data) { + free (desc->preallocated[0].data); + desc->preallocated[0].data = NULL; +-- +1.7.4.1 + |