Any further feedback, or is this ready for commit? --Aaron
On 2020-14-10 19:35 -0500, Aaron Poffenberger <a...@hypernote.com> wrote: > Revisions based on feedback from Stuart: > > - Revert logging (DEBUG=1 isn't useful for upstream anyhow) > - Revise README to make commands easier to copy/paste, and other fixes > - Add section on rebuilding with effective debugging levels and notes > on creating the log file > > --Aaron > > On 2020-14-10 22:07 +0100, Stuart Henderson <s...@spacehopper.org> wrote: > > On 2020/10/14 14:38, Aaron Poffenberger wrote: > > > + chown www:www ${WRKINST}${VARBASE}/www/logs/kcaldav-system.log > > > > chown is a noop here (builds are done as non-root) > > > > or, seeing as users need to follow the pkg-readme for setup anyway, > > tell them to do it there. > > Removed, commented in README. > > > > + $ doas chmod 640 /var/www/caldav/kcaldav.db > > > > pkg-readmes are mixed, but for something like this which is > > likely to be largely copy-and-pasted it's easier without the prefix > > Fixed throughout. > > > > + Remember to enable and start slowcgi(8). See rcctl(8). > > > > might as well show the rcctl commands? > > Done > > > > + > > > kcaldav.cgi uses http authentication for user security. > > > Install a tls certificate to ensure privacy of connection. > > > + See ssl(8) for details. > > > > "tls certificate" nitpicking that should X.509 certificate, > > and ssl(8) is not really helpful for the common case where somebody > > just uses a letsencrypt client - might be better to say something > > like this and leave it at that? needs more than just a certificate > > installing, and the exact details depends on the type of webserver. > > > > kcaldav.cgi uses http authentication for user security. > > Make sure your web server is configured to use https to ensure > > privacy of connection. > > Done > > > > User Quick Start > > > ================ > > > - Users can manage their account settings, create calendars > > > + Users can manage their account settings, create calendars, > > > and find the URL for use with their calendar application > > > - by browsing to: https://localhost/kcaldav/home.html > > > + by browsing to: > > > + > > > + https://example.org/kcaldav/home.html > > > + > > > + The URL will look like: > > > + > > > + https://example.org:/cgi-bin/kcaldav/<username>/ > > > + > > > > stray : ? probably breaks some client or other ;) > > This one perplexed me also. The kcaldav user page has that syntax. > My client normalized the url to remove the colon, so I removed it > from the example as well. > > --Aaron > > > Index: Makefile > =================================================================== > RCS file: /cvs/ports/www/kcaldav/Makefile,v > retrieving revision 1.17 > diff -u -p -r1.17 Makefile > --- Makefile 1 Feb 2020 20:44:16 -0000 1.17 > +++ Makefile 14 Oct 2020 22:14:11 -0000 > @@ -2,8 +2,7 @@ > > COMMENT = a simple, safe, and minimal CalDAV server > > -DISTNAME = kcaldav-0.1.11 > -REVISION = 0 > +DISTNAME = kcaldav-0.2.0 > CATEGORIES = www > > HOMEPAGE = https://kristaps.bsd.lv/kcaldav/ > @@ -13,7 +12,7 @@ MAINTAINER = Aaron Poffenberger <akp@hy > PERMIT_PACKAGE = Yes > > # "make port-lib-depends-check" can help > -WANTLIB += c expat m sqlite3 pthread > +WANTLIB += c expat m sqlite3 > > MASTER_SITES = https://kristaps.bsd.lv/kcaldav/snapshots/ > EXTRACT_SUFX = .tgz > @@ -21,21 +20,18 @@ EXTRACT_SUFX = .tgz > BUILD_DEPENDS = www/kcgi > LIB_DEPENDS = databases/sqlite3 > > -CONFIGURE_STYLE = simple > -USE_GMAKE = Yes > -CONFIGURE_ARGS = CPPFLAGS="-I${LOCALBASE}/include" \ > - LDFLAGS="-L${LOCALBASE}/lib" > - > FAKE_FLAGS = PREFIX=${WRKINST}${TRUEPREFIX} \ > HTDOCSPREFIX=${VARBASE}/www/htdocs/kcaldav \ > CGIPREFIX=${VARBASE}/www/cgi-bin \ > CALPREFIX=${VARBASE}/www/caldav > > -# no doc on how to run tests > -NO_TEST = Yes > +CONFIGURE_STYLE = simple > +CONFIGURE_ARGS = CPPFLAGS="-I${LOCALBASE}/include" \ > + LDFLAGS="-L${LOCALBASE}/lib" > > ALL_TARGET = all libkcaldav.a > INSTALL_TARGET = install installcgi > +TEST_TARGET = regress > > post-install: > ln -s kcaldav ${WRKINST}${VARBASE}/www/cgi-bin/kcaldav.cgi > Index: distinfo > =================================================================== > RCS file: /cvs/ports/www/kcaldav/distinfo,v > retrieving revision 1.6 > diff -u -p -r1.6 distinfo > --- distinfo 17 Nov 2019 09:28:23 -0000 1.6 > +++ distinfo 14 Oct 2020 16:59:33 -0000 > @@ -1,2 +1,2 @@ > -SHA256 (kcaldav-0.1.11.tgz) = kdhMkW/oZWZemKDP+eSmDzqYB5nH9Pj2Rj2bhLeVerk= > -SIZE (kcaldav-0.1.11.tgz) = 91960 > +SHA256 (kcaldav-0.2.0.tgz) = ajCsg1iuhu33r7YG1dXXKFzVsQYxTbtz8zqLmChTyvQ= > +SIZE (kcaldav-0.2.0.tgz) = 291932 > Index: patches/patch-Makefile > =================================================================== > RCS file: /cvs/ports/www/kcaldav/patches/patch-Makefile,v > retrieving revision 1.6 > diff -u -p -r1.6 patch-Makefile > --- patches/patch-Makefile 1 Feb 2020 20:44:16 -0000 1.6 > +++ patches/patch-Makefile 15 Oct 2020 00:13:07 -0000 > @@ -1,25 +1,14 @@ > -$OpenBSD: patch-Makefile,v 1.6 2020/02/01 20:44:16 jung Exp $ > +$OpenBSD$ > > Index: Makefile > --- Makefile.orig > +++ Makefile > -@@ -27,8 +27,8 @@ HTDOCS = /kcaldav > - > - # This is the file-system directory of HTDOCS. > - # I'm pretty sure you want to override this... > --HTDOCSPREFIX = /var/www/vhosts/www.bsd.lv/htdocs/kcaldav > --#HTDOCSPREFIX = /var/www/htdocs > -+#HTDOCSPREFIX = /var/www/vhosts/www.bsd.lv/htdocs/kcaldav > -+HTDOCSPREFIX = /var/www/htdocs/kcaldav > - > - # File-system directory where "installwww" installs. > - # You probably aren't going to use that! > -@@ -150,7 +150,7 @@ VERSION = 0.1.11 > +@@ -144,7 +144,7 @@ VERSION = 0.2.0 > CFLAGS += -DCALDIR=\"$(CALDIR)\" > - CFLAGS += -DHTDOCS=\"$(HTDOCS)\" > + CFLAGS += -DCALPREFIX=\"$(CALPREFIX)\" > CFLAGS += -DVERSION=\"$(VERSION)\" > -CFLAGS += -DLOGFILE=\"$(LOGFILE)\" > +#CFLAGS += -DLOGFILE=\"$(LOGFILE)\" > BHTMLS = collection.html \ > home.html > - DOTFLAGS = -h "BGCOLOR=\"red\"" \ > + > Index: patches/patch-kcaldav_sql > =================================================================== > RCS file: /cvs/ports/www/kcaldav/patches/patch-kcaldav_sql,v > retrieving revision 1.2 > diff -u -p -r1.2 patch-kcaldav_sql > --- patches/patch-kcaldav_sql 8 Apr 2018 08:29:22 -0000 1.2 > +++ patches/patch-kcaldav_sql 14 Oct 2020 17:04:10 -0000 > @@ -4,7 +4,7 @@ Index: kcaldav.sql > --- kcaldav.sql.orig > +++ kcaldav.sql > @@ -1,4 +1,3 @@ > --PRAGMA journal_mode = WAL; > +-PRAGMA journal_mode=WAL; > PRAGMA foreign_keys=ON; > > -- A resource is a ``file'' managed by the CalDAV server. > Index: pkg/PLIST > =================================================================== > RCS file: /cvs/ports/www/kcaldav/pkg/PLIST,v > retrieving revision 1.5 > diff -u -p -r1.5 PLIST > --- pkg/PLIST 1 Feb 2020 20:44:16 -0000 1.5 > +++ pkg/PLIST 14 Oct 2020 22:13:07 -0000 > @@ -3,7 +3,11 @@ > include/libkcaldav.h > @static-lib lib/libkcaldav.a > @man man/man1/kcaldav.passwd.1 > -@man man/man3/libkcaldav.3 > +@man man/man3/caldav_free.3 > +@man man/man3/caldav_parse.3 > +@man man/man3/ical_free.3 > +@man man/man3/ical_parse.3 > +@man man/man3/ical_print.3 > @man man/man8/kcaldav.8 > share/doc/pkg-readmes/${PKGSTEM} > @cwd /var/www > @@ -21,6 +25,4 @@ htdocs/kcaldav/collection.html > htdocs/kcaldav/collection.min.js > htdocs/kcaldav/home.html > htdocs/kcaldav/home.min.js > -htdocs/kcaldav/md5.min.js > -htdocs/kcaldav/script.min.js > htdocs/kcaldav/style.css > Index: pkg/README > =================================================================== > RCS file: /cvs/ports/www/kcaldav/pkg/README,v > retrieving revision 1.5 > diff -u -p -r1.5 README > --- pkg/README 4 Sep 2018 12:46:24 -0000 1.5 > +++ pkg/README 15 Oct 2020 00:22:14 -0000 > @@ -1,5 +1,6 @@ > $OpenBSD: README,v 1.5 2018/09/04 12:46:24 espie Exp $ > > + > +----------------------------------------------------------------------- > | Running ${PKGSTEM} on OpenBSD > +----------------------------------------------------------------------- > @@ -12,9 +13,8 @@ Administrator Quick Start > doas chown www:www /var/www/caldav/kcaldav.db > doas chmod 640 /var/www/caldav/kcaldav.db > > - Read kcaldav.passwd(1) for more details about creating > - new calenders for users, changing email address and other > - options. > + Read kcaldav.passwd(1) for more details about creating new > + calenders for users, changing email address and other options. > > With httpd(8) the kcaldav CGI can be run through slowcgi(8) > using a configuration snippet like the following: > @@ -32,14 +32,28 @@ Administrator Quick Start > } > } > > - kcaldav.cgi uses http authentication for user security. > - Install a tls certificate to ensure privacy of connection. > + Remember to enable and start slowcgi(8): > + > + rcctl enable slowcgi > + rcttl start slowcgi > + > + Also, kcaldav.cgi uses http authentication for user security. > + Make sure your web server is configured to use https to ensure > + privacy of connection. > + > > User Quick Start > ================ > - Users can manage their account settings, create calendars > - and find the URL for use with their calendar application > - by browsing to: https://localhost/kcaldav/home.html > + Users can manage their account settings, create calendars, > + and find the URL for use with their calendar application by > + browsing to: > + > + https://example.org/kcaldav/home.html > + > + The URL will look like: > + > + https://example.org/cgi-bin/kcaldav/<username>/ > + > > Porting Notes: Write Ahead Logging > ================================== > @@ -53,26 +67,51 @@ Porting Notes: Write Ahead Logging > > Open the kcaldav.db: > > - % doas sqlite3 caldav/kcaldav.db > + doas sqlite3 caldav/kcaldav.db > > Type: > > - sqlite> PRAGMA journal_mode=WAL; > + sqlite> PRAGMA journal_mode=WAL; > > - To disable WAL later open the kcaldav db and type: > + To disable WAL, open the kcaldav db and type: > > - sqlite> PRAGMA journal_mode=DELETE; > + sqlite> PRAGMA journal_mode=DELETE; > > If you plan to run kcaldav in a chroot environment you must > - create a /tmp directory in the chroot and it must be writable > + create a /tmp directory in the chroot dir and make it writable > by the httpd daemon account: > > - % doas mkdir /var/www/tmp > - % doas chown www:daemon /var/www/tmp > - % doas chmod 755 /var/www/tmp > + doas mkdir /var/www/tmp > + doas chown www:daemon /var/www/tmp > + doas chmod 755 /var/www/tmp > > For more details about WAL and temp directory requirements > see: > > https://www.sqlite.org/wal.html > https://www.sqlite.org/c3ref/temp_directory.html > + > + > +Porting Notes: Debug and Logging > +================================ > + > + Logging in kcaldav is controlled by the LOGFILE and DEBUG > + variables in the Makeile. LOGFILE sets the name and location > + of the file to write to, DEBUG controls the amount of logging. > + > + The DEBUG level can only be set at build time. There are four > + DEBUG levels in ascending order of vebosity: 0 - 3, where 0 > + disables all debugging. This port disables logging by commenting > + out the Makefile line: > + > + CFLAGS += -DLOGFILE=\"$(LOGFILE)\". > + > + When sending error reports upstream, re-enable the line above, > + set DEBUG=3, and rebuild. > + > + LOGFILE defaults to /var/www/logs/kcaldav-system.log. This file > + must be created by the user and permissions set: > + > + touch /var/www/logs/kcaldav-system.log > + chown www:www /var/www/logs/kcaldav-system.log > + chmod 644 /var/www/logs/kcaldav-system.log >