Newbie is stuck right at the beginning (Win 7) -- what's the problem?

89 views
Skip to first unread message

kklepper

unread,
Feb 4, 2015, 7:46:34 PM2/4/15
to chica...@googlegroups.com
Hi everybody,

I managed to install yaws as a service and run my CodeIgniter application locally with yaws (it took me a couple of days to get things right, though).

Also, I worked my way through Learn You Some Erlang up to the last chapter and watched the video Chicago Boss: A Web Framework Built for Comfort (and Speed) - by Evan Miller.

Next I installed Chicago Boss and created a new project, according to the 60 second Quickstart:

For Windows, type

windows-make.bat
windows-make.bat app PROJECT=mynewproject
cd ..\mynewproject
start-server.bat

Running start-server.bat confused me a bit, as it looked like some errors, especially at last, but http://localhost:8001/ worked fine. Well, it didn't take me long to discover that this was just the standard yaws page. So I decided to stop the yaws service and install the cb_tutorial.

Running start-server.bat from this directory produced the same results, and now http://localhost:8001/ gave me an error: no connection.

So I decided to rerun start-server.bat and log the output to inspect 185 lines. Looking at this log file and the batch file and the rebar commands I couldn't figure out what the problem could be -- most of it looks fine, there are quite a number of warnings with respect to dict/0 being deprecated, so nothing to worry about, and finally the message that make is spelled incorrectly or cannot be found. Well, I'm afraid, this is true.

Of course, I could launch VirtualBox, test my luck and run everything in there, but this would be taking the easy way. It should run in Windows as well. What is the problem?

Karl

emacstheviking

unread,
Feb 5, 2015, 3:39:42 AM2/5/15
to chica...@googlegroups.com
Maybe installing cygwin might help... http://cygwin.com/
That should include the build tools...?


--
You received this message because you are subscribed to the Google Groups "ChicagoBoss" group.
To unsubscribe from this group and stop receiving emails from it, send an email to chicagoboss...@googlegroups.com.
Visit this group at http://groups.google.com/group/chicagoboss.
To view this discussion on the web visit https://groups.google.com/d/msgid/chicagoboss/cb8368aa-4b7e-40e4-8ffc-e2332b082af2%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

kklepper

unread,
Feb 5, 2015, 3:50:21 AM2/5/15
to chica...@googlegroups.com
Well, this is no solution, I'd rather use VirtualBox instead.

But I referred to the claim of the project. It should work as advertised. Erlang works, yaws works, I don't see why ChicagoBoss shouldn't work.

Jesse Gumm

unread,
Feb 5, 2015, 6:23:45 AM2/5/15
to chica...@googlegroups.com

Hello,

ChicagoBoss does not yet run on yaws. So if you're setting up yaws to run on port 8001 ahead of time, then you are likely seeing errors as the result of a port conflict, since CB, by default uses cowboy as it's underlying (and built in) server.

It's quite common in erlang to package the webserver as part of an application, rather than depending on one already being installed (like PHP), and ChicagoBoss is no exception.

I'd recommend either uninstalling yaws, or updating the port configuration in boss.config or in the yaws config.

-Jesse

--
Jesse Gumm
Owner, Sigma Star Systems
414.940.4866 || sigma-star.com || @jessegumm

--
You received this message because you are subscribed to the Google Groups "ChicagoBoss" group.
To unsubscribe from this group and stop receiving emails from it, send an email to chicagoboss...@googlegroups.com.
Visit this group at http://groups.google.com/group/chicagoboss.

kklepper

unread,
Feb 5, 2015, 6:49:31 AM2/5/15
to chica...@googlegroups.com
Hello,

I know that ChicagoBoss does not run on yaws -- that's no problem, on the contrary, I was eager to find out about cowboy. If the web server is delivered as part of the package, that's great!

The clash with port 8001 can easily be avoided by changing the config files of either yaws or ChicagoBoss. I changed my yaws config, using ports 8080 and 8001, to use 8080 and 8081 instead with no problem.

