Hi,
Here's an update for the pekwm. Briefly tested on amd64.
Timo
diff /usr/ports
commit - 9e018f7a7b38c947fedc6adbadada1a4d72e6b1c
path + /usr/ports
blob - 4a38f474b830a9a79bb9c62d830c8542596d5ba7
file + x11/pekwm/Makefile
--- x11/pekwm/Makefile
+++ x11/pekwm/Makefile
@@ -1,7 +1,7 @@
COMMENT= aewm++ based pretty themable window manager
DISTNAME= pekwm-${V}
-V= 0.2.1
+V= 0.3.0
CATEGORIES= x11
HOMEPAGE= https://www.pekwm.se/
@@ -12,8 +12,8 @@ WANTLIB += ICE SM X11 Xext Xft Xinerama Xpm Xrandr c f
PERMIT_PACKAGE= Yes
# uses pledge()
-WANTLIB += ICE SM X11 Xext Xft Xinerama Xpm Xrandr c freetype jpeg m png
-WANTLIB += ${COMPILER_LIBCXX}
+WANTLIB += ICE SM X11 Xext Xft Xinerama Xpm Xrandr c fontconfig freetype
+WANTLIB += jpeg m png ${COMPILER_LIBCXX}
COMPILER = base-clang ports-gcc base-gcc
blob - e780505f9b46912d82a64933a8781578b9e5f86d
file + x11/pekwm/distinfo
--- x11/pekwm/distinfo
+++ x11/pekwm/distinfo
@@ -1,2 +1,2 @@
-SHA256 (pekwm-0.2.1.tar.gz) = AV5uud/8gW+i1Km4yzRaUolPTcpaAdBhLzAkLbh+DlA=
-SIZE (pekwm-0.2.1.tar.gz) = 943072
+SHA256 (pekwm-0.3.0.tar.gz) = l+D101bki5Sj1mLzrwovtp7xvA84LqTF2LufTs5IFiQ=
+SIZE (pekwm-0.3.0.tar.gz) = 1210295
blob - a2ed7ab39f72d9e5d72634eaf9d8572e4f6c8e16
file + x11/pekwm/patches/patch-CMakeLists_txt
--- x11/pekwm/patches/patch-CMakeLists_txt
+++ x11/pekwm/patches/patch-CMakeLists_txt
@@ -1,7 +1,7 @@
Index: CMakeLists.txt
--- CMakeLists.txt.orig
+++ CMakeLists.txt
-@@ -67,6 +67,7 @@ int main() { std::stof(\"42.0\"); }
+@@ -81,6 +81,7 @@ int main() { std::stof(\"42.0\"); }
set(CMAKE_CXX_FLAGS ${orig_CMAKE_CXX_FLAGS})
# Look for platform specific methods
blob - /dev/null
file + x11/pekwm/patches/patch-src_CfgParserSource_cc (mode 644)
--- /dev/null
+++ x11/pekwm/patches/patch-src_CfgParserSource_cc
@@ -0,0 +1,14 @@
+backport commit fix dd7b96cdcc6e0430b8f737a6fc5287f476476a85
+
+Index: src/CfgParserSource.cc
+--- src/CfgParserSource.cc.orig
++++ src/CfgParserSource.cc
+@@ -144,7 +144,7 @@ CfgParserSourceCommand::open(void)
+ std::string path(Util::getEnv("PATH"));
+ path = _command_path + ":" + path;
+ env.override("PATH", path);
+- execle(PEKWM_SH, PEKWM_SH, "-c", _name.c_str(), nullptr,
++ execle(PEKWM_SH, PEKWM_SH, "-c", _name.c_str(), NULL,
+ env.getCEnv());
+
+ ::close (STDOUT_FILENO);
blob - /dev/null
file + x11/pekwm/patches/patch-src_Util_cc (mode 644)
--- /dev/null
+++ x11/pekwm/patches/patch-src_Util_cc
@@ -0,0 +1,14 @@
+backport commit fix dd7b96cdcc6e0430b8f737a6fc5287f476476a85
+
+Index: src/Util.cc
+--- src/Util.cc.orig
++++ src/Util.cc
+@@ -191,7 +191,7 @@ namespace Util {
+ case 0:
+ setsid();
+ execlp(PEKWM_SH, PEKWM_SH, "-c", command.c_str(),
+- static_cast<char*>(0));
++ NULL);
+ P_ERR("execlp failed: " << strerror(errno));
+ exit(1);
+ case -1:
blob - /dev/null
file + x11/pekwm/patches/patch-src_pekwm_cc (mode 644)
--- /dev/null
+++ x11/pekwm/patches/patch-src_pekwm_cc
@@ -0,0 +1,14 @@
+backport commit fix dd7b96cdcc6e0430b8f737a6fc5287f476476a85
+
+Index: src/pekwm.cc
+--- src/pekwm.cc.orig
++++ src/pekwm.cc
+@@ -100,7 +100,7 @@ handleOkResult(char *path, char **argv, int read_fd)
+ } else {
+ command = "exec " + command;
+ execl(PEKWM_SH, PEKWM_SH , "-c", command.c_str(),
+- static_cast<char*>(0));
++ NULL);
+ }
+
+ std::cerr << "failed to run restart command: "
blob - 806341a75110e87e95a5b679298cb45cef4cfa71
file + x11/pekwm/patches/patch-src_pekwm_wm_cc
--- x11/pekwm/patches/patch-src_pekwm_wm_cc
+++ x11/pekwm/patches/patch-src_pekwm_wm_cc
@@ -1,27 +1,18 @@
Index: src/pekwm_wm.cc
--- src/pekwm_wm.cc.orig
+++ src/pekwm_wm.cc
-@@ -21,7 +21,7 @@
-
- extern "C" {
- #include <errno.h>
--#include <unistd.h> // execlp
-+#include <unistd.h> // execlp,pledge
- }
-
- /**
-@@ -141,6 +141,14 @@ main(int argc, char **argv)
- << "using configuration at " << config_file);
-
- WindowManager *wm = WindowManager::start(config_file, replace,
synchronous);
-+
-+#if PEKWM_HAVE_PLEDGE
-+ if (pledge("stdio rpath wpath cpath proc exec", NULL) == -1) {
-+ cerr << "failed to pledge" << endl;
-+ return 1;
-+ }
-+#endif
-+
+@@ -181,6 +181,14 @@ main(int argc, char **argv)
+ WindowManager::start(config_file, replace, synchronous);
if (wm) {
try {
++
++#if PEKWM_HAVE_PLEDGE
++ if (pledge("stdio rpath wpath cpath proc exec", NULL)
== -1) {
++ std::cerr << "failed to pledge" << std::endl;
++ return 1;
++ }
++#endif
++
P_TRACE("Enter event loop.");
+
+ wm->doEventLoop();
blob - fb7646a964c95f5cfc58e57a4a06b7513b4ece88
file + x11/pekwm/pkg/PLIST
--- x11/pekwm/pkg/PLIST
+++ x11/pekwm/pkg/PLIST
@@ -94,3 +94,29 @@ share/pekwm/themes/default/top-right_unfocus.png
share/pekwm/themes/default/top-right-no-buttons.png
share/pekwm/themes/default/top-right.png
share/pekwm/themes/default/top-right_unfocus.png
+share/pekwm/themes/winter/
+share/pekwm/themes/winter/backgrounds/
+share/pekwm/themes/winter/backgrounds/background-2560x1440.jpg
+share/pekwm/themes/winter/bd-b-un.png
+share/pekwm/themes/winter/bd-b.png
+share/pekwm/themes/winter/bd-bl-un.png
+share/pekwm/themes/winter/bd-bl.png
+share/pekwm/themes/winter/bd-br-un.png
+share/pekwm/themes/winter/bd-br.png
+share/pekwm/themes/winter/bd-lr-un.png
+share/pekwm/themes/winter/bd-lr.png
+share/pekwm/themes/winter/bd-t-un.png
+share/pekwm/themes/winter/bd-t.png
+share/pekwm/themes/winter/bd-tl-un.png
+share/pekwm/themes/winter/bd-tl.png
+share/pekwm/themes/winter/bd-tr-un.png
+share/pekwm/themes/winter/bd-tr.png
+share/pekwm/themes/winter/panel-sep.png
+share/pekwm/themes/winter/panel.png
+share/pekwm/themes/winter/sep-un.png
+share/pekwm/themes/winter/sep.png
+share/pekwm/themes/winter/theme
+share/pekwm/themes/winter/title-fo.png
+share/pekwm/themes/winter/title-sel-un.png
+share/pekwm/themes/winter/title-sel.png
+share/pekwm/themes/winter/title-un.png