commit:     6262236eeeb6c1a6306cf10d79f58e9166e30c0b
Author:     Christopher Byrne <salah.coronya <AT> gmail <DOT> com>
AuthorDate: Tue Jun 11 04:06:34 2024 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Sun Dec  1 12:57:37 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=6262236e

sys-auth/sssd: add 2.10.0

Big changes in 2.10.0. A migration will be required as sssd now
runs under its own user. Many USE flags dropped and merged as
they are required anyway: "sudo" is merged as added no dependecies,
so it was dropped, "python" is merged as bits of sssd are written in
Python, so build the bindings anyway. "acl" is merge because sssd
is now capability-based, even in root mode, and "subid" is merged
because sys-apps/shadow is part of the system set, and all versions
of it in the tree support it.

A new USE flag, "passkey" is added to support passkey logins
(LDAP auth only).

Please read https://sssd.io/release-notes/sssd-2.10.0.html as this
is a major change. In particular, the default ldap_id_use_start_tls value
changed from false to true for improved security. This affects Kerberos
users without TLS in particular.

Signed-off-by: Christopher Byrne <salah.coronya <AT> gmail.com>
Closes: https://github.com/gentoo/gentoo/pull/37116
Signed-off-by: Sam James <sam <AT> gentoo.org>

 sys-auth/sssd/Manifest                             |   1 +
 ...uild-remove-superfluous-WITH_IFP-leftover.patch |  33 ++
 .../sssd-2.10.0-build-stop-overriding-CFLAGS.patch | 136 ++++++++
 ...sd-2.10.0_beta2-fix-systemd-systemconfdir.patch |  22 ++
 sys-auth/sssd/metadata.xml                         |   1 +
 sys-auth/sssd/sssd-2.10.0.ebuild                   | 371 +++++++++++++++++++++
 6 files changed, 564 insertions(+)

diff --git a/sys-auth/sssd/Manifest b/sys-auth/sssd/Manifest
index 5cf4abaf188e..257ac8082415 100644
--- a/sys-auth/sssd/Manifest
+++ b/sys-auth/sssd/Manifest
@@ -1 +1,2 @@
+DIST sssd-2.10.0.tar.gz 9177851 BLAKE2B 
027a1b9c38841427089d93ff9d8e424c7c1bf9433eea0033ce77a8c13fd1ac65de975a0ab747e1f08a6f9c4253599ed12e8cc364f0db442019603ab1c1932128
 SHA512 
d237ff135fb21bcd1040787d6dfe8fa383290fbae1f15c6917284beb38dd95ecf6418335302e26be40c65e44e8b44135499eec0b98119ea53a38098ac0bc1e2c
 DIST sssd-2.9.5.tar.gz 8001964 BLAKE2B 
e9c839e58fbeac9e8cba83b726f075c5db6ce85059546d745672c222b594f4aa26ad103f0eb3a8ff9e2b364c3502fb93c639fe9e621fefd6fecd2319f5cb499a
 SHA512 
d219f12ffc75af233f0e4ffc62c0442acc6da3cd94ed4eab7102a78821af5257c8e4ba0d06b2c99c08e06502f8d0d0bcc80540d63823dbe0f52eb0432ae7e14d

diff --git 
a/sys-auth/sssd/files/sssd-2.10.0-build-remove-superfluous-WITH_IFP-leftover.patch
 
