gbp-pq-rpm: add 'export-rev' option

This option allows generating patches from any git tree-ish (instead of
the default that is HEAD of patch-queue branch).

Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com>
pq-rpm: add new --pq-branch option

Adds a new command line option '--pq-branch' to set the name of
patch-queue branches. Changes the defaults pq-branch name for rpm tools
to 'development/%(branch)s' (instead of the old
'patch-queue/%(branch)s').

Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com>
pq-rpm: support patch-export up to an arbitrary tree-ish

If the end of the export range is not a commit "normal" patches are
generated up to HEAD and finally a raw diff between HEAD and the
end-tree-is generated.

Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com>
Introduce git-buildpackage-rpm tool

Initial version of git-buildpackage-rpm: git-buildpackage tool for rpms.

Also adds some new options to config.py that are exclusively used in
this tool.

Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com>
Signed-off-by: Ed Bartosh <eduard.bartosh@intel.com>
Signed-off-by: Zhang Qiang <qiang.z.zhang@intel.com>
Introduce git-import-orig-rpm tool

Initial version of the git-import-orig-rpm: version of git-import-orig
intended for maintaining rpm packages.

Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com>
rpm: add rpm-specific example config file

Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com>
rpm: add 'vendor' config option

Intended to represent the distribution vendor (e.g. 'Debian'). This can
be used in tag and branch name formatting.

Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com>
docs: add initial RPM documentation

Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com>
docs: revamp RPM docs

Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com>
README: mention RPM support

Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com>
Add rpm packaging files

Signed-off-by: Ed Bartosh <eduard.bartosh@intel.com>
Signed-off-by: Olev Kartau <olev.kartau@intel.com>
Signed-off-by: Zhang Qiang <qiang.z.zhang@intel.com>
Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com>
debian packaging: support for RPM tools

Add requirements for git-buildpackage-rpm and other rpm tools.

Also, relax the version requirement on git in order to be able to
build/install on older Ubuntu systems (11.10).

Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com>
debian packaging: split Debian package into subpackages

Split Debian package into three packages, following the introduction of
RPM tools. Now the Debian packaging resembles the default RPM packaging:
- git-buildpackage-common contains the common code for Deb and RPM tools
- git-buildpackage contains the Debian-specific modules/tools
- git-buildpackage-rpm contains the RPM-specific modules/tools

Signed-off-by: Zhang Qiang <qiang.z.zhang@intel.com>
Signed-off-by: Ed Bartosh <eduard.bartosh@intel.com>
Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com>
buildpackage-rpm: add option --git-ignore-untracked

Adds a new commandline option to ignore untracked files, when running
git-buildpackage-rpm. When this option is given, the
git-buildpackage-rpm command fails if there are changes to tracked
files, but, succeeds if there are untracked files present. Normally it
fails in either case.

Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com>
rpm: add version parsing functions to pkg policy

Adds functions for version string generation and parsing. These are
intended for parsing version strings taken e.g. from rpm filename or
changelogs.

Also, take these new version parsing functions into use in the rpm gbp
scripts.

Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com>
Signed-off-by: Ed Bartosh <eduard.bartosh@intel.com>
rpm helpers: make SpecFile and SrcRpmFile give (full) version as dict.

The Dictionary contains different "version components", such as
upstreamversion, release and epoch. Makes e.g. tag creation consistent,
now.

Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com>
RpmGitRepository: make version-tag methods more flexible

Simplifies version_to_tag() and find_version() so that all string fields
(for the format string) are given in one dict. Now it's easier to
add support for new string fields (e.g. commitdate etc).

Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com>
Signed-off-by: Ed Bartosh <eduard.bartosh@intel.com>
buildpackage-rpm: add more tagging options

Add new possible keywords to be used in packaging-tag format string:
'nowtime', 'authortime', 'committime', 'nowtimenum', 'authortimenum' and
'committimenum'.

The '*timenum' keyword denote the corresponding '*time' keyword appended
with an additional incremental serial number. E.g. if 'nowtime' would
produce '20120531', 'nowtimenum' would (the first time) produce
'20120531.1'.

What is completely missing is a way to support these new tag keywords in
git-import-srpm tool. So, if you use these tags, git-import-srpm is not
able to reproduce the tags, (and, it is not necessarily able to
correctly tell if you've already imported a certain version of the
package).

Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com>
rpm: move RpmPkgPolicy class into a separate module

Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com>
rpm helpers: add support for gbp-specific rpmlib

Adds support to use a special rpmlib, defined by rpm packaging policy.
This makes it possible to use the target distro's rpmlib. That is, parse
spec files for target distros (and architectures) incompatible with your
host system.

With the default RpmPkgPolicy, GBP tries to import "rpmlibgbp".

Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com>