summaryrefslogtreecommitdiff
path: root/security/vaultwarden/Makefile
blob: e183a1f15c8cf3db674c7a5628f67f09af2c101c (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
# $NetBSD: Makefile,v 1.1 2022/08/17 15:44:16 hauke Exp $

DISTNAME=	vaultwarden-${PKGVER}
PKGVER=		1.25.2
CATEGORIES=	security
MASTER_SITES=	${MASTER_SITE_GITHUB:=dani-garcia/}
EXTRACT_SUFX=	.tar.gz

DISTFILES=	${DISTNAME}${EXTRACT_SUFX}

MAINTAINER=	hauke@NetBSD.org
HOMEPAGE=	https://github.com/dani-garcia/vaultwarden
COMMENT=	Bitwarden compatible backend server

LICENSE=	gnu-gpl-v3

# From make print-cargo-depends > cargo-depends.mk
.include "cargo-depends.mk"

USE_TOOLS+=	perl

DEPENDS+=	daemonize>=1.7.8:../../sysutils/daemonize

MAKE_ENV+=	OPENSSL_DIR=${SSLBASE:Q}

.include "../../mk/bsd.prefs.mk"

.include "options.mk"

BUILD_DEFS+=		VARBASE

VAULTWARDEN_LOGDIR=	${VARBASE}/log/vaultwarden
VAULTWARDEN_DATADIR=	${VARBASE}/vaultwarden

EGDIR=			share/examples/vaultwarden

VAULTWARDEN_USER?=	vwarden
VAULTWARDEN_GROUP?=	vwarden

PKG_USERS_VARS+=	VAULTWARDEN_USER
PKG_GROUPS_VARS+=	VAULTWARDEN_GROUP
PKG_GROUPS=		${VAULTWARDEN_GROUP}
PKG_USERS=		${VAULTWARDEN_USER}:${VAULTWARDEN_GROUP}

PKG_GECOS.${VAULTWARDEN_USER}=	VAULTWARDEN password server
PKG_HOME.${VAULTWARDEN_USER}=	${VAULTWARDEN_DATADIR}
PKG_SHELL.${VAULTWARDEN_USER}=	${NOLOGIN}

RCD_SCRIPTS+=		vaultwarden
FILES_SUBST+=		VAULTWARDEN_USER=${VAULTWARDEN_USER:Q}
FILES_SUBST+=		VAULTWARDEN_GROUP=${VAULTWARDEN_GROUP:Q}
FILES_SUBST+=		VAULTWARDEN_DATADIR=${VAULTWARDEN_DATADIR:Q}
FILES_SUBST+=		VAULTWARDEN_LOGDIR=${VAULTWARDEN_LOGDIR:Q}

MESSAGE_SUBST+=		VAULTWARDEN_DATADIR=${VAULTWARDEN_DATADIR:Q}
MESSAGE_SUBST+=		VAULTWARDEN_LOGDIR=${VAULTWARDEN_LOGDIR:Q}

CONF_FILES+=		${EGDIR}/vaultwarden.env.sample \
				${PKG_SYSCONFDIR}/vaultwarden.env

INSTALLATION_DIRS=	sbin ${EGDIR}

OWN_DIRS_PERMS+=	${VAULTWARDEN_LOGDIR} ${VAULTWARDEN_USER} \
				${VAULTWARDEN_GROUP} 0750
OWN_DIRS+=		${VAULTWARDEN_DATADIR}
OWN_DIRS_PERMS+=	${VAULTWARDEN_DATADIR}/data ${VAULTWARDEN_USER} \
				${VAULTWARDEN_GROUP} 0700

SUBST_CLASSES+=		paths
SUBST_STAGE.paths=	pre-install
SUBST_MESSAGE.paths=	Adjusting package paths.
SUBST_FILES.paths=	.env.template
SUBST_VARS.paths=	PREFIX PKG_SYSCONFDIR VAULTWARDEN_LOGDIR WEB_VAULT_DIR

do-install:
	${INSTALL_DATA} ${WRKSRC}/.env.template \
		 ${DESTDIR}${PREFIX}/${EGDIR}/vaultwarden.env.sample
	${INSTALL_DATA} ${FILESDIR}/httpd-vaultwarden.conf \
		 ${DESTDIR}${PREFIX}/${EGDIR}/httpd-vaultwarden.conf.sample
	${INSTALL_PROGRAM} ${WRKSRC}/target/release/vaultwarden \
		 ${DESTDIR}${PREFIX}/sbin/vaultwarden

.include "../../devel/capnproto/buildlink3.mk"
.include "../../security/nettle/buildlink3.mk"
.include "../../devel/gmp/buildlink3.mk"
.include "../../security/openssl/buildlink3.mk"

.include "../../lang/rust/cargo.mk"

.include "../../mk/bsd.pkg.mk"