[bug#77789] gnu: sssd: Update to 2.9.6.
Commit Message
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.
* 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(-)
Comments
Hi,
Ian Eure <ian@retrospec.tv> 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>
Maxim Cournoyer <maxim.cournoyer@gmail.com> writes:
> Hi,
>
> Ian Eure <ian@retrospec.tv> 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).
It’s a bit more complicated than that. The version in master
(2.9.4) finds the Samba libs okay, but fails on the Active
Directory tests, which require AD running in a VM to work[1]. I’m
not sure exatly what happened here, but I suspect the AD tests
have some conditionality which prevented them from running on
Samba 4.17, so we never saw those failures.
On sssd 2.9.5 or 2.9.6, the `configure' phase can’t find the Samba
libs without the fix I added. After addressing that, they suffer
from the same failing AD tests, so I disabled those, based on what
I read in the sssd developer docs.
I also have a patch to update to 2.10.2 (the latest), and it
builds, but it likely needs more work. Its install tries to
create an additional directory in /var, I pointed this at the
package output, but suspect it wants to write stuff into it, which
isn’t going to work. I opted for 2.9.6 because that seems safer;
happy to share the 2.10.2 WIP patch if you’d like to finish that
update.
> Otherwise feel free to push!
I’ll push a bit later today, but this definitely isn’t either/or,
if we have leverage to make consumers of Samba libs work better,
that ought to get pursued. I might be wrong, but I assume other
packages which depend on Samba libs would need similar changes.
Thanks,
-- Ian
[1]: https://tests.sssd.io/en/latest/running-tests.html
@@ -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))))
(add-after 'patch-source-shebangs 'patch-more-shebangs
(lambda _
(substitute* '("src/tools/analyzer/sss_analyze"
@@ -218,6 +231,12 @@ (define-public sssd
;; This test fails for unknown reason.
(substitute* "src/tests/responder_socket_access-tests.c"
(("tcase_add_test\\(tc_utils, resp_str_to_array_test\\);") ""))))
+ (add-before 'configure 'disable-active-directory-tests
+ ;; These tests require Active Directory running in a VM.
+ (lambda _
+ (substitute* "Makefile.am"
+ (("ad_gpo_tests") "")
+ (("ad_common_tests") ""))))
(add-before 'check 'set-libpython-path
(lambda _
(setenv "LD_LIBRARY_PATH"
@@ -286,7 +305,7 @@ (define-public sssd
bc ; for tests
check ; for tests
cmocka ; for tests
- docbook-xml-4.4
+ docbook-xml-4.5
docbook-xsl
doxygen
gettext-minimal