aboutsummaryrefslogtreecommitdiffstats
path: root/graphics/flam3
diff options
context:
space:
mode:
authorantoine <antoine@FreeBSD.org>2014-12-25 18:12:06 +0800
committerantoine <antoine@FreeBSD.org>2014-12-25 18:12:06 +0800
commit2ba56dc693dde82b21fadcb9f1a6a832453c68fa (patch)
tree527cc532a8d12b8795b0f6986856d99081081dbe /graphics/flam3
parent7870ff542a37a02c6875b94cd126879ade8acebd (diff)
downloadfreebsd-ports-gnome-2ba56dc693dde82b21fadcb9f1a6a832453c68fa.tar.gz
freebsd-ports-gnome-2ba56dc693dde82b21fadcb9f1a6a832453c68fa.tar.zst
freebsd-ports-gnome-2ba56dc693dde82b21fadcb9f1a6a832453c68fa.zip
Properly support png 1.5
Diffstat (limited to 'graphics/flam3')
-rw-r--r--graphics/flam3/Makefile4
-rw-r--r--graphics/flam3/files/patch-png.c86
2 files changed, 78 insertions, 12 deletions
diff --git a/graphics/flam3/Makefile b/graphics/flam3/Makefile
index 9cd85d6eb37d..e563790fa829 100644
--- a/graphics/flam3/Makefile
+++ b/graphics/flam3/Makefile
@@ -11,14 +11,14 @@ MASTER_SITES= http://flam3.com/ \
MAINTAINER= john.c.prather@gmail.com
COMMENT= Flame Renderer
-LIB_DEPENDS= libpng15.so:${PORTSDIR}/graphics/png \
+LIB_DEPENDS= libpng.so:${PORTSDIR}/graphics/png \
libxml2.so:${PORTSDIR}/textproc/libxml2 \
libjpeg.so:${PORTSDIR}/graphics/jpeg
GNU_CONFIGURE= yes
USES= gmake libtool pathfix pkgconfig
-CPPFLAGS+= -I${LOCALBASE}/include/libpng15 -I${LOCALBASE}/include
+CPPFLAGS+= -I${LOCALBASE}/include
LIBS+= -L${LOCALBASE}/lib
.include <bsd.port.mk>
diff --git a/graphics/flam3/files/patch-png.c b/graphics/flam3/files/patch-png.c
index fa5a620a4b31..716451601970 100644
--- a/graphics/flam3/files/patch-png.c
+++ b/graphics/flam3/files/patch-png.c
@@ -1,10 +1,76 @@
---- png.c.orig 2008-11-12 02:39:40.000000000 +0100
-+++ png.c 2012-04-25 06:46:07.000000000 +0200
-@@ -21,6 +21,7 @@
- #include <stdio.h>
- #include <stdlib.h>
- #include <png.h>
-+#include <pngpriv.h>
- #include <setjmp.h>
-
- #include "config.h"
+http://code.google.com/p/flam3/issues/detail?id=8
+
+--- png.c.orig
++++ png.c
+@@ -142,7 +142,7 @@
+ }
+ if (setjmp(png_jmpbuf(png_ptr))) {
+ if (png_image) {
+- for (y = 0 ; y < info_ptr->height ; y++)
++ for (y = 0 ; y < png_get_image_height(png_ptr, info_ptr) ; y++)
+ free (png_image[y]);
+ free (png_image);
+ }
+@@ -161,19 +161,19 @@
+ png_set_sig_bytes (png_ptr, SIG_CHECK_SIZE);
+ png_read_info (png_ptr, info_ptr);
+
+- if (8 != info_ptr->bit_depth) {
++ if (8 != png_get_bit_depth(png_ptr, info_ptr)) {
+ fprintf(stderr, "bit depth type must be 8, not %d.\n",
+- info_ptr->bit_depth);
++ png_get_bit_depth(png_ptr, info_ptr));
+ return 0;
+ }
+
+- *width = info_ptr->width;
+- *height = info_ptr->height;
++ *width = png_get_image_width(png_ptr, info_ptr);
++ *height = png_get_image_height(png_ptr, info_ptr);
+ p = q = malloc(4 * *width * *height);
+- png_image = (png_byte **)malloc (info_ptr->height * sizeof (png_byte*));
++ png_image = (png_byte **)malloc (png_get_image_height(png_ptr, info_ptr) * sizeof (png_byte*));
+
+- linesize = info_ptr->width;
+- switch (info_ptr->color_type) {
++ linesize = png_get_image_width(png_ptr, info_ptr);
++ switch (png_get_color_type(png_ptr, info_ptr)) {
+ case PNG_COLOR_TYPE_RGB:
+ linesize *= 3;
+ break;
+@@ -182,21 +182,21 @@
+ break;
+ default:
+ fprintf(stderr, "color type must be RGB or RGBA not %d.\n",
+- info_ptr->color_type);
++ png_get_color_type(png_ptr, info_ptr));
+ return 0;
+ }
+
+- for (y = 0 ; y < info_ptr->height ; y++) {
++ for (y = 0 ; y < png_get_image_height(png_ptr, info_ptr) ; y++) {
+ png_image[y] = malloc (linesize);
+ }
+ png_read_image (png_ptr, png_image);
+ png_read_end (png_ptr, info_ptr);
+
+- for (y = 0 ; y < info_ptr->height ; y++) {
++ for (y = 0 ; y < png_get_image_height(png_ptr, info_ptr) ; y++) {
+ unsigned char *s = png_image[y];
+- for (x = 0 ; x < info_ptr->width ; x++) {
++ for (x = 0 ; x < png_get_image_width(png_ptr, info_ptr) ; x++) {
+
+- switch (info_ptr->color_type) {
++ switch (png_get_color_type(png_ptr, info_ptr)) {
+ case PNG_COLOR_TYPE_RGB:
+ p[0] = s[0];
+ p[1] = s[1];
+@@ -217,7 +217,7 @@
+ }
+ }
+
+- for (y = 0 ; y < info_ptr->height ; y++)
++ for (y = 0 ; y < png_get_image_height(png_ptr, info_ptr) ; y++)
+ free (png_image[y]);
+ free (png_image);
+ png_destroy_read_struct (&png_ptr, &info_ptr, (png_infopp)NULL);