Subject: Re: [bug#77789] [PATCH] gnu: sssd: Update to 2.9.6.

From: Maxim Cournoyer <[email-masked]>
Date: Mon, 14 Apr 2025 15:45:05 +0900

Hi,

Ian Eure <[email-masked]> writes:

> This package has been broken since Samba was updated from 4.17.x to 4.18.x in
> 744e973de361fed498cdcf9725fe36aef3d7a73d.  This patch updates sssd to 2.9.6
> and fixes the build.

Thanks.

> * gnu/packages/sssd.scm (sssd): Update to 2.9.6.
> [#:configure-flags]: Point to docbook catalog.
> [#:phases 'patch-samba-pkgconfig]: Correct library path.
> [#:phases ‘disable-active-directory-tests]: Disable tests that require AD
> running in a VM.
> [#:inputs]: Update docbook-xml to 4.5.
>
> Change-Id: I13effcd34995e2e9c7fdc6d95d0fa2e35cf15bae
> ---
>  gnu/packages/sssd.scm | 27 +++++++++++++++++++++++----
>  1 file changed, 23 insertions(+), 4 deletions(-)
>
> diff --git a/gnu/packages/sssd.scm b/gnu/packages/sssd.scm
> index d0dd0c400a..20107aef8a 100644
> --- a/gnu/packages/sssd.scm
> +++ b/gnu/packages/sssd.scm
> @@ -139,7 +139,7 @@ (define-public ding-libs
>  (define-public sssd
>    (package
>      (name "sssd")
> -    (version "2.9.4")
> +    (version "2.9.6")
>      (source
>       (origin
>         (method git-fetch)
> @@ -148,7 +148,7 @@ (define-public sssd
>               (commit version)))
>         (file-name (git-file-name name version))
>         (sha256
> -        (base32 "11qchs59f8y8w5ns9mqg16nrv1kglfavzvqway0aj2z6ssfxk5al"))
> +        (base32 "056l6b067bc5yi3dvlv41kg1a5hl3j3fq2xll3yfwwz4phcx8qd9"))
>         (patches (search-patches "sssd-system-directories.patch"))))
>      (build-system gnu-build-system)
>      (arguments
> @@ -180,9 +180,15 @@ (define-public sssd
>                               #$output "/etc/init.d")
>                (string-append "--with-ldb-lib-dir="
>                               #$output "/lib/ldb/modules/ldb")
> +              ;; Upstream defaults to /etc/xml/catalog, and despite the "path"
> +              ;; name, only expects one file -- so we can't use
> +              ;; $XML_CATALOG_FILES, which has docbook-xml and docbook-xsl
> +              ;; entries.
>                (string-append "--with-xml-catalog-path="
>                               #$(this-package-native-input "docbook-xml")
> -                             "/xml/dtd/docbook/catalog.xml"))
> +                             "/xml/docbook/"
> +                             #$(package-version (this-package-native-input "docbook-xml"))
> +                             "/catalog.xml"))
>        #:modules '((guix build gnu-build-system)
>                    (guix build utils)
>                    ((guix build python-build-system)
> @@ -193,6 +199,13 @@ (define-public sssd
>        #~(modify-phases %standard-phases
>            (add-after 'unpack 'ensure-no-mtimes-pre-1980
>                       ensure-no-mtimes-pre-1980)
> +          ;; sssd looks in lib/samba, but the Guix package puts things in lib/
> +          ;; Patch the path before we autoreconf.
> +          (add-before 'bootstrap 'patch-samba-pkgconfig
> +            (lambda _
> +              (substitute* '("src/external/samba.m4")
> +                (("(sambalibdir=.*/)samba" _ prefix)
> +                 prefix))))

Ah, it seems this is caused by the use of '--libdir' in Samba.  If this
breaks common expectation, perhaps we should revert that bit and find a
better fix for the samba build system not linking correctly to its
own libraries (thus missing RPATH entries, IIUC).

Otherwise feel free to push!

Reviewed-by: Maxim Cournoyer <maxim.cournoyer@gmail>

-- 
Thanks,
Maxim