aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTakuya Wakazono <pastalian46@gmail.com>2024-11-12 00:07:37 +0900
committerTakuya Wakazono <pastalian46@gmail.com>2024-11-12 22:17:16 +0900
commiteb317ddb431f4869c4e728c635afe921e1fcdd68 (patch)
tree7e4987a4050fe4bd0656f331e8d7972bbd486bda /app-admin/vaultwarden/vaultwarden-1.30.4-r1.ebuild
parentdev-cpp/cpptoml: treeclean, moved to ::gentoo (diff)
downloadguru-eb317ddb431f4869c4e728c635afe921e1fcdd68.tar.gz
guru-eb317ddb431f4869c4e728c635afe921e1fcdd68.tar.bz2
guru-eb317ddb431f4869c4e728c635afe921e1fcdd68.zip
*/*: update for slotted Rust
guru version of this commit: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=01ba4dc61965ef7658a24728841c04c9a1ce4871 Closes: https://bugs.gentoo.org/943170 Closes: https://bugs.gentoo.org/943223 Closes: #260 Signed-off-by: Takuya Wakazono <pastalian46@gmail.com>
Diffstat (limited to 'app-admin/vaultwarden/vaultwarden-1.30.4-r1.ebuild')
-rw-r--r--app-admin/vaultwarden/vaultwarden-1.30.4-r1.ebuild128
1 files changed, 128 insertions, 0 deletions
diff --git a/app-admin/vaultwarden/vaultwarden-1.30.4-r1.ebuild b/app-admin/vaultwarden/vaultwarden-1.30.4-r1.ebuild
new file mode 100644
index 000000000..a934cd949
--- /dev/null
+++ b/app-admin/vaultwarden/vaultwarden-1.30.4-r1.ebuild
@@ -0,0 +1,128 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+# https://github.com/dani-garcia/vaultwarden/issues/4649
+RUST_MAX_VER="1.77.1"
+
+inherit cargo check-reqs readme.gentoo-r1 systemd tmpfiles
+
+DESCRIPTION="Unofficial Bitwarden compatible password manager server written in Rust"
+HOMEPAGE="https://github.com/dani-garcia/vaultwarden"
+
+if [[ ${PV} == 9999* ]]; then
+ inherit git-r3
+ EGIT_REPO_URI="https://github.com/dani-garcia/vaultwarden.git"
+else
+ SRC_URI="
+ https://github.com/dani-garcia/vaultwarden/archive/refs/tags/${PV}.tar.gz -> ${P}.tar.gz
+ https://github.com/rahilarious/gentoo-distfiles/releases/download/${P}/deps.tar.xz -> ${P}-deps.tar.xz
+ https://github.com/rahilarious/gentoo-distfiles/releases/download/${P}/wiki.tar.xz -> ${P}-docs.tar.xz
+"
+ KEYWORDS="~amd64"
+fi
+
+# main
+LICENSE="AGPL-3"
+# deps
+LICENSE+=" 0BSD Apache-2.0 Apache-2.0-with-LLVM-exceptions BSD-2 BSD ISC MIT MPL-2.0 Unicode-DFS-2016"
+
+SLOT="0"
+IUSE="cli mysql postgres sqlite web"
+REQUIRED_USE="|| ( mysql postgres sqlite )"
+
+RDEPEND="
+ acct-user/vaultwarden
+ acct-group/vaultwarden
+ cli? ( || ( app-admin/bitwarden-cli app-admin/bitwarden-cli-bin ) )
+ mysql? ( dev-db/mysql-connector-c:= )
+ postgres? ( dev-db/postgresql:* )
+ sqlite? ( dev-db/sqlite:3 )
+ web? ( || ( www-apps/vaultwarden-web www-apps/vaultwarden-web-bin ) )
+"
+
+DEPEND="${RDEPEND}"
+BDEPEND="virtual/pkgconfig"
+
+QA_FLAGS_IGNORED="usr/bin/${PN}"
+QA_PRESTRIPPED="usr/bin/${PN}"
+ECARGO_VENDOR="${WORKDIR}/vendor"
+
+PATCHES=(
+ "${FILESDIR}"/vaultwarden-envfile-1.30.3.patch
+)
+
+CHECKREQS_MEMORY=3G
+CHECKREQS_DISK_BUILD=2G
+
+DOC_CONTENTS="\n
+ Configuration file: /etc/${PN}.env\n
+ Data directory: /var/lib/${PN}\n
+ \n
+ MySQL & PostgreSQL users must set DATABASE_URL in config\n
+ \n
+ Default server: http://0.0.0.0:8000\n
+ Admin interface: http://0.0.0.0:8000/admin
+"
+
+pkg_setup() {
+ check-reqs_pkg_setup
+ rust_pkg_setup
+}
+
+src_unpack() {
+ if [[ ${PV} == 9999* ]]; then
+ # clone vaultwarden
+ git-r3_src_unpack
+
+ # clone vaultwarden.wiki
+ EGIT_REPO_URI="https://github.com/dani-garcia/vaultwarden.wiki.git"
+ EGIT_CHECKOUT_DIR="${WORKDIR}/${PN}.wiki"
+ git-r3_src_unpack
+
+ cargo_live_src_unpack
+ else
+ cargo_src_unpack
+ fi
+}
+
+src_prepare() {
+ default
+ use web && { sed -i -e 's|^WEB_VAULT_ENABLED=false|WEB_VAULT_ENABLED=true|g;' .env.template || die; }
+}
+
+src_configure() {
+ local myfeatures=(
+ $(usev sqlite)
+ $(usev mysql)
+ $(usev postgres postgresql )
+ )
+ cargo_src_configure
+}
+
+src_compile() {
+ # https://github.com/dani-garcia/vaultwarden/blob/main/build.rs
+ [[ ${PV} != 9999* ]] && export VW_VERSION="${PV}"
+ cargo_src_compile
+}
+
+src_install() {
+ dobin target/*/"${PN}"
+ systemd_newunit "${FILESDIR}"/vaultwarden-1.30.3.service "${PN}".service
+ newinitd "${FILESDIR}"/vaultwarden-1.30.3.initd "${PN}"
+ newtmpfiles "${FILESDIR}"/vaultwarden-tmpfiles-1.30.3.conf "${PN}".conf
+ insinto /etc
+ newins .env.template "${PN}".env
+ dosym -r /etc/"${PN}".env /etc/conf.d/"${PN}"
+ keepdir /var/lib/"${PN}"
+
+ readme.gentoo_create_doc
+ einstalldocs
+ dodoc -r ../"${PN}".wiki/*
+}
+
+pkg_postinst() {
+ tmpfiles_process "${PN}".conf
+ readme.gentoo_print_elog
+}