1 # Copyright 1999-2020 Gentoo Authors
2 # Distributed under the terms of the GNU General Public License v2
6 PYTHON_COMPAT=( python3_{6,7,8} )
7 inherit autotools flag-o-matic multilib-minimal python-any-r1 systemd
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"
15 LICENSE="openafs-krb5-a BSD MIT OPENLDAP BSD-2 HPND BSD-4 ISC RSA CC-BY-SA-3.0 || ( BSD-2 GPL-2+ )"
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"
20 # Test suite requires network access
25 >=sys-libs/e2fsprogs-libs-1.42.9[${MULTILIB_USEDEP}]
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}]
31 keyutils? ( >=sys-apps/keyutils-1.5.8:=[${MULTILIB_USEDEP}] )
33 nls? ( sys-devel/gettext[${MULTILIB_USEDEP}] )
34 openldap? ( >=net-nds/openldap-2.4.38-r1[${MULTILIB_USEDEP}] )
36 !libressl? ( >=dev-libs/openssl-1.0.1h-r2:0=[${MULTILIB_USEDEP}] )
37 libressl? ( dev-libs/libressl:0=[${MULTILIB_USEDEP}] )
39 xinetd? ( sys-apps/xinetd )
45 amd64? ( dev-lang/yasm )
46 x86? ( dev-lang/yasm )
48 doc? ( virtual/latex-base )
56 selinux? ( sec-policy/selinux-kerberos )"
58 S=${WORKDIR}/${MY_P}/src
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"
68 MULTILIB_CHOST_TOOLS=(
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
83 append-flags -fno-strict-aliasing
84 append-flags -fno-strict-overflow
86 multilib-minimal_src_configure
89 multilib_src_configure() {
93 $(use_with openldap ldap) \
94 "$(multilib_native_use_with test tcl "${EPREFIX}/usr")" \
96 $(use_enable pkinit) \
97 $(use_enable threads thread-support) \
99 $(use_with keyutils) \
104 --enable-dns-for-realm \
105 --enable-kdc-lookaside-cache \
106 --with-system-verto \
110 multilib_src_compile() {
114 multilib_src_test() {
115 multilib_is_native_abi && emake -j1 check
118 multilib_src_install() {
121 EXAMPLEDIR="${EPREFIX}/usr/share/doc/${PF}/examples" \
125 multilib_src_install_all() {
126 # default database dir
127 keepdir /var/lib/krb5kdc
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
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
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
156 if use openldap ; then
157 insinto /etc/openldap/schema
158 doins "${S}/plugins/kdb/ldap/libkdb_ldap/kerberos.schema"
162 insinto /etc/xinetd.d
163 newins "${FILESDIR}/kpropd.xinetd" kpropd