Opened 8 years ago

Closed 8 years ago

#52285 closed defect (fixed)

ansible @2.1.1.0.1: ERROR: "xsltproc" returned non-zero exit status 5

Reported by: DanHam (Dan) Owned by: adfernandes (Andrew Fernandes)
Priority: Normal Milestone:
Component: ports Version: 2.3.4
Keywords: Cc: blair (Blair Zajac), steenzout (Pedro Salgado)
Port: ansible

Description (last modified by ryandesign (Ryan Carsten Schmidt))

When installing Ansible I get the following error:

--->  Fetching archive for ansible
--->  Attempting to fetch ansible-2.1.1.0.1_0.darwin_15.noarch.tbz2 from http://mse.uk.packages.macports.org/sites/packages.macports.org/ansible
--->  Attempting to fetch ansible-2.1.1.0.1_0.darwin_15.noarch.tbz2 from http://lil.fr.packages.macports.org/ansible
--->  Attempting to fetch ansible-2.1.1.0.1_0.darwin_15.noarch.tbz2 from https://packages.macports.org/ansible
--->  Fetching distfiles for ansible
--->  Verifying checksums for ansible
--->  Extracting ansible
--->  Configuring ansible
--->  Building ansible
Error: org.macports.build for port ansible returned: command execution failed
Please see the log file for port ansible for details:
    /opt/local/var/macports/logs/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_sysutils_ansible/ansible/main.log
To report a bug, follow the instructions in the guide:
    http://guide.macports.org/#project.tickets
Error: Processing of port ansible failed

Taking a look at the last part of the log:

...
:info:build changing mode of build/scripts-2.7/ansible-galaxy from 644 to 755
:info:build changing mode of build/scripts-2.7/ansible-console from 644 to 755
:info:build changing mode of build/scripts-2.7/ansible-vault from 644 to 755
:debug:build Executing proc-post-org.macports.build-build-0
:info:build sed "s/%VERSION%/2.1.1.0/" docs/man/man1/ansible.1.asciidoc.in > docs/man/man1/ansible.1.asciidoc
:info:build a2x -D docs/man/man1/ -d manpage -f manpage docs/man/man1/ansible.1.asciidoc
:info:build a2x: WARNING: --destination-dir option is only applicable to HTML based outputs
:info:build a2x: ERROR: "xsltproc"  --stringparam callout.graphics 0 --stringparam navig.graphics 0 --stringparam admon.textlabel 1 --stringparam admon.graphics 0  "/opt/local/etc/asciidoc/docbook-xsl/manpage.xsl" "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_sysutils_ansible/ansible/work/ansible-2.1.1.0-1/docs/man/man1/ansible.1.xml" returned non-zero exit status 5
:info:build make: *** [docs/man/man1/ansible.1] Error 1
:info:build rm docs/man/man1/ansible.1.asciidoc
:info:build Command failed: make docs
:info:build Exit code: 2
:error:build org.macports.build for port ansible returned: command execution failed
:debug:build Error code: NONE
:debug:build Backtrace: command execution failed
    while executing
"proc-post-org.macports.build-build-0 org.macports.build"
    ("eval" body line 1)
    invoked from within
"eval $post $targetname"
:info:build Warning: targets not executed for ansible: org.macports.activate org.macports.build org.macports.destroot org.macports.install
:notice:build Please see the log file for port ansible for details:
    /opt/local/var/macports/logs/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_sysutils_ansible/ansible/main.log

This appears to be the same issue as reported for Ansible 2.1.0.0.1: #51839 although this is for a completely fresh installation of Ansible rather than an upgrade.

Attachments (2)

ansible-depb-docbook-xsl.diff (471 bytes) - added by raimue (Rainer Müller) 8 years ago.
ansible-depb-docbook-xsl.2.diff (611 bytes) - added by raimue (Rainer Müller) 8 years ago.
Add depends_build on docbook-xsl, add -nonet option to xsltproc to prohibit any network access

