—#!/usr/bin/env perl
#ABSTRACT: Facilitate building Debian packages with templates
#PODNAME: makedpkg
our
$VERSION
=
'0.05'
;
#VERSION
use
App::makedpkg;
App::makedpkg->run;
__END__
=pod
=encoding UTF-8
=head1 NAME
makedpkg - Facilitate building Debian packages with templates
=head1 VERSION
version 0.05
=head1 DESCRIPTION
The B<makedpkg> command line application helps building Debian packages based
on configuration files and templates.
=head1 OPTIONS
-c --config configuration file (makedpkg.{yml,json,...} by default)
-v --verbose enable verbose output
-t --templates template directory (./makedpkg by default)
--init initialize or update template directory
-n --dry don't build, just show
-p --prepare don't build, just prepare sources
-f --force use the force, Luke!
=head1 CONFIGURATION
Unless explicitly specified via the C<config> option, a config file with name
C<makedpkg.yaml> (or any other extension recognized by L<Config::Any>) is
expected. Important configuration variables include:
=over 4
=item name
package name
=item version
package version
=item author
package author
=item changes
changes to be used in C<changelog> template
=item timestamp
timestamp to be used in C<changelog> template
=item section
section to be used in C<control> template
=item priority
priority to be used in C<control> template (for instance C<extra>)
=item build_depends
build dependencies, to be used in C<control> template (for instance C<< perl (>= 5.14) >>)
=item binary_depends
binary dependencies, to be used in C<control> template
=item architecture
architecture, to be used in C<control> template
=item description
description, to be used in C<control> template
=item build
Build configuration, consisting of C<directory>, C<before>, C<files>, and
C<options>.
=over
=item directory
Directory to build package in (default is C<debuild>).
=item before
List of commands to execute before build. Commands are executed before files
are copied to the package directory, so more files can be generated or
processed via commands listed in this field.
=item files
package files, to be used in C<install> template (L<see Debian
Files can be specified as mapping which files to copy to which directory, such
as
files:
copy:
"lib/*": "srv/myapp/lib"
"index.html": "srv/myapp"
and/or as list which directories and files to copy from to which directory
files:
to: srv/myapp
from:
- lib
- index.html
=item command
Command to execute build. Set to C<debuild> by default. This option can be used
for instance to add command line options, e.g. C<debuils -uc -us>.
=back
=item verbose
Autmatically set to C<0> or C<1> by the C<--verbose> command line flag, this
variable is used to disable or enable verbose mode of C<debhelper> in the default
C<rules> template.
=back
=head1 CONFIGURATON EXPANSION
After reading the config file, all values having the form C<`...`> are expanded
by executing C<...> in a shell. For instance
curdir: `pwd`
Will be expanded by setting C<curdir> to the output of command C<pwd>. To give
a more complex example, the following config file value can be used to get the
date of the latest git commit in RFC form:
timestamp: "`git log -n1 --format=\"%ad\" --date=rfc`"
=head1 TEMPLATES
Template are evaluated with L<Text::Template>, so make sure to escape braces
(C<{> and C<}>) with a backslash (C<\>). All configuration values are available
as template variables.
The CPAN distribution of this packages includes a set of default templates
which are used if no template directory is selected with option C<templates>.
use C<--init> to copy these default templates into subdirectory C<makedpkg>
for further modification.
Typical templates files include:
=over
=item
C<control> (included as default template)
=item
C<changelog> (included as default template)
=item
C<rules> (included as default template)
=item
C<compat> (included as default template)
=item
C<source/format> (included as default template)
You should remove this file unless you explicitly include the sources.
=item
the control scripts C<preinst>, C<postinst>, C<prerm>, and C<postrm>
=item
C<copyright>
=item
C<upstart>
=item
...
=back
=head1 SEE ALSO
The L<Debian New Maintainers'
Guide|http://www.debian.org/doc/manuals/maint-guide/>, especially chaper 4 to
6.
=head1 AUTHOR
Jakob Voß
=head1 COPYRIGHT AND LICENSE
This software is copyright (c) 2014 by Jakob Voß.
This is free software; you can redistribute it and/or modify it under
the same terms as the Perl 5 programming language system itself.
=cut