summaryrefslogtreecommitdiffstats
path: root/graphics-libs
diff options
context:
space:
mode:
authorFlorian Franzmann2019-06-22 11:28:42 +0200
committerFlorian Franzmann2019-06-22 11:38:10 +0200
commit8012c5bb42f86ec69b667f6a97f3e964e2f311fd (patch)
tree01be41325c490d56b07e6f4ac1e8466ce3e5944b /graphics-libs
parent898863d3046f4c5799f80f3118cd174d646fc665 (diff)
graphics-libs/libmypaint: new spell, mypaint's brush library
Diffstat (limited to 'graphics-libs')
-rwxr-xr-xgraphics-libs/libmypaint/DEPENDS31
-rwxr-xr-xgraphics-libs/libmypaint/DETAILS14
-rw-r--r--graphics-libs/libmypaint/HISTORY5
-rwxr-xr-xgraphics-libs/libmypaint/PRE_BUILD7
-rw-r--r--graphics-libs/libmypaint/libmypaint-1.3.0-gegl-0.4.14.patch100
5 files changed, 157 insertions, 0 deletions
diff --git a/graphics-libs/libmypaint/DEPENDS b/graphics-libs/libmypaint/DEPENDS
new file mode 100755
index 0000000000..5a055e3380
--- /dev/null
+++ b/graphics-libs/libmypaint/DEPENDS
@@ -0,0 +1,31 @@
+depends gcc &&
+
+depends autoconf &&
+depends automake &&
+depends intltool &&
+depends gettext &&
+
+depends json-c &&
+
+optional_depends gobject-introspection \
+ "--enable-introspection" \
+ "--disable-introspection" \
+ "for introspection support" &&
+if is_depends_enabled $SPELL gobject-introspection; then
+ depends glib2
+else
+
+ optional_depends glib2 \
+ "--enable-glib" \
+ "--disable-glib" \
+ "use glib"
+fi &&
+
+optional_depends gegl \
+ "--enable-gegl" \
+ "--disable-gegl" \
+ "enable gegl-based code" &&
+
+if is_depends_enabled $SPELL gegl; then
+ depends babl
+fi
diff --git a/graphics-libs/libmypaint/DETAILS b/graphics-libs/libmypaint/DETAILS
new file mode 100755
index 0000000000..bfd995120d
--- /dev/null
+++ b/graphics-libs/libmypaint/DETAILS
@@ -0,0 +1,14 @@
+ SPELL=libmypaint
+ VERSION=1.3.0
+ SOURCE="$SPELL-$VERSION.tar.xz"
+ SOURCE_URL[0]=https://github.com/mypaint/libmypaint/releases/download/v$VERSION/$SOURCE
+ SOURCE_HASH=sha512:553eeb3439ffd0c013e33254a16334242583b8bab76d1a3e937f3ed1d7e05a832c6eb26acd7220dce20c6a7d997c32afe828202ce48e25a5fe57b67efd853fcf
+SOURCE_DIRECTORY="${BUILD_DIRECTORY}/$SPELL-$VERSION"
+ WEB_SITE="https://github.com/mypaint/libmypaint"
+ LICENSE[0]=ISC
+ ENTERED=20190622
+ SHORT="the brush library used by MyPaint"
+cat << EOF
+This is the brush library used by MyPaint. A number of other painting programs
+use it too.
+EOF
diff --git a/graphics-libs/libmypaint/HISTORY b/graphics-libs/libmypaint/HISTORY
new file mode 100644
index 0000000000..cfcb2aee5c
--- /dev/null
+++ b/graphics-libs/libmypaint/HISTORY
@@ -0,0 +1,5 @@
+2019-06-22 Florian Franzmann <siflfran@hawo.stw.uni-erlangen.de>
+ * DEPENDS, DETAILS: spell created
+ * PRE_BUILD, libmypaint-1.3.0-gegl-0.4.14.patch: apply patch from
+ gentoo to fix compilation with gegl 0.4
+
diff --git a/graphics-libs/libmypaint/PRE_BUILD b/graphics-libs/libmypaint/PRE_BUILD
new file mode 100755
index 0000000000..878506d3dc
--- /dev/null
+++ b/graphics-libs/libmypaint/PRE_BUILD
@@ -0,0 +1,7 @@
+default_pre_build &&
+cd "$SOURCE_DIRECTORY" &&
+
+patch -p1 < "$SPELL_DIRECTORY/libmypaint-1.3.0-gegl-0.4.14.patch" &&
+
+autoreconf -fi
+
diff --git a/graphics-libs/libmypaint/libmypaint-1.3.0-gegl-0.4.14.patch b/graphics-libs/libmypaint/libmypaint-1.3.0-gegl-0.4.14.patch
new file mode 100644
index 0000000000..d59cacb3a5
--- /dev/null
+++ b/graphics-libs/libmypaint/libmypaint-1.3.0-gegl-0.4.14.patch
@@ -0,0 +1,100 @@
+From 068e5f7ecacf152a9872441fb2f67b8578448a5b Mon Sep 17 00:00:00 2001
+From: Sebastian Pipping <sebastian@pipping.org>
+Date: Sun, 28 Apr 2019 20:24:05 +0200
+Subject: [PATCH] Depend on Gegl >=0.4.14 rather than 0.3.x
+
+Inspired by
+https://src.fedoraproject.org/rpms/libmypaint/raw/master/f/libmypaint-1.3.0-gegl04.patch
+
+Gegl commit introducing breaking change to GeglBufferIterator:
+https://gitlab.gnome.org/GNOME/gegl/commit/9dcd2cde63f95a080bf16a58c10e9ffbdd99aace
+---
+ configure.ac | 4 ++--
+ gegl/Makefile.am | 4 ++--
+ gegl/libmypaint-gegl.pc.in | 2 +-
+ gegl/mypaint-gegl-surface.c | 5 +++--
+ 4 files changed, 8 insertions(+), 7 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index 7a5b231..95473d0 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -22,7 +22,7 @@ m4_define([libmypaint_version_full],
+ [libmypaint_api_major().libmypaint_api_minor().libmypaint_api_micro()m4_bpatsubst(libmypaint_api_prerelease(), [^\(.\)], [-\1])])
+
+ # Dependencies.
+-m4_define([gegl_required_version], [0.3])
++m4_define([gegl_required_version], [0.4.14])
+ m4_define([introspection_required_version], [1.32.0])
+
+ AC_INIT([libmypaint],
+@@ -312,7 +312,7 @@ AC_ARG_ENABLE(gegl,
+ )
+
+ if eval "test x$enable_gegl = xyes"; then
+- PKG_CHECK_MODULES(GEGL, gegl-0.3 >= gegl_required_version)
++ PKG_CHECK_MODULES(GEGL, gegl-0.4 >= gegl_required_version)
+ fi
+ AM_CONDITIONAL(ENABLE_GEGL, test "x$enable_gegl" = "xyes")
+
+diff --git a/gegl/Makefile.am b/gegl/Makefile.am
+index b45707d..5ef22c1 100644
+--- a/gegl/Makefile.am
++++ b/gegl/Makefile.am
+@@ -11,7 +11,7 @@ AM_CPPFLAGS = \
+ INTROSPECTION_GIRS =
+ INTROSPECTION_SCANNER_ARGS = \
+ --warn-all \
+- --pkg="gegl-0.3" \
++ --pkg="gegl-0.4" \
+ --pkg="glib-2.0" \
+ --namespace="MyPaintGegl" \
+ --nsversion="$(LIBMYPAINT_MAJOR_VERSION).$(LIBMYPAINT_MINOR_VERSION)" \
+@@ -38,7 +38,7 @@ introspection_sources = \
+ mypaint-gegl-surface.c
+
+ MyPaintGegl-@LIBMYPAINT_MAJOR_VERSION@.@LIBMYPAINT_MINOR_VERSION@.gir: libmypaint-gegl.la Makefile
+-MyPaintGegl_@LIBMYPAINT_MAJOR_VERSION@_@LIBMYPAINT_MINOR_VERSION@_gir_INCLUDES = GObject-2.0 MyPaint-$(LIBMYPAINT_MAJOR_VERSION).$(LIBMYPAINT_MINOR_VERSION) Gegl-0.3
++MyPaintGegl_@LIBMYPAINT_MAJOR_VERSION@_@LIBMYPAINT_MINOR_VERSION@_gir_INCLUDES = GObject-2.0 MyPaint-$(LIBMYPAINT_MAJOR_VERSION).$(LIBMYPAINT_MINOR_VERSION) Gegl-0.4
+ MyPaintGegl_@LIBMYPAINT_MAJOR_VERSION@_@LIBMYPAINT_MINOR_VERSION@_gir_CFLAGS = $(AM_CFLAGS) $(AM_CPPFLAGS) -I. -I..
+ MyPaintGegl_@LIBMYPAINT_MAJOR_VERSION@_@LIBMYPAINT_MINOR_VERSION@_gir_LIBS = libmypaint-gegl.la ../libmypaint.la
+ MyPaintGegl_@LIBMYPAINT_MAJOR_VERSION@_@LIBMYPAINT_MINOR_VERSION@_gir_FILES = $(introspection_sources)
+diff --git a/gegl/libmypaint-gegl.pc.in b/gegl/libmypaint-gegl.pc.in
+index 75aa729..9184980 100644
+--- a/gegl/libmypaint-gegl.pc.in
++++ b/gegl/libmypaint-gegl.pc.in
+@@ -6,6 +6,6 @@ includedir=@includedir@
+ Name: libmypaint
+ Description: MyPaint brush engine library, with GEGL integration.
+ Version: @LIBMYPAINT_VERSION@
+-Requires: gegl-0.3 libmypaint
++Requires: gegl-0.4 libmypaint
+ Cflags: -I${includedir}/libmypaint-gegl
+ Libs: -L${libdir} -lmypaint-gegl
+diff --git a/gegl/mypaint-gegl-surface.c b/gegl/mypaint-gegl-surface.c
+index 5c86d3c..e51bb5f 100644
+--- a/gegl/mypaint-gegl-surface.c
++++ b/gegl/mypaint-gegl-surface.c
+@@ -77,8 +77,9 @@ tile_request_start(MyPaintTiledSurface *tiled_surface, MyPaintTileRequest *reque
+ }
+
+ if (buffer_is_native(self)) {
++ const gint max_slots = 6; /* i.e. <0.4.14 internal GEGL_BUFFER_MAX_ITERATORS */
+ GeglBufferIterator *iterator = gegl_buffer_iterator_new(self->buffer, &tile_bbox, 0, self->format,
+- read_write_flags, GEGL_ABYSS_NONE);
++ read_write_flags, GEGL_ABYSS_NONE, max_slots);
+
+ // Read out
+ gboolean completed = gegl_buffer_iterator_next(iterator);
+@@ -88,7 +89,7 @@ tile_request_start(MyPaintTiledSurface *tiled_surface, MyPaintTileRequest *reque
+ g_critical("Unable to get tile aligned access to GeglBuffer");
+ request->buffer = NULL;
+ } else {
+- request->buffer = (uint16_t *)(iterator->data[0]);
++ request->buffer = (uint16_t *)(iterator->items[0].data);
+ }
+
+ // So we can finish the iterator in tile_request_end()
+--
+2.21.0
+