dev-util/ccache: arm64 stable (bug #725006)
[gentoo.git] / app-crypt / mit-krb5 / mit-krb5-1.18.1.ebuild
1 # Copyright 1999-2020 Gentoo Authors
2 # Distributed under the terms of the GNU General Public License v2
3
4 EAPI=7
5
6 PYTHON_COMPAT=( python3_{6,7,8} )
7 inherit autotools flag-o-matic multilib-minimal python-any-r1 systemd
8
9 MY_P="${P/mit-}"
10 P_DIR=$(ver_cut 1-2)
11 DESCRIPTION="MIT Kerberos V"
12 HOMEPAGE="https://web.mit.edu/kerberos/www/"
13 SRC_URI="https://web.mit.edu/kerberos/dist/krb5/${P_DIR}/${MY_P}.tar.gz"
14
15 LICENSE="openafs-krb5-a BSD MIT OPENLDAP BSD-2 HPND BSD-4 ISC RSA CC-BY-SA-3.0 || ( BSD-2 GPL-2+ )"
16 SLOT="0"
17 KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sparc ~x86"
18 IUSE="cpu_flags_x86_aes doc +keyutils libressl lmdb nls openldap +pkinit selinux +threads test xinetd"
19
20 # Test suite requires network access
21 RESTRICT="test"
22
23 DEPEND="
24         !!app-crypt/heimdal
25         >=sys-libs/e2fsprogs-libs-1.42.9[${MULTILIB_USEDEP}]
26         || (
27                 >=dev-libs/libverto-0.2.5[libev,${MULTILIB_USEDEP}]
28                 >=dev-libs/libverto-0.2.5[libevent,${MULTILIB_USEDEP}]
29                 >=dev-libs/libverto-0.2.5[tevent,${MULTILIB_USEDEP}]
30         )
31         keyutils? ( >=sys-apps/keyutils-1.5.8:=[${MULTILIB_USEDEP}] )
32         lmdb? ( dev-db/lmdb )
33         nls? ( sys-devel/gettext[${MULTILIB_USEDEP}] )
34         openldap? ( >=net-nds/openldap-2.4.38-r1[${MULTILIB_USEDEP}] )
35         pkinit? (
36                 !libressl? ( >=dev-libs/openssl-1.0.1h-r2:0=[${MULTILIB_USEDEP}] )
37                 libressl? ( dev-libs/libressl:0=[${MULTILIB_USEDEP}] )
38         )
39         xinetd? ( sys-apps/xinetd )
40         "
41 BDEPEND="
42         ${PYTHON_DEPS}
43         virtual/yacc
44         cpu_flags_x86_aes? (
45                 amd64? ( dev-lang/yasm )
46                 x86? ( dev-lang/yasm )
47         )
48         doc? ( virtual/latex-base )
49         test? (
50                 ${PYTHON_DEPS}
51                 dev-lang/tcl:0
52                 dev-util/dejagnu
53                 dev-util/cmocka
54         )"
55 RDEPEND="${DEPEND}
56         selinux? ( sec-policy/selinux-kerberos )"
57
58 S=${WORKDIR}/${MY_P}/src
59
60 PATCHES=(
61         "${FILESDIR}/${PN}-1.12_warn_cflags.patch"
62         "${FILESDIR}/${PN}-config_LDFLAGS-r1.patch"
63         "${FILESDIR}/${PN}-1.16.3-libressl-r1.patch"
64         "${FILESDIR}/${PN}_dont_create_run.patch"
65         "${FILESDIR}/${PN}-1.18-libressl.patch"
66 )
67
68 MULTILIB_CHOST_TOOLS=(
69         /usr/bin/krb5-config
70 )
71
72 src_prepare() {
73         default
74         # Make sure we always use the system copies.
75         rm -rf util/{et,ss,verto}
76         sed -i 's:^[[:space:]]*util/verto$::' configure.ac || die
77
78         eautoreconf
79 }
80
81 src_configure() {
82         # QA
83         append-flags -fno-strict-aliasing
84         append-flags -fno-strict-overflow
85
86         multilib-minimal_src_configure
87 }
88
89 multilib_src_configure() {
90         ECONF_SOURCE=${S} \
91         WARN_CFLAGS="set" \
92         econf \
93                 $(use_with openldap ldap) \
94                 "$(multilib_native_use_with test tcl "${EPREFIX}/usr")" \
95                 $(use_enable nls) \
96                 $(use_enable pkinit) \
97                 $(use_enable threads thread-support) \
98                 $(use_with lmdb) \
99                 $(use_with keyutils) \
100                 --without-hesiod \
101                 --enable-shared \
102                 --with-system-et \
103                 --with-system-ss \
104                 --enable-dns-for-realm \
105                 --enable-kdc-lookaside-cache \
106                 --with-system-verto \
107                 --disable-rpath
108 }
109
110 multilib_src_compile() {
111         emake -j1
112 }
113
114 multilib_src_test() {
115         multilib_is_native_abi && emake -j1 check
116 }
117
118 multilib_src_install() {
119         emake \
120                 DESTDIR="${D}" \
121                 EXAMPLEDIR="${EPREFIX}/usr/share/doc/${PF}/examples" \
122                 install
123 }
124
125 multilib_src_install_all() {
126         # default database dir
127         keepdir /var/lib/krb5kdc
128
129         cd ..
130         dodoc README
131
132         if use doc; then
133                 dodoc -r doc/html
134                 docinto pdf
135                 dodoc doc/pdf/*.pdf
136         fi
137
138         newinitd "${FILESDIR}"/mit-krb5kadmind.initd-r2 mit-krb5kadmind
139         newinitd "${FILESDIR}"/mit-krb5kdc.initd-r2 mit-krb5kdc
140         newinitd "${FILESDIR}"/mit-krb5kpropd.initd-r2 mit-krb5kpropd
141         newconfd "${FILESDIR}"/mit-krb5kadmind.confd mit-krb5kadmind
142         newconfd "${FILESDIR}"/mit-krb5kdc.confd mit-krb5kdc
143         newconfd "${FILESDIR}"/mit-krb5kpropd.confd mit-krb5kpropd
144
145         systemd_newunit "${FILESDIR}"/mit-krb5kadmind.service mit-krb5kadmind.service
146         systemd_newunit "${FILESDIR}"/mit-krb5kdc.service mit-krb5kdc.service
147         systemd_newunit "${FILESDIR}"/mit-krb5kpropd.service mit-krb5kpropd.service
148         systemd_newunit "${FILESDIR}"/mit-krb5kpropd_at.service "mit-krb5kpropd@.service"
149         systemd_newunit "${FILESDIR}"/mit-krb5kpropd.socket mit-krb5kpropd.socket
150
151         insinto /etc
152         newins "${ED}/usr/share/doc/${PF}/examples/krb5.conf" krb5.conf.example
153         insinto /var/lib/krb5kdc
154         newins "${ED}/usr/share/doc/${PF}/examples/kdc.conf" kdc.conf.example
155
156         if use openldap ; then
157                 insinto /etc/openldap/schema
158                 doins "${S}/plugins/kdb/ldap/libkdb_ldap/kerberos.schema"
159         fi
160
161         if use xinetd ; then
162                 insinto /etc/xinetd.d
163                 newins "${FILESDIR}/kpropd.xinetd" kpropd
164         fi
165 }