blob: 4facb33859e89b1aa949e90d7203d64230c92622 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
|
PORTNAME= remark42
DISTVERSIONPREFIX= v
DISTVERSION= 1.12.1
PORTREVISION= 7
CATEGORIES= www
MASTER_SITES= LOCAL/delphij:npmcache
DISTFILES= ${PORTNAME}-npm-cache-${DISTVERSION}${EXTRACT_SUFX}:npmcache
MAINTAINER= delphij@FreeBSD.org
COMMENT= Privacy-focused lightweight commenting engine
WWW= https://remark42.com/
LICENSE= MIT
LICENSE_FILE= ${WRKSRC}/LICENSE
BUILD_DEPENDS+= npm-node20>0:www/npm-node20
USES= cpe go:modules tar:xz
GO_BUILDFLAGS= -ldflags "-s -w -X main.revision=${DISTVERSION}"
GO_TARGET= app:${PREFIX}/libexec/${PORTNAME}
GO_PKGNAME= github.com/${GH_ACCOUNT}/${PORTNAME}/backend
LD_FLAG_X_PREFIX= -X ${GO_PKGNAME}/version
MAKE_ENV+= npm_config_offline=true
USE_RC_SUBR= ${PORTNAME}
USE_GITHUB= yes
GH_ACCOUNT= umputun
PLIST_FILES= libexec/${PORTNAME}
GH_TUPLE= \
Depado:bfchroma:v2.0.0:depado_bfchroma_v2/vendor/github.com/Depado/bfchroma/v2 \
PuerkitoBio:goquery:v1.8.1:puerkitobio_goquery/vendor/github.com/PuerkitoBio/goquery \
ajg:form:v1.5.1:ajg_form/vendor/github.com/ajg/form \
alecthomas:chroma:v2.8.0:alecthomas_chroma_v2/vendor/github.com/alecthomas/chroma/v2 \
andybalholm:cascadia:v1.3.2:andybalholm_cascadia/vendor/github.com/andybalholm/cascadia \
aymerick:douceur:v0.2.0:aymerick_douceur/vendor/github.com/aymerick/douceur \
cespare:xxhash:v2.2.0:cespare_xxhash_v2/vendor/github.com/cespare/xxhash/v2 \
davecgh:go-spew:v1.1.1:davecgh_go_spew/vendor/github.com/davecgh/go-spew \
dghubble:oauth1:v0.7.2:dghubble_oauth1/vendor/github.com/dghubble/oauth1 \
dgryski:go-rendezvous:9f7001d12a5f:dgryski_go_rendezvous/vendor/github.com/dgryski/go-rendezvous \
didip:tollbooth:v7.0.1:didip_tollbooth_v7/vendor/github.com/didip/tollbooth/v7 \
didip:tollbooth_chi:d662a7f6928f:didip_tollbooth_chi/vendor/github.com/didip/tollbooth_chi \
dlclark:regexp2:v1.10.0:dlclark_regexp2/vendor/github.com/dlclark/regexp2 \
etcd-io:bbolt:v1.3.7:etcd_io_bbolt/vendor/go.etcd.io/bbolt \
go-chi:chi:v5.0.10:go_chi_chi_v5/vendor/github.com/go-chi/chi/v5 \
go-chi:cors:v1.2.1:go_chi_cors/vendor/github.com/go-chi/cors \
go-chi:render:v1.0.3:go_chi_render/vendor/github.com/go-chi/render \
go-oauth2:oauth2:v4.5.2:go_oauth2_oauth2_v4/vendor/github.com/go-oauth2/oauth2/v4 \
go-pkgz:auth:v1.22.0:go_pkgz_auth/vendor/github.com/go-pkgz/auth \
go-pkgz:email:v0.4.1:go_pkgz_email/vendor/github.com/go-pkgz/email \
go-pkgz:expirable-cache:v1.0.0:go_pkgz_expirable_cache/vendor/github.com/go-pkgz/expirable-cache \
go-pkgz:jrpc:v0.3.0:go_pkgz_jrpc/vendor/github.com/go-pkgz/jrpc \
go-pkgz:lcw:v1.0.2:go_pkgz_lcw/vendor/github.com/go-pkgz/lcw \
go-pkgz:lgr:v0.11.0:go_pkgz_lgr/vendor/github.com/go-pkgz/lgr \
go-pkgz:notify:v0.2.0:go_pkgz_notify/vendor/github.com/go-pkgz/notify \
go-pkgz:repeater:v1.1.3:go_pkgz_repeater/vendor/github.com/go-pkgz/repeater \
go-pkgz:rest:v1.17.0:go_pkgz_rest/vendor/github.com/go-pkgz/rest \
go-pkgz:syncs:v1.3.2:go_pkgz_syncs/vendor/github.com/go-pkgz/syncs \
go-redis:redis:v8.11.5:go_redis_redis_v8/vendor/github.com/go-redis/redis/v8 \
go-yaml:yaml:v3.0.1:go_yaml_yaml/vendor/gopkg.in/yaml.v3 \
golang-jwt:jwt:v3.2.2:golang_jwt_jwt/vendor/github.com/golang-jwt/jwt \
golang:appengine:v1.6.7:golang_appengine/vendor/google.golang.org/appengine \
golang:crypto:v0.12.0:golang_crypto/vendor/golang.org/x/crypto \
golang:image:v0.11.0:golang_image/vendor/golang.org/x/image \
golang:net:v0.14.0:golang_net/vendor/golang.org/x/net \
golang:oauth2:v0.11.0:golang_oauth2/vendor/golang.org/x/oauth2 \
golang:protobuf:v1.5.3:golang_protobuf/vendor/github.com/golang/protobuf \
golang:snappy:v0.0.4:golang_snappy/vendor/github.com/golang/snappy \
golang:sync:v0.3.0:golang_sync/vendor/golang.org/x/sync \
golang:sys:v0.11.0:golang_sys/vendor/golang.org/x/sys \
golang:text:v0.12.0:golang_text/vendor/golang.org/x/text \
google:uuid:v1.3.0:google_uuid/vendor/github.com/google/uuid \
googleapis:google-cloud-go:compute/v1.23.0:googleapis_google_cloud_go_compute/vendor/cloud.google.com/go \
googleapis:google-cloud-go:compute/metadata/v0.2.3:googleapis_google_cloud_go/vendor/cloud.google.com/go/compute/metadata \
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:websocket:v1.5.0:gorilla_websocket/vendor/github.com/gorilla/websocket \
hashicorp:errwrap:v1.1.0:hashicorp_errwrap/vendor/github.com/hashicorp/errwrap \
hashicorp:go-multierror:v1.1.1:hashicorp_go_multierror/vendor/github.com/hashicorp/go-multierror \
hashicorp:golang-lru:v0.5.4:hashicorp_golang_lru/vendor/github.com/hashicorp/golang-lru \
jessevdk:go-flags:v1.5.0:jessevdk_go_flags/vendor/github.com/jessevdk/go-flags \
klauspost:compress:v1.16.7:klauspost_compress/vendor/github.com/klauspost/compress \
kyokomi:emoji:v2.2.12:kyokomi_emoji_v2/vendor/github.com/kyokomi/emoji/v2 \
microcosm-cc:bluemonday:v1.0.25:microcosm_cc_bluemonday/vendor/github.com/microcosm-cc/bluemonday \
mongodb:mongo-go-driver:v1.12.1:mongodb_mongo_go_driver/vendor/go.mongodb.org/mongo-driver \
montanaflynn:stats:v0.7.1:montanaflynn_stats/vendor/github.com/montanaflynn/stats \
nullrocks:identicon:7875f45b0022:nullrocks_identicon/vendor/github.com/nullrocks/identicon \
pmezard:go-difflib:v1.0.0:pmezard_go_difflib/vendor/github.com/pmezard/go-difflib \
protocolbuffers:protobuf-go:v1.31.0:protocolbuffers_protobuf_go/vendor/google.golang.org/protobuf \
rs:xid:v1.5.0:rs_xid/vendor/github.com/rs/xid \
russross:blackfriday:v2.1.0:russross_blackfriday_v2/vendor/github.com/russross/blackfriday/v2 \
skip2:go-qrcode:da1b6568686e:skip2_go_qrcode/vendor/github.com/skip2/go-qrcode \
slack-go:slack:v0.12.2:slack_go_slack/vendor/github.com/slack-go/slack \
stretchr:testify:v1.8.4:stretchr_testify/vendor/github.com/stretchr/testify \
uber-go:goleak:v1.2.1:uber_go_goleak/vendor/go.uber.org/goleak \
xdg-go:pbkdf2:v1.0.0:xdg_go_pbkdf2/vendor/github.com/xdg-go/pbkdf2 \
xdg-go:scram:v1.1.2:xdg_go_scram/vendor/github.com/xdg-go/scram \
xdg-go:stringprep:v1.0.4:xdg_go_stringprep/vendor/github.com/xdg-go/stringprep \
youmark:pkcs8:1326539a0a0a:youmark_pkcs8/vendor/github.com/youmark/pkcs8
REMARK_PIDDIR= /var/run/${PORTNAME}/
REMARK_USER?= www
REMARK_DATADIR?=/var/db/${PORTNAME}
REMARK_URL?= http://127.0.0.1:8080
USE_RC_SUBR= remark
SUB_LIST+= REMARK_PIDDIR=${REMARK_PIDDIR} \
REMARK_USER=${REMARK_USER} \
REMARK_DATADIR=${REMARK_DATADIR}
# (for maintainer) helper target to generate node_modules tarball
make-npm-cache: extract
@cd ${WRKDIR} && ${RM} -r .npm
@cd ${WRKSRC}/frontend/apps/${PORTNAME} \
&& ${SETENV} HOME=${WRKDIR} npm install --force
@cd ${WRKDIR} \
&& ${TAR} -cJf ${PORTNAME}-npm-cache-${DISTVERSION}${EXTRACT_SUFX} .npm \
${PORTNAME}-${DISTVERSION}/frontend/apps/remark42/package-lock.json \
&& ${ECHO} "Please upload the file ${WRKDIR}/${PORTNAME}-npm-cache-${DISTVERSION}${EXTRACT_SUFX}"
pre-build:
cd ${WRKSRC}/frontend/apps/${PORTNAME} && ${SETENV} HOME=${WRKDIR} npm install --force --legacy-peer-deps
cd ${WRKSRC}/frontend/apps/${PORTNAME} && ${SETENV} HOME=${WRKDIR} npm run build
${RM} -r ${WRKSRC}/backend/app/cmd/web/
${MV} ${WRKSRC}/frontend/apps/remark42/public ${WRKSRC}/backend/app/cmd/web
${FIND} ${WRKSRC}/backend/app/cmd/web -type f \( -name '*.html' -or -name '*.js' -or -name '*.mjs' \) \
-print -exec ${REINPLACE_CMD} -e "s|{% REMARK_URL %}|${REMARK_URL}|g" {} +
do-build:
cd ${WRKSRC}/backend && ${SETENV} ${MAKE_ENV} ${GO_ENV} GOPROXY=off ${GO_CMD} build ${GO_BUILDFLAGS} \
-o ${GO_WRKDIR_BIN}/${PORTNAME} ./app
.include <bsd.port.mk>
|