summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--docs/Makefile5
-rw-r--r--docs/common.ent7
-rw-r--r--docs/main.sgml2
-rw-r--r--docs/man.gbp-buildpackage-rpm.sgml12
-rw-r--r--docs/man.gbp-import-orig-rpm.sgml11
-rw-r--r--docs/man.gbp-import-srpm.sgml11
-rw-r--r--docs/man.gbp-pq-rpm.sgml11
-rw-r--r--docs/man.gbp-rpm-ch.sgml11
-rw-r--r--docs/manpages/gbp-buildpackage-rpm.sgml764
-rw-r--r--docs/manpages/gbp-import-orig-rpm.sgml324
-rw-r--r--docs/manpages/gbp-import-srpm.sgml262
-rw-r--r--docs/manpages/gbp-pq-rpm.sgml399
-rw-r--r--docs/manpages/gbp-rpm-ch.sgml406
-rw-r--r--docs/manpages/man.seealso-rpm.sgml12
-rw-r--r--docs/manpages/manpages-rpm.ent10
-rw-r--r--docs/manual-rpm.sgml8
-rw-r--r--packaging/git-buildpackage.spec7
17 files changed, 2262 insertions, 0 deletions
diff --git a/docs/Makefile b/docs/Makefile
index 5cd83a05..cd657017 100644
--- a/docs/Makefile
+++ b/docs/Makefile
@@ -3,6 +3,7 @@
MAN1S = \
gbp \
gbp-buildpackage \
+ gbp-buildpackage-rpm \
gbp-clone \
gbp-config \
gbp-create-remote-repo \
@@ -10,8 +11,12 @@ MAN1S = \
gbp-import-dsc \
gbp-import-dscs \
gbp-import-orig \
+ gbp-import-orig-rpm \
+ gbp-import-srpm \
gbp-pq \
+ gbp-pq-rpm \
gbp-pull \
+ gbp-rpm-ch \
$(NULL)
MAN5S = gbp.conf
diff --git a/docs/common.ent b/docs/common.ent
index 69a703f6..6fc532c4 100644
--- a/docs/common.ent
+++ b/docs/common.ent
@@ -24,11 +24,18 @@
<!ENTITY debuildcmd "<command>debuild</command>">
<!ENTITY gbp.conf "<filename>gbp.conf</filename>">
+ <!ENTITY rpm-firstname "<firstname>Markus</firstname>">
+ <!ENTITY rpm-surname "<surname>Lehtonen</surname>">
+ <!ENTITY rpm-email "<email>markus.lehtonen@linux.intel.com</email>">
+ <!ENTITY rpm-username "Markus Lehtonen">
+ <!ENTITY rpm-mansection "<manvolnum>1</manvolnum>">
<!ENTITY gbp-buildpackage-rpm "<command>gbp buildpackage-rpm</command>">
<!ENTITY gbp-import-orig-rpm "<command>gbp import-orig-rpm</command>">
<!ENTITY gbp-import-srpm "<command>gbp import-srpm</command>">
<!ENTITY gbp-pq-rpm "<command>gbp pq-rpm</command>">
+ <!ENTITY gbp-rpm-ch "<command>gbp rpm-ch</command>">
<!ENTITY rpmbuild "<command>rpmbuild</command>">
+ <!ENTITY wget "<command>wget</command>">
<!ENTITY debian "<productname>Debian</productname>">
<!ENTITY git "<productname>Git</productname>">
diff --git a/docs/main.sgml b/docs/main.sgml
index bd1d97d7..7689bf7e 100644
--- a/docs/main.sgml
+++ b/docs/main.sgml
@@ -6,6 +6,8 @@
%VERSION;
<!ENTITY % MANPAGES SYSTEM "manpages/manpages.ent">
%MANPAGES;
+ <!ENTITY % MANPAGES.RPM SYSTEM "manpages/manpages-rpm.ent">
+ %MANPAGES.RPM;
<!ENTITY % CHAPTERS SYSTEM "chapters/chapters.ent">
%CHAPTERS;
<!ENTITY % CHAPTERS.RPM SYSTEM "chapters/chapters-rpm.ent">
diff --git a/docs/man.gbp-buildpackage-rpm.sgml b/docs/man.gbp-buildpackage-rpm.sgml
new file mode 100644
index 00000000..8752d576
--- /dev/null
+++ b/docs/man.gbp-buildpackage-rpm.sgml
@@ -0,0 +1,12 @@
+<!DOCTYPE reference PUBLIC "-//OASIS//DTD DocBook V4.1//EN"
+[
+ <!ENTITY % COMMON SYSTEM "common.ent">
+ %COMMON;
+ <!ENTITY % MANPAGES SYSTEM "manpages/manpages-rpm.ent">
+ %MANPAGES;
+]>
+
+<reference>
+<title>git-buildpackage-rpm Manual</title>
+&man.gbp.buildpackage.rpm;
+</reference>
diff --git a/docs/man.gbp-import-orig-rpm.sgml b/docs/man.gbp-import-orig-rpm.sgml
new file mode 100644
index 00000000..621b11da
--- /dev/null
+++ b/docs/man.gbp-import-orig-rpm.sgml
@@ -0,0 +1,11 @@
+<!DOCTYPE reference PUBLIC "-//OASIS//DTD DocBook V4.1//EN" [
+ <!ENTITY % COMMON SYSTEM "common.ent">
+ %COMMON;
+ <!ENTITY % MANPAGES SYSTEM "manpages/manpages-rpm.ent">
+ %MANPAGES;
+]>
+
+<reference>
+<title>git-buildpackage-rpm Manual</title>
+&man.gbp.import.orig.rpm;
+</reference>
diff --git a/docs/man.gbp-import-srpm.sgml b/docs/man.gbp-import-srpm.sgml
new file mode 100644
index 00000000..7efd8b10
--- /dev/null
+++ b/docs/man.gbp-import-srpm.sgml
@@ -0,0 +1,11 @@
+<!DOCTYPE reference PUBLIC "-//OASIS//DTD DocBook V4.1//EN" [
+ <!ENTITY % COMMON SYSTEM "common.ent">
+ %COMMON;
+ <!ENTITY % MANPAGES SYSTEM "manpages/manpages-rpm.ent">
+ %MANPAGES;
+]>
+
+<reference>
+<title>git-buildpackage-rpm Manual</title>
+&man.gbp.import.srpm;
+</reference>
diff --git a/docs/man.gbp-pq-rpm.sgml b/docs/man.gbp-pq-rpm.sgml
new file mode 100644
index 00000000..11615085
--- /dev/null
+++ b/docs/man.gbp-pq-rpm.sgml
@@ -0,0 +1,11 @@
+<!DOCTYPE reference PUBLIC "-//OASIS//DTD DocBook V4.1//EN" [
+ <!ENTITY % COMMON SYSTEM "common.ent">
+ %COMMON;
+ <!ENTITY % MANPAGES SYSTEM "manpages/manpages-rpm.ent">
+ %MANPAGES;
+]>
+
+<reference>
+<title>git-buildpackage-rpm Manual</title>
+&man.gbp.pq.rpm;
+</reference>
diff --git a/docs/man.gbp-rpm-ch.sgml b/docs/man.gbp-rpm-ch.sgml
new file mode 100644
index 00000000..63fed8d0
--- /dev/null
+++ b/docs/man.gbp-rpm-ch.sgml
@@ -0,0 +1,11 @@
+<!DOCTYPE reference PUBLIC "-//OASIS//DTD DocBook V4.1//EN" [
+ <!ENTITY % COMMON SYSTEM "common.ent">
+ %COMMON;
+ <!ENTITY % MANPAGES SYSTEM "manpages/manpages-rpm.ent">
+ %MANPAGES;
+]>
+
+<reference>
+<title>git-buildpackage-rpm Manual</title>
+&man.gbp.rpm.ch;
+</reference>
diff --git a/docs/manpages/gbp-buildpackage-rpm.sgml b/docs/manpages/gbp-buildpackage-rpm.sgml
new file mode 100644
index 00000000..b3c9e6c1
--- /dev/null
+++ b/docs/manpages/gbp-buildpackage-rpm.sgml
@@ -0,0 +1,764 @@
+<refentry id="man.gbp.buildpackage.rpm">
+ <refentryinfo>
+ <address>
+ &rpm-email;
+ </address>
+ <author>
+ &rpm-firstname;
+ &rpm-surname;
+ </author>
+ </refentryinfo>
+ <refmeta><refentrytitle>gbp-buildpackage-rpm</refentrytitle>
+ &rpm-mansection;
+ </refmeta>
+ <refnamediv>
+ <refname>git-buildpackage-rpm</refname>
+ <refname>gbp-buildpackage-rpm</refname>
+ <refpurpose>Build RPM packages from a Git repository</refpurpose>
+ </refnamediv>
+ <refsynopsisdiv>
+ <cmdsynopsis>
+ &gbp-buildpackage-rpm;
+ <arg><option>--git-[no-]ignore-new</option></arg>
+ <arg><option>--git-[no-]ignore-untracked</option></arg>
+ <arg><option>--git-tag</option></arg>
+ <arg><option>--git-verbose</option></arg>
+ <arg><option>--git-color=</option><replaceable>[auto|on|off]</replaceable></arg>
+ <arg><option>--git-color-scheme=</option><replaceable>COLOR_SCHEME</replaceable></arg>
+ <arg><option>--git-notify=</option><replaceable>[auto|on|off]</replaceable></arg>
+ <arg><option>--git-tmp-dir</option>=<replaceable>DIRECTORY</replaceable></arg>
+ <arg><option>--git-vendor</option>=<replaceable>VENDOR</replaceable></arg>
+ <arg><option>--git-upstream-branch=</option><replaceable>TREEISH</replaceable></arg>
+ <arg><option>--git-packaging-branch=</option><replaceable>BRANCH_NAME</replaceable></arg>
+ <arg><option>--git-pq-branch=</option><replaceable>BRANCH_NAME</replaceable></arg>
+ <arg><option>--git-ignore-branch</option></arg>
+ <arg><option>--git-[no-]submodules</option></arg>
+ <arg><option>--git-builder=</option><replaceable>BUILD_CMD</replaceable></arg>
+ <arg><option>--git-cleaner=</option><replaceable>CLEAN_CMD</replaceable></arg>
+ <arg><option>--git-[no-]sign-tags</option></arg>
+ <arg><option>--git-keyid=</option><replaceable>GPG-KEYID</replaceable></arg>
+ <arg><option>--git-posttag=</option><replaceable>COMMAND</replaceable></arg>
+ <arg><option>--git-postbuild=</option><replaceable>COMMAND</replaceable></arg>
+ <arg><option>--git-postexport=</option><replaceable>COMMAND</replaceable></arg>
+ <arg><option>--git-prebuild=</option><replaceable>COMMAND</replaceable></arg>
+ <arg><option>--git-[no-]build</option></arg>
+ <arg><option>--git-[no-]hooks</option></arg>
+ <arg><option>--git-packaging-tag=</option><replaceable>TAG-FORMAT</replaceable></arg>
+ <arg><option>--git-upstream-tag=</option><replaceable>TAG-FORMAT</replaceable></arg>
+ <arg><option>--git-force-create</option></arg>
+ <arg><option>--git-no-create-orig</option></arg>
+ <arg><option>--git-upstream-tree=</option><replaceable>[TAG|BRANCH|TREEISH]</replaceable></arg>
+ <arg><option>--git-tarball-dir=</option><replaceable>DIRECTORY</replaceable></arg>
+ <arg><option>--git-compression-level=</option><replaceable>LEVEL</replaceable></arg>
+ <arg><option>--git-orig-prefix=</option><replaceable>PREFIX</replaceable></arg>
+ <arg><option>--git-export-dir=</option><replaceable>DIRECTORY</replaceable></arg>
+ <arg><option>--git-rpmbuild-builddir</option>=<replaceable>DIRECTORY</replaceable></arg>
+ <arg><option>--git-rpmbuild-buidrootdir</option>=<replaceable>DIRECTORY</replaceable></arg>
+ <arg><option>--git-rpmbuild-rpmdir</option>=<replaceable>DIRECTORY</replaceable></arg>
+ <arg><option>--git-rpmbuild-sourcedir</option>=<replaceable>DIRECTORY</replaceable></arg>
+ <arg><option>--git-rpmbuild-specdir</option>=<replaceable>DIRECTORY</replaceable></arg>
+ <arg><option>--git-rpmbuild-srpmdir</option>=<replaceable>DIRECTORY</replaceable></arg>
+ <arg><option>--git-export=</option><replaceable>TREEISH</replaceable></arg>
+ <arg><option>--git-export-only</option></arg>
+ <arg><option>--git-packaging-dir=</option><replaceable>DIRECTORY</replaceable></arg>
+ <arg><option>--git-spec-file=</option><replaceable>FILEPATH</replaceable></arg>
+ <arg><option>--git-[no-]pristine-tar</option></arg>
+ <arg><option>--git-[no-]pristine-tar-commit</option></arg>
+ <arg><option>--git-tag-only</option></arg>
+ <arg><option>--git-retag</option></arg>
+ <arg><option>--git-[no-]patch-export</option></arg>
+ <arg><option>--git-patch-export-rev=</option><replaceable>TREEISH</replaceable></arg>
+ <arg><option>--git-patch-export-compress=</option><replaceable>THRESHOLD</replaceable></arg>
+ <arg><option>--git-patch-export-ignore-path=</option><replaceable>REGEX</replaceable></arg>
+ <arg><option>--git-patch-export-squash-until=</option><replaceable>COMMITISH</replaceable></arg>
+ <arg><option>--git-[no-]patch-numbers</option></arg>
+ <arg><option>--git-spec-vcs-tag</option>=<replaceable>TAG_FORMAT</replaceable></arg>
+ </cmdsynopsis>
+ </refsynopsisdiv>
+ <refsect1>
+ <title>DESCRIPTION</title>
+ <para>
+ &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.
+ </para>
+ <para>
+ &gbp-buildpackage-rpm; will, in order:
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ Verify that it is being executed from the proper location.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Verify that the repository doesn't contain any uncommitted source
+ changes.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Verify that it is being executed from the correct branch.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Export packaging files to a separate build area.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Create an orig source tarball if it doesn't exist.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Call <application>rpmbuild</application>(1) (or the application
+ specified via <option>--git-builder</option>), passing along all
+ command line arguments that don't start with --git-.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ (Optionally) tag the tree after a successful build.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ (Optionally) call a post build hook - e.g. to run
+ <productname>rpmlint</productname>.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ (Optionally) call a post tag hook - e.g. to push the results to a
+ remote repository after creating the tag.
+ </para>
+ </listitem>
+ </itemizedlist>
+ </refsect1>
+ <refsect1>
+ <title>OPTIONS</title>
+ <variablelist>
+ <varlistentry>
+ <term><option>--git-[no-]ignore-new</option>
+ </term>
+ <listitem>
+ <para>
+ Don't abort if there are uncommitted changes in the source tree or
+ the current branch doesn't match the
+ <replaceable>PACKAGING-BRANCH</replaceable>.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><option>--git-[no-]ignore-untracked</option>
+ </term>
+ <listitem>
+ <para>
+ Don't abort if there are untracked files in the source tree.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><option>--git-tag</option>
+ </term>
+ <listitem>
+ <para>
+ Add a git tag after a successful build.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><option>--git-builder=<replaceable>BUILD_CMD</replaceable></option>
+ </term>
+ <listitem>
+ <para>
+ Use <replaceable>BUILD_CMD</replaceable> instead of
+ <command>rpmbuild -ba</command>.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><option>--git-cleaner=<replaceable>CLEAN_CMD</replaceable></option>
+ </term>
+ <listitem>
+ <para>
+ Use <replaceable>CLEAN_CMD</replaceable>.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><option>--git-verbose</option>
+ </term>
+ <listitem>
+ <para>
+ Verbose execution
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><option>--git-color=</option><replaceable>[auto|on|off]</replaceable>
+ </term>
+ <listitem>
+ <para>
+ Whether to use colored output.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><option>--git-color-scheme=</option><replaceable>COLOR_SCHEME</replaceable>
+ </term>
+ <listitem>
+ <para>
+ Colors to use in output (when color is enabled). The format for
+ COLOR_SCHEME is
+ '&lt;debug&gt;:&lt;info&gt;:&lt;warning&gt;:&lt;error&gt;'.
+ 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).
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><option>--git-notify=</option><replaceable>[auto|on|off]</replaceable>
+ </term>
+ <listitem>
+ <para>
+ Whether to send a desktop notification after the build.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><option>--git-tmp-dir</option>=<replaceable>DIRECTORY</replaceable>
+ </term>
+ <listitem>
+ <para>
+ Base directory under which temporary directories are created.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><option>--git-vendor</option>=<replaceable>VENDOR</replaceable>
+ </term>
+ <listitem>
+ <para>
+ Distribution vendor name.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><option>--git-upstream-branch</option>=<replaceable>BRANCH_NAME</replaceable>
+ </term>
+ <listitem>
+ <para>
+ Branch to build the orig tarball from if
+ <option>--git-upstream-tree</option> is set to
+ <replaceable>BRANCH</replaceable>. Default is
+ <replaceable>upstream</replaceable>.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><option>--git-packaging-branch</option>=<replaceable>BRANCH_NAME</replaceable>
+ </term>
+ <listitem>
+ <para>
+ If you're not on this branch when invoking &gbp-buildpackage-rpm; it
+ will fail. Default is <replaceable>master</replaceable>. 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
+ <option>--git-ignore-new</option>.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><option>--git-pq-branch</option>=<replaceable>BRANCH_NAME</replaceable>
+ </term>
+ <listitem>
+ <para>
+ Name (format string) of the patch-queue/development branch. This
+ makes building easier when working with separate packaging and
+ development branches.
+ </para>
+ <para>
+ If <option>--git-patch-export</option> is enabled and
+ &gbp-buildpackage-rpm; detects that the current branch has a
+ patch-queue/development branch it exports the patches from there
+ instead of the tip of the current branch (unless
+ <option>--git-patch-export-rev</option> is defined, of course).
+ Similarly, if the current branch is a patch-queue/development branch
+ &gbp-buildpackage-rpm; will automatically enable patch-export and
+ export packaging files from the packaging branch instead of the
+ current branch (unless <option>--git-export</option>) is defined.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><option>--git-ignore-branch</option>
+ </term>
+ <listitem>
+ <para>
+ Don't check if the current branch matches
+ <replaceable>PACKAGING-BRANCH</replaceable>.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><option>--git-[no-]submodules</option>
+ </term>
+ <listitem>
+ <para>
+ Include git submodules in the orig tarball.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><option>--git-[no-]sign-tags</option>
+ </term>
+ <listitem>
+ <para>
+ GPG sign all created tags.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><option>--git-keyid=</option><replaceable>GPG-KEYID</replaceable>
+ </term>
+ <listitem>
+ <para>
+ Use this keyid for gpg signing tags.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><option>--git-posttag=</option><replaceable>COMMAND</replaceable>
+ </term>
+ <listitem>
+ <para>
+ Excecute <replaceable>COMMAND</replaceable> after tagging a new
+ version.
+ </para>
+ <para>
+ Exported environment variables are: <envar>GBP_TAG</envar> (the name
+ of the generated tag), <envar>GBP_BRANCH</envar> (the branch the
+ package was build from) and <envar>GBP_SHA1</envar> (the sha1 of the
+ commit the tag was created at).
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><option>--git-postbuild=</option><replaceable>COMMAND</replaceable>
+ </term>
+ <listitem>
+ <para>
+ Execute <replaceable>COMMAND</replaceable> after successful
+ build.
+ </para>
+ <para>
+ Exported environment variables are: <envar>GBP_CHANGES_FILE</envar>
+ (the name of the generated changes file),
+ <envar>GBP_BUILD_DIR</envar> (the build dir).
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><option>--git-postexport=</option><replaceable>COMMAND</replaceable>
+ </term>
+ <listitem>
+ <para>
+ Execute <replaceable>COMMAND</replaceable> after exporting the source
+ tree.
+ </para>
+ <para>
+ Exported environment variables are: <envar>GBP_GIT_DIR</envar> (the
+ repository the package is being built from),
+ <envar>GBP_TMP_DIR</envar> (the temporary directory where the sources
+ have been initially exported).
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><option>--git-prebuild=</option><replaceable>COMMAND</replaceable>
+ </term>
+ <listitem>
+ <para>
+ Execute <replaceable>COMMAND</replaceable> from the build directory
+ before calling <application>rpmbuild</application> or the application
+ specified via <option>--git-builder</option>.
+ </para>
+ <para>
+ Exported environment variables are: <envar>GBP_GIT_DIR</envar> (the
+ repository the package is being built from),
+ <envar>GBP_BUILD_DIR</envar> (the build dir).
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><option>--git-[no-]build</option>
+ </term>
+ <listitem>
+ <para>
+ Enable builder. Note: <option>--git-no-build</option> causes the
+ postbuild hook to be disabled, too.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><option>--git-[no-]hooks</option>
+ </term>
+ <listitem>
+ <para>
+ Enable running all (cleaner, postexport, prebuild, postbuild, and
+ posttag) hooks. Note: the <option>--git-builder</option> command is
+ not affected by this option.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><option>--git-packaging-tag=</option><replaceable>TAG-FORMAT</replaceable>
+ </term>
+ <listitem>
+ <para>
+ Use this tag format when tagging released versions of the package.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><option>--git-upstream-tag=</option><replaceable>TAG-FORMAT</replaceable>
+ </term>
+ <listitem>
+ <para>
+ Use this tag format when looking for tags of upstream versions,
+ default is <replaceable>upstream/%(version)s</replaceable>.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><option>--git-force-create</option>
+ </term>
+ <listitem>
+ <para>
+ Force creation of an orig tarball (overwriting a pre-existing one if
+ present).
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><option>--git-no-create-orig</option>
+ </term>
+ <listitem>
+ <para>
+ Don't try to create any orig tarball.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><option>--git-export-dir=</option><replaceable>DIRECTORY</replaceable>
+ </term>
+ <listitem>
+ <para>
+ Export the packaging files from the current branch head (or the
+ treeish object given via <option>--git-export</option> to
+ <replaceable>DIRECTORY</replaceable> before building.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><option>--git-rpmbuild-builddir</option>=<replaceable>DIRECTORY</replaceable>
+ </term>
+ <term><option>--git-rpmbuild-buildrootdir</option>=<replaceable>DIRECTORY</replaceable>
+ </term>
+ <term><option>--git-rpmbuild-rpmdir</option>=<replaceable>DIRECTORY</replaceable>
+ </term>
+ <term><option>--git-rpmbuild-sourcedir</option>=<replaceable>DIRECTORY</replaceable>
+ </term>
+ <term><option>--git-rpmbuild-specdir</option>=<replaceable>DIRECTORY</replaceable>
+ </term>
+ <term><option>--git-rpmbuild-srpmdir</option>=<replaceable>DIRECTORY</replaceable>
+ </term>
+ <listitem>
+ <para>
+ Build subdirectory options for rpmbuild builder. Of these
+ <option>--git-rpmbuild-sourcedir</option> and
+ <option>--git-rpmbuild-specdir</option> also affects where
+ &gbp-buildpackage-rpm; exports the packaging files under the export
+ directory.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><option>--git-export=</option><replaceable>TREEISH</replaceable>
+ </term>
+ <listitem>
+ <para>
+ Instead of exporting the current branch head, export the treeish
+ object <replaceable>TREEISH</replaceable>. The special name
+ <replaceable>INDEX</replaceable> exports the current index,
+ <replaceable>WC.TRACKED</replaceable> exports all files tracked by
+ Git in the current working copy as is,
+ <replaceable>WC.UNTRACKED</replaceable> exports all untracked files
+ too whereas <replaceable>WC</replaceable> (or
+ <replaceable>WC.IGNORED</replaceable>) exports all files in the
+ current working directory, even ignored files.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><option>--git-export-only</option>
+ </term>
+ <listitem>
+ <para>
+ Only export packaging files without running builder.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><option>--git-packaging-dir=</option><replaceable>DIRECTORY</replaceable>
+ </term>
+ <listitem>
+ <para>
+ Subdirectory that contains the RPM packaging files.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><option>--git-spec-file=</option><replaceable>FILEPATH</replaceable>
+ </term>
+ <listitem>
+ <para>
+ Relative path to the spec file to use. Special value
+ <replaceable>auto</replaceable> causes &gbp-buildpackage-rpm; to
+ search and guess. Other values cause the
+ <option>--git-packaging-dir</option> option to be ignored: the
+ directory of the spec file is used, instead.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><option>--git-upstream-tree=</option><replaceable>[TAG|BRANCH|TREEISH]</replaceable>
+ </term>
+ <listitem>
+ <para>
+ How to find the upstream sources used to generate the tarball.
+ <replaceable>TAG</replaceable> looks at a tag corresponding to the
+ version in the changelog. <replaceable>BRANCH</replaceable> looks at
+ the upstream branch given via the
+ <option>--git-upstream-branch</option> option. Other values are
+ interpreted as treeishs.
+ </para>
+ <para>
+ This doesn't have any effect if <option>--git-pristine-tar</option>
+ is being used.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><option>--git-tarball-dir=</option><replaceable>DIRECTORY</replaceable>
+ </term>
+ <listitem>
+ <para>
+ Search for original tarballs in <replaceable>DIRECTORY</replaceable>
+ instead of generating them.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><option>--git-compression-level=</option><replaceable>LEVEL</replaceable>
+ </term>
+ <listitem>
+ <para>
+ Specifies the upstream tarball compression level if an upstream
+ tarball needs to be built.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><option>--git-orig-prefix=</option><replaceable>PREFIX</replaceable>
+ </term>
+ <listitem>
+ <para>
+ Prefix (directory) to be used when generating tarballs. Special value
+ <replaceable>auto</replaceable> causes &gbp-buildpackage-rpm; to
+ guess the prefix.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><option>--git-tag-only</option>
+ </term>
+ <listitem>
+ <para>
+ Don't build, only tag and run post-tag hooks.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><option>--git-retag</option>
+ </term>
+ <listitem>
+ <para>
+ Don't fail tag operations if a tag with the same version already
+ exists, but, overwrite the existing tag, instead.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><option>--git-pristine-tar</option>
+ </term>
+ <listitem>
+ <para>
+ Use pristine-tar when generating the upstream tarball if it doesn't
+ exist.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><option>--git-pristine-tar-commit</option>
+ </term>
+ <listitem>
+ <para>
+ 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.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><option>--git-[no-]patch-export</option>
+ </term>
+ <listitem>
+ <para>
+ Create patches from the commits between the upstream version and
+ export-treeish. That is, after exporting packaging files (from the
+ pacakging directory) &gbp-buildpackage-rpm; creates one patch per
+ commit (similar to git-format-patch) and updates the spec file in the
+ export dir. You use <option>--git-patch-export-rev</option> to
+ specify the tip commit of the patch series.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><option>--git-patch-export-rev=</option><replaceable>TREEISH</replaceable>
+ </term>
+ <listitem>
+ <para>
+ Use <replaceable>TREEISH</replaceable> as the tip commit of the patch
+ series instead of the default - i.e. treeish from which the packaging
+ files are exported (which is defined with
+ <option>--git-export</option>.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><option>--git-patch-export-compress=</option><replaceable>THRESHOLD</replaceable>
+ </term>
+ <listitem>
+ <para>
+ Compress (auto-generated) patches larger than given
+ <replaceable>THRESHOLD</replaceable> bytes. Special value 0 disabled
+ patch compression.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><option>--git-patch-export-ignore-path=</option><replaceable>REGEX</replaceable>
+ </term>
+ <listitem>
+ <para>
+ Exclude changes to path(s) matching <replaceable>REGEX</replaceable>
+ in patch generation.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><option>--git-patch-export-squash-until=</option><replaceable>COMMITISH</replaceable>
+ </term>
+ <listitem>
+ <para>
+ Squash commits up to the given <replaceable>COMMITISH</replaceable>
+ into one monolitic diff. Could be used if one wants to squash commits
+ from an upstream release up to a stable update into a single diff
+ (commits on top of the stable would generate one patch per commit as
+ usual). The format is '&lt;commit_ish&gt;[:&lt;filename_base&gt;]',
+ i.e. commitish optionally followed by a colon and the desired
+ filename base for the diff (suffix '.diff' is automatically added by
+ &gbp-buildpackage-rpm;). Magic word 'HEAD' translates to the
+ patch-export-treeish when given as the squash-point. This allows one
+ to configure gbp to always squash all commits into one monolithic
+ diff.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><option>--git-[no-]patch-numbers</option>
+ </term>
+ <listitem>
+ <para>
+ Whether the patch files should start with a number or not.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><option>--git-spec-vcs-tag</option>=<replaceable>TAG_FORMAT</replaceable>
+ </term>
+ <listitem>
+ <para>
+ &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.
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsect1>
+ <refsect1>
+ <title>EXAMPLES</title>
+ <para>
+ Only build a source RPM with &rpmbuild;
+ </para>
+ <screen>
+ &gbp-buildpackage-rpm; -bs
+ </screen>
+ <para>
+ Build an RPM package with &rpmbuild; on a custom branch with the uncommitted
+ changes included.
+ </para>
+ <screen>
+ &gbp-buildpackage-rpm; --git-ignore-branch --git-export=WC.UNTRACKED
+ </screen>
+ </refsect1>
+ <refsect1>
+ &man.gbp.config-files;
+ <para>
+ All options in the config files are specified without the 'git-' prefix.
+ </para>
+ </refsect1>
+ <refsect1>
+ <title>SEE ALSO</title>
+ <para>
+ <xref linkend="man.gbp.import.srpm">,
+ <xref linkend="man.gbp.import.orig.rpm">,
+ <xref linkend="man.gbp.rpm.ch">,
+ <xref linkend="man.gbp.pq.rpm">,
+ <citerefentry>
+ <refentrytitle>rpmbuild</refentrytitle>
+ <manvolnum>8</manvolnum>
+ </citerefentry>,
+ <xref linkend="man.gbp.conf">,
+ &man.seealso.common;
+ </para>
+ </refsect1>
+ <refsect1>
+ <title>AUTHOR</title>
+ <para>
+ &rpm-username; &rpm-email;
+ </para>
+ </refsect1>
+</refentry>
diff --git a/docs/manpages/gbp-import-orig-rpm.sgml b/docs/manpages/gbp-import-orig-rpm.sgml
new file mode 100644
index 00000000..8e2635be
--- /dev/null
+++ b/docs/manpages/gbp-import-orig-rpm.sgml
@@ -0,0 +1,324 @@
+<refentry id="man.gbp.import.orig.rpm">
+ <refentryinfo>
+ <address>
+ &rpm-email;
+ </address>
+ <author>
+ &rpm-firstname;
+ &rpm-surname;
+ </author>
+ </refentryinfo>
+ <refmeta>
+ <refentrytitle>gbp-import-orig-rpm</refentrytitle>
+ &rpm-mansection;
+ </refmeta>
+ <refnamediv>
+ <refname>git-import-orig-rpm</refname>
+ <refname>gbp-import-orig-rpm</refname>
+ <refpurpose>Import an upstream source into a git repository.</refpurpose>
+ </refnamediv>
+ <refsynopsisdiv>
+ <cmdsynopsis>
+ &gbp-import-orig-rpm;
+
+ &man.common.options.synopsis;
+ <arg><option>--vendor</option>=<replaceable>VENDOR</replaceable></arg>
+ <arg><option>--upstream-version=</option><replaceable>VERSION</replaceable></arg>
+ <arg><option>--[no-]merge</option></arg>
+ <arg><option>--upstream-branch=</option><replaceable>BRANCH-NAME</replaceable></arg>
+ <arg><option>--packaging-branch=</option><replaceable>BRANCH-NAME</replaceable></arg>
+ <arg><option>--packaging-dir=</option><replaceable>DIRECTORY</replaceable></arg>
+ <arg><option>--[no-]create-missing-branches</option></arg>
+ <arg><option>--upstream-vcs-tag=</option><replaceable>TAG-NAME</replaceable></arg>
+ <arg><option>--[no-]sign-tags</option></arg>
+ <arg><option>--keyid=</option><replaceable>GPG-KEYID</replaceable></arg>
+ <arg><option>--upstream-tag=</option><replaceable>TAG-FORMAT</replaceable></arg>
+ <arg><option>--filter=</option><replaceable>PATTERN</replaceable></arg>
+ <arg><option>--[no-]pristine-tar</option></arg>
+ <arg><option>--[no-]filter-pristine-tar</option></arg>
+ <arg><option>--pristine-tarball-name=<replaceable>FILENAME</replaceable></option></arg>
+ <arg><option>--orig-prefix=<replaceable>PREFIX</replaceable></option></arg>
+ <arg><option>--postimport=<replaceable>CMD</replaceable></option></arg>
+ <arg><option>--[no-]interactive</option></arg>
+ <group choice="plain">
+ <arg choice="plain"><replaceable>UPSTREAM-SOURCE</replaceable></arg>
+ </group>
+ </cmdsynopsis>
+ </refsynopsisdiv>
+ <refsect1>
+ <title>DESCRIPTION</title>
+ <para>
+ &gbp-import-orig-rpm; is an basically identical to the &gbp-import-orig;
+ tool, with only some rpm-specific functionality added and some
+ Debian-specific functionality removed.
+ </para>
+ <para>
+ &gbp-import-orig-rpm; imports <replaceable>UPSTREAM-SOURCE</replaceable>
+ into the &git; repository. <replaceable>UPSTREAM-SOURCE</replaceable> can
+ either be a gzip, bzip2, lzma or xz compressed tar archive, a zip archive
+ or an already unpacked source tree. If it is already of the form
+ <replaceable>package-name-version.tar.gz</replaceable>, the version
+ information is read from the tarball's filename otherwise it can be given
+ on the command line via <option>--upstream-version</option>. If the source
+ package name or version can't be determined &gbp-import-orig-rpm; will
+ prompt for it unless <option>--no-interactive</option> is given.
+ </para>
+ <para>
+ &gbp-import-orig-rpm; tries to download the archive from a remote server if
+ a remote URL is given. In addition, if no
+ <replaceable>UPSTREAM-SOURCE</replaceable> is given &gbp-import-orig-rpm;
+ takes the archive URI from the spec file - this makes it possible to import
+ a new upstream version just by bumping the version number in the spec file
+ and running &gbp-import-orig-rpm; (assuming that the spec file contains
+ a full URL for the archive and its filename automatically follows the
+ package version e.g. by using the %{version} macro, of course).
+ </para>
+ <para>
+ The sources are placed on the upstream branch (default:
+ <replaceable>upstream</replaceable>) and tagged.
+ </para>
+ </refsect1>
+ <refsect1>
+ <title>OPTIONS</title>
+ <variablelist>
+ &man.common.options.description;
+
+ <varlistentry>
+ <term><option>--vendor</option>=<replaceable>VENDOR</replaceable>
+ </term>
+ <listitem>
+ <para>
+ Distribution vendor name.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><option>--upstream-version</option>=<replaceable>VERSION</replaceable></term>
+ <term><option>-u</option><replaceable>VERSION</replaceable></term>
+ <listitem>
+ <para>
+ The upstream version number.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><option>--merge</option></term>
+ <listitem>
+ <para>
+ Merge the upstream branch to the packaging branch after import.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><option>--upstream-branch</option>=<replaceable>BRANCH-NAME</replaceable>
+ </term>
+ <listitem>
+ <para>
+ The branch in the Git repository the upstream sources are put
+ onto. Default is <replaceable>upstream</replaceable>.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><option>--packaging-branch</option>=<replaceable>BRANCH-NAME</replaceable>
+ </term>
+ <listitem>
+ <para>
+ The branch in the Git repository the package is being developed on,
+ default is <replaceable>master</replaceable>. After importing the new
+ sources on the upstream branch, &gbp-import-orig-rpm; will try to
+ merge the new version onto this branch.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><option>--packaging-dir=</option><replaceable>DIRECTORY</replaceable>
+ </term>
+ <listitem>
+ <para>
+ Subdirectory that contains the RPM packaging files.
+ &gbp-import-orig-rpm; uses this to try to find a spec file which, in
+ turn, is used to get the upstream source archive URI if one is not
+ specified on the command line.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><option>--[no-]create-missing-branches</option>
+ </term>
+ <listitem>
+ <para>
+ Create missing upstream branch if it does not exist.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><option>--upstream-vcs-tag</option>=<replaceable>TAG-NAME</replaceable>
+ </term>
+ <listitem>
+ <para>
+ Add <replaceable>TAG-NAME</replaceable> as additional parent to the
+ commit of the upstream tarball. Useful when upstream uses git and you
+ want to link to it's revision history.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><option>--[no-]sign-tags</option>
+ </term>
+ <listitem>
+ <para>
+ GPG sign all created tags.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><option>--keyid=</option><replaceable>GPG-KEYID</replaceable>
+ </term>
+ <listitem>
+ <para>
+ Use this keyid for gpg signing tags.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><option>--upstream-tag=</option><replaceable>TAG-FORMAT</replaceable>
+ </term>
+ <listitem>
+ <para>
+ Use this tag format when tagging upstream versions,
+ default is <replaceable>upstream/%(version)s</replaceable>.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><option>--import-msg=</option><replaceable>MSG-FORMAT</replaceable>
+ </term>
+ <listitem>
+ <para>
+ Use this format string for the commit message when importing upstream
+ versions, default is
+ <replaceable>Imported Upstream version %(version)s</replaceable>.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><option>--filter=</option><replaceable>PATTERN</replaceable>
+ </term>
+ <listitem>
+ <para>
+ Filter out files glob-matching pattern. Can be given multiple times.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><option>--[no-]pristine-tar</option>
+ </term>
+ <listitem>
+ <para>
+ Generate <command>pristine-tar</command> delta file.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><option>--[no-]filter-pristine-tar</option>
+ </term>
+ <listitem>
+ <para>
+ If using a filter also filter the files out of the tarball
+ passed to <command>pristine-tar</command>.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><option>--pristine-tarball-name=</option><replaceable>FILENAME</replaceable>
+ </term>
+ <listitem>
+ <para>
+ Filename to record to pristine-tar. This does not alter the tarball
+ content, just the filename with which the tarball can be checked out
+ with pristine-tar.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><option>--orig-prefix=</option><replaceable>PREFIX</replaceable>
+ </term>
+ <listitem>
+ <para>
+ Prefix (directory) to be used when importing sources into
+ pristine-tar. Only takes effect when <option>--pristine-tar</option>
+ is used. Special value <replaceable>auto</replaceable> causes &gbp-import-orig-rpm; to guess
+ the prefix when importing unpacked sources, or, not to change the
+ prefix when importing source archives.
+ </para>
+ <note>
+ <para>
+ Using this option will alter the source archive that is imported to
+ pristine-tar! That is, pristine-tar does not produce and identical
+ copy of the original tarball (but the mangled tarball, instead).
+ </para>
+ </note>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><option>--postimport=<replaceable>CMD</replaceable></option></term>
+ <listitem>
+ <para>
+ Run <replaceable>CMD</replaceable> after the import.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><option>--[no-]interactive</option></term>
+ <listitem>
+ <para>
+ Run command interactively, i.e. ask package name and version if
+ needed.
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsect1>
+ <refsect1>
+ <title>EXAMPLES</title>
+ <para>
+ Download and import a new upstream version using the informantion from the
+ spec file
+ </para>
+ <screen>
+ &gbp-import-orig-rpm;
+ </screen>
+ <para>
+ After manually downloading an upstream import it
+ </para>
+ <screen>
+ &gbp-import-orig-rpm; ../upstream-tarball-0.1.tar.gz
+ </screen>
+ <para>
+ Import unpacked sources
+ </para>
+ <screen>
+ &gbp-import-orig-rpm; --orig-prefix=upstream-0.1 ../upstream/
+ </screen>
+ </refsect1>
+ <refsect1>
+ &man.gbp.config-files;
+ </refsect1>
+ <refsect1>
+ <title>SEE ALSO</title>
+ <para>
+ <xref linkend="man.gbp.buildpackage">,
+ <xref linkend="man.gbp.import.srpm">,
+ <xref linkend="man.gbp.rpm.ch">,
+ <xref linkend="man.gbp.conf">,
+ &man.seealso.common;
+ </para>
+ </refsect1>
+ <refsect1>
+ <title>AUTHOR</title>
+ <para>
+ &rpm-username; &rpm-email;
+ </para>
+ </refsect1>
+</refentry>
diff --git a/docs/manpages/gbp-import-srpm.sgml b/docs/manpages/gbp-import-srpm.sgml
new file mode 100644
index 00000000..91f6c0a5
--- /dev/null
+++ b/docs/manpages/gbp-import-srpm.sgml
@@ -0,0 +1,262 @@
+<refentry id="man.gbp.import.srpm">
+ <refentryinfo>
+ <address>
+ &rpm-email;
+ </address>
+ <author>
+ &rpm-firstname;
+ &rpm-surname;
+ </author>
+ </refentryinfo>
+ <refmeta>
+ <refentrytitle>gbp-import-srpm</refentrytitle>
+ &rpm-mansection;
+ </refmeta>
+ <refnamediv>
+ <refname>git-import-srpm</refname>
+ <refname>gbp-import-srpm</refname>
+ <refpurpose>Import source RPM packages into a Git repository</refpurpose>
+ </refnamediv>
+ <refsynopsisdiv>
+ <cmdsynopsis>
+ &gbp-import-srpm;
+ &man.common.options.synopsis;
+ <arg><option>--vendor</option>=<replaceable>VENDOR</replaceable></arg>
+ <arg><option>--allow-same-versions</option></arg>
+ <arg><option>--author-is-committer</option></arg>
+ <arg><option>--packaging-branch=</option><replaceable>BRANCH-NAME</replaceable></arg>
+ <arg><option>--packaging-tag=</option><replaceable>TAG-FORMAT</replaceable></arg>
+ <arg><option>--download</option></arg>
+ <arg><option>--packaging-dir=</option><replaceable>DIRECTORY</replaceable></arg>
+ <arg><option>--[no-]patch-import</option></arg>
+ <arg><option>--filter=</option><replaceable>PATTERN</replaceable></arg>
+ <arg><option>--keyid=</option><replaceable>GPG-KEYID</replaceable></arg>
+ <arg><option>--[no-]create-missing-branches</option></arg>
+ <arg><option>--[no-]pristine-tar</option></arg>
+ <arg><option>--[no-]sign-tags</option></arg>
+ <arg><option>--upstream-branch=</option><replaceable>BRANCH-NAME</replaceable></arg>
+ <arg><option>--upstream-tag=</option><replaceable>TAG-FORMAT</replaceable></arg>
+ <arg><option>--native</option></arg>
+ <arg choice="plain"><replaceable>SRPM</replaceable></arg>
+ </cmdsynopsis>
+ <cmdsynopsis>
+ &gbp-import-srpm;
+ <arg><option>options</option></arg>
+ <arg choice="req"><option>--download</option></arg>
+ <group choice="plain">
+ <arg><replaceable>URL</replaceable></arg>
+ <arg><replaceable>SRC.RPM</replaceable></arg>
+ <arg><replaceable>DIRECTORY</replaceable></arg>
+ </group>
+ </cmdsynopsis>
+ </refsynopsisdiv>
+ <refsect1>
+ <title>DESCRIPTION</title>
+ <para>
+ &gbp-import-srpm; imports an RPM source package into a &git; repository,
+ notes the package version in the commit logs, and commits the change. All
+ information, including package name, version and upstream source is
+ automatically detected from the source package. The tool supports importing
+ both archived (src.rpm files) or unpacked (directory) source RPMs.
+ </para>
+ </refsect1>
+ <refsect1>
+ <title>OPTIONS</title>
+ <variablelist>
+ &man.common.options.description;
+
+ <varlistentry>
+ <term><option>--vendor</option>=<replaceable>VENDOR</replaceable>
+ </term>
+ <listitem>
+ <para>
+ Distribution vendor name.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><option>--upstream-branch</option>=<replaceable>BRANCH-NAME</replaceable>
+ </term>
+ <listitem>
+ <para>
+ The branch in the &git; repository the upstream sources are put
+ onto. Default is <replaceable>upstream</replaceable>.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><option>--packaging-branch</option>=<replaceable>BRANCH-NAME</replaceable>
+ </term>
+ <listitem>
+ <para>
+ The branch in the &git; repository the packaging files are put
+ onto. Default is <replaceable>master</replaceable>.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><option>--[no-]sign-tags</option>
+ </term>
+ <listitem>
+ <para>
+ GPG sign all created tags.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><option>--keyid=</option><replaceable>GPG-KEYID</replaceable>
+ </term>
+ <listitem>
+ <para>
+ Use this keyid for gpg signing tags.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><option>--packaging-tag=</option><replaceable>TAG-FORMAT</replaceable>
+ </term>
+ <listitem>
+ <para>
+ Use this tag format when tagging released versions,
+ default is <replaceable>%(vendor)s/%(version)s</replaceable>.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><option>--upstream-tag=</option><replaceable>TAG-FORMAT</replaceable>
+ </term>
+ <listitem>
+ <para>
+ Use this tag format when tagging upstream versions,
+ default is <replaceable>upstream/%(version)s</replaceable>.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><option>--git-packaging-dir=</option><replaceable>DIRECTORY</replaceable>
+ </term>
+ <listitem>
+ <para>
+ Subdirectory where to put the RPM packaging files.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><option>--[no-]patch-import</option>
+ </term>
+ <listitem>
+ <para>
+ Import patches to the packaging branch. That is, apply and commit all
+ patches (that are not marked for manual maintenance) into the
+ packaging branch after importing other packaging files. The patch
+ files are automatically removed from the packaging directory and the
+ spec file if all patches are successufully applied. This option is
+ ignored if <option>--orphan-packaging</option> is used.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><option>--filter=</option><replaceable>PATTERN</replaceable>
+ </term>
+ <listitem>
+ <para>
+ Filter out files glob-matching pattern. Can be given multiple times.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><option>--pristine-tar</option>
+ </term>
+ <listitem>
+ <para>
+ Generate pristine-tar delta file.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><option>--download</option>
+ </term>
+ <listitem>
+ <para>
+ Download the source package instead of looking for it in the local
+ file system. The argument can either be a plain package name or an
+ URI. The former uses <command>yumdownloader</command> to download the
+ source while the later uses &wget;.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><option>--allow-same-version</option>
+ </term>
+ <listitem>
+ <para>
+ Allow to re-import a package with an already existing version. This
+ will not re-import the upstream sources - only packaging files will
+ be re-imported.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><option>--author-is-committer</option>
+ </term>
+ <listitem>
+ <para>
+ Use the author identity as the comitter when importing upstream
+ sources and packaging files.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><option>--[no-]create-missing-branches</option>
+ </term>
+ <listitem>
+ <para>
+ Create missing upstream and/or packaging branch if missing.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><option>--orphan-packaging</option>
+ </term>
+ <listitem>
+ <para>
+ Import packaging files into an orphan branch that will not be based
+ on the upstream branch. Useful if you want to maintain (non-native)
+ package using the 'orphan-packaging' model. This option have no
+ effect if <option>--native</option> is used.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><option>--native</option>
+ </term>
+ <listitem>
+ <para>
+ Treat the package as native package. No separate upstream branch or
+ upstream tags will be created.
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsect1>
+ <refsect1>
+ &man.gbp.config-files;
+ </refsect1>
+ <refsect1>
+ <title>SEE ALSO</title>
+
+ <para>
+ <xref linkend="man.gbp.buildpackage.rpm">,
+ <xref linkend="man.gbp.import.orig.rpm">,
+ <xref linkend="man.gbp.rpm.ch">,
+ <xref linkend="man.gbp.conf">,
+ &man.seealso.common;
+ </para>
+ </refsect1>
+ <refsect1>
+ <title>AUTHOR</title>
+ <para>
+ &rpm-username; &rpm-email;
+ </para>
+ </refsect1>
+</refentry>
diff --git a/docs/manpages/gbp-pq-rpm.sgml b/docs/manpages/gbp-pq-rpm.sgml
new file mode 100644
index 00000000..30616635
--- /dev/null
+++ b/docs/manpages/gbp-pq-rpm.sgml
@@ -0,0 +1,399 @@
+<refentry id="man.gbp.pq.rpm">
+ <refentryinfo>
+ <address>
+ &rpm-email;
+ </address>
+ <author>
+ &rpm-firstname;
+ &rpm-surname;
+ </author>
+ </refentryinfo>
+ <refmeta>
+ <refentrytitle>gbp-pq-rpm</refentrytitle>
+ &rpm-mansection;
+ </refmeta>
+ <refnamediv>
+ <refname>gbp-pq-rpm</refname>
+ <refpurpose>Manage patches and development branches in Git</refpurpose>
+ </refnamediv>
+ <refsynopsisdiv>
+ <cmdsynopsis>
+ &gbp-pq-rpm;
+ &man.common.options.synopsis;
+ <arg><option>--vendor</option>=<replaceable>VENDOR</replaceable></arg>
+ <arg><option>--packaging-branch=</option><replaceable>BRANCH-NAME</replaceable></arg>
+ <arg><option>--pq-branch=</option><replaceable>BRANCH-NAME</replaceable></arg>
+ <arg><option>--packaging-dir=</option><replaceable>DIRECTORY</replaceable></arg>
+ <arg><option>--spec-file=</option><replaceable>FILEPATH</replaceable></arg>
+ <arg><option>--upstream-tag=</option><replaceable>TAG-FORMAT</replaceable></arg>
+ <arg><option>--force</option></arg>
+ <arg><option>--import-files=</option><replaceable>FILES</replaceable></arg>
+ <arg><option>--export-rev=</option><replaceable>TREEISH</replaceable></arg>
+ <arg><option>--patch-export-compress=</option><replaceable>THRESHOLD</replaceable></arg>
+ <arg><option>--patch-export-ignore-path=</option><replaceable>REGEX</replaceable></arg>
+ <arg><option>--patch-export-squash-until=</option><replaceable>COMMITISH</replaceable></arg>
+ <arg><option>--[no-]patch-numbers</option></arg>
+ <arg><option>--new-packaging-dir=</option><replaceable>DIRECTORY</replaceable></arg>
+ <arg><option>--retain-history</option></arg>
+ <group choice="plain">
+ <arg><option>drop</option></arg>
+ <arg><option>export</option></arg>
+ <arg><option>import</option></arg>
+ <arg><option>rebase</option></arg>
+ <arg><option>switch</option></arg>
+ <arg><option>convert</option></arg>
+ </group>
+ </cmdsynopsis>
+ </refsynopsisdiv>
+ <refsect1>
+ <title>DESCRIPTION</title>
+ <para>
+ &gbp-pq-rpm; helps in managing patches and development branch(es) for
+ packages that are maintained with &gbp;. It designed to be used for
+ packages that are maintained using the "orphan-packaging" model.
+ &gbp-pq-rpm; has multiple subcommands, or actions, for working with the
+ branches and patches.
+ </para>
+ <para>
+ &gbp-pq-rpm; makes it easy to do source code development on a separate
+ development branch (patch-queue branch in Debian git-buildpackage terms).
+ For example, if the packaging files would be stored in
+ <replaceable>master</replaceable> the associated development branch would
+ be <replaceable>development/master</replaceable>.
+ </para>
+ </refsect1>
+ <refsect1>
+ <title>ACTIONS</title>
+ <variablelist>
+ <varlistentry>
+ <term><option>import</option>
+ </term>
+ <listitem>
+ <para>
+ Create a development (patch-queue) branch by applying all patches
+ from the packaging branch on top of the upstream version. The patches
+ must apply without fuzz.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><option>export</option>
+ </term>
+ <listitem>
+ <para>
+ Export patches from the development branch into the packaging branch.
+ It generates patches (one-per-commit) from the development branch and
+ updates the spec file accordingly. It doesn't automatically commit
+ the changes though - they need to verified and committed manually.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><option>rebase</option>
+ </term>
+ <listitem>
+ <para>
+ Switch to the development branch and rebase it against the current
+ upstream version (indicated in the spec file of the associated
+ packaging branch).
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><option>drop</option>
+ </term>
+ <listitem>
+ <para>
+ Drop (delete) the development branch associated to the current
+ branch. For example, you're on branch <replaceable>foo</replaceable>
+ this would drop branch <replaceable>development/foo</replaceable>.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><option>apply</option>
+ </term>
+ <listitem>
+ <para>
+ Add a single patch to the development branch - similar to using
+ <command>git-am</command>.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><option>switch</option>
+ </term>
+ <listitem>
+ <para>
+ Switch between the development branch and the associated packaging
+ branch.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><option>convert</option>
+ </term>
+ <listitem>
+ <para>
+ Convert a package from the "joint-packaging" maintenance model and
+ git-layout to the "orphan-packaging" model. It takes the content of
+ the packaging directory, auto-generates patches and puts these into a
+ new orphan packaging branch. You can use the
+ <option>--retain-history</option> to try to preserve as much of the
+ git history as possible. Converting is a one-time action - conversion
+ back to the "joint-packaging" model is not supported (yet).
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsect1>
+ <refsect1>
+ <title>OPTIONS</title>
+ <variablelist>
+ &man.common.options.description;
+
+ <varlistentry>
+ <term><option>--vendor</option>=<replaceable>VENDOR</replaceable>
+ </term>
+ <listitem>
+ <para>
+ Distribution vendor name.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><option>--packaging-branch</option>=<replaceable>BRANCH-NAME</replaceable>
+ </term>
+ <listitem>
+ <para>
+ Branch the packaging files are being maintained on. Only relevant if
+ a invariable/single development (pq-branch) is defined with
+ <option>--pq-branch</option>, in which case this is used as the
+ "base" branch.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><option>--pq-branch</option>=<replaceable>BRANCH_NAME</replaceable>
+ </term>
+ <listitem>
+ <para>
+ Name (format string) of the development (patch-queue) branch. The
+ following string fields are accepted: "%(branch)s" (the base branch,
+ i.e. the packaging branch that the development branch is associated
+ to), "%(upstreamversion)s" (the upstream version), "%(release)s" (the
+ rpm patchlevel, i.e. Release), "%(version)s" (full rpm package
+ version).
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><option>--packaging-dir=</option><replaceable>DIRECTORY</replaceable>
+ </term>
+ <listitem>
+ <para>
+ Subdirectory that contains the RPM packaging files.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><option>--spec-file=</option><replaceable>FILEPATH</replaceable>
+ </term>
+ <listitem>
+ <para>
+ Relative path to the spec file to use. Special value
+ <replaceable>auto</replaceable> causes &gbp; to search and guess.
+ Other values cause the <option>--packaging-dir</option> option to be
+ ignored: the directory of the spec file is used, instead.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><option>--upstream-tag=</option><replaceable>TAG-FORMAT</replaceable>
+ </term>
+ <listitem>
+ <para>
+ Use this tag format when looking for tags of upstream versions,
+ default is <replaceable>upstream/%(version)s</replaceable>.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><option>--force</option></term>
+ <listitem>
+ <para>
+ Import even if the development (patch-queue) branch already exists.
+ Only valid for the import action.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><option>--import-files=</option><replaceable>FILES</replaceable>
+ </term>
+ <listitem>
+ <para>
+ Comma-separated list of additional file(s) to import from packaging
+ branch. These will appear as one monolithic patch in the development
+ (patch-queue) branch. By default, the local gbp conf files are
+ imported in order to try to ensure that gbp sees the same settings on
+ the development (pq) branch as on the packaging branch.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><option>--export-rev=</option><replaceable>TREEISH</replaceable>
+ </term>
+ <listitem>
+ <para>
+ Export patches from <replaceable>TREEISH</replaceable> instead of the
+ default which is HEAD of the development (patch-queue) branch.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><option>--patch-export-compress=</option><replaceable>THRESHOLD</replaceable>
+ </term>
+ <listitem>
+ <para>
+ Compress patches larger than given
+ <replaceable>THRESHOLD</replaceable> bytes. Special value 0 disabled
+ patch compression.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><option>--patch-export-ignore-path=</option><replaceable>REGEX</replaceable>
+ </term>
+ <listitem>
+ <para>
+ Exclude changes to path(s) matching <replaceable>REGEX</replaceable>
+ in patch generation.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><option>--patch-export-squash-until=</option><replaceable>COMMITISH</replaceable>
+ </term>
+ <listitem>
+ <para>
+ Squash commits up to the given <replaceable>COMMITISH</replaceable>
+ into one monolitic diff. Could be used if one wants to squash commits
+ from an upstream release up to a stable update into a single diff
+ (commits on top of the stable would generate one patch per commit as
+ usual). The format is '&lt;commit_ish&gt;[:&lt;filename_base&gt;]',
+ i.e. commitish optionally followed by a colon and the desired
+ filename base for the diff (suffix '.diff' is automatically added by
+ &gbp;). Magic word 'HEAD' translates to the patch-export-treeish when
+ given as the squash-point. This allows one to configure gbp to
+ always squash all commits into one monolithic diff.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><option>--[no-]patch-numbers</option>
+ </term>
+ <listitem>
+ <para>
+ Whether the patch files should start with a number or not.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><option>--new-packaging-dir=</option><replaceable>DIRECTORY</replaceable>
+ </term>
+ <listitem>
+ <para>
+ Directory where packaging files are put in the new orphan packaging
+ branch after convert. If <option>--new-packaging-dir=</option> is not
+ defined, <replaceable>packaging-dir</replaceable> is used.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><option>--retain-history</option>
+ </term>
+ <listitem>
+ <para>
+ Try to preserve as much history as possible when converting. That is,
+ for each commit in the old branch create one corresponding commit in
+ the new orphan packaging branch. However, commits that will not
+ generate any changes are skipped (i.e. no empty commits are
+ generated) - these are caused e.g. by changes in files that are
+ ignored by patch-generation.
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsect1>
+ <refsect1>
+ <title>META TAGS</title>
+ <para>
+ When exporting patches from a patch-queue branch &gbp-pq-rpm; will look at
+ the commit message for special tags it recognizes. All tags need to start
+ at the first column and require at least one whitespace after the colon.
+ </para>
+ <variablelist>
+ <varlistentry>
+ <term><option>Gbp-Rpm: Ignore</option>
+ </term>
+ <listitem>
+ <para>
+ Ignores the commit, no patch is generated out of it.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><option>Gbp-Rpm: If &lt;expression&gt;</option>
+ </term>
+ <listitem>
+ <para>
+ Conditional patch. Put patch inside "%if &lt;expression&gt;" in the
+ spec file.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><option>Gbp-Rpm: IfArch&lt;expression&gt;</option>
+ </term>
+ <listitem>
+ <para>
+ Conditional patch. Put patch inside "%ifarch &lt;expression&gt;" in
+ the spec file.
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ <para>
+ For example, the following commit message:
+ </para>
+ <screen>
+ Fix around a problem in Fedora
+
+ which is not applicable elsewhere.
+
+ Gbp-Rpm: If 0%{?fedora}
+ </screen>
+ <para>
+ Will result something like this in the spec file:
+ </para>
+ <screen>
+ # 0001-Fix-around-a-problem-in-Fedora.patch
+ %if 0%{?fedora}
+ %patch0 -p1
+ %endif
+ </screen>
+ </refsect1>
+ <refsect1>
+ <title>SEE ALSO</title>
+ <para>
+ <xref linkend="man.gbp.buildpackage.rpm">,
+ <xref linkend="man.gbp.conf">
+ </para>
+ </refsect1>
+ <refsect1>
+ <title>AUTHOR</title>
+ <para>
+ &rpm-username; &rpm-email;
+ </para>
+ </refsect1>
+</refentry>
diff --git a/docs/manpages/gbp-rpm-ch.sgml b/docs/manpages/gbp-rpm-ch.sgml
new file mode 100644
index 00000000..9f6ae999
--- /dev/null
+++ b/docs/manpages/gbp-rpm-ch.sgml
@@ -0,0 +1,406 @@
+<refentry id="man.gbp.rpm.ch">
+ <refentryinfo>
+ <address>
+ &rpm-email;
+ </address>
+ <author>
+ &rpm-firstname;
+ &rpm-surname;
+ </author>
+ </refentryinfo>
+ <refmeta>
+ <refentrytitle>gbp-rpm-ch</refentrytitle>
+ &rpm-mansection;
+ </refmeta>
+ <refnamediv>
+ <refname>git-rpm-ch;</refname>
+ <refname>gbp-rpm-ch;</refname>
+ <refpurpose>Generate the RPM changelog from git commit messages</refpurpose>
+ </refnamediv>
+ <refsynopsisdiv>
+ <cmdsynopsis>
+ &gbp-rpm-ch;
+ &man.common.options.synopsis;
+ <arg><option>--vendor</option>=<replaceable>VENDOR</replaceable></arg>
+ <arg><option>--packaging-branch=</option><replaceable>BRANCH-NAME</replaceable></arg>
+ <arg><option>--packaging-tag=</option><replaceable>TAG-FORMAT</replaceable></arg>
+ <arg><option>--ignore-branch</option></arg>
+ <arg><option>--packaging-dir=</option><replaceable>DIRECTORY</replaceable></arg>
+ <arg><option>--changelog-file=</option><replaceable>FILEPATH</replaceable></arg>
+ <arg><option>--spec-file=</option><replaceable>FILEPATH</replaceable></arg>
+ <group>
+ <arg><option>--all</option></arg>
+ <arg><option>--message=</option><replaceable>MESSAGE</replaceable></arg>
+ <arg><option>--since=</option><replaceable>COMMITISH</replaceable></arg>
+ </group>
+ <arg><option>--no-release</option></arg>
+ <arg><option>--[no-]git-author</option></arg>
+ <arg><option>--[no-]full</option></arg>
+ <arg><option>--id-length=</option><replaceable>NUMBER</replaceable></arg>
+ <arg><option>--changelog-revision=</option><replaceable>REV-FORMAT</replaceable></arg>
+ <arg><option>--git-log=</option><replaceable>GIT-LOG-OPTIONS</replaceable></arg>
+ <arg><option>--spawn-editor=<replaceable>[always|release|no]</replaceable></option></arg>
+ <arg><option>--editor-cmd=</option><replaceable>EDITOR</replaceable></arg>
+ <arg><option>--tag</option></arg>
+ <arg><option>--retag</option></arg>
+ <arg><option>--[no-]sign-tags</option></arg>
+ <arg><option>--keyid=</option><replaceable>GPG-KEYID</replaceable></arg>
+ <arg><option>--customizations=</option><replaceable>CUSTOMIZATION-FILE</replaceable></arg>
+ <arg choice="plain"><replaceable>[PATH1 PATH2]</replaceable></arg>
+ </cmdsynopsis>
+ </refsynopsisdiv>
+ <refsect1>
+ <title>DESCRIPTION</title>
+ <para>
+ &gbp-rpm-ch; reads git commit messages up to the current tip of the current
+ branch and updates the RPM changelog from them.
+ </para>
+ <para>
+ By default, &gbp-rpm-ch; tries to guess the last &git; commit documented in
+ the changelog. Alternatively, <option>--since</option> can be used to
+ tell &gbp-rpm-ch; at which point it should start in the &git; history, or,
+ <option>--all</option> to use all commits from the &git; history.
+ </para>
+ <para>
+ The additional path arguments can be used to restrict the repository paths
+ &gbp-rpm-ch; looks at. For even more detailed control, you can use
+ <option>--git-log</option> to restrict the generated changelog entries
+ further. E.g. by using
+ <option>--git-log=</option><replaceable>"--author=Foo Bar"</replaceable>.
+ </para>
+ </refsect1>
+ <refsect1>
+ <title>OPTIONS</title>
+ <variablelist>
+ &man.common.options.description;
+
+ <varlistentry>
+ <term><option>--vendor</option>=<replaceable>VENDOR</replaceable>
+ </term>
+ <listitem>
+ <para>
+ Distribution vendor name.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><option>--packaging-branch</option>=<replaceable>BRANCH-NAME</replaceable>
+ </term>
+ <listitem>
+ <para>
+ The branch in the Git repository the package is being developed on,
+ default is <replaceable>master</replaceable>.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><option>--ignore-branch</option>
+ </term>
+ <listitem>
+ <para>
+ Don't check if the current branch matches
+ <replaceable>PACKAGING-BRANCH</replaceable>.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><option>--packaging-tag=</option><replaceable>TAG-FORMAT</replaceable>
+ </term>
+ <listitem>
+ <para>
+ Tag format used, when tagging releases,
+ default is <replaceable>%(vendor)s/%(version)s</replaceable>
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><option>--packaging-dir=</option><replaceable>DIRECTORY</replaceable>
+ </term>
+ <listitem>
+ <para>
+ Subdirectory that contains the RPM packaging files.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><option>--changelog-file=</option><replaceable>FILEPATH</replaceable>
+ </term>
+ <listitem>
+ <para>
+ Relative path to the changelog file to use. Special value
+ <replaceable>auto</replaceable> causes &gbp; to guess,
+ <replaceable>SPEC</replaceable> uses the spec file,
+ <replaceable>CHANGES</replaceable> uses a separate changelog file
+ (name derived spec file name with .spec suffix replaced by .changes).
+ Guessing logic is simple: use separate changelog file if it is found,
+ otherwise use the spec file.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><option>--spec-file=</option><replaceable>FILEPATH</replaceable>
+ </term>
+ <listitem>
+ <para>
+ Relative path to the spec file to use. Special value
+ <replaceable>auto</replaceable> causes &gbp; to search and guess.
+ Other values cause the <option>--packaging-dir</option> option to be
+ ignored: the directory of the spec file is used, instead.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><option>--all</option>
+ </term>
+ <listitem>
+ <para>
+ Use all commits from the Git history, overrides
+ <option>--since</option>.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><option>--since=</option><replaceable>COMMITTISH</replaceable>
+ </term>
+ <listitem>
+ <para>
+ Start reading commit messages at
+ <replaceable>COMMITTISH</replaceable>.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><option>--no-release</option>
+ </term>
+ <listitem>
+ <para>
+ Do not create a new changelog section, just update the last
+ changelog section.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><option>--[no-]full</option>
+ </term>
+ <listitem>
+ <para>
+ Include the full commit message in the changelog output.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><option>--git-log=</option><replaceable>GIT-LOG-OPTIONS</replaceable>
+ </term>
+ <listitem>
+ <para>
+ Options passed on verbatim to git-log(1).
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><option>--id-length=</option><replaceable>N</replaceable>
+ </term>
+ <listitem>
+ <para>
+ Include <replaceable>N</replaceable> digits of the commit id in the
+ changelog entry. Default is to not include any commit ids at all.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><option>--changelog-revision=</option><replaceable>REV-FORMAT</replaceable>
+ </term>
+ <listitem>
+ <para>
+ Format string to use for revision field in the changelog header. The
+ following string fields are accepted:
+ <replaceable>%(upstreamversion)s</replaceable> the upstream version;
+ <replaceable>%(release)s</replaceable> the rpm patchlevel, i.e.
+ Release; <replaceable>%(version)s</replaceable> full rpm package
+ version; <replaceable>%(tagname)s</replaceable> tag/commit, i.e.
+ basically what <command>git-describe</command> would give.
+ If empty or not defined the default from packaging policy is used.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><option>--ignore-regex=</option><replaceable>REGEX</replaceable>
+ </term>
+ <listitem>
+ <para>
+ Ignore commit lines matching <replaceable>REGEX</replaceable>
+ when generating the changelog.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><option>--git-author</option>
+ </term>
+ <listitem>
+ <para>
+ Use user.name and user.email from
+ <application>git-config</application>(1) for the changelog header.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><option>--spawn-editor=<replaceable>[always|release|no]</replaceable></option>
+ </term>
+ <listitem>
+ <para>
+ Whether to spawn an editor: always, when doing a release or never.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><option>--editor-cmd=<replaceable>EDITOR</replaceable></option>
+ </term>
+ <listitem>
+ <para>
+ The editor to use for editing the changelog.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><option>--message=<replaceable>MESSAGE</replaceable></option>
+ </term>
+ <listitem>
+ <para>
+ Text to use for new changelog entries. Git history and the commit
+ messages, including <option>--since</option> and
+ <option>--all</option> options are ignored in this case.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><option>--tag</option>
+ </term>
+ <listitem>
+ <para>
+ Commit the changes and create a packaging (release) tag. All
+ changelog modifications (and importantly, all other staged changes)
+ are committed to git before creating the tag. This option makes it
+ possible to create a release and correctly document the the tag name
+ in the rpm changelog (by using %(tagname)s in the
+ <option>--changelog-revision</option> string).
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><option>--retag</option>
+ </term>
+ <listitem>
+ <para>
+ Don't fail tag operations if a tag with the same version already
+ exists, but, overwrite the existing tag, instead.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><option>--[no-]sign-tags</option>
+ </term>
+ <listitem>
+ <para>
+ GPG sign all created tags.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><option>--keyid=</option><replaceable>GPG-KEYID</replaceable>
+ </term>
+ <listitem>
+ <para>
+ Use this keyid for gpg signing tags.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><option>--customizations=</option><replaceable>CUSTOMIZATION-FILE</replaceable>
+ </term>
+ <listitem>
+ <para>
+ Load Python code from <replaceable>CUSTOMIZATION-FILE</replaceable>.
+ At the moment, the only useful thing the code can do is define a
+ custom ChangelogEntryFormatter class.
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsect1>
+ <refsect1>
+ <title>META TAGS</title>
+ <para>
+ Additional to the above options the formatting of the new changelog entries
+ (one-per-commit) in the changelog can be modified by special tags (called
+ Meta Tags) given in the git commit message. The tags must start at the
+ first column of a commit message but can appear on any line. They are of
+ the form <option>Tagname</option>: <replaceable>VALUE</replaceable>. Valid
+ Meta Tags are:
+ </para>
+ <variablelist>
+ <varlistentry>
+ <term><option>Git-Rpm-Ch</option>: <replaceable>ACTION</replaceable>
+ </term>
+ <listitem>
+ <para>
+ Supported actions are: <replaceable>Ignore</replaceable> which will
+ ignore this commit when generating new changelog entries.
+ <replaceable>Short</replaceable> which will only use the description
+ (the first line) of the commit message when generating the changelog
+ entry (useful when <option>--full</option> is given) and
+ <replaceable>Full</replaceable> which will use the full commit
+ message when generating the changelog entry (useful when
+ <option>--full</option> is not given).
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><option>[Close|Closes|Fix|Fixes]</option>: <replaceable>BUGNUMBER</replaceable>
+ </term>
+ <listitem>
+ <para>
+ Indicate in the changelog that the bug was addressed by this commit.
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ <para>
+ The following git commit message:
+ </para>
+ <screen>
+ Document meta tags
+
+ so one doesn't have to consult the manual
+
+ Git-Rpm-Ch: Short
+ Closes: #636088
+ </screen>
+ <para>
+ Results in this changelog entry:
+ </para>
+ <screen>
+ - Document meta tags (Closes: #636088)
+ </screen>
+ </refsect1>
+ <refsect1>
+ &man.gbp.config-files;
+ </refsect1>
+ <refsect1>
+ <title>SEE ALSO</title>
+ <para>
+ <xref linkend="man.gbp.buildpackage.rpm">,
+ <xref linkend="man.gbp.import.srpm">,
+ <xref linkend="man.gbp.import.orig.rpm">,
+ <xref linkend="man.gbp.conf">,
+ &man.seealso.common;
+ <ulink url="https://honk.sigxcpu.org/cl2vcs">
+ <citetitle>Cl2vcs</citetitle></ulink>,
+ </para>
+ </refsect1>
+ <refsect1>
+ <title>AUTHOR</title>
+ <para>
+ &rpm-username; &rpm-email;
+ </para>
+ </refsect1>
+</refentry>
diff --git a/docs/manpages/man.seealso-rpm.sgml b/docs/manpages/man.seealso-rpm.sgml
new file mode 100644
index 00000000..a146875d
--- /dev/null
+++ b/docs/manpages/man.seealso-rpm.sgml
@@ -0,0 +1,12 @@
+ <citerefentry>
+ <refentrytitle>rpmbuild</refentrytitle>
+ <manvolnum>1</manvolnum>
+ </citerefentry>,
+ <citerefentry>
+ <refentrytitle>git</refentrytitle>
+ <manvolnum>1</manvolnum>
+ </citerefentry>,
+ <citerefentry>
+ <refentrytitle>pristine-tar</refentrytitle>
+ <manvolnum>1</manvolnum>
+ </citerefentry>,
diff --git a/docs/manpages/manpages-rpm.ent b/docs/manpages/manpages-rpm.ent
new file mode 100644
index 00000000..0839a3bf
--- /dev/null
+++ b/docs/manpages/manpages-rpm.ent
@@ -0,0 +1,10 @@
+<!ENTITY man.gbp.buildpackage.rpm SYSTEM "gbp-buildpackage-rpm.sgml">
+<!ENTITY man.gbp.import.orig.rpm SYSTEM "gbp-import-orig-rpm.sgml">
+<!ENTITY man.gbp.import.srpm SYSTEM "gbp-import-srpm.sgml">
+<!ENTITY man.gbp.pq.rpm SYSTEM "gbp-pq-rpm.sgml">
+<!ENTITY man.gbp.rpm.ch SYSTEM "gbp-rpm-ch.sgml">
+<!ENTITY man.gbp.conf SYSTEM "gbp.conf.sgml">
+<!ENTITY man.gbp.config-files SYSTEM "man.conffiles.sgml">
+<!ENTITY man.seealso.common SYSTEM "man.seealso-rpm.sgml">
+<!ENTITY % COMMON.OPTIONS SYSTEM "man.common-options.ent">
+%COMMON.OPTIONS;
diff --git a/docs/manual-rpm.sgml b/docs/manual-rpm.sgml
index 2e587306..1de37ffd 100644
--- a/docs/manual-rpm.sgml
+++ b/docs/manual-rpm.sgml
@@ -10,6 +10,14 @@
&ch.development-rpm;
&ch.building-rpm;
+ <appendix id="man.rpm.reference">
+ <title>Command Reference</title>
+ &man.gbp.buildpackage.rpm;
+ &man.gbp.import.orig.rpm;
+ &man.gbp.import.srpm;
+ &man.gbp.pq.rpm;
+ &man.gbp.rpm.ch;
+ </appendix>
<appendix id="gbp.rpm.copyleft">
<title>Copyright</title>
&gbp.copyright;
diff --git a/packaging/git-buildpackage.spec b/packaging/git-buildpackage.spec
index 98068e78..3100b6aa 100644
--- a/packaging/git-buildpackage.spec
+++ b/packaging/git-buildpackage.spec
@@ -250,6 +250,13 @@ done
%dir %{python_sitelib}/gbp/rpm
%{python_sitelib}/gbp/scripts/*rpm*.py*
%{python_sitelib}/gbp/rpm/*py*
+%if %{with docs}
+%{_mandir}/man1/gbp-buildpackage-rpm.1*
+%{_mandir}/man1/gbp-import-orig-rpm.1*
+%{_mandir}/man1/gbp-import-srpm.1*
+%{_mandir}/man1/gbp-pq-rpm.1*
+%{_mandir}/man1/gbp-rpm-ch.1*
+%endif
%if %{with docs}