git: 9a20d67586e0 - main - sysutils/touchegg: New port: Multi-touch gesture recognizer

From: Yuri Victorovich <yuri_at_FreeBSD.org>
Date: Sun, 15 Jan 2023 09:53:25 UTC
The branch main has been updated by yuri:

URL: https://cgit.FreeBSD.org/ports/commit/?id=9a20d67586e08f46cbf5c82f2110fc879c853ba5

commit 9a20d67586e08f46cbf5c82f2110fc879c853ba5
Author:     Yuri Victorovich <yuri@FreeBSD.org>
AuthorDate: 2023-01-15 09:52:47 +0000
Commit:     Yuri Victorovich <yuri@FreeBSD.org>
CommitDate: 2023-01-15 09:53:20 +0000

    sysutils/touchegg: New port: Multi-touch gesture recognizer
---
 sysutils/Makefile                               |  1 +
 sysutils/touchegg/Makefile                      | 37 +++++++++++++++++++++++++
 sysutils/touchegg/distinfo                      |  3 ++
 sysutils/touchegg/files/patch-CMakeLists.txt    | 20 +++++++++++++
 sysutils/touchegg/files/patch-src_daemon_dbus.h | 16 +++++++++++
 sysutils/touchegg/pkg-descr                     |  2 ++
 sysutils/touchegg/pkg-plist                     |  3 ++
 7 files changed, 82 insertions(+)

diff --git a/sysutils/Makefile b/sysutils/Makefile
index 17f7c6c5601b..eaaefae400a7 100644
--- a/sysutils/Makefile
+++ b/sysutils/Makefile
@@ -1429,6 +1429,7 @@
     SUBDIR += topless
     SUBDIR += torque
     SUBDIR += toshctl
+    SUBDIR += touchegg
     SUBDIR += toybox
     SUBDIR += tracker
     SUBDIR += tracker-miners
diff --git a/sysutils/touchegg/Makefile b/sysutils/touchegg/Makefile
new file mode 100644
index 000000000000..a33a2af78c8d
--- /dev/null
+++ b/sysutils/touchegg/Makefile
@@ -0,0 +1,37 @@
+PORTNAME=	touchegg
+DISTVERSION=	2.0.15
+CATEGORIES=	sysutils
+
+MAINTAINER=	yuri@FreeBSD.org
+COMMENT=	Multi-touch gesture recognizer
+WWW=		https://github.com/JoseExposito/touchegg
+
+LICENSE=	GPLv3
+LICENSE_FILE=	${WRKSRC}/COPYING
+
+BUILD_DEPENDS=	libgudev>0:devel/libgudev
+LIB_DEPENDS=	libharfbuzz.so:print/harfbuzz \
+		libinotify.so:devel/libinotify \
+		libinput.so:x11/libinput \
+		libpugixml.so:textproc/pugixml \
+		libudev.so:devel/libudev-devd
+
+USES=		cmake:testing compiler:c++17-lang desktop-file-utils gnome localbase:ldflags pkgconfig xorg
+USE_GNOME=	cairo gdkpixbuf2 gtk30
+USE_XORG=	x11 xi xrandr xtst
+
+USE_GITHUB=	yes
+GH_ACCOUNT=	JoseExposito
+
+CMAKE_OFF=	USE_SYSTEMD USE_SYSTEMD
+CMAKE_ARGS=	-DCMAKE_INSTALL_FULL_DATAROOTDIR=${LOCALBASE}/etc \
+		-DCMAKE_INSTALL_DATAROOTDIR=etc
+
+LDFLAGS+=	-linotify
+
+post-install:
+	@${MV} \
+		${STAGEDIR}${ETCDIR}/touchegg.conf \
+		${STAGEDIR}${ETCDIR}/touchegg.conf.sample
+
+.include <bsd.port.mk>
diff --git a/sysutils/touchegg/distinfo b/sysutils/touchegg/distinfo
new file mode 100644
index 000000000000..acc80a6f5242
--- /dev/null
+++ b/sysutils/touchegg/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1673768637
+SHA256 (JoseExposito-touchegg-2.0.15_GH0.tar.gz) = b620049eb48ca911e606c91ad8655eb66b352e384975bfd721c184d0e2356edc
+SIZE (JoseExposito-touchegg-2.0.15_GH0.tar.gz) = 26825847
diff --git a/sysutils/touchegg/files/patch-CMakeLists.txt b/sysutils/touchegg/files/patch-CMakeLists.txt
new file mode 100644
index 000000000000..7543309342ab
--- /dev/null
+++ b/sysutils/touchegg/files/patch-CMakeLists.txt
@@ -0,0 +1,20 @@
+--- CMakeLists.txt.orig	2022-11-14 17:39:36 UTC
++++ CMakeLists.txt
+@@ -51,7 +51,7 @@ target_include_directories(touchegg PUBLIC
+   ${GIO_INCLUDE_DIRS}
+ )
+ target_link_libraries(touchegg
+-  stdc++fs # std::filesystem
++  #stdc++fs # std::filesystem
+   Threads::Threads # std::thread
+   ${LIBUDEV_LIBRARIES}
+   ${LIBINPUT_LIBRARIES}
+@@ -77,7 +77,7 @@ endif()
+ 
+ # Installation
+ # https://cmake.org/cmake/help/v3.4/module/GNUInstallDirs.html
+-if(CMAKE_BUILD_TYPE MATCHES Debug)
++if(FALSE AND CMAKE_BUILD_TYPE MATCHES Debug)
+   set(CMAKE_INSTALL_PREFIX "/usr")
+ endif()
+ 
diff --git a/sysutils/touchegg/files/patch-src_daemon_dbus.h b/sysutils/touchegg/files/patch-src_daemon_dbus.h
new file mode 100644
index 000000000000..0155cf2f5945
--- /dev/null
+++ b/sysutils/touchegg/files/patch-src_daemon_dbus.h
@@ -0,0 +1,16 @@
+- Unix Domain Socket with Abstract Socket Address aren't supported on FreeBSD
+
+--- src/daemon/dbus.h.orig	2023-01-15 09:10:50 UTC
++++ src/daemon/dbus.h
+@@ -18,7 +18,11 @@
+ #ifndef DAEMON_DBUS_H_
+ #define DAEMON_DBUS_H_
+ 
++#if defined(__FreeBSD__)
++constexpr auto DBUS_ADDRESS = "unix:path=/tmp/touchegg#0";
++#else
+ constexpr auto DBUS_ADDRESS = "unix:abstract=touchegg";
++#endif
+ 
+ constexpr auto DBUS_OBJECT_PATH = "/io/github/joseexposito/Touchegg";
+ 
diff --git a/sysutils/touchegg/pkg-descr b/sysutils/touchegg/pkg-descr
new file mode 100644
index 000000000000..72e5290c7a5b
--- /dev/null
+++ b/sysutils/touchegg/pkg-descr
@@ -0,0 +1,2 @@
+Touchegg is an app that runs in the background and transform the gestures you
+make on your touchpad or touchscreen into visible actions in your desktop.
diff --git a/sysutils/touchegg/pkg-plist b/sysutils/touchegg/pkg-plist
new file mode 100644
index 000000000000..853cc58635bb
--- /dev/null
+++ b/sysutils/touchegg/pkg-plist
@@ -0,0 +1,3 @@
+bin/touchegg
+@sample %%ETCDIR%%/touchegg.conf.sample
+etc/xdg/autostart/touchegg.desktop