Fixed Docker builds
This commit is contained in:
parent
4f122e5b8c
commit
1e92b51931
|
@ -0,0 +1,18 @@
|
||||||
|
.dockerignore
|
||||||
|
.gitlab-ci.yml
|
||||||
|
Dockerfile
|
||||||
|
README.md
|
||||||
|
LICENSE
|
||||||
|
|
||||||
|
asm/
|
||||||
|
assets/
|
||||||
|
include/
|
||||||
|
ido/
|
||||||
|
build/
|
||||||
|
bin/
|
||||||
|
src/
|
||||||
|
|
||||||
|
baserom*
|
||||||
|
*.z64
|
||||||
|
|
||||||
|
Makefile
|
22
Dockerfile
22
Dockerfile
|
@ -1,14 +1,22 @@
|
||||||
FROM ubuntu:20.04 as build
|
FROM ubuntu:20.04 AS build
|
||||||
|
|
||||||
ENV DEBIAN_FRONTEND=noninteractive
|
ENV DEBIAN_FRONTEND=noninteractive
|
||||||
|
|
||||||
COPY packages.txt /
|
# (for debug purposes)
|
||||||
RUN apt-get update && apt-get install -y $(cat packages.txt)
|
RUN echo "System arch: $(uname -a)\nDPKG arch: $(dpkg --print-architecture)"
|
||||||
|
|
||||||
RUN curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
|
# Install package dependencies
|
||||||
|
COPY packages.txt ./
|
||||||
|
RUN apt-get update && apt-get install -y $(cat packages.txt) && rm packages.txt
|
||||||
|
|
||||||
COPY requirements.txt /
|
# Install Rust/Cargo
|
||||||
|
# NOTE: We replace /proc/self/exe with /bin/sh in the script to avoid issues with Docker
|
||||||
|
RUN curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sed 's#/proc/self/exe#\/bin\/sh#g' | CARGO_HOME=/opt/cargo sh -s -- -y
|
||||||
|
ENV PATH=/opt/cargo/bin:$PATH
|
||||||
|
|
||||||
|
# Install Python dependencies
|
||||||
|
COPY requirements.txt ./
|
||||||
|
COPY tools/n64splat/requirements.txt ./tools/n64splat/requirements.txt
|
||||||
RUN python3 -m pip install -r requirements.txt
|
RUN python3 -m pip install -r requirements.txt
|
||||||
|
|
||||||
RUN mkdir /banjo
|
|
||||||
WORKDIR /banjo
|
WORKDIR /banjo
|
||||||
|
ENTRYPOINT ["/bin/bash", "-c"]
|
||||||
|
|
102
README.md
102
README.md
|
@ -2,23 +2,68 @@
|
||||||
|
|
||||||
<img src="./progress/progress_total.svg">
|
<img src="./progress/progress_total.svg">
|
||||||
|
|
||||||
|
### Baserom checksums
|
||||||
|
|
||||||
|
- `baserom.us.v10.z64`: `1fe1632098865f639e22c11b9a81ee8f29c75d7a`
|
||||||
|
- `baserom.us.v11.z64`: TODO
|
||||||
|
- `baserom.jp.z64`: TODO
|
||||||
|
- `baserom.pal.z64`: TODO
|
||||||
|
|
||||||
## Building
|
## Building
|
||||||
|
|
||||||
Grab tools
|
The following instructions should work on the following platforms:
|
||||||
|
- Ubuntu 18.04 or higher (x86_64)
|
||||||
|
- Docker only
|
||||||
|
- Linux (x86_64, ARM)
|
||||||
|
- macOS (x86_64, ARM)
|
||||||
|
|
||||||
|
### Local (Linux)
|
||||||
|
|
||||||
|
Works with Ubuntu 18.04 or higher.
|
||||||
|
|
||||||
|
#### 1. Install dependencies
|
||||||
|
|
||||||
|
```sh
|
||||||
|
sudo apt-get update && sudo apt-get install -y $(cat packages.txt)
|
||||||
|
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
|
||||||
|
python3 -m pip install -r requirements.txt
|
||||||
|
```
|
||||||
|
|
||||||
|
#### 2. Grab tools
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
git submodule update --init --recursive
|
git submodule update --init --recursive
|
||||||
|
cd tools/n64splat
|
||||||
|
python3 -m pip install -r requirements.txt
|
||||||
```
|
```
|
||||||
|
|
||||||
Drop in `US v1.0` as `baserom.us.v10.z64` (sha1sum: `1fe1632098865f639e22c11b9a81ee8f29c75d7a`)
|
#### 3. Add baserom
|
||||||
|
|
||||||
To extract and build everything
|
Add the file for `US v1.0` as `baserom.us.v10.z64` in the project folder.
|
||||||
|
|
||||||
|
(optional): Check the baserom checksum
|
||||||
|
|
||||||
|
```sh
|
||||||
|
sha1sum baserom.us.v10.z64
|
||||||
|
```
|
||||||
|
|
||||||
|
The output should match the checksum specified above.
|
||||||
|
|
||||||
|
#### 4. Build
|
||||||
|
|
||||||
|
To extract and build everything simply run:
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
make
|
make
|
||||||
```
|
```
|
||||||
|
|
||||||
where the following are supported values of `<module_id>`
|
If you want to build a specific module, instead do:
|
||||||
|
|
||||||
|
```sh
|
||||||
|
make <module_id>
|
||||||
|
```
|
||||||
|
|
||||||
|
...where the following are supported values of `<module_id>`
|
||||||
- `core1`
|
- `core1`
|
||||||
- `core2`
|
- `core2`
|
||||||
- `MM`
|
- `MM`
|
||||||
|
@ -35,19 +80,52 @@ where the following are supported values of `<module_id>`
|
||||||
- `fight`
|
- `fight`
|
||||||
- `cutscenes`
|
- `cutscenes`
|
||||||
|
|
||||||
### Prerequisites
|
### Local (Docker - Linux/macOS)
|
||||||
|
|
||||||
Ubuntu 18.04 or higher.
|
#### 1. Get the Docker image
|
||||||
|
|
||||||
|
(if available) you can pull it from GitLab (but you need to be logged in):
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
sudo apt-get update && sudo apt-get install -y $(cat packages.txt)
|
docker login registry.gitlab.com
|
||||||
|
docker pull registry.gitlab.com/banjo.decomp/banjo-kazooie:latest
|
||||||
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
|
|
||||||
|
|
||||||
python3 -m pip install -r requirements.txt
|
|
||||||
```
|
```
|
||||||
|
|
||||||
### Other versions
|
(otherwise) you can build it yourself:
|
||||||
|
|
||||||
|
```sh
|
||||||
|
docker build -t banjo-kazooie .
|
||||||
|
```
|
||||||
|
|
||||||
|
**NOTE for ARM users** (Windows ARM, Raspberry Pi and similar, or Apple Silicon): Use this command instead:
|
||||||
|
|
||||||
|
```sh
|
||||||
|
docker build --platform linux/amd64 -t banjo-kazooie .
|
||||||
|
```
|
||||||
|
|
||||||
|
#### 2. Add baserom
|
||||||
|
|
||||||
|
Follow the same instructions as Step 3 above in "Local (Linux)".
|
||||||
|
|
||||||
|
#### 3. Run the Docker container
|
||||||
|
|
||||||
|
```sh
|
||||||
|
docker run -it --rm -v $(pwd):/banjo banjo-kazooie
|
||||||
|
```
|
||||||
|
|
||||||
|
**NOTE for ARM users**: Use this command instead:
|
||||||
|
|
||||||
|
```sh
|
||||||
|
docker run --platform linux/amd64 -it --rm -v $(pwd):/banjo banjo-kazooie
|
||||||
|
```
|
||||||
|
|
||||||
|
#### 4. Build
|
||||||
|
|
||||||
|
Follow the same instructions as Step 4 above in "Local (Linux)".
|
||||||
|
|
||||||
|
To exit Docker, simply type `exit`.
|
||||||
|
|
||||||
|
## Other versions
|
||||||
|
|
||||||
Drop in `us.v11`, `jp`, or `pal` as `baserom.<version>.z64` e.g. `baserom.us.v11.z64`
|
Drop in `us.v11`, `jp`, or `pal` as `baserom.<version>.z64` e.g. `baserom.us.v11.z64`
|
||||||
|
|
||||||
|
|
|
@ -10,3 +10,4 @@ python3
|
||||||
python3-pip
|
python3-pip
|
||||||
unzip
|
unzip
|
||||||
wget
|
wget
|
||||||
|
openssl
|
||||||
|
|
Loading…
Reference in New Issue