# Copyright 2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 # $Id: 703736139179caebbe654c1a05147397d7864d57 $ EAPI=8 CMAKE_BUILD_TYPE='Release' inherit cmake virtualx xdg-utils DESCRIPTION="Secure, cross-platform password manager (fork of KeePassXC 2.7.10)" HOMEPAGE="https://chipass.org/" if [[ "${PV}" = *9999* ]] ; then inherit git-r3 EGIT_BRANCH="main" EGIT_REPO_URI="https://codeberg.org/ChiPass/ChiPass" else MY_PN='ChiPass' MY_P="${MY_PN}-${PV}" SRC_URI="https://codeberg.org/ChiPass/ChiPass/releases/download/v${PV}/${MY_P}-source.tar.bz2" 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" IUSE="X autotype browser keeshare +keyring +network +ssh-agent test yubikey" RESTRICT="!test? ( test )" REQUIRED_USE="autotype? ( X )" RDEPEND=" !app-admin/keepassxc app-crypt/argon2:= dev-libs/botan:3= dev-libs/zxcvbn-c dev-qt/qt5compat:6 dev-qt/qtbase:6=[concurrent,dbus,gui,network,widgets] dev-qt/qtsvg:6 media-gfx/qrencode:= sys-libs/readline:= virtual/minizip:= virtual/zlib:= yubikey? ( sys-apps/pcsc-lite virtual/libusb:1 ) X? ( x11-libs/libX11 x11-libs/libXtst ) " DEPEND=" ${RDEPEND} test? ( dev-qt/qtbase:6[test] ) " BDEPEND=" dev-libs/appstream dev-qt/qttools:6[linguist] dev-ruby/asciidoctor virtual/pkgconfig test? ( x11-misc/xclip ) " PATCHES=( "${FILESDIR}"/${P}-manpages.patch "${FILESDIR}"/${P}-docdir.patch ) src_unpack() { # https://codeberg.org/ChiPass/ChiPass/issues/120 mkdir "${S}" || die cd "${S}" || die default } src_prepare() { if ! [[ "${PV}" =~ _beta|9999 ]]; then echo "${PV}" > .version || die fi # Unbundle zxcvbn, bug 958062 rm -r vendor/zxcvbn || die sed -i '/zxcvbn/d' vendor/CMakeLists.txt || die 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. -DCHIPASS_COMPILER_LAUNCHER='' -DCHIPASS_WITH_GUI_TESTS="OFF" -DCHIPASS_USE_BOTAN3="ON" -DCHIPASS_WITH_UPDATE_CHECK="OFF" -DCHIPASS_WITH_TESTS="$(usex test)" -DCHIPASS_WITH_AUTOTYPE="$(usex autotype)" -DCHIPASS_WITH_BROWSER="$(usex browser)" -DCHIPASS_WITH_BROWSER_PASSKEYS="$(usex browser)" -DCHIPASS_WITH_MANUAL=ON -DCHIPASS_WITH_FDOSECRETS="$(usex keyring)" -DCHIPASS_WITH_KEESHARE="$(usex keeshare)" -DCHIPASS_WITH_NETWORKING="$(usex network)" -DCHIPASS_WITH_SSHAGENT="$(usex ssh-agent)" -DCHIPASS_DESKTOP_TYPES="$(usev X 'X11;')Wayland" -DCHIPASS_WITH_YUBIKEY="$(usex yubikey)" ) if [[ "${PV}" == *_beta* ]] ; then mycmakeargs+=( -DOVERRIDE_VERSION="${PV/_/-}" ) fi cmake_src_configure } src_install() { cmake_src_install local mname mdir='/usr/share/man/man1' for mname in ChiPass{,-cli}.1 ; do echo ".so man1/${mname}" > "${ED}${mdir}/${mname,,}" done } pkg_postinst() { xdg_desktop_database_update xdg_icon_cache_update xdg_mimeinfo_database_update } pkg_postrm() { xdg_desktop_database_update xdg_icon_cache_update xdg_mimeinfo_database_update }