summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--gnu/local.mk1
-rw-r--r--gnu/packages/graphics.scm1
-rw-r--r--gnu/packages/patches/autotrace-glib-compat.patch50
3 files changed, 52 insertions, 0 deletions
diff --git a/gnu/local.mk b/gnu/local.mk
index 0551cb5dd7..9dac7ea152 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -831,6 +831,7 @@ dist_patch_DATA =						\
   %D%/packages/patches/audiofile-hurd.patch 			\
   %D%/packages/patches/audiofile-function-signature.patch	\
   %D%/packages/patches/automake-skip-amhello-tests.patch	\
+  %D%/packages/patches/autotrace-glib-compat.patch		\
   %D%/packages/patches/avahi-localstatedir.patch		\
   %D%/packages/patches/avidemux-install-to-lib.patch		\
   %D%/packages/patches/awesome-reproducible-png.patch		\
diff --git a/gnu/packages/graphics.scm b/gnu/packages/graphics.scm
index 2c25c5405b..1006bb3cb4 100644
--- a/gnu/packages/graphics.scm
+++ b/gnu/packages/graphics.scm
@@ -394,6 +394,7 @@ objects!")
                       (url "https://github.com/autotrace/autotrace")
                       (commit commit)))
                 (file-name (git-file-name name version))
+                (patches (search-patches "autotrace-glib-compat.patch"))
                 (sha256
                  (base32
                   "0mk4yavy42dj0pszr1ggnggpvmzs4ds46caa9wr55cqsypn7bq6s"))))
diff --git a/gnu/packages/patches/autotrace-glib-compat.patch b/gnu/packages/patches/autotrace-glib-compat.patch
new file mode 100644
index 0000000000..e63dcedf83
--- /dev/null
+++ b/gnu/packages/patches/autotrace-glib-compat.patch
@@ -0,0 +1,50 @@
+Fix build with GLib 2.68 and later.
+
+Taken from upstream pull request:
+https://github.com/autotrace/autotrace/pull/41
+
+diff --git a/src/autotrace.h b/src/autotrace.h
+--- a/src/autotrace.h
++++ b/src/autotrace.h
+@@ -23,6 +23,9 @@
+ 
+ #include <stdio.h>
+ 
++#include "types.h"
++#include "color.h"
++
+ #ifdef __cplusplus
+ extern "C" {
+ #endif                          /* __cplusplus */
+@@ -35,9 +38,6 @@ extern "C" {
+  * Typedefs
+  * ===================================================================== */
+ 
+-#include "types.h"
+-#include "color.h"
+-
+ /* Third degree is the highest we deal with.  */
+   enum _at_polynomial_degree {
+     AT_LINEARTYPE = 1,
+diff --git a/src/color.h b/src/color.h
+--- a/src/color.h
++++ b/src/color.h
+@@ -24,6 +24,10 @@
+ #include <glib.h>
+ #include <glib-object.h>
+ 
++#ifdef __cplusplus
++extern "C" {
++#endif                          /* __cplusplus */
++
+ typedef struct _at_color at_color;
+ struct _at_color {
+   guint8 r;
+@@ -43,4 +47,7 @@ void at_color_free(at_color * color);
+ GType at_color_get_type(void);
+ #define AT_TYPE_COLOR (at_color_get_type ())
+ 
++#ifdef __cplusplus
++}
++#endif                          /* __cplusplus */
+ #endif /* not AT_COLOR_H */