commit 40ec863d55eb902212aea23bfceb575bea0b9b4a Author: CentOS Sources Date: Mon May 6 23:59:00 2019 -0400 import gegl-0.2.0-38.el8 diff --git a/.gegl.metadata b/.gegl.metadata new file mode 100644 index 0000000..4a5eab0 --- /dev/null +++ b/.gegl.metadata @@ -0,0 +1 @@ +764cc66cb3c7b261b8fc18a6268a0e264a91d573 SOURCES/gegl-0.2.0.tar.bz2 diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..3703cc3 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +SOURCES/gegl-0.2.0.tar.bz2 diff --git a/SOURCES/0001-matting-levin-Fix-the-build-with-recent-suitesparse-.patch b/SOURCES/0001-matting-levin-Fix-the-build-with-recent-suitesparse-.patch new file mode 100644 index 0000000..53d7328 --- /dev/null +++ b/SOURCES/0001-matting-levin-Fix-the-build-with-recent-suitesparse-.patch @@ -0,0 +1,68 @@ +From 012b0b019ede3cfa7df20bf60c7915a771ecff78 Mon Sep 17 00:00:00 2001 +From: Kalev Lember +Date: Thu, 4 Dec 2014 11:22:04 +0100 +Subject: [PATCH] matting-levin: Fix the build with recent suitesparse versions + +Stop using the UF_long define that was deprecated previously and has +completely disappeared in suitesparse 4.3. + +https://bugzilla.gnome.org/show_bug.cgi?id=741105 +--- + operations/external/matting-levin.c | 20 ++++++++++---------- + 1 file changed, 10 insertions(+), 10 deletions(-) + +diff --git a/operations/external/matting-levin.c b/operations/external/matting-levin.c +index 63e85d1..cf84699 100644 +--- a/operations/external/matting-levin.c ++++ b/operations/external/matting-levin.c +@@ -850,8 +850,8 @@ matting_sparse_new (guint cols, guint rows, guint elems) + sparse_t *s = g_new (sparse_t, 1); + s->columns = cols; + s->rows = rows; +- s->col_idx = g_new (UF_long, cols + 1); +- s->row_idx = g_new (UF_long, elems); ++ s->col_idx = g_new (SuiteSparse_long, cols + 1); ++ s->row_idx = g_new (SuiteSparse_long, elems); + s->values = g_new0 (gdouble, elems); + + return s; +@@ -964,8 +964,8 @@ matting_get_laplacian (const gdouble *restrict image, + image_elems = roi->width * roi->height, + i, j, k, x, y, + status; +- UF_long *trip_col, +- *trip_row; ++ SuiteSparse_long *trip_col, ++ *trip_row; + glong trip_nz = 0, + trip_cursor = 0, + trip_masked = 0; +@@ -995,8 +995,8 @@ matting_get_laplacian (const gdouble *restrict image, + trip_nz = trip_masked * window_elems * window_elems; + trip_nz += image_elems; // Sparse diagonal and row summing at conclusion + +- trip_col = g_new (UF_long, trip_nz); +- trip_row = g_new (UF_long, trip_nz); ++ trip_col = g_new (SuiteSparse_long, trip_nz); ++ trip_row = g_new (SuiteSparse_long, trip_nz); + trip_val = g_new0 (gdouble, trip_nz); + + /* Compute the contribution of each pixel in the image to the laplacian */ +@@ -1082,10 +1082,10 @@ matting_get_laplacian (const gdouble *restrict image, + for (y = 0; y < window_elems; ++y) + for (x = 0; x < window_elems; ++x) + { +- UF_long yx = y % diameter, +- yy = y / diameter, +- xx = x % diameter, +- xy = x / diameter; ++ SuiteSparse_long yx = y % diameter, ++ yy = y / diameter, ++ xx = x % diameter, ++ xy = x / diameter; + + g_return_val_if_fail (trip_cursor < trip_nz, FALSE); + trip_col[trip_cursor] = (i - radius + yx) + (j - radius + yy) * roi->width, +-- +2.1.0 + diff --git a/SOURCES/gegl-0.2.0-CVE-2012-4433.patch b/SOURCES/gegl-0.2.0-CVE-2012-4433.patch new file mode 100644 index 0000000..965c6fc --- /dev/null +++ b/SOURCES/gegl-0.2.0-CVE-2012-4433.patch @@ -0,0 +1,159 @@ +From ffa77a246652c7e706d690682fe659f50fbe5656 Mon Sep 17 00:00:00 2001 +From: Nils Philippsen +Date: Mon, 1 Jul 2013 12:03:51 +0200 +Subject: [PATCH] patch: CVE-2012-4433 + +Squashed commit of the following: + +commit 2a9071e2dc4cfe1aaa7a726805985281936f9874 +Author: Nils Philippsen +Date: Tue Oct 16 16:57:37 2012 +0200 + + ppm-load: bring comment in line with reality + + (cherry picked from commit 6975a9cfeaf0698b42ac81b1c2f00d13c8755453) + +commit 8bb88ebf78e54837322d3be74688f98800e9f33a +Author: Nils Philippsen +Date: Tue Oct 16 16:56:40 2012 +0200 + + ppm-load: CVE-2012-4433: add plausibility checks for header fields + + Refuse values that are non-decimal, negative or overflow the target + type. + + (cherry picked from commit 4757cdf73d3675478d645a3ec8250ba02168a230) + +commit 2b099886969bf055a8635d06a4d89f20fed1ee42 +Author: Nils Philippsen +Date: Tue Oct 16 16:58:27 2012 +0200 + + ppm-load: CVE-2012-4433: don't overflow memory allocation + + Carefully selected width/height values could cause the size of a later + allocation to overflow, resulting in a buffer much too small to store + the data which would then written beyond its end. + + (cherry picked from commit 1e92e5235ded0415d555aa86066b8e4041ee5a53) +--- + operations/external/ppm-load.c | 64 +++++++++++++++++++++++++++++++++++------- + 1 file changed, 54 insertions(+), 10 deletions(-) + +diff --git a/operations/external/ppm-load.c b/operations/external/ppm-load.c +index efe6d56..e22521c 100644 +--- a/operations/external/ppm-load.c ++++ b/operations/external/ppm-load.c +@@ -36,6 +36,7 @@ gegl_chant_file_path (path, _("File"), "", _("Path of file to load.")) + #include "gegl-chant.h" + #include + #include ++#include + + typedef enum { + PIXMAP_ASCII = 51, +@@ -44,8 +45,8 @@ typedef enum { + + typedef struct { + map_type type; +- gint width; +- gint height; ++ glong width; ++ glong height; + gsize numsamples; /* width * height * channels */ + gsize bpc; /* bytes per channel */ + guchar *data; +@@ -61,7 +62,7 @@ ppm_load_read_header(FILE *fp, + gchar header[MAX_CHARS_IN_ROW]; + gint maxval; + +- /* Check the PPM file Type P2 or P5 */ ++ /* Check the PPM file Type P3 or P6 */ + fgets (header,MAX_CHARS_IN_ROW,fp); + + if (header[0] != ASCII_P || +@@ -82,12 +83,33 @@ ppm_load_read_header(FILE *fp, + } + + /* Get Width and Height */ +- img->width = strtol (header,&ptr,0); +- img->height = atoi (ptr); +- img->numsamples = img->width * img->height * CHANNEL_COUNT; ++ errno = 0; ++ img->width = strtol (header,&ptr,10); ++ if (errno) ++ { ++ g_warning ("Error reading width: %s", strerror(errno)); ++ return FALSE; ++ } ++ else if (img->width < 0) ++ { ++ g_warning ("Error: width is negative"); ++ return FALSE; ++ } ++ ++ img->height = strtol (ptr,&ptr,10); ++ if (errno) ++ { ++ g_warning ("Error reading height: %s", strerror(errno)); ++ return FALSE; ++ } ++ else if (img->width < 0) ++ { ++ g_warning ("Error: height is negative"); ++ return FALSE; ++ } + + fgets (header,MAX_CHARS_IN_ROW,fp); +- maxval = strtol (header,&ptr,0); ++ maxval = strtol (header,&ptr,10); + + if ((maxval != 255) && (maxval != 65535)) + { +@@ -109,6 +131,16 @@ ppm_load_read_header(FILE *fp, + g_warning ("%s: Programmer stupidity error", G_STRLOC); + } + ++ /* Later on, img->numsamples is multiplied with img->bpc to allocate ++ * memory. Ensure it doesn't overflow. */ ++ if (!img->width || !img->height || ++ G_MAXSIZE / img->width / img->height / CHANNEL_COUNT < img->bpc) ++ { ++ g_warning ("Illegal width/height: %ld/%ld", img->width, img->height); ++ return FALSE; ++ } ++ img->numsamples = img->width * img->height * CHANNEL_COUNT; ++ + return TRUE; + } + +@@ -229,12 +261,24 @@ process (GeglOperation *operation, + if (!ppm_load_read_header (fp, &img)) + goto out; + +- rect.height = img.height; +- rect.width = img.width; +- + /* Allocating Array Size */ ++ ++ /* Should use g_try_malloc(), but this causes crashes elsewhere because the ++ * error signalled by returning FALSE isn't properly acted upon. Therefore ++ * g_malloc() is used here which aborts if the requested memory size can't be ++ * allocated causing a controlled crash. */ + img.data = (guchar*) g_malloc (img.numsamples * img.bpc); + ++ /* No-op without g_try_malloc(), see above. */ ++ if (! img.data) ++ { ++ g_warning ("Couldn't allocate %" G_GSIZE_FORMAT " bytes, giving up.", ((gsize)img.numsamples * img.bpc)); ++ goto out; ++ } ++ ++ rect.height = img.height; ++ rect.width = img.width; ++ + switch (img.bpc) + { + case 1: +-- +1.8.3.1 + diff --git a/SOURCES/gegl-0.2.0-libopenraw.patch b/SOURCES/gegl-0.2.0-libopenraw.patch new file mode 100644 index 0000000..c5738d6 --- /dev/null +++ b/SOURCES/gegl-0.2.0-libopenraw.patch @@ -0,0 +1,71 @@ +diff -up gegl-0.2.0/configure.ac.libopenraw gegl-0.2.0/configure.ac +--- gegl-0.2.0/configure.ac.libopenraw 2016-12-03 08:11:31.968387802 +0100 ++++ gegl-0.2.0/configure.ac 2016-12-03 08:12:19.398987931 +0100 +@@ -790,7 +790,7 @@ AC_ARG_WITH(libopenraw, [ --without-lib + + have_libopenraw="no" + if test "x$with_libopenraw" != "xno"; then +- PKG_CHECK_MODULES(OPENRAW, libopenraw-1.0 >= openraw_required_version, ++ PKG_CHECK_MODULES(OPENRAW, libopenraw-0.1 >= openraw_required_version, + have_libopenraw="yes", + have_libopenraw="no (openraw library not found)") + fi +diff -up gegl-0.2.0/configure.libopenraw gegl-0.2.0/configure +--- gegl-0.2.0/configure.libopenraw 2016-12-03 08:11:33.954412931 +0100 ++++ gegl-0.2.0/configure 2016-12-03 08:12:15.506938686 +0100 +@@ -20760,12 +20760,12 @@ if test -n "$OPENRAW_CFLAGS"; then + pkg_cv_OPENRAW_CFLAGS="$OPENRAW_CFLAGS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ +- { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libopenraw-1.0 >= 0.0.5\""; } >&5 +- ($PKG_CONFIG --exists --print-errors "libopenraw-1.0 >= 0.0.5") 2>&5 ++ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libopenraw-0.1 >= 0.0.5\""; } >&5 ++ ($PKG_CONFIG --exists --print-errors "libopenraw-0.1 >= 0.0.5") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then +- pkg_cv_OPENRAW_CFLAGS=`$PKG_CONFIG --cflags "libopenraw-1.0 >= 0.0.5" 2>/dev/null` ++ pkg_cv_OPENRAW_CFLAGS=`$PKG_CONFIG --cflags "libopenraw-0.1 >= 0.0.5" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes + else + pkg_failed=yes +@@ -20777,12 +20777,12 @@ if test -n "$OPENRAW_LIBS"; then + pkg_cv_OPENRAW_LIBS="$OPENRAW_LIBS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ +- { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libopenraw-1.0 >= 0.0.5\""; } >&5 +- ($PKG_CONFIG --exists --print-errors "libopenraw-1.0 >= 0.0.5") 2>&5 ++ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libopenraw-0.1 >= 0.0.5\""; } >&5 ++ ($PKG_CONFIG --exists --print-errors "libopenraw-0.1 >= 0.0.5") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then +- pkg_cv_OPENRAW_LIBS=`$PKG_CONFIG --libs "libopenraw-1.0 >= 0.0.5" 2>/dev/null` ++ pkg_cv_OPENRAW_LIBS=`$PKG_CONFIG --libs "libopenraw-0.1 >= 0.0.5" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes + else + pkg_failed=yes +@@ -20803,9 +20803,9 @@ else + _pkg_short_errors_supported=no + fi + if test $_pkg_short_errors_supported = yes; then +- OPENRAW_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "libopenraw-1.0 >= 0.0.5" 2>&1` ++ OPENRAW_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "libopenraw-0.1 >= 0.0.5" 2>&1` + else +- OPENRAW_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "libopenraw-1.0 >= 0.0.5" 2>&1` ++ OPENRAW_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "libopenraw-0.1 >= 0.0.5" 2>&1` + fi + # Put the nasty error message in config.log where it belongs + echo "$OPENRAW_PKG_ERRORS" >&5 +diff -up gegl-0.2.0/operations/external/openraw.c.libopenraw gegl-0.2.0/operations/external/openraw.c +--- gegl-0.2.0/operations/external/openraw.c.libopenraw 2016-12-03 08:28:14.284333843 +0100 ++++ gegl-0.2.0/operations/external/openraw.c 2016-12-03 08:29:01.495751180 +0100 +@@ -116,7 +116,7 @@ load_buffer (GeglOperation *operation) + goto clean_file; + } + +- if(or_rawdata_format (rawdata) != OR_DATA_TYPE_CFA) ++ if(or_rawdata_format (rawdata) != OR_DATA_TYPE_RAW) + { + goto clean_file; + } diff --git a/SOURCES/gegl-0.2.0-linker-flags.patch b/SOURCES/gegl-0.2.0-linker-flags.patch new file mode 100644 index 0000000..0006ba2 --- /dev/null +++ b/SOURCES/gegl-0.2.0-linker-flags.patch @@ -0,0 +1,36 @@ +diff -urNp gegl-0.2.0.orig/bin/Makefile.in gegl-0.2.0/bin/Makefile.in +--- gegl-0.2.0.orig/bin/Makefile.in 2015-05-07 15:06:23.716649233 +0200 ++++ gegl-0.2.0/bin/Makefile.in 2015-05-07 15:08:38.104260506 +0200 +@@ -363,7 +363,7 @@ AM_CFLAGS = \ + + AM_LDFLAGS = \ + $(no_undefined) ../gegl/libgegl-$(GEGL_API_VERSION).la \ +- $(DEP_LIBS) $(BABL_LIBS) $(PNG_LIBS) $(LIBSPIRO) ++ $(DEP_LIBS) $(BABL_LIBS) $(PNG_LIBS) $(LIBSPIRO) -lm + + gegl_SOURCES = gegl.c gegl-options.c gegl-options.h gegl-path-smooth.c \ + gegl-path-smooth.h $(am__append_1) +diff -urNp gegl-0.2.0.orig/examples/Makefile.in gegl-0.2.0/examples/Makefile.in +--- gegl-0.2.0.orig/examples/Makefile.in 2015-05-07 15:06:23.674649046 +0200 ++++ gegl-0.2.0/examples/Makefile.in 2015-05-07 16:13:36.057203261 +0200 +@@ -376,7 +376,7 @@ AM_CPPFLAGS = \ + AM_CFLAGS = $(DEP_CFLAGS) $(GTK_CFLAGS) $(BABL_CFLAGS) $(PNG_CFLAGS) + AM_LDFLAGS = \ + $(top_builddir)/gegl/libgegl-$(GEGL_API_VERSION).la \ +- $(DEP_LIBS) $(GTK_LIBS) $(BABL_LIBS) $(PNG_LIBS) ++ $(DEP_LIBS) $(GTK_LIBS) $(BABL_LIBS) $(PNG_LIBS) -lm + + all: all-recursive + +diff -urNp gegl-0.2.0.orig/tools/Makefile.in gegl-0.2.0/tools/Makefile.in +--- gegl-0.2.0.orig/tools/Makefile.in 2015-05-07 15:06:23.716649233 +0200 ++++ gegl-0.2.0/tools/Makefile.in 2015-05-07 15:31:43.643298848 +0200 +@@ -394,7 +394,7 @@ AM_CPPFLAGS = \ + AM_CFLAGS = $(DEP_CFLAGS) $(BABL_CFLAGS) + AM_LDFLAGS = \ + $(top_builddir)/gegl/libgegl-$(GEGL_API_VERSION).la \ +- $(DEP_LIBS) $(BABL_LIBS) ++ $(DEP_LIBS) $(BABL_LIBS) -lm + + @HAVE_EXIV2_TRUE@exp_combine_SOURCES = exp_combine.cpp + @HAVE_EXIV2_TRUE@exp_combine_LDADD = $(EXIV2_LIBS) diff --git a/SOURCES/gegl-0.2.0-lua-5.2.patch b/SOURCES/gegl-0.2.0-lua-5.2.patch new file mode 100644 index 0000000..e5a60bb --- /dev/null +++ b/SOURCES/gegl-0.2.0-lua-5.2.patch @@ -0,0 +1,53 @@ +From 1e12a153d9a82a771c3bfd95c0265b810a424b3c Mon Sep 17 00:00:00 2001 +From: Nils Philippsen +Date: Mon, 1 Jul 2013 14:41:33 +0200 +Subject: [PATCH] patch: lua-5.2 + +Squashed commit of the following: + +commit 96f65d260c6e40940f2818b721c19565c1b40607 +Author: Vincent Untz +Date: Wed Jan 11 09:52:25 2012 +0100 + + Fix build with lua 5.2 by not using API deprecated in 5.1 already + + https://bugzilla.gnome.org/show_bug.cgi?id=667675 + (cherry picked from commit a14a29c39352c60f003a65b721c9af8a1d8d20df) +--- + operations/workshop/external/gluas.c | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +diff --git a/operations/workshop/external/gluas.c b/operations/workshop/external/gluas.c +index 8ba1101..63e82a2 100644 +--- a/operations/workshop/external/gluas.c ++++ b/operations/workshop/external/gluas.c +@@ -97,7 +97,7 @@ static int l_progress (lua_State * lua); + static int l_flush (lua_State * lua); + static int l_print (lua_State * lua); + +-static const luaL_reg gluas_functions[] = ++static const luaL_Reg gluas_functions[] = + { + {"set_rgba", l_set_rgba}, + {"get_rgba", l_get_rgba}, +@@ -122,7 +122,7 @@ static const luaL_reg gluas_functions[] = + }; + static void + register_functions (lua_State *L, +- const luaL_reg *l) ++ const luaL_Reg *l) + { + for (;l->name; l++) + lua_register (L, l->name, l->func); +@@ -146,7 +146,7 @@ drawable_lua_process (GeglOperation *op, + lua_State *L; + Priv p; + +- L = lua_open (); ++ L = luaL_newstate (); + luaL_openlibs (L); + + register_functions (L, gluas_functions); +-- +1.8.3.1 + diff --git a/SOURCES/gegl-0.2.0-ppc64-rand-fix.patch b/SOURCES/gegl-0.2.0-ppc64-rand-fix.patch new file mode 100644 index 0000000..91ae50e --- /dev/null +++ b/SOURCES/gegl-0.2.0-ppc64-rand-fix.patch @@ -0,0 +1,11 @@ +diff -uNrp old/operations/common/matting-global.c new/operations/common/matting-global.c +--- old/operations/common/matting-global.c 2012-04-02 23:15:26.000000000 +0200 ++++ new/operations/common/matting-global.c 2016-12-04 11:10:25.255103750 +0100 +@@ -19,6 +19,7 @@ + #include "config.h" + #include + #include ++#include + + #ifdef GEGL_CHANT_PROPERTIES + diff --git a/SOURCES/gegl-0.2.0-remove-src-over-op.patch b/SOURCES/gegl-0.2.0-remove-src-over-op.patch new file mode 100644 index 0000000..a823580 --- /dev/null +++ b/SOURCES/gegl-0.2.0-remove-src-over-op.patch @@ -0,0 +1,195 @@ +From 72168aba34445e4cd99aaed32d8e6a80e89ce729 Mon Sep 17 00:00:00 2001 +From: Nils Philippsen +Date: Mon, 1 Jul 2013 13:53:18 +0200 +Subject: [PATCH] patch: remove-src-over-op + +Squashed commit of the following: + +commit b766094d951bf1515a75408ee85d4e1af432e6bd +Author: Daniel Sabo +Date: Tue Jun 4 20:57:03 2013 -0700 + + Remove auto-generated svg:src-over + + It was already shadowed by gegl:over, which declares + svg:src-over as a compat-name. + + (cherry picked from commit c1caf2401271e8a17fd1937bf84279c250bd8e2a) + + Conflicts: + po/POTFILES.in +--- + operations/generated/src-over.c | 122 ----------------------------- + operations/generated/svg-12-porter-duff.rb | 5 +- + po/POTFILES.in | 3 +- + 3 files changed, 4 insertions(+), 126 deletions(-) + delete mode 100644 operations/generated/src-over.c + +diff --git a/operations/generated/src-over.c b/operations/generated/src-over.c +deleted file mode 100644 +index e586087..0000000 +--- a/operations/generated/src-over.c ++++ /dev/null +@@ -1,122 +0,0 @@ +- +-/* !!!! AUTOGENERATED FILE generated by svg-12-porter-duff.rb !!!!! +- * +- * This file is an image processing operation for GEGL +- * +- * GEGL is free software; you can redistribute it and/or +- * modify it under the terms of the GNU Lesser General Public +- * License as published by the Free Software Foundation; either +- * version 3 of the License, or (at your option) any later version. +- * +- * GEGL is distributed in the hope that it will be useful, +- * but WITHOUT ANY WARRANTY; without even the implied warranty of +- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +- * Lesser General Public License for more details. +- * +- * You should have received a copy of the GNU Lesser General Public +- * License along with GEGL; if not, see . +- * +- * Copyright 2006, 2007 Øyvind Kolås +- * 2007 John Marshall +- * +- * SVG rendering modes; see: +- * http://www.w3.org/TR/SVG12/rendering.html +- * http://www.w3.org/TR/2004/WD-SVG12-20041027/rendering.html#comp-op-prop +- * +- * aA = aux(src) alpha aB = in(dst) alpha aD = out alpha +- * cA = aux(src) colour cB = in(dst) colour cD = out colour +- * +- * !!!! AUTOGENERATED FILE !!!!! +- */ +-#include "config.h" +-#include +- +- +-#ifdef GEGL_CHANT_PROPERTIES +- +-/* no properties */ +- +-#else +- +-#define GEGL_CHANT_TYPE_POINT_COMPOSER +-#define GEGL_CHANT_C_FILE "src-over.c" +- +-#include "gegl-chant.h" +- +-static void prepare (GeglOperation *operation) +-{ +- const Babl *format = babl_format ("RaGaBaA float"); +- +- gegl_operation_set_format (operation, "input", format); +- gegl_operation_set_format (operation, "aux", format); +- gegl_operation_set_format (operation, "output", format); +-} +- +-static gboolean +-process (GeglOperation *op, +- void *in_buf, +- void *aux_buf, +- void *out_buf, +- glong n_pixels, +- const GeglRectangle *roi, +- gint level) +-{ +- gint i; +- gfloat * GEGL_ALIGNED in = in_buf; +- gfloat * GEGL_ALIGNED aux = aux_buf; +- gfloat * GEGL_ALIGNED out = out_buf; +- +- if (aux==NULL) +- return TRUE; +- +- for (i = 0; i < n_pixels; i++) +- { +- gint j; +- gfloat aA G_GNUC_UNUSED, aB G_GNUC_UNUSED, aD G_GNUC_UNUSED; +- +- aB = in[3]; +- aA = aux[3]; +- aD = aA + aB - aA * aB; +- +- for (j = 0; j < 3; j++) +- { +- gfloat cA G_GNUC_UNUSED, cB G_GNUC_UNUSED; +- +- cB = in[j]; +- cA = aux[j]; +- out[j] = cA + cB * (1.0f - aA); +- } +- out[3] = aD; +- in += 4; +- aux += 4; +- out += 4; +- } +- return TRUE; +-} +- +- +-static void +-gegl_chant_class_init (GeglChantClass *klass) +-{ +- GeglOperationClass *operation_class; +- GeglOperationPointComposerClass *point_composer_class; +- +- operation_class = GEGL_OPERATION_CLASS (klass); +- point_composer_class = GEGL_OPERATION_POINT_COMPOSER_CLASS (klass); +- +- point_composer_class->process = process; +- operation_class->prepare = prepare; +- +- +- operation_class->compat_name = "gegl:src-over"; +- gegl_operation_class_set_keys (operation_class, +- "name" , "svg:src-over", +- "categories", "compositors:porter-duff", +- "description", +- _("Porter Duff operation src-over (d = cA + cB * (1.0f - aA))"), +- NULL); +- +- +-} +- +-#endif +diff --git a/operations/generated/svg-12-porter-duff.rb b/operations/generated/svg-12-porter-duff.rb +index 5516802..dab5d2f 100755 +--- a/operations/generated/svg-12-porter-duff.rb ++++ b/operations/generated/svg-12-porter-duff.rb +@@ -1,4 +1,5 @@ + #!/usr/bin/env ruby ++# encoding: utf-8 + + copyright = ' + /* !!!! AUTOGENERATED FILE generated by svg-12-porter-duff.rb !!!!! +@@ -38,8 +39,8 @@ a = [ + 'aA'], + ['dst', 'cB', + 'aB'], +- ['src_over', 'cA + cB * (1.0f - aA)', +- 'aA + aB - aA * aB'], ++# ['src_over', 'cA + cB * (1.0f - aA)', ++# 'aA + aB - aA * aB'], + ['dst_over', 'cB + cA * (1.0f - aB)', + 'aA + aB - aA * aB'], + ['dst_in', 'cB * aA', # <- XXX: typo? +diff --git a/po/POTFILES.in b/po/POTFILES.in +index e309594..d36cbc2 100644 +--- a/po/POTFILES.in ++++ b/po/POTFILES.in +@@ -115,10 +115,9 @@ operations/generated/plus.c + operations/generated/screen.c + operations/generated/soft-light.c + operations/generated/src-atop.c ++operations/generated/src.c + operations/generated/src-in.c + operations/generated/src-out.c +-operations/generated/src-over.c +-operations/generated/src.c + operations/generated/subtract.c + operations/generated/svg-multiply.c + operations/generated/xor.c +-- +1.8.3.1 + diff --git a/SPECS/gegl.spec b/SPECS/gegl.spec new file mode 100644 index 0000000..c224b4c --- /dev/null +++ b/SPECS/gegl.spec @@ -0,0 +1,492 @@ +%if 0%{?rhel} +%bcond_with workshop +%else +%bcond_without workshop +%endif + +# skip all tests +%global skip_all_checks 1 +# skip tests known to be problematic in a specific version +%global skip_checks_version 0.2.0 +# for some reason or other comparing generated to reference images segfaults in +# two test cases +# Well, now it is all of them, not just two. :/ +%global skip_checks compositions/run-*.xml.sh + +Summary: A graph based image processing framework +Name: gegl +Version: 0.2.0 +Release: 38%{?dist} + +# Compute some version related macros +# Ugly hack, you need to get your quoting backslashes/percent signs straight +%global major %(ver=%version; echo ${ver%%%%.*}) +%global minor %(ver=%version; ver=${ver#%major.}; echo ${ver%%%%.*}) +%global micro %(ver=%version; ver=${ver#%major.%minor.}; echo ${ver%%%%.*}) +%global apiver %major.%minor + +# The binary is under the GPL, while the libs are under LGPL +License: LGPLv3+ and GPLv3+ +URL: http://www.gegl.org/ +Source0: http://download.gimp.org/pub/gegl/%{apiver}/%{name}-%{version}.tar.bz2 +Patch0: gegl-0.2.0-lua-5.2.patch +Patch1: gegl-0.2.0-CVE-2012-4433.patch +Patch2: gegl-0.2.0-remove-src-over-op.patch +Patch3: 0001-matting-levin-Fix-the-build-with-recent-suitesparse-.patch +Patch4: gegl-0.2.0-linker-flags.patch +Patch5: gegl-0.2.0-libopenraw.patch +Patch6: gegl-0.2.0-ppc64-rand-fix.patch +BuildRequires: asciidoc +BuildRequires: babl-devel >= 0.1.10 +BuildRequires: cairo-devel +BuildRequires: enscript +BuildRequires: exiv2-devel +BuildRequires: gdk-pixbuf2-devel >= 2.18.0 +BuildRequires: gcc +BuildRequires: gcc-c++ +BuildRequires: glib2-devel >= 2.28.0 +BuildRequires: graphviz +BuildRequires: gtk2-devel >= 2.18.0 +BuildRequires: intltool >= 0.40.1 +BuildRequires: jasper-devel >= 1.900.1 +%if %{with workshop} +BuildRequires: lensfun-devel >= 0.2.5 +%endif +BuildRequires: libjpeg-devel +BuildRequires: libopenraw-devel >= 0.0.5 +BuildRequires: libpng-devel +BuildRequires: librsvg2-devel >= 2.14.0 +BuildRequires: libspiro-devel +BuildRequires: libv4l-devel +BuildRequires: lua-devel >= 5.1.0 +BuildRequires: OpenEXR-devel +BuildRequires: pango-devel +BuildRequires: perl-devel +BuildRequires: pkgconfig +BuildRequires: rubygems +BuildRequires: SDL-devel +BuildRequires: suitesparse-devel +Requires: babl%{?_isa} >= 0.1.10 +Requires: dcraw + +%description +GEGL (Generic Graphics Library) is a graph based image processing framework. +GEGLs original design was made to scratch GIMPs itches for a new +compositing and processing core. This core is being designed to have +minimal dependencies. and a simple well defined API. + +%if %{with workshop} +%package operations-workshop +Summary: Experimental operations for GEGL +Requires: %{name}%{_isa} = %{version}-%{release} + +%description operations-workshop +This package contains experimental operations for GEGL. If used they may yield +unwanted results, or even crash. You're warned! +%endif + +%package devel +Summary: Headers for developing programs that will use %{name} +Requires: %{name}%{_isa} = %{version}-%{release} +Requires: pkgconfig +Requires: babl-devel%{_isa} +Requires: glib2-devel%{_isa} + +%description devel +This package contains the libraries and header files needed for +developing with %{name}. + +%prep +%autosetup -p1 + +%build +# use hardening compiler/linker flags because gegl is likely to deal with +# untrusted input +%global _hardened_build 1 + +# Needed by Ruby 1.9.3. +export LANG=en_US.utf8 + +%configure \ +%if %{with workshop} + --enable-workshop \ +%else + --disable-workshop \ +%endif + --with-pic \ + --with-gio \ + --with-gtk \ + --with-cairo \ + --with-pango \ + --with-pangocairo \ + --with-gdk-pixbuf \ + --with-lensfun \ + --with-libjpeg \ + --with-libpng \ + --with-librsvg \ + --with-openexr \ + --with-sdl \ + --with-libopenraw \ + --with-jasper \ + --with-graphviz \ + --with-lua \ + --without-libavformat \ + --with-libv4l \ + --with-libspiro \ + --with-exiv2 \ + --with-umfpack \ + --disable-static \ + --disable-gtk-doc \ + --disable-silent-rules + +%make_build + +%install +%make_install +pushd operations +# favor non-workshop binaries +make SUBDIRS= install INSTALL='install -p' +for d in */; do + d="${d%/}" + if [ "$d" != "workshop" ]; then + pushd "$d" + make DESTDIR=%{buildroot} install INSTALL='install -p' + popd + fi +done +popd + +rm -f %{buildroot}%{_libdir}/*.la +rm -f %{buildroot}%{_libdir}/gegl-%{apiver}/*.la + +# keep track of workshop/non-workshop operations +opsdir="$PWD/operations" + +files_ws="$PWD/operations_files_workshop" +files_non_ws="$PWD/operations_files" +non_ws_filenames_file="$PWD/non_ws_filenames" + +find "$opsdir" -path "$opsdir/workshop" -prune -o -regex '.*/\.libs/.*\.so' -printf '%f\n' > "$non_ws_filenames_file" + +echo '%%defattr(-, root, root, -)' > "$files_non_ws" +echo '%%defattr(-, root, root, -)' > "$files_ws" + +pushd %{buildroot}%{_libdir}/gegl-%{apiver} +for opfile in *.so; do + if fgrep -q -x "$opfile" "$non_ws_filenames_file"; then + echo "%{_libdir}/gegl-%{apiver}/$opfile" >> "$files_non_ws" + else + echo "%{_libdir}/gegl-%{apiver}/$opfile" >> "$files_ws" + fi +done +popd + +%find_lang %{name}-%{apiver} + +%check +%if 0%{skip_all_checks} < 1 +# skip tests known to be problematic in a specific version +%if "%version" == "%skip_checks_version" +pushd tests +for problematic in %skip_checks; do + rm -f "$problematic" + cat << EOF > "$problematic" +#!/bin/sh +echo Skipping test "$problematic" +EOF + chmod +x "$problematic" +done +popd +%endif +make check +%endif + +%ldconfig_scriptlets + +%files -f operations_files -f %{name}-%{apiver}.lang +%doc AUTHORS ChangeLog COPYING COPYING.LESSER NEWS README +%{_bindir}/gegl +%{_libdir}/*.so.* +%dir %{_libdir}/gegl-%{apiver}/ + +%if %{with workshop} +%files operations-workshop -f operations_files_workshop +%endif + +%files devel +%doc %{_datadir}/gtk-doc/ +%{_includedir}/gegl-%{apiver}/ +%{_libdir}/*.so +%{_libdir}/pkgconfig/%{name}-%{apiver}.pc + +%changelog +* Wed Feb 21 2018 Josef Ridky - 0.2.0-38 +- Remove Group tag from spec file + +* Tue Feb 20 2018 Nils Philippsen - 0.2.0-37 +- require gcc, gcc-c++ for building + +* Wed Feb 07 2018 Fedora Release Engineering - 0.2.0-36 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild + +* Sat Feb 03 2018 Igor Gnatenko - 0.2.0-35 +- Switch to %%ldconfig_scriptlets + +* Wed Aug 02 2017 Fedora Release Engineering - 0.2.0-34 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild + +* Wed Jul 26 2017 Fedora Release Engineering - 0.2.0-33 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild + +* Fri Feb 10 2017 Fedora Release Engineering - 0.2.0-32 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild + +* Sun Dec 04 2016 Josef Ridky - 0.2.0-31 +- rebuild for jasper library + +* Sat Dec 03 2016 Julian Sikorski - 0.2.0-30 +- Fixed building with libopenraw-0.1 +- Added rubygems to BuildRequires to fix build error +- Modernised the .spec file a bit +- Disabled silent build + +* Wed Apr 27 2016 Nils Philippsen - 0.2.0-29 +- require dcraw (#1279143) + +* Wed Feb 03 2016 Fedora Release Engineering - 0.2.0-28 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild + +* Tue Jan 19 2016 Nils Philippsen +- use %%global instead of %%define + +* Sun Jan 03 2016 Rex Dieter 0.2.0-27 +- rebuild (lensfun) + +* Wed Jun 24 2015 Rex Dieter - 0.2.0-26 +- rebuild (exiv2) + +* Wed Jun 17 2015 Fedora Release Engineering - 0.2.0-25 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild + +* Thu Jun 11 2015 Nils Philippsen - 0.2.0-24 +- rebuild for suitesparse-4.4.4 + +* Thu May 14 2015 Nils Philippsen - 0.2.0-23 +- rebuild for lensfun-0.3.1 + +* Thu May 07 2015 Debarshi Ray - 0.2.0-22 +- Add -lm to linker flags because of sqrt + +* Thu Dec 04 2014 Kalev Lember - 0.2.0-21 +- Fix the build with recent suitesparse versions + +* Sat Aug 16 2014 Fedora Release Engineering - 0.2.0-20 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild + +* Tue Aug 05 2014 Nils Philippsen - 0.2.0-19 +- update source URL + +* Sat Jun 07 2014 Fedora Release Engineering - 0.2.0-18 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild + +* Fri Dec 06 2013 Nils Philippsen - 0.2.0-17 +- rebuild (suitesparse) + +* Wed Dec 04 2013 Nils Philippsen - 0.2.0-16 +- remove BR: w3m, it's only needed for "make dist" + +* Tue Dec 03 2013 Rex Dieter - 0.2.0-15 +- rebuild (exiv2) + +* Wed Nov 27 2013 Rex Dieter - 0.2.0-14 +- rebuild (openexr) + +* Thu Sep 12 2013 Kalev Lember - 0.2.0-13 +- Rebuilt for ilmbase soname bump + +* Sat Aug 03 2013 Fedora Release Engineering - 0.2.0-12 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild + +* Mon Jul 01 2013 Nils Philippsen - 0.2.0-11 +- replace lua-5.2 patch by upstream commit +- fix buffer overflow in and add plausibility checks to ppm-load op + (CVE-2012-4433) +- fix multi-lib issue in generated documentation + +* Wed May 15 2013 Tom Callaway - 0.2.0-10 +- rebuild for lua 5.2 +- disable check suite (so broken) + +* Sun Mar 10 2013 Rex Dieter - 0.2.0-9 +- rebuild (OpenEXR) + +* Wed Feb 13 2013 Fedora Release Engineering - 0.2.0-8 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild + +* Fri Jan 18 2013 Adam Tkac - 0.2.0-7 +- rebuild due to "jpeg8-ABI" feature drop + +* Fri Dec 21 2012 Adam Tkac - 0.2.0-6 +- rebuild against new libjpeg + +* Fri Oct 19 2012 Nils Philippsen - 0.2.0-5 +- don't catch "make check" errors but skip known problematic tests + +* Fri Oct 19 2012 Nils Philippsen - 0.2.0-4 +- don't require lensfun-devel for building without workshop ops + +* Thu Jul 19 2012 Fedora Release Engineering - 0.2.0-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild + +* Wed May 02 2012 Rex Dieter - 0.2.0-2 +- rebuild (exiv2) + +* Tue Apr 03 2012 Nils Philippsen - 0.2.0-1 +- version 0.2.0 +- split off workshop (i.e. experimental) operations +- don't build/package workshop operations on EL + +* Mon Feb 06 2012 Vít Ondruch - 0.1.8-3 +- Rebuilt for Ruby 1.9.3. + +* Tue Jan 10 2012 Nils Philippsen - 0.1.8-2 +- rebuild for gcc 4.7 + +* Tue Dec 13 2011 Nils Philippsen - 0.1.8-1 +- version 0.1.8 +- drop all patches +- add BRs: gdk-pixbuf2-devel, lensfun-devel +- update BR version: glib2-devel +- use %%_hardened_build macro instead of supplying our own hardening flags + +* Thu Nov 17 2011 Nils Philippsen - 0.1.6-5 +- don't require gtk-doc (#707554) + +* Mon Nov 07 2011 Nils Philippsen - 0.1.6-4 +- rebuild (libpng) + +* Fri Oct 14 2011 Rex Dieter - 0.1.6-3 +- rebuild (exiv2) + +* Wed Apr 06 2011 Nils Philippsen - 0.1.6-2 +- fix crash when using hstack operation (#661533) + +* Tue Feb 22 2011 Nils Philippsen - 0.1.6-1 +- version 0.1.6 +- remove obsolete patches +- fix erroneous use of destdir +- correct source URL +- add BR: exiv2-devel, jasper-devel, suitesparse-devel +- update BR versions +- update --with-*/--without-* configure flags +- replace tabs with spaces for consistency + +* Tue Feb 08 2011 Fedora Release Engineering - 0.1.2-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild + +* Tue Oct 19 2010 Nils Philippsen - 0.1.2-4 +- don't leak "root" symbol which clashes with (equally broken) xvnkb input + method (#642992) + +* Wed Jun 23 2010 Nils Philippsen - 0.1.2-3 +- build with -fno-strict-aliasing +- use PIC/PIE because gegl is likely to deal with data coming from untrusted + sources + +* Fri Feb 26 2010 Nils Philippsen +- use tabs consistently +- let devel depend on gtk-doc + +* Fri Feb 19 2010 Nils Philippsen - 0.1.2-2 +- ignore make check failures for now + +* Wed Feb 17 2010 Nils Philippsen +- avoid buffer overflow in gegl_buffer_header_init() +- correct gegl library version, use macro for it + +* Tue Feb 16 2010 Nils Philippsen - 0.1.2-1 +- version 0.1.2 +- remove obsolete cflags, babl-instrumentation, autoreconf patches +- backported: don't leak each node set on a GeglProcessor + +* Sat Jan 23 2010 Deji Akingunola - 0.1.0-3 +- Rebuild for babl-0.1.2 +- Backport upstream patch that removed babl processing time instrumentation + +* Wed Jan 20 2010 Nils Philippsen +- use tabs consistently to appease rpmdiff + +* Tue Aug 18 2009 Nils Philippsen +- explain patches + +* Fri Jul 24 2009 Fedora Release Engineering - 0.1.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild + +* Thu Jul 02 2009 Nils Philippsen - 0.1.0-1 +- fix cflags for building + +* Thu Jul 02 2009 Nils Philippsen +- version 0.1.0 +- use "--disable-gtk-doc" to avoid rebuilding documentation (#481404) +- remove *.la files in %%{_libdir}/gegl-*/ (#509292) + +* Thu Jun 04 2009 Deji Akingunola - 0.0.22-5 +- Apply patch to build with babl-0.1.0 API changes + +* Thu Jun 04 2009 Nils Philippsen - 0.0.22-4 +- rebuild against babl-0.1.0 + +* Tue Feb 24 2009 Fedora Release Engineering - 0.0.22-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild + +* Thu Jan 29 2009 Nils Philippsen - 0.0.22-2 +- use the same timestamps for certain documentation files on all architectures + to avoid multi-lib conflicts (#481404) +- consolidate spec files between OS releases +- reenable building documentation on ppc64 +- explicitly list more build requirements and/or versions to catch eventual + problems during future builds + +* Tue Jan 13 2009 Deji Akingunola - 0.0.22-1 +- Update to version 0.0.22 + +* Tue Oct 07 2008 Deji Akingunola - 0.0.20-1 +- Update to latest release + +* Thu Jul 10 2008 Deji Akingunola - 0.0.18-1 +- Update to latest release + +* Thu Feb 28 2008 Deji Akingunola - 0.0.16-1 +- New release + +* Thu Jan 17 2008 Deji Akingunola - 0.0.15-1.svn20080117 +- Update to a svn snapshot for gnome-scan +- Apply patch to fix extensions loading on 64bit systems +- Building the docs on ppc64 segfaults, avoid it for now. + +* Sat Dec 08 2007 Deji Akingunola - 0.0.14-1 +- Update to 0.0.14 release +- License change from GPLv2+ to GPLv3+ + +* Thu Oct 25 2007 Deji Akingunola - 0.0.13-0.7.20071011svn +- Include missing requires for the devel subpackage + +* Thu Oct 25 2007 Deji Akingunola - 0.0.13-0.6.20071011svn +- BR graphiz instead of graphiz-devel +- Remove the spurious exec flag from a couple of source codes + +* Tue Oct 23 2007 Deji Akingunola - 0.0.13-0.5.20071011svn +- Fix missing directory ownership + +* Mon Oct 22 2007 Deji Akingunola - 0.0.13-0.4.20071011svn +- Update the License field + +* Fri Oct 12 2007 Deji Akingunola - 0.0.13-0.3.20071011svn +- Package the extension libraries in the main package +- Run 'make check' + +* Fri Oct 12 2007 Deji Akingunola - 0.0.13-0.2.20071011svn +- Remove the use of inexistent source + +* Thu Oct 11 2007 Deji Akingunola - 0.0.13-0.1.20071011svn +- Initial packaging for Fedora