feat(e2fsprogs): add e2fsprogs package#205
Conversation
Adds an e2fsprogs package (v1.47.4) providing mke2fs / mkfs.ext4 so the registry can build ext4 images with mke2fs -d. Follows the util-linux autotools template (base-bootstrap + make + toolchain build deps, glibc runtime dep, manual tarball extraction, make DESTDIR=$OUTPUT_DIR install). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
📝 WalkthroughWalkthroughThis PR adds a new Changese2fsprogs Package
🎯 2 (Simple) | ⏱️ ~10 minutes
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Comment |
There was a problem hiding this comment.
Actionable comments posted: 1
🧹 Nitpick comments (1)
packages/e2fsprogs/build.sh (1)
23-24: ⚡ Quick winQuote command substitution and variable to prevent word splitting.
While unlikely to cause issues in practice, shellcheck correctly flags that
$(nproc)and$OUTPUT_DIRshould be quoted to prevent word splitting and globbing.🔧 Proposed fix
-make -j$(nproc) -make DESTDIR=$OUTPUT_DIR install +make -j"$(nproc)" +make DESTDIR="$OUTPUT_DIR" install🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@packages/e2fsprogs/build.sh` around lines 23 - 24, In build.sh fix the two make invocations to quote the command substitution and variable: change the parallel build call that uses make -j$(nproc) to use make -j"$(nproc)" and change the install call that uses make DESTDIR=$OUTPUT_DIR install to use make DESTDIR="$OUTPUT_DIR" install so command substitution and the OUTPUT_DIR variable are protected from word splitting and globbing.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@packages/e2fsprogs/build.ncl`:
- Around line 47-51: Update the source_provenance block so it reflects the
canonical kernel.org upstream instead of GitHub: edit the source_provenance
entry (the category field and the owner/repo details currently under
source_provenance) to point to the kernel.org e2fsprogs repository (use the
kernel.org git URL or the appropriate category used for kernel.org/git repos in
this repo’s NCL schema) or, if GitHub is actually intended, change the fetch
mechanism to use GitHub consistently; specifically modify the
source_provenance::category and the accompanying identifier fields currently set
to 'GithubRepo'/owner="tytso"/repo="e2fsprogs" to match the kernel.org upstream
(git://git.kernel.org/pub/scm/fs/ext2/e2fsprogs.git) or swap the fetch target to
GitHub to preserve consistency.
---
Nitpick comments:
In `@packages/e2fsprogs/build.sh`:
- Around line 23-24: In build.sh fix the two make invocations to quote the
command substitution and variable: change the parallel build call that uses make
-j$(nproc) to use make -j"$(nproc)" and change the install call that uses make
DESTDIR=$OUTPUT_DIR install to use make DESTDIR="$OUTPUT_DIR" install so command
substitution and the OUTPUT_DIR variable are protected from word splitting and
globbing.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
Run ID: 380216a7-58c6-43cf-89fd-828f8bee0c62
📒 Files selected for processing (3)
packages/e2fsprogs/NOTES.mdpackages/e2fsprogs/build.nclpackages/e2fsprogs/build.sh
The source tarball is fetched from kernel.org (mirrors.edge.kernel.org/.../tytso/e2fsprogs), not github.com. e2fsprogs' canonical upstream is Ted Ts'o's dev tree on kernel.org; the github.com/tytso/e2fsprogs repo is a mirror. Per repo guidance, omit source_provenance rather than point it at a mirror, since there is no kernel.org provenance category and the project is neither a GNU nor a GitHub-canonical project. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
@coderabbitai review |
✅ Actions performedReview triggered.
|
|
@coderabbitai review |
✅ Actions performedReview triggered.
|
The minimal-build CI failed on post-build checkers: - missing runtime_deps: the e2scrub/e2scrub_all scripts need /bin/bash and compile_et/mk_cmds need /bin/sh, so add bash to runtime_deps. - enumerate bins: usr/bin/ has only 5 binaries, so enumerate them as explicit outputs (chattr, lsattr, uuidgen, compile_et, mk_cmds) instead of a catch-all glob. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Adds the e2fsprogs package, providing
mke2fs(and the ext2/3/4 family). Needed to build ext4 root-partition images (mke2fs -d <tree>) for the upcomingminimal-vm-imageassembly package.Source: e2fsprogs 1.47.4 from the canonical tytso kernel.org mirror, sha256
fd5bf388cbdbe006a3d3b318d983b2948382440acc85a87f1e7d108653e8db0b(downloaded + hashed locally).Build: autotools, modeled on
util-linux../configure --bindir=/usr/bin --sbindir=/usr/sbin --libdir=/usr/lib --enable-elf-shlibs --disable-defrag,make,make DESTDIR=$OUTPUT_DIR install. Builds its own libuuid/libblkid (no util-linux dep). Deps: base-bootstrap, make, toolchain (build) + glibc (runtime).Outputs:
usr/{bin,sbin}/*bins + e2fsprogs shared libs.Validation: builds from source in the Linux sandbox —
minimal package e2fsprogscompletes successfully andminimal check --packages e2fsprogspasses all 14 checkers; theminimal buildCI check (external Linux build) is green. (Source download+sha and./configurelayout were also verified on a macOS dev host.)Summary by CodeRabbit