Add missing _permit_setugid for swaylock. Not sure if placed in the most ascetically pleasing place, but will do for a dirty fix. Saw this broke after updating the home computer, laptop, and the router/ap and doing some testing for sddm.
Concerns, comments, testing and/or okays welcome.
Hope this helps. Happy hacking everyone. May you have a good one.
--
yaydn
Index: Makefile
===================================================================
RCS file: /cvs/ports/wayland/swaylock/Makefile,v
diff -u -p -u -p -r1.8 Makefile
--- Makefile 6 May 2026 13:03:19 -0000 1.8
+++ Makefile 19 Oct 2026 17:55:45 -0000
@@ -1,6 +1,7 @@
COMMENT = screen locker for Wayland
V = 1.8.5
+REVISION = 0
DISTNAME = swaylock-${V}
SITES =
https://github.com/swaywm/swaylock/releases/download/v${V}/
Index: patches/patch-main_c
===================================================================
RCS file: /cvs/ports/wayland/swaylock/patches/patch-main_c,v
diff -u -p -u -p -r1.4 patch-main_c
--- patches/patch-main_c 10 Nov 2025 12:05:44 -0000 1.4
+++ patches/patch-main_c 19 Oct 2026 17:55:45 -0000
@@ -11,7 +11,25 @@ Index: main.c
#include "background-image.h"
#include "cairo.h"
#include "comm.h"
-@@ -322,23 +321,6 @@ static cairo_surface_t *select_image(struct swaylock_s
+@@ -26,6 +25,17 @@
+ #include "swaylock.h"
+ #include "ext-session-lock-v1-client-protocol.h"
+
++#if defined(__OpenBSD__)
++#include <sys/stat.h>
++
++/* OpenBSD: set[ug]id binary MUST say so in this var */
++__attribute__((visibility("default"))) mode_t _permit_setugid = S_ISGID;
++#endif
++
++/*!
++ * Params sent by the peer.
++ */
++
+ static uint32_t parse_color(const char *color) {
+ if (color[0] == '#') {
+ ++color;
+@@ -322,23 +332,6 @@ static cairo_surface_t *select_image(struct swaylock_s
return default_image;
}
@@ -35,7 +53,7 @@ Index: main.c
static void load_image(char *arg, struct swaylock_state *state) {
// [[<output>]:]<path>
struct swaylock_image *image = calloc(1, sizeof(struct swaylock_image));
-@@ -372,21 +354,12 @@ static void load_image(char *arg, struct swaylock_stat
+@@ -372,21 +365,12 @@ static void load_image(char *arg, struct swaylock_stat
}
}
@@ -57,7 +75,7 @@ Index: main.c
// Load the actual image
image->cairo_surface = load_background_image(image->path);
-@@ -956,32 +929,57 @@ static bool file_exists(const char *path) {
+@@ -956,32 +940,57 @@ static bool file_exists(const char *path) {
return path && access(path, R_OK) != -1;
}
swaylock-1.8.5p0.diff
Description: Binary data
