mirage / jitsu

A DNS server that automatically starts unikernels on demand
Other
304 stars 36 forks source link

Jitsu build fails in Ubuntu 12.x due to old libxl (<4.4) / xenlight missing #29

Closed samoht closed 9 years ago

samoht commented 9 years ago

There are still some constraints issues with jitsu 0.2, see https://travis-ci.org/mirage/ocaml-git/jobs/85748146

samoht commented 9 years ago
∗  installed conf-gmp.1
∗  installed camlzip.1.05
∗  installed alcotest.0.4.5
∗  installed mirage-no-xen.1
∗  installed crunch.1.4.0
∗  installed bin_prot.113.00.00
∗  installed uutf.0.9.4
∗  installed ssl.0.5.0
∗  installed uuidm.0.9.5
∗  installed libvirt.0.6.1.2
∗  installed xmlm.1.2.0
∗  installed zarith.1.3
∗  installed jsonm.0.9.1
∗  installed ezxmlm.1.0.1
∗  installed lwt.2.5.0
∗  installed rpc.1.5.4
∗  installed xenctrl.0.9.29
∗  installed cstruct.1.7.0
∗  installed crc.0.9.0
∗  installed mstruct.1.3.2
∗  installed hex.1.0.0
∗  installed io-page.1.5.1
∗  installed ezjsonm.0.4.1
∗  installed mirage-profile.0.5
∗  installed mirage-types.2.6.0
∗  installed mirage-tc.0.3.0
∗  installed mirage-types-lwt.2.6.0
∗  installed xenstore.1.2.5
∗  installed channel.1.0.0
∗  installed mirage-flow.1.0.3
∗  installed nocrypto.0.5.1
∗  installed xenstore_transport.0.9.4
∗  installed dns.0.15.3
∗  installed mirage-dns.2.5.0
∗  installed vchan.2.0.3
∗  installed conduit.0.9.0
∗  installed mirage-conduit.2.2.0
∗  installed cohttp.0.19.3
∗  installed mirage-http.2.5.1
∗  installed git.1.7.1
∗  installed git-unix.1.7.1
∗  installed irmin.0.9.9
∗  installed irmin-unix.0.9.9
∗  installed xen-api-client.0.9.8
[ERROR] The compilation of jitsu failed at "make".
#=== ERROR while installing jitsu.0.2 =========================================#
# opam-version 1.2.2
# os           linux
# command      make
# path         /home/travis/.opam/system/build/jitsu.0.2
# compiler     system (4.02.3)
# exit-code    2
# env-file     /home/travis/.opam/system/build/jitsu.0.2/jitsu-24738-7516d3.env
# stdout-file  /home/travis/.opam/system/build/jitsu.0.2/jitsu-24738-7516d3.out
# stderr-file  /home/travis/.opam/system/build/jitsu.0.2/jitsu-24738-7516d3.err
### stdout ###
# mkdir -p /home/travis/.opam/system/build/jitsu.0.2/bin
# cd /home/travis/.opam/system/build/jitsu.0.2/src ; ocamlfind ocamlopt -w A-4-44  -package lwt.syntax,lwt,dns.lwt,libvirt,cmdliner,ezxmlm,ipaddr,str,conduit,conduit.lwt-unix,xen-api-client,xen-api-client.lwt,irmin.unix,xenstore,xenstore_transport,xenstore_transport.lwt,uuidm,xenlight,xenlight.xentoollog -linkpkg -g  vm_stop_mode.ml vm_state.ml xenstore.ml backends.mli options.ml rumprun.ml libvirt_backend.ml xapi_backend.ml libxl_backend.ml irmin_backend.mli dns_helpers.ml irmin_backend.ml synjitsu.mli synjitsu.ml jitsu.mli jitsu.ml main.ml -o /home/travis/.opam/system/build/jitsu.0.2/bin/jitsu -syntax camlp4o
### stderr ###
# ocamlfind: Package `xenlight' not found
# make: *** [/home/travis/.opam/system/build/jitsu.0.2/bin/jitsu] Error 2
MagnusS commented 9 years ago

This is caused by xenctrl not being installed properly on some versions of Ubuntu. I think it should have been fixed in xenctrl 0.9.29 though /cc @djs55

djs55 commented 9 years ago

OK, I've just released 0.9.30: [ocaml/opam-repository#5015] which compiles xenlight unconditionally.

Note this requires Ubuntu trusty or later. On travis you need "dist: trusty"

MagnusS commented 9 years ago

Thanks! I'll update the jitsu constraint to 0.9.30 so installation fails on ubuntu <=12.x

MagnusS commented 9 years ago

Hm there was an API change in Xenctrl >0.9.26 (xentoollog moved to toplevel), so I have to release a new Jitsu version. I've added a constraint for xenctrl < 0.9.26 for the current version in the mean time: https://github.com/ocaml/opam-repository/pull/5020 (travis fails, due to old ubuntu)

MagnusS commented 9 years ago

This should now be fixed (in v0.3.0). Only the backends that are installed on the platform are now used by jitsu, so the jitsu opam-package should work on older Ubuntu versions as well. The helper packages jitsu-libxl, jitsu-xapi and jitsu-libvirt can be used to force a specific backend - or the backends can be installed manually, which will trigger a recompile of jitsu.