NAME

App::CpanDak - cpanm, with some sort of distroprefs

VERSION

version 0.0.1

SYNOPSIS

cpandak Foo::Bar

cpandak --installdeps .

Exactly the same way as cpanm.

DESCRIPTION

This is a subclass of App::cpanminus::script that wraps some of its methods to add the ability to apply patches, set environment variables, and skip tests, to specific distributions.

The idea comes from Distroprefs.

Warning

This is a mostly a hack; it will not work on cpanminus 1.79 or later (those future versions are a complete rewrite, based on Menlo).

Special instructions

You add special instructions in a directory, then set the full path to that directory in the PERL_CPANDAK_SPECIALS_PATH environment variable.

Files should be named after the full name of the distribution they apply to, with optional full version. So to define a patch for all versions of Test-mysqld, you create $PERL_CPANDAK_SPECIALS_PATH/Test-mysqld.patch. To define test environment variables for version 1.2.3 of Foo-Bar you create $PERL_CPANDAK_SPECIALS_PATH/Foo-Bar-1.2.3.test.env.yml.

NOTE the use of dash, not double colon! It's a distribution name, not a module name!

These files are currently supported:

.patch

unified patch to apply to the distribution contents immediately after unpacking (it is applied by calling patch -p1)

the main use of this is for fixing a distribution while you wait for the author to release a fixed version; another good use is to make changes to a distribution to adapt it to your particular runtime environment

.options.yml

general processing options; currently only notest (Perl-style boolean) is implemented: if set, no tests will be run for this distribution

---
notest: 1
.configure.env.yml
.build.env.yml
.test.env.yml
.install.env.yml

environment variables to set before running running those phases

---
TMP_SOCKET_PATH: '/tmp/'
SKIP_NETWORK: '1'
PLACK_ENV: ~  # remove this variable from the environment

See also App::CpanDak::Specials for more details.

AUTHOR

Gianni Ceccarelli <dakkar@thenautilus.net>

COPYRIGHT AND LICENSE

This software is copyright (c) 2026 by Gianni Ceccarelli <dakkar@thenautilus.net>.

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.