Package: guix-patches;
Reported by: fesoj000 <fesoj000 <at> gmail.com>
Date: Sat, 5 Mar 2022 17:27:03 UTC
Severity: normal
Tags: patch
View this message in rfc822 format
From: fesoj000 <fesoj000 <at> gmail.com> To: 54266 <at> debbugs.gnu.org Subject: [bug#54266] [PATCH] samba: wrap scripts with GUIX_PYTHONPATH Date: Tue, 8 Mar 2022 20:26:24 +0100
Tools like samba-tool need the python libraries installed by samba and some of sambas inputs. * gnu/packages/samba.scm: new buildstep (samba)[wrap-scripts]: Add build step. --- gnu/packages/samba.scm | 46 ++++++++++++++++++++++++++++++++++-------- 1 file changed, 38 insertions(+), 8 deletions(-) diff --git a/gnu/packages/samba.scm b/gnu/packages/samba.scm index b775ad905c..2bdf89163e 100644 --- a/gnu/packages/samba.scm +++ b/gnu/packages/samba.scm @@ -40,6 +40,7 @@ (define-module (gnu packages samba) #:use-module (gnu packages autotools) #:use-module (gnu packages backup) #:use-module (gnu packages base) + #:use-module (gnu packages bash) #:use-module (gnu packages check) #:use-module (gnu packages crypto) #:use-module (gnu packages cups) @@ -193,10 +194,13 @@ (define-public samba (base32 "0zyid2np45kl8hzp9fjqwvn5lxj766a4f0mya58vldqrhcrmw4b9")))) (build-system gnu-build-system) (arguments - (list - #:make-flags #~(list "TEST_OPTIONS=--quick") ;some tests are very long - #:phases - #~(modify-phases %standard-phases + `(#:make-flags '("TEST_OPTIONS=--quick") ;some tests are very long + #:imported-modules ((guix build python-build-system) + ,@%gnu-build-system-modules) + #:modules (((guix build python-build-system) #:select (python-version)) + ,@%gnu-build-system-modules) + #:phases + (modify-phases %standard-phases (add-before 'configure 'setup-docbook-stylesheets (lambda* (#:key inputs #:allow-other-keys) ;; Append Samba's own DTDs to XML_CATALOG_FILES @@ -212,12 +216,13 @@ (define-public samba (string-append all " $XML_CATALOG_FILES"))))) (replace 'configure ;; Samba uses a custom configuration script that runs WAF. - (lambda* (#:key inputs #:allow-other-keys) - (let* ((libdir (string-append #$output "/lib"))) + (lambda* (#:key inputs outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (libdir (string-append out "/lib"))) (invoke "./configure" "--enable-selftest" "--enable-fhs" - (string-append "--prefix=" #$output) + (string-append "--prefix=" out) "--sysconfdir=/etc" "--localstatedir=/var" ;; Install public and private libraries into @@ -231,12 +236,37 @@ (define-public samba (add-before 'install 'disable-etc,var-samba-directories-setup (lambda _ (substitute* "dynconfig/wscript" - (("bld\\.INSTALL_DIR.*") ""))))) + (("bld\\.INSTALL_DIR.*") "")))) + (add-after 'install 'wrap-scripts + (lambda* (#:key inputs outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out"))) + (define (site-package-path python) + (string-append "/lib/python" (python-version python) + "/site-packages")) + (define (guix-pythonpath site-package-path) + (string-join + (append (map (lambda (input) + (string-append (assoc-ref inputs input) + site-package-path)) + '("tdb" "ldb" "talloc")) + (list (string-append out site-package-path))) + ":")) + (for-each (lambda (file) + (wrap-program (string-append out file) + `("GUIX_PYTHONPATH" = + (,(guix-pythonpath + (site-package-path + (assoc-ref inputs "python"))))))) + '("/bin/samba-tool" "/sbin/samba_dnsupdate" + "/sbin/samba_downgrade_db" "/sbin/samba-gpupdate" + "/sbin/samba_kcc" "/sbin/samba_spnupdate" + "/sbin/samba_upgradedns")))))) ;; FIXME: The test suite seemingly hangs after failing to provision the ;; test environment. #:tests? #f)) (inputs (list acl + bash-minimal cmocka cups gamin -- 2.34.0
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.