Repository navigation
v0.8.1
Package Mask, Keywords Filtering & Atom Parsing Fix
This release adds critical filtering functionality to the dependency resolver and fixes atom parsing issues that caused incorrect Manifest path construction.
Highlights
- Package Mask Support — Solver now respects
package.maskfrom repository, profile cascade, and user configuration - KEYWORDS Filtering — Packages are filtered by
KEYWORDSvsACCEPT_KEYWORDS, preventing selection of unkeyworded packages (e.g.,gcc-16.0.9999) - Atom Parsing Fix — Versioned atoms like
=sys-devel/gcc-13.4.1_p20250807now correctly resolve tosys-devel/gccfor path construction
Bug Fixes
- #45 — Fixed Manifest path construction for versioned atoms. Before:
=sys-devel/gcc-13.4.1→sys-devel/gcc-13.4.1/Manifest(wrong). After:sys-devel/gcc/Manifest(correct) - #46 — Solver now properly filters masked packages
- #48 — Solver now filters unkeyworded packages
New Features
MaskManager— Multi-source mask loading with priority handlingKeywordManager— Architecture-aware keyword filteringloadPackageFromAtom()— PMS-compliant atom loading helper- 18 new test cases for atom parsing edge cases
Verified
GRPM now selects the same package versions as Portage (tested with sys-devel/gcc):
- Before:
gcc-16.0.9999(unkeyworded, masked) - After:
gcc-15.2.1_p20251122(stable, same as Portage)
Installation
# Download for your platform
wget https://github.com/grpmsoft/grpm/releases/download/v0.8.1/grpm_0.8.1_linux_x86_64.tar.gz
# Extract and install
tar -xzf grpm_0.8.1_linux_x86_64.tar.gz
sudo install -m 0755 grpm /usr/bin/grpm
# Verify
grpm versionTesting
Tested on Gentoo Linux with real Portage repository:
- Unit tests: ✅ All passing
- Integration tests: ✅ All passing (E2E in Gentoo container)
- Real-world: ✅ 98.2% tree coverage verified
Full Changelog: v0.8.0...v0.8.1