Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Debug the ocamldebug and ocamldoc hashbang [DO NOT MERGE] #8

Closed
wants to merge 4 commits into from

Conversation

peterjc
Copy link
Contributor

@peterjc peterjc commented Apr 13, 2018

@conda-forge-linter
Copy link

Hi! This is the friendly automated conda-forge-linting service.

I just wanted to let you know that I linted all conda-recipes in your PR (recipe) and found it was in an excellent condition.

@peterjc
Copy link
Contributor Author

peterjc commented Apr 13, 2018

CircleCI linux, from the debugging in the build.sh

echo $PREFIX
head -n 1 $PREFIX/bin/ocamldebug
head -n 1 $PREFIX/bin/ocamldoc

we have:

+ echo /feedstock_root/build_artefacts/ocaml_1523613135379/_b_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeh
+ head -n 1 /feedstock_root/build_artefacts/ocaml_1523613135379/_b_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeh/bin/ocamldebug
+ head -n 1 /feedstock_root/build_artefacts/ocaml_1523613135379/_b_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeh/bin/ocamldoc

Then the test line in our meta.yml file

head -n 1 `which ocamldebug` && ocamlrun ocamldebug -version

seems to have resulted in:

++ which ocamldebug
+ head -n 1 /feedstock_root/build_artefacts/ocaml_1523613135379/_t_env/bin/ocamldebug
#!/feedstock_root/build_artefacts/ocaml_1523613135379/_t_env/bin/ocamlrun
+ ocamlrun ocamldebug -version
Fatal error: exception Failure("input_value: unknown custom block identifier")

This looks like the hashbang was updated to reflect the ultimate installation path, wherever $PREFIX/bin/ocamlrun will be on the end user's machine since here it went from /feedstock_root/build_artefacts/ocaml_1523613135379/_b_env_placehold_.../bin/ocamlrun to /feedstock_root/build_artefacts/ocaml_1523613135379/_t_env/bin/ocamlrun

However, ocamlrun ocamldebug -version still failed.

On the mac under TravisCI, the build logging:

+ echo /Users/travis/miniconda3/conda-bld/ocaml_1523613232581/_b_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_pla
/Users/travis/miniconda3/conda-bld/ocaml_1523613232581/_b_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_pla
+ head -n 1 /Users/travis/miniconda3/conda-bld/ocaml_1523613232581/_b_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_pla/bin/ocamldebug
#!/Users/travis/miniconda3/conda-bld/ocaml_1523613232581/_b_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_pla/bin/ocamlrun
+ head -n 1 /Users/travis/miniconda3/conda-bld/ocaml_1523613232581/_b_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_pla/bin/ocamldoc
#!/Users/travis/miniconda3/conda-bld/ocaml_1523613232581/_b_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_pla/bin/ocamlrun

and the test again still fails,

++ which ocamldebug
+ head -n 1 /Users/travis/miniconda3/conda-bld/ocaml_1523613232581/_t_env/bin/ocamldebug
#!/Users/travis/miniconda3/conda-bld/ocaml_1523613232581/_t_env/bin/ocamlrun
+ ocamlrun ocamldebug -version
/Users/travis/miniconda3/conda-bld/ocaml_1523613232581/test_tmp/run_test.sh: line 19: 33833 Segmentation fault: 11  ocamlrun ocamldebug -version

@peterjc
Copy link
Contributor Author

peterjc commented Apr 13, 2018

Confirming the hashbangs look fine with an actual installation of the ocaml v5.06.0 package under Conda on Linux:

/mnt/shared/scratch/xxx/apps/conda/bin/ocamlrun
$ which ocamldebug
/mnt/shared/scratch/xxx/apps/conda/bin/ocamldebug
$ which ocamldoc
/mnt/shared/scratch/xxx/apps/conda/bin/ocamldoc
$ head -n 1 `which ocamldebug`
#!/mnt/shared/scratch/xx/apps/conda/bin/ocamlrun
$ head -n 1 `which ocamldoc`
#!/mnt/shared/scratch/xxx/apps/conda/bin/ocamlrun

On this Linux system those tools seg-fault:

$ ocamlrun -version
The OCaml runtime, version 4.06.0
$ ocamldoc -version
Segmentation fault (core dumped)
$ ocamldebug -version
Segmentation fault (core dumped)

They also fail this way:

$ ocamlrun `which ocamldebug` -version
Segmentation fault (core dumped)
$ ocamlrun `which ocamldoc` -version
Segmentation fault (core dumped)

@peterjc
Copy link
Contributor Author

peterjc commented Apr 13, 2018

In reply to https://caml.inria.fr/mantis/view.php?id=7771#c19023

On our Linux cluster where I installed the conda package (first release, v4.06.0), this does work:

$ ocamldoc.opt -version
4.06.0

https://circleci.com/gh/conda-forge/ocaml-feedstock/25?utm_campaign=vcs-integration-link&utm_medium=referral&utm_source=github-build-link
On Linux / CircleCI it also worked:

+ ocamldoc.opt -version
4.06.1

https://travis-ci.org/conda-forge/ocaml-feedstock/builds/366092915?utm_source=github_status&utm_medium=notification
Likewise macOS / TravisCI worked:

+ ocamldoc.opt -version
4.06.1

@peterjc
Copy link
Contributor Author

peterjc commented Apr 13, 2018

