diff --git a/mirage/config.ml b/mirage/config.ml index 7c029a0..2437bab 100644 --- a/mirage/config.ml +++ b/mirage/config.ml @@ -8,7 +8,7 @@ let mirror = package "h2" ; package "ohex" ; package "httpaf" ; - package ~max:"0.0.5" "git-kv" ; + package ~min:"0.0.5" "git-kv" ; package ~min:"3.10.0" "git-paf" ; package "opam-file-format" ; package ~min:"3.0.0" ~sublibs:[ "gz" ] "tar" ; diff --git a/mirage/unikernel.ml b/mirage/unikernel.ml index 48dbb40..dbd7b3d 100644 --- a/mirage/unikernel.ml +++ b/mirage/unikernel.ml @@ -902,7 +902,9 @@ stamp: %S Logs.info (fun m -> m "downloading of %d urls done" (SM.cardinal urls)) let dump_git git_dump git_kv = - Git_kv.to_octets git_kv >>= fun data -> + let stream = Git_kv.to_octets git_kv in + Lwt_stream.to_list stream >>= fun datas -> + let data = String.concat "" datas in Cache.write git_dump data >|= function | Ok () -> Logs.info (fun m -> m "dumped git %d bytes" (String.length data)) @@ -916,7 +918,8 @@ stamp: %S Logs.warn (fun m -> m "failed to read git state: %a" Cache.pp_error e); Lwt.return (Error ()) | Ok Some data -> - Git_kv.of_octets git_ctx ~remote data >|= function + let stream = Lwt_stream.return data in + Git_kv.of_octets git_ctx ~remote stream >|= function | Ok git_kv -> Ok git_kv | Error `Msg msg -> Logs.err (fun m -> m "error restoring git state: %s" msg);