Accepting request 744608 from home:darix:branches:graphics

- Update to version 0.4.18
- switch to meson based build
- add buildrequires for tools to build documentation:
  asciidocs, gtk-doc, ruby
- switch from lua to luajit
  - no lua support anymore on ppc64 due to missing luajit
- enable workshop modules
  - new BuildRequires pkgconfig(lensfun)
- added gegl-0.4.18_allow_unknown_arch.patch:
  the old code in the configure.ac also did fallthrough. restore
  that behavior.
- drop patches no longer needed:
  0001-Extend-configure-checks-with-checks-for-SDL2.patch
  0002-Port-sdl-display-to-SDL2.patch
  0003-Port-sdl-draw-example-to-SDL2.patch
  fix_doc_installation.patch

OBS-URL: https://build.opensuse.org/request/show/744608
OBS-URL: https://build.opensuse.org/package/show/graphics/gegl?expand=0&rev=86
This commit is contained in:
Bjørn Lie 2019-11-01 07:07:51 +00:00 committed by Git OBS Bridge
parent 8adc4b3deb
commit edf53dab84
10 changed files with 160 additions and 664 deletions

View File

@ -1,82 +0,0 @@
From 825c0934a34a6627fe85f671a3086ca42ea4f73e Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Stefan=20Br=C3=BCns?= <stefan.bruens@rwth-aachen.de>
Date: Sun, 4 Aug 2019 17:55:20 +0200
Subject: [PATCH 1/3] Extend configure checks with checks for SDL2
---
configure.ac | 34 +++++++++++++++++++++++++++++-----
1 file changed, 29 insertions(+), 5 deletions(-)
diff --git a/configure.ac b/configure.ac
index 974113404..6e42abd2a 100644
--- a/configure.ac
+++ b/configure.ac
@@ -57,6 +57,7 @@ m4_define([popplerglib_required_version], [0.71.0])
m4_define([zlib_required_version], [1.2.0])
m4_define([png_required_version], [1.6.0])
m4_define([sdl_required_version], [1.2.0])
+m4_define([sdl2_required_version], [2.0.5])
m4_define([libtiff_required_version], [4.0.0])
m4_define([webp_required_version], [0.5.0])
m4_define([poly2tri-c_required_version], [0.0.0])
@@ -948,14 +949,36 @@ AC_SUBST(OPENEXR_CFLAGS)
AC_SUBST(OPENEXR_LIBS)
-###############
-# Check for SDL
-###############
+######################
+# Check for SDL2 / SDL
+######################
+AC_ARG_WITH(sdl, [ --without-sdl2 build without SDL2 support])
AC_ARG_WITH(sdl, [ --without-sdl build without SDL support])
+have_sdl2="no"
+if test "x$with_sdl2" != "xno"; then
+ AC_PATH_PROG(SDL2_CONFIG, sdl2-config, no)
+ if test "$SDL2_CONFIG" = "no"; then
+ have_sdl2="no (SDL2 library not found)"
+ AC_MSG_RESULT([*** Check for SDL2 library failed.])
+ else
+ have_sdl2="yes"
+ SDL2_CFLAGS=`$SDL2_CONFIG --cflags`
+ SDL2_LIBS=`$SDL2_CONFIG --libs`
+ fi
+fi
+
+AM_CONDITIONAL(HAVE_SDL2, test "$have_sdl2" = "yes")
+
+AC_SUBST(SDL2_CFLAGS)
+AC_SUBST(SDL2_LIBS)
+
have_sdl="no"
-if test "x$with_sdl" != "xno"; then
+if test "$have_sdl2" = "yes"; then
+ AC_MSG_NOTICE([Skipping SDL check (SDL2 and SDL are exclusive)])
+ have_sdl="no (skipped)"
+elif test "x$with_sdl" != "xno"; then
AC_PATH_PROG(SDL_CONFIG, sdl-config, no)
if test "$SDL_CONFIG" = "no"; then
have_sdl="no (SDL library not found)"
@@ -968,7 +991,7 @@ if test "x$with_sdl" != "xno"; then
fi
AM_CONDITIONAL(HAVE_SDL, test "$have_sdl" = "yes")
-
+
AC_SUBST(SDL_CFLAGS)
AC_SUBST(SDL_LIBS)
@@ -1417,6 +1440,7 @@ Optional dependencies:
PNG: $have_libpng
OpenEXR: $have_openexr
rsvg: $have_librsvg
+ SDL2: $have_sdl2
SDL: $have_sdl
libraw: $have_libraw
Jasper: $have_jasper
--
2.22.0

