frenetic-lang / frenetic

The Frenetic Programming Language and Runtime System

Home Page:http://www.frenetic-lang.org/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Makefile:4: recipe for target 'build' failed Error 1

madiha005 opened this issue · comments

Hi
I am facing Makefile:4 recipe for target 'build' failed Error 1 while building master branch of frenetic from Source.
error3

Can please someone look into it?
Thank You

Are you sure you have installed all of the pre-requisites? It looks like you have the wrong dune. Did you perhaps install it with Ubuntu's package manager apt-get? If so, that's the issue (and is not what is specified in the README.)

To verify, what does which dune return? It should be a directory under ~/.opam...

@jnfoster I checked again , i installed dune using command opam install dune as mentioned in installation steps.
image

Its showing that Dune 1.2.1 get installed successfully.

When i run step 4 of READ FILE
dune external-lib-deps --missing @ALL

It gives error that whitedune is missing , we need to install it.
image

I installed whitedune as well.

As you said that check which dune we have via which dune , i tried to check it this way but which dune command doesn`t return anything.

Now i donot know where the problem is, due to which i am facing error of Makefile:4 receipe for target 'build' failed error 1

I would appreciate if you help me in installation frenetic properly.
Thank You

The fact that which dune returns nothing, means that your shell cannot find a binary named dune in your $PATH.

I suspect you have not configured OPAM properly in your shell, and hence binaries installed by OPAM cannot be found.

Try running

eval `opam config env` 

and then try which dune again.

If that works, you probably want to add this to your shell's startup script (e.g., ~/.bash_profile for Bash) so that you don't have to do it every time you open a new terminal.

Note, this problem is documented (briefly) in the OPAM documentation. Here is the relevant text.

To make your shell aware of what has been installed in opam, some variables need to be set in your environment. You will be prompted to update your configuration, and given instructions on how to proceed manually if you decline.

One more follow up. When you run opam init prompted you about a specific command to update your shell. This command is shell specific which is why the HTML documentation is slightly vague.

hi @jnfoster which dune command is now working.

Capture2

i run command make && make install again , now its giving me menhir version issue.
Please suggest further action.

Thankyou

It seems you have an old version of Menhir.

Maybe try

opam update
opam upgrade

(confirm prompts and wait a long time)

Then check what opam list shows for Menhir.

Hi @jnfoster
I tried opam update and opam upgrade

opam

Also attaching opam list output
opam1

Please suggest further action.
ThankYou

Seems like menhir is not actually installed, at least not in OPAM.

Try opam install menhir, then verify that it is present in opam list, then try to build Frenetic again.

Hi @jnfoster mehir is installed but make&&make file is still giving error.
1
2

Please suggest further action.
ThankYou

hi @jnfoster I am waiting for the update.
Thankyou

Hi @madiha005, your version of dune (and various other dependencies, it seems) are way outdated.
Let's get that fixed:

  1. Check which version of opam you have: opam --version. Make sure this is >= 2.0
  2. Once you have opam v2 or higher, install the latest version of ocaml:
    opam update
    opam switch create 4.07.1
    
  3. Now get the latest version of dune: opam install dune. (Check dune --version, it should be at least 1.7.)
  4. Install all frenetic dependencies. The quickest way to do this is as follows:
    opam pin add frenetic <path-to-frenetic-dir>
    opam install frenetic --deps-only
    opam pin remove frenetic
    
  5. Now you should be all set to build frenetic by running make.

hi @jnfoster I installed lastest version of all required dependencies. Screenshots attached. But still make && make install command is not working. Error screenshot is attached.
1
2
3
4
5
6
7

Thank You

Can you please look into it and suggest further action.

Hi @jnfoster i am looking forward for your reply.
ThankYou

As @smolkaj indicated, there have been some breaking changes in some of Frenetic's dependencies.

Why don't you try this?

opam update
opam pin add frenetic https://github.com/frenetic-lang/frenetic.git

Then follow the prompts. I just confirmed that it works on my local machine.

We would be glad to try to help you debug, but it would be helpful to see the exact shell commands you entered and the output produced on standard out.

-N

commented

:~/frenetic$ make && make install
time -p dune build @install
File "src/syntax/dune", line 24, characters 2-23:
24 | (pps ppxlib.metaquot)))
^^^^^^^^^^^^^^^^^^^^^
*
*
*

File "src/lib/netkat/Json.mli", line 18, characters 18-22:
Error (warning 3): deprecated: Yojson.Basic.json
json types are being renamed and will be removed in the next Yojson major version. Use type t instead
File "src/lib/netkat/Json.mli", line 22, characters 31-35:
Error (warning 3): deprecated: Yojson.Basic.json
json types are being renamed and will be removed in the next Yojson major version. Use type t instead
File "src/lib/netkat/Json.mli", line 24, characters 27-31:
Error (warning 3): deprecated: Yojson.Basic.json
json types are being renamed and will be removed in the next Yojson major version. Use type t instead
File "src/lib/netkat/Json.mli", line 43, characters 39-43:
Error (warning 3): deprecated: Yojson.Basic.json
json types are being renamed and will be removed in the next Yojson major version. Use type t instead
File "src/lib/netkat/Json.mli", line 44, characters 27-31:
Error (warning 3): deprecated: Yojson.Basic.json
json types are being renamed and will be removed in the next Yojson major version. Use type t instead
File "src/lib/netkat/Json.mli", line 45, characters 37-41:
Error (warning 3): deprecated: Yojson.Basic.json
json types are being renamed and will be removed in the next Yojson major version. Use type t instead
File "src/lib/netkat/Json.mli", line 46, characters 24-28:
Error (warning 3): deprecated: Yojson.Basic.json
json types are being renamed and will be removed in the next Yojson major version. Use type t instead
Command exited with non-zero status 1
real 0.42
user 0.37
sys 0.10
Makefile:4: recipe for target 'build' failed
make: *** [build] Error 1

Can you please try the two commands given above?

opam update
opam pin add frenetic https://github.com/frenetic-lang/frenetic.git

Can you please show the entire output generated by those commands?

You might need to run

opam reinstall frenetic`

