summarylogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.SRCINFO27
-rw-r--r--PKGBUILD45
-rw-r--r--easystroke-0.6.0-gcc7-build-fix.patch40
-rw-r--r--replace-sigc-group-with-lambda.patch40
4 files changed, 152 insertions, 0 deletions
diff --git a/.SRCINFO b/.SRCINFO
new file mode 100644
index 000000000000..b9bbc8b91eed
--- /dev/null
+++ b/.SRCINFO
@@ -0,0 +1,27 @@
+pkgbase = easystroke
+ pkgdesc = Use mouse gestures to initiate commands and hotkeys.
+ pkgver = 0.6.0
+ pkgrel = 22
+ url = http://easystroke.sourceforge.net/
+ arch = x86_64
+ license = custom:ISC
+ makedepends = boost
+ makedepends = xorgproto
+ makedepends = intltool
+ makedepends = gettext
+ makedepends = xorg-server-devel
+ makedepends = help2man
+ depends = gtkmm3
+ depends = boost-libs
+ depends = libxtst
+ depends = dbus-glib
+ depends = xorg-server
+ source = https://downloads.sourceforge.net/easystroke/easystroke-0.6.0.tar.gz
+ source = easystroke-0.6.0-gcc7-build-fix.patch
+ source = replace-sigc-group-with-lambda.patch
+ sha512sums = a74cbdfd2b56e6b20d895297e80fb63f3d8ac938235ecf7067f984d087004af22a5ea0116ae20b948e238b02a06b14044a7025d65840f0c8d00542332387c921
+ sha512sums = ab243cd570a4878767bfc64f39dbf6cc938bf050b50e4ac3bfe5036f5fbdd21eeeedc5cf89784a4f73f78233132b981d00087482835430d240f0b55e16d1acb4
+ sha512sums = 30b3a50b3434b22d3aed75f8c023eafb78f6980a23c506e9ed70e8787fd2786a1a882468b5c8334e3161c241c1878f8b4f9ba0178e07aad0388d44522e70c245
+
+pkgname = easystroke
+
diff --git a/PKGBUILD b/PKGBUILD
new file mode 100644
index 000000000000..ce83ac719bb2
--- /dev/null
+++ b/PKGBUILD
@@ -0,0 +1,45 @@
+# Maintainer: Lukas Fleischer <lfleischer@archlinux.org>
+# Contributor: Kevin Sullivan <ksullivan@archlinux.us>
+
+pkgname=easystroke
+pkgver=0.6.0
+pkgrel=22
+pkgdesc='Use mouse gestures to initiate commands and hotkeys.'
+arch=('x86_64')
+url='http://easystroke.sourceforge.net/'
+license=('custom:ISC')
+depends=('gtkmm3' 'boost-libs' 'libxtst' 'dbus-glib' 'xorg-server')
+makedepends=('boost' 'xorgproto' 'intltool' 'gettext' 'xorg-server-devel' 'help2man')
+source=("https://downloads.sourceforge.net/easystroke/${pkgname}-${pkgver}.tar.gz"
+ 'easystroke-0.6.0-gcc7-build-fix.patch'
+ 'replace-sigc-group-with-lambda.patch')
+sha512sums=('a74cbdfd2b56e6b20d895297e80fb63f3d8ac938235ecf7067f984d087004af22a5ea0116ae20b948e238b02a06b14044a7025d65840f0c8d00542332387c921'
+ 'ab243cd570a4878767bfc64f39dbf6cc938bf050b50e4ac3bfe5036f5fbdd21eeeedc5cf89784a4f73f78233132b981d00087482835430d240f0b55e16d1acb4'
+ '30b3a50b3434b22d3aed75f8c023eafb78f6980a23c506e9ed70e8787fd2786a1a882468b5c8334e3161c241c1878f8b4f9ba0178e07aad0388d44522e70c245')
+
+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
+}
+
+build() {
+ cd "${pkgname}-${pkgver}"
+
+ make
+ make man
+}
+
+package() {
+ cd "${pkgname}-${pkgver}"
+
+ make PREFIX=/usr DESTDIR="${pkgdir}" install
+
+ install -Dm0644 "${pkgname}.1" "${pkgdir}/usr/share/man/man1/${pkgname}.1"
+ install -Dm0644 LICENSE "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
+}
diff --git a/easystroke-0.6.0-gcc7-build-fix.patch b/easystroke-0.6.0-gcc7-build-fix.patch
new file mode 100644
index 000000000000..b66bcb4edf0a
--- /dev/null
+++ b/easystroke-0.6.0-gcc7-build-fix.patch
@@ -0,0 +1,40 @@
+From 9e2c32390c5c253aade3bb703e51841748d2c37e Mon Sep 17 00:00:00 2001
+From: Jonathan Wakely <jwakely@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;
diff --git a/replace-sigc-group-with-lambda.patch b/replace-sigc-group-with-lambda.patch
new file mode 100644
index 000000000000..837af387b1d4
--- /dev/null
+++ b/replace-sigc-group-with-lambda.patch
@@ -0,0 +1,40 @@
+diff -uprb easystroke-0.6.0.orig/actions.cc easystroke-0.6.0/actions.cc
+--- easystroke-0.6.0.orig/actions.cc 2013-03-27 17:52:38.000000000 +0200
++++ easystroke-0.6.0/actions.cc 2015-12-07 22:07:17.720041171 +0200
+@@ -51,10 +51,11 @@ void TreeViewMulti::on_drag_begin(const
+ context->set_icon(pb, pb->get_width(), pb->get_height());
+ }
+
+-bool negate(bool b) { return !b; }
+-
+ TreeViewMulti::TreeViewMulti() : Gtk::TreeView(), pending(false) {
+- get_selection()->set_select_function(sigc::group(&negate, sigc::ref(pending)));
++ get_selection()->set_select_function(
++ [this](Glib::RefPtr<Gtk::TreeModel> const&, Gtk::TreeModel::Path const&, bool) {
++ return !pending;
++ });
+ }
+
+ enum Type { COMMAND, KEY, TEXT, SCROLL, IGNORE, BUTTON, MISC };
+diff -uprb easystroke-0.6.0.orig/Makefile easystroke-0.6.0/Makefile
+--- easystroke-0.6.0.orig/Makefile 2013-03-27 17:52:38.000000000 +0200
++++ easystroke-0.6.0/Makefile 2015-12-07 21:54:47.926776791 +0200
+@@ -21,8 +21,7 @@ LOCALEDIR= $(PREFIX)/share/locale
+ DFLAGS =
+ OFLAGS = -O2
+ AOFLAGS = -O3
+-STROKEFLAGS = -Wall -std=c99 $(DFLAGS)
+-CXXFLAGS = -Wall $(DFLAGS) -DLOCALEDIR=\"$(LOCALEDIR)\" `pkg-config gtkmm-3.0 dbus-glib-1 --cflags`
++CXXFLAGS = -Wall $(DFLAGS) -std=c++11 -DLOCALEDIR=\"$(LOCALEDIR)\" `pkg-config gtkmm-3.0 dbus-glib-1 --cflags`
+ CFLAGS = -Wall $(DFLAGS) -DLOCALEDIR=\"$(LOCALEDIR)\" `pkg-config gtk+-3.0 --cflags` -DGETTEXT_PACKAGE='"easystroke"'
+ LDFLAGS = $(DFLAGS)
+
+@@ -63,7 +62,7 @@ $(BINARY): $(OFILES)
+ $(CXX) $(LDFLAGS) -o $@ $(OFILES) $(LIBS)
+
+ stroke.o: stroke.c
+- $(CC) $(STROKEFLAGS) $(AOFLAGS) -MT $@ -MMD -MP -MF $*.Po -o $@ -c $<
++ $(CC) $(CFLAGS) $(AOFLAGS) -MT $@ -MMD -MP -MF $*.Po -o $@ -c $<
+
+ %.o: %.c
+ $(CC) $(CFLAGS) $(OFLAGS) -MT $@ -MMD -MP -MF $*.Po -o $@ -c $<