We shouldn't have a port conflict anymore, right? Still localhost:8001 gives a timeout. So I guess cowboy is not running. running. Asking Process Explorer, I see that yaws his running, but there is no entry for a cowboy which I guess would be there if cowboy was running.

This is my protocol for start-server.bat:

==> goldrush (get-deps)
==> lager (get-deps)
==> pmod_transform (get-deps)
==> erlando (get-deps)
==> aleppo (get-deps)
==> medici (get-deps)
==> bson (get-deps)
==> mongodb (get-deps)
==> meck (get-deps)
==> protobuffs (get-deps)
==> riak_pb (get-deps)
==> riakc (get-deps)
==> jsx (get-deps)
==> ibrowse (get-deps)
==> src (get-deps)
==> ddb (get-deps)
==> epgsql (get-deps)
==> gen_server2 (get-deps)
==> erlmc (get-deps)
==> mysql (get-deps)
==> poolboy (get-deps)
==> uuid (get-deps)
==> redo (get-deps)
==> ets_cache (get-deps)
==> proper (get-deps)
==> dh_date (get-deps)
==> tiny_pq (get-deps)
==> boss_test (get-deps)
==> boss_db (get-deps)
==> tinymq (get-deps)
==> cowlib (get-deps)
==> ranch (get-deps)
==> cowboy (get-deps)
==> mimetypes (get-deps)
==> mochiweb (get-deps)
==> mochicow (get-deps)
==> eunit_formatters (get-deps)
==> erlydtl (get-deps)
==> dynamic_compile (get-deps)
==> jaderl (get-deps)
==> lfe (get-deps)
==> gen_smtp (get-deps)
==> simple_bridge (get-deps)
==> iso8601 (get-deps)
==> boss (get-deps)
==> cb_tutorial (get-deps)
==> goldrush (pre_compile)
==> goldrush (compile)
==> lager (pre_compile)
==> lager (compile)
==> pmod_transform (pre_compile)
==> pmod_transform (compile)
==> erlando (pre_compile)
==> erlando (compile)
==> aleppo (pre_compile)
==> aleppo (compile)
==> medici (pre_compile)
==> medici (compile)
==> bson (pre_compile)
==> bson (compile)
==> mongodb (pre_compile)
==> mongodb (compile)
==> meck (pre_compile)
==> meck (compile)
==> protobuffs (pre_compile)
==> protobuffs (compile)
==> riak_pb (pre_compile)
==> riak_pb (compile)
==> riakc (pre_compile)
==> riakc (compile)
==> jsx (pre_compile)
==> jsx (compile)
==> ibrowse (pre_compile)
==> ibrowse (compile)
==> src (pre_compile)
==> src (compile)
==> ddb (pre_compile)
==> ddb (compile)
==> epgsql (pre_compile)
==> epgsql (compile)
==> gen_server2 (pre_compile)
==> gen_server2 (compile)
==> erlmc (pre_compile)
==> erlmc (compile)
==> mysql (pre_compile)
==> mysql (compile)
==> poolboy (pre_compile)
==> poolboy (compile)
==> uuid (pre_compile)
==> uuid (compile)
==> redo (pre_compile)
==> redo (compile)
==> ets_cache (pre_compile)
==> ets_cache (compile)
==> proper (pre_compile)
==> proper (compile)
Compiled src/vararg.erl
src/proper_types.erl:343: Warning: missing specification for function from_binary/1
src/proper_types.erl:460: Warning: missing specification for function unwrap/1
c:/xampp/cb_tutorial/deps/proper/src/proper_types.erl:343: Warning: missing specification for function from_binary/1
c:/xampp/cb_tutorial/deps/proper/src/proper_types.erl:460: Warning: missing specification for function unwrap/1
Compiled src/proper_types.erl
Compiled src/proper_unicode.erl
Compiled src/proper_symb.erl
Compiled src/proper_statem.erl
Compiled src/proper_shrink.erl
src/proper_transformer.erl:56: Warning: type dict/0 is deprecated and will be removed in OTP 18.0; use use dict:dict/0 or preferably dict:dict/2
c:/xampp/cb_tutorial/deps/proper/src/proper_transformer.erl:56: Warning: type dict/0 is deprecated and will be removed in OTP 18.0; use use dict:dict/0 or preferably dict:dict/2
Compiled src/proper_transformer.erl
src/proper_queue.erl:38: Warning: type queue/0 is deprecated and will be removed in OTP 18.0; use use queue:queue/0 or preferably queue:queue/1
c:/xampp/cb_tutorial/deps/proper/src/proper_queue.erl:38: Warning: type queue/0 is deprecated and will be removed in OTP 18.0; use use queue:queue/0 or preferably queue:queue/1
Compiled src/proper_queue.erl
src/proper_sets.erl:39: Warning: type set/0 is deprecated and will be removed in OTP 18.0; use use sets:set/0 or preferably sets:set/1
c:/xampp/cb_tutorial/deps/proper/src/proper_sets.erl:39: Warning: type set/0 is deprecated and will be removed in OTP 18.0; use use sets:set/0 or preferably sets:set/1
Compiled src/proper_sets.erl
Compiled src/proper_prop_remover.erl
Compiled src/proper_ordsets.erl
Compiled src/proper_orddict.erl
src/proper_gb_trees.erl:38: Warning: type gb_tree/0 is deprecated and will be removed in OTP 18.0; use use gb_trees:tree/0 or preferably gb_trees:tree/2
c:/xampp/cb_tutorial/deps/proper/src/proper_gb_trees.erl:38: Warning: type gb_tree/0 is deprecated and will be removed in OTP 18.0; use use gb_trees:tree/0 or preferably gb_trees:tree/2
Compiled src/proper_gb_trees.erl
src/proper_typeserver.erl:235: Warning: type dict/0 is deprecated and will be removed in OTP 18.0; use use dict:dict/0 or preferably dict:dict/2
src/proper_typeserver.erl:263: Warning: type set/0 is deprecated and will be removed in OTP 18.0; use use sets:set/0 or preferably sets:set/1
src/proper_typeserver.erl:264: Warning: type dict/0 is deprecated and will be removed in OTP 18.0; use use dict:dict/0 or preferably dict:dict/2
src/proper_typeserver.erl:266: Warning: type set/0 is deprecated and will be removed in OTP 18.0; use use sets:set/0 or preferably sets:set/1
src/proper_typeserver.erl:267: Warning: type dict/0 is deprecated and will be removed in OTP 18.0; use use dict:dict/0 or preferably dict:dict/2
src/proper_typeserver.erl:269: Warning: type dict/0 is deprecated and will be removed in OTP 18.0; use use dict:dict/0 or preferably dict:dict/2
src/proper_typeserver.erl:270: Warning: type dict/0 is deprecated and will be removed in OTP 18.0; use use dict:dict/0 or preferably dict:dict/2
src/proper_typeserver.erl:271: Warning: type dict/0 is deprecated and will be removed in OTP 18.0; use use dict:dict/0 or preferably dict:dict/2
src/proper_typeserver.erl:272: Warning: type dict/0 is deprecated and will be removed in OTP 18.0; use use dict:dict/0 or preferably dict:dict/2
src/proper_typeserver.erl:283: Warning: type dict/0 is deprecated and will be removed in OTP 18.0; use use dict:dict/0 or preferably dict:dict/2
src/proper_typeserver.erl:1057: Warning: type dict/0 is deprecated and will be removed in OTP 18.0; use use dict:dict/0 or preferably dict:dict/2
c:/xampp/cb_tutorial/deps/proper/src/proper_typeserver.erl:235: Warning: type dict/0 is deprecated and will be removed in OTP 18.0; use use dict:dict/0 or preferably dict:dict/2
c:/xampp/cb_tutorial/deps/proper/src/proper_typeserver.erl:263: Warning: type set/0 is deprecated and will be removed in OTP 18.0; use use sets:set/0 or preferably sets:set/1
c:/xampp/cb_tutorial/deps/proper/src/proper_typeserver.erl:264: Warning: type dict/0 is deprecated and will be removed in OTP 18.0; use use dict:dict/0 or preferably dict:dict/2
c:/xampp/cb_tutorial/deps/proper/src/proper_typeserver.erl:266: Warning: type set/0 is deprecated and will be removed in OTP 18.0; use use sets:set/0 or preferably sets:set/1
c:/xampp/cb_tutorial/deps/proper/src/proper_typeserver.erl:267: Warning: type dict/0 is deprecated and will be removed in OTP 18.0; use use dict:dict/0 or preferably dict:dict/2
c:/xampp/cb_tutorial/deps/proper/src/proper_typeserver.erl:269: Warning: type dict/0 is deprecated and will be removed in OTP 18.0; use use dict:dict/0 or preferably dict:dict/2
c:/xampp/cb_tutorial/deps/proper/src/proper_typeserver.erl:270: Warning: type dict/0 is deprecated and will be removed in OTP 18.0; use use dict:dict/0 or preferably dict:dict/2
c:/xampp/cb_tutorial/deps/proper/src/proper_typeserver.erl:271: Warning: type dict/0 is deprecated and will be removed in OTP 18.0; use use dict:dict/0 or preferably dict:dict/2
c:/xampp/cb_tutorial/deps/proper/src/proper_typeserver.erl:272: Warning: type dict/0 is deprecated and will be removed in OTP 18.0; use use dict:dict/0 or preferably dict:dict/2
c:/xampp/cb_tutorial/deps/proper/src/proper_typeserver.erl:283: Warning: type dict/0 is deprecated and will be removed in OTP 18.0; use use dict:dict/0 or preferably dict:dict/2
c:/xampp/cb_tutorial/deps/proper/src/proper_typeserver.erl:1057: Warning: type dict/0 is deprecated and will be removed in OTP 18.0; use use dict:dict/0 or preferably dict:dict/2
Compiled src/proper_typeserver.erl
Compiled src/proper_gen.erl
src/proper_gb_sets.erl:41: Warning: type gb_set/0 is deprecated and will be removed in OTP 18.0; use use gb_sets:set/0 or preferably gb_sets:set/1
c:/xampp/cb_tutorial/deps/proper/src/proper_gb_sets.erl:41: Warning: type gb_set/0 is deprecated and will be removed in OTP 18.0; use use gb_sets:set/0 or preferably gb_sets:set/1
Compiled src/proper_gb_sets.erl
src/proper_array.erl:39: Warning: type array/0 is deprecated and will be removed in OTP 18.0; use use array:array/0 or preferably array:array/1
src/proper_dict.erl:42: Warning: type dict/0 is deprecated and will be removed in OTP 18.0; use use dict:dict/0 or preferably dict:dict/2
c:/xampp/cb_tutorial/deps/proper/src/proper_array.erl:39: Warning: type array/0 is deprecated and will be removed in OTP 18.0; use use array:array/0 or preferably array:array/1
Compiled src/proper_array.erl
c:/xampp/cb_tutorial/deps/proper/src/proper_dict.erl:42: Warning: type dict/0 is deprecated and will be removed in OTP 18.0; use use dict:dict/0 or preferably dict:dict/2
Compiled src/proper_dict.erl
Compiled src/proper_fsm.erl
Compiled src/proper_arith.erl
Compiled src/proper.erl
==> dh_date (pre_compile)
==> dh_date (compile)
==> tiny_pq (pre_compile)
==> tiny_pq (compile)
==> boss_test (pre_compile)
==> boss_test (compile)
==> boss_db (pre_compile)
==> boss_db (compile)
==> tinymq (pre_compile)
==> tinymq (compile)
==> cowlib (pre_compile)
==> cowlib (compile)
==> ranch (pre_compile)
==> ranch (compile)
==> cowboy (pre_compile)
==> cowboy (compile)
==> mimetypes (pre_compile)
==> mimetypes (compile)
==> mochiweb (pre_compile)
==> mochiweb (compile)
==> mochicow (pre_compile)
==> mochicow (compile)
==> eunit_formatters (pre_compile)
==> eunit_formatters (compile)
==> erlydtl (pre_compile)
==> erlydtl (compile)
Der Befehl "make" ist entweder falsch geschrieben oder
konnte nicht gefunden werden.


