pkgsrc-Changes archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
CVS commit: pkgsrc/sysutils/seatd
Module Name: pkgsrc
Committed By: kikadf
Date: Mon Apr 13 15:49:39 UTC 2026
Added Files:
pkgsrc/sysutils/seatd: DESCR Makefile PLIST buildlink3.mk distinfo
pkgsrc/sysutils/seatd/patches: patch-common_drm.c
patch-common_terminal.c
Log Message:
seatd: new package
A minimal seat management daemon, and a universal
seat management library.
Seat management takes care of mediating access to
shared devices (graphics, input), without requiring
the applications needing access to be root.
Seat management library allowing applications to
use whatever seat management is available.
To generate a diff of this commit:
cvs rdiff -u -r0 -r1.1 pkgsrc/sysutils/seatd/DESCR \
pkgsrc/sysutils/seatd/Makefile pkgsrc/sysutils/seatd/PLIST \
pkgsrc/sysutils/seatd/buildlink3.mk pkgsrc/sysutils/seatd/distinfo
cvs rdiff -u -r0 -r1.1 pkgsrc/sysutils/seatd/patches/patch-common_drm.c \
pkgsrc/sysutils/seatd/patches/patch-common_terminal.c
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Added files:
Index: pkgsrc/sysutils/seatd/DESCR
diff -u /dev/null pkgsrc/sysutils/seatd/DESCR:1.1
--- /dev/null Mon Apr 13 15:49:39 2026
+++ pkgsrc/sysutils/seatd/DESCR Mon Apr 13 15:49:39 2026
@@ -0,0 +1,7 @@
+A minimal seat management daemon, and a universal
+seat management library.
+Seat management takes care of mediating access to
+shared devices (graphics, input), without requiring
+the applications needing access to be root.
+Seat management library allowing applications to
+use whatever seat management is available.
Index: pkgsrc/sysutils/seatd/Makefile
diff -u /dev/null pkgsrc/sysutils/seatd/Makefile:1.1
--- /dev/null Mon Apr 13 15:49:39 2026
+++ pkgsrc/sysutils/seatd/Makefile Mon Apr 13 15:49:39 2026
@@ -0,0 +1,26 @@
+# $NetBSD: Makefile,v 1.1 2026/04/13 15:49:39 kikadf Exp $
+
+DISTNAME= seatd-0.9.3
+CATEGORIES= sysutils
+MASTER_SITES= ${MASTER_SITE_GITHUB:=kennylevinsen/}
+
+MAINTAINER= kikadf%NetBSD.org@localhost
+HOMEPAGE= https://git.sr.ht/~kennylevinsen/seatd/
+COMMENT= Seat management daemon and library
+LICENSE= mit
+
+USE_TOOLS+= pkg-config
+
+PKGCONFIG_OVERRIDE_STAGE= pre-install
+PKGCONFIG_OVERRIDE+= output/meson-private/libseat.pc
+
+MESON_ARGS+= -Dlibseat-logind=disabled
+MESON_ARGS+= -Dlibseat-builtin=enabled
+
+SPECIAL_PERMS+= bin/seatd-launch ${SETUID_ROOT_PERMS}
+
+BUILDLINK_TRANSFORM+= rm:-Werror
+
+.include "../../devel/meson/build.mk"
+.include "../../textproc/scdoc/tool.mk"
+.include "../../mk/bsd.pkg.mk"
Index: pkgsrc/sysutils/seatd/PLIST
diff -u /dev/null pkgsrc/sysutils/seatd/PLIST:1.1
--- /dev/null Mon Apr 13 15:49:39 2026
+++ pkgsrc/sysutils/seatd/PLIST Mon Apr 13 15:49:39 2026
@@ -0,0 +1,9 @@
+@comment $NetBSD: PLIST,v 1.1 2026/04/13 15:49:39 kikadf Exp $
+bin/seatd
+bin/seatd-launch
+include/libseat.h
+lib/libseat.so
+lib/libseat.so.1
+lib/pkgconfig/libseat.pc
+man/man1/seatd-launch.1
+man/man1/seatd.1
Index: pkgsrc/sysutils/seatd/buildlink3.mk
diff -u /dev/null pkgsrc/sysutils/seatd/buildlink3.mk:1.1
--- /dev/null Mon Apr 13 15:49:39 2026
+++ pkgsrc/sysutils/seatd/buildlink3.mk Mon Apr 13 15:49:39 2026
@@ -0,0 +1,14 @@
+# $NetBSD: buildlink3.mk,v 1.1 2026/04/13 15:49:39 kikadf Exp $
+
+BUILDLINK_TREE+= seatd
+
+.if !defined(SEATD_BUILDLINK3_MK)
+SEATD_BUILDLINK3_MK:=
+
+BUILDLINK_API_DEPENDS.seatd+= seatd>=0.9.1
+BUILDLINK_ABI_DEPENDS.seatd+= seatd>=0.9.1
+BUILDLINK_PKGSRCDIR.seatd?= ../../sysutils/seatd
+
+.endif # SEATD_BUILDLINK3_MK
+
+BUILDLINK_TREE+= -seatd
Index: pkgsrc/sysutils/seatd/distinfo
diff -u /dev/null pkgsrc/sysutils/seatd/distinfo:1.1
--- /dev/null Mon Apr 13 15:49:39 2026
+++ pkgsrc/sysutils/seatd/distinfo Mon Apr 13 15:49:39 2026
@@ -0,0 +1,7 @@
+$NetBSD: distinfo,v 1.1 2026/04/13 15:49:39 kikadf Exp $
+
+BLAKE2s (seatd-0.9.3.tar.gz) = a6b1d4f78000dc7734606c7602c3dba3a917939323e00d10eb4b315f9e876aed
+SHA512 (seatd-0.9.3.tar.gz) = 8cb21cfbd9aa25966fe3f586de75d24a8625142ffb49e6ec357875c347d3e92d535467b817d79fdc704f80858a145f1107c488adbf22a1c337dbc6ccccc8b00a
+Size (seatd-0.9.3.tar.gz) = 42086 bytes
+SHA1 (patch-common_drm.c) = e52424f069d369aed0f4a9cb1332fca81b51eefe
+SHA1 (patch-common_terminal.c) = b397ffaad707f2f62258bcbb3178b8966acd830c
Index: pkgsrc/sysutils/seatd/patches/patch-common_drm.c
diff -u /dev/null pkgsrc/sysutils/seatd/patches/patch-common_drm.c:1.1
--- /dev/null Mon Apr 13 15:49:39 2026
+++ pkgsrc/sysutils/seatd/patches/patch-common_drm.c Mon Apr 13 15:49:39 2026
@@ -0,0 +1,50 @@
+$NetBSD: patch-common_drm.c,v 1.1 2026/04/13 15:49:39 kikadf Exp $
+
+* On NetBSD the setversion ioctl sets the busid, so without
+ setversion getunique will return with empty string, and
+ drmParseSubsystemType fails with -EINVAL
+
+--- common/drm.c.orig 2024-10-30 19:43:26.000000000 +0000
++++ common/drm.c
+@@ -9,12 +9,41 @@
+ #define DRM_IO(nr) _IO(DRM_IOCTL_BASE, nr)
+ #define DRM_IOCTL_SET_MASTER DRM_IO(0x1e)
+ #define DRM_IOCTL_DROP_MASTER DRM_IO(0x1f)
++#if defined(__NetBSD__)
++#include <errno.h>
++#include "log.h"
++struct drm_set_version {
++ int drm_di_major;
++ int drm_di_minor;
++ int drm_dd_major;
++ int drm_dd_minor;
++};
++#define DRM_IOWR(nr,type) _IOWR(DRM_IOCTL_BASE,nr,type)
++#define DRM_IOCTL_SET_VERSION DRM_IOWR(0x07, struct drm_set_version)
++#endif
+
+ #define STRLEN(s) ((sizeof(s) / sizeof(s[0])) - 1)
+ #define STR_HAS_PREFIX(prefix, s) (strncmp(prefix, s, STRLEN(prefix)) == 0)
+
+ int drm_set_master(int fd) {
++#if defined(__NetBSD__)
++ int ret;
++ struct drm_set_version sv;
++
++ if ((ret = ioctl(fd, DRM_IOCTL_SET_MASTER, 0)) == 0) {
++ sv.drm_di_major = 1;
++ sv.drm_di_minor = 4;
++ sv.drm_dd_major = -1;
++ sv.drm_dd_minor = -1;
++ if (ioctl(fd, DRM_IOCTL_SET_VERSION, &sv)) {
++ log_errorf("DRM_IOCTL_SET_VERSION failed: %s", strerror(errno));
++ }
++ }
++
++ return ret;
++#else
+ return ioctl(fd, DRM_IOCTL_SET_MASTER, 0);
++#endif
+ }
+
+ int drm_drop_master(int fd) {
Index: pkgsrc/sysutils/seatd/patches/patch-common_terminal.c
diff -u /dev/null pkgsrc/sysutils/seatd/patches/patch-common_terminal.c:1.1
--- /dev/null Mon Apr 13 15:49:39 2026
+++ pkgsrc/sysutils/seatd/patches/patch-common_terminal.c Mon Apr 13 15:49:39 2026
@@ -0,0 +1,76 @@
+$NetBSD: patch-common_terminal.c,v 1.1 2026/04/13 15:49:39 kikadf Exp $
+
+* Wsconsio patch from OpenBSD
+
+--- common/terminal.c.orig 2024-10-30 19:43:26.000000000 +0000
++++ common/terminal.c
+@@ -22,6 +22,7 @@
+ #define K_DISABLE K_RAW
+ #define FRSIG SIGIO
+ #elif defined(__NetBSD__)
++#include <dev/wscons/wsconsio.h>
+ #include <dev/wscons/wsdisplay_usl_io.h>
+ #define K_ENABLE K_XLATE
+ #define K_DISABLE K_RAW
+@@ -201,7 +202,19 @@ int terminal_set_process_switching(int f
+ .acqsig = enable ? SIGUSR2 : 0,
+ .frsig = FRSIG,
+ };
+-
++ struct vt_mode current_mode;
++ if (ioctl(fd, VT_GETMODE, ¤t_mode) == -1) {
++ log_errorf("Could not query VT mode for %d: %s",
++ fd, strerror(errno));
++ return -1;
++ }
++ if (current_mode.mode == mode.mode &&
++ current_mode.relsig == mode.relsig &&
++ current_mode.acqsig == mode.acqsig &&
++ current_mode.frsig == mode.frsig) {
++ log_debugf("%s: %d already in mode %d", __func__, fd, enable);
++ return 0;
++ }
+ if (ioctl(fd, VT_SETMODE, &mode) == -1) {
+ log_errorf("Could not set VT mode to %s process switching: %s",
+ enable ? "enable" : "disable", strerror(errno));
+@@ -242,11 +255,20 @@ int terminal_ack_acquire(int fd) {
+
+ int terminal_set_keyboard(int fd, bool enable) {
+ log_debugf("Setting KD keyboard state to %d", enable);
++#ifndef __NetBSD__
+ if (ioctl(fd, KDSKBMODE, enable ? K_ENABLE : K_DISABLE) == -1) {
+ log_errorf("Could not set KD keyboard mode to %s: %s",
+ enable ? "enabled" : "disabled", strerror(errno));
+ return -1;
+ }
++#else
++ int mode = enable ? WSKBD_RAW : WSKBD_TRANSLATED;
++ if (ioctl(fd, WSKBDIO_SETMODE, &mode) == -1) {
++ log_errorf("Could not set keyboard mode to %s: %s",
++ enable ? "translated" : "raw", strerror(errno));
++ return -1;
++ }
++#endif
+ #if defined(__FreeBSD__)
+ struct termios tios;
+ if (tcgetattr(fd, &tios) == -1) {
+@@ -269,10 +291,19 @@ int terminal_set_keyboard(int fd, bool e
+
+ int terminal_set_graphics(int fd, bool enable) {
+ log_debugf("Setting KD graphics state to %d", enable);
++#ifndef __NetBSD__
+ if (ioctl(fd, KDSETMODE, enable ? KD_GRAPHICS : KD_TEXT) == -1) {
+ log_errorf("Could not set KD graphics mode to %s: %s", enable ? "graphics" : "text",
+ strerror(errno));
+ return -1;
+ }
++#else
++ int mode = enable ? WSDISPLAYIO_MODE_MAPPED : WSDISPLAYIO_MODE_EMUL;
++ if (ioctl(fd, WSDISPLAYIO_SMODE, &mode) == -1) {
++ log_errorf("Could not set graphics mode to %s: %s", enable ? "mapped" : "emul",
++ strerror(errno));
++ return -1;
++ }
++#endif
+ return 0;
+ }
Home |
Main Index |
Thread Index |
Old Index