summaryrefslogtreecommitdiff
path: root/net/gotify-server/Makefile
blob: 40e58fe8fc3f63a4738aa1af06e8f66f1a678cf2 (plain) (blame)
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
PORTNAME=	gotify-server
PORTVERSION=	2.6.3
DISTVERSIONPREFIX=	v
PORTREVISION=	2
CATEGORIES=	net
MASTER_SITES=	https://github.com/mfechner/freebsd-net-gotify-server/raw/refs/heads/main/:yarn_cache
DISTNAME=	server
DISTFILES=	${PORTNAME}-yarn-offline-cache-${DISTVERSION}${EXTRACT_SUFX}:yarn_cache

MAINTAINER=	mfechner@FreeBSD.org
COMMENT=	Simple server for sending and receiving messages
WWW=		https://github.com/gotify/server

LICENSE=	MIT

BROKEN_i386=	Build does not succeed (timeout in poudriere)

BUILD_DEPENDS=	yarn${NODEJS_SUFFIX}>=1.10.0:www/yarn${NODEJS_SUFFIX} \
		
USES=		go:modules,1.24 nodejs:build
USE_RC_SUBR=	gotify_server
GO_MODULE=	github.com/gotify/server/v2

_BUILD_DATE=	$$(date -u "+%Y-%m-%d-%H%M UTC")
#GO_TARGET=     ./
GO_BUILDFLAGS=	-buildmode=pie -modcacherw \
		-ldflags=" \
		-X 'main.Version=${PORTVERSION}' \
		-X 'main.Commit=${GL_TAGNAME:C/^(........).*/\1/}' \
		-X 'main.BuildDate=${_BUILD_DATE}' \
		-X 'main.Mode=prod'"

.include <bsd.port.pre.mk>

.if ${OPSYS} == FreeBSD && ${OSVERSION} >= 1400000
MAKE_ENV+=	 NODE_OPTIONS=--openssl-legacy-provider
.endif

USERS=		gotify
GROUPS=		gotify

PLIST_FILES=	bin/gotify-server

post-patch:
	# setup yarnrc for offline node_modules installatio
	@${ECHO_CMD} 'yarn-offline-mirror "${WRKDIR}/yarn-offline-cache"' >> ${WRKSRC}/ui/.yarnrc
	
pre-build:
	@cd ${WRKSRC}/ui && ${SETENV} ${MAKE_ENV} HOME=${WRKDIR} PUPPETEER_SKIP_CHROMIUM_DOWNLOAD=true yarn install --offline
	@cd ${WRKSRC}/ui && ${SETENV} ${MAKE_ENV} yarn build
	#${RM} -r ${STAGEDIR}${PREFIX}/share/.cache

pre-install:
	@${RM} ${WRKSRC}/.yarnrc

do-install:
	@${INSTALL_PROGRAM} ${WRKDIR}/bin/gotify-server ${STAGEDIR}${PREFIX}/bin/gotify-server
	@${MV} ${WRKSRC}/config.example.yml ${WRKSRC}/config.yml.sample
	@${MKDIR} ${STAGEDIR}${ETCDIR}
.for x in config.yml.sample
	@${CP} ${WRKSRC}/${x} ${STAGEDIR}${ETCDIR}/${x}
.endfor
	@${MKDIR} ${STAGEDIR}/var/db/gotify

post-install:
	@${ECHO} "@sample ${ETCDIR}/config.yml.sample" >> ${TMPPLIST}
	@${ECHO_CMD} "@owner gotify" >> ${TMPPLIST}
	@${ECHO_CMD} "@group gotify" >> ${TMPPLIST}
	@${ECHO_CMD} "@dir /var/db/gotify" >> ${TMPPLIST}
	#@${ECHO_CMD} "@dir /var/db/gotify/certs" >> ${TMPPLIST}

# To update
# 1. comment DISTFILES
# 2. Run 'make makesum'
# 3. Run 'make make-yarn-cache'
# 4. Upload yarn cache
# 5. Uncomment DITSFILES
# 6. Run 'make makesum'

make-yarn-cache: patch
	${RM} -r ${WRKDIR}/yarn-offline-cache
	cd ${WRKSRC}/ui && ${SETENV} ${MAKE_ENV} PUPPETEER_SKIP_CHROMIUM_DOWNLOAD=true yarn --frozen-lockfile --ignore-scripts
	cd ${WRKDIR} && ${TAR} -czf ${PORTNAME}-yarn-offline-cache-${DISTVERSION}${EXTRACT_SUFX} yarn-offline-cache
	@${ECHO_CMD} upload ${PORTNAME}-yarn-offline-cache-${DISTVERSION}${EXTRACT_SUFX}

.include <bsd.port.post.mk>