The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

LCFG::Build::Tool::Submit - Tool for submitting RPMs

VERSION

This documentation refers to LCFG::Build::Tool::Submit version 0.9.18

USAGE

    my $tool = LCFG::Build::Tool::Submit->new( dir => '.' );

    $tool->execute;

    my $tool2 = LCFG::Build::Tool::Submit->new_with_options();

    $tool2->execute;

DESCRIPTION

This module provides software release tools for the LCFG build suite.

This is a tool for submitting RPMs which have been built using the LCFG build tools. It uses the pkgsubmit(8) command to do the actual work of submission. It avoids the need to know where the build products have been saved by the build tools, it also attempts to do some sanity checking before running the pkgsubmit command. This tool has been designed to work for the School of Informatics but it should work anywhere which has pkgsubmit installed and correctly configured.

More information on the LCFG build tools is available from the website http://www.lcfg.org/doc/buildtools/

ATTRIBUTES

The following attributes are modifiable via the command-line (i.e. via @ARGV) as well as the normal way when the Tool object is created. Unless stated the options take strings as arguments and can be used like --foo=bar. Boolean options can be expressed as either --foo or --no-foo to signify true and false values.

dryrun

A boolean value which indicates whether actions which permanently alter the contents of files should be carried out. The default value is false (0). When running in dry-run mode various you will typically get extra output to the screen showing what would have been done.

quiet

A boolean value which indicates whether the actions should attempt to be quieter. The default value is false (0).

dir

The path of the project directory which contains the software for which you want to create a release. If this is not specified then a default value of the current directory (.) will be used. This directory must already contain the LCFG build metadata file (lcfg.yml) for the software.

resultsdir

When a project is packaged for release the generated products (the gzipped source tar file, various build metadata files and possibly binary RPMS, etc) are stored into a directory named after the combination of the full name of the project and the version number. For example, a project named 'foo' with version '1.2.3' would have an output directory of 'foo-1.2.3'. You should note that if the base attribute is specified in the metadata file (this is the case for LCFG components) then that is also used. If the previous example was an LCFG component it would have a directory named 'lcfg-foo-1.2.3'.

This attribute controls the parent directory into which that generated directory will be placed. The default on a Unix system is $HOME/lcfgbuild/ which will be created if it does not already exist.

bucket

This is the name of the bucket into which the package is submitted. A bucket is a directory within an RPM repository into which RPMs are stored. This is a required attribute and as such it must be specified on the command line, there is no default value.

file

This is the name of the pkgsubmit configuration file to be used. If none is specified then the default.conf file is used.

SUBROUTINES/METHODS

execute

This method carries out the work of finding the RPMs and submitting them to the desired location using pkgsubmit.

fail($message)

Immediately fails (i.e. dies) and displays the message.

log($message)

Logs the message to the screen if the quiet attribute has not been specified. A message string is prefixed with 'LCFG: ' to help visually separate it from other output.

DEPENDENCIES

This module is Moose powered and uses MooseX::App::Cmd to handle command-line options.

This application also requires File::Find::Rule and Readonly.

SEE ALSO

pkgsubmit(8), LCFG::Build::Tools, lcfg-reltool(1)

PLATFORMS

This is the list of platforms on which we have tested this software. We expect this software to work on any Unix-like platform which is supported by Perl.

Fedora12, Fedora13, ScientificLinux5, ScientificLinux6, MacOSX7

BUGS AND LIMITATIONS

Please report any bugs or problems (or praise!) to bugs@lcfg.org, feedback and patches are also always very welcome.

AUTHOR

Stephen Quinney <squinney@inf.ed.ac.uk>

LICENSE AND COPYRIGHT

Copyright (C) 2010 University of Edinburgh. All rights reserved.

This library is free software; you can redistribute it and/or modify it under the terms of the GPL, version 2 or later.