The last remark about make is the only real error message.

I had a look at start-server.bat and rebar.config and rebar.cmd and didn't understand what's really happening here and when and where make is called. Obviously something should happen here which doesn't happen.

I can see that werl should be present, and indeed werl runs on my machine from anywhere, so this cannot be the problem.

-Karl

Dmitry Polyanovsky

unread,
Feb 5, 2015, 6:56:37 AM2/5/15
to chica...@googlegroups.com
Hi,

CB using erlydtl as template engine. And erlydtl started to use merl since a while. A problem with merl is that it requires 'make' to be recompiled twice or something like that. I can't recall exact issue right away, but little search in mailing list will certanly help find relevant discussions

--
You received this message because you are subscribed to the Google Groups "ChicagoBoss" group.
To unsubscribe from this group and stop receiving emails from it, send an email to chicagoboss...@googlegroups.com.
Visit this group at http://groups.google.com/group/chicagoboss.

Dmitry Polyanovsky

unread,
Feb 5, 2015, 6:57:23 AM2/5/15
to chica...@googlegroups.com
p.s. whole issue with merl is relevant only for windows users

kklepper

unread,
Feb 5, 2015, 8:43:10 AM2/5/15
to chica...@googlegroups.com
Hello,

Thanks a lot, that looks promising!

