May 25th, 2004: Source released to the world.
MojoPatch is an application for automatically updating applications.
It's meant to be downloaded by an end-user and executed directly.
When run, it'll locate the application to be updated and add, remove,
or patch files and directories as appropriate. Patching can use the
"xdelta" algorithm to reduce the size of the patch download.
A README can optionally be displayed and installed with the patch.
MojoPatch itself is a tiny program, so as not to bloat the download
unnecessarily. The UI is intentionally very minimal, yet accomplishes
all it needs to do. This is free software, under the "zlib license".
This license basically allows any use of the software, including
closed-source and commercial exploitation; it is useful for me, I hope
it will be for you, too.
MojoPatch is currently a Mac OS X project, but is designed with
portability in mind, so it could be converted into a Linux or Windows
application without too much difficulty.
Places MojoPatch is known to be used:
Unreal Tournament 2003 and
2004 from MacSoft use MojoPatch.
- The Mac OS X version of
America's Army: Operations used MojoPatch
to ease the ongoing upgrade process for its players.
- The Mac OS X versions of the Neverwinter Nights expansion packs
use MojoPatch to both ensure the game is updated to an
acceptable version and to install the expansion pack data.
- Close Combat: First
uses MojoPatch for updates to the Mac OS X version of the game.
- Running with Scissors
uses MojoPatch to distribute Postal 2 patches.
- Probably other places. Email me if you want to be listed here.
- Patching, adding, deleting files and directories.
- Can show a README to end user during patching process.
- Can create and inspect patch files from the command line.
- Carbon UI for Mac OS X.
- Stdio UI for console installs on all platforms.
What doesn't work:
- Needs porting to lots of important platforms.
- Making a patch isn't terribly user friendly.
- Documentation beyond --help is lacking.
- Contributions are, of course,
Page maintained by
Ryan C. Gordon.