Giter Site home page Giter Site logo

mirage / mirage-www Goto Github PK

View Code? Open in Web Editor NEW
170.0 29.0 106.0 11.58 MB

Website infrastructure and content for mirage.io

Home Page: https://mirage.io

License: ISC License

Makefile 0.01% CSS 24.60% JavaScript 0.65% OCaml 18.83% Dockerfile 0.48% HTML 55.43%

mirage-www's Introduction

Mirage.io

Website infrastructure and content for mirage.io

Set up your development environment

You need opam. You can install it by following opam's documentation.

With opam installed, you can install the dependencies in a new local switch with:

make switch

Or globally, with:

make deps

Then, build the project with:

make build

Running the server

After building the project, you can run the server with:

make start

The server runs on port 8080 by default. To change the port, set the MIRAGE_WWW_PORT environment variable:

MIRAGE_WWW_PORT=8088 make start

To start the server in watch mode, you can run:

make watch

This will restart the server on filesystem changes and reload the pages automatically.

MirageOS unikernel

Alternatively, the mirage/ folder implements the webserver as a MirageOS 4 unikernel. To set it up, install the mirage tool:

opam repo add mirage-dev https://github.com/mirage/mirage-dev.git # until MirageOS 4 is released
opam install "mirage>=4.0.0"

Then, the unikernel can be configured:

mirage configure -f mirage/config.ml -t <TARGET> ...

Fetch the dependencies:

make depends

Build the unikernel:

dune build mirage/

Clean up:

mirage clean -f mirage/config.ml
rm -rf mirage/duniverse

mirage-www's People

Contributors

amirmc avatar avsm avatar buzzheavyyear avatar chris00 avatar christinerose avatar derpeter avatar djs55 avatar drup avatar hannesm avatar jonludlam avatar mato avatar mattochal avatar mk270 avatar moonlightdrive avatar mor1 avatar niksu avatar olleolleolle avatar pqwy avatar raphael-proust avatar reynir avatar sabine avatar samoht avatar shonfeder avatar talex5 avatar thelortex avatar tmattio avatar vbmithr avatar voodoos avatar yallop avatar yomimono avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

mirage-www's Issues

Docs :: Hello Mirage World seems to be out-of-date

Step 4: Networking of Docs:: Hello Mirage World seems to be out-of-date.
In this document, if stackv4 example run, we can curl localhost and return hello mirage world.
But I tried this, there are no response.
I searched the string "hello" in the source code, but there are no such string in the stackv4 example.

Auto-tweet each item as it gets added to the RSS feed

We have a twitter account and we should be auto-tweeting content that gets added to the site. Most of this already ends up in the RSS feed so I wonder that hooking something into that would be a simple way of achieving this (tweet a title and link).

