
- Use https for redox apt repository - Import the repository's key - Update [toolchain packages' names](https://github.com/redox-os/cookbook/pull/59) - Install `wget` which is needed by [coobook/recipes/xz](https://github.com/redox-os/cookbook/blob/master/recipes/xz/recipe.sh) - Update README file to reflect the [discussion about when the submodules are needed](https://github.com/redox-os/redox/pull/1005#discussion_r129432929) - Update README file to suggest using `make fetch all` in place of `make update all` since `Cargo.lock` files come with the sources now. See this [comment](https://github.com/redox-os/redox/issues/1021#issuecomment-320946322) Note: current source tree generation requires runing the docker container with `bash -c RUSTFLAGS=\"-A unused_mut\" make fetch all` in place of `make fetch all`
30 lines
1.4 KiB
Markdown
30 lines
1.4 KiB
Markdown
### Building Redox using Docker images with the toolchain
|
|
|
|
*All you need is git, make, qemu, fuse and docker. The method requires a non-privileged user able to run the `docker` command, which is usually achieved by adding the user to the `docker` group.*
|
|
|
|
```shell
|
|
git clone https://github.com/redox-os/redox.git ; cd redox #1
|
|
docker build --build-arg LOCAL_UID="$(id -u)" --build-arg LOCAL_GID="$(id -g)" \
|
|
-t redox docker/ #2
|
|
git pull --rebase --recurse-submodules && git submodule sync \
|
|
&& git submodule update --recursive --init #3
|
|
docker run --cap-add MKNOD --cap-add SYS_ADMIN \
|
|
-e LOCAL_UID="$(id -u)" -e LOCAL_GID="$(id -g)" \
|
|
--device /dev/fuse -v "$(pwd):/home/user/src" --rm redox make fetch all #4
|
|
make qemu #5
|
|
```
|
|
To unpack:
|
|
1. Creates a local copy of the repository.
|
|
2. Creates a new image in the local image repository named `redox` with Redox toolchain installed. You only need to rebuild the image if you want to update the toolchain.
|
|
3. Updates all the submodules in the repository.
|
|
4. Builds Redox using the `redox` image. The arguments allow the container to use `fuse` and ensure the resulting files are owned by the current user.
|
|
5. Runs Redox.
|
|
|
|
On selinux systems, replace #4 with:
|
|
```
|
|
docker run --cap-add MKNOD --cap-add SYS_ADMIN \
|
|
-e LOCAL_UID="$(id -u)" -e LOCAL_GID="$(id -g)" \
|
|
--device /dev/fuse -v "$(pwd):/home/user/src" --security-opt label=disable \
|
|
--rm redox make fetch all
|
|
```
|