Sun Sep 2 09:53:14 2018 UTC ()
net/taskserver: import taskserver-1.1.0

Packaged for wip by esg@sdf.org.

Rename wip/taskd to net/taskserver to be consistent with time/taskwarrior.

The taskserver package provides a daemon to securely synchronize task data
over network.


(triaxx)
diff -r0 -r1.1 pkgsrc/net/taskserver/DESCR
diff -r0 -r1.1 pkgsrc/net/taskserver/MESSAGE
diff -r0 -r1.1 pkgsrc/net/taskserver/Makefile
diff -r0 -r1.1 pkgsrc/net/taskserver/PLIST
diff -r0 -r1.1 pkgsrc/net/taskserver/distinfo
diff -r0 -r1.1 pkgsrc/net/taskserver/files/taskd.sh
diff -r0 -r1.1 pkgsrc/net/taskserver/files/smf/manifest.xml
diff -r0 -r1.1 pkgsrc/net/taskserver/patches/patch-src_TLSServer.cpp

File Added: pkgsrc/net/taskserver/DESCR
The Taskserver is a lightweight, secure server providing multi-user,
multi-client access to task data. This allows true syncing between
desktop and mobile clients.

File Added: pkgsrc/net/taskserver/MESSAGE
===========================================================================
$NetBSD: MESSAGE,v 1.1 2018/09/02 09:53:14 triaxx Exp $

Be sure you initialize the ${PKGNAME} server in the TASKDDATA directory:

  export TASKDDATA=${TASKD_DATA}
  taskd init

Follow additional steps to configure the SSL certificates and keys on the
official website:

https://taskwarrior.org/docs/taskserver/configure.html

===========================================================================

File Added: pkgsrc/net/taskserver/Makefile
# $NetBSD: Makefile,v 1.1 2018/09/02 09:53:14 triaxx Exp $

DISTNAME=	taskd-1.1.0
PKGNAME=	${DISTNAME:S/taskd/taskserver/}
PKGREVISION=	2
CATEGORIES=	net
MASTER_SITES=	https://taskwarrior.org/download/

MAINTAINER=	esg@sdf.org
HOMEPAGE=	https://taskwarrior.org/download/
COMMENT=	Lightweight, secure server providing access to task data
LICENSE=	mit

USE_CMAKE=	yes
USE_LANGUAGES=	c c++

CMAKE_ARGS+=	-DTASKD_MAN1DIR=${PREFIX}/${PKGMANDIR}/man1
CMAKE_ARGS+=	-DTASKD_MAN5DIR=${PREFIX}/${PKGMANDIR}/man5

LDFLAGS.SunOS+=	-lsocket -lnsl

.include "../../mk/bsd.prefs.mk"
SMF_NAME=	taskd
TASKD_USER?=	taskd
TASKD_GROUP?=	taskd
TASKD_DATA?=	${VARBASE}/taskd
PKG_GROUPS=	${TASKD_GROUP}
PKG_USERS=	${TASKD_USER}:${TASKD_GROUP}
PKG_GROUPS_VARS=	TASKD_USER
PKG_USERS_VARS=	TASKD_GROUP
PKG_HOME.${TASKD_USER}=	${TASKD_DATA}

FILES_SUBST+=	TASKD_USER=${TASKD_USER} TASKD_GROUP=${TASKD_GROUP} \
		TASKD_DATA=${TASKD_DATA}
MESSAGE_SUBST+=	TASKD_DATA=${TASKD_DATA}

EGDIR=			${PREFIX}/share/examples/taskd
EGFILES+=		pki/README pki/generate pki/generate.ca \
			pki/generate.client pki/generate.crl \
			pki/generate.server pki/vars
INSTALLATION_DIRS+=	${EGDIR}/pki

BUILD_DEFS+=	TASKD_USER TASKD_GROUP TASKD_DATA VARBASE

REPLACE_SH=	src/taskdctl

MAKE_DIRS=		+	${TASKD_DATA}
OWN_DIRS_PERMS+=	${TASKD_DATA} ${TASKD_USER} ${TASKD_GROUP} 0750

RCD_SCRIPTS=	taskd

post-install:
.for file in ${EGFILES}
	${INSTALL_DATA} ${WRKSRC}/${file} ${DESTDIR}${EGDIR}/${file}
.endfor

.include "../../devel/libuuid/buildlink3.mk"
.include "../../security/gnutls/buildlink3.mk"
.include "../../mk/bsd.pkg.mk"

File Added: pkgsrc/net/taskserver/PLIST
@comment $NetBSD: PLIST,v 1.1 2018/09/02 09:53:14 triaxx Exp $
bin/taskd
bin/taskdctl
man/man1/taskd.1
man/man1/taskdctl.1
man/man5/taskdrc.5
share/doc/taskd/AUTHORS
share/doc/taskd/COPYING
share/doc/taskd/ChangeLog
share/doc/taskd/INSTALL
share/doc/taskd/NEWS
share/examples/taskd/pki/README
share/examples/taskd/pki/generate
share/examples/taskd/pki/generate.ca
share/examples/taskd/pki/generate.client
share/examples/taskd/pki/generate.crl
share/examples/taskd/pki/generate.server
share/examples/taskd/pki/vars

