diff options
Diffstat (limited to 'community/flam3')
-rw-r--r-- | community/flam3/PKGBUILD | 31 | ||||
-rw-r--r-- | community/flam3/flam3-3.0.1-libpng15.patch | 76 |
2 files changed, 107 insertions, 0 deletions
diff --git a/community/flam3/PKGBUILD b/community/flam3/PKGBUILD new file mode 100644 index 000000000..2dc0711ea --- /dev/null +++ b/community/flam3/PKGBUILD @@ -0,0 +1,31 @@ +# $Id: PKGBUILD 90023 2013-05-06 19:36:52Z foutrelis $ +# Maintainer: Eric BĂ©langer <eric@archlinux.org> + +pkgname=flam3 +pkgver=3.0.1 +pkgrel=3 +pkgdesc="Tools to create/display fractal flames: algorithmically generated images and animations" +arch=('i686' 'x86_64') +url="http://flam3.com/" +license=('GPL3') +depends=('libjpeg' 'libpng' 'libxml2') +options=('!libtool') +source=(http://flam3.googlecode.com/files/${pkgname}-${pkgver}.tar.gz flam3-3.0.1-libpng15.patch) +sha1sums=('8814515f2e49e034e47cf97e9d2c0e932844abb9' + '17ece6cc00899e5135dad2bc79f97dfbd73107a6') + +prepare() { + cd ${pkgname}-${pkgver}/src + patch -p1 -i ../../flam3-3.0.1-libpng15.patch +} + +build() { + cd ${pkgname}-${pkgver}/src + ./configure --prefix=/usr --enable-shared + make +} + +package() { + cd ${pkgname}-${pkgver}/src + make DESTDIR="${pkgdir}" install +} diff --git a/community/flam3/flam3-3.0.1-libpng15.patch b/community/flam3/flam3-3.0.1-libpng15.patch new file mode 100644 index 000000000..61f905589 --- /dev/null +++ b/community/flam3/flam3-3.0.1-libpng15.patch @@ -0,0 +1,76 @@ +http://code.google.com/p/flam3/issues/detail?id=8 + +--- src/png.c ++++ src/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); |