I had to do, what developers really don’t like: patching a third-party class package due to a bug for the forthcoming release of one of our software products.
The package I had to patch is PEAR::Archive_Tar because of a yet unfixed bug I have reported some time ago. The application depending on that package is the forthcoming release of ZZ/OSS Installer. I was able to use the installer itself to apply the patch due to the fact that the ZZ/OSS Installer is itself developed and installed with the ZZ/OSS Installer – I love russian doll architectures :).
Creating and applying the patch was as simple as:
1. Fix the bug in
2. Put the fixed
Tar.php in a package called com.zzoss.pear.archive_tar.patch.
3. Make sure in the
deps element of the package.xml that the patch package has a dependency on the
4. Add this package to the application.xml of the next ZZ/OSS Installer release.
What happens when installing the application with the ZZ/OSS Installer is that the
Tar.php file from
PEAR::Archive_Tar gets overwritten by the fixed
com.zzoss.pear.archive_tar.patch, because of the dependency definition.