mirror of https://github.com/zeldaret/mm.git
Fix docker builds (#1814)
* Fix dockerfile.
It was broken because the practicerom package changed stuff and apt didn't like whatever changed.
This is the commit that seems to have broken how the old practicerom package worked: e7bec93b0b (diff-b335630551682c19a781afebcf4d07bf978fb1f8ac04c6bf87428ed5106870f5)
* Update docker docs.
Some references were broken in the markdown files, and there's no longer a need to run the git `safe.directory` command since the docker file was doing it already
* Include `gcc-mips-linux-gnu` in the dockerfile
* break up dockerfile commands a bit more
* Update practicerom instructions
* Update practice rom again
This commit is contained in:
parent
1ca6ca804d
commit
a0c992ea35
25
Dockerfile
25
Dockerfile
|
|
@ -3,12 +3,18 @@ FROM ubuntu:24.04 AS build
|
|||
ENV TZ=UTC
|
||||
ENV LANG=C.UTF-8
|
||||
|
||||
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
|
||||
|
||||
# Add source for practicerom-dev install
|
||||
RUN apt-get update && apt-get install -y curl && \
|
||||
curl -o /usr/share/keyrings/practicerom-archive-keyring.gpg https://practicerom.com/public/packages/debian/practicerom-archive-keyring.gpg && \
|
||||
echo 'deb [arch=all,amd64 signed-by=/usr/share/keyrings/practicerom-archive-keyring.gpg] http://practicerom.com/public/packages/debian unstable main' > /etc/apt/sources.list.d/practicerom.list
|
||||
|
||||
# Install Required Dependencies
|
||||
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone && \
|
||||
apt-get update && apt-get install -y \
|
||||
curl \
|
||||
RUN apt-get update && apt-get install -y \
|
||||
build-essential \
|
||||
binutils-mips-linux-gnu \
|
||||
gcc-mips-linux-gnu \
|
||||
pkg-config \
|
||||
python3 \
|
||||
python3-pip \
|
||||
|
|
@ -20,14 +26,11 @@ RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone &
|
|||
vim \
|
||||
clang-tidy-14 \
|
||||
clang-format-14 \
|
||||
libpng-dev && \
|
||||
# Add source for practicerom-dev install
|
||||
curl https://practicerom.com/public/packages/debian/pgp.pub | apt-key add - && \
|
||||
echo deb http://practicerom.com/public/packages/debian staging main >/etc/apt/sources.list.d/practicerom.list && \
|
||||
apt-get update && \
|
||||
apt-get install -y \
|
||||
practicerom-dev && \
|
||||
apt-get clean && \
|
||||
libpng-dev \
|
||||
practicerom-dev
|
||||
|
||||
# Post dependencies cleanup
|
||||
RUN apt-get clean && \
|
||||
rm -rf /var/lib/apt/lists/*
|
||||
|
||||
WORKDIR /mm
|
||||
|
|
|
|||
|
|
@ -62,7 +62,6 @@ Preparation is covered in [Building Docker](docs/BUILDING_DOCKER.md).
|
|||
|
||||
The build process has the following package requirements:
|
||||
|
||||
* make
|
||||
* git
|
||||
* build-essential
|
||||
* binutils-mips-linux-gnu
|
||||
|
|
@ -77,7 +76,7 @@ Under Debian / Ubuntu (which we recommend using), you can install them with the
|
|||
|
||||
```bash
|
||||
sudo apt update
|
||||
sudo apt install make git build-essential binutils-mips-linux-gnu curl python3 python3-pip python3-venv libpng-dev libxml2-dev
|
||||
sudo apt install git build-essential binutils-mips-linux-gnu curl python3 python3-pip python3-venv libpng-dev libxml2-dev
|
||||
```
|
||||
|
||||
#### 2. Clone the repository
|
||||
|
|
@ -102,12 +101,14 @@ Rename the file to `baserom.z64`, `baserom.n64` or `baserom.v64`, depending on t
|
|||
|
||||
#### 4. Make and Build the ROM
|
||||
|
||||
To start the extraction/build process, run the following command:
|
||||
For a first time build, run the following command, where `N` is the number of cores your processor has (see the note at the bottom for more information):
|
||||
|
||||
```bash
|
||||
make init
|
||||
make init -j N
|
||||
```
|
||||
|
||||
After the very first build you'll want to run `make -j N` instead, since you likely won't need all the setup the `init` command provides.
|
||||
|
||||
The extraction/build process:
|
||||
1. Prepares build environment:
|
||||
- Creates a Python virtual environment
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@ You will need [Docker](https://docs.docker.com/get-docker/) Follow the instructi
|
|||
|
||||
## 1. Clone the Repository
|
||||
|
||||
You will need to prepare a local version of the project with a copied base ROM (see steps [2](../README.md#2-clone-the-repository) and [4](../README.md#4-prepare-a-base-rom) of the Linux instructions).
|
||||
You will need to prepare a local version of the project with a copied base ROM (see steps [2. Clone the repository](../README.md#2-clone-the-repository) and [3. Prepare a base ROM](../README.md#3-prepare-a-base-rom) of the Linux instructions).
|
||||
|
||||
## 2. Create the Docker image
|
||||
|
||||
|
|
@ -38,10 +38,4 @@ docker run -it --rm --mount type=bind,source="$(pwd)",destination=/mm mm "/usr/b
|
|||
|
||||
## 4. Setup and Build the ROM
|
||||
|
||||
Once inside the container, you will need to set the repository as a trusted repository with the following command:
|
||||
|
||||
```bash
|
||||
git config --global --add safe.directory /mm
|
||||
```
|
||||
|
||||
After that continue with step [5. Make and Build the ROM](../README.md#5-make-and-build-the-rom) of the Linux instructions to setup and build the ROM, or run any other command you need.
|
||||
After that continue with step [4. Make and Build the ROM](../README.md#4-make-and-build-the-rom) of the Linux instructions to setup and build the ROM, or run any other command you need.
|
||||
|
|
|
|||
Loading…
Reference in New Issue