b/sys-auth/sssd/files/sssd-2.10.0-build-remove-superfluous-WITH_IFP-leftover.patch
new file mode 100644
index 000000000000..d38fa1989d29
--- /dev/null
+++ 
b/sys-auth/sssd/files/sssd-2.10.0-build-remove-superfluous-WITH_IFP-leftover.patch
@@ -0,0 +1,33 @@
+From 3476355e8368358f6bc17ec93fb057b739094c3a Mon Sep 17 00:00:00 2001
+From: Jan Engelhardt <jeng...@inai.de>
+Date: Fri, 18 Oct 2024 12:37:01 +0200
+Subject: [PATCH 1/2] build: remove superfluous WITH_IFP leftover
+
+```
+$ autoreconf && configure
+...
+./configure: line 18674: WITH_IFP: command not found
+```
+
+Fixes: 2.10.0-beta2-63-ge5140ab08
+
+Reviewed-by: Alexey Tikhonov <atikh...@redhat.com>
+---
+ configure.ac | 1 -
+ 1 file changed, 1 deletion(-)
+
+diff --git a/configure.ac b/configure.ac
+index 380c16ba8..b5222ae97 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -187,7 +187,6 @@ WITH_SUBID_LIB_PATH
+ WITH_PASSKEY
+ WITH_SSH
+ WITH_SSH_KNOWN_HOSTS_PROXY
+-WITH_IFP
+ WITH_LIBSIFP
+ WITH_SYSLOG
+ WITH_SAMBA
+-- 
+2.45.2
+

