git: 64d155c6268c - main - devel/hyprwire: Add port: Fast and consistent wire protocol for IPC

From: Hiroki Tagato <tagattie_at_FreeBSD.org>
Date: Sun, 23 Nov 2025 13:31:07 UTC
The branch main has been updated by tagattie:

URL: https://cgit.FreeBSD.org/ports/commit/?id=64d155c6268ca82152fa02f31947adb4b2910f12

commit 64d155c6268ca82152fa02f31947adb4b2910f12
Author:     Hiroki Tagato <tagattie@FreeBSD.org>
AuthorDate: 2025-11-23 08:32:57 +0000
Commit:     Hiroki Tagato <tagattie@FreeBSD.org>
CommitDate: 2025-11-23 13:30:59 +0000

    devel/hyprwire: Add port: Fast and consistent wire protocol for IPC
    
    Hyprwire is a fast and consistent wire protocol, and its
    implementation. This is essentially a "method" for processes to talk
    to each other.
    
    WWW: https://github.com/hyprwm/hyprwire
---
 devel/Makefile                                     |  1 +
 devel/hyprwire/Makefile                            | 40 ++++++++++++++++++++++
 devel/hyprwire/distinfo                            |  3 ++
 .../files/patch-src_core_client_ClientSocket.cpp   | 10 ++++++
 .../files/patch-src_core_server_ServerClient.cpp   | 11 ++++++
 .../files/patch-src_core_server_ServerSocket.cpp   | 10 ++++++
 devel/hyprwire/pkg-descr                           |  3 ++
 devel/hyprwire/pkg-plist                           | 17 +++++++++
 8 files changed, 95 insertions(+)

diff --git a/devel/Makefile b/devel/Makefile
index a8645b1fbe85..b358ea9dc4fe 100644
--- a/devel/Makefile
+++ b/devel/Makefile
@@ -1025,6 +1025,7 @@
     SUBDIR += hyprlang
     SUBDIR += hyprutils
     SUBDIR += hyprwayland-scanner
+    SUBDIR += hyprwire
     SUBDIR += iaito
     SUBDIR += ice
     SUBDIR += ice37
