From nobody Thu Jan 19 10:27:40 2023 X-Original-To: dev-commits-ports-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4NyJjS5jFKz2sWVm; Thu, 19 Jan 2023 10:27:40 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4NyJjS5GBkz4H3V; Thu, 19 Jan 2023 10:27:40 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1674124060; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=IDU9DQe4m2iNrX4PoeRfcBq/hzZJIH0vVTFVGfswfl8=; b=wlAcU6HUE35DIXTQSkDDRx4ZR3dM/aotN4CLOTEQCBNtjU+fS01gQbuhZdOT0/EY/Kt7QB ozuHpP7sjqncCfDuzPvRt+1YwB//Rb7KdsNYmCcS5casR1jDUHyYwq4+zVKuOw9qOjiRVL P1+lf3sOJCTbTWV53CPLibdcakB+HsJAm7f8IovKSnm6cyuefyu6m9HmHp01P3h3oE36hl 1QbIcryOAK96C884C5JfS9l/KUrDJ6FKpInh9pero+luxkFrLRoL+84xrLrZYne4L+ypdy dZTVOFfLJUxDUftEyLuJORbW1dVXtNP7si6eRSiaM2tThxX2mr18tstOdfhi8g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1674124060; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=IDU9DQe4m2iNrX4PoeRfcBq/hzZJIH0vVTFVGfswfl8=; b=H+1ysHPf5Cvm+zM9KXyvogc0pvXU6T/mHyPL/cykcuC90x+ZwDzG0WtCHPGKL9US1Lv2o6 o7e/g1sE6zxR98XCOru7pd3kNH4xdSROpqL0A9aO16Op7WzAkEdtmqEkRkdcMPGxbItcLF TMn0UE3d3LxoA/uCoVC6LerRgsDknC/gJKUeWFLOuUQ42TUYeZohR9YaFrCcnf1Zxe42L5 13Hj1MyTmu4pJJZIWVPSJIdFfdVZjQdBfy4kytnyfO8yYfxteKy4XcPrn4SIs6TlKEfqrs m0aeYJQFQ/bFFQzMmdV7mYjJU2cskuQQs74+oDhRFD50RSR0J6Dz4yLW33W0bw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1674124060; a=rsa-sha256; cv=none; b=PjAyEbf0RV19WRLsPr7QrQz+2RW/muV+BveJ423qd6WcTLoHREVzNfz6ye6zd9d33zNWTk uxqawSrQDOg2XfgccrD62Q/OifZjEerkorgEN1ukxq7mS5LKD9B9DIfEitnFXpN6K+tW7g RRQ5/A8ea4CKZusFb5yWsY+MGE57vN/qGKxsI7SWzKhPk9RB9hyEAGYHItaGiU/LXh4VSH ddz88IcFwx/Dm0Y+qhd+nJAYCpjWOInhgVn5sle+CV3C/k3HSSq/ZkK3bbfaD/f1EmJ5Hl cEZlmgLiFpebF4K/VQkaAtUL5yqf181zdil+VOxQhxOIKtRugDEUD0c3pL9F5w== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4NyJjS4J0kznWV; Thu, 19 Jan 2023 10:27:40 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 30JAResg081740; Thu, 19 Jan 2023 10:27:40 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 30JARenL081739; Thu, 19 Jan 2023 10:27:40 GMT (envelope-from git) Date: Thu, 19 Jan 2023 10:27:40 GMT Message-Id: <202301191027.30JARenL081739@gitrepo.freebsd.org> To: ports-committers@FreeBSD.org, dev-commits-ports-all@FreeBSD.org, dev-commits-ports-main@FreeBSD.org From: Dave Cottlehuber Subject: git: bf62ddf2599f - main - www/hedgedoc: NEW PORT web-hosted markdown doc editor List-Id: Commit messages for all branches of the ports repository List-Archive: https://lists.freebsd.org/archives/dev-commits-ports-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-ports-all@freebsd.org X-BeenThere: dev-commits-ports-all@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: dch X-Git-Repository: ports X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: bf62ddf2599fb7e8e131ebf4ff23e0a43212a707 Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch main has been updated by dch: URL: https://cgit.FreeBSD.org/ports/commit/?id=bf62ddf2599fb7e8e131ebf4ff23e0a43212a707 commit bf62ddf2599fb7e8e131ebf4ff23e0a43212a707 Author: Dave Cottlehuber AuthorDate: 2023-01-19 10:27:18 +0000 Commit: Dave Cottlehuber CommitDate: 2023-01-19 10:27:18 +0000 www/hedgedoc: NEW PORT web-hosted markdown doc editor Reviewed by: Mina Galić Sponsored by: SkunkWerks, GmbH Differential Revision: https://reviews.freebsd.org/D38058 --- GIDs | 2 +- UIDs | 2 +- www/Makefile | 1 + www/hedgedoc/Makefile | 117 + www/hedgedoc/distinfo | 7 + www/hedgedoc/files/hedgedoc.in | 54 + www/hedgedoc/files/pkg-message.in | 40 + www/hedgedoc/pkg-descr | 8 + www/hedgedoc/pkg-plist | 16272 ++++++++++++++++++++++++++++++++++++ 9 files changed, 16501 insertions(+), 2 deletions(-) diff --git a/GIDs b/GIDs index d101bd427a53..23d9c2564c1b 100644 --- a/GIDs +++ b/GIDs @@ -257,7 +257,7 @@ _fastdfs:*:313: promscale:*:314: lavinmq:*:315: nut:*:316: -# free: 317 +hedgedoc:*:317: # free: 318 # free: 319 # free: 320 diff --git a/UIDs b/UIDs index 5057f56c9672..b41b0f6ccb9c 100644 --- a/UIDs +++ b/UIDs @@ -262,7 +262,7 @@ _fastdfs:*:313:313::0:0:FastDFS Owner:/nonexistent:/usr/sbin/nologin promscale:*:314:314::0:0:Promscale:/nonexistent:/usr/sbin/nologin lavinmq:*:315:315::0:0:LavinMQ user:/nonexistent:/usr/sbin/nologin nut:*:316:316::0:0:Network UPS Tools user:/nonexistent:/usr/sbin/nologin -# free: 317 +hedgedoc:*:317:317::0:0:HedgeDoc user:/nonexistent:/usr/sbin/nologin # free: 318 # free: 319 # free: 320 diff --git a/www/Makefile b/www/Makefile index 3d9af816e6f4..7b2d18979e1d 100644 --- a/www/Makefile +++ b/www/Makefile @@ -218,6 +218,7 @@ SUBDIR += h2o SUBDIR += h2o-devel SUBDIR += habari + SUBDIR += hedgedoc SUBDIR += hiawatha SUBDIR += hiawatha-monitor SUBDIR += horde-ansel diff --git a/www/hedgedoc/Makefile b/www/hedgedoc/Makefile new file mode 100644 index 000000000000..1c1fc22cee55 --- /dev/null +++ b/www/hedgedoc/Makefile @@ -0,0 +1,117 @@ +PORTNAME= hedgedoc +DISTVERSION= 1.9.6 +CATEGORIES= www editors +MASTER_SITES= https://github.com/${PORTNAME}/${PORTNAME}/releases/download/${DISTVERSION}/ \ + https://nodejs.org/download/release/v${NODEJS_VERSION}/:node \ + LOCAL/dch:yarn +DISTFILES+= ${PORTNAME}-${DISTVERSION}${EXTRACT_SUFX} \ + ${_YARN_TARBALL}:yarn \ + node-v${NODEJS_VERSION}-headers.tar.gz:node + +MAINTAINER= dch@FreeBSD.org +COMMENT= Web-based online collaborative editor using your preferred SQL DB +WWW= https://hedgedoc.org/ + +LICENSE= AGPLv3 +LICENSE_FILE= ${WRKSRC}/LICENSE + +BUILD_DEPENDS= git:devel/git \ + npm:www/npm-node16 \ + sqlite3:databases/sqlite3 \ + yarn:www/yarn-node16 + +USES= nodejs:16,run,build python:build shebangfix +USE_RC_SUBR= ${PORTNAME} + +SHEBANG_FILES= ${WRKSRC}/bin/* + +PORTSCOUT= site:https://github.com/${PORTNAME}/${PORTNAME}/releases + +USERS= hedgedoc +GROUPS= hedgedoc + +PLIST_SUB+= ARCH=${ARCH:S/aarch64/arm64/:S/amd64/x64/} +OPTIONS_DEFINE= DOCS +OPTIONS_SUB= yes + +NODEJS_VERSION= 16.19.0 + +_YARNRC= ${_YARN_HOME}/yarnrc +_YARN_BIN= ${LOCALBASE}/bin/yarn +_YARN_CACHE= ${_YARN_HOME}/.cache +_YARN_CMD= ${SETENV} ${_YARN_ENV} ${_YARN_BIN} ${_YARN_FLAGS} +_YARN_CWD= ${WRKSRC} +_YARN_ENV= HOME=${_YARN_HOME} NODE_ENV=production \ + NPM_CONFIG_TARBALL=${DISTDIR}/node-v${NODEJS_VERSION}-headers.tar.gz \ + PUPPETEER_SKIP_CHROMIUM_DOWNLOAD=true PYTHON=${PYTHON_CMD} +_YARN_FLAGS= --skip-integrity-check --noninteractive --no-node-version-check \ + --no-default-rc --cwd ${_YARN_CWD} --cache-folder \ + ${_YARN_CACHE} --use-yarnrc ${_YARNRC} --no-progress --silent \ + --frozen-lockfile +_YARN_HOME= ${WRKDIR}/yarn +_YARN_MIRROR= ${_YARN_HOME}/mirror +_YARN_TARBALL= ${DISTNAME}-yarn-cache.txz + +# helper creates a tarball that pre-populates the yarn cache +# upload to your freefall public_distfiles/ location +tarball: patch + @${RM} -r ${_YARN_MIRROR} + (cd ${WRKSRC} && \ + ${_YARN_CMD} --ignore-scripts) + (cd ${WRKDIR} && \ + ${TAR} cvaf ${_YARN_TARBALL} yarn/mirror) + +rsync: tarball + @rsync -Phivl --inplace ${WRKDIR}/${_YARN_TARBALL} freefall:public_distfiles/ + +post-extract: + @${MV} ${WRKDIR}/${PORTNAME} \ + ${WRKSRC} + +post-patch: + @${MKDIR} ${_YARN_MIRROR} + @${ECHO_CMD} 'yarn-offline-mirror "${_YARN_MIRROR}"' > ${_YARNRC} + +do-build: + (cd ${WRKSRC} && \ + ${_YARN_CMD} --offline install) +# remove temporary build garbage and unnecessary runtime files + (cd ${WRKSRC} && \ + ${RM} -r .babelrc .editorconfig .eslint* .mailmap .remarkrc \ + .yarn* node_modules/*/deps node_modules/*/man node_modules/.bin \ + node_modules/.yarn* node_modules/@mapbox/node-pre-gyp/node_modules/.bin \ + node_modules/bufferutil/binding.gyp node_modules/bufferutil/build/Makefile \ + node_modules/bufferutil/build/Release/.deps node_modules/bufferutil/build/Release/obj.target \ + node_modules/bufferutil/build/config.gypi node_modules/bufferutil/build/node_gyp_bins \ + node_modules/bufferutil/node_modules node_modules/bufferutil/prebuilds \ + node_modules/bufferutil/src node_modules/node-addon-api \ + node_modules/node-gyp* node_modules/sqlite3/build-tmp-napi-v6 \ + node_modules/sqlite3/deps node_modules/sqlite3/node-addon-api \ + node_modules/sqlite3/node_modules node_modules/sqlite3/src \ + node_modules/utf-8-validate/binding.gyp node_modules/utf-8-validate/build/Makefile \ + node_modules/utf-8-validate/build/Release/.deps node_modules/utf-8-validate/prebuilds/ \ + node_modules/utf-8-validate/build/Release/obj.target \ + node_modules/utf-8-validate/build/config.gypi node_modules/utf-8-validate/build/node_gyp_bins \ + node_modules/utf-8-validate/node_modules node_modules/utf-8-validate/src \ + renovate.json test webpack.*) + ${FIND} -E ${WRKSRC}/node_modules -regex '.+\.(Makefile|mk|\.d|targ|info|gyp)$$' \ + -print -delete + ${FIND} ${WRKSRC}/node_modules -name '*.node' -print -exec ${STRIP_CMD} \ + {} + + ${MV} ${WRKSRC}/docs ${WRKDIR}/docs + +do-install: + ${MKDIR} ${STAGEDIR}${ETCDIR} \ + ${STAGEDIR}${DOCSDIR} \ + ${STAGEDIR}${PREFIX}/libexec/${PORTNAME}/bin \ + ${STAGEDIR}/var/db/hedgedoc/uploads + (cd ${WRKSRC} && \ + ${COPYTREE_SHARE} . ${STAGEDIR}${PREFIX}/libexec/${PORTNAME}) + (cd ${WRKSRC} && \ + ${COPYTREE_BIN} bin ${STAGEDIR}${PREFIX}/libexec/${PORTNAME}) + (cd ${WRKDIR}/docs && \ + ${COPYTREE_SHARE} . ${STAGEDIR}${DOCSDIR}) + ${INSTALL_DATA} ${WRKSRC}/config.json.example \ + ${STAGEDIR}${ETCDIR}/config.json.sample + +.include diff --git a/www/hedgedoc/distinfo b/www/hedgedoc/distinfo new file mode 100644 index 000000000000..85e456fa4a87 --- /dev/null +++ b/www/hedgedoc/distinfo @@ -0,0 +1,7 @@ +TIMESTAMP = 1673868019 +SHA256 (hedgedoc-1.9.6.tar.gz) = dfd0fca006f9075f072df058476ea542adb32b63964afb2985211e1114ab333e +SIZE (hedgedoc-1.9.6.tar.gz) = 61081612 +SHA256 (hedgedoc-1.9.6-yarn-cache.txz) = e281c71d06c226b8c67aee842d845a2fa148ffc8b1654753c383774d05c8ca80 +SIZE (hedgedoc-1.9.6-yarn-cache.txz) = 181553780 +SHA256 (node-v16.19.0-headers.tar.gz) = d0b02ce3d1198d41127daf64f204195252abff6a22da70830aaed846ba6ad864 +SIZE (node-v16.19.0-headers.tar.gz) = 568145 diff --git a/www/hedgedoc/files/hedgedoc.in b/www/hedgedoc/files/hedgedoc.in new file mode 100644 index 000000000000..f84889f46c77 --- /dev/null +++ b/www/hedgedoc/files/hedgedoc.in @@ -0,0 +1,54 @@ +#!/bin/sh + +# PROVIDE: hedgedoc +# REQUIRE: DAEMON NETWORKING +# KEYWORD: shutdown + +# Add the following lines to /etc/rc.conf to enable hedgedoc +# +# hedgedoc_enable (bool): set to NO by default +# hedgedoc_config (string): optional full path to config.json +# hedgedoc_port (string): optional HTTP port +# hedgedoc_user (string): optional user to run as +# hedgedoc_group (string): optional user to run as + +. /etc/rc.subr + +name="hedgedoc" +rcvar="hedgedoc_enable" + +load_rc_config $name + +: ${hedgedoc_enable="NO"} +: ${hedgedoc_config:="%%ETCDIR%%/config.json"} +: ${hedgedoc_port:="3000"} +: ${hedgedoc_user:="hedgedoc"} +: ${hedgedoc_group:="hedgedoc"} +: ${hedgedoc_chdir="%%LOCALBASE%%/libexec/hedgedoc"} +: ${hedgedoc_opts="NODE_ENV=production \ + HOME=/var/db/hedgedoc \ + CMD_PORT=${hedgedoc_port} \ + CMD_CONFIG_FILE=${hedgedoc_config}"} + +pidfile="/var/run/${name}/${name}.pid" +hedgedoc_nodejs_pidfile="/var/run/${name}/${name}.node" +start_precmd="hedgedoc_start_precmd" +required_files="${hedgedoc_config}" + +hedgedoc_start_precmd() +{ + if [ ! -d "/var/run/${name}" ]; then + install -d -m 0750 -o ${hedgedoc_user} -g ${hedgedoc_group} "/var/run/${name}" + install -o ${hedgedoc_user} /dev/null ${pidfile} + install -o ${hedgedoc_user} /dev/null ${hedgedoc_nodejs_pidfile} + fi +} + +command="/usr/sbin/daemon" +command_args="-t hedgedoc -T hedgedoc \ + -P ${pidfile} \ + -p ${hedgedoc_nodejs_pidfile} \ + -r -R 15 \ + /usr/bin/env ${hedgedoc_opts} /usr/local/bin/node app.js" + +run_rc_command "$1" diff --git a/www/hedgedoc/files/pkg-message.in b/www/hedgedoc/files/pkg-message.in new file mode 100644 index 000000000000..21e517d3b379 --- /dev/null +++ b/www/hedgedoc/files/pkg-message.in @@ -0,0 +1,40 @@ +[ +{ type: install + message: <