verifyincorrectly reporting success for a tampered archiveverifyfailure messages now clarify whether a signature is missing or invalidaddoverwrite flag not always working as expected- Archive size incorrectly reported for large archives
- File sizes shown as negative for large files
- Simplified how strong archive signatures are read internally
- Command completion for common shells (bash, zsh, fish and powershell)
- Memory leak in read subcommand
- Inconsistencies in documentation
- Code style to conform to Google CPP style with slight variations
- StormLib dependency for a variety of fixes
- Thanks to @sjoblomj for the contributions in this release
- Compact subcommand to compress MPQ archive after creation/editing
- Support passing multiple files to the
addandremovesubcommands - Support reading file paths from stdin in the
addandremovesubcommands - Support adding entire directories with the
addsubcommand - Add an update flag to the
addsubcommand to skip files whose archived size matches the on-disk size
extractcommand now reports an error when the output directory cannot be created- Path traversal guard in
extractuses fully resolved paths, closing a potential bypass - Crash when reading strong signatures from malformed or truncated archives
- Docker glibc image updated to ubuntu:24.04
- Adding files is now ordered and operating system agnostic
addsubcommand now returns non-zero exit codes on failure- Error messages now include StormLib error codes
- Duplicate error messages removed
- Makefile build targets corrected in
CONTRIBUTING.md
--filename-in-archiveand--directory-in-archivereplaced by a unified--pathflag- The path flag on add now acts as an archive path prefix when a directory is given
- Thanks to @sjoblomj for the contributions in this release
- Potential path traversal attack in extract subcommand
- Empty MPQ archive name when directory supplied with trailing slash
- Bug where MPQ internal files were added with create command
- Signature being added automatically when not requested
- Potential DWORD overflow in
AddFiles
- The
createsubcommand now supports a single file - The
addandcreatesubcommands have additional arguments for specifiying the file location in the MPQ archive (name-in-archiveanddir-in-archive) - The
addsubcommand can now overwrite existing files if requested (overwrite)
- Several memory leaks
- Thanks to @sjoblomj for adding more features and fixes in this release
- Game profile support for
createandaddsubcommands via-g/--gameoption - Game profiles for Diablo, StarCraft, Warcraft, WoW, and more
- Game setting override options for
createsubcommand - Compression override options for
addsubcommand - Support for unfamiliar/unknown locales via raw hex LCID
- Additional built-in locales:
ptBR,esMX,ptPT
- Subcommands now properly verify locale before operating on files
- Error messages now include locale context in
remove,extract, andread - MPQ archives are now properly closed across all subcommands
- Non-zero exit codes returned on failure in
extractandremove listsubcommand now shows long output when properties are requested
- Improved locale printing and display throughout
- A big thank you to @sjoblomj for adding so many features in this release
- Proper support for locales in MPQ files
- Fixed bug where MPQ signature only printed on success
- Long (detailed) list format to output ISO 8601 timestamps
- Message prefix format consistency
- Filename added to program output
- Added simple wrapper around verify command
- Show help menu when no arguments provided
- Support for
addsubcommand to have path inside MPQ archive
- Bug in
addsubcommand when exceeding max file count
- Bug in
createsubcommand resulting in incorrect max file count
- Bug in Dockerfiles resulting in missing commit hash from version
- Linux binaries for amd64 and arm64
- Linux binaries built with musl and glibc
- Install script for Linux to provided better binary download options
- Linux binary release naming convention
- Added print raw bytes for
readandverifysubcommands
- Tests for
readandverifysubcommands
- Ability to print hex or plaintext in
readandverifysubcommands - Removed messages when printing signature value
- Added
add/removesubcommands working - Added tests for
add/removesubcommands - Added
max-filesproperty toinfosubcommand
- Change for default maximum file count when creating MPQ archives
- Added detailed (long) listing
- Updated create subcommand to always include attributes
- Updated Info function to support archive/file property fetching
- Added tests for
extractsubcommand - Added dependabot configuration for Python and Docker
- Fixed deprecated Windows Action running to Server 2022
- Updated readme and help menu to match application functionality
- Added the
readsubcommand - Added tests for
readsubcommand - Added new helper functions to print ASCII or hexidecimal output
- Fixed line endings in Windows pytest cases
- Added the
verifysubcommand - Included argument to print digital signature
- Added ability to sign archive when creating MPQ
- Added tests for
verifysubcommand
- Refactored
createsubcommand tests
- Refactored
infosubcommand - Added test for
infosubcommand
- Updated tests to be multi-platform (Windows)
- Removed exe patch split functionality
- Added Dockerfile
- Added Docker build and release workflows
- Added
addandremovesubcommand placeholders - Added
aboutsubcommand
- Added Python testing environment
- Added tests for
listsubcommand - Added test workflow
- Added Windows binary build to releases
- External listfile support for
listandextractby @sjoblomj - Added functions for add and remove files
- Fixed path extraction on Linux to create nested folder structure
- Fixed path extraction on Linux to create nested folder structure
- Added
createsubcommand - Added download information to readme
- Improved Linux binary compatibility
- Improved Linux binary compatibility
- Added the
extract,verifyandlistsubcommands - Added
release.ymlworkflow for Linux binary