Any further feedback, or is this ready for commit?
--Aaron
On 2020-14-10 19:35 -0500, Aaron Poffenberger <akp@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 <stu@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
>
No comments:
Post a Comment