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

outreachy: compile and run conntest! #1

Open
rand00 opened this issue Mar 8, 2023 · 9 comments · May be fixed by #8
Open

outreachy: compile and run conntest! #1

rand00 opened this issue Mar 8, 2023 · 9 comments · May be fixed by #8
Labels

Comments

@rand00
Copy link
Owner

rand00 commented Mar 8, 2023

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

@rand00 rand00 added good first issue Good for newcomers outreachy labels Mar 8, 2023
@rand00
Copy link
Owner Author

rand00 commented Mar 8, 2023

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

@Burnleydev1
Copy link

Hello @rand00 please can I work on this?

@Burnleydev1
Copy link

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
Copy link

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
Copy link

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.

@rand00
Copy link
Owner Author

rand00 commented Mar 10, 2023

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 (:

@Burnleydev1
Copy link

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 Burnleydev1 linked a pull request Mar 10, 2023 that will close this issue
@rand00
Copy link
Owner Author

rand00 commented Mar 13, 2023

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.

@Burnleydev1
Copy link

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

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

Successfully merging a pull request may close this issue.

2 participants