dh-make-perl(1)
NAME
dh-make-perl - Create debian source packages from perl modules
SYNOPSIS
dh-make-perl [SOURCE_DIR | --cpan MODULE]
dh-make-perl --refresh
You can modify dh-make-perl's behaviour with some switches:
--desc SHORT DESCRIPTION
Uses the argument to --desc as short description for the package.
--arch any | all
This switches between arch-dependent and arch-independet packages.
If --arch isn't used, dh-make-perl uses a relatively good-working
algorithms to decide this alone.
--version VERSION
Specifies the version of the resulting package.
--email | -e EMAIL
Manually specify the Maintainer email address to use in
debian/control and in debian/changelog.
--packagename | -p PACKAGENAME
Manually specify the Package Name, useful when the module has
dashes in its name.
--closes ITPBUG
Manually specify the ITP bug number that this package closes. If
not given, dh-make-perl will try to connect to bugs.debian.org to
fetch the appropriate bug number, using WWW::Mechanize.
--depends DEPENDS
Manually specify the string to be used for the module's
dependencies. This should be used when building modules where dh make-perl cannot guess the Perl dependencies (such as modules built
using Module::Install), or when the Perl code depends on non-Perl
binaries or libraries. Usually, dh-make-perl will figure out the
dependencies by itself. If you need to pass dh-make-perl dependency
information, you must do it using the debian package format. i.e.
dh-make-perl --depends libtest-more-perl
--bdepends BUILD-DEPENDS
Manually specify the string to be used for the module's build dependencies (that is, the packages and their versions that have to
be installed in order to successfully build the package). Keep in
mind that packages generated by dh-make-perl require debhelper to
be specified as a build dependency. Same note as for --depends
applies here - Use only when needed.
--bdependsi BUILD-DEPENDS-INDEP
Manually specify the string to be used for the module's build dependencies for architecture-independent builds. Same notes as
those for the --depends and --bdepends options apply here.
Note that for --depends, --bdepends and --bdependsi you can also
specify that the field should not appear in debian/rules (if you
really mean it, of course ;-) ) by giving it an empty string as an
argument.
--pkg-perl
Useful when preparing a package for the Debian Perl Group
<http://pkg-perl.alioth.debian.org>.
Sets "Maintainer", "Uploaders", "Vcs-Svn" and "Vcs-Browser" fields
in debian/control accordingly.
--cpan-mirror MIRROR
Specifies a CPAN site to use as mirror.
--exclude | -i [REGEX]
This allows you to specify a PCRE to exclude some files from the
search for docs and stuff like that. If no argument is given (but
the switch is specified - not specifying the switch will include
everything), it defaults to exclude CVS and .svn directories.
--build
Builds the package after setting it up.
NB: This builds only a binary package (by calling "fakeroot
debian/rules binary") and does not sign the package. It is meant
for a quick local install of a package, not for creating a package
ready for submission to the Debian archive.
--install
Installs the freshly built package. Specifying --install implies
--build - The package will not be installed unless it was built
(obviously ;-) )
--notest
Does not run the automatic testing of the module as part of the
build script. This is mostly useful when packaging buggy or
incomplete software.
--basepkgs
Explicitly gives a comma-separated list of packages to consider
"base" packages (i.e. packages that should always be available in
Debian systems). This option defaults to
"perl,perl-base,perl-modules" - It is used to check for module
dependencies. If a needed module is in the "basepkgs", it won't be
mentioned in the "depends:" field of "debian/control".
If this option is specified, the above mentioned default packages
will not be included (but will be mentioned as explicit
dependencies in the resulting package). You can, of course, mention
your own modules and explicitly specify the default values.
Note that this option should be used sparsingly and with care, as
it might lead to packages not being rebuildable because of
unfulfilled dependencies.
--requiredeps
Fail if a dependency perl package was not found (dependency
tracking requires the apt-file package installed and updated)
--core-ok
Allows building core Perl modules. By default, dh-make-perl will
not allow building a module that is shipped as part of the standard
Perl library; by specifying this option, dh-make-perl will build
them anyway.
Note that, although it is not probable, this might break unrelated
items in your system - If a newer version of a core module breaks
the API, all kinds of daemons might get upset ;-)
--refresh
Refresh mode.
Instead of creating new debian/ directory, --refresh makes dh-make perl to re-create only debian/rules according to the current
templates.
This is useful when debian/rules was created using older templates
and doesn't contain much customisations. As always, you're strongly
encouraged to verify if debian/rules looks sane.
--dh ver
Set desired debhelper version. If "ver" is 7, generated
debian/rules is minimalistic, using the auto-mode of debhelper.
Also, any additional documentation and examples are listed in
additional files under debian/, instead of being listed in
debian/rules
DESCRIPTION
dh-make-perl will create the files required to build a debian source
package out of a perl package. This works for most simple packages and
is also useful for getting started with packaging perl modules.
You can specify a module name with the --cpan switch and dh-make-perl
will download the module for you from a CPAN mirror, or you can specify
the directory with the already unpacked sources. If neither --cpan nor
a directory is given as argument, dh-make-perl tries to create a perl
package from the data in .
There is an override mechanism in place to handle most of the little
changes that may be needed for some modules (this hasn't been tested
much, though, and the override database needs to be filled in).
You can build and install the debian package using the --build and
--install command line switches.
Using this program is no excuse for not reading the debian developer
documentation, including the Debian policy, the perl policy, the
packaging manual and so on.
FILES
- The following directories will be searched to find additional files
required by dh-make-perl: - /usr/share/dh-make-perl/
$HOME/.dh-make-perl/ - · overrides
File that overrides information retreived (or guessed) about the
package. All the files in the library directories are loaded:
entries in the home take precedence. See the distributed overrides file for usage information.- · rules.MakeMaker.noxs
A debian/rules makefile for modules that use ExtUtils::MakeMaker,
but don't have C/XS code.- · rules.MakeMaker.xs
A debian/rules makefile for modules that use ExtUtils::MakerMaker
and C/XS code.- · rules.Module-Build.noxs
A debian/rules makefile for modules that use Module::Build, but
don't have C/XS code.- · rules.Module-Build.xs
A debian/rules makefile for modules that use Module::Build and C/XS code.
ENVIRONMENT
HOME - get user's home directory
DEBFULLNAME - get the real name of the maintainer
LOGNAME or USER - get the username
DEBEMAIL or EMAIL - get the email address of the user
BUGS
Several, let me know when you find them.
AUTHOR
Paolo Molaro <lupus@debian.org> (MIA)
Maintained for a time by Ivan Kohler <ivan-debian@420.am>.
Maintained for a time by Marc Brockschmdit <marc@dch-faq.de>.
Now maintained by Gunnar Wolf <gwolf@gwolf.org>, and team-maintained by
the Debian pkg-perl team, http://alioth.debian.org/projects/pkg-perl
Patches from:
Adam Sjoegren <asjo@koldfront.dk>
Adrian Phillips <adrianp@powertech.no>
Amos Shapira <amos.shapira@gmail.com>
Christian Kurz <shorty@debian.org>
Damyan Ivanov <divanov@creditreform.bg>
David Paleino <d.paleino@gmail.com>
David Pashley <david@davidpashley.com>
Edward Betts <edward@debian.org>
Fermin Galan <galan@dit.upm.es>
Geoff Richards <qef@ungwe.org>
Gergely Nagy <algernon@bonehunter.rulez.org>
gregor herrmann <gregoa@debian.org>
Hilko Bengen <bengen@debian.org>
Kees Cook <keex@outflux.net>
Jesper Krogh <jesper@krogh.cc>
Johnny Morano <jmorano@moretrix.com>
Juerd <juerd@ouranos.juerd.net>
Marc Chantreux (mail withheld)
Matt Hope <dopey@debian.org>
Noel Maddy <noel@zhtwn.com>
Oliver Gorwits <oliver.gorwits@oucs.ox.ac.uk>
Peter Moerch <mn3k66i02@sneakemail.com>
Stephen Oberholtzer <oliverklozoff@gmail.com>
Ton Nijkes <tonn@wau.mis.ah.nl>
... And others who, sadly, we have forgot to add :-/
POD ERRORS
Hey! The above document had some coding errors, which are explained
below:
- Around line 1403:
- '=item' outside of any '=over'