In The Beginning

| 0 Comments

In the beginning, I decided it would be a nice idea to provide wxPerl PPMs for Linux along with the MSWin32 binaries that have exisited for quite a while. I have been deploying some wxPerl applications to Linux users and thought it was time to clean up the necessary hacks and release PPMs. Of course, if you are building Wx yourself on your local Perl, then there is no problem. A CPAN install of Wx should work just fine.  But in my case, I wanted to deploy wxPerl applications to different machines over which I had no control - and be sure that they'd work as intented for users who knew nothing about Perl. So a local Perl install wasn't really an option.

Whilst I was doing this, why not get a Mac OSX PPM together, I thought, for the 'full set'. That's 'full set' apart from the multitude of other systems that Perl runs on.

Making a choice about which versions of what to support turned out to not be too difficult. First choice was ActivePerl as a base to build the binaries against. One of the difficulties in building a binary for Linux (and I guess Mac OSX) is your dependence on installed libraries and their respective versions. This isn't an issue if you build for Linux in the normal way targetting a specific distribution, or build locally on the target machine. But for a distributed PPM it is an issue. The ActivePerl distribution and the ActiveState PPM repository provide binaries that are built against a fixed set of dependencies - so all the work was already done for me regarding the dependecies of any modules Wx might reference - I just had to worry about the specific dependencies of wxWidgets. It also solves the same problem for any user who might want to distribute a wxPerl application using PerlApp or PAR. There's a fixed set of dependencies and therefore a fixed minimum version of the target operating system or distribution that you want to deploy to.

For my own purposes, I need the facilities provided by wxGraphicsContext, which fixes the minimum versions of some major dependencies on Linux. For GTK builds I need a gtk built against the cairo graphics library, so I get a minumum gtk version of 2.8. I also wanted to build on one of the standard distributions - preferably one of the 'enterprise' types which does not bundle the latest packages with every release. I ended up using CentOS 5 - which gave me the base dependencies of glibc 2.5 and gtk 2.10. Checking on distrowatch, most major distributions use these and upwards from around 2007. The one 'latecomer' was Debian for which 5.0 / Lenny is required. Even 2007 seemed a bit recent to me so the decision was 'should I provide PPMs that I can't and don't use myself?'. So you've got glibc 2.5 and gtk 2.10 as base dependencies on Linux.

On Mac OSX I wanted universal binaries so building to support 10.4 Tiger and upwards was the only choice. I have an Intel Mac with Snow Leopard installed, which turned out to be a pain to build on for a newcomer like myself. Still, all the answers were on the wxWidgets wiki so reading the manual could have saved me considerable grief here. Also, since the current release of ActivePerl pre-dates Snow Leopard, there were some problems building support modules such as OpenGL - but the solution was quick - armed with my new knowledge gained by 'reading the manual' for wxWidgets. (see Building under Snow Leopard).

So, now the PPMs are built and available, I hope they encourage even wider use of the brilliant wxPerl.

Links:
wxPerl Homepage
wxWidgets Homepage
ActivePerl

Leave a comment

About this Entry

This page contains a single entry by Mark Dootson published on February 3, 2010 3:41 PM.

Learning to use wxOSX is the next entry in this blog.

Find recent content on the main index or look in the archives to find all content.