diff --git a/devel/hyprwire/Makefile b/devel/hyprwire/Makefile
new file mode 100644
index 000000000000..9e61ef683190
--- /dev/null
+++ b/devel/hyprwire/Makefile
@@ -0,0 +1,40 @@
+PORTNAME=	hyprwire
+DISTVERSIONPREFIX=	v
+DISTVERSION=	0.1.1
+CATEGORIES=	devel
+
+MAINTAINER=	tagattie@FreeBSD.org
+COMMENT=	Fast and consistent wire protocol for IPC
+WWW=		https://github.com/hyprwm/hyprwire
+
+LICENSE=	BSD3CLAUSE
+LICENSE_FILE=	${WRKSRC}/LICENSE
+
+LIB_DEPENDS=	libhyprutils.so:devel/hyprutils \
+		libffi.so:devel/libffi \
+		libpugixml.so:textproc/pugixml
+
+USES=		cmake:testing compiler:c++11-lib pkgconfig
+
+USE_GITHUB=	yes
+GH_ACCOUNT=	hyprwm
+
+LDFLAGS+=	-pthread
+
+PLIST_SUB=	SOVERSION_FULL=${DISTVERSION} \
+		SOVERSION_MAJOR=1
+PORTDOCS=	README.md
+
+OPTIONS_DEFINE=	DOCS
+
+# XXX Drop after FreeBSD 13.5 EOL around 2026-04-30
+# https://cgit.freebsd.org/src/commit/?id=af93fea71038
+.if !exists(/usr/include/sys/timerfd.h)
+LIB_DEPENDS+=	libepoll-shim.so:devel/libepoll-shim
+.endif
+
+post-install-DOCS-on:
+	@${MKDIR} ${STAGEDIR}${DOCSDIR}
+	${INSTALL_MAN} ${PORTDOCS:S|^|${WRKSRC}/|} ${STAGEDIR}${DOCSDIR}
+
+.include <bsd.port.mk>
diff --git a/devel/hyprwire/distinfo b/devel/hyprwire/distinfo
new file mode 100644
index 000000000000..1d16e50262e4
--- /dev/null
+++ b/devel/hyprwire/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1763884570
+SHA256 (hyprwm-hyprwire-v0.1.1_GH0.tar.gz) = db522dd32756a956833b92ea2f50fb9863392ba43daca42a8008228c6dfc8343
+SIZE (hyprwm-hyprwire-v0.1.1_GH0.tar.gz) = 31531
diff --git a/devel/hyprwire/files/patch-src_core_client_ClientSocket.cpp b/devel/hyprwire/files/patch-src_core_client_ClientSocket.cpp
new file mode 100644
index 000000000000..fb2c37a1aeab
--- /dev/null
+++ b/devel/hyprwire/files/patch-src_core_client_ClientSocket.cpp
@@ -0,0 +1,10 @@
+--- src/core/client/ClientSocket.cpp.orig	2025-11-23 08:07:11 UTC
++++ src/core/client/ClientSocket.cpp
+@@ -18,6 +18,7 @@
+ #include <sys/socket.h>
+ #include <sys/un.h>
+ #include <netinet/in.h>
++#include <unistd.h>
+ 
+ #include <filesystem>
+ #include <hyprutils/utils/ScopeGuard.hpp>
diff --git a/devel/hyprwire/files/patch-src_core_server_ServerClient.cpp b/devel/hyprwire/files/patch-src_core_server_ServerClient.cpp
new file mode 100644
index 000000000000..e925ee87ce0b
--- /dev/null
+++ b/devel/hyprwire/files/patch-src_core_server_ServerClient.cpp
@@ -0,0 +1,11 @@
+--- src/core/server/ServerClient.cpp.orig	2025-11-23 08:04:14 UTC
++++ src/core/server/ServerClient.cpp
+@@ -7,6 +7,8 @@
+ #include "../../helpers/Log.hpp"
+ #include "../../Macros.hpp"
+ 
++#include <unistd.h>
++
+ #include <hyprwire/core/implementation/ServerImpl.hpp>
+ #include <hyprwire/core/implementation/Spec.hpp>
+ 
diff --git a/devel/hyprwire/files/patch-src_core_server_ServerSocket.cpp b/devel/hyprwire/files/patch-src_core_server_ServerSocket.cpp
new file mode 100644
index 000000000000..680a7b75932d
--- /dev/null
+++ b/devel/hyprwire/files/patch-src_core_server_ServerSocket.cpp
@@ -0,0 +1,10 @@
+--- src/core/server/ServerSocket.cpp.orig	2025-11-23 08:06:13 UTC
++++ src/core/server/ServerSocket.cpp
+@@ -9,6 +9,7 @@
+ #include <sys/socket.h>
+ #include <sys/un.h>
+ #include <netinet/in.h>
++#include <unistd.h>
+ 
+ #include <filesystem>
+ #include <hyprutils/utils/ScopeGuard.hpp>
diff --git a/devel/hyprwire/pkg-descr b/devel/hyprwire/pkg-descr
new file mode 100644
index 000000000000..d48eec95bdc7
--- /dev/null
+++ b/devel/hyprwire/pkg-descr
@@ -0,0 +1,3 @@
+Hyprwire is a fast and consistent wire protocol, and its
+implementation. This is essentially a "method" for processes to talk
+to each other.
diff --git a/devel/hyprwire/pkg-plist b/devel/hyprwire/pkg-plist
new file mode 100644
index 000000000000..9593517d8a32
--- /dev/null
+++ b/devel/hyprwire/pkg-plist
@@ -0,0 +1,17 @@
+bin/hyprwire-scanner
+include/hyprwire/core/ClientSocket.hpp
+include/hyprwire/core/ServerSocket.hpp
+include/hyprwire/core/implementation/ClientImpl.hpp
+include/hyprwire/core/implementation/Object.hpp
+include/hyprwire/core/implementation/ServerImpl.hpp
+include/hyprwire/core/implementation/Spec.hpp
+include/hyprwire/core/implementation/Types.hpp
+include/hyprwire/core/types/MessageMagic.hpp
+include/hyprwire/hyprwire.hpp
+lib/cmake/hyprwire-scanner/hyprwire-scanner-config-version.cmake
+lib/cmake/hyprwire-scanner/hyprwire-scanner-config.cmake
+lib/libhyprwire.so
+lib/libhyprwire.so.%%SOVERSION_FULL%%
+lib/libhyprwire.so.%%SOVERSION_MAJOR%%
+libdata/pkgconfig/hyprwire-scanner.pc
+libdata/pkgconfig/hyprwire.pc