git: c1aa288dbfa4 - main - www/writefreely: update to 0.14.0

From: Robert Clausecker <fuz_at_FreeBSD.org>
Date: Sun, 24 Sep 2023 18:58:53 UTC
The branch main has been updated by fuz:

URL: https://cgit.FreeBSD.org/ports/commit/?id=c1aa288dbfa442f2cacebbb8ca7609c213c04e44

commit c1aa288dbfa442f2cacebbb8ca7609c213c04e44
Author:     Robert Clausecker <fuz@FreeBSD.org>
AuthorDate: 2023-09-22 20:36:54 +0000
Commit:     Robert Clausecker <fuz@FreeBSD.org>
CommitDate: 2023-09-24 18:57:14 +0000

    www/writefreely: update to 0.14.0
    
     - switch to GO_MODULES
     - add new migrate extracommand to the rc script
     - mention the need to migrate in pkg-message.in
    
    Changelog: https://github.com/writefreely/writefreely/releases/tag/v0.14.0
---
 www/writefreely/Makefile             |  97 +-------------------
 www/writefreely/distinfo             | 166 ++---------------------------------
 www/writefreely/files/pkg-message.in |  28 ++++--
 www/writefreely/files/writefreely.in |   8 +-
 www/writefreely/pkg-plist            |   1 +
 5 files changed, 44 insertions(+), 256 deletions(-)

diff --git a/www/writefreely/Makefile b/www/writefreely/Makefile
index a905cd871003..48411dd56545 100644
--- a/www/writefreely/Makefile
+++ b/www/writefreely/Makefile
@@ -1,14 +1,7 @@
 PORTNAME=	writefreely
 DISTVERSIONPREFIX=	v
-DISTVERSION=	0.13.2
-PORTREVISION=	9
+DISTVERSION=	0.14.0
 CATEGORIES=	www textproc
-MASTER_SITES=	https://code.as/core/socks/archive/v1.0.0.tar.gz?dummy=/:core_socks
-DISTFILES=	core-socks-v1.0.0.tar.gz:core_socks
-DIST_SUBDIR=	writeas
- 
-PATCH_SITES=	https://github.com/writefreely/writefreely/commit/
-PATCHFILES=	99d72881cf833326f02d86a8896bbd2b8156327b.diff:-p1
 
 MAINTAINER=	fuz@FreeBSD.org
 COMMENT=	Clean, Markdown-based publishing platform made for writers
@@ -18,85 +11,10 @@ LICENSE=	AGPLv3
 LICENSE_FILE=	${WRKSRC}/LICENSE
 LICENSE_DISTFILES_CC-BY-NC-SA-4.0=	writefreely-documentation-v0.13.1_GH0.tar.gz
 
-BUILD_DEPENDS=	go-bindata:devel/go-bindata
-
 USES=		go:modules