File Added: pkgsrc/net/taskserver/distinfo
$NetBSD: distinfo,v 1.1 2018/09/02 09:53:14 triaxx Exp $

SHA1 (taskd-1.1.0.tar.gz) = ded339deeee65277e4712f71a9159502f8b20b52
RMD160 (taskd-1.1.0.tar.gz) = f5256fda0de4dc46a4f09167666e81bed3452f69
SHA512 (taskd-1.1.0.tar.gz) = df2349c354258fd1b014b1a9c78f68dc10c9e5a48357e282e8a760cf4e4aaf4d36486796ad094ee2b050e7506195b778e3316c90ef543a2f8242de313daa13aa
Size (taskd-1.1.0.tar.gz) = 120115 bytes
SHA1 (patch-src_TLSServer.cpp) = 6e47c0ef59dc6c265539152b7abce75b5e518d45

File Added: pkgsrc/net/taskserver/files/taskd.sh
#!@RCD_SCRIPTS_SHELL@
#
# $NetBSD: taskd.sh,v 1.1 2018/09/02 09:53:14 triaxx Exp $
#

# PROVIDE: taskd
# REQUIRE: NETWORKING FILESYSTEMS
# BEFORE:  DAEMON

. /etc/rc.subr

name="taskd"
rcvar="${name}"
procname="@PREFIX@/bin/${name}"
command="@PREFIX@/bin/${name}ctl"
command_args="$1"
extra_commands="reload"
taskd_env="TASKDDATA=@TASKD_DATA@"
taskd_user="@TASKD_USER@"

if [ -f /etc/rc.subr -a -d /etc/rc.d -a -f /etc/rc.d/DAEMON ]; then 
  load_rc_config "${name}"
elif [ -f @PKG_SYSCONFDIR@/rc.conf ]; then
  . @PKG_SYSCONFDIR@/rc.conf
fi

run_rc_command "$1"

File Added: pkgsrc/net/taskserver/files/smf/manifest.xml
<?xml version='1.0'?>
<!DOCTYPE service_bundle SYSTEM '/usr/share/lib/xml/dtd/service_bundle.dtd.1'>
<service_bundle type='manifest' name='export'>
  <service name='@SMF_PREFIX@/@SMF_NAME@' type='service' version='0'>
    <dependency name='net-physical' grouping='require_all' restart_on='none' type='service'>
      <service_fmri value='svc:/network/physical'/>
    </dependency>
    <dependency name='filesystem' grouping='require_all' restart_on='none' type='service'>
      <service_fmri value='svc:/system/filesystem/local'/>
    </dependency>
    <exec_method name='start' type='method' exec='@PREFIX@/bin/taskd server --data %{config/taskdata}' timeout_seconds='0'/>
    <exec_method name='stop' type='method' exec=':kill' timeout_seconds='10'/>
    <exec_method name='refresh' type='method' exec=':kill -HUP' timeout_seconds='60'/>
    <property_group name='startd' type='framework'>
      <propval name='duration' type='astring' value='child'/>
      <propval name='ignore_error' type='astring' value='core,signal'/>
    </property_group>
    <instance name='default' enabled='false'>
      <method_context working_directory='@TASKD_DATA@'>
        <method_credential user="@TASKD_USER@" group="@TASKD_GROUP@" />
        <method_environment>
          <envvar name='PATH' value='@PREFIX@/bin:/opt/local/sbin:/usr/bin:/usr/sbin:/bin'/>
        </method_environment>
      </method_context>
      <property_group name='config' type='application'>
        <propval name='taskdata' type='astring' value='@TASKD_DATA@'/>
      </property_group>
    </instance>
    <stability value='Evolving'/>
    <template>
      <common_name>
        <loctext xml:lang='C'>The Taskserver is a server to access task data</loctext>
      </common_name>
    </template>
  </service>
</service_bundle>

File Added: pkgsrc/net/taskserver/patches/patch-src_TLSServer.cpp
$NetBSD: patch-src_TLSServer.cpp,v 1.1 2018/09/02 09:53:14 triaxx Exp $

errno.h is also required on NetBSD

--- src/TLSServer.cpp.orig	2015-05-10 21:35:22.000000000 +0000
+++ src/TLSServer.cpp
@@ -38,7 +38,7 @@
 #include <sys/socket.h>
 #include <netinet/in.h>
 #include <arpa/inet.h>
-#if (defined OPENBSD || defined SOLARIS)
+#if (defined OPENBSD || defined SOLARIS || defined NETBSD)
 #include <errno.h>
 #else
 #include <sys/errno.h>