diff --git a/sys-auth/sssd/files/sssd-2.10.0-build-stop-overriding-CFLAGS.patch 
b/sys-auth/sssd/files/sssd-2.10.0-build-stop-overriding-CFLAGS.patch
new file mode 100644
index 000000000000..4545ed20f840
--- /dev/null
+++ b/sys-auth/sssd/files/sssd-2.10.0-build-stop-overriding-CFLAGS.patch
@@ -0,0 +1,136 @@
+From c0b28db6f9ca33ebe11434c84c37e34ddb047280 Mon Sep 17 00:00:00 2001
+From: Jan Engelhardt <jeng...@inai.de>
+Date: Fri, 18 Oct 2024 12:46:28 +0200
+Subject: [PATCH 2/2] build: stop overriding CFLAGS
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+CFLAGS is reserved for the user. configure must finish in an
+idempotent state and not touch it, pursuant to automake.info §3.6
+"Variables reserved for the user".
+
+Observed:
+
+```
+$ ./configure && make CFLAGS=-O1
+…
+libtool: compile:  gcc -DHAVE_CONFIG_H -I. -Wall -I..
+-I./src/sss_client -I./src -I. -I/usr/include/samba-4.0
+-I/usr/include/dbus-1.0 -I/usr/lib64/dbus-1.0/include
+-I/usr/include/libnl3 -DLIBDIR=\"/usr/local/lib\"
+-DVARDIR=\"/usr/local/var\" -DRUNDIR=\"/usr/local/var/run\"
+-DSSS_STATEDIR=\"/usr/local/var/lib/sss\"
+-DSYSCONFDIR=\"/usr/local/etc\" -DSHLIBEXT=\"\"
+-DSSSDDATADIR=\"/usr/local/share/sssd\"
+-DSSSD_LIBEXEC_PATH=\"/usr/local/libexec/sssd\"
+-DSSSD_CONF_DIR=\"/usr/local/etc/sssd\"
+-DSSS_NSS_MCACHE_DIR=\"/usr/local/var/lib/sss/mc\"
+-DSSS_NSS_SOCKET_NAME=\"/usr/local/var/lib/sss/pipes/nss\"
+-DSSS_PAM_SOCKET_NAME=\"/usr/local/var/lib/sss/pipes/pam\"
+-DSSS_PAC_SOCKET_NAME=\"/usr/local/var/lib/sss/pipes/pac\"
+-DSSS_SUDO_SOCKET_NAME=\"/usr/local/var/lib/sss/pipes/sudo\"
+-DSSS_AUTOFS_SOCKET_NAME=\"/usr/local/var/lib/sss/pipes/autofs\"
+-DSSS_SSH_SOCKET_NAME=\"/usr/local/var/lib/sss/pipes/ssh\"
+-DLOCALEDIR=\"/usr/local/share/locale\"
+-DBASE_FILE_STEM=\"libsss_util_la-sysdb_ops\" -Wall -Wshadow
+-Wstrict-prototypes -Wpointer-arith -Wcast-qual -Wcast-align
+-Wwrite-strings -Wundef -Werror-implicit-function-declaration
+-Winit-self -Wmissing-include-dirs -fno-strict-aliasing -std=gnu99
+-O1 -MT src/db/libsss_util_la-sysdb_ops.lo -MD -MP -MF
+src/db/.deps/libsss_util_la-sysdb_ops.Tpo -c src/db/sysdb_ops.c -fPIC
+-DPIC -o src/db/.libs/libsss_util_la-sysdb_ops.o
+```
+
+Expected:
+
+```
+libtool: compile:  gcc -DHAVE_CONFIG_H -I. -Wall -I..
+-I./src/sss_client -I./src -I. -I/usr/include/samba-4.0
+-I/usr/include/dbus-1.0 -I/usr/lib64/dbus-1.0/include
+-I/usr/include/libnl3 -DLIBDIR=\"/usr/local/lib\"
+-DVARDIR=\"/usr/local/var\" -DRUNDIR=\"/usr/local/var/run\"
+-DSSS_STATEDIR=\"/usr/local/var/lib/sss\"
+-DSYSCONFDIR=\"/usr/local/etc\" -DSHLIBEXT=\"\"
+-DSSSDDATADIR=\"/usr/local/share/sssd\"
+-DSSSD_LIBEXEC_PATH=\"/usr/local/libexec/sssd\"
+-DSSSD_CONF_DIR=\"/usr/local/etc/sssd\"
+-DSSS_NSS_MCACHE_DIR=\"/usr/local/var/lib/sss/mc\"
+-DSSS_NSS_SOCKET_NAME=\"/usr/local/var/lib/sss/pipes/nss\"
+-DSSS_PAM_SOCKET_NAME=\"/usr/local/var/lib/sss/pipes/pam\"
+-DSSS_PAC_SOCKET_NAME=\"/usr/local/var/lib/sss/pipes/pac\"
+-DSSS_SUDO_SOCKET_NAME=\"/usr/local/var/lib/sss/pipes/sudo\"
+-DSSS_AUTOFS_SOCKET_NAME=\"/usr/local/var/lib/sss/pipes/autofs\"
+-DSSS_SSH_SOCKET_NAME=\"/usr/local/var/lib/sss/pipes/ssh\"
+-DLOCALEDIR=\"/usr/local/share/locale\"
+-DBASE_FILE_STEM=\"libsss_util_la-sysdb_ops\" -Wall -Wshadow
+-Wstrict-prototypes -Wpointer-arith -Wcast-qual -Wcast-align
+-Wwrite-strings -Wundef -Werror-implicit-function-declaration
+-Winit-self -Wmissing-include-dirs -fno-strict-aliasing -std=gnu99
+-O1 -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE
+-MT src/db/libsss_util_la-sysdb_ops.lo -MD -MP -MF
+src/db/.deps/libsss_util_la-sysdb_ops.Tpo -c
+```
+
+Fixes: sssd-1_3_0-3-g551aa6c36
+
+Reviewed-by: Iker Pedrosa <ipedr...@redhat.com>
+Reviewed-by: Pavel Březina <pbrez...@redhat.com>
+---
+ Makefile.am                 | 2 +-
+ configure.ac                | 3 ++-
+ src/tests/cwrap/Makefile.am | 1 +
+ src/tests/intg/Makefile.am  | 1 +
+ 4 files changed, 5 insertions(+), 2 deletions(-)
+
+diff --git a/Makefile.am b/Makefile.am
+index 839b25eae..93c7ce088 100644
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -137,7 +137,7 @@ ifp_non_root_owner_policy =
+ endif
+ 
+ 
+-AM_CFLAGS =
++AM_CFLAGS = $(my_CFLAGS)
+ if WANT_AUX_INFO
+     AM_CFLAGS += -aux-info $@.X
+ endif
+diff --git a/configure.ac b/configure.ac
+index b5222ae97..bf172e2ec 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -11,7 +11,8 @@ m4_ifdef([AC_USE_SYSTEM_EXTENSIONS],
+     [AC_USE_SYSTEM_EXTENSIONS],
+     [AC_GNU_SOURCE])
+ 
+-CFLAGS="$CFLAGS -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE 
-D_LARGEFILE64_SOURCE"
++my_CFLAGS="-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE"
++AC_SUBST([my_CFLAGS])
+ 
+ 
+ AM_INIT_AUTOMAKE([-Wall -Wno-portability foreign subdir-objects tar-pax
+diff --git a/src/tests/cwrap/Makefile.am b/src/tests/cwrap/Makefile.am
+index 797d9e640..653687d24 100644
+--- a/src/tests/cwrap/Makefile.am
++++ b/src/tests/cwrap/Makefile.am
+@@ -22,6 +22,7 @@ AM_CPPFLAGS = \
+     $(OPENLDAP_CFLAGS) \
+     $(GLIB2_CFLAGS) \
+     $(NULL)
++AM_CFLAGS = $(my_CFLAGS)
+ 
+ TESTS_ENVIRONMENT = \
+     CWRAP_TEST_SRCDIR=$(abs_srcdir) \
+diff --git a/src/tests/intg/Makefile.am b/src/tests/intg/Makefile.am
+index 802cbe18b..e2f8066a8 100644
+--- a/src/tests/intg/Makefile.am
++++ b/src/tests/intg/Makefile.am
+@@ -1,3 +1,4 @@
++AM_CFLAGS = $(my_CFLAGS)
+ dist_noinst_DATA = \
+     __init__.py \
+     config.py.m4 \
+-- 
+2.45.2
+

diff --git 
a/sys-auth/sssd/files/sssd-2.10.0_beta2-fix-systemd-systemconfdir.patch 
b/sys-auth/sssd/files/sssd-2.10.0_beta2-fix-systemd-systemconfdir.patch
new file mode 100644
index 000000000000..9959199d223b
--- /dev/null
+++ b/sys-auth/sssd/files/sssd-2.10.0_beta2-fix-systemd-systemconfdir.patch
@@ -0,0 +1,22 @@
+diff --git a/src/conf_macros.m4 b/src/conf_macros.m4
+index c0efc3ad1..07fef0c1a 100644
+--- a/src/conf_macros.m4
++++ b/src/conf_macros.m4
+@@ -227,14 +227,14 @@ AC_DEFUN([WITH_SYSTEMD_CONF_DIR],
+   if test x"$with_systemdconfdir" != x; then
+     systemdconfdir=$with_systemdconfdir
+   else
+-    pkgconfigdir=${prefix}$($PKG_CONFIG --variable=systemdsystemconfdir 
systemd)
++    pkgconfigdir=$($PKG_CONFIG --variable=systemdsystemconfdir systemd)
+     if test x"$pkgconfigdir" = x; then
+       AC_MSG_ERROR([Could not detect systemd config directory])
+     fi
+-    if test "${pkgconfigdir:0:${#prefix}}" = "${prefix}"; then
++    if test "${pkgconfigdir:0:${#sysconfdir}}" = "${sysconfdir}"; then
+         systemdconfdir=${pkgconfigdir}
+     else
+-        systemdconfdir=${prefix}${pkgconfigdir}
++        systemdconfdir=${sysconfdir}${pkgconfigdir}
+     fi
+   fi
+   AC_SUBST(systemdconfdir, [$systemdconfdir/sssd.service.d])

diff --git a/sys-auth/sssd/metadata.xml b/sys-auth/sssd/metadata.xml
index f1d1125d52ca..09bfecfe2361 100644
--- a/sys-auth/sssd/metadata.xml
+++ b/sys-auth/sssd/metadata.xml
@@ -17,6 +17,7 @@
                <flag name="acl"> Build and use the cifsidmap plugin</flag>
                <flag name="netlink">Add support for netlink protocol via 
<pkg>dev-libs/libnl</pkg></flag>
                <flag name="nfsv4">Add support for the nfsv4 idmapd plugin 
provided by <pkg>net-fs/nfs-utils</pkg></flag>
+               <flag name="passkey">Add support for FIDO2 passkeys"</flag>
                <flag name="samba">Add Privileged Attribute Certificate Support 
for Kerberos</flag>
                <flag name="subid">Support subordinate uid and gid ranges in 
FreeIPA</flag>
                <flag name="sudo">Build helper to let <pkg>app-admin/sudo</pkg> 
use sssd provided information</flag>

diff --git a/sys-auth/sssd/sssd-2.10.0.ebuild b/sys-auth/sssd/sssd-2.10.0.ebuild
new file mode 100644
index 000000000000..b885b50db19b
--- /dev/null
+++ b/sys-auth/sssd/sssd-2.10.0.ebuild
@@ -0,0 +1,371 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PLOCALES="ca de es fr ja ko pt_BR ru sv tr uk"
+PLOCALES_BIN="${PLOCALES} bg cs eu fi hu id it ka nb nl pl pt tg zh_TW zh_CN"
+PLOCALE_BACKUP="sv"
+PYTHON_COMPAT=( python3_{10..12} )
+
+inherit autotools linux-info multilib-minimal optfeature plocale \
+       python-single-r1 pam systemd tmpfiles udev toolchain-funcs
+
+DESCRIPTION="System Security Services Daemon provides access to identity and 
authentication"
+HOMEPAGE="https://github.com/SSSD/sssd";
+if [[ ${PV} != 9999 ]]; then
+       
SRC_URI="https://github.com/SSSD/sssd/releases/download/${PV}/${P}.tar.gz";
+else
+       inherit git-r3
+       EGIT_REPO_URI="https://github.com/SSSD/sssd.git";
+       EGIT_BRANCH="master"
+fi
+
+LICENSE="GPL-3"
+SLOT="0"
+IUSE="doc +netlink nfsv4 nls passkey samba selinux systemd systemtap test"
+REQUIRED_USE=" ( ${PYTHON_REQUIRED_USE} ) "
+RESTRICT="!test? ( test )"
+
+DEPEND="
+       >=app-crypt/mit-krb5-1.19.1[${MULTILIB_USEDEP}]
+       app-crypt/p11-kit
+       >=dev-libs/ding-libs-0.2
+       >=dev-libs/cyrus-sasl-2.1.25-r3[kerberos]
+       dev-libs/jansson:=
+       dev-libs/libpcre2:=
+       dev-libs/libunistring:=[${MULTILIB_USEDEP}]
+       >=dev-libs/popt-1.16
+       >=dev-libs/openssl-1.0.2:=
+       >=net-dns/bind-tools-9.9[gssapi]
+       >=net-dns/c-ares-1.10.0-r1:=[${MULTILIB_USEDEP}]
+       >=net-nds/openldap-2.4.30:=[sasl,experimental]
+       net-fs/cifs-utils[acl]
+       >=sys-apps/dbus-1.6
+       >=sys-apps/keyutils-1.5:=
+       sys-libs/libcap
+       >=sys-libs/pam-0-r1[${MULTILIB_USEDEP}]
+       >=sys-libs/talloc-2.0.7
+       >=sys-libs/tdb-1.2.9
+       >=sys-libs/tevent-0.9.16
+       virtual/ldb:=
+       virtual/libintl
+       netlink? ( dev-libs/libnl:3 )
+       nfsv4? ( >=net-fs/nfs-utils-2.3.1-r2 )
+       nls? ( >=sys-devel/gettext-0.18 )
+       passkey? ( dev-libs/libfido2:= )
+       ${PYTHON_DEPS}
+       systemd? (
+               $(python_gen_cond_dep '
+                       dev-python/python-systemd[${PYTHON_USEDEP}]
+               ')
+       )
+       samba? ( >=net-fs/samba-4.10.2[winbind] )
+       selinux? (
+               >=sys-libs/libselinux-2.1.9
+               >=sys-libs/libsemanage-2.1
+       )
+       systemd? (
+               sys-apps/systemd:=
+               sys-apps/util-linux
+       )
+       systemtap? ( dev-debug/systemtap )"
+RDEPEND="${DEPEND}
+       acct-user/sssd
+       acct-group/sssd
+       passkey? ( sys-apps/pcsc-lite[policykit] )
+       selinux? ( >=sec-policy/selinux-sssd-2.20120725-r9 )"
+BDEPEND="
+       acct-user/sssd
+       acct-group/sssd
+       sys-libs/libcap
+       virtual/pkgconfig
+       ${PYTHON_DEPS}
+       doc? ( app-text/doxygen )
+       nls? (  app-text/po4a
+               sys-devel/gettext )
+       test? (
+               dev-libs/check
+               dev-libs/softhsm:2
+               dev-util/cmocka
+               net-libs/gnutls[pkcs11,tools]
+               sys-libs/libfaketime
+               sys-libs/nss_wrapper
+               sys-libs/pam_wrapper
+               sys-libs/uid_wrapper
+       )
+       app-text/docbook-xml-dtd:4.4
+       >=dev-libs/libxslt-1.1.26
+"
+
+CONFIG_CHECK="~KEYS"
+
+PATCHES=(
+       "${FILESDIR}/${PN}-2.8.2-krb5_pw_locked.patch"
+       "${FILESDIR}/${PN}-2.10.0_beta2-fix-systemd-systemconfdir.patch"
+       
"${FILESDIR}/${PN}-2.10.0-build-remove-superfluous-WITH_IFP-leftover.patch"
+       "${FILESDIR}/${PN}-2.10.0-build-stop-overriding-CFLAGS.patch"
+)
+
+MULTILIB_WRAPPED_HEADERS=(
+       /usr/include/ipa_hbac.h
+       /usr/include/sss_idmap.h
+       /usr/include/sss_nss_idmap.h
+       # --with-ifp
+       /usr/include/sss_sifp.h
+       /usr/include/sss_sifp_dbus.h
+       # from 1.15.3
+       /usr/include/sss_certmap.h
+)
+
+sssd_migrate_files() {
+       if has_version "<=sys-auth/sssd-2.9.9999"
+       then
+               einfo "Checking if sssd is running"
+               if [ -f /run/sssd.pid ]
+               then
+                       elog "Please stop sssd after installing before"
+                       elog "performing the migration process"
+               fi
+               einfo "Checking if /var/lib/sss ownership"
+               if [ -d /var/lib/sss ] && [ $(stat -c "%U:%G" /var/lib/sss) != 
"sssd:sssd" ]
+               then
+                       elog "After installing, please execute"
+                       elog "chown -R sssd:sssd /var/lib/sss"
+               fi
+               einfo "Checking if /var/log/sssd ownership"
+               if [ -d /var/log/sssd ] && [ $(stat -c "%U:%G" /var/log/sssd) 
!= "sssd:sssd" ]
+               then
+                       elog "After installing, please execute"
+                       elog "chown -R sssd:sssd /var/log/sssd"
+               fi
+               einfo "Checking if /etc/sssd ownership"
+               if ! use systemd && [ -d /etc/sssd ] && [ $(stat -c "%U:%G" 
/etc/sssd) != "root:sssd" ]
+               then
+                       elog "After installing, please execute"
+                       elog "chown -R root:sssd /etc/sssd"
+               fi
+       fi
+}
+
+pkg_setup() {
+       linux-info_pkg_setup
+       python-single-r1_pkg_setup
+
+       sssd_migrate_files
+}
+
+src_prepare() {
+       default
+
+       plocale_get_locales > src/man/po/LINGUAS || die
+
+       sed -i \
+               -e "/_langs]/ s/ .*//" \
+               src/man/po/po4a.cfg \
+               || die
+       enable_locale() {
+               local locale=${1}
+
+               sed -i \
+                       -e "/_langs]/ s/$/ ${locale}/" \
+                       src/man/po/po4a.cfg \
+                       || die
+       }
+
+       plocale_for_each_locale enable_locale
+
+       PLOCALES="${PLOCALES_BIN}"
+       plocale_get_locales > po/LINGUAS || die
+
+       sed -i \
+               -e 's:/var/run:/run:' \
+               src/examples/logrotate \
+               || die
+
+       # disable flaky test, see https://github.com/SSSD/sssd/issues/5631
+       sed -i \
+               -e '/^\s*pam-srv-tests[ \\]*$/d' \
+               Makefile.am \
+               || die
+
+       # requires valgrind headers installed
+       sed -i \
+               -e '/^\s*test-iobuf[ \\]*$/d' \
+               Makefile.am \
+               || die
+
+       eautoreconf
+
+       multilib_copy_sources
+}
+
+src_configure() {
+       local native_dbus_cflags=$($(tc-getPKG_CONFIG) --cflags dbus-1 || die)
+
+       multilib-minimal_src_configure
+}
+
+multilib_src_configure() {
+       local myconf=()
+
+       myconf+=(
+               --libexecdir="${EPREFIX}"/usr/libexec
+               --localstatedir="${EPREFIX}"/var
+               --runstatedir="${EPREFIX}"/run
+               --sbindir="${EPREFIX}"/usr/sbin
+               --with-pid-path="${EPREFIX}"/run/sssd
+               --with-plugin-path="${EPREFIX}"/usr/$(get_libdir)/sssd
+               --enable-pammoddir="${EPREFIX}"/$(getpam_mod_dir)
+               --with-ldb-lib-dir="${EPREFIX}"/usr/$(get_libdir)/samba/ldb
+               --with-db-path="${EPREFIX}"/var/lib/sss/db
+               --with-gpo-cache-path="${EPREFIX}"/var/lib/sss/gpo_cache
+               --with-pubconf-path="${EPREFIX}"/var/lib/sss/pubconf
+               --with-pipe-path="${EPREFIX}"/var/lib/sss/pipes
+               --with-mcache-path="${EPREFIX}"/var/lib/sss/mc
+               --with-secrets-db-path="${EPREFIX}"/var/lib/sss/secrets
+               --with-log-path="${EPREFIX}"/var/log/sssd
+               --with-tmpfilesdir=/usr/lib/tmpfiles.d
+               --with-udevrulesdir="$(get_udevdir)/rules.d"
+               --with-kcm
+               --enable-kcm-renewal
+               --with-os=gentoo
+               --disable-rpath
+               --disable-static
+               # Valgrind is only used for tests
+               --disable-valgrind
+               $(use_with samba)
+               --with-smb-idmap-interface-version=6
+               --enable-cifs-idmap-plugin
+               $(multilib_native_use_with selinux)
+               --enable-krb5-locator-plugin
+               $(use_enable samba pac-responder)
+               $(multilib_native_use_with nfsv4 nfsv4-idmapd-plugin)
+               $(use_enable nls)
+               $(multilib_native_use_with netlink libnl)
+               --with-manpages
+               --with-sudo
+               $(multilib_native_with autofs)
+               $(multilib_native_with ssh)
+               --without-oidc-child
+               $(multilib_native_with passkey)
+               --with-subid
+               $(use_enable systemtap)
+               --without-python2-bindings
+               --with-python3-bindings
+               # Annoyingly configure requires that you pick systemd XOR sysv
+               --with-initscript=$(usex systemd systemd sysv)
+               --with-sssd-user=sssd
+                CPPFLAGS="${CPPFLAGS} -I/usr/include/samba-4.0"
+       )
+
+       use systemd && myconf+=(
+               --with-systemdunitdir=$(systemd_get_systemunitdir)
+       )
+
+       if ! multilib_is_native_abi; then
+               # work-around all the libraries that are used for CLI and server
+               myconf+=(
+                       {POPT,TALLOC,TDB,TEVENT,LDB}_{CFLAGS,LIBS}=' '
+                       # ldb headers are fine since native needs it
+                       # ldb lib fails... but it does not seem to bother
+                       
{DHASH,UNISTRING,INI_CONFIG_V{0,1,1_1,1_3}}_{CFLAGS,LIBS}=' '
+                       
{PCRE,CARES,SYSTEMD_LOGIN,SASL,DBUS,CRYPTO,P11_KIT}_{CFLAGS,LIBS}=' '
+                       
{NDR_NBT,SAMBA_UTIL,SMBCLIENT,NDR_KRB5PAC,JANSSON}_{CFLAGS,LIBS}=' '
+
+                       # use native include path for dbus (needed for build)
+                       DBUS_CFLAGS="${native_dbus_cflags}"
+
+                       # non-pkgconfig checks
+                       ac_cv_lib_ldap_ldap_search=yes
+                       --without-kcm
+                       --without-manpages
+               )
+       fi
+
+       econf "${myconf[@]}"
+}
+
+multilib_src_compile() {
+       if multilib_is_native_abi; then
+               default
+               use doc && emake docs
+       else
+               emake libnss_sss.la pam_sss.la pam_sss_gss.la
+               emake sssd_krb5_locator_plugin.la
+               use samba && emake sssd_pac_plugin.la
+       fi
+}
+
+multilib_src_test() {
+       if multilib_is_native_abi; then
+               local -x CK_TIMEOUT_MULTIPLIER=10
+               emake check VERBOSE=yes
+       fi
+}
+
+multilib_src_install() {
+       if multilib_is_native_abi; then
+               emake -j1 DESTDIR="${D}" install
+               python_fix_shebang "${ED}"
+               python_optimize
+       else
+               # easier than playing with automake...
+               dopammod .libs/pam_sss.so
+               dopammod .libs/pam_sss_gss.so
+
+               into /
+               dolib.so .libs/libnss_sss.so*
+
+               exeinto /usr/$(get_libdir)/krb5/plugins/libkrb5
+               doexe .libs/sssd_krb5_locator_plugin.so
+
+               if use samba; then
+                       exeinto /usr/$(get_libdir)/krb5/plugins/authdata
+                       doexe .libs/sssd_pac_plugin.so
+               fi
+       fi
+}
+
+multilib_src_install_all() {
+       einstalldocs
+
+       insinto /etc/sssd
+       insopts -m600
+       doins src/examples/sssd-example.conf
+
+       insinto /etc/logrotate.d
+       insopts -m644
+       newins src/examples/logrotate sssd
+
+       newconfd "${FILESDIR}"/sssd.conf sssd
+
+       keepdir /var/lib/sss/db
+       keepdir /var/lib/sss/deskprofile
+       keepdir /var/lib/sss/gpo_cache
+       keepdir /var/lib/sss/keytabs
+       keepdir /var/lib/sss/mc
+       keepdir /var/lib/sss/pipes/private
+       keepdir /var/lib/sss/pubconf/krb5.include.d
+       keepdir /var/lib/sss/secrets
+       keepdir /var/log/sssd
+       keepdir /etc/sssd/conf.d
+       keepdir /etc/sssd/pki
+
+       # strip empty dirs
+       if ! use doc; then
+               rm -r "${ED}"/usr/share/doc/"${PF}"/doc || die
+               rm -r "${ED}"/usr/share/doc/"${PF}"/{hbac,idmap,nss_idmap}_doc 
|| die
+       fi
+
+       rm -r "${ED}"/run || die
+       find "${ED}" -type f -name '*.la' -delete || die
+}
+
+pkg_postinst() {
+       tmpfiles_process sssd-tmpfiles.conf
+       elog "You must set up sssd.conf (default installed into /etc/sssd)"
+       elog "and (optionally) configuration in /etc/pam.d in order to use SSSD"
+       elog "features."
+       optfeature "Kerberos keytab renew (see krb5_renew_interval)" 
app-crypt/adcli
+}

Reply via email to