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
This commit is contained in:
Jan Beich 2024-01-14 15:29:59 +01:00
parent 4d3f74d884
commit 35d43ff481
6 changed files with 115 additions and 0 deletions

View file

@ -122,6 +122,7 @@
SUBDIR += wayfire
SUBDIR += wayfire-plugins-extra
SUBDIR += windowmaker
SUBDIR += wlmaker
SUBDIR += wm2
SUBDIR += wmakerconf
SUBDIR += wmanager

49
x11-wm/wlmaker/Makefile Normal file
View file

@ -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>

11
x11-wm/wlmaker/distinfo Normal file
View file

@ -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

View file

@ -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)

View file

@ -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 ============================================================== */

12
x11-wm/wlmaker/pkg-descr Normal file
View file

@ -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