Download all attachments as: .zip

Change History (9)

comment:1 Changed 8 years ago by ryandesign (Ryan Carsten Schmidt)

Cc: adfernandes@… removed
Description: modified (diff)
Owner: changed from macports-tickets@… to adfernandes@…
Port: ansible added; Ansible 2.1.1.0.1 removed
Summary: Ansible 2.1.1.0.1 build erroransible @2.1.1.0.1: ERROR: "xsltproc" returned non-zero exit status 5

#51839 mentioned it was a problem with a SourceForge server. Maybe try again later?

comment:2 Changed 8 years ago by DanHam (Dan)

Hi,

I've been digging a bit further into the issue. I can't reproduce the error using the ansible man page available from github at https://github.com/ansible/ansible/tree/devel/docs/man/man1.

I can run:

sed "s/%VERSION%/2.1.1.0/" ansible.1.asiidoc.in > ansible.1.asciidoc
a2x -d manpage -f manpage ansible.1.asciidoc

Note there is no -D /output/to/here flag so we don't see the WARNING: about that option only being applicable to HTML based outputs

man ansible.1

then shows a correctly formatted man page. a2x does seem to take rather a long time to run... but it does work.

Where are you grabbing the man pages from? It seems to me this could be a problem with the source for the man pages rather than anything else...

comment:3 Changed 8 years ago by raimue (Rainer Müller)

You run commands by hand with different arguments. Also, you were using the devel branch instead of the released tag. I am not sure what you wanted to show with this. You would need to reproduce the issue with the Makefile.

This warning about -D appears to be wrong and the issue is being tracked in asciidoc upstream: https://github.com/asciidoc/asciidoc/issues/44

The real problem is that ansible is missing a build dependency on the port docbook-xsl. If the XSL files are not found locally, they will be downloaded from the internet on-demand every time they are referenced, slowing down the processing quite a lot. This also makes the build unreliable when the canonical URL for the stylesheets are not available, which appears to have happened in this case.

Changed 8 years ago by raimue (Rainer Müller)

comment:4 Changed 8 years ago by DanHam (Dan)

Ok - so my bad... When I checkout the v2.1.1.0-1 tag then running the command to create the manpage does give an error. This I think is due to the inclusion of the :doctype:manpage stanza at the head of the 2.1.1.0-1 version of the file

ansible(1)
=========
:doctype:manpage
:man source:   Ansible
...

Running the following commands against this version results in no errors and a good manpage

sed -e "/^:doctype:manpage/ d" -e "s/%VERSION%/2.1.1.0/" ansible.1.asciidoc.in > ansible.1.asciidoc
a2x -d manpage -f manpage ansible.1.asciidoc

I'm not sure how to reproduce with the Makefile... so apologies if I've got all this wrong!!

Dan

Changed 8 years ago by raimue (Rainer Müller)

Add depends_build on docbook-xsl, add -nonet option to xsltproc to prohibit any network access

comment:5 in reply to:  3 Changed 8 years ago by adfernandes (Andrew Fernandes)

Replying to raimue@…:

The real problem is that ansible is missing a build dependency on the port docbook-xsl. If the XSL files are not found locally, they will be downloaded from the internet on-demand every time they are referenced, slowing down the processing quite a lot.

Ha! Didn't know that. Thanks for the tip. Build dependency added in r152908.

comment:6 Changed 8 years ago by DanHam (Dan)

OK. The inclusion of docbook-xsl as a build-dep has fixed this for me. I can now install ansible without error.

Apologies if I muddied the waters with my comments above. That said, thank you for taking the time to fix this. Very much appreciated.

Regards,

Dan

Version 0, edited 8 years ago by DanHam (Dan) (next)

comment:7 Changed 8 years ago by raimue (Rainer Müller)

Resolution: fixed
Status: newclosed
Note: See TracTickets for help on using tickets.