[Reproducible-builds] Bug#820427: Show non-debug packages first in output

2016-04-08 Thread Christoph Berg
Source: diffoscope
Version: 51
Severity: wishlist

Hi,

looking at
https://tests.reproducible-builds.org/dbd/unstable/amd64/heartbeat_3.0.6-3.diffoscope.html
I first had to scroll over a lot of uninformative (?) debug symbols
stuff, only to see that the "real" difference in the packages had been
cut off from the output due to "Max output size reached".

Even if the output is not truncated, I've frequently had the case in
the past that the interesting part was hidden at the end or (worse)
somewhere in the middle, because -dbgsym packages were checked first.

So the idea would be simply to reorder the output to show the -dbgsym
and -dbg package differences last.


More ideas:

* Apply the max size filter also to subsections, e.g. cut off and
  overly lengthy debug diff and still allow for other things to be
  shown

* Add a table of contents at the top to show which objects are diffed.
  (The html anchors for jumping to the objects are already there :)

* Maybe add "collapse this section" knobs to allow hiding
  uninteresting or already-read sections

  * Maybe collapse some sections by default, e.g. the md5sums file
diff is neither helpful (there are just hashes) nor informative
(well there are differences elsewhere, so these are differing) in
normal cirumstances

* Drop the outmost table border, my browser already has a window
  border of its own :)


Thanks!
Christoph

___
Reproducible-builds mailing list
Reproducible-builds@lists.alioth.debian.org
http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/reproducible-builds


[Reproducible-builds] Bug#820435: asciidoctor: please honour SOURCE_DATE_EPOCH

2016-04-08 Thread Alexis Bienvenüe
Source: asciidoctor
Version: 1.5.4-1
Severity: wishlist
Tags: patch upstream
User: reproducible-builds@lists.alioth.debian.org
Usertags: toolchain
X-Debbugs-Cc: reproducible-builds@lists.alioth.debian.org

Dear Maintainer,

While working on the “reproducible builds” effort [1], we have noticed
that several packages (like ruby-build) use asciidoctor in their
building process, resulting in timestamps in man files that break
reproducibility.

To solve this kind of issues, it would be nice to have asciidoctor
support the SOURCE_DATE_EPOCH environment variable [2].

See the attached patch for a proposed solution.

Regards,
Alexis Bienvenüe.

[1] https://wiki.debian.org/ReproducibleBuilds
[2] https://reproducible-builds.org/specs/source-date-epoch/


diff -Nru asciidoctor-1.5.4/debian/changelog asciidoctor-1.5.4/debian/changelog
--- asciidoctor-1.5.4/debian/changelog	2016-02-29 20:11:19.0 +0100
+++ asciidoctor-1.5.4/debian/changelog	2016-04-08 11:20:04.0 +0200
@@ -1,3 +1,10 @@
+asciidoctor (1.5.4-1.0~reproducible1) unstable; urgency=medium
+
+  * Honour SOURCE_DATE_EPOCH to make build of packages using ronn
+reproducible.
+
+ -- Alexis Bienvenüe   Fri, 08 Apr 2016 11:20:04 +0200
+
 asciidoctor (1.5.4-1) unstable; urgency=medium
 
   * Team upload
diff -Nru asciidoctor-1.5.4/debian/patches/honour_SOURCE_DATE_EPOCH.patch asciidoctor-1.5.4/debian/patches/honour_SOURCE_DATE_EPOCH.patch
--- asciidoctor-1.5.4/debian/patches/honour_SOURCE_DATE_EPOCH.patch	1970-01-01 01:00:00.0 +0100
+++ asciidoctor-1.5.4/debian/patches/honour_SOURCE_DATE_EPOCH.patch	2016-04-08 12:14:52.0 +0200
@@ -0,0 +1,40 @@
+Description: Honour the SOURCE_DATE_EPOCH environment variable
+ Honour the SOURCE_DATE_EPOCH environment variable, so that output documents'
+ timestamp is set to last debian/changelog entry when building packages that
+ use asciidoctor in their building process.
+Author: Alexis Bienvenüe 
+
+Index: asciidoctor-1.5.4/lib/asciidoctor/document.rb
+===
+--- asciidoctor-1.5.4.orig/lib/asciidoctor/document.rb
 asciidoctor-1.5.4/lib/asciidoctor/document.rb
