Step by step setup of a Raspberry Pi 3 with Fedora linux-OS and Tezos


#41

looking at your opam list and the error (unbound module ssl) maybe I would try to remove ssl.0.5.5 and install ssl.0.5.3


#42

I did it, but the same error occurs

ocamlc src/node/main/node_shared_arg.{cmo,cmt}
ocamlc src/node/main/node_config_command.{cmo,cmt}
ocamlc src/node/main/node_identity_command.{cmo,cmt}
ocamlc src/node/main/node_run_command.{cmo,cmt} (exit 2)
(cd _build/default && /home/tz/.opam/tezos/bin/ocamlc.opt -w @a-4-29-40-41-42-44 -45-48-58-59-60-40 -strict-sequence -strict-formats -short-paths -keep-locs -w - 9+27-30-32-40@8 -safe-string -open Error_monad -open Hash -open Utils -open Tezo s_data -g -bin-annot -I /home/tz/.opam/tezos/lib/astring -I /home/tz/.opam/tezos /lib/base -I /home/tz/.opam/tezos/lib/base/caml -I /home/tz/.opam/tezos/lib/base /shadow_stdlib -I /home/tz/.opam/tezos/lib/base64 -I /home/tz/.opam/tezos/lib/by tes -I /home/tz/.opam/tezos/lib/calendar -I /home/tz/.opam/tezos/lib/cmdliner -I /home/tz/.opam/tezos/lib/cohttp -I /home/tz/.opam/tezos/lib/cohttp-lwt -I /home /tz/.opam/tezos/lib/cohttp-lwt-unix -I /home/tz/.opam/tezos/lib/conduit -I /home /tz/.opam/tezos/lib/conduit-lwt -I /home/tz/.opam/tezos/lib/conduit-lwt-unix -I /home/tz/.opam/tezos/lib/cstruct -I /home/tz/.opam/tezos/lib/ctypes -I /home/tz/ .opam/tezos/lib/decompress -I /home/tz/.opam/tezos/lib/ezjsonm -I /home/tz/.opam /tezos/lib/fieldslib -I /home/tz/.opam/tezos/lib/fmt -I /home/tz/.opam/tezos/lib /git -I /home/tz/.opam/tezos/lib/hex -I /home/tz/.opam/tezos/lib/integers -I /ho me/tz/.opam/tezos/lib/ipaddr -I /home/tz/.opam/tezos/lib/ipaddr/unix -I /home/tz /.opam/tezos/lib/irmin -I /home/tz/.opam/tezos/lib/jsonm -I /home/tz/.opam/tezos /lib/leveldb -I /home/tz/.opam/tezos/lib/logs -I /home/tz/.opam/tezos/lib/lwt -I /home/tz/.opam/tezos/lib/magic-mime -I /home/tz/.opam/tezos/lib/mstruct -I /hom e/tz/.opam/tezos/lib/mtime -I /home/tz/.opam/tezos/lib/mtime/os -I /home/tz/.opa m/tezos/lib/nocrypto -I /home/tz/.opam/tezos/lib/ocaml -I /home/tz/.opam/tezos/l ib/ocaml/compiler-libs -I /home/tz/.opam/tezos/lib/ocaml/threads -I /home/tz/.op am/tezos/lib/ocamlgraph -I /home/tz/.opam/tezos/lib/ocplib-endian -I /home/tz/.o pam/tezos/lib/ocplib-json-typed -I /home/tz/.opam/tezos/lib/ocplib-ocamlres -I / home/tz/.opam/tezos/lib/ocplib-resto -I /home/tz/.opam/tezos/lib/ocplib-resto/di rectory -I /home/tz/.opam/tezos/lib/pprint -I /home/tz/.opam/tezos/lib/re -I /ho me/tz/.opam/tezos/lib/result -I /home/tz/.opam/tezos/lib/sexplib -I /home/tz/.op am/tezos/lib/sexplib/0 -I /home/tz/.opam/tezos/lib/sodium -I /home/tz/.opam/tezo s/lib/stringext -I /home/tz/.opam/tezos/lib/uchar -I /home/tz/.opam/tezos/lib/ur i -I /home/tz/.opam/tezos/lib/uri/services -I /home/tz/.opam/tezos/lib/uutf -I / home/tz/.opam/tezos/lib/zarith -I src/compiler -I src/environment -I src/micheli ne -I src/minutils -I src/node/db -I src/node/net -I src/node/shell -I src/node/ updater -I src/utils -I vendors/irmin-leveldb -no-alias-deps -I src/node/main -o src/node/main/node_run_command.cmo -c -impl src/node/main/node_run_command.ml)
File “src/node/main/node_run_command.ml”, line 152, characters 6-20:
Error: Unbound module Ssl
make: *** [Makefile:5: all] Error 1

