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
> 

Reply via email to