Problems building client and server
voila opened this issue · 9 comments
make
fails with pinned version of bin_prot, but works with current bin_prot (0.9.0).
make server
fails because server/config.ml seems out of sync with current mirage:
get_mode()
is not supported anymoreipv4_conf
does not have these fields anymore
I would like to be able to use the server to access cuekeeper from different devices. Can you recommend another unikernel configuration I could look at, to fix this one ?
(note: building with the Dockerfile still appears to work for building the JS side)
If you have time to update it to the latest versions, that would be great! There's a handy guide here:
I have changed config.ml, when I do make server
I get:
ocamlfind: Package 'tcpip.udp' not found
when I try opam install mirage-tcpip-unix
, I get:
The following dependencies couldn't be met:
- mirage-tcpip-unix -> ipaddr < 2.0.0
Your request can't be satisfied:
- ipaddr<2.0.0 is not available because your system doesn't comply with ocaml-version < "4.04.0".
(I am using 4.04.1)
What should I do ?
Do you need to run make depend
after mirage configure
to update the dependencies?
If that isn't it, I think the tcpip
package will pull in everything.
Do you need to run make depend after mirage configure to update the dependencies?
I did, thanks !
server:
...
(cd server && mirage configure ${MIRAGE_FLAGS} && make depend && make)
But now, I have a problem with Irmin:
Error: Unbound module Irmin
Command exited with code 2.
run ['ocamlbuild' '-use-ocamlfind' '-classic-display' '-tags'
'predicate(mirage_unix),warn(A-4-41-42-44),debug,bin_annot,strict_sequence,principal,safe_string,color(always)'
'-pkgs'
'functoria-runtime,io-page,io-page.unix,lwt,mirage-clock-unix,mirage-console-unix,mirage-logs,mirage-net-unix,mirage-random,mirage-runtime,mirage-types,mirage-types-lwt,mirage-unix,tcpip,tcpip.arpv4,tcpip.ethif,tcpip.icmpv4,tcpip.ipv4,tcpip.stack-direct,tcpip.tcp,tcpip.udp'
'-cflags' '-g' '-lflags' '-g' '-tag-line' '<static*.*>: warn(-32-34)'
'-X' '_build-ukvm' 'main.native']: exited with 10
make[1]: *** [build] Error 1
make[1]: Leaving directory `/home/th3rac25/cuekeeper/server'
make: *** [server] Error 2
I tried opam install mirage-irmin
(it failed because of versions conflict) and opam install irmin-mirage
(the install succeeded, but I still get Error: Unbound module Irmin
). Sorry, I feel like I am fumbling in the dark...
It's odd that there are no irmin*
libraries in the list of -pkgs
there. The current config.ml
has ~libraries:["irmin.mem"; ...]
, which should pull it in, although we could be more explicit and add irmin
itself to that list.
My mistake! I modified config.ml
and dropped the packages argument 😅
I have now another problem with Irmin (installed version 1.2.0):
File "server.ml", line 13, characters 19-156:
Error: The signature constrained by `with' has no component named branch_id
the line in server.ml is:
module Make (Store:Irmin.S with type branch_id = string and type commit_id = Irmin.Hash.SHA1.t)
indeed, there is no type branch_id nor commit_id anymore in 1.2.0
I tried looking for a project that has migrated from Irmin 0.9 to get a clue about what I should do, but did not find any...
DataKit migrated, e.g.
However, this reminds me that Irmin's binary format has changed. I see two possible solutions:
-
Fix talex5/irmin-indexeddb#3 by writing some code to auto-migrate old repositories to the (stable) Git format.
-
Copy the current code for Irmin's binary format into CueKeeper and modify it to match the old format (there are only a couple of changes).
(2) would be easiest for now.
Closing as original issue is resolved. The format issue is tracked at talex5/irmin-indexeddb#7.