summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorPablo Couto2015-04-23 02:03:50 +0200
committerPablo Couto2015-07-05 01:34:58 +0200
commit4c8f6a003c40cd67c6370ef6d5d0144e80682e1d (patch)
tree1a73d5aa0668c72fc84762bc716e80ccd3be8d79
parent48bd32f82c85f8c238da37b0fc262e6e8386b78e (diff)
downloadaur-4c8f6a003c40cd67c6370ef6d5d0144e80682e1d.tar.gz
taskd-git PKGBUILD from harleypig/abs@463a8ac
-rw-r--r--.gitignore7
-rw-r--r--PKGBUILD98
-rw-r--r--taskd.conf1
-rw-r--r--taskd.install50
-rw-r--r--taskd.notes35
-rw-r--r--taskd.service17
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
diff --git a/PKGBUILD b/PKGBUILD
index e69de29bb2d1..801ec7e1016e 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -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