## gbp-buildpackage-rpm

gbp-buildpackage-rpm — Build RPM packages from a Git repository

## Synopsis

`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`]

## DESCRIPTION

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.

## OPTIONS

`--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` | Execute `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.

## EXAMPLES

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

## CONFIGURATION FILES

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.

## SEE ALSO

gbp-import-srpm(1), gbp-pq-rpm(1), gbp-rpm-ch(1), rpmbuild(8), mock(1), gbp.conf(5), debuild(1), git(1), pristine-tar(1), The Git-Buildpackage Manual

## AUTHOR

Markus Lehtonen `<markus.lehtonen@linux.intel.com>`