App-Staticperl
view release on metacpan or search on metacpan
- disable MAN1PODS and MAN3PODS in PERL_MM_OPT, to make Glib, Cairo,
Pango and Gtk2 build.
- patch ExtUtils::MM_Unix to search for static archives in blib more
often, as it doesn't detect Pango as being an XS module (which
is a bug in Pango).
- create a patch helper (SP-patch-postinstall) that is executed
after perl and eahc module install to do some important patches.
- rename the cpan-make-inmstall helper to SP-make-install-make.
- write mkbundle to bin/SP-mkbundle.
- new "staticperl perl" command.
- updated small/bigperl to 5.12.3.
1.21 Fri Mar 18 19:21:15 CET 2011
- ok, irix tar has no working -f and freebsd tar goes to a device
by default, so screw irix and go with freebsd.
- some bloke thought it's cool to force dynamic linking on darwin.
force as in "either you enable it, or the resulting build will be
forcefully broken". proves that whoever uses darwin deserves it.
anyway, we now patch away the idiocy in the hints file.
- for better portability, do not supply -Wl,--no-gc-sections
-Wl,--allow-multiple-definition, but sitll patch -Wl,--no-gc...
Glib literally requires Glib to be installed already to build - it
tries to fake this by running Glib out of the build directory before
being built. staticperl tries to work around this by forcing
"MAN1PODS" and "MAN3PODS" to be empty via the "PERL_MM_OPT"
environment variable.
Gtk2
See Pango, same problems, same solution.
Net::SSLeay
This module hasn't been significantly updated since OpenSSL is
called OpenSSL, and fails to properly link against dependent
libraries, most commonly, it forgets to specify -ldl when linking.
On GNU/Linux systems this usually goes undetected, as perl usually
links against -ldl itself and OpenSSL just happens to pick it up
that way, by chance.
For static builds, you either have to configure -ldl manually, or
you cna use the following snippet in your "postinstall" hook which
patches Net::SSLeay after installation, which happens to work most
bin/staticperl view on Meta::CPAN
to fake this by running Glib out of the build directory before being
built. F<staticperl> tries to work around this by forcing C<MAN1PODS> and
C<MAN3PODS> to be empty via the C<PERL_MM_OPT> environment variable.
=item Gtk2
See Pango, same problems, same solution.
=item Net::SSLeay
This module hasn't been significantly updated since OpenSSL is called
OpenSSL, and fails to properly link against dependent libraries, most
commonly, it forgets to specify -ldl when linking.
On GNU/Linux systems this usually goes undetected, as perl usually links
against -ldl itself and OpenSSL just happens to pick it up that way, by
chance.
For static builds, you either have to configure -ldl manually, or you
cna use the following snippet in your C<postinstall> hook which patches
Net::SSLeay after installation, which happens to work most of the time:
staticperl.pod view on Meta::CPAN
to fake this by running Glib out of the build directory before being
built. F<staticperl> tries to work around this by forcing C<MAN1PODS> and
C<MAN3PODS> to be empty via the C<PERL_MM_OPT> environment variable.
=item Gtk2
See Pango, same problems, same solution.
=item Net::SSLeay
This module hasn't been significantly updated since OpenSSL is called
OpenSSL, and fails to properly link against dependent libraries, most
commonly, it forgets to specify -ldl when linking.
On GNU/Linux systems this usually goes undetected, as perl usually links
against -ldl itself and OpenSSL just happens to pick it up that way, by
chance.
For static builds, you either have to configure -ldl manually, or you
cna use the following snippet in your C<postinstall> hook which patches
Net::SSLeay after installation, which happens to work most of the time:
( run in 0.248 second using v1.01-cache-2.11-cpan-05444aca049 )