From 7a65a910b77ad191d69881098c47f9b0c852d92e Mon Sep 17 00:00:00 2001 From: root Date: Tue, 13 Aug 2013 01:33:19 -0700 Subject: Tue Aug 13 01:31:08 PDT 2013 --- community/metapixel/PKGBUILD | 35 +++++ .../metapixel/metapixel-1.0.2-giflib-5.0.patch | 11 ++ .../metapixel/metapixel-1.0.2-libpng-1.5.patch | 174 +++++++++++++++++++++ 3 files changed, 220 insertions(+) create mode 100644 community/metapixel/PKGBUILD create mode 100644 community/metapixel/metapixel-1.0.2-giflib-5.0.patch create mode 100644 community/metapixel/metapixel-1.0.2-libpng-1.5.patch (limited to 'community/metapixel') diff --git a/community/metapixel/PKGBUILD b/community/metapixel/PKGBUILD new file mode 100644 index 000000000..64d451ab4 --- /dev/null +++ b/community/metapixel/PKGBUILD @@ -0,0 +1,35 @@ +# $Id: PKGBUILD 94928 2013-08-01 07:01:23Z bpiotrowski $ +# Maintainer: Lukas Fleischer +# Contributor: Daniel Isenmann + +pkgname=metapixel +pkgver=1.0.2 +pkgrel=5 +pkgdesc='A program for generating photomosaics.' +arch=('i686' 'x86_64') +url='http://www.complang.tuwien.ac.at/schani/metapixel/' +license=('GPL') +depends=('giflib' 'libjpeg' 'libpng' 'perl') +source=("http://www.complang.tuwien.ac.at/schani/metapixel/files/${pkgname}-${pkgver}.tar.gz" + 'metapixel-1.0.2-libpng-1.5.patch' + 'metapixel-1.0.2-giflib-5.0.patch') +md5sums=('af5d77d38826756af213a08e3ada9941' + '1832a79790b07402735bfeb9f71f36e9' + 'f16abb33c545734eea36ec16c92a05e8') + +build() { + cd "${srcdir}/${pkgname}-${pkgver}" + + patch -p1 -i ../metapixel-1.0.2-libpng-1.5.patch + patch -p0 -i ../metapixel-1.0.2-giflib-5.0.patch + + make +} + +package() { + cd "${srcdir}/${pkgname}-${pkgver}" + + install -dm0755 "${pkgdir}/usr/share/man/man1" + + make PREFIX="${pkgdir}/usr" install +} diff --git a/community/metapixel/metapixel-1.0.2-giflib-5.0.patch b/community/metapixel/metapixel-1.0.2-giflib-5.0.patch new file mode 100644 index 000000000..d9d4b9065 --- /dev/null +++ b/community/metapixel/metapixel-1.0.2-giflib-5.0.patch @@ -0,0 +1,11 @@ +--- rwimg/rwgif.c.orig 2013-07-30 13:21:57.733602922 +0200 ++++ rwimg/rwgif.c 2013-07-30 13:21:01.827421262 +0200 +@@ -54,7 +54,7 @@ open_gif_file (const char *filename, int + + assert(data != 0); + +- data->file = DGifOpenFileName(filename); ++ data->file = DGifOpenFileName(filename, NULL); + + assert(data->file !=0); + diff --git a/community/metapixel/metapixel-1.0.2-libpng-1.5.patch b/community/metapixel/metapixel-1.0.2-libpng-1.5.patch new file mode 100644 index 000000000..ed787452f --- /dev/null +++ b/community/metapixel/metapixel-1.0.2-libpng-1.5.patch @@ -0,0 +1,174 @@ +--- metapixel-1.0.2.orig/rwimg/rwpng.c ++++ metapixel-1.0.2/rwimg/rwpng.c +@@ -57,19 +57,39 @@ + data->end_info = png_create_info_struct(data->png_ptr); + assert(data->end_info != 0); + ++#if PNG_LIBPNG_VER_MAJOR >= 1 && PNG_LIBPNG_VER_MINOR >= 4 ++ if (setjmp(png_jmpbuf((data->png_ptr)))) ++#else + if (setjmp(data->png_ptr->jmpbuf)) ++#endif + assert(0); + +- png_init_io(data->png_ptr, data->file); +- ++#if PNG_LIBPNG_VER_MAJOR >= 1 && PNG_LIBPNG_VER_MINOR >= 4 ++ png_init_io(data->png_ptr, data->file); ++ png_read_info(data->png_ptr, data->info_ptr); ++#else ++ png_init_io(data->png_ptr, data->file); + png_read_info(data->png_ptr, data->info_ptr); ++#endif + ++#if PNG_LIBPNG_VER_MAJOR >= 1 && PNG_LIBPNG_VER_MINOR >= 4 ++ *width = png_get_image_width(data->png_ptr, data->info_ptr); ++ *height = png_get_image_height(data->png_ptr, data->info_ptr); ++ { ++ png_byte value = png_get_bit_depth(data->png_ptr, data->info_ptr); ++ assert(value == 8 || value == 16); ++ value = png_get_color_type(data->png_ptr, data->info_ptr); ++ assert(value == PNG_COLOR_TYPE_RGB || value == PNG_COLOR_TYPE_RGB_ALPHA); ++ value = png_get_interlace_type(data->png_ptr, data->info_ptr); ++ assert(value == PNG_INTERLACE_NONE); ++ } ++#else + *width = data->info_ptr->width; + *height = data->info_ptr->height; +- + assert(data->info_ptr->bit_depth == 8 || data->info_ptr->bit_depth == 16); + assert(data->info_ptr->color_type == PNG_COLOR_TYPE_RGB || data->info_ptr->color_type == PNG_COLOR_TYPE_RGB_ALPHA); + assert(data->info_ptr->interlace_type == PNG_INTERLACE_NONE); ++#endif + + data->have_read = 0; + +@@ -81,32 +101,51 @@ + { + png_data_t *data = (png_data_t*)_data; + int i; +- int bps, spp; ++ int bps, spp, width; + unsigned char *row; + ++#if PNG_LIBPNG_VER_MAJOR >= 1 && PNG_LIBPNG_VER_MINOR >= 4 ++ ++ if (setjmp(png_jmpbuf((data->png_ptr)))) ++#else + if (setjmp(data->png_ptr->jmpbuf)) ++#endif + assert(0); + ++#if PNG_LIBPNG_VER_MAJOR >= 1 && PNG_LIBPNG_VER_MINOR >= 4 ++ if(png_get_color_type(data->png_ptr, data->info_ptr) == PNG_COLOR_TYPE_RGB) ++#else + if (data->info_ptr->color_type == PNG_COLOR_TYPE_RGB) ++#endif + spp = 3; + else + spp = 4; + ++#if PNG_LIBPNG_VER_MAJOR >= 1 && PNG_LIBPNG_VER_MINOR >= 4 ++ if(png_get_bit_depth(data->png_ptr, data->info_ptr) == 16) ++#else + if (data->info_ptr->bit_depth == 16) ++#endif + bps = 2; + else + bps = 1; + +- row = (unsigned char*)malloc(data->info_ptr->width * spp * bps); ++#if PNG_LIBPNG_VER_MAJOR >= 1 && PNG_LIBPNG_VER_MINOR >= 4 ++ width = png_get_image_width(data->png_ptr, data->info_ptr); ++#else ++ width = data->info_ptr->width: ++#endif ++ ++ row = (unsigned char*)malloc(width * spp * bps); + + for (i = 0; i < num_lines; ++i) + { + int j, channel; + + png_read_row(data->png_ptr, (png_bytep)row, 0); +- for (j = 0; j < data->info_ptr->width; ++j) ++ for (j = 0; j < width; ++j) + for (channel = 0; channel < 3; ++channel) +- lines[i * data->info_ptr->width * 3 + j * 3 + channel] = row[j * spp * bps + channel * bps]; ++ lines[i * width * 3 + j * 3 + channel] = row[j * spp * bps + channel * bps]; + } + + free(row); +@@ -119,7 +158,11 @@ + { + png_data_t *data = (png_data_t*)_data; + ++#if PNG_LIBPNG_VER_MAJOR >= 1 && PNG_LIBPNG_VER_MINOR >= 4 ++ if (setjmp(png_jmpbuf((data->png_ptr)))) ++#else + if (setjmp(data->png_ptr->jmpbuf)) ++#endif + assert(0); + + if (data->have_read) +@@ -148,7 +191,11 @@ + data->info_ptr = png_create_info_struct(data->png_ptr); + assert(data->info_ptr != 0); + ++#if PNG_LIBPNG_VER_MAJOR >= 1 && PNG_LIBPNG_VER_MINOR >= 4 ++ if (setjmp(png_jmpbuf((data->png_ptr)))) ++#else + if (setjmp(data->png_ptr->jmpbuf)) ++#endif + assert(0); + + if (pixel_stride == 4) +@@ -156,6 +203,16 @@ + + png_init_io(data->png_ptr, data->file); + ++#if PNG_LIBPNG_VER_MAJOR >= 1 && PNG_LIBPNG_VER_MINOR >= 4 ++ png_set_IHDR(data->png_ptr, data->info_ptr, ++ width, height, 8, PNG_COLOR_TYPE_RGB, PNG_INTERLACE_NONE, ++ PNG_COMPRESSION_TYPE_DEFAULT, PNG_FILTER_TYPE_DEFAULT); ++ ++ /* Maybe does not need following. */ ++ png_set_tRNS(data->png_ptr, data->info_ptr, NULL, 0, NULL); ++ png_set_PLTE(data->png_ptr, data->info_ptr, NULL, 0); ++ png_set_invalid(data->png_ptr, data->info_ptr, 0); ++#else + data->info_ptr->width = width; + data->info_ptr->height = height; + data->info_ptr->valid = 0; +@@ -168,6 +225,7 @@ + data->info_ptr->compression_type = PNG_COMPRESSION_TYPE_DEFAULT; + data->info_ptr->filter_type = PNG_FILTER_TYPE_DEFAULT; + data->info_ptr->interlace_type = PNG_INTERLACE_NONE; ++#endif + + png_write_info(data->png_ptr, data->info_ptr); + +@@ -182,7 +240,11 @@ + png_data_t *data = (png_data_t*)_data; + int i; + ++#if PNG_LIBPNG_VER_MAJOR >= 1 && PNG_LIBPNG_VER_MINOR >= 4 ++ if (setjmp(png_jmpbuf((data->png_ptr)))) ++#else + if (setjmp(data->png_ptr->jmpbuf)) ++#endif + assert(0); + + for (i = 0; i < num_lines; ++i) +@@ -194,7 +256,11 @@ + { + png_data_t *data = (png_data_t*)_data; + ++#if PNG_LIBPNG_VER_MAJOR >= 1 && PNG_LIBPNG_VER_MINOR >= 4 ++ if (setjmp(png_jmpbuf((data->png_ptr)))) ++#else + if (setjmp(data->png_ptr->jmpbuf)) ++#endif + assert(0); + + png_write_end(data->png_ptr, data->info_ptr); -- cgit v1.2.3-54-g00ecf