-USE_GITHUB=	yes
-GH_TUPLE=	aymerick:douceur:v0.2.0:aymerick_douceur/vendor/github.com/aymerick/douceur \
-		beevik:etree:v1.1.0:beevik_etree/vendor/github.com/beevik/etree \
-		captncraig:cors:e80254a89df1:captncraig_cors/vendor/github.com/captncraig/cors \
-		chzyer:readline:2972be24d48e:chzyer_readline/vendor/github.com/chzyer/readline \
-		clbanning:mxj:v1.8.4:clbanning_mxj/vendor/github.com/clbanning/mxj \
-		cpuguy83:go-md2man:v2.0.1:cpuguy83_go_md2man_v2/vendor/github.com/cpuguy83/go-md2man/v2 \
-		davecgh:go-spew:v1.1.1:davecgh_go_spew/vendor/github.com/davecgh/go-spew \
-		dchest:uniuri:7aecb25e1fe5:dchest_uniuri/vendor/github.com/dchest/uniuri \
-		dustin:go-humanize:v1.0.0:dustin_go_humanize/vendor/github.com/dustin/go-humanize \
-		fatih:color:v1.10.0:fatih_color/vendor/github.com/fatih/color \
-		fatih:structs:v1.1.0:fatih_structs/vendor/github.com/fatih/structs \
-		go-fed:httpsig:0ef28562fabe:go_fed_httpsig/vendor/github.com/go-fed/httpsig \
-		go-ini:ini:v1.62.0:go_ini_ini_1/vendor/gopkg.in/ini.v1 \
-		go-ini:ini:v1.66.4:go_ini_ini/vendor/github.com/go-ini/ini \
-		go-sql-driver:mysql:v1.6.0:go_sql_driver_mysql/vendor/github.com/go-sql-driver/mysql \
-		go-test:deep:v1.0.1:go_test_deep/vendor/github.com/go-test/deep \
-		go-yaml:yaml:9f266ea9e77c:go_yaml_yaml/vendor/gopkg.in/yaml.v3 \
-		gofrs:uuid:v3.3.0:gofrs_uuid/vendor/github.com/gofrs/uuid \
-		golang:crypto:75b288015ac9:golang_crypto/vendor/golang.org/x/crypto \
-		golang:net:bcab6841153b:golang_net/vendor/golang.org/x/net \
-		golang:sys:3c1f35247d10:golang_sys/vendor/golang.org/x/sys \
-		golang:text:v0.3.7:golang_text/vendor/golang.org/x/text \
-		gologme:log:v1.2.0:gologme_log/vendor/github.com/gologme/log \
-		gopherjs:gopherjs:d547d1d9531e:gopherjs_gopherjs/vendor/github.com/gopherjs/gopherjs \
-		gorilla:csrf:v1.7.0:gorilla_csrf/vendor/github.com/gorilla/csrf \
-		gorilla:css:v1.0.0:gorilla_css/vendor/github.com/gorilla/css \
-		gorilla:feeds:v1.1.1:gorilla_feeds/vendor/github.com/gorilla/feeds \
-		gorilla:mux:v1.8.0:gorilla_mux/vendor/github.com/gorilla/mux \
-		gorilla:schema:v1.2.0:gorilla_schema/vendor/github.com/gorilla/schema \
-		gorilla:securecookie:v1.1.1:gorilla_securecookie/vendor/github.com/gorilla/securecookie \
-		gorilla:sessions:v1.2.0:gorilla_sessions/vendor/github.com/gorilla/sessions \
-		guregu:null:v3.5.0:guregu_null/vendor/github.com/guregu/null \
-		hashicorp:errwrap:v1.0.0:hashicorp_errwrap/vendor/github.com/hashicorp/errwrap \
-		hashicorp:go-multierror:v1.1.1:hashicorp_go_multierror/vendor/github.com/hashicorp/go-multierror \
-		ikeikeikeike:go-sitemap-generator:v2.0.2:ikeikeikeike_go_sitemap_generator_v2/vendor/github.com/ikeikeikeike/go-sitemap-generator/v2 \
-		jtolds:gls:v4.2.1:jtolds_gls/vendor/github.com/jtolds/gls \
-		juju:ansiterm:720a0952cc2a:juju_ansiterm/vendor/github.com/juju/ansiterm \
-		kylemcc:twitter-text-go:7f582f6736ec:kylemcc_twitter_text_go/vendor/github.com/kylemcc/twitter-text-go \
-		lunixbochs:vtclean:v1.0.0:lunixbochs_vtclean/vendor/github.com/lunixbochs/vtclean \
-		manifoldco:promptui:v0.8.0:manifoldco_promptui/vendor/github.com/manifoldco/promptui \
-		mattn:go-colorable:v0.1.8:mattn_go_colorable/vendor/github.com/mattn/go-colorable \
-		mattn:go-isatty:v0.0.12:mattn_go_isatty/vendor/github.com/mattn/go-isatty \
-		mattn:go-sqlite3:v1.14.6:mattn_go_sqlite3/vendor/github.com/mattn/go-sqlite3 \
-		microcosm-cc:bluemonday:v1.0.21:microcosm_cc_bluemonday/vendor/github.com/microcosm-cc/bluemonday \
-		mitchellh:go-wordwrap:v1.0.1:mitchellh_go_wordwrap/vendor/github.com/mitchellh/go-wordwrap \
-		nu7hatch:gouuid:179d4d0c4d8d:nu7hatch_gouuid/vendor/github.com/nu7hatch/gouuid \
-		petermattis:goid:b0b1615b78e5:petermattis_goid/vendor/github.com/petermattis/goid \
-		pkg:errors:v0.9.1:pkg_errors/vendor/github.com/pkg/errors \
-		pmezard:go-difflib:v1.0.0:pmezard_go_difflib/vendor/github.com/pmezard/go-difflib \
-		rainycape:unidecode:cb7f23ec59be:rainycape_unidecode/vendor/github.com/rainycape/unidecode \
-		russross:blackfriday:v2.1.0:russross_blackfriday_v2/vendor/github.com/russross/blackfriday/v2 \
-		sasha-s:go-deadlock:v0.3.1:sasha_s_go_deadlock/vendor/github.com/sasha-s/go-deadlock \
-		shurcooL:sanitized_anchor_name:v1.0.0:shurcool_sanitized_anchor_name/vendor/github.com/shurcooL/sanitized_anchor_name \
-		smartystreets:assertions:b6c0e53d7304:smartystreets_assertions/vendor/github.com/smartystreets/assertions \
-		smartystreets:goconvey:044398e4856c:smartystreets_goconvey/vendor/github.com/smartystreets/goconvey \
-		stretchr:testify:v1.7.0:stretchr_testify/vendor/github.com/stretchr/testify \
-		urfave:cli:v2.5.1:urfave_cli_v2/vendor/github.com/urfave/cli/v2 \
-		writeas:activity:v0.1.2:writeas_activity/vendor/github.com/writeas/activity \
-		writeas:activityserve:d7ab3eaa4481:writeas_activityserve/vendor/github.com/writeas/activityserve \
-		writeas:go-strip-markdown:v2.0.1:writeas_go_strip_markdown/vendor/github.com/writeas/go-strip-markdown \
-		writeas:go-strip-markdown:v2.1.1:writeas_go_strip_markdown_v2/vendor/github.com/writeas/go-strip-markdown/v2 \
-		writeas:go-webfinger:v1.1.0:writeas_go_webfinger/vendor/github.com/writeas/go-webfinger \
-		writeas:go-writeas:v2.0.2:writeas_go_writeas_v2/vendor/github.com/writeas/go-writeas/v2 \
-		writeas:httpsig:v1.0.0:writeas_httpsig/vendor/github.com/writeas/httpsig \
-		writeas:impart:v1.1.1:writeas_impart/vendor/github.com/writeas/impart \
-		writeas:import:v0.2.1:writeas_import/vendor/github.com/writeas/import \
-		writeas:monday:54a7dd579219:writeas_monday/vendor/github.com/writeas/monday \
-		writeas:openssl-go:v1.0.0:writeas_openssl_go/vendor/github.com/writeas/openssl-go \
-		writeas:saturday:392b95a03320:writeas_saturday/vendor/github.com/writeas/saturday \
-		writeas:slug:v1.2.0:writeas_slug/vendor/github.com/writeas/slug \
-		writeas:web-core:v1.4.1:writeas_web_core/vendor/github.com/writeas/web-core \
-		writefreely:go-gopher:40127126f83b:writefreely_go_gopher/vendor/github.com/writefreely/go-gopher \
-		writefreely:go-nodeinfo:v1.2.0:writefreely_go_nodeinfo/vendor/github.com/writefreely/go-nodeinfo
-
+USE_GITHUB=	nodefault
 USE_RC_SUBR=	writefreely