You probably refer to threads

erlydtl compile errors on Windows
https://groups.google.com/forum/?utm_medium=email&utm_source=footer#!searchin/chicagoboss/merl/chicagoboss/U55hGXASLK0/Ykqx-X3W2ssJ

and

Problems building 0.8.12 on Windows
https://groups.google.com/forum/?utm_medium=email&utm_source=footer#!searchin/chicagoboss/merl/chicagoboss/iCypwOCBX6I/vgEFxnYxZnoJ

Looking at C:\xampp\cb_tutorial\deps\xxx\ebin, there are *.beam everywhere except in erlydtl, dynamic_compile, gen_smtp, iso8601, jaderl, lfe, merl, simple_bridge.

I now observe that the error is shown after

==> erlydtl (compile)

So this seems to be the problem, and the solution seems to be shown in

Installation error on Windows 8.1 #453
https://github.com/ChicagoBoss/ChicagoBoss/issues/453

which also explains where this make command comes from and why I didn't find it.

But unfortunately this doesn't do the trick for me -- or am I doing something wrong?

Supposedly the variable $REBAR_DEPS_DIR or rather %REBAR_DEPS_DIR% in the rebar.config file is not set. Well, I learned from LYSE that dializer needs HOME to be set, which was easy enough to do, but this didn't do the trick here:

