%scons; %builders-mod; %functions-mod; %tools-mod; %variables-mod; ]> Sets construction variables for the &b-Package; Builder. Builds software distribution packages. Packages consist of files to install and packaging information. The former may be specified with the &source; parameter and may be left out, in which case the &FindInstalledFiles; function will collect all files that have an &b-Install; or &b-InstallAs; Builder attached. If the ⌖ is not specified it will be deduced from additional information given to this Builder. The packaging information is specified with the help of construction variables documented below. This information is called a tag to stress that some of them can also be attached to files with the &Tag; function. The mandatory ones will complain if they were not specified. They vary depending on chosen target packager. The target packager may be selected with the "PACKAGETYPE" command line option or with the &cv-PACKAGETYPE; construction variable. Currently the following packagers available: * msi - Microsoft Installer * rpm - Redhat Package Manger * ipkg - Itsy Package Management System * tarbz2 - compressed tar * targz - compressed tar * zip - zip file * src_tarbz2 - compressed tar source * src_targz - compressed tar source * src_zip - zip file source An updated list is always available under the "package_type" option when running "scons --help" on a project that has packaging activated. env = Environment(tools=['default', 'packaging']) env.Install('/bin/', 'my_program') env.Package( NAME = 'foo', VERSION = '1.2.3', PACKAGEVERSION = 0, PACKAGETYPE = 'rpm', LICENSE = 'gpl', SUMMARY = 'balalalalal', DESCRIPTION = 'this should be really really long', X_RPM_GROUP = 'Application/fu', SOURCE_URL = 'http://foo.org/foo-1.2.3.tar.gz' ) Specifies the system architecture for which the package is being built. The default is the system architecture of the machine on which SCons is running. This is used to fill in the Architecture: field in an Ipkg control file, and as part of the name of a generated RPM file. A hook for modifying the file that controls the packaging build (the .spec for RPM, the control for Ipkg, the .wxs for MSI). If set, the function will be called after the SCons template for the file has been written. XXX The name of a file containing the change log text to be included in the package. This is included as the %changelog section of the RPM .spec file. A long description of the project being packaged. This is included in the relevant section of the file that controls the packaging build. A language-specific long description for the specified lang. This is used to populate a %description -l section of an RPM .spec file. The abbreviated name of the license under which this project is released (gpl, lpgl, bsd etc.). See http://www.opensource.org/licenses/alphabetical for a list of license names. Specfies the name of the project to package. Specifies the directory where all files in resulting archive will be placed if applicable. The default value is "$NAME-$VERSION". Selects the package type to build. Currently these are available: * msi - Microsoft Installer * rpm - Redhat Package Manger * ipkg - Itsy Package Management System * tarbz2 - compressed tar * targz - compressed tar * zip - zip file * src_tarbz2 - compressed tar source * src_targz - compressed tar source * src_zip - zip file source This may be overridden with the "package_type" command line option. The version of the package (not the underlying project). This is currently only used by the rpm packager and should reflect changes in the packaging, not the underlying project code itself. The URL (web address) of the location from which the project was retrieved. This is used to fill in the Source: field in the controlling information for Ipkg and RPM packages. A short summary of what the project is about. This is used to fill in the Summary: field in the controlling information for Ipkg and RPM packages, and as the Description: field in MSI packages. The person or organization who supply the packaged software. This is used to fill in the Vendor: field in the controlling information for RPM packages, and the Manufacturer: field in the controlling information for MSI packages. The version of the project, specified as a string. This is used to fill in the Depends: field in the controlling information for Ipkg packages. This is used to fill in the Description: field in the controlling information for Ipkg packages. The default value is $SUMMARY\n$DESCRIPTION This is used to fill in the Maintainer: field in the controlling information for Ipkg packages. This is used to fill in the Priority: field in the controlling information for Ipkg packages. This is used to fill in the Section: field in the controlling information for Ipkg packages. This is used to fill in the Language: attribute in the controlling information for MSI packages. The text of the software license in RTF format. Carriage return characters will be replaced with the RTF equivalent \\par. TODO This is used to fill in the AutoReqProv: field in the RPM .spec file. internal, but overridable This is used to fill in the BuildRequires: field in the RPM .spec file. internal, but overridable internal, but overridable This is used to fill in the Conflicts: field in the RPM .spec file. This value is used as the default attributes for the files in the RPM package. The default value is (-,root,root). This is used to fill in the Distribution: field in the RPM .spec file. This is used to fill in the Epoch: field in the controlling information for RPM packages. This is used to fill in the ExcludeArch: field in the RPM .spec file. This is used to fill in the ExclusiveArch: field in the RPM .spec file. This is used to fill in the Group: field in the RPM .spec file. This is used to fill in the Group(lang): field in the RPM .spec file. Note that lang is not literal and should be replaced by the appropriate language code. This is used to fill in the Icon: field in the RPM .spec file. internal, but overridable This is used to fill in the Packager: field in the RPM .spec file. This is used to fill in the Provides: field in the RPM .spec file. This is used to fill in the %post: section in the RPM .spec file. This is used to fill in the %pre: section in the RPM .spec file. This is used to fill in the Prefix: field in the RPM .spec file. internal, but overridable This is used to fill in the %postun: section in the RPM .spec file. This is used to fill in the %preun: section in the RPM .spec file. This is used to fill in the Requires: field in the RPM .spec file. This is used to fill in the Serial: field in the RPM .spec file. This is used to fill in the Url: field in the RPM .spec file. (node, tags) Annotates file or directory Nodes with information about how the &b-link-Package; Builder should package those files or directories. All tags are optional. Examples: # makes sure the built library will be installed with 0644 file # access mode Tag( Library( 'lib.c' ), UNIX_ATTR="0644" ) # marks file2.txt to be a documentation file Tag( 'file2.txt', DOC )