git: 37c7b7ff4ef3 - main - sysutils/deskflow: Mouse and keyboard sharing utility

From: Robert Clausecker <fuz_at_FreeBSD.org>
Date: Sun, 16 Mar 2025 10:20:41 UTC
The branch main has been updated by fuz:

URL: https://cgit.FreeBSD.org/ports/commit/?id=37c7b7ff4ef3430ccefa7066bed77ab216ad9f8c

commit 37c7b7ff4ef3430ccefa7066bed77ab216ad9f8c
Author:     Yoshiaki Kasahara <ykasap@gmail.com>
AuthorDate: 2025-02-10 03:31:35 +0000
Commit:     Robert Clausecker <fuz@FreeBSD.org>
CommitDate: 2025-03-16 10:19:30 +0000

    sysutils/deskflow: Mouse and keyboard sharing utility
    
    Deskflow is a free and open source keyboard and mouse sharing app. Use
    the keyboard, mouse, or trackpad of one computer to control nearby
    computers, and work seamlessly between them. It's like a software KVM
    (but without the video). TLS encryption is enabled by default. Wayland
    is supported. Clipboard sharing is supported.
    
    WWW: https://deskflow.org/
    
    PR:             284703
---
 sysutils/Makefile           |  1 +
 sysutils/deskflow/Makefile  | 48 ++++++++++++++++++++++++++++++++++
 sysutils/deskflow/distinfo  |  3 +++
 sysutils/deskflow/pkg-descr |  5 ++++
 sysutils/deskflow/pkg-plist | 64 +++++++++++++++++++++++++++++++++++++++++++++
 5 files changed, 121 insertions(+)

diff --git a/sysutils/Makefile b/sysutils/Makefile
index ffd9d5e68e69..7422f9a9760b 100644
--- a/sysutils/Makefile
+++ b/sysutils/Makefile
@@ -279,6 +279,7 @@
     SUBDIR += debootstrap
     SUBDIR += deltarpm
     SUBDIR += deltup
+    SUBDIR += deskflow
     SUBDIR += desktop-installer
     SUBDIR += detox
     SUBDIR += devctl-jail-kmod
