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.
Yes, true, the latest release of the installer is a development release with known and still-to-be-found bugs 😉 We are collecting feedback from the community on new features and hidden bugs, that’s why we did this early release. Meanwhile, development goes on and we are fixing bugs and implementing new features for the next release 1.1.0dev2.
Although the application itself is not yet superstable, I believe it is good enough for experienced PHP devs to start deploying their applications with it. Developing and installing applications that entirely or partly consist of PEAR-like packages, is much easier with ZZ/OSS Installer compared to PEAR Installer, because there is e.g. automatic dependency resolving built in. This tutorial on deploying phpMyAdmin with ZZ/OSS Installer gives you a basic idea how to procede.
Should you encounter any problems, feel free to contact the ZZ/OSS Installer developers via the mailinglist, IRC, etc. as stated on the ZZ/OSS Installer project Website – we’ll do our best to help you. The nice thing is, that once you have a working ZZ/OSS Installer on your system, it is pretty easy to install the latest version with this installer from CVS sources.
ZZ/OSS is happy to announce that the ZZ/OSS Installer Client (ZIC) 1.1.0dev1 has been released. ZIC is a PHP-based installation wizard and development tool for professional release management of modular PHP applications.
This is a development release with new features. You can use this version to make your own PHP software installable with ZIC. The schema of the XML files describing your application is solid.
This new tutorial on making phpMyAdmin installable with ZIC is a good start.
If you use Mozilla, please make sure to set the preference ‘network.http.redirection-limit’ to the value ’30’ or higher if you get a “redirection limit” error. Type ‘about:config’ into the address field to access the preferences.
Please report bugs to the bug tracker, mailinglist, or IRC.
More information is available at the installer homepage
An excerpt of most important changes:
- works on Windows and Linux
- integrated plugins and packages manager for installed applications
- development applications can now also be installed
- default install path of development applications has ‘-dev’ added to app name
- new default theme ‘kde’ which is more neutral
- option to automatically remove setup wizard after installation
- handle different magic quotes settings
- progress bar shows download process
- single packages or plugins can be added
- works with E_ALL error reporting
- fileroles: default behaviour of installer without having any filerole plugins installed is that the file gets copied to the location specified in filelist/file of package.xml
- configurable quick installation of development applications allows for faster development
- detect circular dependencies of packages needing each other
- process filelists with nested dir elements in package.xml
I have put up some screenshots of the forthcoming ZIC 1.1.0dev1 release.
You can meet us during CET office hours (usually 9am – 6pm) on the IRC server
irc.freenode.net in channel
Saturday, I will present the forthcoming ZZ/OSS Installer Client (ZIC) release 1.1.0dev1 at a PHP User Group meeting. I am looking forward to get some feedback from the participants. Soon after the presentation, the code will be released.
This is an excerpt from the changelog:
– works on Windows
– new plugins architecture (introduced Plugins Runtime Environment, which is actually installed like an application)
– integrated package manager for installed applications
– plugins manager for installer plugins
– plugins development wizard
– E_ALL support
– development applications can now also be installed
– new default theme ‘kde’ which is “neutral”
– option to automatically remove setup wizard after installation
– handle different magic quotes settings
– progress bar shows download process
– single packages or plugins can be added
I am confident, that with this release, we have solved all major conceptual issues about a distributed deployment architecture. The important implementation missing, is the ZZ/OSS Installer Server (ZIS), which we have not yet released under an Open Source license. Once ZIS is out, companies and communities can easily deploy their applications consisting of packages within their software distribution – either in-house, and/or internally.
We will in the forthcoming months focus on the release of ZIS, which will in its first release be a kind of PEARWeb for the ZZ/OSS Installer Client. Nevertheless, the ZIS does not rely on PEARWeb, it is based on CONESYS, the COntent NEtwork SYStem. In this respect, the second major release of the ZIS will allow for automatic and granular distribution of package, application, and distribution data accross servers.
Slowly, but steadily, the PEAR Group sets basic and very necessary standards for PHP software development. Have a look at all Administrative Documents released so far. ZZ/OSS regards all of them as guidelines for professional PHP coding and we fully support them.