From 77ceccc756b6a1d7c5de5341076fd4781cc83312 Mon Sep 17 00:00:00 2001 From: Marcelo Politzer <251334+mpolitzer@users.noreply.github.com> Date: Thu, 30 Nov 2023 16:50:13 -0300 Subject: [PATCH] feat: add xgenext2fs to image --- .github/workflows/build.yml | 2 ++ CHANGELOG.md | 1 + Dockerfile | 17 ++++++++++++++++- Makefile | 4 +++- 4 files changed, 22 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 9de56ac..958adab 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -2,6 +2,7 @@ name: Docker on: [push] env: KERNEL_VERSION: 6.5.9-ctsi-1 + GENEXT2FS_VERSION: 1.15.3 jobs: build: runs-on: ubuntu-22.04 @@ -62,6 +63,7 @@ jobs: push: true build-args: | KERNEL_VERSION=${{ env.KERNEL_VERSION }} + GENEXT2FS_VERSION=${{ env.GENEXT2FS_VERSION }} TOOLCHAIN_CONFIG=configs/ct-ng-config${{ matrix.config }} project: ${{ vars.DEPOT_PROJECT }} token: ${{ secrets.DEPOT_TOKEN }} diff --git a/CHANGELOG.md b/CHANGELOG.md index 77f7059..72e45c0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -21,6 +21,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Added support for Linux/ARM64 images - Added support fot the GitHub registry - Added support for building multiple toolchains (RV64G and RV64IMA) +- Added xgenext2fs to image ### Changed - Changed base image from Ubuntu 22.04 to Debian Bookworm diff --git a/Dockerfile b/Dockerfile index d4dd38c..001cf03 100644 --- a/Dockerfile +++ b/Dockerfile @@ -19,7 +19,9 @@ FROM debian:bookworm-20231120 as ct-ng-builder LABEL maintainer="Machine Reference Unit " ARG KERNEL_VERSION # define on makefile or CI +ARG GENEXT2FS_VERSION # define on makefile or CI ARG TOOLCHAIN_CONFIG=configs/ct-ng-config +ARG TARGETARCH ENV DEBIAN_FRONTEND=noninteractive @@ -27,16 +29,29 @@ ENV BASE "/opt/riscv" ENV BUILD_BASE "/tmp/build" + + RUN \ apt-get update && \ apt-get install --no-install-recommends -y \ build-essential autoconf automake libtool libtool-bin autotools-dev \ git make pkg-config patchutils gawk bison flex ca-certificates gnupg \ device-tree-compiler libmpc-dev libmpfr-dev libgmp-dev rsync cpio \ - libusb-1.0-0-dev texinfo gperf bc zlib1g-dev libncurses-dev genext2fs \ + libusb-1.0-0-dev texinfo gperf bc zlib1g-dev libncurses-dev \ wget vim wget curl zip unzip libexpat-dev python3 help2man && \ rm -rf /var/lib/apt/lists/* +RUN \ + wget -O /tmp/xgenext2fs.deb https://github.com/cartesi/genext2fs/releases/download/v${GENEXT2FS_VERSION}/xgenext2fs_${TARGETARCH}.deb && \ + case ${TARGETARCH} in \ + amd64) echo "f34bc34253209f6c024b97723eac7573eccb7ab62034d3d99e60df438c3458a5 /tmp/xgenext2fs.deb" | sha256sum --check ;; \ + arm64) echo "9e6cee8e9e9e8bb5b0c51f666b848ea7a1a97e663058dcdb37a17bde76ad221a /tmp/xgenext2fs.deb" | sha256sum --check ;; \ + esac && \ + apt-get update && \ + apt-get install --no-install-recommends -y \ + /tmp/xgenext2fs.deb && \ + rm -rf /var/lib/apt/lists/* + RUN \ adduser developer -u 499 --gecos ",,," --disabled-password && \ mkdir -m 775 -p $BASE $BUILD_BASE && \ diff --git a/Makefile b/Makefile index 6ffd371..b176e92 100644 --- a/Makefile +++ b/Makefile @@ -22,9 +22,11 @@ TOOLCHAIN_CONFIG ?= configs/ct-ng-config$(TOOLCHAIN_SUFFIX) CONTAINER_BASE := /opt/cartesi/toolchain$(TOOLCHAIN_SUFFIX) KERNEL_VERSION ?= 6.5.9-ctsi-1 KERNEL_SRCPATH := linux-$(KERNEL_VERSION).tar.gz +GENEXT2FS_VERSION ?= 1.15.3 BUILD_ARGS = --build-arg TOOLCHAIN_CONFIG=$(TOOLCHAIN_CONFIG) \ - --build-arg KERNEL_VERSION=$(KERNEL_VERSION) + --build-arg KERNEL_VERSION=$(KERNEL_VERSION) \ + --build-arg GENEXT2FS_VERSION=$(GENEXT2FS_VERSION) build: checksum docker build -t cartesi/toolchain:${TOOLCHAIN_TAG} $(BUILD_ARGS) .