to trigger a reinstall.

In general, it's always good idea to include enough detail for people to help you out. Frenetic installs just fine in my environment, so there is something different about yours that is causing that to fail.

Telling me that there is "no change" doesn't help me figure out what's going on. If you include the precise commands you ran and the output produced, I can probably diagnose it quickly, or at least suggest further steps to take.

See here for a note on how to ask thoughtful technical questions.

(It would be wonderful if you would include the actual text rather than posting screenshots. The latter cannot be searched or cut-and-pasted.)

Okay. The first result shows that you were able to build and install Frenetic from source using opam. Perhaps you have an older version of the repository.

Let's try again. Please methodically folllow Steffen's instructions from above, and paste in the output here if you enounter any issues.

  1. Check which version of opam you have: opam --version. Make sure this is >= 2.0

  2. Once you have opam v2 or higher, install the latest version of ocaml:

    opam update
    opam switch create 4.07.1
  1. Now get the latest version of dune: opam install dune and check dune --version. It should be at least 1.7.

  2. Check out a fresh copy of Frenetic from GitHub

git clone https://github.com/frenetic-lang/frenetic.git
  1. Install the required dependencies. The quickest way to do this is as follows:
    opam pin add frenetic <path-to-frenetic-dir>
    opam install frenetic --deps-only
    opam pin remove frenetic
  1. Now you should be all set to build frenetic by running make.
commented

Thanks for the quick response,
still same the error!!

bushra@bushra-K42F:$ opam --version
2.0.4
bushra@bushra-K42F:
$ opam switch create 4.07.1
[ERROR] There already is an installed switch named 4.07.1
bushra@bushra-K42F:$ dune --version
1.9.1
bushra@bushra-K42F:
$ git clone https://github.com/frenetic-lang/frenetic.git
fatal: destination path 'frenetic' already exists and is not an empty directory.
bushra@bushra-K42F:~$ opam pin add frenetic https://github.com/frenetic-lang/frenetic.git
[NOTE] Package frenetic is already pinned to git+https://github.com/frenetic-lang/frenetic.git (version 5.0.3).
[frenetic.5.0.3] no changes from git+https://github.com/frenetic-lang/frenetic.git
frenetic is now pinned to git+https://github.com/frenetic-lang/frenetic.git (version 5.0.3)

Already up-to-date.
Nothing to do.
bushra@bushra-K42F:~$ opam install frenetic --deps-only

<><> Synchronising pinned packages ><><><><><><><><><><><><><><><><><><><><><><>
[frenetic.5.0.3] no changes from git+https://github.com/frenetic-lang/frenetic.git

bushra@bushra-K42F:~$ opam pin remove frenetic
Ok, frenetic is no longer pinned to git+https://github.com/frenetic-lang/frenetic.git (version 5.0.3)
The following actions will be performed:
↘ downgrade sedlex 2.0 to 1.99.4 [required by frenetic]
↘ downgrade base64 3.2.0 to 2.3.0 [required by frenetic]
↘ downgrade cohttp 2.1.2 to 1.2.0 [required by frenetic]
↻ recompile cohttp-async 2.1.1 [uses cohttp]
↻ recompile frenetic 5.0.3
===== ↻ 2 ↘ 3 =====
Do you want to continue? [Y/n] Y

<><> Gathering sources ><><><><><><><><><><><><><><><><><><><><><><><><><><><><>
[base64.2.3.0] found in cache
[cohttp.1.2.0] found in cache
[cohttp-async.2.1.1] found in cache
[frenetic.5.0.3] found in cache
[sedlex.1.99.4] found in cache

<><> Processing actions <><><><><><><><><><><><><><><><><><><><><><><><><><><><>
⊘ removed frenetic.5.0.3
⊘ removed cohttp-async.2.1.1
⊘ removed cohttp.2.1.2
⊘ removed base64.3.2.0
⊘ removed sedlex.2.0
∗ installed base64.2.3.0
∗ installed sedlex.1.99.4
∗ installed cohttp.1.2.0
∗ installed cohttp-async.2.1.1
∗ installed frenetic.5.0.3
Done.

I'm sorry but I don't see any error in the log that you posted.

Also, the step where you closed Frenetic from GitHub failed because you already had a directory named frenetic. Can you either verify that you have the latest version (cd frenetic; git log -1) or remove it (rm -fr frenetic) and try again?)

hi @jnfoster I followed your instructions but still i am not able to build frenetic. make &&make install file is not working for me. Attaching command output for reference.

frenetic@frenetic-virtual-machine:$ opam --version
2.0.3
frenetic@frenetic-virtual-machine:
$ opam update

