gnu: dbus-c++: Fix build with GCC 7.
* gnu/packages/patches/dbus-c++-gcc-compat.patch, gnu/packages/patches/dbus-c++-threading-mutex.patch: New files. * gnu/local.mk (dist_patch_DATA): Adjust accordingly. * gnu/packages/glib.scm (dbus-c++)[source](patches): New field. [arguments]: End phases on #t.
This commit is contained in:
parent
51d4c79dc2
commit
497b2d3942
|
@ -750,6 +750,8 @@ dist_patch_DATA = \
|
||||||
%D%/packages/patches/cvs-CVE-2017-12836.patch \
|
%D%/packages/patches/cvs-CVE-2017-12836.patch \
|
||||||
%D%/packages/patches/darkice-workaround-fpermissive-error.patch \
|
%D%/packages/patches/darkice-workaround-fpermissive-error.patch \
|
||||||
%D%/packages/patches/dbus-helper-search-path.patch \
|
%D%/packages/patches/dbus-helper-search-path.patch \
|
||||||
|
%D%/packages/patches/dbus-c++-gcc-compat.patch \
|
||||||
|
%D%/packages/patches/dbus-c++-threading-mutex.patch \
|
||||||
%D%/packages/patches/dealii-mpi-deprecations.patch \
|
%D%/packages/patches/dealii-mpi-deprecations.patch \
|
||||||
%D%/packages/patches/deja-dup-use-ref-keyword-for-iter.patch \
|
%D%/packages/patches/deja-dup-use-ref-keyword-for-iter.patch \
|
||||||
%D%/packages/patches/dfu-programmer-fix-libusb.patch \
|
%D%/packages/patches/dfu-programmer-fix-libusb.patch \
|
||||||
|
|
|
@ -791,6 +791,8 @@ This package provides the library for GLib applications.")
|
||||||
"mirror://sourceforge/dbus-cplusplus/dbus-c%2B%2B/"
|
"mirror://sourceforge/dbus-cplusplus/dbus-c%2B%2B/"
|
||||||
version "/libdbus-c%2B%2B-" version ".tar.gz"))
|
version "/libdbus-c%2B%2B-" version ".tar.gz"))
|
||||||
(file-name (string-append name "-" 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
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"0qafmy2i6dzx4n1dqp6pygyy6gjljnb7hwjcj2z11c1wgclsq4dw"))))
|
"0qafmy2i6dzx4n1dqp6pygyy6gjljnb7hwjcj2z11c1wgclsq4dw"))))
|
||||||
|
@ -812,7 +814,8 @@ This package provides the library for GLib applications.")
|
||||||
(lambda _
|
(lambda _
|
||||||
(substitute* "include/dbus-c++/eventloop-integration.h"
|
(substitute* "include/dbus-c++/eventloop-integration.h"
|
||||||
(("#include <errno.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++")
|
(synopsis "D-Bus API for C++")
|
||||||
(description "This package provides D-Bus client API bindings for the C++
|
(description "This package provides D-Bus client API bindings for the C++
|
||||||
programming language. It also contains the utility
|
programming language. It also contains the utility
|
||||||
|
|
|
@ -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);
|
||||||
|
}
|
|
@ -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)
|
||||||
|
{
|
Loading…
Reference in New Issue