https://blogs.gentoo.org/ago/2020/07/04/gentoo-tinderbox/ Issue: sys-auth/sssd-2.2.3 fails to compile. Discovered on: amd64 (internal ref: ci) NOTE: This machine uses GLIBC-2.32. If you think that this issue is strictly related to GLIBC please block bug 736174.
Created attachment 654676 [details] build.log.xz build log and emerge --info (compressed because it exceeds attachment limit, use 'xzless' to read it)
Created attachment 654678 [details] 1-autoconf.out 1-autoconf.out
I'm currently migrating to a new machine and I'm seeing the issue too. The old laptop has glibc 2.31-r5: $ equery b /usr/include/nss.h * Searching for /usr/include/nss.h ... sys-libs/glibc-2.31-r5 (/usr/include/nss.h) And the new one has glibc 2.32: $ equery b /usr/include/nss.h * Searching for /usr/include/nss.h ... sys-libs/glibc-2.32 (/usr/include/nss.h) It seems like the attached logs are incomplete, so I'm posing the error from the log here: src/responder/nss/nss_cmd.c:736:16: error: ‘nss_setnetgrent’ redeclared as dif ferent kind of symbol 736 | static errno_t nss_setnetgrent(struct cli_ctx *cli_ctx, | ^~~~~~~~~~~~~~~ In file included from ./src/sss_client/sss_cli.h:28, from ./src/db/sysdb.h:27, from src/responder/nss/nss_cmd.c:26: /usr/include/nss.h:184:25: note: previous declaration of ‘nss_setnetgrent’ was here 184 | typedef enum nss_status nss_setnetgrent (const char *, struct __netgrent *); | ^~~~~~~~~~~~~~~ make[2]: *** [Makefile:20366: src/responder/nss/nss_cmd.o] Error 1 make[2]: Leaving directory '/var/tmp/portage/sys-auth/sssd-2.2.3/work/sssd-2.2.3-abi_x86_64.amd64' make[1]: *** [Makefile:37277: all-recursive] Error 1 make[1]: Leaving directory '/var/tmp/portage/sys-auth/sssd-2.2.3/work/sssd-2.2.3-abi_x86_64.amd64' make: *** [Makefile:12252: all] Error 2 * ERROR: sys-auth/sssd-2.2.3::gentoo failed (compile phase): * emake failed It looks like the sssd source use "nss_setnetgrent" and that causes a conflict: (cwd: /var/tmp/portage/sys-auth/sssd-2.2.3/work/sssd-2.2.3) $ grep -nr nss_setnetgrent\\b /usr/include/ src/responder/nss/nss_cmd.c /usr/include/nss.h:184:typedef enum nss_status nss_setnetgrent (const char *, struct __netgrent *); /usr/include/nss.h:252: extern nss_setnetgrent _nss_##module##_setnetgrent; \ src/responder/nss/nss_cmd.c:736:static errno_t nss_setnetgrent(struct cli_ctx *cli_ctx, src/responder/nss/nss_cmd.c:1043: return nss_setnetgrent(cli_ctx, CACHE_REQ_NETGROUP_BY_NAME,
It looks like the upstream is going to switch to OpenSSL instead of NSS by default: https://github.com/SSSD/sssd/issues/1041. Maybe the ebuild should do the same.
The upstream sssd has this patched about half a year ago. The commit is https://github.com/SSSD/sssd/commit/fe9eeb51be06059721e873f77092b1e9ba08e6c1 (https://pagure.io/SSSD/sssd/c/fe9eeb51be06059721e873f77092b1e9ba08e6c1?branch=master), PR: https://github.com/SSSD/sssd/pull/995. The changelogs don't mention it but I've checked that it's included in the master branch and also in v2.3.0 and v2.3.1. It is not backported to v2.2.x series, though (the last version present in the Gentoo tree is 2.2.3). Refs: * https://lists.pagure.io/archives/list/sssd-devel@lists.fedorahosted.org/thread/IMFFGQIGBHMNPAFREL2AFTCVT5GTMBEU/?sort=date * https://www.mail-archive.com/sssd-devel@lists.fedorahosted.org/msg43066.html
I've verified that dropping in the patch to 2.2.3 as a user patch applies cleanly. So here's a workaround for anybody who comes here from Google: > sudo mkdir -pv /etc/portage/patches/sys-auth/sssd-2.2.3 > sudo wget -O /etc/portage/patches/sys-auth/sssd-2.2.3/fe9eeb51be06059721e873f77092b1e9ba08e6c1.patch https://github.com/SSSD/sssd/commit/fe9eeb51be06059721e873f77092b1e9ba08e6c1.patch > sudo emerge '=sys-auth/sssd-2.2.3'
I've submitted a PR here: https://github.com/gentoo/gentoo/pull/17287
The bug has been closed via the following commit(s): https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=3562a559b983b6b72d64f0b41dc50153aba5b30a commit 3562a559b983b6b72d64f0b41dc50153aba5b30a Author: Sviatoslav Sydorenko <wk@sydorenko.org.ua> AuthorDate: 2020-08-27 20:58:39 +0000 Commit: Matt Turner <mattst88@gentoo.org> CommitDate: 2020-08-31 19:08:02 +0000 sys-auth/sssd-2.2.3: Fix glibc 2.32 name conflict Closes: https://bugs.gentoo.org/737180 Ref: https://sourceware.org/git/?p=glibc.git;a=commitdiff;h=499a92df8b9fc64a054cf3b7f728f8967fc1da7d;hp=8a9221415041543aa163071fa547e88138ceec9d Signed-off-by: Sviatoslav Sydorenko <webknjaz@redhat.com> Closes: https://github.com/gentoo/gentoo/pull/17287 Signed-off-by: Matt Turner <mattst88@gentoo.org> .../sssd/files/sssd-2.2.3-glibc-2.32-compat.patch | 71 ++++++++++++++++++++++ sys-auth/sssd/sssd-2.2.3.ebuild | 4 ++ 2 files changed, 75 insertions(+)