Skip to content

Build Instructions

Yves Zoundi edited this page Oct 26, 2022 · 7 revisions

Please note that release builds are performed with the script located at ci_cd/build.sh

  • The ci_cd/build.sh scripts invokes other shell scripts
    • It requires podman, qemu-user-static and other utilities
    • The scripts assumes a "real" Linux environment (i.e. not tested on Cygwin, WSL or similar)
  • The release builds run inside an Ubuntu Linux virtual machine (amd64 box)

Software Dependencies

Because the software is written in Rust, you'll first need Rust installed on your machine.

A container solution (Docker or Podman or Lima) should also be installed for building the "sandbox" container image.

Linux dependencies

The dependencies below apply to a Debian GNU Linux environment. Package names may vary a little bit for other Linux distributions.

apt install -y libjpeg62-turbo-dev \
    squashfs-tools \
    xorg-dev \
    musl-dev \
    musl-tools \
    musl \
    wget \
    cmake \
    git \
    libpango1.0-dev \
    libxft-dev  \
    libx11-dev \
    libxcb-render0-dev \
    libxcb-shape0-dev \
    libxcb-xfixes0-dev \
    libxcb1-dev \
    libxcursor-dev \
    gcc \
    g++ \
    git \
    libpango1.0-dev \
    libcairo2-dev \
    cpio \
    rpm2cpio \
    build-essential rpm pandoc \
    fuse \
    patchelf \
    desktop-file-utils \
    squashfuse && apt clean

Mac OS Dependencies

You'll likely need to install Xcode and its command-line tools.

Components Builds

Software components can be found inside the app folder of the project.

entrusted-container

The entrusted-container container image can be built from the app folder.

  • entrusted-container is meant to be run within a Unix/Linux environment, inside a container solution
  • In the commands to follow, please replace 0.2.6 by the actual version defined in Cargo.toml of any given module.

With Docker

podman build -t docker.io/uycyjnzgntrn/entrusted_container:0.2.6 . -f entrusted_container/Dockerfile

With Podman

docker build -t docker.io/uycyjnzgntrn/entrusted_container:0.2.6 . -f entrusted_container/Dockerfile

With Lima

lima nerdctl build -t docker.io/uycyjnzgntrn/entrusted_container:0.2.6 . -f entrusted_container/Dockerfile

entrusted-client

Building the GUI is enabled as a cargo feature for ensuring that it's possible to build the command-line interface without GUI specific dependencies.

cargo build --features=gui

entrusted-webserver

At runtime, the entrusted-webserver binary expects the entrusted-cli program to be available in your PATH environment variable.

  • You'll need to build the entrusted-client first
  • And then hen place the command-line client in the directory of your choosing (in the PATH)

This is a standard build with cargo build.

entrusted-webclient

At runtime, the entrusted-webclient expects the entrusted-webserver to be deployed and running "somewhere on the network".

This is a standard build with cargo build.

Clone this wiki locally