opam list
# Installed packages for tezos:
astring                         0.8.3  Alternative String module for OCaml
base                           v0.9.3  Full standard library replacement for OCa
base-bigarray                    base  Bigarray library distributed with the OCa
base-bytes                       base  Bytes library distributed with the OCaml
base-num                         base  Num library distributed with the OCaml co
base-threads                     base  Threads library distributed with the OCam
base-unix                        base  Unix library distributed with the OCaml c
base64                          2.2.0  Base64 encoding for OCaml
bisect_ppx                      1.3.2  Code coverage for OCaml
calendar                       2.03.2  Library for handling dates and times in y
cmdliner                        1.0.2  Declarative definition of command line in
cohttp                         0.99.0  An OCaml library for HTTP clients and ser
cohttp-lwt                     0.99.0  An OCaml library for HTTP clients and ser
cohttp-lwt-unix                0.99.0  An OCaml library for HTTP clients and ser
conduit                         1.0.0  Network conduit library
conduit-lwt                     1.0.0  Network conduit library
conduit-lwt-unix                1.0.2  Network conduit library
conf-gmp                            1  Virtual package relying on a GMP lib syst
conf-leveldb                        1  Virtual package relying on a LevelDB lib
conf-libev                       4-11  High-performance event loop/event model w
conf-m4                             1  Virtual package relying on m4
conf-openssl                        1  Virtual package relying on an OpenSSL sys
conf-perl                           1  Virtual package relying on perl
conf-pkg-config                   1.0  Virtual package relying on pkg-config ins
conf-which                          1  Virtual package relying on which
cppo                            1.6.0  Equivalent of the C preprocessor for OCam
cppo_ocamlbuild                 1.6.0  ocamlbuild support for cppo, OCaml-friend
cpuid                           0.1.1  Detect CPU features
crunch                          2.1.0  Convert a filesystem into a static OCaml
cstruct                         3.2.1  Access C-like structures directly from OC
cstruct-lwt                     3.2.1  Access C-like structures directly from OC
ctypes                         0.13.1  Combinators for binding to C libraries wi
decompress                        0.7  Pure OCaml implementation of Zlib
depext                          1.0.5  Query and install external dependencies o
dispatch                        0.4.0  Path-based dispatching for client- and se
ezjsonm                         0.5.0  An easy interface on top of the Jsonm lib
fieldslib                      v0.9.0  Syntax extension to define first class va
fmt                             0.8.2  OCaml Format pretty-printer combinators
git                            1.11.3  Git format and protocol in pure OCaml
git-http                       1.11.2  Client implementation of the "Smart" HTTP
git-unix                       1.11.2  Unix backend for the Git protocol(s)
hex                             1.2.0  Minimal library providing hexadecimal con
integers                        0.2.0  Various signed and unsigned integer types
ipaddr                          2.8.0  IP (and MAC) address manipulation
irmin                           1.3.2  Irmin, a distributed database that follow
irmin-fs                        1.3.0  Generic file-system backend for Irmin
irmin-git                       1.3.0  Git backend for Irmin
irmin-http                      1.3.1  HTTP client and server for Irmin
irmin-mem                       1.3.0  In-memory backend for Irmin
irmin-unix                      1.3.0  Unix backends for Irmin
irmin-watcher                   0.3.0  Portable Irmin watch backends using FSeve
jbuilder                   1.0+beta16  Fast, portable and opinionated build syst
jsonm                           1.0.1  Non-blocking streaming JSON codec for OCa
kaputt                            1.2  Testing tool
leveldb                         1.1.2  OCaml bindings for Google's LevelDB libra
logs                            0.6.2  Logging infrastructure for OCaml
lwt                             3.0.0  Monadic promises and concurrent I/O
lwt_ssl                         1.1.1  Lwt-friendly OpenSSL bindings
magic-mime                      1.1.0  Map filenames to common MIME types
menhir                       20171222  LR(1) parser generator
mirage-no-solo5                     1  Virtual package conflicting with mirage-s
mirage-no-xen                       1  Virtual package conflicting with mirage-x
mstruct                         1.4.0  A mutable interface to Cstruct buffers
mtime                           1.1.0  Monotonic wall-clock time for OCaml
nocrypto                        0.5.4  Simpler crypto
num                                 0  The Num library for arbitrary-precision i
ocaml-compiler-libs            v0.9.0  OCaml compiler libraries repackaged
ocaml-migrate-parsetree         1.0.7  Convert OCaml parsetrees between differen
ocamlbuild                     0.12.0  OCamlbuild is a build system with builtin
ocamlfind                     1.7.3-1  A library manager for OCaml
ocamlgraph                      1.8.8  A generic graph library for OCaml
ocb-stubblr                     0.1.1  OCamlbuild plugin for C stubs
ocp-build                1.99.20-beta  Project builder for OCaml
ocp-ocamlres                      dev (pinned)  Manipulation, injection and extr                                                                                action of
ocplib-endian                     1.0  Optimised functions to read and write int
ocplib-json-typed                 0.5 (pinned)  Type-aware JSON and JSON schema                                                                                 utilities
ocplib-resto                      dev (pinned)  Minimal OCaml library for type-s                                                                                afe HTTP/
omake                          0.10.3  Build system designed for scalability and
pprint                       20171003  A pretty-printing combinator library and
ppx_ast                        v0.9.1  OCaml AST used by Jane Street ppx rewrite
ppx_core                       v0.9.0  Standard library for ppx rewriters
ppx_derivers                      1.0  Shared [@@deriving] plugin registry
ppx_deriving                    4.2.1  Type-driven code generation for OCaml >=4
ppx_driver                     v0.9.1  Feature-full driver for OCaml AST transfo
ppx_fields_conv                v0.9.0  Generation of accessor and iteration func
ppx_metaquot                   v0.9.0  Write OCaml AST fragment using OCaml synt
ppx_optcomp                    v0.9.0  Optional compilation for OCaml
ppx_sexp_conv                  v0.9.0  Generation of S-expression conversion fun
ppx_tools                         5.0  Tools for authors of ppx rewriters and ot
ppx_tools_versioned             5.0.1  A variant of ppx_tools based on ocaml-mig
ppx_traverse_builtins          v0.9.0  Builtins for Ppx_traverse
ppx_type_conv                  v0.9.1  Support Library for type-driven code gene
re                              1.7.1  RE is a regular expression library for OC
react                           1.2.1  Declarative events and signals for OCaml
reactiveData                    0.2.1  Functional reactive programming with incr
result                            1.2  Compatibility Result module
sexplib                        v0.9.2  Library for serializing OCaml values to a
sodium                            dev (pinned)  Binding to libsodium UNAUDITED
ssl                             0.5.3  Bindings for OpenSSL
stdio                          v0.9.0  Standard IO library for OCaml
stringext                       1.5.0  Extra string functions for OCaml
topkg                           0.9.1  The transitory OCaml software packager
uchar                           0.0.2  Compatibility library for OCaml's Uchar m
uri                             1.9.5 (pinned)  RFC3986 URI/URL parsing library
uutf                            1.0.1  Non-blocking streaming Unicode codec for
webmachine                      0.4.0  A REST toolkit for OCaml
zarith                            1.7  Implements arithmetic and logical operati

