Your message dated Thu, 24 Nov 2016 04:03:26 +0000
with message-id <[email protected]>
and subject line Bug#841149: fixed in devscripts 2.16.9
has caused the Debian Bug report #841149,
regarding devscripts: Improvements for debrepro script
to be marked as done.
This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.
(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact [email protected]
immediately.)
--
841149: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=841149
Debian Bug Tracking System
Contact [email protected] with problems
--- Begin Message ---
Package: devscripts
Version: 2.16.8
Severity: wishlist
Tags: patch
Hi!
This is a patch serie with some improvements to the debrepro script.
The main theme is that it switches to use dpkg-buildpackage as the
driver to reduce complexity, and compares .changes files instead of
individual .deb, and fallsback to debdiff which should be better
than cmp(1).
Thanks,
Guillem
From cdd89046859b7c3a36f37bac17179c13aba6eee6 Mon Sep 17 00:00:00 2001
From: Guillem Jover <[email protected]>
Date: Tue, 18 Oct 2016 03:39:15 +0200
Subject: [PATCH 1/3] debrepro: Simplify and make the vary() function more
clear
Always use two arguments, so that it's obvious from the call sites that
the first round contains an empty variation, instead of shuffling
arguments around.
---
scripts/debrepro.sh | 8 ++------
1 file changed, 2 insertions(+), 6 deletions(-)
diff --git a/scripts/debrepro.sh b/scripts/debrepro.sh
index 400913b..38dd14f 100755
--- a/scripts/debrepro.sh
+++ b/scripts/debrepro.sh
@@ -38,11 +38,7 @@ variation() {
vary() {
local first="$1"
- local second="${2:-}"
- if [ -z "$second" ]; then
- second="$first"
- first=''
- fi
+ local second="$2"
if [ "$which_build" = 'first' ]; then
if [ -n "$first" ]; then
echo "$first"
@@ -63,7 +59,7 @@ create_build_script() {
echo 'export SOURCE_DATE_EPOCH=$(date -d "$(dpkg-parsechangelog -SDate)" +%s)'
variation PATH
- vary 'export PATH="$PATH":/i/capture/the/path'
+ vary '' 'export PATH="$PATH":/i/capture/the/path'
variation USER
vary 'export USER=user1' 'export USER=user2'
--
2.9.3
From 607b2b8f5c12377efe9b81e4bdf8105a3f2a6c0c Mon Sep 17 00:00:00 2001
From: Guillem Jover <[email protected]>
Date: Tue, 18 Oct 2016 03:54:21 +0200
Subject: [PATCH 2/3] debrepro: Use dpkg-buildpackage instead of ad-hoc code
Part of the reproducible machinery is handled already by
dpkg-buildpackage, so there's no need to duplicate it. We can also
pass faketime+fakeroot as a normal gain-root-command.
---
scripts/debrepro.sh | 10 ++--------
1 file changed, 2 insertions(+), 8 deletions(-)
diff --git a/scripts/debrepro.sh b/scripts/debrepro.sh
index 38dd14f..0003d22 100755
--- a/scripts/debrepro.sh
+++ b/scripts/debrepro.sh
@@ -56,8 +56,6 @@ create_build_script() {
echo "# package"
echo
- echo 'export SOURCE_DATE_EPOCH=$(date -d "$(dpkg-parsechangelog -SDate)" +%s)'
-
variation PATH
vary '' 'export PATH="$PATH":/i/capture/the/path'
@@ -83,13 +81,9 @@ create_build_script() {
echo 'cd ../disorderfs'
fi
- echo
- echo 'dpkg-source --before-build .'
- echo 'fakeroot debian/rules clean'
-
variation date
- vary 'fakeroot debian/rules binary' \
- 'faketime "+213days +7hours +13minutes" fakeroot debian/rules binary'
+ vary 'dpkg-buildpackage -b' \
+ 'dpkg-buildpackage -b -r"faketime +213days+7hours+13minutes fakeroot"'
}
--
2.9.3
From 9a167da06f0c2b5aba0ae8012894334aa6c88bf4 Mon Sep 17 00:00:00 2001
From: Guillem Jover <[email protected]>
Date: Tue, 18 Oct 2016 04:29:43 +0200
Subject: [PATCH 3/3] debrepro: Compare .changes files and fallback to use
debdiff
We should be checking all artifacts generated not just .deb files,
this includes .udebs and by-hand artifacts. This will also allow
adding support for source comparison.
If diffoscope is not present fallback to debdiff which is better than
a simple cmp(1).
---
scripts/debrepro.sh | 35 +++++++++++++++--------------------
1 file changed, 15 insertions(+), 20 deletions(-)
diff --git a/scripts/debrepro.sh b/scripts/debrepro.sh
index 0003d22..50685f8 100755
--- a/scripts/debrepro.sh
+++ b/scripts/debrepro.sh
@@ -3,6 +3,7 @@
# debrepro: a reproducibility tester for Debian packages
#
# © 2016 Antonio Terceiro <[email protected]>
+# Copyright © 2016 Guillem Jover <[email protected]>
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -100,28 +101,22 @@ build() {
mv "$tmpdir/build" "$tmpdir/$which_build"
}
-binmatch() {
- cmp --silent "$1" "$2"
-}
-
compare() {
rc=0
- for first_deb in "$tmpdir"/first/*.deb; do
- deb="$(basename "$first_deb")"
- second_deb="$tmpdir"/second/"$deb"
- if binmatch "$first_deb" "$second_deb"; then
- echo "✓ $deb: binaries match"
- else
- echo ""
- rc=1
- if which diffoscope >/dev/null; then
- diffoscope "$first_deb" "$second_deb" || true
- else
- echo "✗ $deb: binaries don't match"
- fi
- fi
- done
- if [ "$rc" -ne 0 ]; then
+ first_changes=$(echo "$tmpdir"/first/*.changes)
+ changes="$(basename "$first_changes")"
+ second_changes="$tmpdir/second/$changes"
+
+ if which diffoscope >/dev/null; then
+ diffoscope "$first_changes" "$second_changes" || rc=1
+ else
+ debdiff -q -d --control --controlfiles ALL \
+ "$first_changes" "$second_changes" || rc=1
+ fi
+ if [ "$rc" -eq 0 ]; then
+ echo "✓ $changes: artifacts match"
+ else
+ echo "✗ $changes: artifacts do not match"
echo "E: package is not reproducible."
if ! which diffoscope >/dev/null; then
echo "I: install diffoscope for a deeper comparison between binaries"
--
2.9.3
--- End Message ---
--- Begin Message ---
Source: devscripts
Source-Version: 2.16.9
We believe that the bug you reported is fixed in the latest version of
devscripts, which is due to be installed in the Debian FTP archive.
A summary of the changes between this version and the previous one is
attached.
Thank you for reporting the bug, which will now be closed. If you
have further comments please address them to [email protected],
and the maintainer will reopen the bug report if appropriate.
Debian distribution maintenance software
pp.
James McCoy <[email protected]> (supplier of updated devscripts package)
(This message was generated automatically at their request; if you
believe that there is a problem with it please contact the archive
administrators by mailing [email protected])
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA512
Format: 1.8
Date: Wed, 23 Nov 2016 22:47:38 -0500
Source: devscripts
Binary: devscripts
Architecture: source amd64
Version: 2.16.9
Distribution: unstable
Urgency: medium
Maintainer: Devscripts Devel Team <[email protected]>
Changed-By: James McCoy <[email protected]>
Description:
devscripts - scripts to make the life of a Debian Package maintainer easier
Closes: 518622 611896 735416 765495 789581 826508 839533 839537 841149 842542
843961 844327 844910
Changes:
devscripts (2.16.9) unstable; urgency=medium
.
[ James McCoy ]
* debsnap:
+ Fix "no binaries for given arch" detection so it doesn't download
binaries for unspecified archs. (Closes: #839533)
+ Add handling for the --version switch, as advertised by --help.
(Closes: #839537)
* bts:
+ Switch to Net::SMTPS to support STARTTLS. Based on a patch by Andrew
Shadura. (Closes: #518622)
* Refactor debuild to remove dpkg-buildpackage emulation and generally be a
much thinner wrapper around dpkg-buildpackage. (Closes: #789581)
+ Remove claim from man page that dpkg-buildpackage doesn't support hooks.
(Closes: #765495)
+ Remove handling of all dpkg-buildpackage options that aren't directly
used by debuild.
- This fixes the issue where debuild didn't understand "-Jauto", as
debuild now just passes it through. (Closes: #826508)
+ Honor -a option regardless of which debuild mode is being used, since
both modes now invoke dpkg-buildpackage. (Closes: #611896)
+ Bump dpkg-dev (Build-)Depends to 1.17.6 for dpkg-buildpackage's
--check-command and --hook-* options.
* Fix debuild test failures due to new dpkg-genbuildinfo calls.
(Closes: #844910)
* dscverify:
+ Always display gpg output if --verbose is used, regardless of whether
verification succeeds. (Closes: #735416)
.
[ Antonio Terceiro ]
* debrepro:
+ Don't vary the build path. See
https://wiki.debian.org/ReproducibleBuilds/History (section "Giving up
on build paths") for an explanation on why it is not currently feasible
to vary build paths for reproducible builds.
+ convert mapage to POD
+ in case of non-matching binaries, call diffoscope only on the .changes
files instead of on the .deb files. This way we even get get diff in
.buildinfo between the builds.
.
[ Guillem Jover ]
* debrepro improvements (Closes: #841149):
+ Simplify and make the vary() function more clear
+ Use dpkg-buildpackage instead of ad-hoc code
.
[ Paul Wise ]
* who-uploads:
+ Fix search for user IDs with gpg2 and no @debian.org user IDs (Closes:
#843961)
* uscan:
+ Fix a mention of the location of the upstream signing key (Closes:
#842542)
.
[ Jochen Sprickerhof ]
* build-rdeps:
+ add -q/--quiet option for use in scripts (Closes: #844327)
Checksums-Sha1:
b3676572df055e11912f5a0aef8d766fc4455676 2388 devscripts_2.16.9.dsc
01047e2c0802b95824315ba581fcfbda045faf5c 676392 devscripts_2.16.9.tar.xz
213fbcb7bf235836d26c3fa07ed5b7d7ce41aa9d 3966
devscripts-dbgsym_2.16.9_amd64.deb
6f47dceef9e15495f06d016ce45b359bef731add 7974 devscripts_2.16.9_amd64.buildinfo
54f47f68e8e1a79627e82f6d287d99b03091d6b2 926066 devscripts_2.16.9_amd64.deb
Checksums-Sha256:
dfeeb7527fe311bfbc116de8c2b3333ad678b882ef361c1239c88c44d10cffc6 2388
devscripts_2.16.9.dsc
fd96f46141e8d0b91bd4fbaff03b13dfb7e33b83dcf7120009d10789197229ab 676392
devscripts_2.16.9.tar.xz
c5007aae38aac132dc7b860ac618e48e2b04d7d063d86eed70359645e8bae2ae 3966
devscripts-dbgsym_2.16.9_amd64.deb
9632efb391195847e692da9845e915539705134d8a683f6c0d93ae3312248292 7974
devscripts_2.16.9_amd64.buildinfo
9bf7e391c9551cea1821c7d4d443b4c884b2c0496c4700051a27ef25f5bd0c36 926066
devscripts_2.16.9_amd64.deb
Files:
108f060a5cf8071984c6e2395596da3e 2388 devel optional devscripts_2.16.9.dsc
560bbd8ec2a0b80a62f6473fe45d2af6 676392 devel optional devscripts_2.16.9.tar.xz
05093727f64d56fc65659d85fd7b0f0d 3966 debug extra
devscripts-dbgsym_2.16.9_amd64.deb
a07895c4868b574570e20435744baeb6 7974 devel optional
devscripts_2.16.9_amd64.buildinfo
b86c91418e01dcb26ad9f0ed397cbf0f 926066 devel optional
devscripts_2.16.9_amd64.deb
-----BEGIN PGP SIGNATURE-----
iQKTBAEBCgB9FiEEkb+/TWlWvV33ty0j3+aRrjMbo9sFAlg2ZCZfFIAAAAAALgAo
aXNzdWVyLWZwckBub3RhdGlvbnMub3BlbnBncC5maWZ0aGhvcnNlbWFuLm5ldDkx
QkZCRjRENjk1NkJENURGN0I3MkQyM0RGRTY5MUFFMzMxQkEzREIACgkQ3+aRrjMb
o9vscw//TZt8UNFMXR+zKkYGqFNpFjHaBmhgAV+xPsyFy79E8fnE0Jql2f6H9O1x
HHY6aie4cvFAIkuMgDvxli+ZjB/Lx3LOGPNnND57Wgk1FBjc1++Reu/y5HyKqLnh
Az57gSic0pUeJMAZkG+YewRFW8oNzA/51LbErD8umpmzKTGCzw3kmFJYHzvICNvw
KtX5JvZwvXnt05aitk0aW4MHN3LuvPvZ2To6nLXYOdHAtlotu/Gd2++dHX+HshGJ
VAHKFQRryiMgFnSYSyH7XQn7R9UWP0HhW68WmeDGYSe1FsYcloXXMPDuwzgroP/o
rLVCKthb4Uc8LKDiKKYCoFkm8NAgBeOVZ+cuKeSiCVBlDaiGUjaEy+JlgvLjj1p5
OiDk7y2uDZe+AdvKP8y9ipb+N1jk5ZJkWskc7DgvEmZ8C/7Ht0LrbW41mOEkMMjb
wLPGgRdpWMYXK84yfyAFwi1w/zHW2LlSKwi6inRHECcVa+rFRkCMFxAsi2c9I9S4
tUoy7JO0DsmQhldl7VqLUIrCu8xi0YnJxCcmr0MI3KtSq0wz8yf5aqe/i/QIjzoM
2w1w/55ycPxCU5qvfnCXm9WywpLdWTpbUwZMacmOcmUcqxSS5Nf07Ab9L12S0YQh
b7ywFBPL2OHoT6rGOcwfoKnOVrYmTaZDXjEm7WceN1Z+R3L03qk=
=PTST
-----END PGP SIGNATURE-----
--- End Message ---
_______________________________________________
devscripts-devel mailing list
[email protected]
http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/devscripts-devel