From c1bf79e7ac7429e1133f6ce4d3c71910f1894d4a Mon Sep 17 00:00:00 2001 From: Aadhar Agarwal Date: Tue, 17 Jun 2025 22:32:24 +0000 Subject: [PATCH 1/3] Build and install erofs-utils from source and modprobe erofs Signed-off-by: Aadhar Agarwal --- .github/workflows/ci.yml | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 344d0a914f2e..43f624bdb152 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -402,6 +402,39 @@ jobs: sudo apt-get update sudo apt-get install -y criu + - name: Build and install erofs-utils from source + run: | + # Install dependencies + sudo apt-get update + sudo apt-get install -y wget make gcc libz-dev liblz4-dev libfuse-dev autoconf libtool pkg-config uuid-dev + + # Create temporary build directory + BUILD_DIR="$(mktemp -d)" + cd "$BUILD_DIR" + + # get erofs-utils-1.8.8.tar.gz + wget https://git.kernel.org/pub/scm/linux/kernel/git/xiang/erofs-utils.git/snapshot/erofs-utils-1.8.8.tar.gz + tar -xzf erofs-utils-1.8.8.tar.gz + cd erofs-utils-1.8.8 + + # Build and install erofs-utils + ./autogen.sh + ./configure --enable-lz4 --enable-fuse --with-uuid + make -j"$(nproc)" + sudo make install + sudo ldconfig + + # Clean up + cd - + rm -rf "$BUILD_DIR" + + # Verify installation + mkfs.erofs --version + + - name: Load EROFS kernel module + run: | + sudo modprobe erofs + - name: Install containerd env: CGO_ENABLED: 1 From 3df2b5d98189ef4bca56e518d7cfa10b8cc5cc5a Mon Sep 17 00:00:00 2001 From: Aadhar Agarwal Date: Fri, 19 Sep 2025 00:03:43 +0000 Subject: [PATCH 2/3] TestErofs/Rename fails with EROFS snapshotter Signed-off-by: Aadhar Agarwal --- core/snapshots/testsuite/issues.go | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/core/snapshots/testsuite/issues.go b/core/snapshots/testsuite/issues.go index acc1187d46d0..e5bd1661df7e 100644 --- a/core/snapshots/testsuite/issues.go +++ b/core/snapshots/testsuite/issues.go @@ -135,7 +135,9 @@ func checkRename(ss string) func(ctx context.Context, t *testing.T, sn snapshots // // It doesn't work on fuse-overlayfs either. // https://github.com/containerd/fuse-overlayfs-snapshotter/pull/53#issuecomment-1543442048 - case "overlayfs", "fuse-overlayfs": + // + // EROFS snapshotter also uses overlayfs and has the same limitation. + case "overlayfs", "fuse-overlayfs", "erofs": // NOP default: applier = append(applier, fstest.Rename("/dir1", "/dir2")) From cbfb535ada0541fdfa840a3192641903a92f9953 Mon Sep 17 00:00:00 2001 From: Aadhar Agarwal Date: Fri, 19 Sep 2025 00:54:15 +0000 Subject: [PATCH 3/3] Add a comment to explain why apt-get install erofs-utils can't be used Signed-off-by: Aadhar Agarwal --- .github/workflows/ci.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 43f624bdb152..baa69f2ad7f4 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -402,6 +402,8 @@ jobs: sudo apt-get update sudo apt-get install -y criu + # "apt-get install erofs-utils" installs an older version (1.7.1 as of 2025-09-18) + # Build and install erofs-utils 1.8.8 from source to get a newer version - name: Build and install erofs-utils from source run: | # Install dependencies