and the diff between your opam list and mine

< # Installed packages for tezos: (demo's)
---
> # Installed packages for tezos (first RPI3):
10c10
< bisect_ppx                      1.3.2  Code coverage for OCaml
---
> bisect_ppx                      1.3.1  Code coverage for OCaml
31,32c31,32
< cstruct                         3.2.1  Access C-like structures directly from OC
< cstruct-lwt                     3.2.1  Access C-like structures directly from OC
---
> cstruct                         3.2.0  Access C-like structures directly from OC
> cstruct-lwt                     3.2.0  Access C-like structures directly from OC
39c39
< fmt                             0.8.2  OCaml Format pretty-printer combinators
---
> fmt                             0.8.4  OCaml Format pretty-printer combinators
44c44
< integers                        0.2.0  Various signed and unsigned integer types
---
> integers                        0.2.2  Various signed and unsigned integer types
58c58
< lwt                             3.0.0  Monadic promises and concurrent I/O
---
> lwt                             3.1.0  Concurrency based on promises
61c61
< menhir                       20171222  LR(1) parser generator
---
> menhir                       20171013  LR(1) parser generator
71c71
< ocamlfind                     1.7.3-1  A library manager for OCaml
---
> ocamlfind                       1.7.3  A library manager for OCaml
74c74
< ocp-build                1.99.20-beta  Project builder for OCaml
---
> ocp-build                1.99.19-beta  Project builder for OCaml
100c100
< ssl                             0.5.3  Bindings for OpenSSL
---
> ssl                             0.5.5  Bindings for OpenSSL

