summaryrefslogtreecommitdiff
path: root/app-admin/keepassxc/keepassxc-2.8.0_pre260316-r1.ebuild
blob: 6077fb07fab1808be2e9b410c1871dddbb5da34d (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
# Copyright 1999-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2

EAPI=8

inherit cmake xdg

DESCRIPTION="KeePassXC - KeePass Cross-platform Community Edition"
HOMEPAGE="https://keepassxc.org"

#
# Experimental KeepassXC version with Qt6 support
#
# This version is based on the current upstream development branch and a
# patchset extracted from https://github.com/keepassxreboot/keepassxc/pull/11651
#
# Last commit on development repository:
#     commit 379be00127db60b1ddee9c67f4bfc49c15db8236
#     Author: Jonathan White <support@dmapps.us>
#     Date:   Sat Mar 14 19:21:44 2026 -0400
#
# Patch based on https://github.com/keepassxreboot/keepassxc/pull/11651 :
#     commit f93bfe5e036f9c0aafe78b08f189943ba31a9158 (HEAD -> qt6_ver2)
#     Author: Jonathan White <support@dmapps.us>
#     Date:   Sun Mar 15 22:23:06 2026 -0400
#

GIT_HASH="379be00127db60b1ddee9c67f4bfc49c15db8236"
PATCH_GIT_HASH="f93bfe5e036f9c0aafe78b08f189943ba31a9158"
SRC_URI="
	https://github.com/keepassxreboot/keepassxc/archive/${GIT_HASH}.tar.gz -> ${P}.tar.gz
	https://dev.gentoo.org/~tamiko/distfiles/${P}-qt6_patches-${PATCH_GIT_HASH}.patch.gz"

S="${WORKDIR}/${PN}-${GIT_HASH}"

#  if [[ "${PV}" = *9999* ]] ; then
#      inherit git-r3
#
#      EGIT_BRANCH="develop"
#      EGIT_REPO_URI="https://github.com/keepassxreboot/${PN}"
#  else
#      if [[ "${PV}" == *_beta* ]] ; then
#          SRC_URI="https://github.com/keepassxreboot/${PN}/archive/${PV/_/-}.tar.gz
#              -> ${P}.gh.tar.gz"
#          S="${WORKDIR}/${P/_/-}"
#      else
#          SRC_URI="https://github.com/keepassxreboot/${PN}/archive/${PV}.tar.gz
#              -> ${P}.gh.tar.gz"
#      fi
#
#      KEYWORDS="~amd64 ~arm64 ~ppc64 ~riscv ~x86"
#  fi

# COPYING order
LICENSE="|| ( GPL-2 GPL-3 ) BSD LGPL-2.1 MIT LGPL-2 CC0-1.0 Apache-2.0 GPL-2+ BSD-2"
SLOT="0"
KEYWORDS="~amd64 ~arm64 ~ppc64 ~riscv ~x86"
IUSE="X browser doc +keyring +network +ssh-agent test"

RESTRICT="!test? ( test )"

RDEPEND="
	app-crypt/argon2:=
	dev-libs/botan:3=
	dev-libs/libusb:1
	dev-libs/zxcvbn-c
	dev-qt/qtbase:6
	dev-qt/qtsvg:6
	media-gfx/qrencode:=
	sys-apps/pcsc-lite
	sys-apps/keyutils
	sys-libs/readline:0=
	virtual/minizip:=
	virtual/zlib:=
	X? (
		dev-qt/qtbase:6[X]
		x11-libs/libXext
		x11-libs/libX11
		x11-libs/libXi
		x11-libs/libXtst
	)
"
DEPEND="
	${RDEPEND}
"
BDEPEND="
	dev-qt/qttools:6[linguist]
	doc? (
		dev-ruby/asciidoctor
	)
"

PATCHES=(

	"${WORKDIR}/${P}-qt6_patches-${PATCH_GIT_HASH}.patch"
	"${FILESDIR}/${PN}-2.8.0-cmake_minimum.patch"
	"${FILESDIR}/${PN}-2.7.10-tests.patch"
)

src_prepare() {
	if ! [[ "${PV}" =~ _beta|9999 ]]; then
		echo "${PV}" > .version || die
	fi

	# Unbundle zxcvbn, bug 958062
	rm -r ./src/thirdparty/zxcvbn || die

	if has_version "<dev-libs/zxcvbn-c-2.6" ; then
		eapply "${FILESDIR}"/${PN}-2.7.10-zxcvbn.patch
	fi

	cmake_src_prepare
}

src_configure() {
	local -a mycmakeargs=(
		# Gentoo users enable ccache via e.g. FEATURES=ccache or
		# other means. We don't want the build system to enable it for us.
		-DWITH_CCACHE="OFF"
		-DWITH_GUI_TESTS="OFF"
		-DKPXC_FEATURE_UPDATES="OFF"

		-DWITH_TESTS="$(usex test)"
		-DKPXC_FEATURE_BROWSER="$(usex browser)"
		-DKPXC_FEATURE_DOCS="$(usex doc)"
		-DKPXC_FEATURE_FDOSECRETS="$(usex keyring)"
		-DKPXC_FEATURE_NETWORK="$(usex network)"
		-DKPXC_FEATURE_SSHAGENT="$(usex ssh-agent)"
		-DWITH_X11="$(usex X)"
	)

	if [[ "${PV}" == *_beta* ]] ; then
		mycmakeargs+=(
			-DOVERRIDE_VERSION="${PV/_/-}"
		)
	fi

	cmake_src_configure
}