This morning I saw this error when building sel4:
/bin/sh: 1: PROTOBUF_PROTOC_EXECUTABLE-NOTFOUND: not found
I noticed a warning when starting the docker container about trustworthysystems/camkes:latest being over 30 days old. I thought that using an up to date pull of:
https://github.com/SEL4PROJ/seL4-CAmkES-L4v-dockerfiles.git
would keep the build env up to date but that apparently is either not the case or there is a problem with the repo.
I ran:
docker pull trustworthysystems/camkes
and the warning was resolved and I could build seL4. Is pulling that docker image supposed to be necessary?
I believe so. Looking at the documentation in the README and how the Makefile is implemented, the first time you run `make user` docker will pull a version of trustworthysystems/camkes and then build the extras.dockerfile using trustworthysystems/camkes as a base. Future calls to make user will rebuild extras.dockerfile, but will use the existing trustworthysystems/camkes image from before. I'm guessing the intention was to require explicit updates of trustworthysystems/camkes due to the large image sizes and the warning is there to alert any potential issues of staleness. I'm not experienced enough with docker to know if there is an easy way to detect that the trustworthysystems/camkes image is stale based on the source dockerfiles in the repository without requiring a full build of trustworthysystems/camkes the first time `make user` is run.
Thanks!