%D%/packages/patches/aegis-test-fixup-1.patch \
%D%/packages/patches/aegis-test-fixup-2.patch \
%D%/packages/patches/agg-am_c_prototype.patch \
+ %D%/packages/patches/ansible-wrap-program-hack.patch \
%D%/packages/patches/antiword-CVE-2014-8123.patch \
%D%/packages/patches/apr-skip-getservbyname-test.patch \
%D%/packages/patches/aspell-default-dict-dir.patch \
(uri (pypi-uri "ansible" version))
(sha256
(base32
- "1xdr82fy8gahxh3586wm5k1bxksys7yl1f2n24shrk8gf99qyjyd"))))
+ "1xdr82fy8gahxh3586wm5k1bxksys7yl1f2n24shrk8gf99qyjyd"))
+ (patches (search-patches "ansible-wrap-program-hack.patch"))))
(build-system python-build-system)
(native-inputs
`(("python2-pycrypto" ,python2-pycrypto)
--- /dev/null
+Ansible changes its behaviour depending on the name of the script that it is
+called as. Make it deal with guix' .real wrapper scripts.
+
+FIXME: Remove once wrapping ansible works properly.
+See http://lists.gnu.org/archive/html/bug-guix/2017-05/msg00015.html.
+--- ansible-2.3.0.0/bin/ansible 2017-04-12 16:08:05.000000000 +0200
++++ ansible-2.3.0.0-fixed/bin/ansible 2017-05-21 20:11:18.720872385 +0200
+@@ -75,7 +75,13 @@
+ # sometimes add that
+ target = target[:-1]
+
+- if len(target) > 1:
++ if target[-1] == "real" and target[0].startswith('.'):
++ target = target[:-1]
++ target[0] = target[0][1:]
++ if len(target) > 1 and target[1] != "real" :
++ sub = target[1]
++ myclass = "%sCLI" % sub.capitalize()
++ elif len(target) > 2 and target[2] == "real" :
+ sub = target[1]
+ myclass = "%sCLI" % sub.capitalize()
+ elif target[0] == 'ansible':