ocsigen/ocsigen-start

make test.byte fails on MacOS

deril opened this issue · 10 comments

deril commented

When I try to run a server using make test.byte the error ocsigenserver: ocsigen:main: Fatal - Error in configuration file: Error while parsing configuration file: Eliom: while loading /Users/myuser/.opam/4.06.1/lib/safepass/safepass.cma: error loading shared library: dllsafepass_stubs.so: dlopen(dllsafepass_stubs.so, 10): image not found appears
macos 10.13
eliom 6.3.0

Same here. make test.opt completed successfully, although then you find a JS error

myapp_.js:3280 Uncaught TypeError: s.charCodeAt is not a function
    at StringReader.read32u (myapp_.js:3280)
    at myapp_.js:3323
    at caml_call3 (myapp_.js:5129)
    at unwrap (myapp_.js:80542)
    at unwrap_js (myapp_.js:80551)
    at _dQs_ (myapp_.js:86720)
    at caml_call1 (myapp_.js:5125)
    at case$1 (myapp_.js:53315)
    at caml_call3 (myapp_.js:5129)
    at get_request_data (myapp_.js:86722)

That has been logged already here #521

I am having the same error as deril. Is there a way to manually pull newer version of eliom?

balat commented

Hi,
I try to run Ocsigen Start on MacOS and I had to do this:

  • use gmake instead of regular make
  • export DYLD_LIBRARY_PATH=~/.opam/4.07.0/lib/stublibs/:$DYLD_LIBRARY_PATH
  • brew install mysql-client

Does it help?

@balat These instructions are not solving the issue for me. Anything else to try?

balat commented

@dboris Do you have exactly the same error message as @deril ?
Can you confirm that variable $DYLD_LIBRARY_PATH is set the the right directory?

@balat Yes to both questions.

balat commented

Can you check that the missing dll is present in the path specified in DYLD_LIBRARY_PATH?

If yes, try to run the ocsigenserver command directly without make
(something like ocsigenserver -c configfile)

For some reason I don't understand, $DYLD_LIBRARY_PATH sometimes seems not to be taken into account by make ...

@balat The dll is present in the path. Running ocsigenserver command directly works.

balat commented

Ok that's a workaround then.
If someone finds a better solution, please post it here so that we can fix it for everyone.

Also shouldn't $DYLD_LIBRARY_PATH be set by opam on MAcOS?

@balat This thread explains why DYLD_LIBRARY_PATH is not respected on macOS, and includes a workaround which works for me:
rbenv/rbenv#962 (comment)