• Bundled Makefile.PL knows how to configure/build/test/install the CPAN module • So you don’t need any tools to install CPAN modules; this is good • CPAN modules can do almost anything in Makefile.PL; this is powerful wget http://www.cpan.org/.../Module-0.1.tar.gz tar xzf Module-0.1.tar.gz cd Module-0.1 perl Makefile.PL # or perl Build.PL make make test make install
such as cpanm to install CPAN modules • If CPAN modules are not "complicated", then CPAN clients easily expect how to configure/ build/test/install them • … do we really need Makefile.PL?
install introduced by Leon Timmermans (sorry if I am wrong) • That is, if CPAN modules - are not "complicated" - set x_static_install 1 in their META.json then CPAN clients may configure/build/test/install them in the common way without executing Makefile.PL • cpanm-menlo and cpm already support static install
need to execute Makefile.PL, which makes CPAN module installation much faster • Simple People can easily expect results (eg: which files are installed and where) • Safe There is no place to execute arbitrary code during configure/build/install steps
check your CPAN modules are not complicated • pm files are in lib/ • executable files are in script/ (if any) • prereqs are declared in META.json statically • no xs file, no Module_pm.PL file
I assume you use Minilla • Modify toml.minil as follows • Then your module is static install ready 😄 > minil build > grep x_static_install META.json "x_static_install" : 1 name = "Your-Module" module_maker = "ModuleBuildTiny" [Metadata] x_static_install = 1
• It is powerful, but often overly complicated • Now we have the concept static install, which is much simpler and faster • To make CPAN modules static installable, set x_static_install 1 in META.json • Let’s make CPAN ecosystem simpler 👍
spec of static install https://github.com/Perl-Toolchain-Gang/cpan-static • An implementation of static install in Menlo https://github.com/miyagawa/cpanminus/pull/467