summaryrefslogtreecommitdiff
path: root/gnu/packages
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages')
-rw-r--r--gnu/packages/glib.scm5
-rw-r--r--gnu/packages/patches/dbus-c++-gcc-compat.patch14
-rw-r--r--gnu/packages/patches/dbus-c++-threading-mutex.patch37
3 files changed, 55 insertions, 1 deletions
diff --git a/gnu/packages/glib.scm b/gnu/packages/glib.scm
index 438c1f9cbc..3e17330447 100644
--- a/gnu/packages/glib.scm
+++ b/gnu/packages/glib.scm
@@ -791,6 +791,8 @@ This package provides the library for GLib applications.")
"mirror://sourceforge/dbus-cplusplus/dbus-c%2B%2B/"
version "/libdbus-c%2B%2B-" version ".tar.gz"))
(file-name (string-append name "-" version ".tar.gz"))
+ (patches (search-patches "dbus-c++-gcc-compat.patch"
+ "dbus-c++-threading-mutex.patch"))
(sha256
(base32
"0qafmy2i6dzx4n1dqp6pygyy6gjljnb7hwjcj2z11c1wgclsq4dw"))))
@@ -812,7 +814,8 @@ This package provides the library for GLib applications.")
(lambda _
(substitute* "include/dbus-c++/eventloop-integration.h"
(("#include <errno.h>")
- "#include <errno.h>\n#include <unistd.h>")))))))
+ "#include <errno.h>\n#include <unistd.h>"))
+ #t)))))
(synopsis "D-Bus API for C++")
(description "This package provides D-Bus client API bindings for the C++
programming language. It also contains the utility
diff --git a/gnu/packages/patches/dbus-c++-gcc-compat.patch b/gnu/packages/patches/dbus-c++-gcc-compat.patch
new file mode 100644
index 0000000000..c4f126858c
--- /dev/null
+++ b/gnu/packages/patches/dbus-c++-gcc-compat.patch
@@ -0,0 +1,14 @@
+Fix a string comparison in C++ 11.
+
+Taken from Debian:
+https://sources.debian.org/src/dbus-c++/0.9.0-8.1/debian/patches/06_fix_gcc-7_ftbfs.patch/
+
+--- a/src/pipe.cpp
++++ b/src/pipe.cpp
+@@ -83,5 +83,5 @@ ssize_t Pipe::read(void *buffer, unsigne
+ void Pipe::signal()
+ {
+ // TODO: ignoring return of read/write generates warning; maybe relevant for eventloop work...
+- ::write(_fd_write, '\0', 1);
++ ::write(_fd_write, "\0", 1);
+ }
diff --git a/gnu/packages/patches/dbus-c++-threading-mutex.patch b/gnu/packages/patches/dbus-c++-threading-mutex.patch
new file mode 100644
index 0000000000..b201700dc0
--- /dev/null
+++ b/gnu/packages/patches/dbus-c++-threading-mutex.patch
@@ -0,0 +1,37 @@
+Description: Fix FTBFS if DBUS_HAS_RECURSIVE_MUTEX is undefined
+Author: Peter Williams <peter@newton.cx>
+Last-Update: 2018-01-26
+
+Taken from Debian:
+https://sources.debian.org/src/dbus-c++/0.9.0-8.1/debian/patches/07_fix_mutex_ftbfs.patch/
+
+--- dbus-c++-0.9.0.orig/include/dbus-c++/dispatcher.h
++++ dbus-c++-0.9.0/include/dbus-c++/dispatcher.h
+@@ -267,6 +267,19 @@ struct Threading
+ return new Mx;
+ }
+
++#ifndef DBUS_HAS_RECURSIVE_MUTEX
++ static bool mutex_free(Mutex *mx)
++ {
++ delete mx;
++ return true;
++ }
++
++ static bool mutex_lock(Mutex *mx)
++ {
++ mx->lock();
++ return true;
++ }
++#else
+ static void mutex_free(Mutex *mx)
+ {
+ delete mx;
+@@ -276,6 +289,7 @@ struct Threading
+ {
+ mx->lock();
+ }
++#endif
+
+ static void mutex_unlock(Mutex *mx)
+ {