<><> Updating package repositories ><><><><><><><><><><><><><><><><><><><><><><>
[default] synchronised from https://opam.ocaml.org
Now run 'opam upgrade' to apply any package updates.
frenetic@frenetic-virtual-machine:~$ opam upgrade
The following actions will be performed:
↗ upgrade logs 0.6.2 to 0.6.3
↗ upgrade dune 1.9.0 to 1.9.1
↗ upgrade psq 0.1.1 to 0.2.0
↗ upgrade ppxlib 0.5.0 to 0.6.0
↻ recompile ppx_cstruct 4.0.0 [uses dune]
↻ recompile jbuilder transition [uses dune]
↗ upgrade lru 0.2.0 to 0.3.0
↗ upgrade octavius 1.2.0 to 1.2.1
↻ recompile variantslib v0.11.0 [uses ppxlib]
↻ recompile ppx_typerep_conv v0.11.1 [uses ppxlib]
↻ recompile ppx_sexp_conv v0.11.2 [uses ppxlib]
↻ recompile ppx_pipebang v0.11.0 [uses ppxlib]
↻ recompile ppx_optional v0.11.0 [uses ppxlib]
↻ recompile ppx_optcomp v0.11.0 [uses ppxlib]
↻ recompile ppx_let v0.11.0 [uses ppxlib]
↻ recompile ppx_inline_test v0.11.0 [uses ppxlib]
↻ recompile ppx_here v0.11.0 [uses ppxlib]
↻ recompile ppx_enumerate v0.11.1 [uses ppxlib]
↻ recompile ppx_compare v0.11.1 [uses ppxlib]
↻ recompile mirage-profile 0.8.2
[uses jbuilder, ppx_cstruct]
↻ recompile fieldslib v0.11.0 [uses ppxlib]
↻ recompile ppx_js_style v0.11.0 [uses octavius, ppxlib]
↻ recompile ppx_variants_conv v0.11.1 [uses ppxlib]
↻ recompile ppx_custom_printf v0.11.0 [uses ppxlib]
↻ recompile conduit 1.4.0 [uses dune, logs]
↻ recompile ppx_bench v0.11.0 [uses ppxlib]
↻ recompile ppx_sexp_value v0.11.0 [uses ppxlib]
↻ recompile ppx_sexp_message v0.11.0 [uses ppxlib]
↻ recompile ppx_fail v0.11.0 [uses ppxlib]
↻ recompile ppx_hash v0.11.1 [uses ppxlib]
↻ recompile ppx_assert v0.11.0 [uses ppxlib]
↻ recompile ethernet 2.0.0 [uses dune, logs]
↻ recompile ppx_fields_conv v0.11.0 [uses ppxlib]
↻ recompile ppx_base v0.11.0 [uses ppxlib]
↗ upgrade tcpip 3.7.3 to 3.7.4
↗ upgrade cohttp 2.0.0 to 2.1.2
↻ recompile ppx_expect v0.11.1 [uses ppxlib]
↻ recompile bin_prot v0.11.0 [uses jbuilder]
↻ recompile sexp_pretty v0.11.0 [uses jbuilder]
↻ recompile ppx_bin_prot v0.11.1 [uses ppxlib]
↻ recompile ppx_jane v0.11.0 [uses ppxlib]
↻ recompile splittable_random v0.11.0 [uses jbuilder]
↻ recompile core_kernel v0.11.1 [uses jbuilder]
↻ recompile textutils_kernel v0.11.0 [uses jbuilder]
↻ recompile re2 v0.11.0 [uses jbuilder]
↻ recompile protocol_version_header v0.11.0 [uses jbuilder]
↻ recompile expect_test_helpers_kernel v0.11.0 [uses jbuilder]
↻ recompile core v0.11.3 [uses ppxlib]
↻ recompile async_kernel v0.11.1 [uses jbuilder]
↻ recompile textutils v0.11.0 [uses jbuilder]
↻ recompile async_unix v0.11.0 [uses jbuilder]
↻ recompile async_rpc_kernel v0.11.0 [uses jbuilder]
↻ recompile core_extended v0.11.0 [uses jbuilder]
↻ recompile cstruct-async 4.0.0 [uses dune]
↻ recompile async_extra v0.11.1 [uses jbuilder]
↻ recompile async v0.11.0 [uses jbuilder]
↻ recompile sequencer_table v0.11.0 [uses jbuilder]
↻ recompile expect_test_helpers v0.11.0 [uses jbuilder]
↻ recompile conduit-async 1.4.0 [uses dune]
↻ recompile command_rpc v0.11.0 [uses jbuilder]
↻ recompile async_shell v0.11.0 [uses jbuilder]
↻ recompile async_interactive v0.11.0 [uses jbuilder]
↻ recompile async_find v0.11.0 [uses jbuilder]
↻ recompile delimited_parsing v0.11.0 [uses jbuilder]
↻ recompile cohttp-async 2.1.1
[uses dune, cohttp, logs]
↻ recompile async_inotify v0.11.0 [uses jbuilder]
↻ recompile async_extended v0.11.0 [uses jbuilder]
===== ↻ 59 ↗ 8 =====
Do you want to continue? [Y/n] y