#43

everything seems ok, maybe more close to my second RPI3 list, assuming you have repeated the 4 magic steps:
eval opam config env
make build-deps
make clean
make

and the problem still persists, I guess you can try to install manually the packages that match the version in my list, either from the first or the second RPI3. I know it is quite empirical, but I don’t see another alternative…


#44

Hey @maxtez-raspbaker - at this point in time, can we ask you to just make an image of your micro SD so we can copy that to ours? We can use e.g. torrent for sharing the image.

What do you think?


#45

Hi @Mootjes007, I was hoping that installing the same version of the packages that I have in either one of the 2 RPI3 would work, I guess it doesn’t…
I was considering already the idea of sharing the installation since it would definitely help to spread the use of Tezos on RPI3. How to do it, not sure yet. Cloning the SD would be the most extreme option, you need to have a card of the same size (32GB), reset user and root credentials and probably tune the network parameters including the firewall and DNS service. Alternatively I could share the zipped/compressed folders /.opam and /tezos assuming that the recipient has the some OS and external libraries, will it work? alternative options? I am open to suggestions…


#46

any progress?

playing with the kernel memory I ended up with a spectacular failure that required to reinstall the all thing on both RPI3, starting with FedoraOS, additional packages, Tezos, everything.

It is probably worth to share here few extra steps that were needed to compile Tezos again (Jan/01/18), beside the instructions in the online notes. After typing “make” a couple of errors came up.

First) one problem is related to the file “ir_cli.ml”, part of the package “irmin-unix”. The package (version 1.3.0) needs to be pinned, same as it was done with “uri” (see notes). Then edit the file “ir_cli.ml” located in /home/<user>/.opam/tezos/build/temp/irmin-unix.1.3.0/src/irmin-unix/bin and remove the lines than start with 'S Manpage.... There are 5 similar ones around lines 490-510.

Second) the package “stringext” version 1.5.0 is needed, older versions won’t work with “make”. The problem is that with the command “opam install stringext.1.5.0” the dependency solver suggests to upgrade other packages such as “cohttp” to version 1.0.0. which are incompatible with Tezos (e.g. cohttp.0.99.0 is the good one). The trick is to use the command “opam upgrade stringext”, it will recompile other packages but won’t upgrade “cohttp” or any other.

Hope this is useful…


#47

Wow what a crazy mine field. Thanks for your update. So it can still be done… :wink:
I followed your instructions:

  1. pinned Irmin + removed the lines (had 4 in total when searching on S Manpage, case sensitive)
  2. Stringext was already up to date
  3. make build-deps results in:
    The following dependencies couldn’t be met:
  • irmin-http -> cohttp-lwt < 1.0
    Your request can’t be satisfied:
  • No package matches cohttp-lwt<1.0.

No solution found, exiting
make: *** [Makefile:20: build-deps] Error 3

Any ideas?

Long log:
https://pastebin.com/xaZjXyjL


#48

Hi @Mootjes007, I am afraid you have to remove it along with the other two similar one, cohttp, cohttp-lwt, cohttp-lwt-unix, the correct version for these 3 is 0.99.0


#49

…as I was finishing the installation on the second RPI3, a new issue came up, the same that @demo mentioned some time ago (Error: Unbound module Ssl). In case the problem is still unsolved, here is a simple fix. First I removed the package “lwt”:
opam remove lwt

then reinstalled it with make:
make build-deps
make clean
make


#50

Hey @maxtez-raspbaker - I was able to change the version (starting to understand this thing… :wink: ). Make still results in an error though. Here is my opam list:

https://pastebin.com/hTjKTKzq

==> Can you post the opam list of your latest Raspberry Pi?

Make results like before in:

