PORTNAME= comentario DISTVERSIONPREFIX= v DISTVERSION= 3.18.0 PORTREVISION= 1 CATEGORIES= www MAINTAINER= kbowling@FreeBSD.org COMMENT= Self-hosted comment engine for websites WWW= https://comentario.app/ \ https://gitlab.com/comentario/comentario LICENSE= MIT LICENSE_FILE= ${WRKSRC}/LICENSE ONLY_FOR_ARCHS= amd64 ONLY_FOR_ARCHS_REASON= Frontend build dependencies include amd64-only native modules BUILD_DEPENDS= openapi-generator:devel/openapi-generator \ swagger:devel/goswagger USES= go:1.26+,modules nodejs:24,build npm:yarn4 USE_GITLAB= yes USE_RC_SUBR= comentario GO_MOD_DIST= gitlab GO_MODULE= gitlab.com/comentario/comentario GO_BUILDFLAGS+= -ldflags="-s -w -X main.version=${DISTVERSION} -X main.date=${_BUILD_DATE}" NPM_CACHE_SETUP_CMD= ${SH} -c \ "${NPM_CMDNAME} config set nodeLinker node-modules; ${NPM_CMDNAME} config set enableGlobalCache false; ${NPM_CMDNAME} config set cacheFolder './${NPM_MODULE_CACHE}'" NPM_PREFETCH_ARCHS= amd64 _BUILD_DATE= $$(date -ur $$(${AWK} '/^TIMESTAMP/ {print $$3}' ${DISTINFO_FILE}) '+%FT%TZ') _SWAG_MOD= github.com/go-openapi/swag@v0.23.0 SUB_FILES= pkg-message SUB_LIST= COMENTARIO_DBDIR=/var/db/${PORTNAME} \ COMENTARIO_GROUP=${GROUPS} \ COMENTARIO_USER=${USERS} USERS= ${PORTNAME} GROUPS= ${PORTNAME} PLIST_FILES= "@dir(${USERS},${GROUPS},0700) /var/db/${PORTNAME}" \ "@sample(root,${GROUPS},0640) ${ETCDIR_REL}/secrets.yaml.sample" \ "@sample ${ETCDIR_REL}/comentario.conf.sample" \ bin/${PORTNAME} PORTDATA= * # go.mk's "go mod tidy" runs before swagger-generated sources exist and # rewrites go.mod. Restore the distfile copies before generate/vendor. # Generated restapi still imports the unsplit github.com/go-openapi/swag # module, which is not in upstream go.mod. _RESTORE_GOMOD= ${CP} ${DISTDIR}/${DIST_SUBDIR}/go.mod ${WRKSRC}/go.mod && \ ${TAR} -xOf ${DISTDIR}/${DIST_SUBDIR}/${DISTNAME}.tar.bz2 \ ${DISTNAME}/go.sum > ${WRKSRC}/go.sum post-fetch: @${ECHO_MSG} "===> Fetching ${_SWAG_MOD}" @${RM} -r ${WRKDIR}/.swagfetch @${MKDIR} ${WRKDIR}/.swagfetch @cd ${WRKDIR}/.swagfetch && ${SETENVI} ${WRK_ENV} ${GO_ENV} \ GOPROXY=${GO_GOPROXY} ${GO_CMD} mod init tmp @cd ${WRKDIR}/.swagfetch && ${SETENVI} ${WRK_ENV} \ ${HTTP_PROXY:DHTTP_PROXY=${HTTP_PROXY:Q}} \ ${http_proxy:Dhttp_proxy=${http_proxy:Q}} \ ${HTTPS_PROXY:DHTTPS_PROXY=${HTTPS_PROXY:Q}} \ ${https_proxy:Dhttps_proxy=${https_proxy:Q}} \ ${NO_PROXY:DNO_PROXY=${NO_PROXY:Q}} \ ${no_proxy:Dno_proxy=${no_proxy:Q}} \ ${GO_ENV} \ GOPROXY=${GO_GOPROXY} \ ${GO_CMD} get ${_SWAG_MOD} pre-build: @${ECHO_MSG} "===> Generating frontend API client" @${RM} -r ${WRKSRC}/frontend/generated-api @openapi-generator generate \ --additional-properties=ngVersion=22.1.0 \ -i ${WRKSRC}/resources/swagger/swagger.yml \ -g typescript-angular \ -o ${WRKSRC}/frontend/generated-api @${ECHO_MSG} "===> Building frontend" @${RM} -r ${WRKSRC}/frontend/.angular ${WRKSRC}/.angular @cd ${WRKSRC} && ${SETENV} ${MAKE_ENV} HOME=${WRKDIR} \ ${NPM_CMDNAME} workspace comentario-frontend run build:prod @${ECHO_MSG} "===> Building embed widget" @cd ${WRKSRC} && ${SETENV} ${MAKE_ENV} HOME=${WRKDIR} \ ${NPM_CMDNAME} workspace comentario-embed run build:prod @${ECHO_MSG} "===> Generating backend API" @${_RESTORE_GOMOD} @cd ${GO_WRKSRC} && ${SETENV} ${MAKE_ENV} ${GO_ENV} GOPROXY=off \ GOSUMDB=off GOFLAGS="-mod=mod -modcacherw" ${GO_CMD} generate @cd ${GO_WRKSRC} && ${SETENV} ${MAKE_ENV} ${GO_ENV} \ GOPATH=${WRKDIR}/.gopath GOPROXY=${GO_MODCACHE} GOSUMDB=off \ GOFLAGS="-mod=mod -modcacherw" \ ${GO_CMD} get ${_SWAG_MOD} @cd ${GO_WRKSRC} && ${SETENV} ${MAKE_ENV} ${GO_ENV} \ GOPATH=${WRKDIR}/.gopath GOPROXY=${GO_MODCACHE} GOSUMDB=off \ ${GO_CMD} mod vendor post-install: @${MKDIR} ${STAGEDIR}${DATADIR} \ ${STAGEDIR}${ETCDIR} \ ${STAGEDIR}/var/db/${PORTNAME} (cd ${WRKSRC}/build/frontend && \ ${COPYTREE_SHARE} . ${STAGEDIR}${DATADIR}) ${SED} -e 's|^PORT=80$$|PORT=8080|' \ -e 's|^STATIC_PATH=/usr/lib/comentario/frontend|STATIC_PATH=${DATADIR}|' \ -e 's|^SECRETS_FILE=/etc/comentario/secrets.yaml|SECRETS_FILE=${ETCDIR}/secrets.yaml|' \ ${WRKSRC}/resources/etc/comentario/comentario.conf \ > ${WRKDIR}/comentario.conf.sample ${SED} -e 's|/var/lib/comentario/comentario.sqlite3|/var/db/${PORTNAME}/comentario.sqlite3|' \ ${WRKSRC}/resources/etc/comentario/secrets.yaml \ > ${WRKDIR}/secrets.yaml.sample ${INSTALL_DATA} ${WRKDIR}/comentario.conf.sample \ ${WRKDIR}/secrets.yaml.sample ${STAGEDIR}${ETCDIR} .include