<><> Gathering sources ><><><><><><><><><><><><><><><><><><><><><><><><><><><><>
[async.v0.11.0] found in cache
[async_extended.v0.11.0] found in cache
[async_extra.v0.11.1] found in cache
[async_find.v0.11.0] found in cache
[async_inotify.v0.11.0] found in cache
[async_interactive.v0.11.0] found in cache
[async_kernel.v0.11.1] found in cache
[async_rpc_kernel.v0.11.0] found in cache
[async_shell.v0.11.0] found in cache
[async_unix.v0.11.0] found in cache
[bin_prot.v0.11.0] found in cache
[cohttp-async.2.1.1] found in cache
[command_rpc.v0.11.0] found in cache
[conduit.1.4.0] found in cache
[conduit-async.1.4.0] found in cache
[core.v0.11.3] found in cache
[core_extended.v0.11.0] found in cache
[core_kernel.v0.11.1] found in cache
[cstruct-async.4.0.0] found in cache
[delimited_parsing.v0.11.0] found in cache
[ethernet.2.0.0] found in cache
[expect_test_helpers.v0.11.0] found in cache
[expect_test_helpers_kernel.v0.11.0] found in cache
[fieldslib.v0.11.0] found in cache
[logs.0.6.3] downloaded from cache at https://opam.ocaml.org/cache
[cohttp.2.1.2] downloaded from cache at https://opam.ocaml.org/cache
[mirage-profile.0.8.2] found in cache
[lru.0.3.0] downloaded from cache at https://opam.ocaml.org/cache
[ppx_assert.v0.11.0] found in cache
[ppx_base.v0.11.0] found in cache
[ppx_bench.v0.11.0] found in cache
[ppx_bin_prot.v0.11.1] found in cache
[ppx_compare.v0.11.1] found in cache
[ppx_cstruct.4.0.0] found in cache
[ppx_custom_printf.v0.11.0] found in cache
[ppx_enumerate.v0.11.1] found in cache
[ppx_expect.v0.11.1] found in cache
[ppx_fail.v0.11.0] found in cache
[ppx_fields_conv.v0.11.0] found in cache
[ppx_hash.v0.11.1] found in cache
[ppx_here.v0.11.0] found in cache
[ppx_inline_test.v0.11.0] found in cache
[ppx_jane.v0.11.0] found in cache
[ppx_js_style.v0.11.0] found in cache
[ppx_let.v0.11.0] found in cache
[ppx_optcomp.v0.11.0] found in cache
[ppx_optional.v0.11.0] found in cache
[ppx_pipebang.v0.11.0] found in cache
[ppx_sexp_conv.v0.11.2] found in cache
[ppx_sexp_message.v0.11.0] found in cache
[ppx_sexp_value.v0.11.0] found in cache
[ppx_typerep_conv.v0.11.1] found in cache
[ppx_variants_conv.v0.11.1] found in cache
[octavius.1.2.1] downloaded from cache at https://opam.ocaml.org/cache
[protocol_version_header.v0.11.0] found in cache
[dune.1.9.1] downloaded from cache at https://opam.ocaml.org/cache
[re2.v0.11.0] found in cache
[ppxlib.0.6.0] downloaded from cache at https://opam.ocaml.org/cache
[sequencer_table.v0.11.0] found in cache
[sexp_pretty.v0.11.0] found in cache
[splittable_random.v0.11.0] found in cache
[textutils.v0.11.0] found in cache
[textutils_kernel.v0.11.0] found in cache
[variantslib.v0.11.0] found in cache
[psq.0.2.0] downloaded from cache at https://opam.ocaml.org/cache
[tcpip.3.7.4] downloaded from cache at https://opam.ocaml.org/cache

<><> Processing actions <><><><><><><><><><><><><><><><><><><><><><><><><><><><>
⊘ removed async_extended.v0.11.0
⊘ removed async_inotify.v0.11.0
⊘ removed async_find.v0.11.0
⊘ removed async_interactive.v0.11.0
⊘ removed async_shell.v0.11.0
⊘ removed command_rpc.v0.11.0
⊘ removed cstruct-async.4.0.0
⊘ removed delimited_parsing.v0.11.0
⊘ removed core_extended.v0.11.0
⊘ removed expect_test_helpers.v0.11.0
⊘ removed expect_test_helpers_kernel.v0.11.0
⊘ removed re2.v0.11.0
⊘ removed sequencer_table.v0.11.0
⊘ removed sexp_pretty.v0.11.0
⊘ removed textutils.v0.11.0
⊘ removed textutils_kernel.v0.11.0
⊘ removed cohttp-async.2.1.1
⊘ removed cohttp.2.0.0
⊘ removed conduit-async.1.4.0
⊘ removed async.v0.11.0
⊘ removed async_extra.v0.11.1
⊘ removed async_rpc_kernel.v0.11.0
⊘ removed async_unix.v0.11.0
⊘ removed async_kernel.v0.11.1
⊘ removed conduit.1.4.0
⊘ removed core.v0.11.3
⊘ removed protocol_version_header.v0.11.0
⊘ removed core_kernel.v0.11.1
⊘ removed splittable_random.v0.11.0
⊘ removed ppx_jane.v0.11.0
⊘ removed ppx_base.v0.11.0
⊘ removed ppx_bench.v0.11.0
⊘ removed ppx_bin_prot.v0.11.1
⊘ removed bin_prot.v0.11.0
⊘ removed ppx_enumerate.v0.11.1
⊘ removed ppx_expect.v0.11.1
⊘ removed ppx_assert.v0.11.0
⊘ removed ppx_custom_printf.v0.11.0
⊘ removed ppx_fail.v0.11.0
⊘ removed ppx_fields_conv.v0.11.0
⊘ removed fieldslib.v0.11.0
⊘ removed ppx_hash.v0.11.1
⊘ removed ppx_compare.v0.11.1
⊘ removed ppx_inline_test.v0.11.0
⊘ removed ppx_js_style.v0.11.0
⊘ removed octavius.1.2.0
⊘ removed ppx_let.v0.11.0
⊘ removed ppx_optcomp.v0.11.0
⊘ removed ppx_optional.v0.11.0
⊘ removed ppx_pipebang.v0.11.0
⊘ removed ppx_sexp_message.v0.11.0
⊘ removed ppx_sexp_value.v0.11.0
⊘ removed ppx_here.v0.11.0
⊘ removed ppx_sexp_conv.v0.11.2
⊘ removed ppx_typerep_conv.v0.11.1
⊘ removed ppx_variants_conv.v0.11.1
⊘ removed tcpip.3.7.3
⊘ removed ethernet.2.0.0
⊘ removed logs.0.6.2
⊘ removed lru.0.2.0
⊘ removed mirage-profile.0.8.2
⊘ removed ppx_cstruct.4.0.0
⊘ removed psq.0.1.1
⊘ removed variantslib.v0.11.0
⊘ removed jbuilder.transition
⊘ removed ppxlib.0.5.0
⊘ removed dune.1.9.0
∗ installed dune.1.9.1
∗ installed jbuilder.transition
∗ installed logs.0.6.3
∗ installed octavius.1.2.1
∗ installed ppx_cstruct.4.0.0
∗ installed mirage-profile.0.8.2
∗ installed ethernet.2.0.0
∗ installed ppxlib.0.6.0
∗ installed fieldslib.v0.11.0
∗ installed ppx_compare.v0.11.1
∗ installed ppx_enumerate.v0.11.1
∗ installed ppx_fields_conv.v0.11.0
∗ installed ppx_here.v0.11.0
∗ installed ppx_fail.v0.11.0
∗ installed ppx_inline_test.v0.11.0
∗ installed ppx_bench.v0.11.0
∗ installed ppx_js_style.v0.11.0
∗ installed ppx_let.v0.11.0
∗ installed ppx_optcomp.v0.11.0
∗ installed ppx_optional.v0.11.0
∗ installed ppx_pipebang.v0.11.0
∗ installed ppx_sexp_conv.v0.11.2
∗ installed cohttp.2.1.2
∗ installed conduit.1.4.0
∗ installed ppx_assert.v0.11.0
∗ installed ppx_custom_printf.v0.11.0
∗ installed ppx_hash.v0.11.1
∗ installed ppx_base.v0.11.0
∗ installed ppx_sexp_message.v0.11.0
∗ installed ppx_sexp_value.v0.11.0
∗ installed ppx_typerep_conv.v0.11.1
∗ installed psq.0.2.0
∗ installed lru.0.3.0
∗ installed sexp_pretty.v0.11.0
∗ installed tcpip.3.7.4
∗ installed variantslib.v0.11.0
∗ installed ppx_variants_conv.v0.11.1
∗ installed bin_prot.v0.11.0
∗ installed ppx_bin_prot.v0.11.1
∗ installed ppx_expect.v0.11.1
∗ installed ppx_jane.v0.11.0
∗ installed splittable_random.v0.11.0
∗ installed core_kernel.v0.11.1
∗ installed async_kernel.v0.11.1
∗ installed core.v0.11.3
∗ installed async_unix.v0.11.0
∗ installed cstruct-async.4.0.0
∗ installed expect_test_helpers_kernel.v0.11.0
∗ installed protocol_version_header.v0.11.0
∗ installed async_rpc_kernel.v0.11.0
∗ installed async_extra.v0.11.1
∗ installed async.v0.11.0
∗ installed async_find.v0.11.0
∗ installed async_inotify.v0.11.0
∗ installed async_interactive.v0.11.0
∗ installed command_rpc.v0.11.0
∗ installed conduit-async.1.4.0
∗ installed cohttp-async.2.1.1
∗ installed expect_test_helpers.v0.11.0
∗ installed re2.v0.11.0
∗ installed sequencer_table.v0.11.0
∗ installed textutils_kernel.v0.11.0
∗ installed textutils.v0.11.0
∗ installed core_extended.v0.11.0
∗ installed async_shell.v0.11.0
∗ installed delimited_parsing.v0.11.0
∗ installed async_extended.v0.11.0
Done.