set REBAR_DEPS_DIR=C:\xampp\ChicagoBoss\deps
or
set REBAR_DEPS_DIR=C:/xampp/ChicagoBoss/deps

(doesn't work either way)

start-server.bat:

WARN:  Expected c:/xampp/ChicagoBoss/deps/boss to be an app dir (containing ebin/*.app), but no .app found.
==> cb_tutorial (get-deps)
WARN:  Expected c:/xampp/ChicagoBoss/deps/boss to be an app dir (containing ebin/*.app), but no .app found.
Pulling boss from {git,"git://github.com/ChicagoBoss/ChicagoBoss.git",
                       {tag,"v0.8.13"}}
Cloning into 'boss'...
==> goldrush (get-deps)
....

==> erlydtl (pre_compile)
==> erlydtl (compile)
Der Befehl "make" ist entweder falsch geschrieben oder
konnte nicht gefunden werden.

Looking at

rebar.config
{"win32", compile, "make -C \"%REBAR_DEPS_DIR%/merl\" all -W test"},
{"win32", eunit, "make -C \"%REBAR_DEPS_DIR%/merl\" test"}

I am on a 64-bit machine...

1)
{"win64", compile, "make -C \"%REBAR_DEPS_DIR%/merl\" all -W test"},
{"win64", eunit, "make -C \"%REBAR_DEPS_DIR%/merl\" test"}

or

2)
{"win", compile, "make -C \"%REBAR_DEPS_DIR%/merl\" all -W test"},
{"win", eunit, "make -C \"%REBAR_DEPS_DIR%/merl\" test"}

delivers the same thing, except the additional error messages new to the last one are gone.

finally

3)
{"win", compile, "make -C \"C:/xampp/ChicagoBoss/deps/merl\" all -W test"},
{"win", eunit, "make -C \"C:/xampp/ChicagoBoss/deps/merl\" test"}

as advised in the git-thread.

I'm sorry, nothing works.

Now I finally tried this:

4)
%{pre_hooks,
% [{"(linux|darwin|solaris)", compile, "make -C \"$REBAR_DEPS_DIR/merl\" all -W test"},
%  {"(freebsd|netbsd|openbsd)", compile, "gmake -C \"$REBAR_DEPS_DIR/merl\" all"},
%  {"win", compile, "make -C \"C:/xampp/ChicagoBoss/deps/merl\" all -W test"},
%  {eunit,
%   "erlc -I include/erlydtl_preparser.hrl -o test"
%   " test/erlydtl_extension_testparser.yrl"},
%  {"(linux|darwin|solaris)", eunit, "make -C \"$REBAR_DEPS_DIR/merl\" test"},
%  {"(freebsd|netbsd|openbsd)", eunit, "gmake -C \"$REBAR_DEPS_DIR/merl\" test"},
%  {"win", eunit, "make -C \"C:/xampp/ChicagoBoss/deps/merl\" test"}
% ]}.

And again no success. What's this? I manipulated

C:\xampp\cb_tutorial\deps\erlmc\rebar.config

But maybe I should manipulate

C:\xampp\ChicagoBoss\deps\erlydtl\rebar.config

No success with 3).

Another try with 4), and here we get something different:

C:\xampp\cb_tutorial>start-server.bat > ss10.log
ERROR: compile failed while processing c:/xampp/ChicagoBoss/deps/erlydtl: rebar_abort

The log:

Compiled src/erlydtl.erl
Compiled src/erlydtl_filters.erl
Compiling c:/xampp/ChicagoBoss/deps/erlydtl/src/erlydtl_beam_compiler.erl failed:
c:/xampp/ChicagoBoss/deps/erlydtl/src/erlydtl_beam_compiler.erl:none: undefined parse transform 'merl_transform'

Try 3)

Nope.

Try 1)

Same as 4).

Now I noticed that in the above mentioned git-thread there is no line referring to Windows, and they achieved their results replacing the variables in the lines addressing *nix systems, so I tried this as well:

{pre_hooks,
 [{"(linux|darwin|solaris)", compile, "make -C \"C:/xampp/ChicagoBoss/deps/merl\" all -W test"},
  {"(freebsd|netbsd|openbsd)", compile, "gmake -C \"C:/xampp/ChicagoBoss/deps/merl\" all"},
  {"win32", compile, "make -C \"C:/xampp/ChicagoBoss/deps/merl\" all -W test"},
  {eunit,
   "erlc -I include/erlydtl_preparser.hrl -o test"
   " test/erlydtl_extension_testparser.yrl"},
  {"(linux|darwin|solaris)", eunit, "make -C \"C:/xampp/ChicagoBoss/deps/merl\" test"},
  {"(freebsd|netbsd|openbsd)", eunit, "gmake -C \"C:/xampp/ChicagoBoss/deps/merl\" test"},
  {"win32", eunit, "make -C \"C:/xampp/ChicagoBoss/deps/merl\" test"}
 ]}.

Same result:


==> erlydtl (pre_compile)
==> erlydtl (compile)
Der Befehl "make" ist entweder falsch geschrieben oder
konnte nicht gefunden werden.


Taking the other advice, replacing the offending path instructions just by .., doesn't work either.

Now this looks like a dead dragon has grown new heads. Where is the sword to kill this dragon once more?

-Karl
Reply all
Reply to author
Forward
0 new messages