blob: fa2428cd5ff7d5c819adf011c230730f1ce9fe68 (
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
|
# Copyright 1999-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
# Maintainers should:
# 1. Join the "Gentoo" project at https://dev.gnupg.org/project/view/27/
# 2. Subscribe to release tasks like https://dev.gnupg.org/T6159
# (find the one for the current release then subscribe to it +
# any subsequent ones linked within so you're covered for a while.)
PYTHON_COMPAT=( python3_{9..11} )
DISTUTILS_OPTIONAL=1
VERIFY_SIG_OPENPGP_KEY_PATH="${BROOT}"/usr/share/openpgp-keys/gnupg.asc
inherit distutils-r1 libtool flag-o-matic qmake-utils toolchain-funcs verify-sig
DESCRIPTION="GnuPG Made Easy is a library for making GnuPG easier to use"
HOMEPAGE="https://www.gnupg.org/related_software/gpgme"
SRC_URI="mirror://gnupg/gpgme/${P}.tar.bz2
verify-sig? ( mirror://gnupg/gpgme/${P}.tar.bz2.sig )"
LICENSE="GPL-2 LGPL-2.1"
# Please check ABI on each bump, even if SONAMEs didn't change: bug #833355
# Use e.g. app-portage/iwdevtools integration with dev-libs/libabigail's abidiff.
# Subslot: SONAME of each: <libgpgme.libgpgmepp.libqgpgme>
SLOT="1/11.6.15"
KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~x64-cygwin ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
IUSE="common-lisp static-libs +cxx python qt5 test"
RESTRICT="!test? ( test )"
# - On each bump, update dep bounds on each version from configure.ac!
# - Quirky libgpg-error dep for bug #699206 (change in recent libgpg-error
# made gpgme stop installing gpgme-config)
RDEPEND=">=app-crypt/gnupg-2
>=dev-libs/libassuan-2.5.3:=
>=dev-libs/libgpg-error-1.36:=
|| (
>=dev-libs/libgpg-error-1.46-r1
<dev-libs/libgpg-error-1.46
)
python? ( ${PYTHON_DEPS} )
qt5? ( dev-qt/qtcore:5 )"
#doc? ( app-doc/doxygen[dot] )
DEPEND="${RDEPEND}
test? (
qt5? ( dev-qt/qttest:5 )
)"
BDEPEND="python? ( dev-lang/swig )
verify-sig? ( sec-keys/openpgp-keys-gnupg )"
REQUIRED_USE="qt5? ( cxx ) python? ( ${PYTHON_REQUIRED_USE} )"
do_python() {
if use python; then
pushd "lang/python" > /dev/null || die
top_builddir="../.." srcdir="." CPP="$(tc-getCPP)" distutils-r1_src_${EBUILD_PHASE}
popd > /dev/null || die
fi
}
src_prepare() {
default
elibtoolize
# bug #697456
addpredict /run/user/$(id -u)/gnupg
local MAX_WORKDIR=66
if use test && [[ "${#WORKDIR}" -gt "${MAX_WORKDIR}" ]]; then
eerror "Unable to run tests as WORKDIR='${WORKDIR}' is longer than ${MAX_WORKDIR} which causes failure!"
die "Could not run tests as requested with too-long WORKDIR."
fi
# Make best effort to allow longer PORTAGE_TMPDIR
# as usock limitation fails build/tests
ln -s "${P}" "${WORKDIR}/b" || die
S="${WORKDIR}/b"
}
src_configure() {
local languages=()
use common-lisp && languages+=( "cl" )
use cxx && languages+=( "cpp" )
if use qt5; then
languages+=( "qt" )
#use doc ||
export DOXYGEN=true
export MOC="$(qt5_get_bindir)/moc"
fi
# bug #847955
append-lfs-flags
# bug #811933 for libassuan prefix
econf \
$(use test || echo "--disable-gpgconf-test --disable-gpg-test --disable-gpgsm-test --disable-g13-test") \
--enable-languages="${languages[*]}" \
--with-libassuan-prefix="${ESYSROOT}"/usr \
$(use_enable static-libs static)
use python && emake -C lang/python prepare
do_python
}
src_compile() {
default
do_python
}
src_test() {
default
use python && distutils-r1_src_test
}
python_test() {
emake -C lang/python/tests check \
PYTHON=${EPYTHON} \
PYTHONS=${EPYTHON} \
TESTFLAGS="--python-libdir=${BUILD_DIR}/lib"
}
src_install() {
default
do_python
find "${ED}" -type f -name '*.la' -delete || die
# Backward compatibility for gentoo
# (in the past, we had slots)
dodir /usr/include/gpgme
dosym ../gpgme.h /usr/include/gpgme/gpgme.h
}
|