<><> jbuilder.transition installed successfully <><><><><><><><><><><><><><><><>
=> Jbuilder has been renamed and the jbuilder package is now a transition
package. Use the dune package instead.
frenetic@frenetic-virtual-machine:~$ opam pin add frenetic https://github.com/frenetic-lang/frenetic.git
Processing: [frenetic.5.0.3: git]

[frenetic.5.0.3] synchronised from git+https://github.com/frenetic-lang/frenetic.git
frenetic is now pinned to git+https://github.com/frenetic-lang/frenetic.git (version 5.0.3)

The following actions will be performed:
↘ downgrade cstruct 4.0.0 to 3.7.0 [required by frenetic]
↻ recompile randomconv 0.1.2 [uses cstruct]
↻ recompile mirage-stack-lwt 1.4.0 [uses cstruct]
↻ recompile mirage-random 1.2.0 [uses cstruct]
↻ recompile mirage-protocols-lwt 2.0.0 [uses cstruct]
↻ recompile mirage-net-lwt 2.0.0 [uses cstruct]
↘ downgrade ppx_cstruct 4.0.0 to 3.7.0 [required by frenetic]
↘ downgrade cstruct-lwt 4.0.0 to 3.7.0 [uses cstruct]
↘ downgrade cstruct-async 4.0.0 to 3.7.0 [required by frenetic]
↻ recompile mirage-profile 0.8.2 [uses cstruct]
↻ recompile ethernet 2.0.0 [uses cstruct]
↻ recompile tcpip 3.7.4 [uses cstruct]
∗ install frenetic 5.0.3*
===== ∗ 1 ↻ 8 ↘ 4 =====
Do you want to continue? [Y/n] y

<><> Gathering sources ><><><><><><><><><><><><><><><><><><><><><><><><><><><><>
[cstruct.3.7.0] downloaded from cache at https://opam.ocaml.org/cache
[ethernet.2.0.0] found in cache
[mirage-net-lwt.2.0.0] found in cache
[mirage-profile.0.8.2] found in cache
[mirage-protocols-lwt.2.0.0] found in cache
[mirage-random.1.2.0] found in cache
[mirage-stack-lwt.1.4.0] found in cache
[ppx_cstruct.3.7.0] found in cache
[randomconv.0.1.2] found in cache
[tcpip.3.7.4] found in cache
[cstruct-async.3.7.0] downloaded from cache at https://opam.ocaml.org/cache
[cstruct-lwt.3.7.0] downloaded from cache at https://opam.ocaml.org/cache

