Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 737180 - sys-auth/sssd-2.2.3 fails to compile
Summary: sys-auth/sssd-2.2.3 fails to compile
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: All Linux
: Normal normal
Assignee: Gentoo's Team for Core System packages
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2020-08-15 04:58 UTC by Agostino Sarubbo
Modified: 2020-08-31 19:08 UTC (History)
3 users (show)

See Also:
Package list:
Runtime testing required: ---


Attachments
build.log.xz (build.log.xz,25.35 KB, application/x-xz)
2020-08-15 04:58 UTC, Agostino Sarubbo
Details
1-autoconf.out (1-autoconf.out,109 bytes, text/plain)
2020-08-15 04:58 UTC, Agostino Sarubbo
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Agostino Sarubbo gentoo-dev 2020-08-15 04:58:47 UTC
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.
Comment 1 Agostino Sarubbo gentoo-dev 2020-08-15 04:58:50 UTC
Created attachment 654676 [details]
build.log.xz

build log and emerge --info (compressed because it exceeds attachment limit, use 'xzless' to read it)
Comment 2 Agostino Sarubbo gentoo-dev 2020-08-15 04:58:51 UTC
Created attachment 654678 [details]
1-autoconf.out

1-autoconf.out
Comment 3 Sviatoslav @webknjaz Sydorenko #StandWithUkraine 2020-08-27 15:33:21 UTC
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,
Comment 4 Sviatoslav @webknjaz Sydorenko #StandWithUkraine 2020-08-27 20:13:54 UTC
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.
Comment 5 Sviatoslav @webknjaz Sydorenko #StandWithUkraine 2020-08-27 20:33:54 UTC
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
Comment 6 Sviatoslav @webknjaz Sydorenko #StandWithUkraine 2020-08-27 20:43:07 UTC
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'
Comment 7 Sviatoslav @webknjaz Sydorenko #StandWithUkraine 2020-08-27 21:26:14 UTC
I've submitted a PR here: https://github.com/gentoo/gentoo/pull/17287
Comment 8 Larry the Git Cow gentoo-dev 2020-08-31 19:08:23 UTC
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(+)