diff options
author | Pablo Couto | 2015-04-23 02:03:50 +0200 |
---|---|---|
committer | Pablo Couto | 2015-07-05 01:34:58 +0200 |
commit | 4c8f6a003c40cd67c6370ef6d5d0144e80682e1d (patch) | |
tree | 1a73d5aa0668c72fc84762bc716e80ccd3be8d79 | |
parent | 48bd32f82c85f8c238da37b0fc262e6e8386b78e (diff) | |
download | aur-4c8f6a003c40cd67c6370ef6d5d0144e80682e1d.tar.gz |
taskd-git PKGBUILD from harleypig/abs@463a8ac
-rw-r--r-- | .gitignore | 7 | ||||
-rw-r--r-- | PKGBUILD | 98 | ||||
-rw-r--r-- | taskd.conf | 1 | ||||
-rw-r--r-- | taskd.install | 50 | ||||
-rw-r--r-- | taskd.notes | 35 | ||||
-rw-r--r-- | taskd.service | 17 |
6 files changed, 208 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore index e69de29bb2d1..d15d618e8cb7 100644 --- a/.gitignore +++ b/.gitignore @@ -0,0 +1,7 @@ +* +!.gitignore +!PKGBUILD +!taskd.conf +!taskd.install +!taskd.notes +!taskd.service @@ -0,0 +1,98 @@ +# Maintainer: Alan Young <harleypig@gmail.com> +# +# Stolen and modified from https://aur.archlinux.org/packages/taskd-git/ +# +# Found and stole various bits and pieces from +# +# http://threebean.org/rpm/taskd-config +# http://threebean.org/rpm/taskd.service +# http://threebean.org/rpm/taskd.spec + +_pkgname=taskd +pkgname=$_pkgname-git +pkgver=1.1.0 +pkgrel=1 +pkgdesc="A lightweight, secure server providing multi-user, multi-client access to task data" + +arch=('i686' 'x86_64') +depends=('gnutls') +license=('MIT') +makedepends=('git' 'cmake') +provides=('taskd') +url='http://tasktools.org/projects/taskd.html' + +install=taskd.install + +source=('git+https://git.tasktools.org/scm/tm/taskd.git' + 'taskd.conf' + 'taskd.notes' + 'taskd.service') + +md5sums=('SKIP' + '8e644fd70bea84c8fabe8a24e26a4549' + '455f7ef0c9c5ed292f82b4864ef56aef' + '7e2f6b38ea5b03a75611d20b1add4d3f') + +#pkgver() { +# +# # https://wiki.archlinux.org/index.php/VCS_PKGBUILD_Guidelines#Git +# +# cd "${srcdir}/${_pkgname}" +# #git describe --tags | sed -E 's/([^-]*-g)/r\1/;s/-/./g' +# #git describe --long --tags | sed -r 's/([^-]*-g)/r\1/;s/-/./g' +# git describe --long --tags | sed -r 's/^[^[:digit:]]+//;s/([^-]*-g)/r\1/;s/-/./g' +# +#} + +build() { + + cd "${srcdir}/${_pkgname}" + + cmake_opts="${cmake_opts} -DCMAKE_BUILD_TYPE=Release" + cmake_opts="${cmake_opts} -DTASKD_BINDIR=/usr/bin" + cmake_opts="${cmake_opts} -DTASKD_DOCDIR=/usr/share/doc/taskd" + cmake_opts="${cmake_opts} -DTASKD_MAN1DIR=/usr/share/man/man1" + cmake_opts="${cmake_opts} -DTASKD_MAN5DIR=/usr/share/man/man5" + + cmake $cmake_opts . + + make + +} + +check() { + + cd "${srcdir}/${_pkgname}" + make test + cd test + make + ./run_all + +} + +package() { + + cd "${srcdir}/${_pkgname}" + + make DESTDIR="${pkgdir}" install + + install -Dm644 doc/client.txt "${pkgdir}/usr/share/doc/taskd" + install -Dm644 doc/extensions.txt "${pkgdir}/usr/share/doc/taskd" + install -Dm644 doc/operation.txt "${pkgdir}/usr/share/doc/taskd" + install -Dm644 doc/protocol.txt "${pkgdir}/usr/share/doc/taskd" + install -Dm644 doc/request.txt "${pkgdir}/usr/share/doc/taskd" + install -Dm644 doc/sync.txt "${pkgdir}/usr/share/doc/taskd" + install -Dm644 doc/task.txt "${pkgdir}/usr/share/doc/taskd" + install -Dm644 doc/template.txt "${pkgdir}/usr/share/doc/taskd" + install -Dm644 LICENSE "${pkgdir}/usr/share/licenses/taskd/LICENSE" + install -Dm644 ../taskd.conf "${pkgdir}/etc/conf.d/taskd" + install -Dm644 ../taskd.service "${pkgdir}/usr/lib/systemd/system/taskd.service" + install -Dm644 ../taskd.notes "${pkgdir}/usr/lib/taskd/taskd.notes" + install -Dm755 pki/generate.ca "${pkgdir}/usr/lib/taskd/pki/generate.ca" + install -Dm755 pki/generate.client "${pkgdir}/usr/lib/taskd/pki/generate.client" + install -Dm755 pki/generate.crl "${pkgdir}/usr/lib/taskd/pki/generate.crl" + install -Dm755 pki/generate "${pkgdir}/usr/lib/taskd/pki/generate" + install -Dm755 pki/generate.server "${pkgdir}/usr/lib/taskd/pki/generate.server" + install -Dm644 pki/README "${pkgdir}/usr/lib/taskd/pki/README" + +} diff --git a/taskd.conf b/taskd.conf index e69de29bb2d1..7f030bcf12e1 100644 --- a/taskd.conf +++ b/taskd.conf @@ -0,0 +1 @@ +TASKDDATA=/var/lib/taskd diff --git a/taskd.install b/taskd.install index e69de29bb2d1..34bfdd2ee7ed 100644 --- a/taskd.install +++ b/taskd.install @@ -0,0 +1,50 @@ +# See https://github.com/torrancew/arch-taskd/blob/master/taskd.install for +# possible theiving purposes, especially a way to do a basic config. + +pre_install() { + + # add taskd group if it doesn't exist + getent group taskd > /dev/null || groupadd -r taskd + + # add taskd user if it doesn't exist + getent passwd taskd > /dev/null || \ + useradd -r -g taskd -s /sbin/nologin \ + -c "Task Server system user" taskd + + install -o$(id -g taskd) -g$(id -u taskd) -m2770 -d "${pkgdir}/var/lib/taskd" + +} + +post_install() { + + systemctl preset taskd.service + +} + +pre_upgrade() { + + pre_install + +} + +post_upgrade() { + + post_install + +} + +pre_remove() { + + systemctl --no-reload disable taskd.service + systemctl stop taskd.service + +} + +post_remove() { + + getent passwd taskd > /dev/null && userdel taskd > /dev/null + getent group taskd > /dev/null && groupdel taskd > /dev/null + + systemctl daemon-reload + +} diff --git a/taskd.notes b/taskd.notes index e69de29bb2d1..02dbf40e8556 100644 --- a/taskd.notes +++ b/taskd.notes @@ -0,0 +1,35 @@ +# Reference http://taskwarrior.org/docs/server_setup.html + +# Add the taskd group to your user and logout and back in. +# sudo usermod -a -G taskd $USER + +# Source the environment variable(s). +export $(cat /etc/conf.d/taskd) + +# Initialize the database +taskd init + +# Add the organization +taskd add org Public + +# Add your user +task add user 'Public' 'Your Name' > ~/taskd.key + +# Generate and install your self-signed cert +cd /usr/lib/taskd/pki +sudo ./generate +sudo mv *.pem $TASKDDATA +chown -R taskd. $TASKDDATA + +taskd config --force client.cert $TASKDDATA/client.cert.pem +taskd config --force client.key $TASKDDATA/client.key.pem +taskd config --force server.cert $TASKDDATA/server.cert.pem +taskd config --force server.key $TASKDDATA/server.key.pem +taskd config --force server.crl $TASKDDATA/server.crl.pem +taskd config --force ca.cert $TASKDDATA/ca.cert.pem + +# Various settings +taskd config --force log $TASKDDATA/taskd.log +taskd config --force pid.file $TASKDDATA/taskd.pid +taskd config --force server localhost:53859 +taskd config --force client.allow '^task [2-9]' diff --git a/taskd.service b/taskd.service new file mode 100644 index 000000000000..4e9fbe8f2227 --- /dev/null +++ b/taskd.service @@ -0,0 +1,17 @@ +[Unit] +Description=A secure server providing multi-client access to task data +Documentation=man:taskd(1) +After=network.target + +[Service] +EnvironmentFile=/etc/conf.d/taskd +ExecReload=/usr/bin/taskdctl graceful +ExecStart=/usr/bin/taskdctl start +ExecStop=/usr/bin/taskdctl stop +PIDFile=/var/lib/taskd/taskd.pid +Group=taskd +User=taskd +Type=forking + +[Install] +WantedBy=multi-user.target |