[mootjes@localhost tezos]$ make
ocamlc src/environment/tezos_protocol_environment_sigs.cma
ocamlc src/utils/hash.{cmi,cmti}
ocamlc src/utils/lwt_dropbox.{cmo,cmt} (exit 2)
(cd _build/default && /home/mootjes/.opam/tezos/bin/ocamlc.opt -w @a-4-29-40-41-42-44-45-48-58-59-60-40 -strict-sequence -strict-formats -short-paths -keep-locs -w -9+27-30-32-40@8 -safe-string -g -bin-annot -I /home/mootjes/.opam/tezos/lib/base64 -I /home/mootjes/.opam/tezos/lib/bytes -I /home/mootjes/.opam/tezos/lib/calendar -I /home/mootjes/.opam/tezos/lib/cstruct -I /home/mootjes/.opam/tezos/lib/ctypes -I /home/mootjes/.opam/tezos/lib/ezjsonm -I /home/mootjes/.opam/tezos/lib/hex -I /home/mootjes/.opam/tezos/lib/integers -I /home/mootjes/.opam/tezos/lib/ipaddr -I /home/mootjes/.opam/tezos/lib/ipaddr/unix -I /home/mootjes/.opam/tezos/lib/jsonm -I /home/mootjes/.opam/tezos/lib/lwt -I /home/mootjes/.opam/tezos/lib/mtime -I /home/mootjes/.opam/tezos/lib/mtime/os -I /home/mootjes/.opam/tezos/lib/nocrypto -I /home/mootjes/.opam/tezos/lib/ocaml -I /home/mootjes/.opam/tezos/lib/ocaml/threads -I /home/mootjes/.opam/tezos/lib/ocplib-endian -I /home/mootjes/.opam/tezos/lib/ocplib-json-typed -I /home/mootjes/.opam/tezos/lib/ocplib-resto -I /home/mootjes/.opam/tezos/lib/ocplib-resto/directory -I /home/mootjes/.opam/tezos/lib/re -I /home/mootjes/.opam/tezos/lib/result -I /home/mootjes/.opam/tezos/lib/sexplib -I /home/mootjes/.opam/tezos/lib/sexplib/0 -I /home/mootjes/.opam/tezos/lib/sodium -I /home/mootjes/.opam/tezos/lib/stringext -I /home/mootjes/.opam/tezos/lib/uchar -I /home/mootjes/.opam/tezos/lib/uri -I /home/mootjes/.opam/tezos/lib/uutf -I /home/mootjes/.opam/tezos/lib/zarith -I src/minutils -no-alias-deps -I src/utils -o src/utils/lwt_dropbox.cmo -c -impl src/utils/lwt_dropbox.ml)
File “src/utils/lwt_dropbox.ml”, line 54, characters 23-44:
Warning 3: deprecated: Lwt.waiter_of_wakener
This function should be avoided, because it makes subtyping of resolvers
unsound. See
https://github.com/ocsigen/lwt/issues/458
File “src/utils/lwt_dropbox.ml”, line 1:
Error: Some fatal warnings were triggered (1 occurrences)

Waiting for 2 jobs to finish.
make: *** [Makefile:5: all] Error 1

I also made a comparison between your (older) opam list and my current. These are the differences. First version is yours, second is mine.

base v0.9.3
v0.10.0
bisect_ppx 1.3.1
1.3.2
cstruct 3.2.0
3.2.1
cstruct-lwt 3.2.0
3.2.1
fieldslib v0.9.0
v0.10.0
fmt 0.8.4
0.8.5
lwt 3.1.0
3.2.0
lwt_ssl 1.1.1
1.1.2
menhir 20171013
20171222
ocaml-compiler-libs v0.9.0
v0.10.0
ocamlfind 1.7.3
1.7.3-1
ocp-build 1.99.19-beta
1.99.20-beta
ppx_ast v0.9.1
v0.10.0
ppx_core v0.9.0
v0.10.0
ppx_driver v0.9.1
v0.10.1
ppx_fields_conv v0.9.0
v0.10.0
ppx_metaquot v0.9.0
v0.10.0
ppx_optcomp v0.9.0
v0.10.0
ppx_sexp_conv v0.9.0
v0.10.0
ppx_traverse_builtins v0.9.0
v0.10.0
ppx_type_conv v0.9.1
v0.10.0
sexplib v0.9.2
v0.10.0
stdio v0.9.0
v0.10.0

