File Coverage

blib/lib/LCFG/Build/Tools.pm
Criterion Covered Total %
statement 7 9 77.7
branch n/a
condition n/a
subroutine 3 3 100.0
pod n/a
total 10 12 83.3


line stmt bran cond sub pod time code
1             package LCFG::Build::Tools; # -*-cperl-*-
2 1     1   1563 use strict;
  1         3  
  1         29  
3 1     1   4 use warnings;
  1         1  
  1         35  
4              
5             # $Id: Tools.pm.in 12894 2010-07-12 15:44:11Z squinney@INF.ED.AC.UK $
6             # $Source: /var/cvs/dice/LCFG-Build-Tools/lib/LCFG/Build/Tools.pm.in,v $
7             # $Revision: 12894 $
8             # $HeadURL: https://svn.lcfg.org/svn/source/tags/LCFG-Build-Tools/LCFG_Build_Tools_0_4_5/lib/LCFG/Build/Tools.pm.in $
9             # $Date: 2010-07-12 16:44:11 +0100 (Mon, 12 Jul 2010) $
10              
11             our $VERSION = '0.4.5';
12              
13 1     1   173 use Moose;
  0            
  0            
14              
15             extends qw(MooseX::App::Cmd);
16              
17             use constant plugin_search_path => 'LCFG::Build::Tool';
18             use constant allow_any_unambiguous_abbrev => 1;
19              
20             __PACKAGE__->meta->make_immutable;
21              
22             no Moose;
23             1;
24             __END__
25              
26             =head1 NAME
27              
28             LCFG::Build::Tools - LCFG software release tools
29              
30             =head1 VERSION
31              
32             This documentation refers to LCFG::Build::Tools version 0.4.5
33              
34             =head1 DESCRIPTION
35              
36             LCFG::Build::Tools is a suite of tools designed to handle the
37             releasing of LCFG software projects and the creation of
38             packages. Support is available for developing projects within a
39             version-control systems (currently either CVS or None). By default a
40             source tar file is generated along with a specfile for building binary
41             RPMs. Support is provided for building binary RPMs directly. Work is
42             under way to also fully support the generation of MacOSX packages.
43              
44             Although this software is designed for managing LCFG projects there is
45             nothing that requires the software be for LCFG. All the tools included
46             are designed to more widely applicable.
47              
48             This suite has been intentionally designed to be easy to extend to
49             support new version-control systems (e.g. subversion, git, etc) and
50             new package formats (e.g. for Debian). It has also been designed to
51             ensure that it is easy to extend with additional command modules. For
52             further details see the online documentation at
53             http://www.lcfg.org/doc/buildtools/
54              
55             =head1 COMMAND MODULES
56              
57             This is a list of the LCFG build tool modules in this suite. You
58             should see the separate perl documentation for information on how to
59             use the modules.
60              
61             =over 4
62              
63             =item L<LCFG::Build::Utils>
64              
65             Generic utilities for building packages.
66              
67             =item L<LCFG::Build::Utils::RPM>
68              
69             Utilities for building RPM packages.
70              
71             =item L<LCFG::Build::Utils::MacOSX>
72              
73             Utilities for building MacOSX packages.
74              
75             =item L<LCFG::Build::Tool>
76              
77             Build tool base class, only tool developers need to care about this.
78              
79             =item L<LCFG::Build::Tool::CheckMacros>
80              
81             Tool for checking the macro usage in your project.
82              
83             =item L<LCFG::Build::Tool::MicroVersion>
84              
85             Tool for tagging source code as a particular (micro-version) release.
86              
87             =item L<LCFG::Build::Tool::MinorVersion>
88              
89             Tool for tagging source code as a particular minor-version release.
90              
91             =item L<LCFG::Build::Tool::MajorVersion>
92              
93             Tool for tagging source code as a particular major-version release.
94              
95             =item L<LCFG::Build::Tool::Pack>
96              
97             Tool for packaging tagged source code into a tar file.
98              
99             =item L<LCFG::Build::Tool::DevPack>
100              
101             Tool for packaging tagged development code into a tar file.
102              
103             =item L<LCFG::Build::Tool::RPM>
104              
105             Tool for packaging tagged source code into a tar file and generating RPMs
106              
107             =item L<LCFG::Build::Tool::SRPM>
108              
109             Tool for packaging tagged source code into a tar file and generating an SRPM
110              
111             =item L<LCFG::Build::Tool::DevRPM>
112              
113             Tool for packaging tagged development code into a tar file and generating RPMs.
114              
115             =item L<LCFG::Build::Tool::OSXPkg>
116              
117             Tool for packaging tagged source code into a tar file and generating
118             packages for MacOSX
119              
120             =item L<LCFG::Build::Tool::DevOSXPkg>
121              
122             Tool for packaging tagged development code into a tar file and
123             generating packages for MacOSX
124              
125             =head1 CONFIGURATION AND ENVIRONMENT
126              
127             Some of the tools use template files, by default it is assumed that
128             the standard template directory is C</usr/share/lcfgbuild/templates>.
129             You can override this using the C<LCFG_BUILD_TMPLDIR> environment
130             variable. If you have done a local (i.e. non-root) install of this
131             module then this will almost certainly be necessary.
132              
133             =head1 EXIT STATUS
134              
135             After successfully running a command it will exit with code zero. An
136             error will result in a non-zero error code.
137              
138             =head1 DEPENDENCIES
139              
140             The LCFG build tools are L<Moose> powered and the L<MooseX::App::Cmd>
141             module is used to handle the command-line interface.
142              
143             This module is part of the LCFG build tools suite and as such requires
144             L<LCFG::Build::Pkgspec> and L<LCFG::Build::VCS>.
145              
146             The templates are processed using the perl Template Toolkit.
147              
148             For building RPM packages you will need C<rpmbuild>.
149              
150             You will also need L<Archive::Tar>, L<DateTime>, L<File::Find::Rule>,
151             L<IO::Zlib>, L<Text::Abbreviate>, L<UNIVERSAL::require> and
152             L<YAML::Syck>.
153              
154             =head1 SEE ALSO
155              
156             L<LCFG::Build::Skeleton>, lcfg-reltool(1)
157              
158             =head1 PLATFORMS
159              
160             This is the list of platforms on which we have tested this
161             software. We expect this software to work on any Unix-like platform
162             which is supported by Perl.
163              
164             Fedora12, Fedora13, ScientificLinux5, ScientificLinux6, MacOSX7
165              
166             =head1 BUGS AND LIMITATIONS
167              
168             There are no known bugs in this application. Please report any
169             problems to bugs@lcfg.org, feedback and patches are also always very
170             welcome.
171              
172             =head1 AUTHOR
173              
174             Stephen Quinney <squinney@inf.ed.ac.uk>
175              
176             =head1 LICENSE AND COPYRIGHT
177              
178             Copyright (C) 2008 University of Edinburgh. All rights reserved.
179              
180             This library is free software; you can redistribute it and/or modify
181             it under the terms of the GPL, version 2 or later.
182              
183             =cut