+@@ -401,7 +401,11 @@ class Document < AbstractBlock
+   #attrs['infile'] = attrs['docfile']
+ 
+   # dynamic intrinstic attribute values
+-  now = ::Time.now
++  if ENV['SOURCE_DATE_EPOCH'].nil?
++now = ::Time.now
++  else
++now = ::Time.at(ENV['SOURCE_DATE_EPOCH'].to_i).gmtime
++  end
+   localdate = (attrs['localdate'] ||= now.strftime('%Y-%m-%d'))
+   unless (localtime = attrs['localtime'])
+ begin
+Index: asciidoctor-1.5.4/lib/asciidoctor.rb
+===
+--- asciidoctor-1.5.4.orig/lib/asciidoctor.rb
 asciidoctor-1.5.4/lib/asciidoctor.rb
+@@ -1308,7 +1308,11 @@ module Asciidoctor
+ if ::File === input
+   # TODO cli checks if input path can be read and is file, but might want to add check to API
+   input_path = ::File.expand_path input.path
+-  input_mtime = input.mtime
++  if ENV['SOURCE_DATE_EPOCH'].nil?
++input_mtime = input.mtime
++  else
++input_mtime = ::Time.at(ENV['SOURCE_DATE_EPOCH'].to_i).gmtime
++  end
+   lines = input.readlines
+   # hold off on setting infile and indir until we get a better sense of their purpose
+   attributes['docfile'] = input_path
diff -Nru asciidoctor-1.5.4/debian/patches/series asciidoctor-1.5.4/debian/patches/series
--- asciidoctor-1.5.4/debian/patches/series	2016-02-29 19:48:47.0 +0100
+++ asciidoctor-1.5.4/debian/patches/series	2016-04-08 11:18:11.0 +0200
@@ -3,3 +3,4 @@
 skip-asciimath-test.patch
 package-version.patch
 skip-unreadable-file.patch
+honour_SOURCE_DATE_EPOCH.patch
___
Reproducible-builds mailing list
Reproducible-builds@lists.alioth.debian.org
http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/reproducible-builds

[Reproducible-builds] Bug#820457: recode: please make the build reproducible (timestamps)

2016-04-08 Thread Alexis Bienvenüe
Source: recode
Version: 3.6-22
Severity: wishlist
Tags: patch upstream
User: reproducible-builds@lists.alioth.debian.org
Usertags: timestamps
X-Debbugs-Cc: reproducible-builds@lists.alioth.debian.org

Dear Maintainer,

While working on the “reproducible builds” effort [1], we have noticed
that 'recode' could not be built reproducibly.

The attached patch makes recode building using a recent version of
help2man (from the debian package) instead of the old one shipped with
the recode sources. This version honours the SOURCE_DATE_EPOCH
environment variable, so that the date used in the documentation is
taken from the last debian/changelog entry. Once applied, recode can be
built reproducibly in our current experimental framework.

Regards,
Alexis Bienvenüe.

 [1]: https://wiki.debian.org/ReproducibleBuilds


diff -Nru recode-3.6/debian/changelog recode-3.6/debian/changelog
--- recode-3.6/debian/changelog	2015-08-26 12:07:35.0 +0200
+++ recode-3.6/debian/changelog	2016-04-08 18:12:42.0 +0200
@@ -1,3 +1,9 @@
+recode (3.6-22.0~reproducible1) unstable; urgency=medium
+
+  * Uses packaged help2man instead of old version shipped with the sources.
+
+ -- Alexis Bienvenüe   Fri, 08 Apr 2016 18:12:42 +0200
+
 recode (3.6-22) unstable; urgency=medium
 
   * Change doc/mdate-sh to use TZ=UTC.
diff -Nru recode-3.6/debian/control recode-3.6/debian/control
--- recode-3.6/debian/control	2013-10-12 17:48:01.0 +0200
+++ recode-3.6/debian/control	2016-04-08 17:44:02.0 +0200
@@ -3,7 +3,7 @@
 Priority: optional
 Maintainer: Santiago Vila 
 Standards-Version: 3.9.4