+GO_MODULE=	github.com/writefreely/writefreely
 GO_TARGET=	./cmd/writefreely
 
 SUB_FILES=	config.ini.sample pkg-message
@@ -116,18 +34,11 @@ CSS_DIST_DISTFILES=		writefreely-css-${DISTVERSION}.tar.gz:css
 CSS_LESSC_BUILD_DEPENDS=	npm:www/npm
 CSS_LESSC_VARS=			LEGAL_PACKAGE=yes \
 				NO_PACKAGE="uses www/npm to fetch files at build time (option CSS_LESSC)"
-DOCS_GH_TUPLE=			writefreely:documentation:v0.13.1:docs
+DOCS_GH_TUPLE=			writefreely:documentation:v${DISTVERSION}:docs
 DOCS_VARS=			LICENSE+=CC-BY-NC-SA-4.0 \
 				LICENSE_COMB=multi
 SQLITE3_VARS=			GO_BUILDFLAGS+=-tags=sqlite
 
-post-extract:
-	@${MKDIR} ${WRKSRC}/vendor/code.as/core
-	@${RLN} ${WRKDIR}/socks ${WRKSRC}/vendor/code.as/core/socks
-
-pre-build:
-	cd ${WRKSRC} && go-bindata -pkg writefreely -ignore=\\.gitignore schema.sql sqlite.sql
-
 # download the lessc program with npm for rolling the writefreely-css distfile
 ${WRKDIR}/npm/bin/lessc:
 	@${ECHO_MSG} "=> downloading the lessc utility with NPM"
