gbp-buildpackage-rpm - Build RPM packages from a Git
repository
gbp buildpackage-rpm
[--git-[no-]ignore-new] [--git-tag] [--git-verbose]
[--git-color=[auto|on|off]] [--git-color-scheme=
COLOR_SCHEME] [--git-notify=[auto|on|off]]
[--git-tmp-dir= DIRECTORY] [--git-vendor=
VENDOR] [--git-native[auto|on|off]]
[--git-upstream-branch= TREEISH]
[--git-packaging-branch= BRANCH_NAME]
[--git-ignore-branch] [--git-[no-]submodules]
[--git-builder= BUILD_CMD] [--git-cleaner=
CLEAN_CMD] [--git-[no-]sign-tags] [--git-keyid=
GPG-KEYID] [--git-posttag= COMMAND]
[--git-postbuild= COMMAND] [--git-postexport=
COMMAND] [--git-prebuild= COMMAND]
[--git-preexport= COMMAND] [--git-[no-]build]
[--git-[no-]hooks] [--git-packaging-tag= TAG-FORMAT]
[--git-upstream-tag= TAG-FORMAT] [--git-force-create]
[--git-no-create-orig] [--git-upstream-tree=
[TAG|BRANCH|TREEISH]] [--git-tarball-dir= DIRECTORY]
[--git-compression-level= LEVEL] [--git-export-dir=
DIRECTORY] [--git-export= TREEISH]
[--git-packaging-dir= DIRECTORY] [--git-spec-file=
FILEPATH] [--git-export-sourcedir= DIRECTORY]
[--git-export-specdir= DIRECTORY]
[--git-[no-]pristine-tar] [--git-[no-]pristine-tar-commit]
[--git-tag-only] [--git-retag] [--git-mock]
[--git-dist= DISTRIBUTION] [--git-arch=
ARCHITECTURE] [--git-mock-options= OPTIONS]
[--git-mock-root= ROOT] [--git-spec-vcs-tag=
TAG_FORMAT]
gbp buildpackage-rpm is used to build RPM packages
from a Git repository. It is an RPM counterpart for the
gbp buildpackage tool that is designed for building Debian
packages.
gbp buildpackage-rpm will, in order:
- •
- Verify that it is being executed from the proper location.
- •
- Verify that the repository doesn't contain any uncommitted source
changes.
- •
- Verify that it is being executed from the correct branch.
- •
- Export packaging files to a separate build area.
- •
- Create an orig source tarball if it doesn't exist.
- •
- Call rpmbuild(1) (or the application specified via --git-builder),
passing along all command line arguments that don't start with
--git-.
- •
- (Optionally) tag the tree after a successful build.
- •
- (Optionally) call a post build hook - e.g. to run rpmlint.
- •
- (Optionally) call a post tag hook - e.g. to push the results to a remote
repository after creating the tag.
- --git-[no-]ignore-new
- Don't abort if there are uncommitted changes in the source tree or the
current branch doesn't match the PACKAGING-BRANCH.
- --git-tag
- Add a git tag after a successful build.
- --git-builder=BUILD_CMD
- Use BUILD_CMD instead of rpmbuild -ba.
- --git-cleaner=CLEAN_CMD
- Use CLEAN_CMD.
- --git-verbose
- Verbose execution
- --git-color=[auto|on|off]
- Whether to use colored output.
- --git-color-scheme=COLOR_SCHEME
- Colors to use in output (when color is enabled). The format for
COLOR_SCHEME is
'<debug>:<info>:<warning>:<error>'. Numerical
values and color names are accepted, empty fields imply the default color.
For example --git-color-scheme='cyan:34::' would show debug messages in
cyan, info messages in blue and other messages in default (i.e. warning
and error messages in red).
- --git-notify=[auto|on|off]
- Whether to send a desktop notification after the build.
- --git-tmp-dir=DIRECTORY
- Base directory under which temporary directories are created.
- --git-vendor=VENDOR
- Distribution vendor name.
- --git-native=[auto|on|off]
- Define the 'nativity' of a package. The default value auto makes
gbp buildpackage-rpm to guess. Guessing is based on the
existence of upstream branch.
- --git-upstream-branch=BRANCH_NAME
- Branch to build the orig tarball from if --git-upstream-tree is set
to BRANCH. Default is upstream.
- --git-packaging-branch=BRANCH_NAME
- If you're not on this branch when invoking
gbp buildpackage-rpm it will fail. Default is master.
This is done to make sure you don't accidentally release from a topic
branch. Not being on this branch will be ignored when using
--git-ignore-new.
- --git-ignore-branch
- Don't check if the current branch matches PACKAGING-BRANCH.
- --git-[no-]submodules
- Include git submodules in the orig tarball.
- --git-[no-]sign-tags
- GPG sign all created tags.
- --git-keyid=GPG-KEYID
- Use this keyid for gpg signing tags.
- --git-posttag=COMMAND
- Excecute COMMAND after tagging a new version.
Exported environment variables are: GBP_TAG (the name
of the generated tag), GBP_BRANCH (the branch the package was
built from) and GBP_SHA1 (the sha1 of the commit the tag was
created at).
- --git-postbuild=COMMAND
- Execute COMMAND after successful build.
Exported environment variables are: GBP_CHANGES_FILE
(the name of the generated changes file), GBP_BUILD_DIR (the
build dir).
- --git-preexport=COMMAND
- Execute COMMAND before exporting the source tree.
Exported environment variables are: GBP_GIT_DIR (the
repository the package is being built from), GBP_TMP_DIR (the
temporary directory where the sources have been initially exported).
- --git-postexport=COMMAND
- Execute COMMAND after exporting the source tree.
Exported environment variables are: GBP_GIT_DIR (the
repository the package is being built from), GBP_TMP_DIR (the
temporary directory where the sources have been initially exported).
- --git-prebuild=COMMAND
- Execute COMMAND from the build directory before calling rpmbuild or
the application specified via --git-builder.
Exported environment variables are: GBP_GIT_DIR (the
repository the package is being built from), GBP_BUILD_DIR (the
build dir).
- --git-[no-]build
- Enable builder. Note: --git-no-build causes the postbuild hook to
be disabled, too.
- --git-[no-]hooks
- Enable running all (cleaner, preexport, postexport, prebuild, postbuild,
and posttag) hooks. Note: the --git-builder command is not affected
by this option.
- --git-packaging-tag=TAG-FORMAT
- Use this tag format when tagging released versions of the package.
- --git-upstream-tag=TAG-FORMAT
- Use this tag format when looking for tags of upstream versions, default is
upstream/%(version)s.
- --git-force-create
- Force creation of an orig tarball (overwriting a pre-existing one if
present).
- --git-no-create-orig
- Don't try to create any orig tarball.
- --git-export-dir=DIRECTORY
- Export the packaging files from the current branch head (or the treeish
object given via --git-export to DIRECTORY before
building.
- --git-export-sourcedir=DIRECTORY
, --git-export-specdir=DIRECTORY
- Subdirectories under export directory where packaging files are exported.
The default build options of rpmbuild builder are also adjusted
accordingly.
- --git-export=TREEISH
- Instead of exporting the current branch head, export the treeish object
TREEISH. The special name INDEX exports the current index,
WC) exports all files in the current working directory.
- --git-packaging-dir=DIRECTORY
- Subdirectory that contains the RPM packaging files.
- --git-spec-file=FILEPATH
- Relative path to the spec file to use. Special value auto causes
gbp buildpackage-rpm to search and guess. Other values cause
the --git-packaging-dir option to be ignored: the directory of the
spec file is used, instead.
- --git-upstream-tree=[TAG|BRANCH|TREEISH]
- How to find the upstream sources used to generate the tarball. TAG
looks at a tag corresponding to the version in the changelog.
BRANCH looks at the upstream branch given via the
--git-upstream-branch option. Other values are interpreted as
treeishs.
This doesn't have any effect if --git-pristine-tar is
being used.
- --git-tarball-dir=DIRECTORY
- Search for original tarballs in DIRECTORY instead of generating
them.
- --git-compression-level=LEVEL
- Specifies the upstream tarball compression level if an upstream tarball
needs to be built.
- --git-tag-only
- Don't build, only tag and run post-tag hooks.
- --git-retag
- Don't fail tag operations if a tag with the same version already exists,
but, overwrite the existing tag, instead.
- --git-pristine-tar
- Use pristine-tar when generating the upstream tarball if it doesn't
exist.
- --git-pristine-tar-commit
- Commit the pristine-tar delta to the pristine-tar branch if a new tarball
was generated and the pristine-tar data isn't already there.
- --git-mock
- Use mock to build the rpms by invoking gbp-builder-mock.
- --git-dist
- Build for this distribution when using mock (e.g.: epel-6).
- --git-arch
- Build for this architecture when using mock, default is to build for the
current host architecture.
- --git-mock-root
- The mock root to use. Defaults to DIST-ARCH from above.
- --git-mock-options
- Additional options to pass to mock. Default is to pass no additional
options.
- --git-spec-vcs-tag=TAG_FORMAT
- gbp buildpackage-rpm always automatically sets/updates the
'VCS:' tag in the spec file after exporting. This option defines the
format string for the 'VCS:' tag. An empty value causes no 'VCS:' tag to
be inserted and possible old 'VCS:' tag to be removed. Otherwise, the old
'VCS:' tag is updated or a new 'VCS:' tag is added if one does not exist.
In the format string '%(tagname)s' expands to the long tag name (from
git-describe) and '%(commit)s' expans to the sha1 of the exported
commit.
Only build a source RPM with rpmbuild
gbp buildpackage-rpm -bs
Build an RPM package with rpmbuild on a custom branch with
the uncommitted changes included.
gbp buildpackage-rpm --git-ignore-branch --git-export=WC
Several gbp.conf files are parsed to set defaults for the
above command-line arguments. See the gbp.conf(5) manpage for
details.
All options in the config files are specified without the 'git-'
prefix.
Markus Lehtonen <markus.lehtonen@linux.intel.com>