Packaging For Linux


Cava Packager will successfully package wxPerl applications for Windows, Linux and MacOSX. 

Alternatively you can package your applications for Linux using Wx::Perl::Packager and a packaging tool such as ActiveState PerlApp or PAR::Packer. There are instructions for PAR::Packer in the documentation for Wx::Perl::Packager. You should use version 0.25 as a minimum.

To use Wx::Perl::Packager, you must include the Wx::Perl::Packager module at the top of your script before you use Wx:

    use Wx::Perl::Packager;
    use Wx;
    .....

If your application uses threads, use the threads packages before Wx::Perl::Packager:

    use threads;
    use threads::shared;
    use Wx::Perl::Packager 0.25;
    use Wx;
    .....

When packaging your application, you must include the necessary wxWidgets DLLs in your package. You can use the wxWidgets dependency list to determine which wxWidgets dlls are necessary for your distribution. In PerlApp you should bind these to your executable.

The PPMs provided at this repository contain a custom Wx::Loader::Custom module to allow the wxWidgets DLLs to be distributed as part of a PPM. However, other distributions or builds of Wx should work perfectly well with Wx::Perl::Packager provided you bind or package the dlls with a .so.0 suffix - regardless of the sym-linking for your build or system. Wx::Perl::Packager looks for dlls with a .so.0 suffix, so that is what they must be called. That is the suffix of the wxWidgets dlls included in PPMs from this repository so no special action is required is you are using those PPMs.

An additional requirement for PerlApp is that you must bind the Wx.so library as wxmain.so. That is, you must bind

/path/to/perllib/lib/auto/Wx/Wx.so  
     as 
wxmain.so 

If you do not do this, your application will suffer a segmentation fault on exit.

You can build for x86 (32 bit) or x86_64 (64 bit) architectures. You probably want to build for both as your executables will be architecture specific.

The standard Wx PPMs from this repository require some minimum versions of key libraries to be installed on the target machine ( see Linux Dependencies ) and therefore your packaged applications will require the same minimum versions too.

Wx::Perl::Packager does not support the --clean option for PerlApp

Blogs

Binary Oasis

Recent Entries

Perl 5.14 Support
on Binary Oasis
PPMs Updated - Wx 0.99 / wxWidgets 2.8.12
on Binary Oasis
Cava Packager
on Binary Oasis

Groups