diff --git a/www/writefreely/distinfo b/www/writefreely/distinfo
index e445b7794739..89d5b9b6f32e 100644
--- a/www/writefreely/distinfo
+++ b/www/writefreely/distinfo
@@ -1,157 +1,9 @@
-TIMESTAMP = 1674562387
-SHA256 (writeas/core-socks-v1.0.0.tar.gz) = 9d199f31b9fcaa97b4c52483f16e226fe7b40a0014b6070788f415cff29f2c32
-SIZE (writeas/core-socks-v1.0.0.tar.gz) = 11604
-SHA256 (writeas/writefreely-css-0.13.2.tar.gz) = 099ad7bb876e9cef2155af71df65825cd8776beb66de523430169c2eb52adf88
-SIZE (writeas/writefreely-css-0.13.2.tar.gz) = 13276
-SHA256 (writeas/writefreely-writefreely-v0.13.2_GH0.tar.gz) = 9f927be8b9b48743d02c44720bfb5adf3f262b336f83a3b82ab7574a1d2fa5f2
-SIZE (writeas/writefreely-writefreely-v0.13.2_GH0.tar.gz) = 3499545
-SHA256 (writeas/aymerick-douceur-v0.2.0_GH0.tar.gz) = ceed015cddc99b600ccbbd6aa0ebe39063554049f70153887d3df7c21fefedbb
-SIZE (writeas/aymerick-douceur-v0.2.0_GH0.tar.gz) = 20914
-SHA256 (writeas/beevik-etree-v1.1.0_GH0.tar.gz) = d1b424a126ce5c46d8e9ba42217e7997cc992bef56d17cc39d1d91525c0dc1de
-SIZE (writeas/beevik-etree-v1.1.0_GH0.tar.gz) = 26390
-SHA256 (writeas/captncraig-cors-e80254a89df1_GH0.tar.gz) = 32bea524b6ef4a31c4ac23d8b09e8555b10e3150f55bc0370515b733a72d9999
-SIZE (writeas/captncraig-cors-e80254a89df1_GH0.tar.gz) = 5659
-SHA256 (writeas/chzyer-readline-2972be24d48e_GH0.tar.gz) = 8f425cfb33fce61a137866c0a88117c68f49de79a61a341353fc97339c6b74da
-SIZE (writeas/chzyer-readline-2972be24d48e_GH0.tar.gz) = 36825
-SHA256 (writeas/clbanning-mxj-v1.8.4_GH0.tar.gz) = 335fa9d17855c8540eca83fd8ecacc5979570fe15be04f7c1154f0b71f2c39c7
-SIZE (writeas/clbanning-mxj-v1.8.4_GH0.tar.gz) = 1091271
-SHA256 (writeas/cpuguy83-go-md2man-v2.0.1_GH0.tar.gz) = 889309ecf43e40d3a76d666b0259dcd71b340ea0fad003784ff3fe0b6c21990e
-SIZE (writeas/cpuguy83-go-md2man-v2.0.1_GH0.tar.gz) = 64220
-SHA256 (writeas/davecgh-go-spew-v1.1.1_GH0.tar.gz) = 7d82b9bb7291adbe7498fe946920ab3e7fc9e6cbfc3b2294693fad00bf0dd17e
-SIZE (writeas/davecgh-go-spew-v1.1.1_GH0.tar.gz) = 42152
-SHA256 (writeas/dchest-uniuri-7aecb25e1fe5_GH0.tar.gz) = 63ac3284162c388bd259f4bb26b7892c39a4fe89daef202c5f8c619706bfb4d3
-SIZE (writeas/dchest-uniuri-7aecb25e1fe5_GH0.tar.gz) = 5181
-SHA256 (writeas/dustin-go-humanize-v1.0.0_GH0.tar.gz) = e4540bd50ac855143b4f2e509313079c50cf5d8774f09cc10dbca5ae9803d8ba
-SIZE (writeas/dustin-go-humanize-v1.0.0_GH0.tar.gz) = 17260
-SHA256 (writeas/fatih-color-v1.10.0_GH0.tar.gz) = a00342a7ffb8b119346dce56e152a111cbb9eab3970c429cc2ed4272aec2858e
-SIZE (writeas/fatih-color-v1.10.0_GH0.tar.gz) = 1267532
-SHA256 (writeas/fatih-structs-v1.1.0_GH0.tar.gz) = 7479adacd8172f74968da4e1e14f1cc47c0bc98c48f44c09c497416dc8c9dfe4
-SIZE (writeas/fatih-structs-v1.1.0_GH0.tar.gz) = 14444
-SHA256 (writeas/go-fed-httpsig-0ef28562fabe_GH0.tar.gz) = f0f3e7726a121fc374a88a306cf8280c044fed04b51b3f2bed99c9afd8e2d917
-SIZE (writeas/go-fed-httpsig-0ef28562fabe_GH0.tar.gz) = 19012
-SHA256 (writeas/go-ini-ini-v1.62.0_GH0.tar.gz) = 926ca2ff49018dc5c0991f3a790bc2083a3c52c470167d42f0f0bcd6642ff64e
-SIZE (writeas/go-ini-ini-v1.62.0_GH0.tar.gz) = 50314
-SHA256 (writeas/go-ini-ini-v1.66.4_GH0.tar.gz) = 6b64578fd951b1654ec09893ba7bf2cb8517c1a6905258aa0e5a85fff3fa3a91
-SIZE (writeas/go-ini-ini-v1.66.4_GH0.tar.gz) = 53337
-SHA256 (writeas/go-sql-driver-mysql-v1.6.0_GH0.tar.gz) = 25233aea6418ca7e2e8d83f1bf4f498ef7f79c8c0fee1dc2a8ba623372574b28
-SIZE (writeas/go-sql-driver-mysql-v1.6.0_GH0.tar.gz) = 94168
-SHA256 (writeas/go-test-deep-v1.0.1_GH0.tar.gz) = 074089c0f76c00a709a60f36ec5b3838284732441fbe312726d5b4800bbe4c54
-SIZE (writeas/go-test-deep-v1.0.1_GH0.tar.gz) = 6898
-SHA256 (writeas/go-yaml-yaml-9f266ea9e77c_GH0.tar.gz) = 63efc9aabcbb56b2c9469927784fd67ecb3a79720c4fa754c511335a04156d04
-SIZE (writeas/go-yaml-yaml-9f266ea9e77c_GH0.tar.gz) = 86898
-SHA256 (writeas/gofrs-uuid-v3.3.0_GH0.tar.gz) = e9e33d86dfb753b1569414d733e8483d565345df302240a5c9f2930c02951ccb
-SIZE (writeas/gofrs-uuid-v3.3.0_GH0.tar.gz) = 17919
-SHA256 (writeas/golang-crypto-75b288015ac9_GH0.tar.gz) = 6e74e21bf9dfdbf0a8dac8cb205fbc3bfd8dff308a24080b9d6093a3858f0db2
-SIZE (writeas/golang-crypto-75b288015ac9_GH0.tar.gz) = 1729931
-SHA256 (writeas/golang-net-bcab6841153b_GH0.tar.gz) = 8f6f05718a340ef7c9191468f4a573228eb5bcfb22a1150a0d55e35a9fbf1cad
-SIZE (writeas/golang-net-bcab6841153b_GH0.tar.gz) = 1228275
-SHA256 (writeas/golang-sys-3c1f35247d10_GH0.tar.gz) = 27fdc75cc74da979f59142f1f5a1f08505c55918a0d5019ed4ebb04901834842
-SIZE (writeas/golang-sys-3c1f35247d10_GH0.tar.gz) = 1336787
-SHA256 (writeas/golang-text-v0.3.7_GH0.tar.gz) = 7cab2f6c3133ac1d422edd952b0dd2082fa55a73c2663fb2defd9bf83d649b26
-SIZE (writeas/golang-text-v0.3.7_GH0.tar.gz) = 8354718
-SHA256 (writeas/gologme-log-v1.2.0_GH0.tar.gz) = 06b94718ea898c01c176a8915ccd119d511ee41de388611d8e9afeb1a17bfff6
-SIZE (writeas/gologme-log-v1.2.0_GH0.tar.gz) = 5610
-SHA256 (writeas/gopherjs-gopherjs-d547d1d9531e_GH0.tar.gz) = 9f24adce5539b96eaeae86b6b6b34c3b5d4b54b5552779f1919d583ef2045378
-SIZE (writeas/gopherjs-gopherjs-d547d1d9531e_GH0.tar.gz) = 217297
-SHA256 (writeas/gorilla-csrf-v1.7.0_GH0.tar.gz) = 8cbc7df34ba5266f78c81b5d1a86b822d4107533dd4c3fd9fe16cdee4d916db5
-SIZE (writeas/gorilla-csrf-v1.7.0_GH0.tar.gz) = 21854
-SHA256 (writeas/gorilla-css-v1.0.0_GH0.tar.gz) = 9decf83063b85bcd5392f645fac322e986b5fc596b3e44c3be02ee5939106f4c
-SIZE (writeas/gorilla-css-v1.0.0_GH0.tar.gz) = 6443
-SHA256 (writeas/gorilla-feeds-v1.1.1_GH0.tar.gz) = 361482738014da53e03d0be5b22d39f3a4d9a8f258cf7e09faf3694ee63e091f
-SIZE (writeas/gorilla-feeds-v1.1.1_GH0.tar.gz) = 14733
-SHA256 (writeas/gorilla-mux-v1.8.0_GH0.tar.gz) = ea2639259d2ce6f402636655e91eb93ba69c139e3cbf80b044ee393ada53757b
-SIZE (writeas/gorilla-mux-v1.8.0_GH0.tar.gz) = 45517
-SHA256 (writeas/gorilla-schema-v1.2.0_GH0.tar.gz) = 5dbfdc9c3e9275a87f4768cc455db2832c10dc7f2b9703810ff635dbf87c6cf0
-SIZE (writeas/gorilla-schema-v1.2.0_GH0.tar.gz) = 23467
-SHA256 (writeas/gorilla-securecookie-v1.1.1_GH0.tar.gz) = b7897b2243f0d43913aca318593c5c2586294fcd3265189d564ddda1b880fe95
-SIZE (writeas/gorilla-securecookie-v1.1.1_GH0.tar.gz) = 41240
-SHA256 (writeas/gorilla-sessions-v1.2.0_GH0.tar.gz) = 576d154ff12273d88d25864d14bd9b0fb1a864274d1fb3e224546529068c8968
-SIZE (writeas/gorilla-sessions-v1.2.0_GH0.tar.gz) = 13352
-SHA256 (writeas/guregu-null-v3.5.0_GH0.tar.gz) = 02a0c818db6abbb8d0578542d5101bc6567cb967edafe668ae0ce1df9bd86a5c
-SIZE (writeas/guregu-null-v3.5.0_GH0.tar.gz) = 17918
-SHA256 (writeas/hashicorp-errwrap-v1.0.0_GH0.tar.gz) = 26afc0e5895c6ce87c881c5c02c682ccc9a08174a9c27ca26d4a1e72dbf78128
-SIZE (writeas/hashicorp-errwrap-v1.0.0_GH0.tar.gz) = 8346
-SHA256 (writeas/hashicorp-go-multierror-v1.1.1_GH0.tar.gz) = 8d1bb3377310e8ffe4c7b5672c5de1eaed153402aebd15d6e5b9673c356a065f
-SIZE (writeas/hashicorp-go-multierror-v1.1.1_GH0.tar.gz) = 13803
-SHA256 (writeas/ikeikeikeike-go-sitemap-generator-v2.0.2_GH0.tar.gz) = 4a27e41c77ebb57e20269bc36d2be2967c13b2be173aa79f5e06754e9d50a6bc
-SIZE (writeas/ikeikeikeike-go-sitemap-generator-v2.0.2_GH0.tar.gz) = 16508
-SHA256 (writeas/jtolds-gls-v4.2.1_GH0.tar.gz) = 955860227f00b82bfe0e877f6100832c47ff723913d8a58baccdead73d43d1e7
-SIZE (writeas/jtolds-gls-v4.2.1_GH0.tar.gz) = 7296
-SHA256 (writeas/juju-ansiterm-720a0952cc2a_GH0.tar.gz) = 5595c2dc8973aab36a69648d4d94cac75a9ff4a28eb074a7b82b030fc7edbf64
-SIZE (writeas/juju-ansiterm-720a0952cc2a_GH0.tar.gz) = 15417
-SHA256 (writeas/kylemcc-twitter-text-go-7f582f6736ec_GH0.tar.gz) = 87933f50e945035bd8e58cd72cd49f65b28ae8f7bf62938cd1d2c8eec7f99092
-SIZE (writeas/kylemcc-twitter-text-go-7f582f6736ec_GH0.tar.gz) = 40265
-SHA256 (writeas/lunixbochs-vtclean-v1.0.0_GH0.tar.gz) = 38aa5c60284f77cbb4be1de4af8907ce66954ff1a11e4f910d02e0283ce13b33
-SIZE (writeas/lunixbochs-vtclean-v1.0.0_GH0.tar.gz) = 4213
-SHA256 (writeas/manifoldco-promptui-v0.8.0_GH0.tar.gz) = 3ef92d9991f3fe9fa85bdeb8546ae5b2c81a5a478c6ebcf356b2a6c25a59f219
-SIZE (writeas/manifoldco-promptui-v0.8.0_GH0.tar.gz) = 26830
-SHA256 (writeas/mattn-go-colorable-v0.1.8_GH0.tar.gz) = 1027954f9abbe06b6e117e3047af70204dd0eb4f8c27fcd459fb2574b279755f
-SIZE (writeas/mattn-go-colorable-v0.1.8_GH0.tar.gz) = 9571
-SHA256 (writeas/mattn-go-isatty-v0.0.12_GH0.tar.gz) = addbdc341d7685ed4cc8d2d8a8fd2bd9b784bde00d0ea99fb251039fc10c611c
-SIZE (writeas/mattn-go-isatty-v0.0.12_GH0.tar.gz) = 4548
-SHA256 (writeas/mattn-go-sqlite3-v1.14.6_GH0.tar.gz) = c92f80d9d5c16e305955cb5a6885a8d931926e9b489857560364148fd225b690
-SIZE (writeas/mattn-go-sqlite3-v1.14.6_GH0.tar.gz) = 2367133
-SHA256 (writeas/microcosm-cc-bluemonday-v1.0.21_GH0.tar.gz) = 59b3d324ad7996361cb64cb6f3ed0c91936de7efd62477580691fe4b7529206a
-SIZE (writeas/microcosm-cc-bluemonday-v1.0.21_GH0.tar.gz) = 171200
-SHA256 (writeas/mitchellh-go-wordwrap-v1.0.1_GH0.tar.gz) = 56dc8d3883c765d9791a3698a55c66935b2978ac60e0e3c7c8799b182dd22bb5
-SIZE (writeas/mitchellh-go-wordwrap-v1.0.1_GH0.tar.gz) = 2921
-SHA256 (writeas/nu7hatch-gouuid-179d4d0c4d8d_GH0.tar.gz) = 2ead616e5bb23c0c669a1485cb45f083d8d6752acc5faa5f668521b7e99ec2e1
-SIZE (writeas/nu7hatch-gouuid-179d4d0c4d8d_GH0.tar.gz) = 3733
-SHA256 (writeas/petermattis-goid-b0b1615b78e5_GH0.tar.gz) = 6eb93a6342c9289445892b9667b0a7ada5066a4fcf785a030672339076997a26
-SIZE (writeas/petermattis-goid-b0b1615b78e5_GH0.tar.gz) = 6807
-SHA256 (writeas/pkg-errors-v0.9.1_GH0.tar.gz) = 56bfd893023daa498508bfe161de1be83299fcf15376035e7df79cbd7d6fa608
-SIZE (writeas/pkg-errors-v0.9.1_GH0.tar.gz) = 13415
-SHA256 (writeas/pmezard-go-difflib-v1.0.0_GH0.tar.gz) = 28f3dc1b5c0efd61203ab07233f774740d3bf08da4d8153fb5310db6cea0ebda
-SIZE (writeas/pmezard-go-difflib-v1.0.0_GH0.tar.gz) = 11398
-SHA256 (writeas/rainycape-unidecode-cb7f23ec59be_GH0.tar.gz) = cd66a7ee66c8061c2d05585058323d0bcc6692761db94885511762428acfef96
-SIZE (writeas/rainycape-unidecode-cb7f23ec59be_GH0.tar.gz) = 387823
-SHA256 (writeas/russross-blackfriday-v2.1.0_GH0.tar.gz) = a13af0fc5305713f5154693feaf654d024689efea76390091a5e8c757335b4f4
-SIZE (writeas/russross-blackfriday-v2.1.0_GH0.tar.gz) = 92896
-SHA256 (writeas/sasha-s-go-deadlock-v0.3.1_GH0.tar.gz) = 01e1337af3e232dc1c9b80b986dcad14035316c9542fd29b8ac960b552746315
-SIZE (writeas/sasha-s-go-deadlock-v0.3.1_GH0.tar.gz) = 11580
-SHA256 (writeas/shurcooL-sanitized_anchor_name-v1.0.0_GH0.tar.gz) = 7e11964980f9b8595c17bc8970f0174621afe464920e38df7f8d77e45058388f
-SIZE (writeas/shurcooL-sanitized_anchor_name-v1.0.0_GH0.tar.gz) = 2143
-SHA256 (writeas/smartystreets-assertions-b6c0e53d7304_GH0.tar.gz) = eb3a9cad97b20a01dd2bfafd7baab237bec8804f325b44d041d1db0e5bc519eb
-SIZE (writeas/smartystreets-assertions-b6c0e53d7304_GH0.tar.gz) = 52164
-SHA256 (writeas/smartystreets-goconvey-044398e4856c_GH0.tar.gz) = 097f2f702e5dfe5d54d73b25f784fd2510ce12f3f6d87656d5948dfa68c0ad55
-SIZE (writeas/smartystreets-goconvey-044398e4856c_GH0.tar.gz) = 1477095
-SHA256 (writeas/stretchr-testify-v1.7.0_GH0.tar.gz) = 560c0984072cb436b17bbce5699b205d5aa2beb58ef7a94530d7724b5739a8d6
-SIZE (writeas/stretchr-testify-v1.7.0_GH0.tar.gz) = 91073
-SHA256 (writeas/urfave-cli-v2.5.1_GH0.tar.gz) = d74543c8f78c9df9e53ac66a539d51b4d51b395835935fdbf1fb0d12ca150c9c
-SIZE (writeas/urfave-cli-v2.5.1_GH0.tar.gz) = 3414127
-SHA256 (writeas/writeas-activity-v0.1.2_GH0.tar.gz) = 9dc8d2dc255d779160bdaa557eb079b478f5eec892fed0572e16bfbbea736b57
-SIZE (writeas/writeas-activity-v0.1.2_GH0.tar.gz) = 2654174
-SHA256 (writeas/writeas-activityserve-d7ab3eaa4481_GH0.tar.gz) = 69cf6de86f3c00185dc63ac140155aa940b3d16dc3d5d2df1e0f48f9bae139c4
-SIZE (writeas/writeas-activityserve-d7ab3eaa4481_GH0.tar.gz) = 17398
-SHA256 (writeas/writeas-go-strip-markdown-v2.0.1_GH0.tar.gz) = f556dac36b74f95f9d48d9e00db3311faf8cdfacffb8170c80b35e3827858d16
-SIZE (writeas/writeas-go-strip-markdown-v2.0.1_GH0.tar.gz) = 3278
-SHA256 (writeas/writeas-go-strip-markdown-v2.1.1_GH0.tar.gz) = 5bb5017dd0a5081f9b7a7ceebf266cacfbf071a23f90696c9ccc08203c8922e7
-SIZE (writeas/writeas-go-strip-markdown-v2.1.1_GH0.tar.gz) = 3434
-SHA256 (writeas/writeas-go-webfinger-v1.1.0_GH0.tar.gz) = 41011524c9f8916515df7bc64591e68b022b0515a93d72b0278f4ccffc731159
-SIZE (writeas/writeas-go-webfinger-v1.1.0_GH0.tar.gz) = 7889
-SHA256 (writeas/writeas-go-writeas-v2.0.2_GH0.tar.gz) = 62e304ddfb320c3bed4a258dd0667a7aff056ec144af13d35e54601fd2733215
-SIZE (writeas/writeas-go-writeas-v2.0.2_GH0.tar.gz) = 8494
-SHA256 (writeas/writeas-httpsig-v1.0.0_GH0.tar.gz) = 4d86eec9e1b0742530fb0e4ff8591af3e4ef1b80717743951124aeb9be34385b
-SIZE (writeas/writeas-httpsig-v1.0.0_GH0.tar.gz) = 12547
-SHA256 (writeas/writeas-impart-v1.1.1_GH0.tar.gz) = 7f3288fd6d2abb1d6314cf5abb7b8c4dd2069b541e56bcddb10e08d5a059b188
-SIZE (writeas/writeas-impart-v1.1.1_GH0.tar.gz) = 3107
-SHA256 (writeas/writeas-import-v0.2.1_GH0.tar.gz) = 8dddb332127235a31eb6242d67d2ca56e8e70f01bfcfadc1c8616edaf1b61586
-SIZE (writeas/writeas-import-v0.2.1_GH0.tar.gz) = 11539
-SHA256 (writeas/writeas-monday-54a7dd579219_GH0.tar.gz) = 7a30eb0940696f9367ffdaae774df711817d3ae75b359cc4e7f0c2cff1ef1ca5
-SIZE (writeas/writeas-monday-54a7dd579219_GH0.tar.gz) = 26999
-SHA256 (writeas/writeas-openssl-go-v1.0.0_GH0.tar.gz) = f840e8e3f94f589e1ce630eceacd7a5d11ed5a9c962eb9bf5313a6a8e4e24c35
-SIZE (writeas/writeas-openssl-go-v1.0.0_GH0.tar.gz) = 680
-SHA256 (writeas/writeas-saturday-392b95a03320_GH0.tar.gz) = 456355f38c3293a61a215743f64ea98a92b79ef9663a4082b4aa6c6c11de042c
-SIZE (writeas/writeas-saturday-392b95a03320_GH0.tar.gz) = 72780
-SHA256 (writeas/writeas-slug-v1.2.0_GH0.tar.gz) = db766bf635a326b8c56d717e59457d8bae06c6b805d65578c87ebfb47f52fc0d
-SIZE (writeas/writeas-slug-v1.2.0_GH0.tar.gz) = 11624
-SHA256 (writeas/writeas-web-core-v1.4.1_GH0.tar.gz) = 99bb380e83809bb3def2fb26f9ed386f3d36e3442f6f3f009a9b2ca687a46442
-SIZE (writeas/writeas-web-core-v1.4.1_GH0.tar.gz) = 43983
-SHA256 (writeas/writefreely-go-gopher-40127126f83b_GH0.tar.gz) = 5a9b5a88e347fdeb4079a22be6702d7a91c40dceaa68d7ef37f0fae783c5c1ed
-SIZE (writeas/writefreely-go-gopher-40127126f83b_GH0.tar.gz) = 20246
-SHA256 (writeas/writefreely-go-nodeinfo-v1.2.0_GH0.tar.gz) = bcf74cbb4ff56cab570b0f20d8cf3ce6c711c0e912051e2c20c82c2488d62dde
-SIZE (writeas/writefreely-go-nodeinfo-v1.2.0_GH0.tar.gz) = 3560
-SHA256 (writeas/writefreely-documentation-v0.13.1_GH0.tar.gz) = 071263600c4aeba84f12a5794eb7c59f70b3bee6f1a7d0757ab0f50c3cc25f38
-SIZE (writeas/writefreely-documentation-v0.13.1_GH0.tar.gz) = 19082
-SHA256 (writeas/99d72881cf833326f02d86a8896bbd2b8156327b.diff) = eaa803e2e34323e8e6ea90ec666b3769330fd8baf0a6f444b2275a8352f58b26
-SIZE (writeas/99d72881cf833326f02d86a8896bbd2b8156327b.diff) = 2580
+TIMESTAMP = 1695413953
+SHA256 (go/www_writefreely/writefreely-v0.14.0/writefreely-css-0.14.0.tar.gz) = e65e2294f4e5db5cc3882623f73138893169e1a9f506b04262b822d6b0cb53e5
+SIZE (go/www_writefreely/writefreely-v0.14.0/writefreely-css-0.14.0.tar.gz) = 12743
+SHA256 (go/www_writefreely/writefreely-v0.14.0/v0.14.0.mod) = 419aa7ee65be921ef64dcced6b7f3ce40afb0fa7ad50396ff45fb29a17fbaaf1
+SIZE (go/www_writefreely/writefreely-v0.14.0/v0.14.0.mod) = 3569
+SHA256 (go/www_writefreely/writefreely-v0.14.0/v0.14.0.zip) = 1b1c8dcc2caa3084d2192bbc43cfab4a1bb4aab9de7b75c00cd23560ebd01b84
+SIZE (go/www_writefreely/writefreely-v0.14.0/v0.14.0.zip) = 3688008
+SHA256 (go/www_writefreely/writefreely-v0.14.0/writefreely-documentation-v0.14.0_GH0.tar.gz) = 516116977a979c22c0d4eb5191b311316d2169f0a4420bbc5591ce0ad18cf741
+SIZE (go/www_writefreely/writefreely-v0.14.0/writefreely-documentation-v0.14.0_GH0.tar.gz) = 25429
diff --git a/www/writefreely/files/pkg-message.in b/www/writefreely/files/pkg-message.in
index eadd68616faa..9df20c5dba5a 100644
--- a/www/writefreely/files/pkg-message.in
+++ b/www/writefreely/files/pkg-message.in
@@ -1,15 +1,33 @@
+[
+{ type: install
+  message: <<<EOM
 WriteFreely has been installed.  The static files, configuration,
 and databases can be found in %%WWWDIR%%.
-To enable the WriteFreely daemon, add
+To enable the WriteFreely daemon, type
 
-    writefreely_enable="YES"
+    service writefreely enable
 
-to /etc/rc.conf.  Next type
+Next type
 
-    %%PREFIX%%/etc/rc.d/writefreely setup
+    service writefreely setup
 
 to interactively generate a configuration.  Finally type
 
-    %%PREFIX%%/etc/rc.d/writefreely start
+    service writefreely start
 
 to start the writefreely service.
+EOM
+}
+{ type: upgrade
+  maximum_version: "0.14.0"
+  message: <<<EOM
+WriteFreely has been upgraded, to a new minor version.
+If WriteFreely has already been enabled, migrate the database to the new
+minor version by typing
+
+    service writefreely stop
+    service writefreely migrate
+    service writefreely start
+EOM
+}
+]
diff --git a/www/writefreely/files/writefreely.in b/www/writefreely/files/writefreely.in
index 628570ee0221..a6f73cbb6128 100644
--- a/www/writefreely/files/writefreely.in
+++ b/www/writefreely/files/writefreely.in
@@ -36,9 +36,10 @@ rcvar=writefreely_enable
 command="/usr/sbin/daemon"
 command_args="-P ${pidfile} -S -T ${writefreely_syslog_tag} -s ${writefreely_syslog_priority} -l ${writefreely_syslog_facility} -- %%PREFIX%%/bin/writefreely -c $writefreely_config serve"
 writefreely_chdir="$writefreely_home"