View File

@ -1,263 +0,0 @@
From c07813452c658f1f441b104fbe836380a6ddd18d Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Stefan=20Br=C3=BCns?= <stefan.bruens@rwth-aachen.de>
Date: Sun, 4 Aug 2019 01:22:01 +0200
Subject: [PATCH 2/3] Port sdl-display to SDL2
The SDL2 Video API is split into several orthogonal parts, see
https://wiki.libsdl.org/MigrationGuide#Video.
Fixes half of #184
---
operations/common/display.c | 1 +
operations/external/Makefile.am | 6 +
operations/external/sdl2-display.c | 209 +++++++++++++++++++++++++++++
3 files changed, 216 insertions(+)
create mode 100644 operations/external/sdl2-display.c
diff --git a/operations/common/display.c b/operations/common/display.c
index 826ae4caa..9e06f1eb5 100644
--- a/operations/common/display.c
+++ b/operations/common/display.c
@@ -60,6 +60,7 @@ set_display_handler (GeglOperation *operation)
GeglOp *self = GEGL_OP (operation);
const gchar *known_handlers[] = {"gegl-gtk3:display",
"gegl-gtk2:display",
+ "gegl:sdl2-display",
"gegl:sdl-display"};
char *handler = NULL;
gchar **operations = NULL;
diff --git a/operations/external/Makefile.am b/operations/external/Makefile.am
index 498ffb062..719698401 100644
--- a/operations/external/Makefile.am
+++ b/operations/external/Makefile.am
@@ -81,6 +81,12 @@ exr_save_la_LIBADD = $(op_libs) $(OPENEXR_LIBS)
exr_save_la_CXXFLAGS = $(AM_CFLAGS) $(OPENEXR_CFLAGS)
endif
+if HAVE_SDL2
+ops += sdl2-display.la
+sdl2_display_la_LIBADD = $(op_libs) $(SDL2_LIBS)
+sdl2_display_la_CFLAGS = $(AM_CFLAGS) $(SDL2_CFLAGS)
+endif
+
if HAVE_SDL
ops += sdl-display.la
sdl_display_la_LIBADD = $(op_libs) $(SDL_LIBS)
diff --git a/operations/external/sdl2-display.c b/operations/external/sdl2-display.c
new file mode 100644
index 000000000..a3bab50a5
--- /dev/null
+++ b/operations/external/sdl2-display.c
@@ -0,0 +1,209 @@
+/* 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 <https://www.gnu.org/licenses/>.
+ *
+ * Copyright 2019 Stefan Brüns <stefan.bruens@rwth-aachen.de>
+ *
+ * Based on sdl-display.c:
+ * Copyright 2006 Øyvind Kolås <pippin@gimp.org>
+ */
+
+#include "config.h"
+#include <glib/gi18n-lib.h>
+
+
+#ifdef GEGL_PROPERTIES
+
+property_string (window_title, _("Window title"), "window_title")
+ description (_("Title to be given to output window"))
+#else
+
+#define GEGL_OP_SINK
+#define GEGL_OP_NAME sdl2_display
+#define GEGL_OP_C_SOURCE sdl2-display.c
+
+#include "gegl-op.h"
+#include <SDL.h>
+
+typedef struct {
+ SDL_Window *window;
+ SDL_Renderer *renderer;
+ SDL_Texture *texture;
+ SDL_Surface *screen;
+ gint width;
+ gint height;
+} SDLState;
+
+static void
+init_sdl (void)
+{
+ static int inited = 0;
+
+ if (!inited)
+ {
+ inited = 1;
+
+ if (SDL_Init (SDL_INIT_VIDEO) < 0)
+ {
+ fprintf (stderr, "Unable to init SDL: %s\n", SDL_GetError ());
+ return;
+ }
+ atexit (SDL_Quit);
+ }
+}
+
+static gboolean idle (gpointer data)
+{
+ SDL_Event event;
+ while (SDL_PollEvent (&event))
+ {
+ switch (event.type)
+ {
+ case SDL_QUIT:
+ exit (0);
+ }
+ }
+ return TRUE;
+}
+
+static guint handle = 0;
+
+static gboolean
+process (GeglOperation *operation,
+ GeglBuffer *input,
+ const GeglRectangle *result,
+ gint level)
+{
+ GeglProperties *o = GEGL_PROPERTIES (operation);
+ SDLState *state = NULL;
+
+ if(!o->user_data)
+ o->user_data = g_new0 (SDLState, 1);
+ state = o->user_data;
+
+ init_sdl ();
+
+ if (!handle)
+ handle = g_timeout_add (500, idle, NULL);
+
+ if (!state->window ||
+ state->width != result->width ||
+ state->height != result->height)
+ {
+
+ if (state->window)
+ {
+ SDL_SetWindowSize (state->window,
+ result->width, result->height);
+ }
+ else
+ {
+ if (SDL_CreateWindowAndRenderer (result->width,
+ result->height, 0,
+ &state->window, &state->renderer))
+ {
+ fprintf (stderr, "Unable to create window: %s\n",
+ SDL_GetError ());
+ return -1;
+ }
+ }
+
+ SDL_FreeSurface (state->screen);
+ state->screen = SDL_CreateRGBSurfaceWithFormat (0,
+ result->width, result->height, 32, SDL_PIXELFORMAT_RGBA32);
+ if (!state->screen)
+ {
+ fprintf (stderr, "Unable to create surface: %s\n",
+ SDL_GetError ());
+ return -1;
+ }
+
+ if (state->texture)
+ SDL_DestroyTexture (state->texture);
+ state->texture = SDL_CreateTextureFromSurface (state->renderer, state->screen);
+ if (!state->texture)
+ {
+ fprintf (stderr, "Unable to create texture: %s\n",
+ SDL_GetError ());
+ return -1;
+ }
+
+ state->width = result->width ;
+ state->height = result->height;
+ }
+
+ /*
+ * There seems to be a valid faster path to the SDL desired display format
+ * in B'G'R'A, perhaps babl should have been able to figure this out ito?
+ *
+ */
+ gegl_buffer_get (input,
+ NULL,
+ 1.0,
+ babl_format_new (babl_model ("R'G'B'A"),
+ babl_type ("u8"),
+ babl_component ("B'"),
+ babl_component ("G'"),
+ babl_component ("R'"),
+ babl_component ("A"),
+ NULL),
+ state->screen->pixels, GEGL_AUTO_ROWSTRIDE,
+ GEGL_ABYSS_NONE);
+
+ SDL_UpdateTexture (state->texture, NULL, state->screen->pixels, state->screen->pitch);
+
+ SDL_RenderClear (state->renderer);
+ SDL_RenderCopy (state->renderer, state->texture, NULL, NULL);
+ SDL_RenderPresent (state->renderer);
+ SDL_SetWindowTitle (state->window, o->window_title);
+
+ return TRUE;
+}
+
+static void
+finalize (GObject *object)
+{
+ GeglProperties *o = GEGL_PROPERTIES (object);
+
+ g_clear_pointer (&o->user_data, g_free);
+
+ G_OBJECT_CLASS (gegl_op_parent_class)->finalize (object);
+}
+
+static void
+gegl_op_class_init (GeglOpClass *klass)
+{
+ GObjectClass *object_class;
+ GeglOperationClass *operation_class;
+ GeglOperationSinkClass *sink_class;
+
+ object_class = G_OBJECT_CLASS (klass);
+ operation_class = GEGL_OPERATION_CLASS (klass);
+ sink_class = GEGL_OPERATION_SINK_CLASS (klass);
+
+ object_class->finalize = finalize;
+
+ sink_class->process = process;
+ sink_class->needs_full = TRUE;
+
+ gegl_operation_class_set_keys (operation_class,
+ "name", "gegl:sdl2-display",
+ "title", _("SDL2 Display"),
+ "categories", "display",
+ "description",
+ _("Displays the input buffer in an SDL2 window (restricted to one"
+ " display op/process, due to SDL2 implementation issues)."),
+ NULL);
+}
+#endif
--
2.22.0