-Build-Depends: debhelper (>= 9), gettext, texinfo
+Build-Depends: debhelper (>= 9), gettext, texinfo, help2man
 
 Package: recode
 Architecture: any
diff -Nru recode-3.6/debian/patches/14-use-packaged-help2man recode-3.6/debian/patches/14-use-packaged-help2man
--- recode-3.6/debian/patches/14-use-packaged-help2man	1970-01-01 01:00:00.0 +0100
+++ recode-3.6/debian/patches/14-use-packaged-help2man	2016-04-08 17:58:00.0 +0200
@@ -0,0 +1,58 @@
+Description: Use packaged help2man
+ Use packaged help2man instead of the outdated copy included in the
+ sources. This allows reproducibility, since help2man honours
+ SOURCE_DATE_EPOCH since version 1.47.1.
+Author: Alexis Bienvenüe 
+
+Index: recode-3.6/doc/Makefile.am
+===
+--- recode-3.6.orig/doc/Makefile.am
 recode-3.6/doc/Makefile.am
+@@ -20,7 +20,7 @@ AUTOMAKE_OPTIONS = gnits
+ info_TEXINFOS = recode.texi
+ MAKEINFO = LANG= LANGUAGE= @MAKEINFO@
+ 
+-EXTRA_DIST = libiconv.texi rfc1345.texi File-Latin1 help2man Makemore \
++EXTRA_DIST = libiconv.texi rfc1345.texi File-Latin1 Makemore \
+ tables.py
+ 
+ MOSTLYCLEANFILES = recode.ops
+Index: recode-3.6/src/Makefile.am
+===
+--- recode-3.6.orig/src/Makefile.am
 recode-3.6/src/Makefile.am
+@@ -102,7 +102,7 @@ $(srcdir)/merged.c: mergelex.py $(L_STEP
+ $(srcdir)/recode.1: recode
+ 	@if test -r $@ && test ! -w $@; then \
+ 	  echo "WARNING: Page \`$@' read only, not updated"; \
+-	elif $(PERL) $(top_srcdir)/doc/help2man --output=$@ ./recode; then \
++	elif help2man --output=$@ ./recode; then \
+ 	  echo "Page \`$@' has been updated"; \
+ 	else \
+ 	  echo "WARNING: Page \`$@' has *not* been updated."; \
+Index: recode-3.6/src/Makefile.in
+===
+--- recode-3.6.orig/src/Makefile.in
 recode-3.6/src/Makefile.in
+@@ -819,7 +819,7 @@ $(srcdir)/merged.c: mergelex.py $(L_STEP
+ $(srcdir)/recode.1: recode
+ 	@if test -r $@ && test ! -w $@; then \
+ 	  echo "WARNING: Page \`$@' read only, not updated"; \
+-	elif $(PERL) $(top_srcdir)/doc/help2man --name="converts files between character sets" --output=$@ ./recode; then \
++	elif help2man --name="converts files between character sets" --output=$@ ./recode; then \
+ 	  echo "Page \`$@' has been updated"; \
+ 	else \
+ 	  echo "WARNING: Page \`$@' has *not* been updated."; \
+Index: recode-3.6/doc/Makefile.in
+===
+--- recode-3.6.orig/doc/Makefile.in
 recode-3.6/doc/Makefile.in
+@@ -106,7 +106,7 @@ AUTOMAKE_OPTIONS = gnits
+ info_TEXINFOS = recode.texi
+ MAKEINFO = LANG= LANGUAGE= @MAKEINFO@
+ 
+-EXTRA_DIST = libiconv.texi rfc1345.texi File-Latin1 help2man Makemore tables.py
++EXTRA_DIST = libiconv.texi rfc1345.texi File-Latin1 Makemore tables.py
+ 
+ 
+ MOSTLYCLEANFILES = recode.ops
diff -Nru recode-3.6/debian/patches/series recode-3.6/debian/patches/series
--- recode-3.6/debian/patches/series	2015-08-26 01:33:14.0 +0200
+++ recode-3.6/debian/patches/series	2016-04-08 17:30:43.0 +0200
@@ -12,3 +12,4 @@
 12-src-names-c-format-string
 13-mdate-sh-use-tz-utc
 99-config-guess-config-sub
+14-use-packaged-help2man
___
Reproducible-builds mailing list
Reproducible-builds@lists