public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
* [gentoo-commits] repo/gentoo:master commit in: dev-libs/DirectFB/, dev-libs/DirectFB/files/
@ 2016-10-02 20:38 David Seifert
  0 siblings, 0 replies; 2+ messages in thread
From: David Seifert @ 2016-10-02 20:38 UTC (permalink / raw
  To: gentoo-commits

commit:     e7ff8b0cb8ac46a520b4c7de22b4c28c1ebb26a7
Author:     Mykyta Holubakha <hilobakho <AT> gmail <DOT> com>
AuthorDate: Sun Oct  2 20:18:10 2016 +0000
Commit:     David Seifert <soap <AT> gentoo <DOT> org>
CommitDate: Sun Oct  2 20:38:15 2016 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=e7ff8b0c

dev-libs/DirectFB: fix build with divine use flag

Add a patch to create a header file, which was omitted from dist
tarball, but is present in upstream vcs.

Gentoo-Bug: 573584
Closes: https://github.com/gentoo/gentoo/pull/2454

Signed-off-by: David Seifert <soap <AT> gentoo.org>

 dev-libs/DirectFB/DirectFB-1.7.6.ebuild            |  3 +-
 .../DirectFB/files/DirectFB-1.7.6-idivine.patch    | 57 ++++++++++++++++++++++
 2 files changed, 59 insertions(+), 1 deletion(-)

diff --git a/dev-libs/DirectFB/DirectFB-1.7.6.ebuild b/dev-libs/DirectFB/DirectFB-1.7.6.ebuild
index 3ea4b16..68679a5 100644
--- a/dev-libs/DirectFB/DirectFB-1.7.6.ebuild
+++ b/dev-libs/DirectFB/DirectFB-1.7.6.ebuild
@@ -76,7 +76,8 @@ src_prepare() {
 		"${FILESDIR}"/${PN}-1.7.1-build.patch \
 		"${FILESDIR}"/${PN}-1.6.3-setregion.patch \
 		"${FILESDIR}"/${PN}-1.6.3-atomic-fix-compiler-error-when-building-for-thumb2.patch \
-		"${FILESDIR}"/${PN}-1.7.6-cle266.patch
+		"${FILESDIR}"/${PN}-1.7.6-cle266.patch \
+		"${FILESDIR}"/${PN}-1.7.6-idivine.patch
 	sed -i \
 		-e '/#define RASPBERRY_PI/d' \
 		systems/egl/egl_system.c || die #497124

diff --git a/dev-libs/DirectFB/files/DirectFB-1.7.6-idivine.patch b/dev-libs/DirectFB/files/DirectFB-1.7.6-idivine.patch
new file mode 100644
index 00000000..561db23
--- /dev/null
+++ b/dev-libs/DirectFB/files/DirectFB-1.7.6-idivine.patch
@@ -0,0 +1,57 @@
+--- lib/divine/idivine.h.orig
++++ lib/divine/idivine.h
+@@ -0,0 +1,54 @@
++/*
++   (c) Copyright 2012-2013  DirectFB integrated media GmbH
++   (c) Copyright 2001-2013  The world wide DirectFB Open Source Community (directfb.org)
++   (c) Copyright 2000-2004  Convergence (integrated media) GmbH
++
++   All rights reserved.
++
++   Written by Denis Oliver Kropp <dok@directfb.org>,
++              Andreas Shimokawa <andi@directfb.org>,
++              Marek Pikarski <mass@directfb.org>,
++              Sven Neumann <neo@directfb.org>,
++              Ville Syrjälä <syrjala@sci.fi> and
++              Claudio Ciccani <klan@users.sf.net>.
++
++   This library is free software; you can redistribute it and/or
++   modify it under the terms of the GNU Lesser General Public
++   License as published by the Free Software Foundation; either
++   version 2 of the License, or (at your option) any later version.
++
++   This library is distributed in the hope that it will be useful,
++   but WITHOUT ANY WARRANTY; without even the implied warranty of
++   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++   Lesser General Public License for more details.
++
++   You should have received a copy of the GNU Lesser General Public
++   License along with this library; if not, write to the
++   Free Software Foundation, Inc., 59 Temple Place - Suite 330,
++   Boston, MA 02111-1307, USA.
++*/
++
++
++
++#ifndef __IDIVINE_H__
++#define __IDIVINE_H__
++
++#include <divine.h>
++
++/*
++ * private data struct of IDiVine
++ */
++typedef struct {
++     int                         ref;      /* reference counter */
++
++     DiVine                     *divine;
++} IDiVine_data;
++
++/*
++ * IDiVine constructor/destructor
++ */
++DFBResult IDiVine_Construct( IDiVine *thiz );
++
++void      IDiVine_Destruct ( IDiVine *thiz );
++
++#endif


^ permalink raw reply related	[flat|nested] 2+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: dev-libs/DirectFB/, dev-libs/DirectFB/files/
@ 2017-01-18 10:50 Thomas Deutschmann
  0 siblings, 0 replies; 2+ messages in thread
From: Thomas Deutschmann @ 2017-01-18 10:50 UTC (permalink / raw
  To: gentoo-commits

commit:     334b90c2fa85adcf5c2f4cbbd046d9cc24d1f248
Author:     Thomas Deutschmann <whissi <AT> gentoo <DOT> org>
AuthorDate: Wed Jan 18 10:49:07 2017 +0000
Commit:     Thomas Deutschmann <whissi <AT> gentoo <DOT> org>
CommitDate: Wed Jan 18 10:49:46 2017 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=334b90c2

dev-libs/DirectFB: Restore v1.4.9-r1 to fix repository

This will partially revert commit fa0999c97caa29cbcbf0bb95cea7d769afeb0ec0 which
broke the Gentoo repository (=media-libs/FusionSound-1.1.1-r1 still needs
<dev-libs/DirectFB-1.6.3).

Package-Manager: Portage-2.3.3, Repoman-2.3.1
RepoMan-Options: --force

 dev-libs/DirectFB/DirectFB-1.4.9-r1.ebuild         | 123 +++++++++++
 dev-libs/DirectFB/Manifest                         |   1 +
 .../DirectFB/files/DirectFB-1.1.1-pkgconfig.patch  |  22 ++
 .../DirectFB/files/DirectFB-1.2.0-headers.patch    |  16 ++
 .../DirectFB/files/DirectFB-1.2.7-CFLAGS.patch     |  19 ++
 .../DirectFB/files/DirectFB-1.4.9-libpng-1.5.patch | 244 +++++++++++++++++++++
 6 files changed, 425 insertions(+)

diff --git a/dev-libs/DirectFB/DirectFB-1.4.9-r1.ebuild b/dev-libs/DirectFB/DirectFB-1.4.9-r1.ebuild
new file mode 100644
index 00000000..4a5e0af
--- /dev/null
+++ b/dev-libs/DirectFB/DirectFB-1.4.9-r1.ebuild
@@ -0,0 +1,123 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+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.net/"
+SRC_URI="http://directfb.net/downloads/Core/${PN}-${PV:0:3}/${P}.tar.gz
+	http://directfb.net/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 cpu_flags_x86_mmx png sdl cpu_flags_x86_sse static-libs truetype v4l X zlib ${IUV} ${IUD}"
+
+RDEPEND="sdl? ( media-libs/libsdl )
+	gif? ( media-libs/giflib )
+	png? ( media-libs/libpng )
+	jpeg? ( virtual/jpeg )
+	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 cpu_flags_x86_mmx mmx) \
+		$(use_enable cpu_flags_x86_sse sse) \
+		$(use_enable jpeg) \
+		$(use_enable png) \
+		$(use_enable gif) \
+		$(use_enable truetype freetype) \
+		$(use_enable debug) \
+		$(use_enable zlib) \
+		--disable-video4linux \
+		$(use_enable v4l 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/Manifest b/dev-libs/DirectFB/Manifest
index 165fa84..c41e108 100644
--- a/dev-libs/DirectFB/Manifest
+++ b/dev-libs/DirectFB/Manifest
@@ -1 +1,2 @@
+DIST DirectFB-1.4.9.tar.gz 3095137 SHA256 988a40dbc81fe1ecaf69a3581ed49bf4f6bbb584cb54de24cba154d3ada7a228 SHA512 ec7e03f9f3bfffafd0d84676b79845fabe59d61ac278adf4e3cd03562638529a24ff76bd606c881926cae335da00f71541e2245d0aecd4af957b95ea66c7d969 WHIRLPOOL 310c079e0f396828ddfdec0695e26a04fbea2a8a9fd90066212cf70e94a371c8b0f8b29141374db788ac247a92d01e19b0d1ddc36c78beefb6cef5aeefd173e1
 DIST DirectFB-1.7.6.tar.gz 5975444 SHA256 44f32bacfb842ea234599532f8481fe41b5bd2310d2bd101508eb3a5df26c9e1 SHA512 18cf1aad6c277a6de147a9b0aff1cd7408ddd7c7159ef21dab9a548db7399c681603624e7820b186a29e03edaa7737350a61e2abaec572887e9cc56658bf85a2 WHIRLPOOL 2868906bbd2b4e681c6702f164f7ba4f01a0f538aea0c744c6e77ce32b274a967232ef0046ec21b74c9c53c4824182e632159cca5ea0c7c27292cb258257d6a8

diff --git a/dev-libs/DirectFB/files/DirectFB-1.1.1-pkgconfig.patch b/dev-libs/DirectFB/files/DirectFB-1.1.1-pkgconfig.patch
new file mode 100644
index 00000000..01a119e
--- /dev/null
+++ b/dev-libs/DirectFB/files/DirectFB-1.1.1-pkgconfig.patch
@@ -0,0 +1,22 @@
+http://bugs.gentoo.org/200661
+
+--- DirectFB/directfb-config.in
++++ DirectFB/directfb-config.in
+@@ -306,7 +306,7 @@
+ 	 libs="$libs -ldirectfb -lfusion -ldirect @THREADLIB@"
+ 
+ 	 if test -n "$echo_static"; then
+-	    libs="$libs @DYNLIB@ @ZLIB_LIBS@"
++	    libs="$libs @DYNLIB@ @ZLIB_LIBS@ @SYSFS_LIBS@"
+ 	 fi
+       fi
+ 
+--- DirectFB/directfb.pc.in
++++ DirectFB/directfb.pc.in
+@@ -8,5 +8,5 @@
+ Version: @VERSION@
+ Requires: fusion direct
+ Libs: -L${libdir} -ldirectfb @THREADLIB@ @OSX_LIBS@
+-Libs.private: -L${libdir} @DYNLIB@ @ZLIB_LIBS@
++Libs.private: -L${libdir} @DYNLIB@ @ZLIB_LIBS@ @SYSFS_LIBS@
+ Cflags: @THREADFLAGS@ -I@INCLUDEDIR@

diff --git a/dev-libs/DirectFB/files/DirectFB-1.2.0-headers.patch b/dev-libs/DirectFB/files/DirectFB-1.2.0-headers.patch
new file mode 100644
index 00000000..dc2e6d3
--- /dev/null
+++ b/dev-libs/DirectFB/files/DirectFB-1.2.0-headers.patch
@@ -0,0 +1,16 @@
+Don't rely on the kernel to tell us what the cpu target is ... we'll just
+use the default values all the time instead.
+
+http://bugs.gentoo.org/152614
+
+--- lib/direct/ppcasm_memcpy_cachable.S
++++ lib/direct/ppcasm_memcpy_cachable.S
+@@ -34,8 +34,6 @@
+ 
+ #define __ASSEMBLY__
+ 
+-#include <linux/config.h>
+-
+ #if defined(CONFIG_8xx) || defined(CONFIG_403GCX)
+ #define L1_CACHE_LINE_SIZE       16
+ #define LG_L1_CACHE_LINE_SIZE     4 

diff --git a/dev-libs/DirectFB/files/DirectFB-1.2.7-CFLAGS.patch b/dev-libs/DirectFB/files/DirectFB-1.2.7-CFLAGS.patch
new file mode 100644
index 00000000..92e3ed8
--- /dev/null
+++ b/dev-libs/DirectFB/files/DirectFB-1.2.7-CFLAGS.patch
@@ -0,0 +1,19 @@
+--- DirectFB-1.2.7/configure
++++ DirectFB-1.2.7/configure
+@@ -22953,8 +22953,6 @@
+   CFLAGS=
+ fi
+ 
+-CFLAGS="-O3 -ffast-math -pipe $CFLAGS"
+-
+ DFB_INTERNAL_CFLAGS="-D_GNU_SOURCE $DFB_INTERNAL_CFLAGS"
+ 
+ # Check whether --enable-extra-warnings was given.
+@@ -23622,7 +23620,6 @@
+ fi
+ 
+ if test "$enable_debug" = "yes"; then
+-    CFLAGS="$CFLAGS -g3 -fno-inline -Wno-inline"
+     DIRECT_BUILD_DEBUG=1
+ else
+     DIRECT_BUILD_DEBUG=0

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 00000000..e428afb
--- /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 (setjmp( 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 (setjmp( 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
+


^ permalink raw reply related	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2017-01-18 10:50 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-01-18 10:50 [gentoo-commits] repo/gentoo:master commit in: dev-libs/DirectFB/, dev-libs/DirectFB/files/ Thomas Deutschmann
  -- strict thread matches above, loose matches on Subject: below --
2016-10-02 20:38 David Seifert

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox