--- /dev/null
+--- DirectFB-1.4.15/tools/directfb-csource.c.orig 2011-09-29 11:51:21.000000000 +0200
++++ DirectFB-1.4.15/tools/directfb-csource.c 2011-12-31 11:45:40.123082173 +0100
+@@ -338,7 +338,7 @@
+ 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;
+@@ -406,16 +406,19 @@
+
+ switch (src_format) {
+ case DSPF_LUT8:
+- if (info_ptr->num_palette) {
++ {
++ png_colorp png_palette;
++ int num_palette;
++ if (png_get_PLTE(png_ptr, info_ptr, &png_palette, &num_palette) && (num_palette > 0)) {
+ 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);
+@@ -423,6 +426,7 @@
+ palette[i].a = alpha[i];
+ }
+ }
++ }
+ break;
+ case DSPF_RGB32:
+ png_set_filler (png_ptr, 0xFF,
+--- DirectFB-1.4.15/tools/mkdfiff.c.orig 2011-09-29 11:51:21.000000000 +0200
++++ DirectFB-1.4.15/tools/mkdfiff.c 2011-12-31 11:54:59.336434230 +0100
+@@ -97,7 +97,7 @@
+ 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;
+--- DirectFB-1.4.15/tools/mkdgifft.cpp.orig 2011-09-29 11:51:21.000000000 +0200
++++ DirectFB-1.4.15/tools/mkdgifft.cpp 2011-12-31 12:04:10.586452688 +0100
+@@ -595,7 +595,7 @@
+ 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;
+--- DirectFB-1.4.15/interfaces/IDirectFBImageProvider/idirectfbimageprovider_png.c.orig 2011-09-29 11:51:21.000000000 +0200
++++ DirectFB-1.4.15/interfaces/IDirectFBImageProvider/idirectfbimageprovider_png.c 2011-12-31 13:45:31.339989628 +0100
+@@ -209,7 +209,7 @@
+ 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;
+ }
+@@ -294,7 +294,7 @@
+ 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)
+@@ -337,7 +337,7 @@
+
+ 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 && png_get_bit_depth(data->png_ptr, data->info_ptr) == 8) {
+ /*
+ * Special indexed PNG to LUT8 loading.
+ */
+@@ -390,7 +390,7 @@
+ }
+ else {
+ if (data->color_type == PNG_COLOR_TYPE_GRAY) {
+- int num = 1 << data->info_ptr->bit_depth;
++ int num = 1 << png_get_bit_depth(data->png_ptr, data->info_ptr);
+
+ for (x=0; x<num; x++) {
+ int value = x * 255 / (num - 1);
+@@ -399,7 +399,7 @@
+ }
+ }
+
+- switch (data->info_ptr->bit_depth) {
++ switch (png_get_bit_depth(data->png_ptr, data->info_ptr)) {
+ case 8:
+ for (y=0; y<data->height; y++) {
+ u8 *S = data->image + data->pitch * y;
+@@ -454,7 +454,7 @@
+
+ default:
+ D_ERROR( "ImageProvider/PNG: Unsupported indexed bit depth %d!\n",
+- data->info_ptr->bit_depth );
++ png_get_bit_depth(data->png_ptr, data->info_ptr) );
+ }
+
+ dfb_scale_linear_32( image_argb, data->width, data->height,
+@@ -616,12 +616,16 @@
+ /* 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;
++ png_bytep trans;
++ png_color_16p trans_color;
++ int num_palette, num_colors, num_trans;
++
++ png_get_PLTE(data->png_ptr, data->info_ptr, &palette, &num_palette);
++ png_get_tRNS(data->png_ptr, data->info_ptr, &trans, &num_trans, &trans_color);
++ num_colors = MIN (MAXCOLORMAPSIZE, num_palette);
++ {
++ u8 cmap[3][num_colors];
+ for (i=0; i<num_colors; i++) {
+ cmap[0][i] = palette[i].red;
+ cmap[1][i] = palette[i].green;
+@@ -629,8 +633,9 @@
+ }
+
+ 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;
+@@ -642,7 +647,10 @@
+ }
+ else if (data->color_type == PNG_COLOR_TYPE_GRAY) {
+ /* ...or based on trans gray value */
+- png_color_16p trans = &data->info_ptr->trans_color;
++ png_bytep trans_alpha;
++ png_color_16p trans;
++ int num_trans;
++ png_get_tRNS(data->png_ptr, data->info_ptr, &trans_alpha, &num_trans, &trans);
+
+ switch(data->bpp) {
+ case 1:
+@@ -675,7 +683,10 @@
+ }
+ else {
+ /* ...or based on trans rgb value */
+- png_color_16p trans = &data->info_ptr->trans_color;
++ png_bytep trans_alpha;
++ png_color_16p trans;
++ int num_trans;
++ png_get_tRNS(data->png_ptr, data->info_ptr, &trans_alpha, &num_trans, &trans);
+
+ switch(data->bpp) {
+ case 1:
+@@ -710,10 +721,14 @@
+
+ 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, num_palette, num_colors;
++
++ png_get_PLTE(data->png_ptr, data->info_ptr, &palette, &num_palette);
++ png_get_tRNS(data->png_ptr, data->info_ptr, &trans, &num_trans, &trans_color);
++ num_colors = MIN( MAXCOLORMAPSIZE, num_palette );
+
+ for (i=0; i<num_colors; i++) {
+ data->colors[i].a = (i < num_trans) ? trans[i] : 0xff;
+@@ -847,7 +862,10 @@
+ }
+ }
+
+- png_color_16p trans = &data->info_ptr->trans_color;
++ int num_trans;
++ png_bytep trans_alpha;
++ png_color_16p trans;
++ png_get_tRNS(data->png_ptr, data->info_ptr, &trans_alpha, &num_trans, &trans);
+ u16 *src16 = (u16*)src + src16_initial_offset;
+ u32 *dst32 = (u32*)dst + dst32_initial_offset;
+
Summary: DirectFB - Hardware graphics acceleration
Summary(pl.UTF-8): DirectFB - Wspomaganie grafiki
Name: DirectFB
-Version: 1.4.14
-Release: 2
+Version: 1.4.15
+Release: 1
Epoch: 1
License: LGPL v2+
Group: Libraries
Source0: http://www.directfb.org/downloads/Core/DirectFB-1.4/%{name}-%{version}.tar.gz
-# Source0-md5: de0745d25a6ac9e337d4d5572df85471
+# Source0-md5: 9b2b90b81d7ded2a4a5caa22daeb81ef
Source1: http://www.directfb.org/downloads/Extras/DFBTutorials-0.5.0.tar.gz
# Source1-md5: 13e443a64bddd68835b574045d9025e9
Patch0: %{name}-am.patch
Patch2: %{name}-fix.patch
Patch3: %{name}-gcc4.patch
Patch4: %{name}-llh-ppc.patch
+Patch5: %{name}-libpng.patch
URL: http://www.directfb.org/
BuildRequires: OpenGL-devel
BuildRequires: OpenGL-GLX-devel
%{?with_multi:Provides: DirectFB(multi)}
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
-%define dfbdir %{_libdir}/directfb-1.4-5
+%define dfbdir %{_libdir}/directfb-1.4-6
%define specflags -fno-strict-aliasing
%patch2 -p1
%patch3 -p1
%patch4 -p1
+%patch5 -p1
%{__sed} -i -e 's/checkfor_cle266=no/checkfor_cle266=yes/' configure.in
%attr(755,root,root) %{_bindir}/dfbpenmount
%attr(755,root,root) %{_bindir}/dfbproxy
%attr(755,root,root) %{_bindir}/dfbscreen
-%attr(755,root,root) %{_bindir}/fluxcomp
%attr(755,root,root) %{_bindir}/mkdfiff
%attr(755,root,root) %{_bindir}/mkdgiff
%attr(755,root,root) %{_bindir}/mkdgifft
%attr(755,root,root) %{_bindir}/uwmdump
%attr(755,root,root) %{_bindir}/voodooplay
%attr(755,root,root) %{_libdir}/libdirect-1.4.so.*.*.*
-%attr(755,root,root) %ghost %{_libdir}/libdirect-1.4.so.5
+%attr(755,root,root) %ghost %{_libdir}/libdirect-1.4.so.6
%attr(755,root,root) %{_libdir}/libdirectfb-1.4.so.*.*.*
-%attr(755,root,root) %ghost %{_libdir}/libdirectfb-1.4.so.5
+%attr(755,root,root) %ghost %{_libdir}/libdirectfb-1.4.so.6
%attr(755,root,root) %{_libdir}/libfusion-1.4.so.*.*.*
-%attr(755,root,root) %ghost %{_libdir}/libfusion-1.4.so.5
+%attr(755,root,root) %ghost %{_libdir}/libfusion-1.4.so.6
%attr(755,root,root) %{_libdir}/libuniquewm-1.4.so.*.*.*
-%attr(755,root,root) %ghost %{_libdir}/libuniquewm-1.4.so.5
+%attr(755,root,root) %ghost %{_libdir}/libuniquewm-1.4.so.6
%attr(755,root,root) %{_libdir}/libvoodoo-1.4.so.*.*.*
-%attr(755,root,root) %ghost %{_libdir}/libvoodoo-1.4.so.5
+%attr(755,root,root) %ghost %{_libdir}/libvoodoo-1.4.so.6
%dir %{dfbdir}
%dir %{dfbdir}/gfxdrivers
%attr(755,root,root) %{dfbdir}/gfxdrivers/libdirectfb_ati128.so
%attr(755,root,root) %{dfbdir}/inputdrivers/libdirectfb_sonypi.so
%attr(755,root,root) %{dfbdir}/inputdrivers/libdirectfb_zytronic.so
%dir %{dfbdir}/interfaces
+%dir %{dfbdir}/interfaces/ICoreResourceManager
+%attr(755,root,root) %{dfbdir}/interfaces/ICoreResourceManager/libicoreresourcemanager_test.so
%dir %{dfbdir}/interfaces/IDirectFB
%attr(755,root,root) %{dfbdir}/interfaces/IDirectFB/lib*.so
%dir %{dfbdir}/interfaces/IDirectFBDataBuffer
%files core-vnc
%defattr(644,root,root,755)
-%attr(755,root,root) %{dfbdir}/inputdrivers/libdirectfb_vncinput.so
%attr(755,root,root) %{dfbdir}/systems/libdirectfb_vnc.so
%files core-x11