Loging a little garbled, running head on ocamldoc.opt likely to blame.

+ echo /feedstock_root/build_artefacts/ocaml_1523626965065/_b_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeh
+ head -n 1 /feedstock_root/build_artefacts/ocaml_1523626965065/_b_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeh/bin/ocamldebug
#!/feedstock_root/build_artefacts/ocaml_1523626965065/_b_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeh/bin/ocamlrun
+ head -n 1 /feedstock_root/build_artefacts/ocaml_1523626965065/_b_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeh/bin/ocamldoc
#!/feedstock_root/build_artefacts/ocaml_1523626965065/_b_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeh/bin/ocamlrun
+ head -n 1 /feedstock_root/build_artefacts/ocaml_1523626965065/_b_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeh/bin/ocamldoc.opt
�ELF��������������>�������P�����@�������xށ���������@�8���@�&�#���������@�������@�@�����@�@�����������������������������������������������@�������@�����������������������������������������������@�������@�����D�G�����D�G������� �������������H�G�����H�������H�������@(,�������-������� ���������������G���������������������������������������������������������������@�������@�����D�������D���������������P�td�����g>������g~������g~���������������������������Q�td����������������������������������������������������/lib64/ld-linux-x86-64.so.2�������������GNU�����������������������������GNU�> `	ܽ��4�k���~͟���@��������������t�������T����*8�PU�(����0U���������������@�`���H�������2��������������(����$����ehB�������������! a������� � ��� &�����)���A��!����6ԗ�B����T�4
+ file /feedstock_root/build_artefacts/ocaml_1523626965065/_b_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeh/bin/ocamldebug
/feedstock_root/build_artefacts/ocaml_1523626965065/_b_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeh/bin/ocamldebug: a /feedstock_root/build_artefacts script text executable
+ file /feedstock_root/build_artefacts/ocaml_1523626965065/_b_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeh/bin/ocamldoc
/feedstock_root/build_artefacts/ocaml_1523626965065/_b_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeh/bin/ocamldoc: a /feedstock_root/build_artefacts script text executable
+ file /feedstock_root/build_artefacts/ocaml_1523626965065/_b_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeh/bin/ocamldoc.opt
/feedstock_root/build_artefacts/ocaml_1523626965065/_b_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeh/bin/ocamldoc.opt: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.18, not stripped

@peterjc
Copy link
Contributor Author

peterjc commented Apr 13, 2018

From the macOS / TravisCI run:

+ head -n 1 /Users/travis/miniconda3/conda-bld/ocaml_1523628098588/_b_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_pla/bin/ocamldebug
#!/Users/travis/miniconda3/conda-bld/ocaml_1523628098588/_b_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_pla/bin/ocamlrun
+ head -n 1 /Users/travis/miniconda3/conda-bld/ocaml_1523628098588/_b_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_pla/bin/ocamldoc
#!/Users/travis/miniconda3/conda-bld/ocaml_1523628098588/_b_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_pla/bin/ocamlrun
+ file /Users/travis/miniconda3/conda-bld/ocaml_1523628098588/_b_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_pla/bin/ocamldebug
/Users/travis/miniconda3/conda-bld/ocaml_1523628098588/_b_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_pla/bin/ocamldebug: a /Users/travis/miniconda3/conda- script text executable
+ file /Users/travis/miniconda3/conda-bld/ocaml_1523628098588/_b_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_pla/bin/ocamldoc
/Users/travis/miniconda3/conda-bld/ocaml_1523628098588/_b_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_pla/bin/ocamldoc: a /Users/travis/miniconda3/conda- script text executable
+ file /Users/travis/miniconda3/conda-bld/ocaml_1523628098588/_b_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_pla/bin/ocamldoc.opt
/Users/travis/miniconda3/conda-bld/ocaml_1523628098588/_b_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_pla/bin/ocamldoc.opt: Mach-O 64-bit executable x86_64

Here file says script text executable or Mach-O 64-bit executable x86_64 which seems fine.

From the Linux / CircleCI run:

+ ocamldoc.opt -version
4.06.1
++ which ocamldebug
+ file /feedstock_root/build_artefacts/ocaml_1523628008923/_t_env/bin/ocamldebug
/feedstock_root/build_artefacts/ocaml_1523628008923/_t_env/bin/ocamldebug: a /feedstock_root/build_artefacts script text executable
++ which ocamldoc
+ file /feedstock_root/build_artefacts/ocaml_1523628008923/_t_env/bin/ocamldoc
/feedstock_root/build_artefacts/ocaml_1523628008923/_t_env/bin/ocamldoc: a /feedstock_root/build_artefacts script text executable
++ which ocamldoc.opt
+ file /feedstock_root/build_artefacts/ocaml_1523628008923/_t_env/bin/ocamldoc.opt
/feedstock_root/build_artefacts/ocaml_1523628008923/_t_env/bin/ocamldoc.opt: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.18, not stripped
++ which ocamldebug
+ head -n 1 /feedstock_root/build_artefacts/ocaml_1523628008923/_t_env/bin/ocamldebug
#!/feedstock_root/build_artefacts/ocaml_1523628008923/_t_env/bin/ocamlrun
+ ocamlrun ocamldebug -version
Fatal error: exception Failure("input_value: unknown custom block identifier")

Here file says script text executable, or for the .opt file:

ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.18, not stripped

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants