git: 35d43ff4812c - main - x11-wm/wlmaker: add new port

From: Jan Beich <jbeich_at_FreeBSD.org>
Date: Tue, 16 Jan 2024 18:25:57 UTC
The branch main has been updated by jbeich:

URL: https://cgit.FreeBSD.org/ports/commit/?id=35d43ff4812cfa9142deb358e7a8a4c7849bee20

commit 35d43ff4812cfa9142deb358e7a8a4c7849bee20
Author:     Jan Beich <jbeich@FreeBSD.org>
AuthorDate: 2024-01-14 14:29:59 +0000
Commit:     Jan Beich <jbeich@FreeBSD.org>
CommitDate: 2024-01-16 18:25:40 +0000

    x11-wm/wlmaker: add new port
    
    A Wayland compositor inspired by Window Maker.
    
    Key features:
    
    * Compositor for windows in stacking mode.
    * Supports multiple workspaces.
    * Appearance inspired by Window Maker, following the look and feel of NeXTSTEP.
    * Easy to use, lightweight, low gimmicks and fast.
    * Dock and clip, to be extended for dockable apps.
    
    Wayland Maker is in early development stage. For existing and planned features
    see https://github.com/phkaeser/wlmaker/blob/main/doc/ROADMAP.md
---
 x11-wm/Makefile                                |  1 +
 x11-wm/wlmaker/Makefile                        | 49 ++++++++++++++++++++++++++
 x11-wm/wlmaker/distinfo                        | 11 ++++++
 x11-wm/wlmaker/files/patch-apps-CMakeLists.txt |  9 +++++
 x11-wm/wlmaker/files/patch-libbase             | 33 +++++++++++++++++
 x11-wm/wlmaker/pkg-descr                       | 12 +++++++
 6 files changed, 115 insertions(+)

diff --git a/x11-wm/Makefile b/x11-wm/Makefile
index db5cb8ef7ed2..2d950f039134 100644
--- a/x11-wm/Makefile
+++ b/x11-wm/Makefile
@@ -122,6 +122,7 @@
     SUBDIR += wayfire
     SUBDIR += wayfire-plugins-extra
     SUBDIR += windowmaker
+    SUBDIR += wlmaker
     SUBDIR += wm2
     SUBDIR += wmakerconf
     SUBDIR += wmanager
diff --git a/x11-wm/wlmaker/Makefile b/x11-wm/wlmaker/Makefile
new file mode 100644
index 000000000000..2b0ef48f8752
--- /dev/null
+++ b/x11-wm/wlmaker/Makefile
@@ -0,0 +1,49 @@
+PORTNAME=	wlmaker
+DISTVERSIONPREFIX=	v
+DISTVERSION=	0.1-430
+DISTVERSIONSUFFIX=	-ged7a302
+CATEGORIES=	x11-wm wayland
+
+PATCH_SITES=	https://github.com/${GH_ACCOUNT}/${GH_PROJECT}/commit/
+PATCHFILES+=	486758619471.patch:-p1 # https://github.com/phkaeser/wlmaker/pull/11
+PATCHFILES+=	3a64446b128a.patch:-p1 # https://github.com/phkaeser/wlmaker/pull/11
+PATCHFILES+=	2a7108e964e0.patch:-p1 # https://github.com/phkaeser/wlmaker/pull/11
+
+MAINTAINER=	jbeich@FreeBSD.org
+COMMENT=	Wayland compositor inspired by Window Maker
+WWW=		https://github.com/phkaeser/wlmaker
+
+LICENSE=	APACHE20
+
+BUILD_DEPENDS=	evdev-proto>0:devel/evdev-proto \
+		wayland-protocols>=1.31:graphics/wayland-protocols
+LIB_DEPENDS=	libepoll-shim.so:devel/libepoll-shim \
+		libwayland-server.so:graphics/wayland \
+		libwlroots.so:x11-toolkits/wlroots \
+		libxkbcommon.so:x11/libxkbcommon
+
+USES=		cmake compiler:c11 gnome pkgconfig
+USE_GITHUB=	yes
+USE_GNOME=	cairo
+GH_ACCOUNT=	phkaeser
+GH_TUPLE=	phkaeser:libbase:c215f7d:libbase/submodules/libbase
+LDFLAGS+=	-Wl,--as-needed # https://github.com/phkaeser/wlmaker/issues/12
+PLIST_FILES=	bin/${PORTNAME} \
+		bin/wlmclock \
+		share/icons/${PORTNAME}/chrome-48x48.png \
+		share/icons/${PORTNAME}/clip-48x48.png \
+		share/icons/${PORTNAME}/firefox-48x48.png \
+		share/icons/${PORTNAME}/terminal-48x48.png \
+		${NULL}
+
+post-patch:
+# Drop dependency on unreleased version of libwayland
+	@${REINPLACE_CMD} -e 's/1\.22\.90/1.22.0/' \
+		${WRKSRC}/CMakeLists.txt
+# Respect LOCALBASE for apps and use open source Chrome
+	@${REINPLACE_CMD} -e 's,/usr/bin,${LOCALBASE}/bin,' \
+		 -e 's/google-chrome/chrome/' \
+		${WRKSRC}/src/dock.c \
+		${WRKSRC}/src/${PORTNAME}.c
+
+.include <bsd.port.mk>
diff --git a/x11-wm/wlmaker/distinfo b/x11-wm/wlmaker/distinfo
new file mode 100644
index 000000000000..f8fe392d7c43
--- /dev/null
+++ b/x11-wm/wlmaker/distinfo
@@ -0,0 +1,11 @@
+TIMESTAMP = 1705242599
+SHA256 (phkaeser-wlmaker-v0.1-430-ged7a302_GH0.tar.gz) = 468eb262a62fdf66423a318f69252d14d74e074cce4cf31daf8fcdfc9a9ea6eb
+SIZE (phkaeser-wlmaker-v0.1-430-ged7a302_GH0.tar.gz) = 249717
+SHA256 (phkaeser-libbase-c215f7d_GH0.tar.gz) = 11030b84111982bc175e23d3eced8449585a46ccaa0b2ea1c23d661592f53974
+SIZE (phkaeser-libbase-c215f7d_GH0.tar.gz) = 94029
+SHA256 (486758619471.patch) = 0226ca4162f451b5ba0ed0d98e29b9b7458500f21b4dc6033902d4beeade9189
+SIZE (486758619471.patch) = 1113
+SHA256 (3a64446b128a.patch) = 6ac2464a4f6675bdb19d144857037785c2153213786af6f330401a447a05e70d
+SIZE (3a64446b128a.patch) = 906
+SHA256 (2a7108e964e0.patch) = e32e575ef56ef9b7c24605ae58139009a83459010580244210cbade860a4945d
+SIZE (2a7108e964e0.patch) = 971
diff --git a/x11-wm/wlmaker/files/patch-apps-CMakeLists.txt b/x11-wm/wlmaker/files/patch-apps-CMakeLists.txt
new file mode 100644
index 000000000000..a7a3fa65390c
--- /dev/null
+++ b/x11-wm/wlmaker/files/patch-apps-CMakeLists.txt
@@ -0,0 +1,9 @@
+https://github.com/phkaeser/wlmaker/issues/13
+
+--- apps/CMakeLists.txt.orig	2024-01-14 14:29:59 UTC
++++ apps/CMakeLists.txt
+@@ -19,3 +19,4 @@ TARGET_LINK_LIBRARIES(wlmclock libwlclient primitives 
+ ADD_EXECUTABLE(wlmclock wlmclock.c)
+ TARGET_INCLUDE_DIRECTORIES(wlmclock PRIVATE ${CMAKE_CURRENT_SOURCE_DIR})
+ TARGET_LINK_LIBRARIES(wlmclock libwlclient primitives m)
++INSTALL(TARGETS wlmclock DESTINATION bin)
diff --git a/x11-wm/wlmaker/files/patch-libbase b/x11-wm/wlmaker/files/patch-libbase
new file mode 100644
index 000000000000..93b3f6c91b24
--- /dev/null
+++ b/x11-wm/wlmaker/files/patch-libbase
@@ -0,0 +1,33 @@
+https://github.com/phkaeser/libbase/pull/2
+
+--- submodules/libbase/subprocess.c.orig	2023-11-05 16:20:38 UTC
++++ submodules/libbase/subprocess.c
+@@ -27,6 +27,7 @@
+ #include <limits.h>
+ #include <errno.h>
+ #include <poll.h>
++#include <signal.h>
+ #include <stdlib.h>
+ #include <unistd.h>
+ #include <regex.h>
+--- submodules/libbase/time.c.orig	2023-11-05 16:20:38 UTC
++++ submodules/libbase/time.c
+@@ -19,7 +19,8 @@
+  */
+ 
+ /// clock_gettime(2) is a POSIX extension, needs this macro.
+-#define _POSIX_C_SOURCE 199309L
++/// gettimeofday(2) is a XSI extension, needs this macro.
++#define _XOPEN_SOURCE 500
+ 
+ #include "log.h"
+ #include "time.h"
+@@ -30,7 +31,7 @@
+ #include <time.h>
+ #include <sys/time.h>
+ 
+-#undef _POSIX_C_SOURCE
++#undef _XOPEN_SOURCE
+ 
+ /* == Methods ============================================================== */
+ 
diff --git a/x11-wm/wlmaker/pkg-descr b/x11-wm/wlmaker/pkg-descr
new file mode 100644
index 000000000000..d8c0a63a2c7c
--- /dev/null
+++ b/x11-wm/wlmaker/pkg-descr
@@ -0,0 +1,12 @@
+A Wayland compositor inspired by Window Maker.
+
+Key features:
+
+* Compositor for windows in stacking mode.
+* Supports multiple workspaces.
+* Appearance inspired by Window Maker, following the look and feel of NeXTSTEP.
+* Easy to use, lightweight, low gimmicks and fast.
+* Dock and clip, to be extended for dockable apps.
+
+Wayland Maker is in early development stage. For existing and planned features
+see https://github.com/phkaeser/wlmaker/blob/main/doc/ROADMAP.md