-extra_commands="setup"
+extra_commands="setup migrate"
 start_precmd="start_precmd"
 setup_cmd="setup_cmd"
+migrate_cmd="migrate_cmd"
 
 start_precmd()
 {
@@ -60,6 +61,11 @@ setup_cmd()
 	[ -f "$writefreely_home/writefreely.db" ] && chmod 700 "$writefreely_home/writefreely.db"
 }
 
+migrate_cmd()
+{
+	su -m "$writefreely_user" -c "%%PREFIX%%/bin/writefreely -c '$writefreely_config' db migrate"
+}
+
 cd "$writefreely_home"
 
 run_rc_command "$1"
diff --git a/www/writefreely/pkg-plist b/www/writefreely/pkg-plist
index 189cb8349328..9be2b479dec3 100644
--- a/www/writefreely/pkg-plist
+++ b/www/writefreely/pkg-plist
@@ -29,6 +29,7 @@ bin/writefreely
 %%WWWDIR%%/pages/503.tmpl
 %%WWWDIR%%/pages/about.tmpl
 %%WWWDIR%%/pages/blank.tmpl
+%%WWWDIR%%/pages/contact.tmpl
 %%WWWDIR%%/pages/landing.tmpl
 %%WWWDIR%%/pages/login.tmpl
 %%WWWDIR%%/pages/privacy.tmpl