Citrus Perl 5.16.1 Updated

The current 5.16.1 release of Citrus Perl has been updated with some useful new features.

The distribution now has a working updates system so this should be the last full Perl 5.16.1 release. Additions and bug fixes can now work using the update system.

The additional modules build into Citrus Perl have now been grouped into packages that can be removed or updated using the the Citrus Package Management features. In addition to supporting updates, this system removes the need for separate distributions of Citrus Perl for the different wxWidgets builds; 2.8.x and 2.9.x. On platforms that support both versions of wxWidgets, you can now swap the 2.8.x and 2.9.x builds as often as you wish. A 'Wx Bundle Package' is provided for each version of wxWidgets that will install all the required packages for your requested wxWidgets version and remove all conflicting packages.

The versions of Wx and related modules are, of course, the latest from CPAN.

The package system also provides the option to remove unwanted packages if you are re-packaging your own distribution. An option to remove absolutely all GUI components from a re-packaged distribution is also provided which will remove 20 to 30 mb from the package size depending on the platform.

The layout of Citrus Perl has also changed for the better and there is no longer a fixed top level path name in the distribution. The distribution is now always packaged and will extract to a top level directory of 'perl'. After extraction you may change the directory name from 'perl' to anything you wish provided you do so before the distribution has been relocated by running relocateperl or the Citrus Utilities.

The help pages provided with the utilities application have been expanded and are now also published as Online Help Pages.

Upgrading from a previous release of Citrus is now far less expensive in time as the utilities application allows you to import all the modules from the 'site' folder of a compatible Citrus release. Any paths in the modules or binaries will be relocated to the new path of the importing Perl during import. You access this feature from the Utilities Tools Menu.

The Mac OS X 32 bit Intel distribution now has Wx packages for both wxWidgets 2.8.12 and 2.9.4. This supports swapping the versions in and out as you wish. The 64 bit Mac OS X distribution has only wxWidgets 2.9.4 as the 2.8.x branch does not support 64 bit builds on Mac OS X.

On Linux the ubuntults flavour only has wxWidgets 2.9.4 packages built. The only reason here is an attempt to limit the number of build variations to be supported. A wxWidgets 2.8.12 package in the ubuntults flavour can offer nothing more than the package in the standard Linux Citrus Perl flavour so there did not seem much point.

Nearly all of the code used to build the Citrus packages is now included within the distribution itself. The goal is that Citrus should be able to 'boot' build itself or an updated version from sources at some point in the future. In addition to the executable source and patch files included within the distribution, the 'scripts' used to build external static dependencies are at the sourceforge site. These are more like 'organic' notes than a serious build system but they do at least contain all the config params and patches used on all platforms and architectures to get the static libraries preferable for a binary distribution. At some point these will get wrapped in a generic way and included as part of the distributed Citrus build system.

I think that as a bundle these changes represent a welcome improvement to Citrus Perl and should make Citrus a more pleasant tool to use and to support. I am certainly pleased with the improvements.