diff options
author | Steven Kreuzer <skreuzer@FreeBSD.org> | 2016-08-11 16:06:51 +0000 |
---|---|---|
committer | Steven Kreuzer <skreuzer@FreeBSD.org> | 2016-08-11 16:06:51 +0000 |
commit | d830ec9925a7e1171a61bead7b592552ffd4705f (patch) | |
tree | a5a8b1f62e6956aa4a1bab0c8deb26ff0ec8f764 | |
parent | d46d497ab78671c63a0ca6e2acf11127e25ec073 (diff) | |
download | ports-d830ec9925a7e1171a61bead7b592552ffd4705f.tar.gz ports-d830ec9925a7e1171a61bead7b592552ffd4705f.zip |
Add a rc script and have taskd run as an unprivileged user
PR: 204757
Submitted by: Ike Eichorn <ike@michaeleichorn.com>
Notes
Notes:
svn path=/head/; revision=420083
-rw-r--r-- | GIDs | 2 | ||||
-rw-r--r-- | UIDs | 2 | ||||
-rw-r--r-- | deskutils/taskd/Makefile | 32 | ||||
-rw-r--r-- | deskutils/taskd/files/taskd.in | 35 | ||||
-rw-r--r-- | deskutils/taskd/pkg-message | 22 | ||||
-rw-r--r-- | deskutils/taskd/pkg-plist | 14 |
6 files changed, 88 insertions, 19 deletions
@@ -557,7 +557,7 @@ freeswitch:*:610: # free: 613 # free: 614 ntpa:*:615: -# free: 616 +taskd:*:616: # free: 617 # free: 618 # free: 619 @@ -562,7 +562,7 @@ freeswitch:*:610:610::0:0:Freeswitch user:/nonexistent:/usr/sbin/nologin # free: 613 # free: 614 ntpa:*:615:615::0:0:NTPa user:/nonexistent:/usr/sbin/nologin -# free: 616 +taskd:*:616:616::0:0:taskd user:/nonexistent:/usr/sbin/nologin # free: 617 # free: 618 # free: 619 diff --git a/deskutils/taskd/Makefile b/deskutils/taskd/Makefile index 318b7c0e5179..29576f281e12 100644 --- a/deskutils/taskd/Makefile +++ b/deskutils/taskd/Makefile @@ -3,7 +3,7 @@ PORTNAME= taskd PORTVERSION= 1.1.0 -PORTREVISION= 2 +PORTREVISION= 3 CATEGORIES= deskutils MASTER_SITES= http://taskwarrior.org/download/ @@ -16,6 +16,19 @@ LIB_DEPENDS= libgnutls.so:security/gnutls RUN_DEPENDS= bash:shells/bash USES= cmake:outsource compiler:c++11-lib shebangfix +USE_RC_SUBR= taskd + +USERS= taskd +GROUPS= taskd + +TASKD_DBDIR?= /var/db/${PORTNAME} + +PLIST_SUB+= TASKD_DBDIR="${TASKD_DBDIR}" \ + TASKD_USER="${USERS}" \ + TASKD_GROUP="${GROUPS}" + +SUB_LIST+= TASKD_DBDIR="${TASKD_DBDIR}" + SHEBANG_FILES= demo/client/case* \ demo/client/malformed* \ demo/client/run \ @@ -33,25 +46,10 @@ SHEBANG_FILES= demo/client/case* \ CFLAGS+= -g -O0 -PLIST_FILES= bin/taskd \ - bin/taskdctl \ - man/man1/taskd.1.gz \ - man/man1/taskdctl.1.gz \ - man/man5/taskdrc.5.gz \ - share/taskd/README \ - share/taskd/generate \ - share/taskd/generate.ca \ - share/taskd/generate.client \ - share/taskd/generate.crl \ - share/taskd/generate.server \ - share/taskd/vars - PORTDOCS= * post-install: (cd ${WRKSRC}/pki && ${COPYTREE_SHARE} . ${STAGEDIR}${DATADIR}) -.for s in generate generate.ca generate.client generate.crl generate.server - ${CHMOD} 755 ${STAGEDIR}${DATADIR}/${s} -.endfor + ${MKDIR} ${STAGEDIR}${TASKD_DBDIR} .include <bsd.port.mk> diff --git a/deskutils/taskd/files/taskd.in b/deskutils/taskd/files/taskd.in new file mode 100644 index 000000000000..11c2403d50a1 --- /dev/null +++ b/deskutils/taskd/files/taskd.in @@ -0,0 +1,35 @@ +#!/bin/sh + +# $FreeBSD$ +# +# PROVIDE: taskd +# REQUIRE: LOGIN +# KEYWORD: shutdown +# +# Add these lines to /etc/rc.conf.local or /etc/rc.conf +# to enable this service: +# +# taskd_enable (bool): Set to NO by default. +# Set it to YES to enable taskd. +# taskd_data (path): Set to %%TASKD_DBDIR%% by default. +# Taskd data directory (TASKDDATA) +# taskd_user (str): Set to taskd by default. +# User to run taskd as. + +. /etc/rc.subr + +name=taskd +rcvar=taskd_enable + +load_rc_config $name + +: ${taskd_enable="NO"} +: ${taskd_data="%%TASKD_DBDIR%%"} +: ${taskd_user="taskd"} + +command=%%PREFIX%%/bin/${name} +pidfile=$(${command} config --data $taskd_data | awk '/pid.file/ {print $2}') + +command_args="server --data $taskd_data --daemon" + +run_rc_command "$1" diff --git a/deskutils/taskd/pkg-message b/deskutils/taskd/pkg-message new file mode 100644 index 000000000000..b011b012a60c --- /dev/null +++ b/deskutils/taskd/pkg-message @@ -0,0 +1,22 @@ +======================================================================= +taskd requires user directed configuration prior to use. + +See taskwarrior.org/docs/taskserver/configure.html for configuration +information. The generate script has been installed to +/usr/local/share/taskd. + +After completing configuration to start taskd at system startup add +taskd_enable="YES" to rc.conf. If you configured taskd with a TASKDDATA +other than /var/db/taskd you will also need to set taskd_data in rc.conf +to that path. + +The rc script will start taskd as the unprivileged user taskd, this +requires that your TASKDDATA directory and /var/log/taskd.log be owned +by taskd:taskd. If you prefer to use another user specify this in +rc.conf using taskd_user. + +To add users see: taskwarrior.org/docs/taskserver/user.html + +To configure taskwarrior to use your taskd server see: +taskwarrior.org/docs/taskserver/taskwarrior.html +======================================================================= diff --git a/deskutils/taskd/pkg-plist b/deskutils/taskd/pkg-plist new file mode 100644 index 000000000000..4f311dfd27dc --- /dev/null +++ b/deskutils/taskd/pkg-plist @@ -0,0 +1,14 @@ +bin/taskd +bin/taskdctl +man/man1/taskd.1.gz +man/man1/taskdctl.1.gz +man/man5/taskdrc.5.gz +share/taskd/README +@mode 0755 +%%DATADIR%%/generate +%%DATADIR%%/generate.ca +%%DATADIR%%/generate.client +%%DATADIR%%/generate.crl +%%DATADIR%%/generate.server +%%DATADIR%%/vars +@dir(%%TASKD_USER%%,%%TASKD_GROUP%%,) %%TASKD_DBDIR%% |