0.6.7-fix1
fpkg 0.6.7-fix1
Fixes one regression in 0.6.7. Re-run ./fpkg patch after updating — this release changes what the patch does.
Container sources failed when an SDK was stamped. 0.6.7 gave --sdk-version a default of 1, which made the library rewrite the .sceversion trailer in every executable on every build. That path opens the original executable by filename, and a .ffpfsc source has no filename to open, so any container holding a .prx, .self, .elf or eboot.bin died with Could not find a part of the path '...ffpfsc:<handle>:/...'. Two further IL patch sites cover it; fpkg patch now reports nine instead of seven. Folder sources were never affected, and neither were containers built with --sdk-version keep.
A container carrying executables and the equivalent folder now produce byte-identical inner files, with the SDK correctly restamped.
fpkg 0.6.7
Tracks LibProsperoPkg 0.6.7.
New commands
fpkg template <pkg> <dir>— export a rebuildable add-on template: the sce_sys inputs plus a.gp5carrying the content id, passcode, entitlement key and PlayGo counts recovered from the package. Data-bearing AC packages only; the payload is not included.fpkg verify <pkg> --quick | --full— the library's own verifiers. Quick checks structure, digests, the outer superblock ICV and the SI directory; full also decodes every block, chunk and inner file. Exits 1 on any issue.fpkg extract <pkg> <dir> --rebuild-source— just the sce_sys inputs a rebuild needs. Never opens the inner filesystem, so it finishes in seconds.
New build options
--app-drm free|standard(default free, matching the official GUI) and--ac-drm free|entitlement. These replace the old param.json rewrite — 0.6.6 added a real build option, sofpkgno longer edits your files to set the DRM type. Note--ac-drm freealso omitslicense.dat/license.infoentirely.--playgo-languages— comma-separated language codes, orall.--no-media-repair— opt out of the PNG repair below.
Corrupt artwork is now repaired
icon0, pic0, pic1 and pic2 .png are validated properly (signature, chunk chain, CRC-32, IEND, no trailing bytes) and any that fail are rebuilt from the matching .dds. Dumps really do ship damaged artwork, and upstream packs a present file unchecked. Its own "restore a missing pic1/pic2" path is Windows-only, so this is done in managed code that works everywhere. A damaged image with no usable .dds stops the build instead of shipping.
Changed
--playgonow accepts 1–255 (was 1–64). The library default moved 64 → 100.--sdk-versionnow defaults to 1, matching the 0.6.7 GUI. Use--sdk-version keepto leave the source's own values alone.- Since 0.6.7 the SDK no longer moves
requiredSystemSoftwareVersionin either direction — upstream decoupled them. - Removed
--retain-param-json; there is nothing left to retain.
Guards upstream dropped
- Zero-length PlayGo chunks. 0.6.4 refused a chunk count the image can't fill; 0.6.6 removed that check and 0.6.7 didn't restore it. With the default now 100, a small source silently gets empty chunks.
fpkgrefuses and tells you what fits. - Exported templates. The default sce_sys sweep would delete a template's licence and PlayGo files, which are deliberate inputs.
fpkgdetects the shape and points you at--retain-sce-sys.