Date: Friday, May 19, 2017 @ 17:51:24 Author: lfleischer Revision: 228594
upgpkg: easystroke 0.6.0-15 Rebuild against boost 1.64.0. Added: easystroke/trunk/easystroke-0.6.0-gcc7-build-fix.patch Modified: easystroke/trunk/PKGBUILD ---------------------------------------+ PKGBUILD | 8 +++++- easystroke-0.6.0-gcc7-build-fix.patch | 40 ++++++++++++++++++++++++++++++++ 2 files changed, 47 insertions(+), 1 deletion(-) Modified: PKGBUILD =================================================================== --- PKGBUILD 2017-05-19 17:50:35 UTC (rev 228593) +++ PKGBUILD 2017-05-19 17:51:24 UTC (rev 228594) @@ -3,7 +3,7 @@ pkgname=easystroke pkgver=0.6.0 -pkgrel=14 +pkgrel=15 pkgdesc='Use mouse gestures to initiate commands and hotkeys.' arch=('i686' 'x86_64') url='http://easystroke.sourceforge.net/' @@ -11,12 +11,18 @@ depends=('gtkmm3' 'boost-libs' 'libxtst' 'dbus-glib' 'xorg-server') makedepends=('boost' 'inputproto' 'intltool' 'gettext' 'xorg-server-devel' 'help2man') source=("http://downloads.sourceforge.net/easystroke/${pkgname}-${pkgver}.tar.gz" + 'easystroke-0.6.0-gcc7-build-fix.patch' 'replace-sigc-group-with-lambda.patch') md5sums=('3b4f25d02a6b5ac57a8b7a06545869db' + '4b0cb9354798cfab1ce21d04bb1ff002' '4a27e1336df773e2f1cd67788477cc3b') prepare() { cd "${pkgname}-${pkgver}" + + # Fix compilation with GCC 7. + patch -Np1 -i ../easystroke-0.6.0-gcc7-build-fix.patch + # fix build with libsigc++ 2.6; also build in C++11 mode # (not sure if the lambda is correct, but seems to work) patch -Np1 -i ../replace-sigc-group-with-lambda.patch Added: easystroke-0.6.0-gcc7-build-fix.patch =================================================================== --- easystroke-0.6.0-gcc7-build-fix.patch (rev 0) +++ easystroke-0.6.0-gcc7-build-fix.patch 2017-05-19 17:51:24 UTC (rev 228594) @@ -0,0 +1,40 @@ +From 9e2c32390c5c253aade3bb703e51841748d2c37e Mon Sep 17 00:00:00 2001 +From: Jonathan Wakely <jwak...@redhat.com> +Date: Sat, 28 Jan 2017 01:26:00 +0000 +Subject: [PATCH] Remove abs(float) function that clashes with std::abs(float) + +Depending on which C++ standard library headers have been included there +might an abs(float) function already declared in the global namespace, +so the definition in this file conflicts with it. This cause a build +failure with GCC 7, which conforms more closely to the C++ standard with +respect to overloads of abs. + +Including <cmath> and adding a using-declaration for std::abs ensures +that the standard std::abs(float) function is available. This solution +should be portable to all compilers. +--- + handler.cc | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/handler.cc b/handler.cc +index 8830ea2..685b1ff 100644 +--- a/handler.cc ++++ b/handler.cc +@@ -23,6 +23,8 @@ + #include <X11/extensions/XTest.h> + #include <X11/XKBlib.h> + #include <X11/Xproto.h> ++#include <cmath> // std::abs(float) ++using std::abs; + + XState *xstate = nullptr; + +@@ -533,8 +535,6 @@ class WaitForPongHandler : public Handler, protected Timeout { + virtual Grabber::State grab_mode() { return parent->grab_mode(); } + }; + +-static inline float abs(float x) { return x > 0 ? x : -x; } +- + class AbstractScrollHandler : public Handler { + bool have_x, have_y; + float last_x, last_y;