#51

And the history:
https://www.hastebin.com/kagufesaro.sql


#52

@Mootjes007, your last problem (deprecated: Lwt.waiter_of_wakener) was discussed earlier, most likely you should use “lwt.3.0.0” or “lwt.3.1.0” (stay away from “lwt.3.2.0”)


#53

Some general considerations to smooth out a bit the hassle of the compilation process

  • “uri.1.9.5” and “irmin-unix.1.3.0” should be pinned locally and slightly modified (see online notes and previous post)
  • make build-deps should be repeated few times until no further changes are applied and all packages are syncronized
  • if a package is not installed with make build-deps (e.g. “conduit-lwt-unix.1.0.2”) use opam install <package-name><.package-version>
  • if a newest version of a package is needed (e.g.“stringext.1.5.0”) use opam upgrade <package-name>
  • if the wrong version of a package is installed use opam remove <package-name> and, if
    possible, the command make build-deps to reinstall it.
  • if some errors come up during the final step (commands: make clean and make), find the package associated to the error (e.g. error"Error: Unbound module Ssl", associated package “lwt”), remove the package and recompile it using make build-deps

Here is the opam list with the version of the packages installed on RPI3 (Jan/05/18)

Installed packages for tezos on a RPI3 (Jan/05/19):
astring                         0.8.0  Alternative String module for OCaml
base                          v0.10.0  Full standard library replacement for OCa
base-bigarray                    base  Bigarray library distributed with the OCa
base-bytes                       base  Bytes library distributed with the OCaml
base-num                         base  Num library distributed with the OCaml co
base-threads                     base  Threads library distributed with the OCam
base-unix                        base  Unix library distributed with the OCaml c
base64                          2.2.0  Base64 encoding for OCaml
bisect_ppx                      1.2.0  Code coverage for OCaml
calendar                       2.03.2  Library for handling dates and times in y
cmdliner                        0.9.8  Declarative definition of command line in
cohttp                         0.99.0  An OCaml library for HTTP clients and ser
cohttp-lwt                     0.99.0  An OCaml library for HTTP clients and ser
cohttp-lwt-unix                0.99.0  An OCaml library for HTTP clients and ser
conduit                         1.0.0  Network conduit library
conduit-lwt                     1.0.0  Network conduit library
conduit-lwt-unix                1.0.2  Network conduit library
conf-gmp                            1  Virtual package relying on a GMP lib syst
conf-leveldb                        1  Virtual package relying on a LevelDB lib
conf-libev                       4-11  High-performance event loop/event model w
conf-m4                             1  Virtual package relying on m4
conf-openssl                        1  Virtual package relying on an OpenSSL sys
conf-perl                           1  Virtual package relying on perl
conf-pkg-config                   1.0  Virtual package relying on pkg-config ins
conf-which                          1  Virtual package relying on which
cppo                            1.6.0  Equivalent of the C preprocessor for OCam
cppo_ocamlbuild                 1.6.0  ocamlbuild support for cppo, OCaml-friend
cpuid                           0.1.1  Detect CPU features
crunch                          2.1.0  Convert a filesystem into a static OCaml
cstruct                         3.2.1  Access C-like structures directly from OC
cstruct-lwt                     3.2.1  Access C-like structures directly from OC
ctypes                         0.11.5  Combinators for binding to C libraries wi
decompress                        0.7  Pure OCaml implementation of Zlib
depext                          1.0.5  Query and install external dependencies o
dispatch                        0.4.0  Path-based dispatching for client- and se
ezjsonm                         0.5.0  An easy interface on top of the Jsonm lib
fieldslib                     v0.10.0  Syntax extension to define first class va
fmt                             0.8.5  OCaml Format pretty-printer combinators
git                            1.11.3  Git format and protocol in pure OCaml
git-http                       1.11.2  Client implementation of the "Smart" HTTP
git-unix                       1.11.2  Unix backend for the Git protocol(s)
hex                             1.2.0  Minimal library providing hexadecimal con
ipaddr                          2.8.0  IP (and MAC) address manipulation
irmin                           1.3.2  Irmin, a distributed database that follow
irmin-fs                        1.3.0  Generic file-system backend for Irmin
irmin-git                       1.3.0  Git backend for Irmin
irmin-http                      1.3.1  HTTP client and server for Irmin
irmin-mem                       1.3.0  In-memory backend for Irmin
irmin-unix                      1.3.0 (pinned)  Unix backends for Irmin
irmin-watcher                   0.3.0  Portable Irmin watch backends using FSeve
jbuilder                   1.0+beta16  Fast, portable and opinionated build syst
jsonm                           1.0.1  Non-blocking streaming JSON codec for OCa
kaputt                            1.2  Testing tool
leveldb                         1.1.2  OCaml bindings for Google's LevelDB libra
logs                            0.6.2  Logging infrastructure for OCaml
lwt                             3.0.0  Monadic promises and concurrent I/O
lwt_ssl                         1.1.1  Lwt-friendly OpenSSL bindings
magic-mime                      1.0.0  Convert file extensions to MIME types
menhir                       20171222  LR(1) parser generator
mirage-no-solo5                     1  Virtual package conflicting with mirage-s
mirage-no-xen                       1  Virtual package conflicting with mirage-x
mstruct                         1.4.0  A mutable interface to Cstruct buffers
mtime                           1.1.0  Monotonic wall-clock time for OCaml
nocrypto                        0.5.4  Simpler crypto
num                                 0  The Num library for arbitrary-precision i
ocaml-compiler-libs           v0.10.0  OCaml compiler libraries repackaged
ocaml-migrate-parsetree         1.0.2  Convert OCaml parsetrees between differen
ocamlbuild                     0.11.0  OCamlbuild is a build system with builtin
ocamlfind                     1.7.3-1  A library manager for OCaml
ocamlgraph                      1.8.8  A generic graph library for OCaml
ocb-stubblr                     0.1.1  OCamlbuild plugin for C stubs
ocp-build                1.99.19-beta  Project builder for OCaml
ocp-ocamlres                      dev (pinned)  Manipulation, injection and extraction of
ocplib-endian                     1.0  Optimised functions to read and write int
ocplib-json-typed                 0.5 (pinned)  Type-aware JSON and JSON schema utilities
ocplib-resto                      dev (pinned)  Minimal OCaml library for type-safe HTTP/
omake                          0.10.3  Build system designed for scalability and
pprint                       20171003  A pretty-printing combinator library and
ppx_ast                       v0.10.0  OCaml AST used by Jane Street ppx rewrite
ppx_core                      v0.10.0  Standard library for ppx rewriters
ppx_derivers                      1.0  Shared [@@deriving] plugin registry
ppx_deriving                    4.2.1  Type-driven code generation for OCaml >=4
ppx_driver                    v0.10.0  Feature-full driver for OCaml AST transfo
ppx_fields_conv               v0.10.0  Generation of accessor and iteration func
ppx_metaquot                  v0.10.0  Write OCaml AST fragment using OCaml synt
ppx_optcomp                   v0.10.0  Optional compilation for OCaml
ppx_sexp_conv                 v0.10.0  Generation of S-expression conversion fun
ppx_tools                         5.0  Tools for authors of ppx rewriters and ot
ppx_traverse_builtins         v0.10.0  Builtins for Ppx_traverse
ppx_type_conv                 v0.10.0  Support Library for type-driven code gene
re                              1.3.2  RE is a regular expression library for OC
react                           1.2.1  Declarative events and signals for OCaml
reactiveData                    0.2.1  Functional reactive programming with incr
result                            1.2  Compatibility Result module
sexplib                       v0.10.0  Library for serializing OCaml values to a
sodium                            dev (pinned)  Binding to libsodium UNAUDITED
ssl                             0.5.3  Bindings for OpenSSL
stdio                         v0.10.0  Standard IO library for OCaml
stringext                       1.5.0  Extra string functions for OCaml
topkg                           0.9.1  The transitory OCaml software packager
uchar                           0.0.1  Compatibility library for OCaml's Uchar m
uri                             1.9.5 (pinned)  RFC3986 URI/URL parsing library
uutf                            1.0.1  Non-blocking streaming Unicode codec for
webmachine                      0.4.0  A REST toolkit for OCaml
zarith                            1.7  Implements arithmetic and logical operati

