diff options
-rw-r--r-- | .SRCINFO | 27 | ||||
-rw-r--r-- | PKGBUILD | 45 | ||||
-rw-r--r-- | easystroke-0.6.0-gcc7-build-fix.patch | 40 | ||||
-rw-r--r-- | replace-sigc-group-with-lambda.patch | 40 |
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 $< |