summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorLukáš Jirkovský2017-06-25 20:41:16 +0200
committerLukáš Jirkovský2017-06-25 20:41:16 +0200
commit5e6ea24f49123fefe547dd1551ab19fee3e93cd6 (patch)
tree1f630fc06e923d4afeb8fd85798d5c24d738d757
downloadaur-5e6ea24f49123fefe547dd1551ab19fee3e93cd6.tar.gz
move gimp-plugin-mathmap to AUR
-rw-r--r--.SRCINFO34
-rw-r--r--PKGBUILD50
-rw-r--r--fix_libnoise_build.patch12
-rw-r--r--flexible_array_member.diff37
-rw-r--r--giflib-5.1.patch21
-rw-r--r--libpng15.patch170
-rw-r--r--mathmap-gsl2.patch11
7 files changed, 335 insertions, 0 deletions
diff --git a/.SRCINFO b/.SRCINFO
new file mode 100644
index 000000000000..cef4e43ab3fb
--- /dev/null
+++ b/.SRCINFO
@@ -0,0 +1,34 @@
+# Generated by mksrcinfo v8
+# Sun Jun 25 18:41:16 UTC 2017
+pkgbase = gimp-plugin-mathmap
+ pkgdesc = A GIMP plug-in which allows distortion of images specified by mathematical formulae
+ pkgver = 1.3.5
+ pkgrel = 8
+ url = http://www.complang.tuwien.ac.at/schani/mathmap/
+ arch = i686
+ arch = x86_64
+ license = GPL
+ makedepends = doxygen
+ makedepends = unzip
+ depends = gimp
+ depends = gsl
+ depends = gtksourceview2
+ depends = fftw
+ depends = giflib
+ provides = gimp-mathmap
+ replaces = gimp-mathmap
+ source = https://www.complang.tuwien.ac.at/schani/mathmap/files/mathmap-1.3.5.tar.gz
+ source = fix_libnoise_build.patch
+ source = libpng15.patch
+ source = giflib-5.1.patch
+ source = mathmap-gsl2.patch
+ source = flexible_array_member.diff
+ md5sums = 6ff66d070ea410dee1a27283d05b8beb
+ md5sums = eca40de0ba0e6b8d34b7d1f904bc3d18
+ md5sums = 9780d6354b7380b772c4616253ecee54
+ md5sums = a4dae904ede98ee8d3104bcfd285cec5
+ md5sums = 34350e9d8edc451926298919a9300990
+ md5sums = 769f284e7c0388f11849509487f5275f
+
+pkgname = gimp-plugin-mathmap
+
diff --git a/PKGBUILD b/PKGBUILD
new file mode 100644
index 000000000000..3cdc35c61c67
--- /dev/null
+++ b/PKGBUILD
@@ -0,0 +1,50 @@
+# $Id: PKGBUILD 195253 2016-11-09 21:24:04Z stativ $
+# Maintainer: Lukas Jirkovsky <l.jirkovsky@gmail.com>
+# Contributor: Geoffroy Carrier <geoffroy.carrier@aur.archlinux.org>
+# Contributor: Serge Gielkens <gielkens.serge@mumeli.org>
+pkgname=gimp-plugin-mathmap
+pkgver=1.3.5
+pkgrel=8
+pkgdesc="A GIMP plug-in which allows distortion of images specified by mathematical formulae"
+arch=('i686' 'x86_64')
+url="http://www.complang.tuwien.ac.at/schani/mathmap/"
+license=('GPL')
+depends=('gimp' 'gsl' 'gtksourceview2' 'fftw' 'giflib')
+makedepends=('doxygen' 'unzip')
+provides=('gimp-mathmap')
+replaces=('gimp-mathmap')
+source=(https://www.complang.tuwien.ac.at/schani/mathmap/files/mathmap-${pkgver}.tar.gz
+ fix_libnoise_build.patch libpng15.patch giflib-5.1.patch mathmap-gsl2.patch
+ flexible_array_member.diff)
+md5sums=('6ff66d070ea410dee1a27283d05b8beb'
+ 'eca40de0ba0e6b8d34b7d1f904bc3d18'
+ '9780d6354b7380b772c4616253ecee54'
+ 'a4dae904ede98ee8d3104bcfd285cec5'
+ '34350e9d8edc451926298919a9300990'
+ '769f284e7c0388f11849509487f5275f')
+
+prepare() {
+ cd "$srcdir/mathmap-$pkgver"
+
+ # fix problem with building libnoise
+ patch -Np1 < "$srcdir"/fix_libnoise_build.patch
+ # fix for libpng 1.5
+ patch -Np1 < "$srcdir"/libpng15.patch
+ # fix for giflib 5.1
+ patch -Np1 < "$srcdir"/giflib-5.1.patch
+ # fix build with GSL 2
+ patch -Np1 -i "$srcdir"/mathmap-gsl2.patch
+ # fix build, GCC doesn't like flexible array members in unions
+ patch -Np1 -i "$srcdir"/flexible_array_member.diff
+}
+
+build() {
+ cd "$srcdir/mathmap-$pkgver"
+
+ make
+}
+
+package() {
+ cd "$srcdir/mathmap-$pkgver"
+ make DESTDIR="$pkgdir" install
+}
diff --git a/fix_libnoise_build.patch b/fix_libnoise_build.patch
new file mode 100644
index 000000000000..fc81ba0d8904
--- /dev/null
+++ b/fix_libnoise_build.patch
@@ -0,0 +1,12 @@
+diff -rup mathmap-1.3.5/Makefile mathmap-1.3.5-fix//Makefile
+--- mathmap-1.3.5/Makefile 2009-08-23 13:56:14.000000000 +0200
++++ mathmap-1.3.5-fix//Makefile 2010-11-11 16:48:13.308941852 +0100
+@@ -178,7 +178,7 @@ backends/lazy_creator.o : backends/lazy_
+ $(CXX) $(MATHMAP_CXXFLAGS) $(FORMATDEFS) -o $@ -c backends/lazy_creator.cpp
+
+ builtins/libnoise.o : builtins/libnoise.cpp builtins/libnoise.h
+- $(CXX) $(MATHMAP_CXXFLAGS) -Ilibnoise/noise/include -o $@ -c builtins/libnoise.cpp
++ $(CXX) $(MATHMAP_CXXFLAGS) -Ilibnoise/noise/include -Ilibnoise/noise/src -o $@ -c builtins/libnoise.cpp
+
+ new_builtins.c opdefs.h opfuncs.h compiler_types.h llvm-ops.h : builtins.lisp ops.lisp
+ clisp builtins.lisp
diff --git a/flexible_array_member.diff b/flexible_array_member.diff
new file mode 100644
index 000000000000..119b589892cb
--- /dev/null
+++ b/flexible_array_member.diff
@@ -0,0 +1,37 @@
+diff -rup mathmap-1.3.5/drawable.h mathmap-1.3.5.new/drawable.h
+--- mathmap-1.3.5/drawable.h 2009-08-23 13:56:14.000000000 +0200
++++ mathmap-1.3.5.new/drawable.h 2016-11-09 22:15:44.264585707 +0100
+@@ -98,16 +98,6 @@ typedef struct _image_t
+ {
+ struct _input_drawable_t *drawable;
+ struct {
+- /* for rendering */
+- struct _mathfuncs_t *funcs;
+- /* for getting single pixels - never called for the root closure */
+- filter_func_t func;
+- mathmap_pools_t *pools;
+- void *xy_vars;
+- int num_args;
+- userval_t args[];
+- } closure;
+- struct {
+ float ax;
+ float bx;
+ float ay;
+@@ -119,6 +109,16 @@ typedef struct _image_t
+ float x_factor;
+ float y_factor;
+ } resize;
++ struct {
++ /* for rendering */
++ struct _mathfuncs_t *funcs;
++ /* for getting single pixels - never called for the root closure */
++ filter_func_t func;
++ mathmap_pools_t *pools;
++ void *xy_vars;
++ int num_args;
++ userval_t args[];
++ } closure;
+ } v;
+ } image_t;
+ /* END */
diff --git a/giflib-5.1.patch b/giflib-5.1.patch
new file mode 100644
index 000000000000..22b75145abe1
--- /dev/null
+++ b/giflib-5.1.patch
@@ -0,0 +1,21 @@
+diff -rup mathmap-1.3.5/rwimg/rwgif.c mathmap-1.3.5.new/rwimg/rwgif.c
+--- mathmap-1.3.5/rwimg/rwgif.c 2009-08-23 13:56:14.000000000 +0200
++++ mathmap-1.3.5.new/rwimg/rwgif.c 2014-05-29 11:31:51.388388393 +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);
+
+@@ -137,7 +137,7 @@ open_gif_file (const char *filename, int
+ }
+ free(buffer);
+
+- assert(DGifCloseFile(data->file) == GIF_OK);
++ assert(DGifCloseFile(data->file, NULL) == GIF_OK);
+
+ return data;
+ }
diff --git a/libpng15.patch b/libpng15.patch
new file mode 100644
index 000000000000..3cf95387c18e
--- /dev/null
+++ b/libpng15.patch
@@ -0,0 +1,170 @@
+diff -rup mathmap-1.3.5/rwimg/rwpng.c mathmap-1.3.5.new/rwimg/rwpng.c
+--- mathmap-1.3.5/rwimg/rwpng.c 2009-08-23 13:56:14.000000000 +0200
++++ mathmap-1.3.5.new/rwimg/rwpng.c 2012-01-27 13:02:29.708023734 +0100
+@@ -58,34 +58,34 @@ open_png_file_reading (const char *filen
+ data->end_info = png_create_info_struct(data->png_ptr);
+ assert(data->end_info != 0);
+
+- if (setjmp(data->png_ptr->jmpbuf))
++ if (setjmp(png_jmpbuf(data->png_ptr)))
+ assert(0);
+
+ png_init_io(data->png_ptr, data->file);
+
+ png_read_info(data->png_ptr, data->info_ptr);
+
+- *width = data->info_ptr->width;
+- *height = data->info_ptr->height;
++ *width = png_get_image_width(data->png_ptr, data->info_ptr);
++ *height = png_get_image_height(data->png_ptr, data->info_ptr);
+
+- if (data->info_ptr->bit_depth != 8 && data->info_ptr->bit_depth != 16)
++ if (png_get_bit_depth(data->png_ptr, data->info_ptr) != 8 && png_get_bit_depth(data->png_ptr, data->info_ptr) != 16)
+ {
+ fprintf(stderr, "PNG files are only supported with bit depths 8 and 16.\n");
+ /* FIXME: free stuff */
+ return 0;
+ }
+
+- if (data->info_ptr->color_type != PNG_COLOR_TYPE_RGB
+- && data->info_ptr->color_type != PNG_COLOR_TYPE_RGB_ALPHA
+- && data->info_ptr->color_type != PNG_COLOR_TYPE_GRAY
+- && data->info_ptr->color_type != PNG_COLOR_TYPE_GRAY_ALPHA)
++ if (png_get_color_type(data->png_ptr, data->info_ptr) != PNG_COLOR_TYPE_RGB
++ && png_get_color_type(data->png_ptr, data->info_ptr) != PNG_COLOR_TYPE_RGB_ALPHA
++ && png_get_color_type(data->png_ptr, data->info_ptr) != PNG_COLOR_TYPE_GRAY
++ && png_get_color_type(data->png_ptr, data->info_ptr) != PNG_COLOR_TYPE_GRAY_ALPHA)
+ {
+ fprintf(stderr, "PNG files are only supported in RGB and Gray, with or without alpha.\n");
+ /* FIXME: free stuff */
+ return 0;
+ }
+
+- if (data->info_ptr->interlace_type != PNG_INTERLACE_NONE)
++ if (png_get_interlace_type(data->png_ptr, data->info_ptr) != PNG_INTERLACE_NONE)
+ {
+ fprintf(stderr, "Interlaced PNG files are not supported.\n");
+ /* FIXME: free stuff */
+@@ -105,24 +105,24 @@ png_read_lines (void *_data, unsigned ch
+ int bps, spp;
+ unsigned char *row;
+
+- if (setjmp(data->png_ptr->jmpbuf))
++ if (setjmp(png_jmpbuf(data->png_ptr)))
+ assert(0);
+
+- if (data->info_ptr->color_type == PNG_COLOR_TYPE_GRAY)
++ if (png_get_color_type(data->png_ptr, data->info_ptr) == PNG_COLOR_TYPE_GRAY)
+ spp = 1;
+- else if (data->info_ptr->color_type == PNG_COLOR_TYPE_GRAY_ALPHA)
++ else if (png_get_color_type(data->png_ptr, data->info_ptr) == PNG_COLOR_TYPE_GRAY_ALPHA)
+ spp = 2;
+- else if (data->info_ptr->color_type == PNG_COLOR_TYPE_RGB)
++ else if (png_get_color_type(data->png_ptr, data->info_ptr) == PNG_COLOR_TYPE_RGB)
+ spp = 3;
+ else
+ spp = 4;
+
+- if (data->info_ptr->bit_depth == 16)
++ if (png_get_bit_depth(data->png_ptr, data->info_ptr) == 16)
+ bps = 2;
+ else
+ bps = 1;
+
+- row = (unsigned char*)malloc(data->info_ptr->width * spp * bps);
++ row = (unsigned char*)malloc(png_get_image_width(data->png_ptr, data->info_ptr) * spp * bps);
+
+ for (i = 0; i < num_lines; ++i)
+ {
+@@ -131,13 +131,13 @@ png_read_lines (void *_data, unsigned ch
+ png_read_row(data->png_ptr, (png_bytep)row, 0);
+
+ if (spp <= 2)
+- for (j = 0; j < data->info_ptr->width; ++j)
++ for (j = 0; j < png_get_image_width(data->png_ptr, data->info_ptr); ++j)
+ for (channel = 0; channel < 3; ++channel)
+- lines[i * data->info_ptr->width * 3 + j * 3 + channel] = row[j * spp * bps];
++ lines[i * png_get_image_width(data->png_ptr, data->info_ptr) * 3 + j * 3 + channel] = row[j * spp * bps];
+ else
+- for (j = 0; j < data->info_ptr->width; ++j)
++ for (j = 0; j < png_get_image_width(data->png_ptr, data->info_ptr); ++j)
+ for (channel = 0; channel < 3; ++channel)
+- lines[i * data->info_ptr->width * 3 + j * 3 + channel]
++ lines[i * png_get_image_width(data->png_ptr, data->info_ptr) * 3 + j * 3 + channel]
+ = row[j * spp * bps + channel * bps];
+ }
+
+@@ -151,7 +151,7 @@ png_free_reader_data (void *_data)
+ {
+ png_data_t *data = (png_data_t*)_data;
+
+- if (setjmp(data->png_ptr->jmpbuf))
++ if (setjmp(png_jmpbuf(data->png_ptr)))
+ assert(0);
+
+ if (data->have_read)
+@@ -180,7 +180,7 @@ open_png_file_writing (const char *filen
+ data->info_ptr = png_create_info_struct(data->png_ptr);
+ assert(data->info_ptr != 0);
+
+- if (setjmp(data->png_ptr->jmpbuf))
++ if (setjmp(png_jmpbuf(data->png_ptr)))
+ assert(0);
+
+ if (pixel_stride == 4)
+@@ -188,18 +188,9 @@ open_png_file_writing (const char *filen
+
+ png_init_io(data->png_ptr, data->file);
+
+- data->info_ptr->width = width;
+- data->info_ptr->height = height;
+- data->info_ptr->valid = 0;
+- data->info_ptr->rowbytes = width * 3;
+- data->info_ptr->palette = 0;
+- data->info_ptr->num_palette = 0;
+- data->info_ptr->num_trans = 0;
+- data->info_ptr->bit_depth = 8;
+- data->info_ptr->color_type = PNG_COLOR_TYPE_RGB;
+- 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;
++ 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);
+
+ png_write_info(data->png_ptr, data->info_ptr);
+
+@@ -216,12 +207,12 @@ png_write_lines (void *_data, unsigned c
+ unsigned char *packed_line;
+ int i;
+
+- if (setjmp(data->png_ptr->jmpbuf))
++ if (setjmp(png_jmpbuf(data->png_ptr)))
+ assert(0);
+
+ if (data->pixel_stride != 3)
+ {
+- packed_line = (unsigned char*)malloc(data->info_ptr->width * 3);
++ packed_line = (unsigned char*)malloc(png_get_image_width(data->png_ptr, data->info_ptr) * 3);
+ assert(packed_line != 0);
+ }
+ else
+@@ -235,7 +226,7 @@ png_write_lines (void *_data, unsigned c
+ {
+ int j;
+
+- for (j = 0; j < data->info_ptr->width; ++j)
++ for (j = 0; j < png_get_image_width(data->png_ptr, data->info_ptr); ++j)
+ {
+ packed_line[j * 3 + 0] = p[j * data->pixel_stride + 0];
+ packed_line[j * 3 + 1] = p[j * data->pixel_stride + 1];
+@@ -257,7 +248,7 @@ png_free_writer_data (void *_data)
+ {
+ png_data_t *data = (png_data_t*)_data;
+
+- if (setjmp(data->png_ptr->jmpbuf))
++ if (setjmp(png_jmpbuf(data->png_ptr)))
+ assert(0);
+
+ png_write_end(data->png_ptr, data->info_ptr);
+Only in mathmap-1.3.5.new/rwimg: rwpng.c.orig
diff --git a/mathmap-gsl2.patch b/mathmap-gsl2.patch
new file mode 100644
index 000000000000..83bcf7561c62
--- /dev/null
+++ b/mathmap-gsl2.patch
@@ -0,0 +1,11 @@
+--- mathmap-1.3.5/opmacros.h.orig 2016-02-21 10:14:31.347636550 +0000
++++ mathmap-1.3.5/opmacros.h 2016-02-21 10:15:03.544184507 +0000
+@@ -103,7 +103,7 @@
+ #define ELL_INT_F(phi,k) gsl_sf_ellint_F((phi), (k), GSL_PREC_SINGLE)
+ #define ELL_INT_E(phi,k) gsl_sf_ellint_E((phi), (k), GSL_PREC_SINGLE)
+ #define ELL_INT_P(phi,k,n) gsl_sf_ellint_P((phi), (k), (n), GSL_PREC_SINGLE)
+-#define ELL_INT_D(phi,k,n) gsl_sf_ellint_D((phi), (k), (n), GSL_PREC_SINGLE)
++#define ELL_INT_D(phi,k,n) gsl_sf_ellint_D((phi), (k), GSL_PREC_SINGLE)
+
+ #define ELL_INT_RC(x,y) gsl_sf_ellint_RC((x), (y), GSL_PREC_SINGLE)
+ #define ELL_INT_RD(x,y,z) gsl_sf_ellint_RD((x), (y), (z), GSL_PREC_SINGLE)