The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

NAME

PkgForge::App::Submit - Package Forge application for submitting build jobs

VERSION

This documentation refers to PkgForge::App::Submit version 1.4.8

USAGE

     % pkgforge submit --bucket devel foo-1-2.src.rpm bar-3-4.src.rpm

     % pkgforge submit --bucket devel \
                       --archs '!x86_64' foobar-1-2.src.rpm

     % pkgforge submit --bucket lcfg \
                       --platforms 'f13,sl5' foobar-1-2.src.rpm

DESCRIPTION

This is a simple command-line tool for submitting jobs for the Package Forge software suite. This module relies on being able to do a simple copy of the necessary files from one location in the filesystem to another. This means you must be either using a networked filesystem, such as AFS or NFS, to allow remote submissions or requiring users to submit their jobs from the Package Forge master node.

A build job may consist of multiple source packages, you must supply at least one valid source package. When multiple source packages are provided they will be built in the order they are specified. On some platforms, e.g. Redhat/Fedora where mock(1) is used, a build failure in one package does not result in the whole job failing immediately. Failed packages will be put to the end of the queue in the hope that the failure was down to missing dependencies which can be satisfied by building later packages in the build job. As long as more packages keep being built the entire job will not fail due to individual build failures.

REQUIRED ARGUMENTS

You must specify at least one valid source package for submission as a build job.

OPTIONS

This is the list of command-line options which may be set when submitting build jobs. Note that some of the options can take multiple values. In all cases you can use the shortest unique name for an option (e.g. plat for platforms. Some options also have single-character alternatives. As well as specifying them each time a job is submitted the options can be permanently set using the configuration files for this application.

--bucket|-B

This is the name of the package repository bucket into which binary packages will be submitted once they are built. This option is required. For RPMs this will be done using the pkgsubmit(8) command. For some platforms (e.g. those which use mock(1) to build packages) this may also alter which build chroot configuration is used.

--archs|-a

This is the list of architectures (e.g. i386 and x86_64) for which you want the binary packages to be built. If nothing is specified then build tasks will be registered for all available architectures.

This option may have multiple values, these can be expressed as a comma-separated list (e.g. --archs i386,x86_64) or via putting the same option multiple times (e.g. --arch i386 --arch x86_64). Note that values can also be negated by prefixing with an ! (exclamation mark). This can be useful when you want all the architectures except one specific case.

--platforms|-p

This is the list of platforms (e.g. sl5 and f13) for which you want the binary packages to be built. If nothing is specified then build tasks will be registered for all available platforms.

This option may have multiple values, these can be expressed as a comma-separated list (e.g. --platforms f13,sl5) or via putting the same option multiple times (e.g. --plat f13 --plat sl5). Note that values can also be negated by prefixing with an ! (exclamation mark). This can be useful when you want all the platforms except one specific case.

--report|-r

This option can be used to set an email address (or set of email addresses) to which a summary report should be sent after the job has completed.

--verbose

Makes the output from verbose to see what is happening.

--configfile|-c

This attribute is used to override the default configuration files. See the CONFIGURATION AND ENVIRONMENT section below for details of how the configuration is normally loaded from files. If you specify a particular configuration file then ONLY that file will be parsed, any others will be ignored.

--target

This is the location (e.g. normally a directory) into which the job should be submitted. Normally this would be specified in a configuration file and would not need to be specified on the command line.

--id

This is a unique identifier used to track the job to be submitted. Normally it is not necessary to specify the ID as a new unique string will be selected automatically. You may specify any, previously unused, string you like as long as all the characters match the set A-Za-z0-9_- and the string is no more than 50 characters long.

CONFIGURATION AND ENVIRONMENT

The standard /etc/pkgforge/pkgforge.yml file will always be consulted, if it exists. The application-specific files in /etc/pkgforge and $HOME/.pkgforge are also examined, if they exist. For the submit command the following configuration files will be examined, if the exist (in this order)

/etc/pkgforge/pkgforge.yml =item /etc/pkgforge/submit.yml =item $HOME/.pkgforge/pkgforge.yml =item $HOME/.pkgforge/submit.yml

Settings in files later in the sequence override those earlier in the list. So settings in a user's home directory override the common application settings which override the system-wide settings.

The configuration format is YAML, in this case all that is required are simple key-value pairs separated with a colon, one per-line, for example bucket: lcfg

EXIT STATUS

After successfully running a command it will exit with code zero. An error will result in a non-zero error code.

DEPENDENCIES

This module is powered by Moose and uses MooseX::App::Cmd::Command and MooseX::Types.

SEE ALSO

PkgForge, PkgForge::Job, PkgForge::Source, PkgForge::SourceUtils, PkgForge::ConfigFile, PkgForge::App

Normally you would not use this class directly but would use the submit command via the pkgforge(1) command.

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.

ScientificLinux5, Fedora13

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-2011 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.