#54

Guys, I still wonder why all this is happening. I am a programmer, but I have never meet this before. 3 people trying to install the same thing in the same hardware, and face different behavior!

Can someone explain the technical reasoning? Why this opam package manager behaves like that? Is there an opam expert here in this forum?

Shall we ask help from the opam community?


Shall we get rid of this package manager (opam) and try to compile Tezos differenty?


#55

Hi @demo,
I understand your frustration, but please consider the following,
-better dependency solves like “aspcud” (https://opam.ocaml.org/doc/Specifying_Solver_Preferences.html) unfortunately are not available for our system.
-the default solver that comes with opam, “depext” (https://github.com/ocaml/opam-depext) does a decent job, but the compilation of Tezos is still not a click and run operation. As far as I understand you can get rid of opam and compile everything by yourself with “jbuilder” (http://jbuilder.readthedocs.io/en/latest/index.html) but I suspect it is not going to be easier. Perhaps “docker” could be an alternative, if someone manages to get it working with Tezos on a RPI3.
-it took me a couple of hrs to re-compile Tezos on two RPI3 with opam, and I am not a computer genius or opam/OCaml expert. It is true that each installation presents its own challenges, but nothing impossible (so far)

I posted yesterday the list of the packages with the correct version, if you have those installed, it should work, give it a try!


#56

Hey Max - now I receive an SSL error :smiley: (it’s another day so I’m again full of energy :wink: )
I see Demo had the same issue and I tried to align more closely to your package selection: SSL 0.5.3 instead of my 0.5.5. So I executed:
200 cd .opam/tezos/build/temp/
201 opam source lwt.3.1.0
202 opam pin add lwt lwt.3.1.0
203 opam list | grep lwt
210 opam source ssl.0.5.3
211 opam remove ssl
212 opam pin add ssl ssl.0.5.3
213 opam list | grep ssl

==> the last command resulted in:
[mootjes@localhost tezos]$ opam list | grep ssl
conf-openssl 1 Virtual package relying on an OpenSSL sys
lwt_ssl 1.1.2 OpenSSL binding with concurrent I/O
ssl 0.5.5 (pinned) Bindings for OpenSSL

In other words, even when pinning 0.5.3 manually it doesn’t take it up. Any ideas on setting it to version 0.5.3?

Best regards,

PS: I compared our other ‘pinning’ (based on opam list) and saw the difference:

  • I pinned where you didn’t:
    |cohttp| 0.99.0 |
    |—|---|
    |cohttp-lwt| 0.99.0 |
    |cohttp-lwt-unix| 0.99.0 |
    |lwt| 3.1.0 |

  • you pinned where I didn’t:
    irmin-unix 1.3.0


#57

that’s the spirit!

I would not pin locally too many packages, but hey if it woks who cares!
in my case “irmin-unix 1.3.0” was pinned because I had to make some small changes in order to compile it without errors.
You can probably keep the “cohttp…” packages pinned but I would suggest to unpin “lwt” and let
make build-deps do its job and install it the way it fits best, or at least try…


#58

Yay - it compiled!!! :smiley:

I unpinned LWT as you mentioned and reran make build-deps & make:
https://www.hastebin.com/eqixokahuj.pas

I didn’t edit the config.json yet (in your manual T-12) but not sure it’s needed since I didn’t do the firewall setup yet. I’ll do that in a 2nd stage.

In the meantime, I have no connections yet:
Jan 7 14:01:28 - p2p.maintenance: Too few connections (0)
Jan 7 14:01:33 - p2p.maintenance: Too few connections (0)

I’ll leave it open for a while and see if that changes. On a laptop in the past, I ran tezos alphanet via docker and it was able to sync.

Thanks for all your help in the meantime!

FYI, my opam list for @demo: https://www.hastebin.com/lafepesana.vbs


#59

CONGRATULATIONS!!! enjoy the moment…

you probably have to identify the node with:
./tezos-node identity generate 24.

and yes it may take a while to find some connections…


#60

I am trying to reproduce the exact opam list you gave me.
But when I install a specific package, irelevent packages are also installed.
And when I delete them, sometimes a usefull package is also deleted.
So I enter an endless loop.

Is there a way to say to opam, that I want this specific list of packages and nothing more or less?

In bitcoin, they have https://reproducible-builds.org/ and Gitian Building.
https://bitcoinmagazine.com/articles/what-is-gitian-building-how-bitcoin-s-security-processes-became-a-model-for-the-open-source-community-1461862937/
Reproducable builds is a security prerequisite in order to built a trustless system like bitcoin… We should also make tezos builds reproducable, somehow.