This repo contains the Container-image build rule, used to generate the (docker/podman) container image necessary to build Floss. If building a new docker/podman image, run container-build-image.py with the tag floss:latest.
On most Debian based machines, you should be able to simply use apt-get and install these requisite packages.
sudo apt-get install \ podman \ uidmap
Then, we need to set up podman for rootless mode:
sudo usermod --add-subuids 10000-75535 USERNAME sudo usermod --add-subgids 10000-75535 USERNAME
Follow the installation instructions at: https://docs.docker.com/engine/install/, such as https://docs.docker.com/engine/install/debian/.
Also consider configuring Docker to run in rootless mode: https://docs.docker.com/engine/security/rootless/
Run the following to generate the required image:
container-build-image.py --tag floss:latest
If you use the docker binary, add the flag: --use-docker when running container-build-image.py.
This uses the default tag of floss:latest so you don't have to provide it specifically when invoking build-in-container.py.
Once the container image is built (and assuming it's tagged as floss:latest), you should use the build-in-container.py script to build the current repo.
Basic build:
build-in-container.py
This script will use the local floss:latest (or pull it from the registry), mount (or create) the floss-out volume to /root/.floss and the current source to /root/src before running these commands in the container:
cd /root/src./build.py --run-bootstrap./build.py --libdir=/usr/lib/x86-64_linux_gnu/If you want to run the build more quickly (or pass other commands), run build-in-container.py --only-start. This will only start the container for you (doing the correct mounts) and will print the commands it would have run via <container_binary> exec normally.