diff --git a/sysutils/deskflow/Makefile b/sysutils/deskflow/Makefile
new file mode 100644
index 000000000000..e36bc58c52e1
--- /dev/null
+++ b/sysutils/deskflow/Makefile
@@ -0,0 +1,48 @@
+PORTNAME=	deskflow
+DISTVERSIONPREFIX=	v
+DISTVERSION=	1.20.1
+CATEGORIES=	sysutils
+
+MAINTAINER=	ykasap@gmail.com
+COMMENT=	Mouse and keyboard sharing utility
+WWW=		https://deskflow.org/
+
+LICENSE=	GPLv2
+LICENSE_FILE=	${WRKSRC}/LICENSE
+
+BROKEN_FreeBSD_13=	requires OpenSSL 3.0
+
+BUILD_DEPENDS=	${LOCALBASE}/include/CLI/Version.hpp:devel/cli11 \
+		googletest>0:devel/googletest
+LIB_DEPENDS=	libei.so:x11/libei \
+		libnotify.so:devel/libnotify \
+		libportal.so:deskutils/libportal \
+		libpugixml.so:textproc/pugixml \
+		libtomlplusplus.so:devel/tomlplusplus \
+		libxkbcommon.so:x11/libxkbcommon
+
+USES=		cmake compiler:c++20-lang gl gnome pkgconfig qt:6 ssl xorg
+USE_GITHUB=	yes
+USE_GL=		opengl
+USE_GNOME=	gdkpixbuf2 glib20
+USE_QT=		base
+USE_XORG=	ice sm x11 xext xi xinerama xkbfile xrandr xtst
+
+OPTIONS_DEFINE=	DOCS
+
+DOCS_BUILD_DEPENDS=	doxygen:devel/doxygen
+DOCS_CMAKE_BOOL=	BUILD_DOCS
+
+post-patch:
+# Hardcoded paths need to be replaced
+	@${REINPLACE_CMD} -e 's|/usr/local/share/X11/xkb|${PREFIX}/share/X11/xkb|' \
+		${WRKSRC}/src/lib/deskflow/unix/AppUtilUnix.cpp
+	@${REINPLACE_CMD} -e 's|return "/etc"|return "${PREFIX}/etc"|' \
+		${WRKSRC}/src/lib/arch/unix/ArchFileUnix.cpp
+
+do-test:
+	@(cd ${BUILD_WRKSRC} && \
+	${SETENVI} ${WRK_ENV} ${TEST_ENV} ${BUILD_WRKSRC}/bin/unittests && \
+	${SETENVI} ${WRK_ENV} ${TEST_ENV} ${BUILD_WRKSRC}/bin/integtests )
+
+.include <bsd.port.mk>
diff --git a/sysutils/deskflow/distinfo b/sysutils/deskflow/distinfo
new file mode 100644
index 000000000000..2c94687ead5d
--- /dev/null
+++ b/sysutils/deskflow/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1741595089
+SHA256 (deskflow-deskflow-v1.20.1_GH0.tar.gz) = 6b108cadd580d492374f49dfd40cfbfd0fca6528bf8246728e35fa2dd8fbf8b8
+SIZE (deskflow-deskflow-v1.20.1_GH0.tar.gz) = 1901842
diff --git a/sysutils/deskflow/pkg-descr b/sysutils/deskflow/pkg-descr
new file mode 100644
index 000000000000..efa76c8f9db6
--- /dev/null
+++ b/sysutils/deskflow/pkg-descr
@@ -0,0 +1,5 @@
+Deskflow is a free and open source keyboard and mouse sharing app. Use
+the keyboard, mouse, or trackpad of one computer to control nearby
+computers, and work seamlessly between them. It's like a software KVM
+(but without the video). TLS encryption is enabled by default. Wayland
+is supported. Clipboard sharing is supported.
diff --git a/sysutils/deskflow/pkg-plist b/sysutils/deskflow/pkg-plist
new file mode 100644
index 000000000000..b88225737f79
--- /dev/null
+++ b/sysutils/deskflow/pkg-plist
@@ -0,0 +1,64 @@
+bin/deskflow
+bin/deskflow-client
+bin/deskflow-server
+share/applications/org.deskflow.deskflow.desktop
+share/icons/hicolor/512x512/apps/org.deskflow.deskflow.png
+share/licenses/deskflow/LICENSE
+share/licenses/deskflow/LICENSE_EXCEPTION
+share/metainfo/org.deskflow.deskflow.metainfo.xml
+%%PORTDOCS%%%%DOCSDIR%%/html/bc_s.png
+%%PORTDOCS%%%%DOCSDIR%%/html/bc_sd.png
+%%PORTDOCS%%%%DOCSDIR%%/html/bdwn.png
+%%PORTDOCS%%%%DOCSDIR%%/html/closed.png
+%%PORTDOCS%%%%DOCSDIR%%/html/dir_e68e8157741866f444e17edd764ebbae.html
+%%PORTDOCS%%%%DOCSDIR%%/html/doc.png
+%%PORTDOCS%%%%DOCSDIR%%/html/docd.png
+%%PORTDOCS%%%%DOCSDIR%%/html/doxygen.css
+%%PORTDOCS%%%%DOCSDIR%%/html/doxygen.svg
+%%PORTDOCS%%%%DOCSDIR%%/html/dynsections.js
+%%PORTDOCS%%%%DOCSDIR%%/html/folderclosed.png
+%%PORTDOCS%%%%DOCSDIR%%/html/folderopen.png
+%%PORTDOCS%%%%DOCSDIR%%/html/graph_legend.html
+%%PORTDOCS%%%%DOCSDIR%%/html/graph_legend.md5
+%%PORTDOCS%%%%DOCSDIR%%/html/graph_legend.png
+%%PORTDOCS%%%%DOCSDIR%%/html/index.html
+%%PORTDOCS%%%%DOCSDIR%%/html/jquery.js
+%%PORTDOCS%%%%DOCSDIR%%/html/md_doc_configuration.html
+%%PORTDOCS%%%%DOCSDIR%%/html/menu.js
+%%PORTDOCS%%%%DOCSDIR%%/html/menudata.js
+%%PORTDOCS%%%%DOCSDIR%%/html/nav_f.png
+%%PORTDOCS%%%%DOCSDIR%%/html/nav_fd.png
+%%PORTDOCS%%%%DOCSDIR%%/html/nav_g.png
+%%PORTDOCS%%%%DOCSDIR%%/html/nav_h.png
+%%PORTDOCS%%%%DOCSDIR%%/html/nav_hd.png
+%%PORTDOCS%%%%DOCSDIR%%/html/open.png
+%%PORTDOCS%%%%DOCSDIR%%/html/pages.html
+%%PORTDOCS%%%%DOCSDIR%%/html/search/all_0.js
+%%PORTDOCS%%%%DOCSDIR%%/html/search/all_1.js
+%%PORTDOCS%%%%DOCSDIR%%/html/search/all_2.js
+%%PORTDOCS%%%%DOCSDIR%%/html/search/all_3.js
+%%PORTDOCS%%%%DOCSDIR%%/html/search/close.svg
+%%PORTDOCS%%%%DOCSDIR%%/html/search/files_0.js
+%%PORTDOCS%%%%DOCSDIR%%/html/search/files_1.js
+%%PORTDOCS%%%%DOCSDIR%%/html/search/mag_d.svg
+%%PORTDOCS%%%%DOCSDIR%%/html/search/mag_sel.svg
+%%PORTDOCS%%%%DOCSDIR%%/html/search/mag_seld.svg
+%%PORTDOCS%%%%DOCSDIR%%/html/search/mag.svg
+%%PORTDOCS%%%%DOCSDIR%%/html/search/pages_0.js
+%%PORTDOCS%%%%DOCSDIR%%/html/search/pages_1.js
+%%PORTDOCS%%%%DOCSDIR%%/html/search/search.css
+%%PORTDOCS%%%%DOCSDIR%%/html/search/search.js
+%%PORTDOCS%%%%DOCSDIR%%/html/search/searchdata.js
+%%PORTDOCS%%%%DOCSDIR%%/html/splitbar.png
+%%PORTDOCS%%%%DOCSDIR%%/html/splitbard.png
+%%PORTDOCS%%%%DOCSDIR%%/html/sync_off.png
+%%PORTDOCS%%%%DOCSDIR%%/html/sync_on.png
+%%PORTDOCS%%%%DOCSDIR%%/html/tab_a.png
+%%PORTDOCS%%%%DOCSDIR%%/html/tab_ad.png
+%%PORTDOCS%%%%DOCSDIR%%/html/tab_b.png
+%%PORTDOCS%%%%DOCSDIR%%/html/tab_bd.png
+%%PORTDOCS%%%%DOCSDIR%%/html/tab_h.png
+%%PORTDOCS%%%%DOCSDIR%%/html/tab_hd.png
+%%PORTDOCS%%%%DOCSDIR%%/html/tab_s.png
+%%PORTDOCS%%%%DOCSDIR%%/html/tab_sd.png
+%%PORTDOCS%%%%DOCSDIR%%/html/tabs.css