This adds option to disable pre-cleanup in generate-git-snapshot
The use case for this is if we want to build quilt packages that need extra tarballs (orig for example) in the parent directory of $SOURCE_DIRECTORY.
grep 3.8 deprecated support for egrep + fgrep, and now prints a warning on stderr:
| egrep: warning: egrep is obsolescent; using grep -E
| fgrep: warning: fgrep is obsolescent; using grep -F
The InRelease is preferable file to use nowadays,
quoting from https://wiki.debian.org/DebianRepository/Format?#Overview:
| To download packages from a repository apt would download a InRelease or Release file from the $ARCHIVE_ROOT/dists/$DISTRIBUTION directory.
| InRelease files are signed in-line while Release files should have an accompanying Release.gpg file.
| The Release file lists the index files for the distribution and their hashes (the index file listed are relative to Release file location).
Thanks: Mykola Malkov
All programs are namespaced now with «jdg-» or «jdg-tap-» and their names
had their ‘_’ replaced with ‘-’.
For backwards compatibility symlinks are provided for a transition period
to avoid breakage, but projects should be switched to the new names, which
will disappear eventually.
When using the Jenkins Xunit plugin, the generated XML lintian report
does not validate the plugin embeded XSD:
Attribute 'name' must appear on element 'testsuite'.
The reporter has been made to mostly mimic the phpunit output but missed
the namel attribute. Add a dummy 'lintian' name to the testsuite
element.
The Jenkins plugin has to be configured to use phpunit-4.0.
One can then validate it using the embedded XSD:
scripts/lintian-junit-report foo.dsc > lintian.xml
git clone https://github.com/jenkinsci/xunit-plugin
xmlllint --noout \
--schema ./xunit-plugin/src/main/resources/org/jenkinsci/plugins/xunit/types/phpunit-4.0.xsd \
lintian.xml
Add a note refering to the XSD provided by Jenkins.
Reference:
https://phabricator.wikimedia.org/T194096#6172999
Newer versions of GPG switched to a different binary format called a
"keybox database" for its internal keyring representation. apt-key does
not support this format.
Use gpg's --export operation to generate an interoperable keyring file.
This works on older gpg versions as well, so I didn't bother checking the
version or making it conditional.
Commit 5d465bf537 (build-and-provide-
package: Look only for the "real" debian/control file) fixes debian/
control lookup for native packages with multiple debian/control files.
However, it completely breaks the non-native case, as the regex always
expect 1 level of subdirectory.
This commit edit the regex to make the 1 level of subdirectory part
optional. This make it works on both native and non-native packages.
This has been tested on the original offending package (autopkgtest) to
make sure no regression occurs.
Fixup for commit c79eb1581, we need to add ADDITIONAL_BUILDRESULTS also
when actually executing cowbuilder, not only during its initial setup.
Development sponsored by Sipwise GmbH, recorded as
TT#15150 in customers' ticket system.
If LINTIAN=yes is set, to run lintian from inside the build environment,
we need to make sure the ADDITIONAL_BUILDRESULTS reaches pbuilder.
Ad least when using a custom pbuilderrc (like
PBUILDER_CONFIG=/etc/jenkins/pbuilderrc inside /etc/jenkins/debian_glue)
then we need to make sure it's also part of the runtime pbuilderrc.
Development sponsored by Sipwise GmbH, recorded as
TT#15150 in customers' ticket system.
We can't rely on what's defined in the base tgz file, since the environment might still refer to
a mirror that no longer exists as such. For example with current wheezy repository (that has been
moved to archive.debian.org) piuparts runs might fail with:
| W: Failed to fetch http://deb.debian.org/debian/dists/wheezy/main/binary-i386/Packages 404 Not Found
| [...]
| E: Some index files failed to download. They have been ignored, or old ones used instead.
Avoid confusing:
| + grep -q '^\(Codename\|Suite\): jenkins-debian-glue$' /srv/repository/conf/distributions
| grep: /srv/repository/conf/distributions: No such file or directory
| + echo '*** Codename jenkins-debian-glue does not exist in repository /srv/repository, generating now ***'
introduced in commit 41b79343e5 & following (related to #195)
Debootstrap accesses the COMPONENTS variable (sigh) and fails hard if
it's set. To avoid failures on during debootstrap unset the variable.
This should be the easiest solution to fix the issue and not having to
break backwards compatibility.
Fixes https://github.com/mika/jenkins-debian-glue/issues/145
If you used ADT_OPTIONS, this would not allow
autopkg_binary variable to be set thus running
into an unbound variable error on line 591.
This separates the concerns of the options being
used and the actual binary being executed.
Also, adt-run and autopkgtest are not API compatible.
For instance, adt-run expects --changes to point
to the changes file whereas autopkgtest expects
the changes file pass as a positional arg. This
change takes that into consideration as well.
cowdancer (one of the underlying components of cowbuilder) checks
whether the terminal supports colors. If the related setupterm()
invocation fails, then it outputs:
| E: Error calling setupterm: 0
This is confusing and unnecessary output in our cowbuilder Jenkins
logs, so avoid this by setting the TERM environment variable to
"dumb".
Development sponsored by Sipwise GmbH, recorded as
TT#46675 in customers' ticket system.
Starting with autopkgtest v5 the adt-run binary no longer exists
and its command line interface slighly changed.
Thanks: Axel Beckert for bug report
Thanks: Christoph Berg <myon@debian.org> for feedback
If the extend-diff-ignore option is set in a dpkg format 1.0
package we still need to set the -i option, otherwise
we again end up with .git files inside the tarball and
dpkg-source fails with
| dpkg-source: error: cannot represent change to .git/[...] binary file contents changed
| [...]
| dpkg-source: warning: the diff modifies the following upstream files:
| [...]
While at it also ensure that we skip leading spaces, which is
what Dpkg::Conf is doing:
https://anonscm.debian.org/cgit/dpkg/dpkg.git/tree/scripts/Dpkg/Conf.pm#n172
Development sponsored by Sipwise GmbH, recorded as
TT#15013 in customers' ticket system.
Fixes 8fe677820f
Thanks: Guillem Jover for feedback and code review
If a debian git tree doesn't provide debian/source/format then
the dpkg 1.0 format is assumed. The 1.0 format needs according
dpkg-buildpackage defaults (-i -I), otherwise the .git tree
gets included in the tarball.
Development sponsored by Sipwise GmbH, recorded as
TT#13353 in customers' ticket system.
Fixes 8fe677820f
Thanks: Guillem Jover for feedback and code review
* fix 42a7ea8f94
* get_arch_changes() to get file expansion for reprepro cmdline
remove copy&paste and do not use architecture var
trunk_release is copying packages from $REPOS to $TRUNK_RELEASE,
if we have SKIP_REPREPRO_WRAPPER defined the packages are not
installed in $REPOS so $TRUNK_RELEASE will not receive the new
packages
If REPOS=... is unset by a custom script and only the release
steps should be executed, then without support for skipping the
reprepro_wrapper we end up with the Debian package being included
in $package-$distribution if $distribution is set or in $package
otherwise by default. If those steps are unwanted you can now
set SKIP_REPREPRO_WRAPPER to either take care of the repository
inclusion yourself or running only through the release steps (if
$release is set accordingly).
Development sponsored by Sipwise GmbH, recorded as
TT#9830 in customers' ticket system.
For example when the MAIN_ARCHITECTURE or the host architecture
doesn't match the package architecture, we build binary only
packages by setting DEBBUILDOPTS to -B. But when looking at
packages to remove from the repository, we remove the source
package too, although we have nothing to replace it with.
Thanks: Antoine Delvaux <antoine.delvaux@gmail.com> for the bugreport + initial patch
Closes#173 @ GH
If you have a debian/source/options with specific filter regexs for
diffs and/or tarballs, using a blank '-i' or '-I' will override them and
use the defaults.
We need to set up conf/incoming accordingly with:
Permit: unused_files
Cleanup: unused_files
at least until reprepro properly understands the .buildinfo files.
Related to previous commit (see github issue #165) +
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=843402
With subversion >=1.9 it fails hard if mergeWithUpstream property isn't present:
++ svn propget mergeWithUpstream source//debian
svn: warning: W200017: Property 'mergeWithUpstream' not found on 'source/debian'
svn: E200000: A problem occurred; see other errors for details
Closes#164
Remove pbuilderrc in the shell's exit handler, so that it
will be removed in all cases, in particular error paths.
Signed-off-by: André Draszik <git@andred.net>
If running in a container where /tmp/ is shared across
containers, it can otherwise happen that two instances
interfere with each other, due to sharing the same pid
inside each container.
Signed-off-by: André Draszik <git@andred.net>
We only create the default dirs now if we're also creating
the config file. Otherwise we parse the config file to
extract the values.
Also, FREIGHT_VARLIB has some permissions tightened, as it
doesn't need to be world accessible, http is served from
FREIGHT_VARCACHE
Signed-off-by: André Draszik <git@andred.net>