The Python plugin of "sudo" drag the Python interpreter to the closure ofGuix System. Put it in a separate output.
* gnu/packages/admin.scm (sudo)[arguments]: Add a 'separate-python-outputphase.---Hello,
Here's a patch to remove Python from the Guix Sytem closure. As Pythoncross-compilation is broken, the "python" output cannot be populated whencross-compiling. This is not great. An alternative would be not to provide"python" output when cross-compiling but that requires to turn "output" into athunk field, and I been advised not to do that (for performance reasons) inthe past.
WDYT?
Thanks,
Mathieu
gnu/packages/admin.scm | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-)
Toggle diff (39 lines)
diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scmindex 77981e520a..9d9d70c88d 100644--- a/gnu/packages/admin.scm+++ b/gnu/packages/admin.scm@@ -1375,6 +1375,7 @@ system administrator.") (delete-file-recursively "lib/zlib") #t)))) (build-system gnu-build-system)+ (outputs (list "out" "python")) (arguments `(#:configure-flags (list (string-append "--docdir=" (assoc-ref %outputs "out")@@ -1432,7 +1433,23 @@ system administrator.") (substitute* "plugins/sudoers/Makefile.in" (("^pre-install:" match) (string-append match "\ndisabled-" match)))- #t)))+ #t))+ (add-after 'install 'separate-python-output+ (lambda* (#:key target outputs #:allow-other-keys)+ (let ((out (assoc-ref outputs "out"))+ (out:python (assoc-ref outputs "python")))+ ;; Python cross-compilation is not working.+ (if target+ (mkdir-p (string-append out:python "/empty"))+ (for-each+ (lambda (file)+ (let ((old (string-append out "/" file))+ (new (string-append out:python "/" file)))+ (mkdir-p (dirname new))+ (rename-file old new)))+ (list "libexec/sudo/python_plugin.so"+ "libexec/sudo/python_plugin.la")))+ #t)))) ;; XXX: The 'testsudoers' test series expects user 'root' to exist, but ;; the chroot's /etc/passwd doesn't have it. Turn off the tests.-- 2.26.2