A twitter, unikernel bot could be set up to do this but it would require an awesome name (apparently roadrunners live in the desert, but then we'd also have to have another unikernel called coyote chasing it).

Write up as Pioneer Project?

is-mirage-broken predicts the future?

Your updates page has the top result:

Mirage build status (29 Nov 2014)

That date is in the future -- can that be right?

It looks like that date originates from this file which reads

(*NOTE this file was generated by is-mirage-broken -- DO NOT EDIT*)
...
let entry_for_is_mirage_broken_wikipage =
  {
    updated = date (2014, 11, 29, 19, 00);
    ...

Travis deploy scripts not working

From the recent travis build failure (see here)

Checking connectivity... done.
+rm -rf mirage-www-deployment/xen/b78add17cb0a82ce8ad735dbcb11d989773054b6
+mkdir -p mirage-www-deployment/xen/b78add17cb0a82ce8ad735dbcb11d989773054b6
+cp src/mir-mirage/mirage-www#mirage/mirage-.xen src/config.ml mirage-www-deployment/xen/b78add17cb0a82ce8ad735dbcb11d989773054b6
cp: cannot stat `src/mir-mirage/mirage-www#mirage/mirage-.xen': No such file or directory
'OPAMYES=1 export OPAMYES; MIRDIR=${MIRDIR:-src} export MIRDIR; XENIMG=mir-${XENIMG:-$TRAVIS_REPO_SLUG#mirage/mirage-}.xen export XENIMG; DEPLOYD=${TRAVIS_REPO_SLUG#*/}-deployment export DEPLOYD; set -ex; cp $MIRDIR/$XENIMG $MIRDIR/config.ml $DEPLOYD/xen/$TRAVIS_COMMIT' exited 1. Terminating with 1
The command "bash -ex .travis-mirage.sh" exited with 1.

I can't help much with the scripts as I'm no longer sure where to look.

@dsheets @mor1, any thoughts on what's going on?

Cannot serve mirage-www locally

I can't seem to serve the site locally. It builds ok and I can run it (via sudo mirage run) but I get no pings from 10.0.0.2 (after setting tap0).

I'm as up to date as I can get with packages although I get the following:

$ opam upgrade
Everything as up-to-date as possible (run with --verbose to show unavailable upgrades).
The following would require downgrades or uninstalls, but you may upgrade them explicitely:
  - cohttp.0.15.1
  - lwt.2.4.7
$ opam config report
# OPAM status report
# opam-version    1.2.0
# self-upgrade    no
# os              darwin
# external-solver no
# criteria        -removed,-notuptodate,-changed*
# jobs            4
# repositories    1* (http)
# pinned          0
# current-switch  mirage-401
# last-update     2015-01-14 23:30

I'm on OSX 10.8.5 using the internal opam solver on OCaml 4.01.0

Hello World documentation has been broken by a change to mirage-skeleton.

Not sure if this is the write place to note the issue, I asked on IRC but folks were idled or frantically Christmas shopping. No big deal but the hello world page, step 4 is broken due to a change in the mirage-skeleton.

Step 4 of the hello world has the following instruction

$ curl http://localhost
hello mirage world!

This change Fix the stackv4 example to not use HTTP (which is now Conduit based) has made Step 4 of the Hello World examples not work as there is no http in stack4 anymore.

Precise instructions on how to run mirage-www socket mode

I have followed your instructions on how to build and run mirage-www on socket mode:

$ cd src
$ env NET=socket FS=crunch mirage configure --unix
$ make depend
$ make
$ make run

but this fails to run properly, as I got:

[...]
read: /wiki/htcaml.md
Fatal error: exception Unix.Unix_error(1, "bind", "")
Called from file "unix/tcpip_stack_socket.ml", line 101, characters 4-41
Called from file "src/core/lwt.ml", line 652, characters 66-69
Re-raised at file "src/core/lwt.ml", line 788, characters 22-23
Called from file "src/unix/lwt_main.ml", line 34, characters 8-18
Called from file "main.ml", line 109, characters 2-28
Makefile:35: recipe for target 'run' failed
make: *** [run] Error 2

Using sudo ./mir-www all works fine.

Unbound module Cowabloga.Feed

I was able to build & run the hello world example for for unix and xen. Went on to tackle the mirage-www example. Followed the instructions here: http://openmirage.org/wiki/mirage-www

$ mirage configure --unix
MIRAGE Using the scanned config file: config.ml
MIRAGE Compiling and dynlinkg /mnt/mint/phil/development/OCaml_stuff/mirage/mirage-www/src/config.ml
MIRAGE + Executing: rm -rf /mnt/mint/phil/development/OCaml_stuff/mirage/mirage-www/src/_build/config.*
MIRAGE + Executing: cd /mnt/mint/phil/development/OCaml_stuff/mirage/mirageFinished, 4 targets (0 cached) in 00:00:00.

MIRAGE CONFIGURE: /mnt/mint/phil/development/OCaml_stuff/mirage/mirage-www/src/config.ml
MIRAGE 1 job [job1]
MIRAGE Installing OPAM packages.
MIRAGE + Executing: opam install --yes cow cowabloga cstruct lwt mirage-console-unix mirage-fs-unix mirage-http-unix mirage-types mirage-unix[NOTE] Package mirage-unix is already installed (current version is 1.0.0).
[NOTE] Package mirage-types is already installed (current version is 1.0.0).
[NOTE] Package mirage-http-unix is already installed (current version is 1.0.0).
[NOTE] Package mirage-fs-unix is already installed (current version is 1.0.0).
[NOTE] Package mirage-console-unix is already installed (current version is 1.0.0).
[NOTE] Package lwt is already installed (current version is 2.4.4).
[NOTE] Package cstruct is already installed (current version is 1.0.1).
[NOTE] Package cowabloga is already installed (current version is 0.0.2).
[NOTE] Package cow is already installed (current version is 0.9.1).

MIRAGE Generating /mnt/mint/phil/development/OCaml_stuff/mirage/mirage-www/src/main.ml
[phil@quad src]$ make
ocamlbuild -classic-display -use-ocamlfind -pkgs lwt.syntax,cow.syntax,cowabloga,cstruct,io-page-unix,lwt,mirage-console-unix,mirage-fs-unix,mirage-http-unix,mirage-types,mirage.types-unix -tags "syntax(camlp4o)" -cflag -g -lflags -g,-linkpkg main.native
ocamlfind ocamldep -package mirage.types-unix -package mirage-types -package mirage-http-unix -package mirage-fs-unix -package mirage-console-unix -package lwt -package io-page-unix -package cstruct -package cowabloga -package cow.syntax -package lwt.syntax -syntax camlp4o -modules main.ml > main.ml.depends
ocamlfind ocamldep -package mirage.types-unix -package mirage-types -package mirage-http-unix -package mirage-fs-unix -package mirage-console-unix -package lwt -package io-page-unix -package cstruct -package cowabloga -package cow.syntax -package lwt.syntax -syntax camlp4o -modules dispatch.ml > dispatch.ml.depends
ocamlfind ocamldep -package mirage.types-unix -package mirage-types -package mirage-http-unix -package mirage-fs-unix -package mirage-console-unix -package lwt -package io-page-unix -package cstruct -package cowabloga -package cow.syntax -package lwt.syntax -syntax camlp4o -modules blog.ml > blog.ml.depends
ocamlfind ocamldep -package mirage.types-unix -package mirage-types -package mirage-http-unix -package mirage-fs-unix -package mirage-console-unix -package lwt -package io-page-unix -package cstruct -package cowabloga -package cow.syntax -package lwt.syntax -syntax camlp4o -modules data.ml > data.ml.depends
ocamlfind ocamldep -package mirage.types-unix -package mirage-types -package mirage-http-unix -package mirage-fs-unix -package mirage-console-unix -package lwt -package io-page-unix -package cstruct -package cowabloga -package cow.syntax -package lwt.syntax -syntax camlp4o -modules paper.ml > paper.ml.depends
ocamlfind ocamldep -package mirage.types-unix -package mirage-types -package mirage-http-unix -package mirage-fs-unix -package mirage-console-unix -package lwt -package io-page-unix -package cstruct -package cowabloga -package cow.syntax -package lwt.syntax -syntax camlp4o -modules perf.ml > perf.ml.depends
ocamlfind ocamlc -c -g -package mirage.types-unix -package mirage-types -package mirage-http-unix -package mirage-fs-unix -package mirage-console-unix -package lwt -package io-page-unix -package cstruct -package cowabloga -package cow.syntax -package lwt.syntax -syntax camlp4o -o paper.cmo paper.ml
ocamlfind ocamlc -c -g -package mirage.types-unix -package mirage-types -package mirage-http-unix -package mirage-fs-unix -package mirage-console-unix -package lwt -package io-page-unix -package cstruct -package cowabloga -package cow.syntax -package lwt.syntax -syntax camlp4o -o perf.cmo perf.ml
ocamlfind ocamldep -package mirage.types-unix -package mirage-types -package mirage-http-unix -package mirage-fs-unix -package mirage-console-unix -package lwt -package io-page-unix -package cstruct -package cowabloga -package cow.syntax -package lwt.syntax -syntax camlp4o -modules pages.ml > pages.ml.depends
ocamlfind ocamlc -c -g -package mirage.types-unix -package mirage-types -package mirage-http-unix -package mirage-fs-unix -package mirage-console-unix -package lwt -package io-page-unix -package cstruct -package cowabloga -package cow.syntax -package lwt.syntax -syntax camlp4o -o data.cmo data.ml
ocamlfind ocamlc -c -g -package mirage.types-unix -package mirage-types -package mirage-http-unix -package mirage-fs-unix -package mirage-console-unix -package lwt -package io-page-unix -package cstruct -package cowabloga -package cow.syntax -package lwt.syntax -syntax camlp4o -o pages.cmo pages.ml

  • ocamlfind ocamlc -c -g -package mirage.types-unix -package mirage-types -package mirage-http-unix -package mirage-fs-unix -package mirage-console-unix -package lwt -package io-page-unix -package cstruct -package cowabloga -package cow.syntax -package lwt.syntax -syntax camlp4o -o pages.cmo pages.ml
    File "pages.ml", line 58, characters 17-39:
    Error: Unbound module Cowabloga.Feed
    Command exited with code 2.
    make: *** [main.native] Error 10

I'm guessing some change was made to cowabloga that hasn't been released in an updated opam package yet? I see this commit comment in mirage-www from 2 days ago:
"Use the Cowabloga 0.0.3 Feed module to add an Updates feed to the froโ€ฆ"

(tl;dr: looks like there should be a cowabloga version 0.0.3 which hasn't been released on opam yet - I have 0.0.2 installed and when I tried to upgrade I'm told it's up to date - also did opam update -u just prior to all of this)

Cannot build on CentOS 6.5

I'm trying to get into MirageOS by following the instructions / tutorial on http://openmirage.org

I was trying to build the mirage-www package on a CentOS 6.5 VM, and this is the error I get into:

[vagrant@centos65 src]$ mirage config --unix
Mirage      Using scanned config file: config.ml
Mirage      Processing: /home/vagrant/src/mirage-www/src/config.ml
Mirage      => rm -rf /home/vagrant/src/mirage-www/src/_build/config.*
Mirage      => cd /home/vagrant/src/mirage-www/src && ocamlbuild -use-ocamlfind -tags annot,bin_annot -pkg mirage config.cmxs
Mirage       ocamlfind ocamldep -package mirage -modules config.ml > config.ml.depends
Mirage       ocamlfind ocamlc -c -annot -bin-annot -package mirage -o config.cmo config.ml
Mirage       + ocamlfind ocamlc -c -annot -bin-annot -package mirage -o config.cmo config.ml
Mirage       File "config.ml", line 57, characters 2-16:
Mirage       Error: Unbound value conduit_direct
Mirage       Command exited with code 2.
[ERROR]      The command "cd /home/vagrant/src/mirage-www/src && ocamlbuild -use-ocamlfind -tags annot,bin_annot -pkg mirage config.cmxs" exited with code 10.

Attached some additional information about the enviromnent:

Ocaml version:

[vagrant@centos65 src]$ ocaml -version
The OCaml toplevel, version 4.01.0

Opam packages installed:

[vagrant@centos65 src]$ opam list
Installed packages for system:
base-bigarray             base  Bigarray library distributed with the OCaml compiler
base-bytes              legacy  Bytes compatibility library distributed with ocamlfind
base-no-ppx               base  A pseudo-library to indicate lack of extension points support
base-threads              base  Threads library distributed with the OCaml compiler
base-unix                 base  Unix library distributed with the OCaml compiler
base64                   1.0.0  Base64 encoding and decoding library
camlp4                  4.01.0  Camlp4 is a system for writing extensible parsers for programming languages
cmdliner                 0.9.5  Declarative definition of command line interfaces for OCaml
cohttp                  0.10.1  HTTP library for Lwt, Async and Mirage
cstruct                  1.4.0  access C structures via a camlp4 extension
dns                     0.10.0  DNS client and server implementation
fieldslib            109.20.03  Syntax extension to define first class values representing record fields, to get and set record fields, iterate and fold over all fields of a record and create new record values
io-page                  1.1.1  Allocate memory pages suitable for aligned I/O
ipaddr                   2.5.0  IP (and MAC) address representation library
lwt                      2.4.6  A cooperative threads library for OCaml
mirage                   1.2.0  The Mirage library operating system
mirage-block-unix        1.2.1  Mirage disk block driver for Unix
mirage-clock-unix        1.0.0  A Mirage-compatible Clock library for Unix
mirage-console-unix      1.0.0  A Mirage-compatible Console library for Unix
mirage-http              1.1.0  Mirage HTTP client and server driver for Unix
mirage-net-unix          1.1.1  Ethernet network driver for Mirage, using tuntap
mirage-types             1.2.0  Module type definitions for Mirage-compatible applications
mirage-unix              1.1.0  Mirage OS library for Unix compilation
ocamlfind                1.5.3  A library manager for OCaml
ocplib-endian              0.7  Optimised functions to read and write int16/32/64 from strings and bigarrays, based on new primitives added in version 4.01.
optcomp                    1.6  Optional compilation with cpp-like directives
ounit                    2.0.0  Unit testing framework loosely based on HUnit. It is similar to JUnit, and other XUnit testing frameworks
re                       1.2.2  RE is a regular expression library for OCaml
sexplib              111.25.00  Library for serializing OCaml values to and from S-expressions
shared-memory-ring       1.1.0  Shared memory rings for RPC and bytestream communications.
ssl                      0.4.7  Bindings for OpenSSL
stringext                1.0.0  Extra string functions for OCaml
tcpip                    1.1.6  Userlevel TCP/IP stack
tuntap                   1.0.0  TUN/TAP bindings
type_conv            111.13.00  Library for building type-driven syntax extensions
uri                      1.7.2  RFC3986 URI/URL parsing library
vchan                    2.0.0  Xen Vchan implementation
xenstore                 1.2.5  Xenstore protocol clients and server

I tried to install the conduit package, but it fails rebuilding the mirage-console-unix.1.0.0 package due to what I believe is an incompatibility with mirage-types-2.0.0 that seems to be required by conduit.

More details here:

[vagrant@centos65 src]$ opam install conduit
The following actions will be performed:
 - install base64.1.0.0 [required by conduit]
 - install xenstore.1.2.5 [required by conduit]
 - upgrade mirage-types.1.2.0 to 2.0.0 [required by conduit]
 - install dns.0.10.0 [required by conduit]
 - recompile mirage.1.2.0 [use mirage-types]
 - recompile mirage-block-unix.1.2.1 [use mirage-types]
 - recompile mirage-clock-unix.1.0.0 [use mirage-types]
 - recompile mirage-net-unix.1.1.1 [use mirage-types]
 - install vchan.2.0.0 [required by conduit]
 - recompile mirage-unix.1.1.0 [use mirage-types]
 - recompile mirage-console-unix.1.0.0 [use mirage-types]
 - recompile tcpip.1.1.6 [use mirage-types]
 - install conduit.0.6.0
 - recompile mirage-http.1.1.0 [use mirage-types]
5 to install | 8 to reinstall | 1 to upgrade | 0 to downgrade | 0 to remove

....


===== ERROR while recompiling mirage-console-unix.1.0.0 =====
# opam-version 1.1.1
# os           linux
# command      make unix-install
# path         /home/vagrant/ocamlbrew/ocaml-4.01.0/.opam/system/build/mirage-console-unix.1.0.0
# compiler     system (4.01.0)
# exit-code    2
# env-file     /home/vagrant/ocamlbrew/ocaml-4.01.0/.opam/system/build/mirage-console-unix.1.0.0/mirage-console-unix-19919-f589c9.env
# stdout-file  /home/vagrant/ocamlbrew/ocaml-4.01.0/.opam/system/build/mirage-console-unix.1.0.0/mirage-console-unix-19919-f589c9.out
# stderr-file  /home/vagrant/ocamlbrew/ocaml-4.01.0/.opam/system/build/mirage-console-unix.1.0.0/mirage-console-unix-19919-f589c9.err
### stdout ###
# ...[truncated]
# ocamlfind ocamlc -c -package mirage-unix -package mirage-types -I unix -o unix/console.cmo unix/console.ml
# + ocamlfind ocamlc -c -package mirage-unix -package mirage-types -I unix -o unix/console.cmo unix/console.ml
# File "unix/console.ml", line 1:
# Error: The implementation unix/console.ml
#        does not match the interface unix/console.cmi:
#        The field `close' is required but not provided
#        The field `writev' is required but not provided
#        The field `read' is required but not provided
#        The field `buffer' is required but not provided
# Command exited with code 2.
### stderr ###
# ocamlfind: [WARNING] No such directory: /home/vagrant/ocamlbrew/ocaml-4.01.0/.opam/system/lib/mirage-console-unix
# ocamlfind: _build/unix/mirage-console.cmxs: No such file or directory
# make: *** [unix-install] Error 2

Let me know if you need more details

http://openmirage.org/wiki/atom.xml feed replay

It seems that I had a http://openmirage.org/wiki/atom.xml feed replay today.

I don't know how you generate your uuids but in any case here's a relatively fullproof way of generating uuids in atom feeds.

  1. Generate a RFC 4122 V4 (random based) root uuid for your feed uuid. Keep it preciously.
  2. For each entry use a RFC 4122 V5 (sha-1 name based) that uses the uuid of the feed as the name space and the original publication date (which should never change in a feed) in RFC 3339 format as the name.

Basically for a feed with id $FEEDID and an entry with original publication date $PUB_DATE use uuidtrip -sha1 -ns $FEEDID -name $PUB_DATE as the entry id.

As long as your system doesn't change the initial publication dates of the articles and that you didn't lose your feed uuid you should then never see replays. The only constraint is that you cannot create two articles exactly at the same time (but RFC 3339 allows subsecond precision so it shouldn't really be a problem in practice).

add new links

We have a collection of new links we should add to the http://openmirage.org/links page (there might be dupes in the following)

HN threads

Other mentions

2.0 release

Please increase the TTL of http://www.openmirage.org

Hi, I really don't know where this issue should be posted, don't hesitate to correct me and I will move the issue where it should be.

So, I am currently in a place where the only Internet is available through 3G and satellite connections, with often 20/25 seconds latency.
http://www.openmirage.org throw a 504 gate timeout around 10seconds, which means that I can't consult the doc when the sky is RF cloudy.

Could you increase the TTL around 30seconds ? It would be very nice of you.

wiki/mirage-www: camlp4orf not found

I was working through http://openmirage.org/wiki/mirage-www and got a build error trying to make depend in mirage-www/src: ulex 1.1 failed to install because camlp4orf was not found.

camlp4 was already installed in opam, but there was no camlp4orf binary.

My workaround (on Ubuntu 14.04) was to apt-get install camlp4-extra. After that, everything built OK.

Does this indicate a problem in my ocaml/opam setup, a missing step in the mirage-www article, and/or something that can be fixed in ulex?

Define the titles and URLs for upcoming posts

I'd like to know in advance the titles and preferred URLs of the upcoming posts defined in mirage/mirage#257

The URLs especially, as I'd like to add them in places like the news release now, so they'll be live by the time it goes out. As you can see, I'm not feeling very imaginative, so help with titles would be appreciated (as that means we can keep the URL similar).

URLs - (prefix each of the following with http://openmirage.org/blog/)

post topic URL
ocaml-tls API / internals and attacks/mitigations ocaml-tls-api-internals-attacks-mitigation
ctypes modular-foreign-function-bindings
vchan update-on-vchan
conduit introducing-conduit
Minios/ARM introducing-xen-minios-arm
irmin introducing-irmin
`irmin in xen(store) introducing-irmin-in-xenstore
Post on new release announcing-mirage-20-release

If nobody speaks up, then I'll assume this doesn't matter and go with the above URLs (titles are easier to change, anyway).

Post about upcoming TLS releases

Issue to track a short series of posts about the upcoming TLS support in MirageOS. These are not in any particular order and content can probably be folded into a smaller number of posts.

All posts are intended for publication on openmirage.org https://mirage.io :)

  • Fri 26 Jun - Mirage release blog post (changes, features) by @samoht and @amirmc (include couple of short paragraphs on TLS Unix Tools -- docs page in #324). -- see also #345
  • Fri 26 Jun - Security advisory process: i.e. who to get in touch with in order to report things. This should be a v short page that highlights our process (essentially, send details to an email address). This needs to be available at the same time we do the release post. @amirmc (and @avsm to set up the email address). -- see also #345
  • Mon 29 Jun - Bitcoin Pinata status/wrap-up post (already drafted in #322, @amirmc to review)
  • Tue 7 Jul - From certificate to secure site with mirage seal (aka roll your own pinata) by @yomimono (#335)
  • Thu 9 Jul - "Organised chaos: managing Entropy" by @pqwy

on hold for now:

Site build error locally

Ok, what am I doing wrong now?

$ make
ocamlbuild -use-ocamlfind -pkgs lwt.syntax,conduit.mirage,cow.syntax,cowabloga,cstruct,io-page,io-page.unix,lwt,mirage-clock-unix,mirage-console.unix,mirage-fs-unix,mirage-http,mirage-net-unix,mirage-types,mirage-types.lwt,mirage.runtime,tcpip.stack-direct -tags "syntax(camlp4o),annot,bin_annot,strict_sequence,principal" -tag-line "<static*.*>: -syntax(camlp4o)" -cflag -g -lflags -g,-linkpkg main.native
+ ocamlfind ocamldep -package tcpip.stack-direct -package mirage.runtime -package mirage-types.lwt -package mirage-types -package mirage-net-unix -package mirage-http -package mirage-fs-unix -package mirage-console.unix -package mirage-clock-unix -package lwt -package io-page.unix -package io-page -package cstruct -package cowabloga -package cow.syntax -package conduit.mirage -package lwt.syntax -syntax camlp4o -modules main.ml > main.ml.depends
Fatal error: cannot load shared library dllunix
Reason: dlopen(/usr/local/lib/ocaml/stublibs/dllunix.so, 138): Symbol not found: _caml_strdup
  Referenced from: /usr/local/lib/ocaml/stublibs/dllunix.so
  Expected in: flat namespace
 in /usr/local/lib/ocaml/stublibs/dllunix.so
Preprocessing error on file main.ml
Error while running external preprocessor
Command line: camlp4 '-I' '/Users/amir/.opam/mirage-401/lib/ocaml/camlp4' '-I' '/Users/amir/.opam/mirage-401/lib/ocaml' '-I' '/Users/amir/.opam/mirage-401/lib/type_conv' '-I' '/Users/amir/.opam/mirage-401/lib/dyntype' '-I' '/Users/amir/.opam/mirage-401/lib/xmlm' '-I' '/Users/amir/.opam/mirage-401/lib/uutf' '-I' '/Users/amir/.opam/mirage-401/lib/jsonm' '-I' '/Users/amir/.opam/mirage-401/lib/hex' '-I' '/Users/amir/.opam/mirage-401/lib/ocaml' '-I' '/Users/amir/.opam/mirage-401/lib/ocaml' '-I' '/Users/amir/.opam/mirage-401/lib/sexplib' '-I' '/Users/amir/.opam/mirage-401/lib/ezjsonm' '-I' '/Users/amir/.opam/mirage-401/lib/cow' '-I' '/Users/amir/.opam/mirage-401/lib/lwt' '-I' '/Users/amir/.opam/mirage-401/lib/lwt' '-parser' 'o' '-parser' 'op' '-printer' 'p' 'str.cma' 'pa_type_conv.cma' 'pa_dyntype.cma' 'xmlm.cma' 'uutf.cma' 'jsonm.cma' 'hex.cma' 'unix.cma' 'bigarray.cma' 'sexplib.cma' 'ezjsonm.cma' 'xmlm.cma' 'str.cma' 'pa_cow.cma' 'ezjsonm.cma' 'lwt-syntax-options.cma' 'lwt-syntax.cma'  'main.ml' > /var/folders/gd/bdnlf1ld21g4ynlctmqgml5h0000gn/T/ocamlppc9362c

Command exited with code 2.
Compilation unsuccessful after building 1 target (0 cached) in 00:00:00.
make: *** [main.native] Error 10

# OPAM status report
# opam-version    1.2.0
# self-upgrade    no
# os              darwin
# external-solver no
# criteria        -removed,-notuptodate,-changed*
# jobs            4
# repositories    1* (http)
# pinned          0
# current-switch  mirage-401
# last-update     2015-04-20 16:16

Support multiple blog authors

At the moment, each blog post or wiki page can only have one author. Frustrating when you want to credit multiple authors for a piece of work (c.f. the TLS intro, which should include David Kaloper)

Expose Pioneer Projects on main website

At a minimum we should link to the wiki page but it would be cool if we could incorporate the content directly into the website.

(meta: maybe this should be a pioneer project?)

xen-on-cubieboard2.md: why cubieez

@talex5 In the initial section "Initial testing", you say you want to see that "everything works". I interpreted that as checking that the board is functioning properly. If so, why not just boot without a SD card โ€” the console will show Android booting which is IMHO enough to check that the board works and to make sure one connected the serial cable properly.

Unable to serve the website locally

I feel I must be doing something wrong. The site builds just fine but I can't serve it locally.
The incantation I used is.

$ env DHCP="" mirage configure --unix
$ make depend
$ make
$ sudo ./mir-www

and in another shell sudo ifconfig tap0 10.0.0.1 255.255.255.0

I was able to build the site last week but (as normal) did an opam update before this time. Any suggestions? I feel I'm missing something obvious. The versions of libs I have are:

$ opam list
# Installed packages for mirage-401:
base-bigarray            base  Bigarray library distributed with the
base-bytes             legacy  Bytes compatibility library distribute
base-no-ppx              base  A pseudo-library to indicate lack of e
base-threads             base  Threads library distributed with the O
base-unix                base  Unix library distributed with the OCam
base64                  2.0.0  Base64 encoding and decoding library
calendar               2.03.2  Library for handling dates and times i
camlp4                 4.01.0  Camlp4 is a system for writing extensi
cmdliner                0.9.7  Declarative definition of command line
cohttp                 0.15.0  HTTP library for Lwt, Async and Mirage
conduit                 0.7.2  Network connection library for TCP and
cow                     1.2.0  XML, JSON, HTML, CSS, and Markdown syn
cowabloga               0.0.9  Simple static blogging support.
cppo                    1.1.2  Equivalent of the C preprocessor for O
crunch                  1.3.0  Convert a filesystem into a static OCa
cstruct                 1.5.0  access C structures via a camlp4 exten
dns                    0.14.0  DNS client and server implementation
dyntype                 0.9.0  syntax extension which makes OCaml typ
ezjsonm                 0.4.1  An easy interface on top of the Jsonm
fieldslib           109.20.03  Syntax extension to define first class
hex                     0.1.0  Hexadecimal converter
io-page                 1.2.0  Allocate memory pages suitable for ali
ipaddr                  2.5.0  IP (and MAC) address representation li
jsonm                   0.9.1  Non-blocking streaming JSON codec for
lwt                     2.4.5  A cooperative threads library for OCam
mirage                  2.2.1  The Mirage library operating system
mirage-clock-unix       1.0.0  A Mirage-compatible Clock library for
mirage-conduit          2.0.0  Virtual package for the Mirage Conduit
mirage-console          2.1.1  A Mirage-compatible Console library fo
mirage-dns              2.0.0  Virtual package for the Mirage DNS tra
mirage-fs-unix          1.1.3  Mirage filesystem passthrough driver f
mirage-http             2.1.0  Mirage HTTP client and server driver
mirage-net-unix         2.1.0  Ethernet network driver for Mirage, us
mirage-profile            0.4  Collect profiling information
mirage-types            2.2.0  Module type definitions for Mirage-com
mirage-types-lwt        2.2.0  Lwt module type definitions for Mirage
mirage-unix             2.2.1  Mirage OS library for Unix compilation
ocamlfind               1.5.5  A library manager for OCaml
ocplib-endian             0.8  Optimised functions to read and write
omd                     1.2.5  A Markdown frontend in pure OCaml.
optcomp                   1.6  Optional compilation with cpp-like dir
ounit                   2.0.0  Unit testing framework loosely based o
re                      1.3.0  RE is a regular expression library for
sexplib             111.25.00  Library for serializing OCaml values t
shared-memory-ring      1.1.1  Shared memory rings for RPC and bytest
ssl                     0.4.7  Bindings for OpenSSL
stringext               1.2.0  Extra string functions for OCaml
syndic                    1.2  RSS1, RSS2, Atom and OPML1 parsing
tcpip                   2.2.2  Userlevel TCP/IP stack
tuntap                  1.0.0  TUN/TAP bindings
type_conv           111.13.00  Library for building type-driven synta
ulex                      1.1  lexer generator for Unicode and OCaml
uri                     1.8.0  RFC3986 URI/URL parsing library
uutf                    0.9.4  Non-blocking streaming Unicode codec f
vchan                   2.0.2  Xen Vchan implementation
xenstore                1.2.5  Xenstore protocol clients and server
xenstore_transport      0.9.4  Low-level libraries for connecting to
xmlm                    1.2.0  Streaming XML codec for OCaml

fail to compile on Codio

followed yur instructions here :)
http://anil.recoil.org/2014/03/26/codio-now-has-opam-support.html

Codio Box IDE if you want to check is here.
https://codio.com/gedw99/mirage

When i got to the 2nd last step is failed
opam install mirage-www -y

Terminal error message.
=-=-= Installing tcpip.1.1.2 =-=-=
default Downloading https://opam.ocaml.org/archives/tcpip.1.1.2+opam.tar.gz
Downloading https://opam.ocaml.org/archives/tcpip.1.1.2+opam.tar.gz
Building tcpip.1.1.2:
make
make install
[ERROR] The compilation of tcpip.1.1.2 failed.
Removing tcpip.1.1.2.
ocamlfind remove tcpip

[ERROR] Due to some errors while processing tcpip.1.1.2, the following actions will NOT proceed:

  • install mirage-http.1.1.0
  • install mirage-www.1.1.0

Add an addendum for the cubietruck

It is not clear to me whether some specific instructions are required (firmware?) to get the USB and WIFI working on the cubietruck โ€” I do not have such a board. If yes, an addendum could be useful. @MagnusS ?

Cannot copy text from mobile browser

I just tried to copy/paste text from the site and failed miserably. Not sure if this something in the framework or elsewhere.

Safari on iOS in 7.1.1

'mirage run' (unix): fatal error "net_tap0"

This error is a bit low-level:

Fatal error: exception Mirage_types.V1.Driver_initialisation_error("net_tap0")
make: *** [run] Error 2
[ERROR]      The command "make run" exited with code 2.

Package `mirage-http-xen' not found

After getting the mirage-www unix instructions working, I went on to do the xen version:
$ export MODE=fat
$ mirage configure --xen
MIRAGE Using the scanned config file: config.ml
MIRAGE Compiling and dynlinkg /root/mirage/mirage-www/src/config.ml
MIRAGE + Executing: rm -rf /root/mirage/mirage-www/src/_build/config.*
MIRAGE + Executing: cd /root/mirage/mirage-www/src && ocamlbuild -use-ocamlfindFinished, 4 targets (0 cached) in 00:00:00.

MIRAGE CONFIGURE: /root/mirage/mirage-www/src/config.ml
MIRAGE 1 job [job1]
MIRAGE Installing OPAM packages.
MIRAGE + Executing: opam install --yes cow cowabloga fat-filesystem io-page-xen mirage-block-xen mirage-console-xen mirage-http-xen mirage-xen[NOTE] Package mirage-xen is already installed (current version is 1.0.0).
[NOTE] Package mirage-http-xen is already installed (current version is 1.0.0).
[NOTE] Package mirage-console-xen is already installed (current version is 1.0.1).
[NOTE] Package mirage-block-xen is already installed (current version is 1.0.0).
[NOTE] Package io-page-xen is already installed (current version is 0.9.9).
[NOTE] Package fat-filesystem is already installed (current version is 0.10.0).
[NOTE] Package cowabloga is already installed (current version is pinned).
[NOTE] Package cow is already installed (current version is 0.9.1).

MIRAGE + Executing: ocamlfind printconf path
MIRAGE Generating /root/mirage/mirage-www/src/main.ml
[root@quad src]# make
ocamlbuild -classic-display -use-ocamlfind -pkgs lwt.syntax,cow.syntax,cowabloga,fat-filesystem,io-page-xen,mirage-block-xen.front,mirage-console-xen,mirage-http-xen,mirage.types-xen -tags "syntax(camlp4o)" -cflag -g -lflags -g,-linkpkg,-dontlink,unix main.native.o
ocamlfind ocamldep -package mirage.types-xen -package mirage-http-xen -package mirage-console-xen -package mirage-block-xen.front -package io-page-xen -package fat-filesystem -package cowabloga -package cow.syntax -package lwt.syntax -syntax camlp4o -modules main.ml > main.ml.depends

  • ocamlfind ocamldep -package mirage.types-xen -package mirage-http-xen -package mirage-console-xen -package mirage-block-xen.front -package io-page-xen -package fat-filesystem -package cowabloga -package cow.syntax -package lwt.syntax -syntax camlp4o -modules main.ml > main.ml.depends
    ocamlfind: Package `mirage-http-xen' not found
    Command exited with code 2.
    make: *** [main.native.o] Error 10

This is odd since the configure command clearly shows (from above):
[NOTE] Package mirage-http-xen is already installed (current version is 1.0.0).

And if I try to install it with opam I get:
$ opam install mirage-http-xen
[NOTE] Package mirage-http-xen is already installed (current version is 1.0.0).

I also tried 'opam remove mirage-http-xen' and 'opam install mirage-http-xen' and then make again, but got the same result as above. ocamlfind doesn't find it:

$ ocamlfind query mirage-http-xen
ocamlfind: Package `mirage-http-xen' not found

I do see that the unix version is installed:
$ ocamlfind query mirage-http-unix
/home/phil/.opam/4.01.0/lib/mirage-http-unix

So opam thinks mirage-http-xen is installed, but when I look in /home/phil/.opam/4.01.0/lib/ I don't see it there.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.