<><> Processing actions <><><><><><><><><><><><><><><><><><><><><><><><><><><><>
⊘ removed cstruct-async.4.0.0
⊘ removed tcpip.3.7.4
⊘ removed cstruct-lwt.4.0.0
⊘ removed ethernet.2.0.0
⊘ removed mirage-net-lwt.2.0.0
⊘ removed mirage-profile.0.8.2
⊘ removed mirage-protocols-lwt.2.0.0
⊘ removed mirage-random.1.2.0
⊘ removed mirage-stack-lwt.1.4.0
⊘ removed ppx_cstruct.4.0.0
⊘ removed randomconv.0.1.2
⊘ removed cstruct.4.0.0
∗ installed cstruct.3.7.0
∗ installed cstruct-async.3.7.0
∗ installed cstruct-lwt.3.7.0
∗ installed mirage-net-lwt.2.0.0
∗ installed mirage-protocols-lwt.2.0.0
∗ installed mirage-random.1.2.0
∗ installed mirage-stack-lwt.1.4.0
∗ installed ppx_cstruct.3.7.0
∗ installed mirage-profile.0.8.2
∗ installed ethernet.2.0.0
∗ installed randomconv.0.1.2
∗ installed tcpip.3.7.4
∗ installed frenetic.5.0.3
Done.
frenetic@frenetic-virtual-machine:$
frenetic@frenetic-virtual-machine:
$ cd Downloads/
frenetic@frenetic-virtual-machine:/Downloads$ ls
frenetic-master opam-2.0.3-arm64-linux
frenetic-master.zip opam-full-2.0.3.tar.gz
frenetic@frenetic-virtual-machine:
/Downloads$ cd frenetic-master/
frenetic@frenetic-virtual-machine:/Downloads/frenetic-master$ ls
bench dune-project examples LICENSE ocamlinit src
_build dune-workspace frenetic.opam Makefile README.md test
frenetic@frenetic-virtual-machine:
/Downloads/frenetic-master$ make && make install
time -p dune build @install
File "src/syntax/dune", line 24, characters 2-23:
24 | (pps ppxlib.metaquot)))
^^^^^^^^^^^^^^^^^^^^^
Warning: .merlin generated is inaccurate. pps specification isn't identical in all stanzas.
Split the stanzas into different directories or silence this warning by adding (allow_approximate_merlin) to your dune-project.
ocamlc src/lib/netkat/.frenetic_netkat.objs/byte/frenetic_netkat__Json.{cmi,cmti} (exit 2)
(cd _build/default && /home/frenetic/.opam/4.07.1/bin/ocamlc.opt -w @a-4-29-40-41-42-44-45-48-58-59-60-40 -strict-sequence -strict-formats -short-paths -keep-locs -warn-error -6-9-27-32..34-37..39 -w -27-6-32-34-37-9-33-39 -safe-string -g -bin-annot -I src/lib/netkat/.frenetic_netkat.objs/byte -I /home/frenetic/.opam/4.07.1/lib/base -I /home/frenetic/.opam/4.07.1/lib/base/caml -I /home/frenetic/.opam/4.07.1/lib/base/md5 -I /home/frenetic/.opam/4.07.1/lib/base/shadow_stdlib -I /home/frenetic/.opam/4.07.1/lib/base64 -I /home/frenetic/.opam/4.07.1/lib/bin_prot -I /home/frenetic/.opam/4.07.1/lib/bin_prot/shape -I /home/frenetic/.opam/4.07.1/lib/biniou -I /home/frenetic/.opam/4.07.1/lib/bytes -I /home/frenetic/.opam/4.07.1/lib/core -I /home/frenetic/.opam/4.07.1/lib/core_kernel -I /home/frenetic/.opam/4.07.1/lib/core_kernel/base_for_tests -I /home/frenetic/.opam/4.07.1/lib/cstruct -I /home/frenetic/.opam/4.07.1/lib/easy-format -I /home/frenetic/.opam/4.07.1/lib/fieldslib -I /home/frenetic/.opam/4.07.1/lib/gen -I /home/frenetic/.opam/4.07.1/lib/ipaddr -I /home/frenetic/.opam/4.07.1/lib/jane-street-headers -I /home/frenetic/.opam/4.07.1/lib/macaddr -I /home/frenetic/.opam/4.07.1/lib/menhirLib -I /home/frenetic/.opam/4.07.1/lib/ocaml/compiler-libs -I /home/frenetic/.opam/4.07.1/lib/ocaml/threads -I /home/frenetic/.opam/4.07.1/lib/ocamlgraph -I /home/frenetic/.opam/4.07.1/lib/open -I /home/frenetic/.opam/4.07.1/lib/parsexp -I /home/frenetic/.opam/4.07.1/lib/ppx_assert/runtime-lib -I /home/frenetic/.opam/4.07.1/lib/ppx_bench/runtime-lib -I /home/frenetic/.opam/4.07.1/lib/ppx_compare/runtime-lib -I /home/frenetic/.opam/4.07.1/lib/ppx_deriving -I /home/frenetic/.opam/4.07.1/lib/ppx_expect/collector -I /home/frenetic/.opam/4.07.1/lib/ppx_expect/common -I /home/frenetic/.opam/4.07.1/lib/ppx_expect/config -I /home/frenetic/.opam/4.07.1/lib/ppx_hash/runtime-lib -I /home/frenetic/.opam/4.07.1/lib/ppx_inline_test/config -I /home/frenetic/.opam/4.07.1/lib/ppx_inline_test/runtime-lib -I /home/frenetic/.opam/4.07.1/lib/ppx_sexp_conv/runtime-lib -I /home/frenetic/.opam/4.07.1/lib/result -I /home/frenetic/.opam/4.07.1/lib/sedlex -I /home/frenetic/.opam/4.07.1/lib/sexplib -I /home/frenetic/.opam/4.07.1/lib/sexplib/unix -I /home/frenetic/.opam/4.07.1/lib/sexplib0 -I /home/frenetic/.opam/4.07.1/lib/spawn -I /home/frenetic/.opam/4.07.1/lib/splittable_random -I /home/frenetic/.opam/4.07.1/lib/stdio -I /home/frenetic/.opam/4.07.1/lib/tcpip -I /home/frenetic/.opam/4.07.1/lib/tcpip/unix -I /home/frenetic/.opam/4.07.1/lib/typerep -I /home/frenetic/.opam/4.07.1/lib/uchar -I /home/frenetic/.opam/4.07.1/lib/variantslib -I /home/frenetic/.opam/4.07.1/lib/yojson -I src/lib/kernel/.frenetic_kernel.objs/byte -I src/lib/kernel/.frenetic_kernel.objs/native -no-alias-deps -opaque -open Frenetic_netkat -o src/lib/netkat/.frenetic_netkat.objs/byte/frenetic_netkat__Json.cmi -c -intf src/lib/netkat/Json.pp.mli)
File "src/lib/netkat/Json.mli", line 18, characters 18-22:
Error (warning 3): deprecated: Yojson.Basic.json
json types are being renamed and will be removed in the next Yojson major version. Use type t instead
File "src/lib/netkat/Json.mli", line 22, characters 31-35:
Error (warning 3): deprecated: Yojson.Basic.json
json types are being renamed and will be removed in the next Yojson major version. Use type t instead
File "src/lib/netkat/Json.mli", line 24, characters 27-31:
Error (warning 3): deprecated: Yojson.Basic.json
json types are being renamed and will be removed in the next Yojson major version. Use type t instead
File "src/lib/netkat/Json.mli", line 43, characters 39-43:
Error (warning 3): deprecated: Yojson.Basic.json
json types are being renamed and will be removed in the next Yojson major version. Use type t instead
File "src/lib/netkat/Json.mli", line 44, characters 27-31:
Error (warning 3): deprecated: Yojson.Basic.json
json types are being renamed and will be removed in the next Yojson major version. Use type t instead
File "src/lib/netkat/Json.mli", line 45, characters 37-41:
Error (warning 3): deprecated: Yojson.Basic.json
json types are being renamed and will be removed in the next Yojson major version. Use type t instead
File "src/lib/netkat/Json.mli", line 46, characters 24-28:
Error (warning 3): deprecated: Yojson.Basic.json
json types are being renamed and will be removed in the next Yojson major version. Use type t instead
ocamlopt src/lib/netkat/.frenetic_netkat.objs/native/frenetic_netkat__Global_compiler.{cmx,o}
File "src/lib/netkat/Global_compiler.ml", line 6, characters 0-38:
Warning 38: unused exception Non_local
ocamlc src/lib/netkat/.frenetic_netkat.objs/byte/frenetic_netkat__Global_compiler.{cmo,cmt}
File "src/lib/netkat/Global_compiler.ml", line 6, characters 0-38:
Warning 38: unused exception Non_local
Command exited with non-zero status 1
real 32.95
user 23.29
sys 5.38
Makefile:4: recipe for target 'build' failed
make: *** [build] Error 1
frenetic@frenetic-virtual-machine:~/Downloads/frenetic-master$

