Switch to 7z for compression#73
Merged
Merged
Conversation
Downloads static ARM/ARM64 binaries from 7-zip.org during make setup. Follows jq pattern - binaries cached locally, gitignored.
Shells out to 7z binary for both .zip and .7z files, replacing custom ZIP header parsing and zlib inflation. Simplifies minarch.c from 90 lines of extraction code to 20 lines. New minarch_archive module handles both formats uniformly.
Standardizes archive extraction across all platforms by deploying 7z
binaries to a shared bin/ directory at SD card root. This eliminates
per-platform unzip60 builds and simplifies the boot/update architecture.
Changes:
- Deploy bin/{arm,arm64}/7z to release root for all platforms
- Update update-functions.sh with architecture-aware 7z detection
- Update boot scripts (rg35xx, rg35xxplus, m17) to use shared 7z
- Remove unzip60 build/clone/copy from 4 platforms
- Delete 4 unzip60 source directories
- Use 7zz (official 7-Zip) with LZMA2 compression - Update all boot.sh files to reference LessUI.7z - Payload size: 183MB → 120MB
There was a problem hiding this comment.
Pull request overview
This pull request switches LessUI from ZIP to 7z compression for both ROM support and update packages. The change reduces the size of LessUI update files and enables support for 7z-compressed ROMs.
Key Changes
- Replaces custom ZIP parsing code with shell execution of 7z binary
- Updates all platform boot scripts to use
LessUI.7zinstead ofLessUI.zip - Removes unzip60 dependency across all platforms, replacing with prebuilt 7z binaries (ARM32/ARM64)
- Creates new
minarch_archivemodule using 7z for ROM extraction instead of custom ZIP parsing
Reviewed changes
Copilot reviewed 50 out of 52 changed files in this pull request and generated 20 comments.
Show a summary per file
| File | Description |
|---|---|
| workspace/*/install/boot.sh | Updated UPDATE_PATH to reference LessUI.7z across all platforms |
| workspace/*/README.md | Updated documentation to reference 7z files instead of ZIP |
| workspace/*/makefile | Removed unzip60 dependency and build steps |
| workspace/all/minarch/minarch_archive.* | New archive extraction module using 7z binary via shell |
| workspace/all/minarch/minarch.c | Replaced custom ZIP parsing with minarch_archive calls |
| workspace/all/minarch/minarch_zip.* | Removed custom ZIP extraction code |
| workspace/all/utils/7z/makefile | Added makefile to download prebuilt 7z binaries |
| workspace/all/paks/Emus/makefile | Switched from unzip to 7zz for core extraction |
| skeleton/SYSTEM/common/update-functions.sh | Updated to use 7z binary with architecture detection |
| makefile | Updated package creation to use 7zz and include bin directory |
| tests/unit/all/common/test_minarch_archive.c | New tests for archive detection |
Comments suppressed due to low confidence (1)
workspace/tg5040/README.md:269
- The references to "ZIP" should be updated to "7z file" or "archive" to match the new file format being used.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fixes #69 #72