lintian-junit-report: Use REXML to generate XML output

Parsing lintian output in two runs in order to collect summary of
results had shortcomings - extending the code further to support skipped
tests would require replicating conditional logic in two separate
places. One of the possibilities to fix this would be to keep all but
header output in memory, then print the header and dump the collected
output. However using REXML::Document seemed a better idea resulting in
more readable code. And in fact the change makes the code 5 lines
shorter! ;)

I use REXML::Formatters::Transitive for output, as it preserves exact
text format, even though this makes XML look a bit unusual.
lintian-junit-report: Support for marking tests skipped

This change brings a possibility to mark selected lintian checks as
skipped (in terms of JUnit report). Skipped test cases are considered
less than passed by Jenkins and marked on test result trend, but the
default JUnit results publisher does not set job result to UNSTABLE when
seeing them. Thanks to that you can ignore selected results but still
have them available in the report. The behaviour is controlled by two
new command line options. Example:

lintian-junit-report -w --mark-warnings-skipped \
	--mark-as-skipped=no-debian-copyright,no-copyright-file [...]

Last option takes a list of lintian tags to mark skipped.
Create .mailmap
puppet: install git-client plugin explicitely in version 1.1.2

git-client plugin version 1.3.0 depends on ssh-agent which depends on
credentials plugin version 1.6 or newer. Otherwise it's failing with:

| SEVERE: Failed Loading plugin git-client
| java.io.IOException: Dependency ssh-agent (1.3) doesn't exist

Jenkins LTS 1.509.3 provides Credentials plugin version 1.3.1.
Jenkins 1.534 provides Credentials plugin version 1.4.

Recent versions of the git-client plugin (at least 1.3.0) depend on the
ssh-agent plugin which itself requires version >=1.6 of the Credentials
plugin though, otherwise it's failing with:

| FATAL: com/cloudbees/plugins/credentials/common/StandardCredentials
| java.lang.NoClassDefFoundError: com/cloudbees/plugins/credentials/common/StandardCredentials
|    at org.jenkinsci.plugins.gitclient.Git$1.invoke(Git.java:62)
| [...]

Manually updating the credentials plugin in an automated fashion doesn't
seem to be possible (when placing
http://updates.jenkins-ci.org/latest/credentials.hpi inside the plugin
directory then on Jenkins restart the built-in credentials plugin seems
to always get restored to its old/built-in version).

So unless there's a way to update a built-in plugin besides using the
web interface with its plugin manager we've to install a git-client
plugin version that's known to work without further, unresolvable plugin
dependencies.

Reported upstream as https://issues.jenkins-ci.org/browse/JENKINS-19927
puppet: support forcing plugin installation allowing us to install latest git-client plugin

Related to commit c73c341f ("puppet: install git-client plugin
explicitely in version 1.1.2"), instead of pinning the git-client plugin
to a specific version also install the latest versions of the ssh-agent
and credentials plugins and pin the credentials plugin so it doesn't
get restored/downgraded by Jenkins service itself.

Thanks stephenconnolly for the hint regarding the pinning trick.
See https://issues.jenkins-ci.org/browse/JENKINS-19927
generate-*-snapshot: provide hint if the 'source' directory hasn't been configured

The "Please run the script in the jenkins workspace." itself is
a bit misleading if someone just forgot to configure "source"
directory as the checkout directory.
Merge branch 'feature/git_mailmap' of https://github.com/lkslawek/jenkins-debian-glue
Merge branch 'feature/marking-tests-as-skipped' of https://github.com/lkslawek/jenkins-debian-glue
piuparts_wrapper: quote scriptsdir in piuparts cmd

scriptsdir can be filled by the user and might ends up containing
spaces. Make sure its content is passed as one argument by double
quoting the variable when passing it to the piuparts call.
piuparts_wrapper: unset scripts dir when non existent

On Ubuntu Precise (Long Term Support release), the piuparts script does
not comes with /etc/piuparts/scripts which causes the piuparts output to
report:

 0m0.0s ERROR: Scripts directory is not a directory:
 /etc/piuparts/scripts/

Add a check to make sure it is a directory, if it is not, fallback to an
empty string passed to piuparts.
Make sure to also support linux-any as valid Architecture field

A package which e.g. uses "linux-any" should be handled as
if "any" was set.

Thanks: Jean Baptiste Favre
Added a virtual package for repo only slaves

jenkins-debian-glue is the base package containing all required scripts
 - jenkins-debian-glue-repoenv  - virtual package for repo only slaves
 - jenkins-debian-glue-buildenv - virtual package for build only slaves
Merge branch 'master' of https://github.com/bmiklautz/jenkins-debian-glue

https://github.com/mika/jenkins-debian-glue/pull/75
puppet: install scm-api plugin, required for git plugin

| SEVERE: Failed Loading plugin git
| java.io.IOException: Dependency scm-api (0.1) doesn't exist
wrap-and-sort debian/control file

Git-Dch: ignore
Add jenkins-debian-glue-repoenv to Recommends and default installation list

We want to have jenkins-debian-glue-repoenv by default on
automatically installed machines and users typically want it,
though they don't strictly need it, so add it to Recommends.
Drop trailing dot in package descriptions of jenkins-debian-glue-{repoenv,buildenv}

Make lintian happy
Release new version 0.7.0
Drop jenkins-debian-glue-repoenv package + add dependency on "reprepro | freight" to jenkins-debian-glue

reprepro should be present on every system to avoid failures with
package inclusion in repository. Depending on reprepro in the
main jenkins-debian-glue package avoids that problem while still
supporting setups where cowbuilder etc aren't necessary on
repository-only systems.

Closes: #76
Add jenkins-debian-glue-buildenv-git to Recommends