View File

@ -1,226 +0,0 @@
From e93eac9f1752bee533eb4222231946bd5be56359 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Stefan=20Br=C3=BCns?= <stefan.bruens@rwth-aachen.de>
Date: Sun, 4 Aug 2019 17:52:55 +0200
Subject: [PATCH 3/3] Port sdl-draw example to SDL2
---
examples/Makefile.am | 7 ++--
examples/sdl-draw.c | 85 +++++++++++++++++++++++++-------------------
2 files changed, 51 insertions(+), 41 deletions(-)
diff --git a/examples/Makefile.am b/examples/Makefile.am
index eae72ae4f..f45b857aa 100644
--- a/examples/Makefile.am
+++ b/examples/Makefile.am
@@ -50,12 +50,11 @@ geglbuffer_add_image_SOURCES = geglbuffer-add-image.c
geglbuffer_clock_SOURCES = geglbuffer-clock.c
hello_world_SOURCES = hello-world.c
-if HAVE_SDL
+if HAVE_SDL2
noinst_PROGRAMS += sdl-draw
sdl_draw_SOURCES = sdl-draw.c
-sdl_draw_LDADD = $(SDL_LIBS)
-sdl_draw_CFLAGS = $(AM_CFLAGS) $(SDL_CFLAGS)
-
+sdl_draw_LDADD = $(SDL2_LIBS)
+sdl_draw_CFLAGS = $(AM_CFLAGS) $(SDL2_CFLAGS)
endif
if HAVE_GEXIV2
diff --git a/examples/sdl-draw.c b/examples/sdl-draw.c
index 0ff635192..8d061dfe3 100644
--- a/examples/sdl-draw.c
+++ b/examples/sdl-draw.c
@@ -5,7 +5,10 @@
typedef struct
{
- SDL_Surface *main_window;
+ SDL_Window *window;
+ SDL_Renderer *renderer;
+ SDL_Surface *surface;
+ SDL_Texture *texture;
GeglBuffer *paint_buffer;
GeglNode *graph;
GeglNode *output_node;
@@ -15,8 +18,8 @@ typedef struct
int last_y;
} MainContext;
-int run_main_loop (SDL_Surface *main_window, MainContext *context);
-void init_main_context (SDL_Surface *main_window, MainContext *context);
+int run_main_loop (MainContext *context);
+void init_main_context (MainContext *context);
void destroy_main_context (MainContext *context);
void draw_circle (GeglBuffer *buffer, int x, int y, float r);
@@ -25,7 +28,6 @@ const Babl *sdl_format = NULL;
int main(int argc, char *argv[])
{
int retval;
- SDL_Surface *main_window;
MainContext context = {0, };
if((retval = SDL_Init (SDL_INIT_VIDEO | SDL_INIT_TIMER)) > 0)
@@ -34,15 +36,31 @@ int main(int argc, char *argv[])
return retval;
}
- main_window = SDL_SetVideoMode (640, 480, 24, SDL_SWSURFACE);
-
- if (!main_window)
+ if (SDL_CreateWindowAndRenderer (640, 480, 0,
+ &context.window, &context.renderer))
{
printf("SDL failed to create a window\n");
SDL_Quit();
return 1;
}
+ context.surface = SDL_CreateRGBSurfaceWithFormat (0,
+ 640, 480, 24, SDL_PIXELFORMAT_RGB24);
+ if (!context.surface)
+ {
+ fprintf (stderr, "Unable to create surface: %s\n",
+ SDL_GetError ());
+ return 1;
+ }
+
+ context.texture = SDL_CreateTextureFromSurface (context.renderer, context.surface);
+ if (!context.surface)
+ {
+ fprintf (stderr, "Unable to create texture: %s\n",
+ SDL_GetError ());
+ return 1;
+ }
+
gegl_init (NULL, NULL);
/* We don't have a native format that matches SDL, but we can use
@@ -56,9 +74,9 @@ int main(int argc, char *argv[])
babl_component ("R'"),
NULL);
- init_main_context (main_window, &context);
+ init_main_context (&context);
- run_main_loop (main_window, &context);
+ run_main_loop (&context);
destroy_main_context (&context);
@@ -69,13 +87,12 @@ int main(int argc, char *argv[])
}
/* init_main_context:
- * @main_window: The output window.
* @context: The context.
*
* Initialize the main context object that will hold our graph.
*/
void
-init_main_context (SDL_Surface *main_window, MainContext *context)
+init_main_context (MainContext *context)
{
GeglNode *ptn = gegl_node_new ();
GeglNode *background_node, *over, *buffer_src;
@@ -111,7 +128,6 @@ init_main_context (SDL_Surface *main_window, MainContext *context)
context->output_node = over;
context->paint_buffer = paint_buffer;
- context->main_window = main_window;
}
/* destroy_main_context:
@@ -125,6 +141,9 @@ destroy_main_context (MainContext *context)
g_object_unref (context->graph);
g_object_unref (context->paint_buffer);
+ SDL_FreeSurface (context->surface);
+ SDL_DestroyTexture (context->texture);
+ SDL_DestroyRenderer (context->renderer);
context->graph = NULL;
context->output_node = NULL;
@@ -140,28 +159,29 @@ destroy_main_context (MainContext *context)
* to the sdl window.
*/
static void
-invalidate_signal (GeglNode *node, GeglRectangle *rect, SDL_Surface *main_window)
+invalidate_signal (GeglNode *node, GeglRectangle *rect, MainContext *context)
{
- GeglRectangle output_rect = {0, 0, main_window->w, main_window->h};
+ SDL_Surface *surface = context->surface;
+ GeglRectangle output_rect = {0, 0, surface->w, surface->h};
guchar *blit_origin = NULL;
- SDL_LockSurface (main_window);
-
gegl_rectangle_intersect (&output_rect, &output_rect, rect);
- blit_origin = (guchar *)main_window->pixels + (output_rect.x * 3 + output_rect.y * main_window->pitch);
+ blit_origin = (guchar *)surface->pixels + (output_rect.x * surface->format->BytesPerPixel + output_rect.y * surface->pitch);
gegl_node_blit (node,
1.0,
&output_rect,
sdl_format,
blit_origin,
- main_window->pitch,
+ surface->pitch,
0);
- SDL_UnlockSurface (main_window);
+ SDL_UpdateTexture (context->texture, NULL, surface->pixels, surface->pitch);
- SDL_UpdateRect (main_window, output_rect.x, output_rect.y, output_rect.width, output_rect.height);
+ SDL_RenderClear (context->renderer);
+ SDL_RenderCopy (context->renderer, context->texture, NULL, NULL);
+ SDL_RenderPresent (context->renderer);
}
/* draw_circle:
@@ -247,31 +267,22 @@ draw_circle (GeglBuffer *buffer, int x, int y, float r)
}
int
-run_main_loop (SDL_Surface *main_window,
- MainContext *context)
+run_main_loop (MainContext *context)
{
- gegl_buffer_set_extent (context->paint_buffer, GEGL_RECTANGLE (0, 0, main_window->w, main_window->h));
-
- SDL_LockSurface (main_window);
-
- gegl_node_blit (context->output_node,
- 1.0,
- GEGL_RECTANGLE (0, 0, main_window->w, main_window->h),
- sdl_format,
- main_window->pixels,
- main_window->pitch,
- 0);
+ SDL_Surface *surface = context->surface;
+ GeglRectangle initial_rect = {0, 0, surface->w, surface->h};
- SDL_UnlockSurface (main_window);
+ gegl_buffer_set_extent (context->paint_buffer, GEGL_RECTANGLE (0, 0, surface->w, surface->h));
- SDL_UpdateRect (main_window, 0, 0, 0, 0);
+ /* initial buffers update */
+ invalidate_signal (context->output_node, &initial_rect, context);
- /* This signal will trigger to update main_window when the output node's
+ /* This signal will trigger to update the surface when the output node's
* contents change. Updating instantly is very inefficient but is good
* enough for this example.
*/
g_signal_connect (context->output_node, "invalidated",
- G_CALLBACK (invalidate_signal), main_window);
+ G_CALLBACK (invalidate_signal), context);
while(1)
{
--
2.22.0

View File

@ -1,68 +0,0 @@
--- gegl-0.4.16/docs/Makefile.am_orig 2019-08-03 21:46:35.325046055 +0200
+++ gegl-0.4.16/docs/Makefile.am 2019-08-03 23:23:17.090023165 +0200
@@ -27,7 +27,6 @@
HTML_FILES += images/inheritance.png
endif
-if HAVE_ENSCRIPT
ENSCRIPT_FILES = \
brightness-contrast.c.html \
gegl.h.html \
@@ -50,7 +49,6 @@
HTML_FILES += $(ENSCRIPT_FILES)
GTKDOC_FILES += $(ENSCRIPT_FILES)
-endif
if HAVE_ASCIIDOC
HTML_FILES += $(ASC_DOC)
--- gegl-0.4.16/docs/Makefile.in_orig 2019-05-07 23:50:15.000000000 +0200
+++ gegl-0.4.16/docs/Makefile.in 2019-08-03 23:23:30.654194341 +0200
@@ -97,8 +97,8 @@
host_triplet = @host@
target_triplet = @target@
@HAVE_RUBY_TRUE@am__append_1 = images/inheritance.png
-@HAVE_ENSCRIPT_TRUE@am__append_2 = $(ENSCRIPT_FILES)
-@HAVE_ENSCRIPT_TRUE@am__append_3 = $(ENSCRIPT_FILES)
+am__append_2 = $(ENSCRIPT_FILES)
+am__append_3 = $(ENSCRIPT_FILES)
@HAVE_ASCIIDOC_TRUE@am__append_4 = $(ASC_DOC)
subdir = docs
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
@@ -458,21 +458,21 @@
HTML_FILES = class-hierarchy.html $(am__append_1) $(am__append_2) \
$(am__append_4)
GTKDOC_FILES = gegl.css $(am__append_3)
-@HAVE_ENSCRIPT_TRUE@ENSCRIPT_FILES = \
-@HAVE_ENSCRIPT_TRUE@ brightness-contrast.c.html \
-@HAVE_ENSCRIPT_TRUE@ gegl.h.html \
-@HAVE_ENSCRIPT_TRUE@ gegl-operation.h.html \
-@HAVE_ENSCRIPT_TRUE@ gegl-operation-filter.h.html \
-@HAVE_ENSCRIPT_TRUE@ gegl-operation-composer.h.html \
-@HAVE_ENSCRIPT_TRUE@ gegl-operation-area-filter.h.html \
-@HAVE_ENSCRIPT_TRUE@ gegl-operation-meta.h.html \
-@HAVE_ENSCRIPT_TRUE@ gegl-operation-point-composer.h.html \
-@HAVE_ENSCRIPT_TRUE@ gegl-operation-point-filter.h.html \
-@HAVE_ENSCRIPT_TRUE@ gegl-operation-point-render.h.html \
-@HAVE_ENSCRIPT_TRUE@ gegl-operation-temporal.h.html \
-@HAVE_ENSCRIPT_TRUE@ gegl-operation-sink.h.html \
-@HAVE_ENSCRIPT_TRUE@ gegl-operation-source.h.html \
-@HAVE_ENSCRIPT_TRUE@ gegl-plugin.h.html
+ENSCRIPT_FILES = \
+ brightness-contrast.c.html \
+ gegl.h.html \
+ gegl-operation.h.html \
+ gegl-operation-filter.h.html \
+ gegl-operation-composer.h.html \
+ gegl-operation-area-filter.h.html \
+ gegl-operation-meta.h.html \
+ gegl-operation-point-composer.h.html \
+ gegl-operation-point-filter.h.html \
+ gegl-operation-point-render.h.html \
+ gegl-operation-temporal.h.html \
+ gegl-operation-sink.h.html \
+ gegl-operation-source.h.html \
+ gegl-plugin.h.html
EXTRA_DIST = ChangeLog development.txt NEWS.txt devhelp.css gegl.css \
images/GEGL.png images/GEGL.svg images/gaussian-blur-graph.png \

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:0112df690301d9eb993cc48965fc71b7751c9021a4f4ee08fcae366c326b5e5a
size 7304904

3
gegl-0.4.18.tar.xz Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:c946dfb45beb7fe0fb95b89a25395b449eda2b205ba3e8a1ffb1ef992d9eca64
size 4812756

View File

@ -0,0 +1,15 @@
Index: gegl-0.4.18/meson.build
===================================================================
--- gegl-0.4.18.orig/meson.build
+++ gegl-0.4.18/meson.build
@@ -88,8 +88,8 @@ elif host_cpu == 'ppc64' or host_cpu ==
have_ppc = true
config.set10('ARCH_PPC', true)
config.set10('ARCH_PPC64', true)
-else
- error('Unknown host architecture')
+#else
+# error('Unknown host architecture')
endif
################################################################################

View File

@ -1,3 +1,107 @@
-------------------------------------------------------------------
Fri Nov 1 03:24:29 UTC 2019 - Marcus Rueckert <mrueckert@suse.de>
- Update to version 0.4.18
+ Build
- Drop autotools, GEGL is now using meson, most things are
working again now - documentation/website build is a work in
progress, many issues have been fixed, more a sure to surface
with this first meson only release following the babl one.
+ Core
- Support ui labels and descriptions for aux pads of ops.
- Guard against uint32_t overflows in memory computations,
improved memory usage stat on FreeBSD.
- Added support for hygon dhyana architecture.
- Added gegl_try_malloc and use it to allocate storage for
tiles.
- gegl-stats gained active- and assigned-threads members.
+ Buffer
- New API for aligning to regular tile grid,
gegl_rectangle_align[_to_buffer]
- added gegl_rectangle_xor
- gegl_buffer_create_sub_bufer now always returns a new object.
- Improved tile compression, more accurate accounting and
avoidiance when it is determinetal.
- gegl_buffer_save : store BablSpace
- take into consideration concurrent use of different tile
sizes in gegl_tile_alloc
- Fast path for gegl_buffer_copy is entirely in abyss.
- Improved api misuse handling in gegl_buffer_set|get
- Improved consistency of results when doing COW of abyss.
- Improved Gobject Intospection annotations.
- Use a binary tree for tile swap, improving tile removal
speed.
- Avoid gegl_buffer_set avoid set_pixel fast path if level>0
+ Operations
- Dynamic computation of per-operation thread cost, making GEGL
fully use available cores on more operations.
- new operations: bayer-matrix, linear-sinusoid,
color-assimilation-grid, normal-map.
- new operations in workshop: boxblur, alpha-inpaint
- pass-through for infinite planes for: apply-lens,
polar-coordinates, whirl-pinch, convolution-matrix, maze,
cartoon, waterpixels, tile, distance-transform, spherize,
tile-paper, dither, mantiuk06, reinhard05, fattal02,
fractal-trace, motion-blur-zoom, motion-blur-circular, wind,
little-planet, mirrors, cubism and long-shdow.
- improved property ranges/meta-data or copyright for:
motion-blur-zoom, edge-neon, cartoon, photocopy, softglow,
oilify, bump-map, remap,
- convolution: fix source-buffer offsets of filtered-out
components, avoiding excessive shifting.
- jpg-save: force grayscale if incoming buffer is grayscale
- sdl-display: port to SDL2
- gamma: handle negative input values
- apply-lens; enable auto threading
- matting-global: disable auto threading, allocate less
temporay memory.
- maze: reimplemented without recursion
- newsprint: added black pullout and per colorant pattern and
period parameters, enable threading.
- saturation: add a colormodel property which permits operating
in RGB instead of CIE Lab, enabling hue preserving saturation
changes.
- exr-load/exr-save: only use associated alpha with EXR files
- ff-load: fix audio track decoding for pure audio files
- c2g: fixed initialization data race and out of bounds array
access when threaded.
- color-enhance: fixed a buffer leak
- perlin-noise: fix initialization race
- domain-transform: faster nop for edge-preservation=1.0,
support BablSpace
- oilify: support specifying mask-radius with aux buffer
- linear-gradient, readial-gradient: use colors in correct
order.
- pixelize: avoid potential glitches
- weighted-blend: harmonize opencl implementation with C
- edge-neon: performane improvements
+ GEGL UI
- gcut video editor ui has been removed, all its functionality
is latent in the new media browser/manipulator/viewer UI.
- Permit start/end times for playlist items, enabling use of
folder as EDL.
- Add ability loop currently shown media element.
- Nearest neighbor decoding; for realtime playback of HD video
content.
- Frame-cache for rendered video frames (with associated PCM
data)
- Drag and drop from file-managers to collection view.
- switch to meson based build
- add buildrequires for tools to build documentation:
asciidocs, gtk-doc, ruby
- switch from lua to luajit
- no lua support anymore on ppc64 due to missing luajit
- enable workshop modules
- new BuildRequires pkgconfig(lensfun)
- added gegl-0.4.18_allow_unknown_arch.patch:
the old code in the configure.ac also did fallthrough. restore
that behavior.
- drop patches no longer needed:
0001-Extend-configure-checks-with-checks-for-SDL2.patch
0002-Port-sdl-display-to-SDL2.patch
0003-Port-sdl-draw-example-to-SDL2.patch
fix_doc_installation.patch
-------------------------------------------------------------------
Mon Sep 9 08:35:54 UTC 2019 - mvetter@suse.com

View File

@ -16,35 +16,37 @@
#
%ifarch ppc64
%bcond_with luajit
%else
%bcond_without luajit
%endif
Name: gegl
Version: 0.4.16
Version: 0.4.18
Release: 0
Summary: Generic Graphics Library
License: GPL-3.0-or-later AND LGPL-3.0-or-later
Group: Productivity/Graphics/Other
URL: http://gegl.org/
Source0: https://download.gimp.org/pub/gegl/0.4/%{name}-%{version}.tar.bz2
Source0: https://download.gimp.org/pub/gegl/0.4/%{name}-%{version}.tar.xz
Source99: baselibs.conf
# PATCH-FIX-OPENSUSE -- install bundled documentation even if enscript is not installed
Patch0: fix_doc_installation.patch
# PATCH-FIX-UPSTREAM -- glgo#GNOME/gegl!184 1/3
Patch1: 0001-Extend-configure-checks-with-checks-for-SDL2.patch
# PATCH-FIX-UPSTREAM -- glgo#GNOME/gegl!184 2/3
Patch2: 0002-Port-sdl-display-to-SDL2.patch
# PATCH-FIX-UPSTREAM -- glgo#GNOME/gegl!184 3/3
Patch3: 0003-Port-sdl-draw-example-to-SDL2.patch
# PATCH-FIX-OPENSUSE -- allow building on architectures without CPU optimizations
Patch: gegl-0.4.18_allow_unknown_arch.patch
BuildRequires: ImageMagick
# Needed for patches 1-3
BuildRequires: autoconf
BuildRequires: asciidoc
BuildRequires: cmake
BuildRequires: gcc-c++
BuildRequires: gobject-introspection-devel >= 1.32.0
BuildRequires: gtk-doc
BuildRequires: libSDL2-devel
BuildRequires: libjpeg-devel
BuildRequires: libspiro-devel
BuildRequires: libstdc++-devel
BuildRequires: libtool
BuildRequires: meson >= 0.50.0
BuildRequires: pkgconfig
BuildRequires: ruby
BuildRequires: suitesparse-devel
BuildRequires: pkgconfig(OpenEXR) >= 1.6.1
BuildRequires: pkgconfig(babl) >= 0.1.62
@ -59,6 +61,7 @@ BuildRequires: pkgconfig(gobject-2.0)
BuildRequires: pkgconfig(gthread-2.0)
BuildRequires: pkgconfig(json-glib-1.0)
BuildRequires: pkgconfig(lcms2) >= 2.8
BuildRequires: pkgconfig(lensfun)
BuildRequires: pkgconfig(libavcodec)
BuildRequires: pkgconfig(libavformat)
BuildRequires: pkgconfig(libpng) >= 1.6.0
@ -68,7 +71,10 @@ BuildRequires: pkgconfig(libswscale)
BuildRequires: pkgconfig(libtiff-4) >= 4.0.0
BuildRequires: pkgconfig(libv4l2) >= 1.0.1
BuildRequires: pkgconfig(libwebp) >= 0.5.0
BuildRequires: pkgconfig(lua) >= 5.1.0
%if %{with luajit}
BuildRequires: pkgconfig(luajit)
%endif
# TODO: BuildRequires: pkgconfig(mrg)
BuildRequires: pkgconfig(pango) >= 1.38.0
BuildRequires: pkgconfig(pangocairo) >= 1.38.0
BuildRequires: pkgconfig(poppler-glib) >= 0.71.0
@ -151,14 +157,19 @@ input and output.
%autosetup -p1
%build
NOCONFIGURE=1 ./autogen.sh
%configure \
--disable-static \
%{nil}
%make_build
%meson \
-Dmrg=disabled \
%if ! %{with luajit}
-Dlua=disabled \
%endif
-Dworkshop=true \
-Djasper=disabled \
-Dpygobject=disabled \
-Ddocs=true
%meson_build
%install
%make_install
%meson_install
find %{buildroot} -type f -name "*.la" -delete -print
%find_lang %{name}-0.4 %{?no_lang_C}
@ -171,7 +182,6 @@ find %{buildroot} -type f -name "*.la" -delete -print
%files
%{_bindir}/gegl
%{_bindir}/gegl-imgcmp
%{_bindir}/gcut
%files -n %{name}-0_4
%dir %{_libdir}/gegl-0.4/
@ -180,6 +190,11 @@ find %{buildroot} -type f -name "*.la" -delete -print
%{_libdir}/libgegl-sc-0.4.so
%{_libdir}/libgegl-npd-0.4.so
%{_libdir}/gegl-0.4/grey2.json
%if %{with luajit}
# lua files
%dir %{_datadir}/gegl-0.4/
%{_datadir}/gegl-0.4/lua/
%endif
%files -n libgegl-0_4-0
%license COPYING COPYING.LESSER
@ -200,7 +215,7 @@ find %{buildroot} -type f -name "*.la" -delete -print
%{_datadir}/vala/vapi/gegl-0.4.vapi
%files doc
%doc AUTHORS ChangeLog NEWS
%doc AUTHORS docs/ChangeLog docs/NEWS.txt
%doc %{_datadir}/gtk-doc/html/gegl/
%files -n %{name}-0_4-lang -f %{name}-0.4.lang

1
series Normal file
View File

@ -0,0 +1 @@
gegl-0.4.18_allow_unknown_arch.patch