From e016c366990c4258e10ec580947e2a702e409847 Mon Sep 17 00:00:00 2001 From: John Gebbie Date: Tue, 4 Oct 2022 17:50:42 +0100 Subject: [PATCH] New package: numen-0.1 --- srcpkgs/numen/files/numen/conf | 6 ++++ srcpkgs/numen/files/numen/control/t | 2 ++ srcpkgs/numen/files/numen/log/run | 2 ++ srcpkgs/numen/files/numen/run | 7 ++++ srcpkgs/numen/files/run | 10 ++++++ srcpkgs/numen/template | 50 +++++++++++++++++++++++++++++ 6 files changed, 77 insertions(+) create mode 100644 srcpkgs/numen/files/numen/conf create mode 100755 srcpkgs/numen/files/numen/control/t create mode 100755 srcpkgs/numen/files/numen/log/run create mode 100755 srcpkgs/numen/files/numen/run create mode 100644 srcpkgs/numen/files/run create mode 100644 srcpkgs/numen/template diff --git a/srcpkgs/numen/files/numen/conf b/srcpkgs/numen/files/numen/conf new file mode 100644 index 000000000000..f4ec56bcfb54 --- /dev/null +++ b/srcpkgs/numen/files/numen/conf @@ -0,0 +1,6 @@ +# Example to run numen as a specific user: + +# NUMENUSER=john +# export XAUTHORITY="/run/user/$(id -u $NUMENUSER)/Xauthority" +# export XDG_DATA_HOME="/home/$NUMENUSER/.local/share" +# OPTS=$(find "/home/$NUMENUSER/.config/numen/phrases/" -maxdepth 1 \! -type d) diff --git a/srcpkgs/numen/files/numen/control/t b/srcpkgs/numen/files/numen/control/t new file mode 100755 index 000000000000..eeeb1555652a --- /dev/null +++ b/srcpkgs/numen/files/numen/control/t @@ -0,0 +1,2 @@ +#!/bin/sh +pkill -P $(cat supervise/pid) diff --git a/srcpkgs/numen/files/numen/log/run b/srcpkgs/numen/files/numen/log/run new file mode 100755 index 000000000000..01131544c6d3 --- /dev/null +++ b/srcpkgs/numen/files/numen/log/run @@ -0,0 +1,2 @@ +#!/bin/sh +exec logger -p daemon.info -t numen diff --git a/srcpkgs/numen/files/numen/run b/srcpkgs/numen/files/numen/run new file mode 100755 index 000000000000..0f8f870dc1a2 --- /dev/null +++ b/srcpkgs/numen/files/numen/run @@ -0,0 +1,7 @@ +#!/bin/sh +exec 2>&1 +[ -r ./conf ] && . ./conf +: ${NUMENUSER:=_numen} +mkdir -p /usr/share/numen +chown $NUMENUSER:$NUMENUSER /usr/share/numen || exit +XDG_DATA_HOME="${XDG_DATA_HOME:-/usr/share}" exec chpst -u $NUMENUSER:input:audio /usr/bin/numen ${OPTS} diff --git a/srcpkgs/numen/files/run b/srcpkgs/numen/files/run new file mode 100644 index 000000000000..a21a244dad58 --- /dev/null +++ b/srcpkgs/numen/files/run @@ -0,0 +1,10 @@ +#!/bin/sh +cd /usr/libexec/numen || exit +if [ -z "$NUMEN_MODEL" ]; then + if [ -e /usr/share/vosk-models/small-en-us ]; then + export NUMEN_MODEL=/usr/share/vosk-models/small-en-us + else + echo 'numen: You need to install the vosk-model-small-en-us package or set $NUMEN_MODEL.' > /dev/stderr + fi +fi +exec ./numen "$@" diff --git a/srcpkgs/numen/template b/srcpkgs/numen/template new file mode 100644 index 000000000000..7f4719707d4e --- /dev/null +++ b/srcpkgs/numen/template @@ -0,0 +1,50 @@ +# Template file for 'numen' +pkgname=numen +version=0.1 +revision=1 +build_style=go +go_import_path="git.sr.ht/~geb/numen" +hostmakedepends="scdoc" +makedepends="vosk-api libgomp-devel" +depends="alsa-utils xdotool xset ydotool" +short_desc="Voice control for handsfree computing" +maintainer="John Gebbie " +license="GPL-3.0-only" +homepage="https://sr.ht/~geb/numen" +distfiles="https://git.sr.ht/~geb/numen/archive/${version}.tar.gz" +checksum=8829139beec06c1c661fb0edeae83bc43db84ae9be73463f203fd8e762f13e56 + +if [ "$XBPS_TARGET_LIBC" = musl ]; then + makedepends+=" libexecinfo-devel" +fi + +system_accounts="_numen" +_numen_groups="input audio" + +pre_build() { + # for the vosk-api package (openblas) + export CGO_LDFLAGS="$CGO_LDFLAGS -fopenmp" + + if [ "$XBPS_TARGET_LIBC" = musl ]; then + # for the vosk-api package (openfst) + export CGO_LDFLAGS="$CGO_LDFLAGS -lexecinfo" + fi +} + +post_install() { + vmkdir etc/numen + mv phrases "${DESTDIR}/etc/numen/phrases" + mv displaying "${DESTDIR}/usr/bin" + scdoc < numen.1.scd > numen.1 + vman numen.1 + + vmkdir usr/libexec/numen + mv "${DESTDIR}/usr/bin/numen" "${DESTDIR}/usr/libexec/numen/speech" + mv handlers "${DESTDIR}/usr/libexec/numen" + for f in *; do + if [ -f "$f" ] && [ -x "$f" ]; then + mv "$f" "${DESTDIR}/usr/libexec/numen/$f" + fi + done + vbin "${FILESDIR}/run" numen +}