You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
69 lines
1.7 KiB
69 lines
1.7 KiB
# Copyright 2018-2023 Gentoo Authors
|
|
# Distributed under the terms of the GNU General Public License v2
|
|
|
|
EAPI=7
|
|
|
|
PYTHON_COMPAT=( python3_{9..11} )
|
|
|
|
inherit python-single-r1
|
|
|
|
DESCRIPTION="Host app for the PassFF WebExtension"
|
|
HOMEPAGE="https://github.com/passff/passff-host"
|
|
|
|
SRC_URI="
|
|
https://github.com/passff/passff-host/releases/download/${PV}/passff.py -> ${P}.py
|
|
https://github.com/passff/passff-host/releases/download/${PV}/passff.json -> ${P}.json
|
|
"
|
|
|
|
LICENSE="GPL-2"
|
|
SLOT="0"
|
|
KEYWORDS="~amd64 ~ppc64 ~x86"
|
|
IUSE="chrome chromium +firefox vivaldi"
|
|
REQUIRED_USE="
|
|
${PYTHON_REQUIRED_USE}
|
|
|| ( chrome chromium firefox vivaldi )
|
|
"
|
|
|
|
RDEPEND="
|
|
${PYTHON_DEPS}
|
|
app-crypt/pinentry
|
|
"
|
|
|
|
S="${WORKDIR}"
|
|
|
|
src_unpack() {
|
|
cp "${DISTDIR}/${P}.json" . || die
|
|
cp "${DISTDIR}/${P}.py" . || die
|
|
}
|
|
|
|
src_prepare() {
|
|
default
|
|
python_fix_shebang "${P}.py"
|
|
}
|
|
|
|
src_install() {
|
|
local target_dirs=()
|
|
|
|
use chrome && target_dirs+=( "/etc/opt/chrome/native-messaging-hosts" )
|
|
use chromium && target_dirs+=( "/etc/chromium/native-messaging-hosts" )
|
|
use firefox && target_dirs+=( "/usr/$(get_libdir)/mozilla/native-messaging-hosts" )
|
|
# www-client/firefox-bin compile-time dir is under /usr/lib/
|
|
use firefox && target_dirs+=( "/usr/lib/mozilla/native-messaging-hosts" )
|
|
use vivaldi && target_dirs+=( "/etc/vivaldi/native-messaging-hosts" )
|
|
|
|
for target_dir in "${target_dirs[@]}"; do
|
|
sed "s;PLACEHOLDER;${target_dir}/passff.py;g" "${P}.json" > "passff.json" || die
|
|
|
|
insinto "${target_dir}"
|
|
doins passff.json
|
|
exeinto "${target_dir}"
|
|
newexe "${P}.py" passff.py
|
|
done
|
|
}
|
|
|
|
pkg_postinst() {
|
|
elog "Make sure to use graphical version of pinentry for ${PN} to work properly"
|
|
elog "Run 'eselect pinentry list'"
|
|
elog "And select 'pinentry-qt5' or 'pinentry-gnome'. efl might work too."
|
|
}
|