conntest icon indicating copy to clipboard operation
conntest copied to clipboard

outreachy: compile and run conntest!

Open rand00 opened this issue 2 years ago • 9 comments

The instructions can be seen in the README.md. Post questions here if you e.g. have trouble compiling (:

rand00 avatar Mar 08 '23 17:03 rand00

It will also be nice if you note anything you found hard, then we can add more information to the README

rand00 avatar Mar 08 '23 17:03 rand00

Hello @rand00 please can I work on this?

Burnleydev1 avatar Mar 09 '23 19:03 Burnleydev1

Hello @rand00, I keep running into this error when I run mirage configure -t spt -f mirage/config.ml && make depend && mirage build -f mirage/config.ml Please is it that I am missing a step? this is the error message I get

opam-monorepo: [ERROR] Can't find all required versions.
Selected: angstrom.0.15.0 arp.3.0.0 astring.0.8.5+dune base.v0.15.1
          base-bigarray.base base-bytes.base+dune base-domains.base
          base-nnp.base base-threads.base base-unix.base bheap.2.0.0
          bigstringaf.0.9.0 cmdliner.1.1.1+dune conf-pkg-config.2
          conntest.zdev conntest-spt.zdev cppo.1.6.9 csexp.1.5.1
          cstruct.6.1.1 cstruct-lwt.6.1.1 domain-name.0.4.0 dune.3.7.0
          dune-configurator.3.7.0 duration.0.2.1 eqaf.0.9 ethernet.3.0.0
          findlib.1.9.5+dune fmt.0.9.0+dune functoria-runtime.4.3.4
          ipaddr.5.3.1 logs.0.7.0+dune2 lru.0.3.1 lwt.5.6.1 lwt-dllist.1.0.1
          lwt_react.1.2.0 macaddr.5.3.1 macaddr-cstruct.5.3.1 metrics.0.4.0
          metrics-lwt.0.4.0 mirage-bootvar-solo5.0.6.0 mirage-clock.4.2.0
          mirage-clock-solo5.4.2.0 mirage-console.5.1.0
          mirage-console-solo5.0.8.0 mirage-crypto.0.11.0
          mirage-crypto-rng.0.11.0 mirage-crypto-rng-mirage.0.11.0
          mirage-flow.3.0.0 mirage-logs.1.2.0 mirage-net.4.0.0
          mirage-net-solo5.0.8.0 mirage-profile.0.9.1 mirage-random.3.0.0
          mirage-runtime.4.3.4 mirage-solo5.0.9.2 mirage-time.3.0.0 notty.dev
          num.1.4+dune2 ocaml-base-compiler.5.0.0 ocaml-compiler-libs.v0.12.4
          ocaml-config.3 ocaml-options-vanilla.1 ocaml-syntax-shims.1.0.0
          ocamlfind.1.9.5+dune ocplib-endian.1.2 parse-argv.0.2.0
          parsexp.v0.15.0 ppx_cstruct.6.1.1 ppx_derivers.1.2.1
          ppx_deriving.5.2.1 ppx_deriving_yojson.3.7.0 ppxlib.0.29.1
          psq.0.2.1 ptime.1.0.0+dune2 randomconv.0.1.3 react.1.2.2+dune
          result.1.5 seq.base+dune sexplib.v0.15.1 sexplib0.v0.15.1
          stdlib-shims.0.3.0 stringext.1.6.0 tcpip.7.1.2 uri.4.2.0
          uuidm.0.9.8+dune uutf.1.0.3+dune yojson.2.0.2
          ocaml-base-compiler&conntest-spt base-domains ocaml
          ocaml-base-compiler ocaml-base-compiler ocaml-base-compiler
- ocaml -> ocaml.5.0.0
    User requested = 5.0.0
- ocaml-variants -> (problem)
    Rejected candidates:
      ocaml-variants.5.1.0+trunk: In same conflict class (ocaml-core-compiler) as ocaml-base-compiler
      ocaml-variants.5.0.1+trunk: In same conflict class (ocaml-core-compiler) as ocaml-base-compiler
      ocaml-variants.5.0.0+tsan: In same conflict class (ocaml-core-compiler) as ocaml-base-compiler
      ocaml-variants.5.0.0+options: In same conflict class (ocaml-core-compiler) as ocaml-base-compiler
      ocaml-variants.5.0.0~rc1+options: In same conflict class (ocaml-core-compiler) as ocaml-base-compiler
      ...
removing overlay repository [opam-overlays, mirage-overlays]
Repositories removed from the selections of switch mirage. Use '--all' to forget about them altogether.
Repositories removed from the selections of switch mirage. Use '--all' to forget about them altogether.
make[2]: *** [Makefile:36: mirage/mirage/conntest-spt.opam.locked] Error 1
make[1]: *** [Makefile:39: lock] Error 2
make: *** [Makefile:51: depend] Error 2

Burnleydev1 avatar Mar 09 '23 23:03 Burnleydev1

So I learned that since mirage is not supported by ocaml v5.0.0, the command mirage configure -t spt -f mirage/config.ml && make depend && mirage build -f mirage/config.ml was not running successfully, so I am suggesting we add it to the README.md file so others will remember to change to v4.14.1.

Burnleydev1 avatar Mar 09 '23 23:03 Burnleydev1

Also running the command mirage/dist/conntest --help gives the error bash: mirage/dist/conntest: No such file or directory since there is rather contest.spt and contest.hvt and that did not work as well.

Burnleydev1 avatar Mar 10 '23 00:03 Burnleydev1

Hey @Burnleydev1 !

so I am suggesting we add it to the README.md file so others will remember to change to v4.14.1.

Indeed this would be useful (: Will you make a PR for this?

mirage/dist/conntest --help

Yes - this binary is only present if you configured for the unix target. You can also pass --help if run using solo5-spt or solo5-hvt, e.g.:

solo5-spt --net:service=tap101 mirage/dist/conntest.spt --help

.. but here you need to have setup the TAP device first, as this is a dependency of the unikernel to run as these targets

As the README currently states that you can run that command after compiling to the unix target, I don't think this is an issue.

Thanks for the report (:

rand00 avatar Mar 10 '23 10:03 rand00

Hello @rand00,

Indeed this would be useful (: Will you make a PR for this?

yes, I would love to add it.

As the README currently states that you can run that command after compiling to the unix target, I don't think this is an issue.

Perhaps we could add the steps that can be used to run the script, the location where it should be saved, and other points that will make it easier for users to set up TAP

Burnleydev1 avatar Mar 10 '23 14:03 Burnleydev1

Perhaps we could add the steps that can be used to run the script, the location where it should be saved, and other points that will make it easier for users to set up TAP

At the end of the README there is the 'Network setup' section. The script shown there just needs to be run from any location, as setting up a bridge and tap-devices is a global action on the system (not persisted between restarts). I'm not sure that more information is needed.

rand00 avatar Mar 13 '23 19:03 rand00

Hello @rand00, thank you, I have removed that part from the PR

Burnleydev1 avatar Mar 13 '23 20:03 Burnleydev1