Subject: bug#37735: Ansible package build/installation failing

From: Arun Isaac <[email-masked]>
Date: Tue, 15 Oct 2019 02:17:46 +0530

Hi,

I have a patch fixing the build. Please find attached. Could you confirm
that it works as expected?

Thanks.

From 0f643e80815190cd8fc800f6a3f8e813992e70cb Mon Sep 17 00:00:00 2001
From: Arun Isaac <[email-masked]>
Date: Tue, 15 Oct 2019 01:53:06 +0530
Subject: [PATCH] gnu: ansible: Work around issues with Guix wrapper scripts.

* gnu/packages/admin.scm (ansible)[arguments]: Remove fix-symlinks phase. Add
replace-symlinks phase.
---
 gnu/packages/admin.scm | 19 +++++++------------
 1 file changed, 7 insertions(+), 12 deletions(-)

diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm
index 35dae2d056..0e4fb3947c 100644
--- a/gnu/packages/admin.scm
+++ b/gnu/packages/admin.scm
@@ -19,7 +19,7 @@
 ;;; Copyright © 2017 Ethan R. Jones <[email-masked]>
 ;;; Copyright © 2017 Christopher Allan Webber <[email-masked]>
 ;;; Copyright © 2017, 2018 Marius Bakke <[email-masked]>
-;;; Copyright © 2018 Arun Isaac <[email-masked]>
+;;; Copyright © 2018, 2019 Arun Isaac <[email-masked]>
 ;;; Copyright © 2018 Pierre-Antoine Rouby <[email-masked]>
 ;;; Copyright © 2018 Rutger Helling <[email-masked]>
 ;;; Copyright © 2018 Pierre Neidhardt <[email-masked]>
@@ -1880,21 +1880,16 @@ import re
 sys.argv[0] = re.sub(r'\\.([^/]*)-real$', r'\\1', sys.argv[0])
 ")))
              #t))
-         (add-after 'wrap 'fix-symlinks
+         (add-after 'install 'replace-symlinks
            (lambda* (#:key outputs #:allow-other-keys)
+             ;; Replace symlinks with duplicate copies of the ansible
+             ;; executable.
              (let ((out (assoc-ref outputs "out")))
                (for-each
                 (lambda (subprogram)
-                  ;; The symlinks point to the ansible wrapper script. Make
-                  ;; them point to the real executable (.ansible-real).
-                  (delete-file (string-append out "/bin/.ansible-" subprogram "-real"))
-                  (symlink (string-append out "/bin/.ansible-real")
-                           (string-append out "/bin/.ansible-" subprogram "-real"))
-                  ;; The wrapper scripts of the symlinks invoke the ansible
-                  ;; wrapper script. Fix them to invoke the correct executable.
-                  (substitute* (string-append out "/bin/ansible-" subprogram)
-                    (("/bin/ansible")
-                     (string-append "/bin/.ansible-" subprogram "-real"))))
+                  (delete-file (string-append out "/bin/ansible-" subprogram))
+                  (copy-file (string-append out "/bin/ansible")
+                             (string-append out "/bin/ansible-" subprogram)))
                 (list "config" "console" "doc" "galaxy"
                       "inventory" "playbook" "pull" "vault")))
              #t)))))
-- 
2.23.0