Actually, you did not quite follow the instructions.

I don't see any evidence that you checked out a fresh copy of Frenetic from GitHub or at least verified the hash with git log.

Earlier today, starting from a fresh install of OCaml via OPAM, I successfully built Frenetic. I just merged a small pull request to fix the warnings shown above. Can you pull and try again? The hash is fc00790.

hi @jnfoster Thankyou for the help in installing frenetic. I am done with make && make install file.
When i start up frenetic using command "frenetic http-controller --verbosity debug" i am getting error that frenetic command not found . Same problem is with python repeater. It seams like repeater module is not in examples folder. Attaching screen shot.
frenetic

Can you please help me with this?

Thankyou

hi @jnfoster attaching another screenshot, repeater file is not in examples folder . Besides that frenetic.examples module is not found.
frenetic`

I do every step above,but still fail to make&make install
cry for help!
details:
gyb@6G-ProLiant-3:~/frenetic$ make install
time -p dune build @install
File "src/lib/netkat/dune", line 69, characters 2-83:
69 | (pps ppx_cstruct ppx_deriving.std ppx_jane -allow-unannotated-ignores sedlex.ppx))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.ppx/1bf2b60de9b86435476eb82605b57f56/ppx.exe: unknown option '-allow-unannotated-ignores'.
ppx.exe [extra_args] []
-as-ppx Run as a -ppx rewriter (must be the first argument)
--as-ppx Same as -as-ppx
-as-pp Shorthand for: -dump-ast -embed-errors
--as-pp Same as -as-pp
-o Output file (use '-' for stdout)

  •                            Read input from stdin
    

-dump-ast Dump the marshaled ast to the output file instead of pretty-printing it
--dump-ast Same as -dump-ast
-dparsetree Print the parsetree (same as ocamlc -dparsetree)
-embed-errors Embed errors in the output AST (default: true when -dump-ast, false otherwise)
-null Produce no output, except for errors
-impl Treat the input as a .ml file
--impl Same as -impl
-intf Treat the input as a .mli file
--intf Same as -intf
-debug-attribute-drop Debug attribute dropping
-print-transformations Print linked-in code transformations, in the order they are applied
-print-passes Print the actual passes over the whole AST in the order they are applied
-ite-check (no effect -- kept for compatibility)
-pp Pipe sources through preprocessor (incompatible with -as-ppx)
-reconcile (WIP) Pretty print the output using a mix of the input source and the generated code
-reconcile-with-comments (WIP) same as -reconcile but uses comments to enclose the generated code
-no-color Don't use colors when printing errors
-diff-cmd Diff command when using code expectations (use - to disable diffing)
-pretty Instruct code generators to improve the prettiness of the generated code
-styler Code styler
-output-metadata FILE Where to store the output metadata
-corrected-suffix SUFFIX Suffix to append to corrected files
-loc-filename File name to use in locations
-reserve-namespace Mark the given namespace as reserved
-no-check Disable checks (unsafe)
-check Enable checks
-no-check-on-extensions Disable checks on extension point only
-check-on-extensions Enable checks on extension point only
-no-locations-check Disable locations check only
-locations-check Enable locations check only
-apply Apply these transformations in order (comma-separated list)
-dont-apply Exclude these transformations
-no-merge Do not merge context free transformations (better for debugging rewriters). As a result, the context-free transformations are not all applied before all impl and intf.
-cookie NAME=EXPR Set the cookie NAME to EXPR
--cookie Same as -cookie
-deriving-keep-w32 {impl|intf|both}
Do not try to disable warning 32 for the generated code
-deriving-disable-w32-method {code|attribute}
How to disable warning 32 for the generated code
-type-conv-keep-w32 {impl|intf|both}
Deprecated, use -deriving-keep-w32
-type-conv-w32 {code|attribute}
Deprecated, use -deriving-disable-w32-method
-deriving-keep-w60 {impl|intf|both}
Do not try to disable warning 60 for the generated code
-dirname

Name of the current directory relative to the root of the project
-inline-test-lib A base name to use for generated identifiers (has to be globally unique in a program).ppx_inline_test (and ppx_bench) are disabled unless this flag is passed.
-bench-drop Drop inline benchmarks
-bench-drop-with-deadcode Drop inline benchmarks by wrapping them inside deadcode to prevent unused variable warnings.
-inline-test-drop Drop unit tests
-inline-test-drop-with-deadcode Drop unit tests by wrapping them inside deadcode to prevent unused variable warnings.
-log-source-position If set, adds a "pos" tag with a source code position to every logged message.
-help Display this list of options
--help Display this list of options
File "src/lib/kernel/dune", line 8, characters 2-72:
8 | (pps ppx_cstruct ppx_deriving.std ppx_jane -allow-unannotated-ignores))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.ppx/afd2dbf131dae9d0c8626eb8cf9ac4d1/ppx.exe: unknown option '-allow-unannotated-ignores'.
ppx.exe [extra_args] []
-as-ppx Run as a -ppx rewriter (must be the first argument)
--as-ppx Same as -as-ppx
-as-pp Shorthand for: -dump-ast -embed-errors
--as-pp Same as -as-pp
-o Output file (use '-' for stdout)

  •                            Read input from stdin
    

-dump-ast Dump the marshaled ast to the output file instead of pretty-printing it
--dump-ast Same as -dump-ast
-dparsetree Print the parsetree (same as ocamlc -dparsetree)
-embed-errors Embed errors in the output AST (default: true when -dump-ast, false otherwise)
-null Produce no output, except for errors
-impl Treat the input as a .ml file
--impl Same as -impl
-intf Treat the input as a .mli file
--intf Same as -intf
-debug-attribute-drop Debug attribute dropping
-print-transformations Print linked-in code transformations, in the order they are applied
-print-passes Print the actual passes over the whole AST in the order they are applied
-ite-check (no effect -- kept for compatibility)
-pp Pipe sources through preprocessor (incompatible with -as-ppx)
-reconcile (WIP) Pretty print the output using a mix of the input source and the generated code
-reconcile-with-comments (WIP) same as -reconcile but uses comments to enclose the generated code
-no-color Don't use colors when printing errors
-diff-cmd Diff command when using code expectations (use - to disable diffing)
-pretty Instruct code generators to improve the prettiness of the generated code
-styler Code styler
-output-metadata FILE Where to store the output metadata
-corrected-suffix SUFFIX Suffix to append to corrected files
-loc-filename File name to use in locations
-reserve-namespace Mark the given namespace as reserved
-no-check Disable checks (unsafe)
-check Enable checks
-no-check-on-extensions Disable checks on extension point only
-check-on-extensions Enable checks on extension point only
-no-locations-check Disable locations check only
-locations-check Enable locations check only
-apply Apply these transformations in order (comma-separated list)
-dont-apply Exclude these transformations
-no-merge Do not merge context free transformations (better for debugging rewriters). As a result, the context-free transformations are not all applied before all impl and intf.
-cookie NAME=EXPR Set the cookie NAME to EXPR
--cookie Same as -cookie
-deriving-keep-w32 {impl|intf|both}
Do not try to disable warning 32 for the generated code
-deriving-disable-w32-method {code|attribute}
How to disable warning 32 for the generated code
-type-conv-keep-w32 {impl|intf|both}
Deprecated, use -deriving-keep-w32
-type-conv-w32 {code|attribute}
Deprecated, use -deriving-disable-w32-method
-deriving-keep-w60 {impl|intf|both}
Do not try to disable warning 60 for the generated code
-dirname

Name of the current directory relative to the root of the project
-inline-test-lib A base name to use for generated identifiers (has to be globally unique in a program).ppx_inline_test (and ppx_bench) are disabled unless this flag is passed.
-bench-drop Drop inline benchmarks
-bench-drop-with-deadcode Drop inline benchmarks by wrapping them inside deadcode to prevent unused variable warnings.
-inline-test-drop Drop unit tests
-inline-test-drop-with-deadcode Drop unit tests by wrapping them inside deadcode to prevent unused variable warnings.
-log-source-position If set, adds a "pos" tag with a source code position to every logged message.
-help Display this list of options
--help Display this list of options
Command exited with non-zero status 1
real 1.07
user 4.28
sys 1.51
Makefile:4: recipe for target 'build' failed
make: *** [build] Error 1

gyb@6G-ProLiant-3:/frenetic$ opam --version
2.0.2
gyb@6G-ProLiant-3:
/frenetic$ ocaml -version
The OCaml toplevel, version 4.11.0
gyb@6G-ProLiant-3:~/frenetic$ dune --version
3.4.1