Github messages for voidlinux
 help / color / mirror / Atom feed
From: classabbyamp <classabbyamp@users.noreply.github.com>
To: ml@inbox.vuxu.org
Subject: Re: [PR PATCH] [Updated] New package: turnstile-0.1.8
Date: Wed, 13 Sep 2023 00:55:09 +0200	[thread overview]
Message-ID: <20230912225509.oql-DljizjXbKg1tAwgvUFCOQMrNnxqmcm6fXOjJZXw@z> (raw)
In-Reply-To: <gh-mailinglist-notifications-41a7ca26-5023-4802-975b-f1789d68868e-void-packages-44676@inbox.vuxu.org>

[-- Attachment #1: Type: text/plain, Size: 741 bytes --]

There is an updated pull request by classabbyamp against master on the void-packages repository

https://github.com/classabbyamp/void-packages new/turnstile
https://github.com/void-linux/void-packages/pull/44676

New package: turnstile-0.1.8
WIP while i create the runit backend upstream ([mostly done](https://github.com/chimera-linux/turnstile/compare/master...classabbyamp:runit-backend))

#### Testing the changes
- I tested the changes in this PR: **YES**

#### New package
- This new package conforms to the [package requirements](https://github.com/void-linux/void-packages/blob/master/CONTRIBUTING.md#package-requirements): **YES**



A patch file from https://github.com/void-linux/void-packages/pull/44676.patch is attached

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-new/turnstile-44676.patch --]
[-- Type: text/x-diff, Size: 21200 bytes --]

From 4de5e26065636d8c314951bb400e7903f4dca756 Mon Sep 17 00:00:00 2001
From: classabbyamp <void@placeviolette.net>
Date: Tue, 11 Jul 2023 22:02:49 -0400
Subject: [PATCH 1/5] polkit: patch to support turnstile

---
 srcpkgs/polkit/patches/turnstile.patch | 57 ++++++++++++++++++++++++++
 srcpkgs/polkit/template                |  2 +-
 2 files changed, 58 insertions(+), 1 deletion(-)
 create mode 100644 srcpkgs/polkit/patches/turnstile.patch

diff --git a/srcpkgs/polkit/patches/turnstile.patch b/srcpkgs/polkit/patches/turnstile.patch
new file mode 100644
index 0000000000000..4f56ed130eefd
--- /dev/null
+++ b/srcpkgs/polkit/patches/turnstile.patch
@@ -0,0 +1,57 @@
+commit 8d98aa421b92765695af13c033cf7e80375c03fe
+Author: q66 <q66@chimera-linux.org>
+Date:   Sun Jul 2 15:44:51 2023 +0200
+
+    ensure turnstile-session processes fall back to display check
+    
+    As turnstile session is shared between sessions, let us fall back
+    to the check for whether a graphical session is in place. We need
+    this as our dbus session bus is managed through turnstile. In
+    systemd-using systems there is no problem because user units are
+    not a part of any explicit session (we don't get this luxury
+    because using a session is the only way to make sure our pid is
+    tracked in systemd at all; we need that to be able to resolve
+    PID to UID).
+
+diff --git a/src/polkitbackend/polkitbackendsessionmonitor-systemd.c b/src/polkitbackend/polkitbackendsessionmonitor-systemd.c
+index b00cdbd..9a3f3c3 100644
+--- a/src/polkitbackend/polkitbackendsessionmonitor-systemd.c
++++ b/src/polkitbackend/polkitbackendsessionmonitor-systemd.c
+@@ -346,7 +346,7 @@ polkit_backend_session_monitor_get_session_for_subject (PolkitBackendSessionMoni
+   PolkitUnixProcess *tmp_process = NULL;
+   PolkitUnixProcess *process = NULL;
+   PolkitSubject *session = NULL;
+-  char *session_id = NULL;
++  char *session_id = NULL, *service_id = NULL;
+   pid_t pid;
+ #if HAVE_SD_UID_GET_DISPLAY
+   uid_t uid;
+@@ -377,8 +377,26 @@ polkit_backend_session_monitor_get_session_for_subject (PolkitBackendSessionMoni
+ 
+   if (sd_pid_get_session (pid, &session_id) >= 0)
+     {
+-      session = polkit_unix_session_new (session_id);
+-      goto out;
++      /* if belonging to turnstile, ignore */
++      if (sd_session_get_service (session_id, &service_id) >= 0)
++        {
++          if (strcmp (service_id, "turnstiled"))
++            {
++              free (service_id);
++              session = polkit_unix_session_new (session_id);
++              goto out;
++            }
++          else
++            {
++              /* turnstile-managed processes are shared */
++              free(service_id);
++            }
++        }
++      else
++        {
++          session = polkit_unix_session_new (session_id);
++          goto out;
++        }
+     }
+ 
+ #if HAVE_SD_UID_GET_DISPLAY
diff --git a/srcpkgs/polkit/template b/srcpkgs/polkit/template
index 84ab7453bb9b6..0435e1ce5976b 100644
--- a/srcpkgs/polkit/template
+++ b/srcpkgs/polkit/template
@@ -1,7 +1,7 @@
 # Template file for 'polkit'
 pkgname=polkit
 version=121
-revision=1
+revision=2
 build_style=meson
 build_helper=gir
 configure_args="$(vopt_bool gir introspection) -Dman=true

From f7adb6d232648b4502271e12acebba66c65599c7 Mon Sep 17 00:00:00 2001
From: classabbyamp <void@placeviolette.net>
Date: Sun, 2 Jul 2023 22:04:40 -0400
Subject: [PATCH 2/5] pam-base: add turnstile pam

---
 srcpkgs/pam-base/files/system-login | 1 +
 srcpkgs/pam-base/template           | 2 +-
 2 files changed, 2 insertions(+), 1 deletion(-)

diff --git a/srcpkgs/pam-base/files/system-login b/srcpkgs/pam-base/files/system-login
index 2275deba480d3..72c4638f07d3f 100644
--- a/srcpkgs/pam-base/files/system-login
+++ b/srcpkgs/pam-base/files/system-login
@@ -14,6 +14,7 @@ session    optional   pam_loginuid.so
 session    include    system-auth
 session    optional   pam_motd.so          motd=/etc/motd
 session    optional   pam_mail.so          dir=/var/mail standard quiet
+-session   optional   pam_turnstile.so
 -session   optional   pam_elogind.so
 -session   optional   pam_dumb_runtime_dir.so
 session    required   pam_env.so
diff --git a/srcpkgs/pam-base/template b/srcpkgs/pam-base/template
index 70dfab9fa9965..38bfa74cd8856 100644
--- a/srcpkgs/pam-base/template
+++ b/srcpkgs/pam-base/template
@@ -1,7 +1,7 @@
 # Template file for 'pam-base'
 pkgname=pam-base
 version=0.4
-revision=2
+revision=3
 short_desc="PAM base configuration files"
 maintainer="Érico Nogueira <ericonr@disroot.org>"
 license="Public Domain"

From 442c1c54b2ede246e55950b3abdb4d2d675d32ff Mon Sep 17 00:00:00 2001
From: classabbyamp <void@placeviolette.net>
Date: Tue, 12 Sep 2023 18:54:27 -0400
Subject: [PATCH 3/5] gdm: patch pam files for turnstile

---
 srcpkgs/gdm/patches/pam-turnstile-elogind.patch | 17 +++++++++++++++++
 srcpkgs/gdm/template                            |  2 +-
 2 files changed, 18 insertions(+), 1 deletion(-)
 create mode 100644 srcpkgs/gdm/patches/pam-turnstile-elogind.patch

diff --git a/srcpkgs/gdm/patches/pam-turnstile-elogind.patch b/srcpkgs/gdm/patches/pam-turnstile-elogind.patch
new file mode 100644
index 0000000000000..21df9c826eacb
--- /dev/null
+++ b/srcpkgs/gdm/patches/pam-turnstile-elogind.patch
@@ -0,0 +1,17 @@
+1. pam_systemd doesn't exist on void, use pam_elogind instead
+   (this may have been the cause of some issues with elogind
+   not starting for GNOME users?)
+2. pam_turnstile allows turnstile to integrate with gdm
+
+See also: https://github.com/chimera-linux/cports/blob/master/main/gdm/patches/pam.patch
+
+--- a/data/pam-arch/gdm-launch-environment.pam
++++ b/data/pam-arch/gdm-launch-environment.pam
+@@ -13,5 +13,6 @@
+ session    optional                    pam_keyinit.so       force revoke
+ session    required                    pam_succeed_if.so    audit quiet_success user in gdm:gnome-initial-setup
+ session    optional                    pam_permit.so
+--session   optional                    pam_systemd.so
++-session   optional                    pam_turnstile.so
++-session   optional                    pam_elogind.so
+ session    required                    pam_env.so
diff --git a/srcpkgs/gdm/template b/srcpkgs/gdm/template
index f8990839198a2..8de7e48792c11 100644
--- a/srcpkgs/gdm/template
+++ b/srcpkgs/gdm/template
@@ -1,7 +1,7 @@
 # Template file for 'gdm'
 pkgname=gdm
 version=44.1
-revision=2
+revision=3
 build_helper="gir"
 build_style=meson
 configure_args="

From 6de3bca5bc82827088e2e6d7a5fb6c68c2ec12e5 Mon Sep 17 00:00:00 2001
From: classabbyamp <void@placeviolette.net>
Date: Tue, 12 Sep 2023 18:54:33 -0400
Subject: [PATCH 4/5] lightdm: patch pam files for turnstile

---
 .../patches/pam-turnstile-elogind.patch       | 32 +++++++++++++++++++
 srcpkgs/lightdm/template                      |  2 +-
 2 files changed, 33 insertions(+), 1 deletion(-)
 create mode 100644 srcpkgs/lightdm/patches/pam-turnstile-elogind.patch

diff --git a/srcpkgs/lightdm/patches/pam-turnstile-elogind.patch b/srcpkgs/lightdm/patches/pam-turnstile-elogind.patch
new file mode 100644
index 0000000000000..529531e294f94
--- /dev/null
+++ b/srcpkgs/lightdm/patches/pam-turnstile-elogind.patch
@@ -0,0 +1,32 @@
+1. pam_systemd doesn't exist on void, use pam_elogind instead
+2. pam_turnstile allows turnstile to integrate with lightdm
+
+See also: https://github.com/chimera-linux/cports/blob/master/main/gdm/patches/pam.patch
+
+--- a/data/pam/lightdm
++++ b/data/pam/lightdm
+@@ -17,4 +17,5 @@
+ 
+ # Setup session
+ session   required pam_unix.so
+-session   optional pam_systemd.so
++- session   optional pam_turnstile.so
++- session   optional pam_elogind.so
+--- a/data/pam/lightdm-autologin
++++ b/data/pam/lightdm-autologin
+@@ -19,4 +19,5 @@
+ 
+ # Setup session
+ session   required pam_unix.so
+-session   optional pam_systemd.so
++- session   optional pam_turnstile.so
++- session   optional pam_elogind.so
+--- a/data/pam/lightdm-greeter
++++ b/data/pam/lightdm-greeter
+@@ -14,4 +14,5 @@
+ 
+ # Setup session
+ session   required pam_unix.so
+-session   optional pam_systemd.so
++- session   optional pam_turnstile.so
++- session   optional pam_elogind.so
diff --git a/srcpkgs/lightdm/template b/srcpkgs/lightdm/template
index c1b6414ef63d9..9494fa4774407 100644
--- a/srcpkgs/lightdm/template
+++ b/srcpkgs/lightdm/template
@@ -1,7 +1,7 @@
 # Template file for 'lightdm'
 pkgname=lightdm
 version=1.32.0
-revision=4
+revision=5
 build_style=gnu-configure
 build_helper="gir"
 configure_args="--sbindir=/usr/bin --with-greeter-session=lightdm-gtk-greeter

From 40820c30f0d8a24235e6e9e9f6e5d05d94322f57 Mon Sep 17 00:00:00 2001
From: classabbyamp <void@placeviolette.net>
Date: Wed, 28 Jun 2023 05:10:55 -0400
Subject: [PATCH 5/5] New package: turnstile-0.1.8

---
 srcpkgs/turnstile/files/README.voidlinux |  50 +++++
 srcpkgs/turnstile/files/dbus.run         |  11 +
 srcpkgs/turnstile/files/turnstiled/run   |   4 +
 srcpkgs/turnstile/patches/runit.patch    | 256 +++++++++++++++++++++++
 srcpkgs/turnstile/template               |  24 +++
 5 files changed, 345 insertions(+)
 create mode 100644 srcpkgs/turnstile/files/README.voidlinux
 create mode 100755 srcpkgs/turnstile/files/dbus.run
 create mode 100644 srcpkgs/turnstile/files/turnstiled/run
 create mode 100644 srcpkgs/turnstile/patches/runit.patch
 create mode 100644 srcpkgs/turnstile/template

diff --git a/srcpkgs/turnstile/files/README.voidlinux b/srcpkgs/turnstile/files/README.voidlinux
new file mode 100644
index 0000000000000..32025131de7d6
--- /dev/null
+++ b/srcpkgs/turnstile/files/README.voidlinux
@@ -0,0 +1,50 @@
+# User Services
+
+User services can be placed in ~/.config/service/.
+
+To ensure that a subset of services are started before login can proceed,
+these services can be listed in ~/.config/service/turnstile-ready/conf, for
+example:
+
+	core_services="dbus foo"
+
+The turnstile-ready service is created by turnstile on first login.
+
+## Shared Environment for User Services
+
+To give user services access to important environment variables, chpst's
+envdir functionality can be used. See chpst(8) (-e flag) for more info.
+
+To make a service aware of these variables:
+
+	- exec foo
+	+ exec chpst -e "$TURNSTILE_ENV_DIR" foo
+
+Inside user services, the convenience variable "$TURNSTILE_ENV_DIR" can be used
+to refer to this directory.
+
+The helper script 'turnstile-update-runit-env' can be used to easily update
+variables in this shared envdir:
+
+	turnstile-update-runit-env DISPLAY XAUTHORITY FOO=bar BAZ=
+
+# D-Bus Session Bus
+
+If you want to manage dbus using a turnstile-managed runit user service:
+
+	mkdir ~/.config/service/dbus
+	ln -s /usr/share/examples/turnstile/dbus.run ~/.config/service/dbus/run
+
+# Elogind Replacement
+
+Turnstile is not (nor ever will be, according to the developer) a complete
+replacement for elogind, but it can replace several parts, including
+XDG_RUNTIME_DIR management.
+
+If using turnstile with elogind:
+- disable rundir management in /etc/turnstile/turnstiled.conf
+  (manage_rundir = no)
+
+If using turnstile without elogind:
+- install and enable seatd for seat management
+- install and enable acpid for lid switch/button handling
diff --git a/srcpkgs/turnstile/files/dbus.run b/srcpkgs/turnstile/files/dbus.run
new file mode 100755
index 0000000000000..dc7473e45fc52
--- /dev/null
+++ b/srcpkgs/turnstile/files/dbus.run
@@ -0,0 +1,11 @@
+#!/bin/sh
+
+[ -r ./conf ] && . ./conf
+
+: "${DBUS_SESSION_BUS_ADDRESS:=unix:path=/run/user/$(id -u)/bus}"
+
+if [ -d "$TURNSTILE_ENV_DIR" ]; then
+	echo "$DBUS_SESSION_BUS_ADDRESS" > "$TURNSTILE_ENV_DIR"/DBUS_SESSION_BUS_ADDRESS
+fi
+
+exec chpst -e "$TURNSTILE_ENV_DIR" dbus-daemon --session --nofork --nopidfile --address="$DBUS_SESSION_BUS_ADDRESS" $OPTS
diff --git a/srcpkgs/turnstile/files/turnstiled/run b/srcpkgs/turnstile/files/turnstiled/run
new file mode 100644
index 0000000000000..aa5d624fda19a
--- /dev/null
+++ b/srcpkgs/turnstile/files/turnstiled/run
@@ -0,0 +1,4 @@
+#!/bin/sh
+
+exec 2>&1
+exec turnstiled
diff --git a/srcpkgs/turnstile/patches/runit.patch b/srcpkgs/turnstile/patches/runit.patch
new file mode 100644
index 0000000000000..a8b5428c7b162
--- /dev/null
+++ b/srcpkgs/turnstile/patches/runit.patch
@@ -0,0 +1,256 @@
+From 5d13e06c4bcfd3e20ffe2d24b8ae589fa29bfe05 Mon Sep 17 00:00:00 2001
+From: classabbyamp <dev@placeviolette.net>
+Date: Wed, 28 Jun 2023 05:05:25 -0400
+Subject: [PATCH] add runit backend
+
+---
+ backend/meson.build                   | 25 ++++++++
+ backend/runit                         | 88 +++++++++++++++++++++++++++
+ backend/runit.conf                    | 16 +++++
+ backend/turnstile-update-runit-env.in | 31 ++++++++++
+ meson.build                           | 14 +++--
+ meson_options.txt                     | 10 +++
+ 6 files changed, 180 insertions(+), 4 deletions(-)
+ create mode 100644 backend/runit
+ create mode 100644 backend/runit.conf
+ create mode 100644 backend/turnstile-update-runit-env.in
+
+diff --git a/backend/meson.build b/backend/meson.build
+index 681e6a0..5a5b200 100644
+--- a/backend/meson.build
++++ b/backend/meson.build
+@@ -13,3 +13,28 @@ if have_dinit
+         install_mode: 'rw-r--r--'
+     )
+ endif
++
++# runit backend
++
++if have_runit
++    install_data(
++        'runit',
++        install_dir: join_paths(get_option('libexecdir'), 'turnstile'),
++        install_mode: 'rwxr-xr-x'
++    )
++
++    install_data(
++        'runit.conf',
++        install_dir: join_paths(get_option('sysconfdir'), 'turnstile/backend'),
++        install_mode: 'rw-r--r--'
++    )
++
++    configure_file(
++        input: 'turnstile-update-runit-env.in',
++        output: 'turnstile-update-runit-env',
++        configuration: conf_data,
++        install: true,
++        install_dir: get_option('bindir'),
++        install_mode: 'rwxr-xr-x'
++    )
++endif
+diff --git a/backend/runit b/backend/runit
+new file mode 100644
+index 0000000..a9d7454
+--- /dev/null
++++ b/backend/runit
+@@ -0,0 +1,88 @@
++#!/bin/sh
++#
++# This is the turnstile runit backend. It accepts the action as its first
++# argument, which is either "ready", "run", or "stop". In case of "run", it's
++# invoked directly through /bin/sh as if it was a login shell, and therefore
++# it has acccess to shell profile, and the shebang is functionally useless but
++# should be preserved as a convention. For "ready", it's a regular shell.
++#
++# Arguments for "ready":
++#
++# ready_sv: path to the readiness service
++#
++# Arguments for "run":
++#
++# ready_p:  readiness pipe (fifo). has the path to the ready service written to it.
++# srvdir:   unused
++# confdir:  the path where turnstile's configuration data resides, used
++#           to source the configuration file
++#
++# Arguments for "stop":
++#
++# pid:      the PID of the service manager to stop (gracefully); it should
++#           terminate the services it's running and then stop itself
++#
++# Copyright 2023 classabbyamp <dev@placeviolette.net>
++# License: BSD-2-Clause
++
++case "$1" in
++    run) ;;
++    ready)
++        if [ -z "$2" ] || [ ! -d "$2" ]; then
++            echo "runit: invalid readiness service '$2'" >&2
++            exit 69
++        fi
++        exec sv start "$2" >&2
++        ;;
++    stop)
++        # If runsvdir receives a HUP signal, it sends a TERM signal to each
++        # runsv(8) process it is monitoring and then exits with 111.
++        exec kill -s HUP "$2"
++        ;;
++    *)
++        exit 32
++        ;;
++esac
++
++RUNIT_READY_PIPE="$2"
++RUNIT_CONF="$4/runit.conf"
++
++if [ ! -p "$RUNIT_READY_PIPE" ]; then
++    echo "runit: invalid input argument(s)" >&2
++    exit 69
++fi
++
++if [ -z "$HOME" ] || [ ! -d "$HOME" ]; then
++    echo "runit: invalid home directory" >&2
++    exit 70
++fi
++
++shift $#
++
++# be strict
++set -e
++
++# source the conf
++[ -r "$RUNIT_CONF" ] && . "$RUNIT_CONF"
++
++# set some defaults in case the conf cannot be read or is mangled
++: "${ready_sv:="turnstile-ready"}"
++: "${services_dir:="${HOME}/.config/service"}"
++: "${service_env_dir:="${HOME}/.config/service-env"}"
++
++mkdir -p "${services_dir}/${ready_sv}" > /dev/null 2>&1
++mkdir -p "${service_env_dir}" > /dev/null 2>&1
++
++# this must succeed
++cat << EOF > "${services_dir}/${ready_sv}/run"
++#!/bin/sh
++[ -r ./conf ] && . ./conf
++[ -n "\$core_services" ] && SVDIR=".." sv start \$core_services
++[ -p "$RUNIT_READY_PIPE" ] && printf "${services_dir}/${ready_sv}" > "$RUNIT_READY_PIPE"
++exec pause
++EOF
++chmod +x "${services_dir}/${ready_sv}/run"
++
++exec env TURNSTILE_ENV_DIR="$service_env_dir" \
++    runsvdir -P "$services_dir" \
++    'log: ...........................................................................................................................................................................................................................................................................................................................................................................................................'
+diff --git a/backend/runit.conf b/backend/runit.conf
+new file mode 100644
+index 0000000..88a2d04
+--- /dev/null
++++ b/backend/runit.conf
+@@ -0,0 +1,16 @@
++# This is the configuration file for turnstile's runit backend.
++#
++# It follows the POSIX shell syntax (being sourced into a script).
++# The complete launch environment available to dinit can be used.
++#
++# It is a low-level configuration file. In most cases, it should
++# not be modified by the user.
++
++# the name of the service that turnstile will check for login readiness
++ready_sv="turnstile-ready"
++
++# the directory user service files are read from.
++services_dir="${HOME}/.config/service"
++
++# the environment variable directory user service files can read from.
++service_env_dir="${HOME}/.config/service-env"
+diff --git a/backend/turnstile-update-runit-env.in b/backend/turnstile-update-runit-env.in
+new file mode 100644
+index 0000000..9999459
+--- /dev/null
++++ b/backend/turnstile-update-runit-env.in
+@@ -0,0 +1,31 @@
++#!/bin/sh
++# Copyright 2023 classabbyamp <dev@placeviolette.net>
++# License: BSD-2-Clause
++
++usage() {
++	cat <<-EOF
++	turnstile-update-runit-env [VAR] ...
++	Updates values in the shared chpst(8) env dir.
++	
++	If VAR is a variable name, the value is taken from the environment.
++	If VAR is VAR=VAL, sets VAR to VAL.
++	EOF
++}
++
++. @CONF_PATH@/backend/runit.conf
++
++if [ $# -eq 0 ] || [ "$1" = "-h" ]; then
++	usage
++	exit 0
++fi
++
++for var; do
++	case "$var" in
++	*=*)
++		eval echo "${var#*=}" > "$service_env_dir/${var%%=*}"
++		;;
++	*)
++		eval echo '$'"$var" > "$service_env_dir/$var"
++		;;
++	esac
++done
+diff --git a/meson.build b/meson.build
+index 5f2e6f8..87f9d3b 100644
+--- a/meson.build
++++ b/meson.build
+@@ -22,6 +22,7 @@ scdoc_dep = dependency(
+ )
+ 
+ have_dinit = get_option('dinit').enabled()
++have_runit = get_option('runit').enabled()
+ 
+ conf_data = configuration_data()
+ conf_data.set_quoted('RUN_PATH', get_option('rundir'))
+@@ -101,10 +102,15 @@ install_data(
+ )
+ 
+ # decide the default backend
+-if have_dinit
+-    default_backend = 'dinit'
+-else
+-    default_backend = 'none'
++default_backend = get_option('default_backend')
++if default_backend == ''
++    if have_dinit
++        default_backend = 'dinit'
++    elif have_runit
++        default_backend = 'runit'
++    else
++        default_backend = 'none'
++    endif
+ endif
+ 
+ uconf_data = configuration_data()
+diff --git a/meson_options.txt b/meson_options.txt
+index 9b03995..4325042 100644
+--- a/meson_options.txt
++++ b/meson_options.txt
+@@ -3,6 +3,16 @@ option('dinit',
+     description: 'Whether to install Dinit-related backend and data'
+ )
+ 
++option('runit',
++    type: 'feature', value: 'disabled',
++    description: 'Whether to install runit-related backend and data'
++)
++
++option('default_backend',
++    type: 'string', value: '',
++    description: 'Override the default backend'
++)
++
+ option('rundir',
+     type: 'string', value: '/run',
+     description: 'Where the base directory will be located'
diff --git a/srcpkgs/turnstile/template b/srcpkgs/turnstile/template
new file mode 100644
index 0000000000000..9916832364699
--- /dev/null
+++ b/srcpkgs/turnstile/template
@@ -0,0 +1,24 @@
+# Template file for 'turnstile'
+pkgname=turnstile
+version=0.1.8
+revision=1
+build_style=meson
+configure_args="-Ddinit=disabled -Drunit=enabled -Ddefault_backend=runit
+ -Dmanage_rundir=true"
+hostmakedepends="pkg-config scdoc"
+makedepends="pam-devel"
+short_desc="Independent session/login tracker and user service manager"
+maintainer="classabbyamp <void@placeviolette.net>"
+license="BSD-2-Clause"
+homepage="https://github.com/chimera-linux/turnstile"
+distfiles="https://github.com/chimera-linux/turnstile/archive/refs/tags/v${version}.tar.gz"
+checksum=7eaab8c80c76ae9a9a711d7dc57ec346b9af09be99b526a5a3129a7fc9bd7a76
+conf_files="/etc/turnstile/turnstiled.conf"
+
+post_install() {
+	vsv turnstiled
+	vsconf "${FILESDIR}/dbus.run"
+	chmod +x "${DESTDIR}/usr/share/examples/turnstile/dbus.run"
+	vdoc "${FILESDIR}/README.voidlinux"
+	vlicense COPYING.md
+}

  parent reply	other threads:[~2023-09-12 22:55 UTC|newest]

Thread overview: 55+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-06-28  9:12 [PR PATCH] New package: turnstile-0.1.4 classabbyamp
2023-06-28 20:45 ` dkwo
2023-06-28 21:36 ` classabbyamp
2023-07-04  8:36 ` [PR PATCH] [Updated] " classabbyamp
2023-07-04  8:40 ` classabbyamp
2023-07-04  8:43 ` classabbyamp
2023-07-04  8:45 ` classabbyamp
2023-07-04  8:59 ` classabbyamp
2023-07-04  9:00 ` classabbyamp
2023-07-04  9:44 ` New package: turnstile-0.1.5 classabbyamp
2023-07-04  9:58 ` classabbyamp
2023-07-09 22:52 ` [PR PATCH] [Updated] " classabbyamp
2023-07-10 14:03 ` junkminerman
2023-07-10 16:37 ` classabbyamp
2023-07-10 16:55 ` classabbyamp
2023-07-10 17:59 ` junkminerman
2023-07-10 18:04 ` classabbyamp
2023-07-10 21:36 ` junkminerman
2023-07-10 21:44 ` classabbyamp
2023-07-11  9:01 ` junkminerman
2023-07-12  3:06 ` [PR PATCH] [Updated] " classabbyamp
2023-07-13 23:29 ` New package: turnstile-0.1.6 junkminerman
2023-07-25 17:27 ` [PR PATCH] [Updated] " classabbyamp
2023-09-08 10:47 ` classabbyamp
2023-09-08 10:56 ` classabbyamp
2023-09-08 11:04 ` [PR PATCH] [Closed]: New package: turnstile-0.1.8 classabbyamp
2023-09-08 11:05 ` classabbyamp
2023-09-08 12:58 ` dkwo
2023-09-08 14:13 ` classabbyamp
2023-09-09 22:21 ` [PR PATCH] [Updated] " classabbyamp
2023-09-09 22:23 ` classabbyamp
2023-09-10  0:02 ` classabbyamp
2023-09-11  8:19 ` dkwo
2023-09-12 22:55 ` classabbyamp [this message]
2023-09-12 23:09 ` classabbyamp
2023-09-26 17:44 ` dkwo
2023-09-26 18:04 ` dkwo
2023-09-26 18:06 ` classabbyamp
2023-09-26 18:09 ` classabbyamp
2023-09-26 20:15 ` dkwo
2023-09-26 21:15 ` dkwo
2023-09-26 21:16 ` dkwo
2023-09-26 21:25 ` classabbyamp
2023-09-26 21:40 ` dkwo
2023-09-26 21:41 ` dkwo
2023-12-26  1:45 ` github-actions
2023-12-26 17:52 ` [PR PATCH] [Updated] " classabbyamp
2023-12-26 17:54 ` classabbyamp
2023-12-26 19:05 ` dkwo
2023-12-26 19:24 ` classabbyamp
2024-01-16 19:42 ` dkwo
2024-01-16 20:08 ` classabbyamp
2024-03-22 20:31 ` [PR PATCH] [Updated] " classabbyamp
2024-03-22 21:02 ` classabbyamp
2024-03-22 21:11 ` [PR PATCH] [Merged]: " classabbyamp

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20230912225509.oql-DljizjXbKg1tAwgvUFCOQMrNnxqmcm6fXOjJZXw@z \
    --to=classabbyamp@users.noreply.github.com \
    --cc=ml@inbox.vuxu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).