[Reproducible-builds] Bug#791755: go-md2man: FTFBFS: src/github.com/russross/blackfriday/sanitize.go:6:2: code in directory /tmp/buildd/go-md2man-1.0.2/obj-x86_64-linux-gnu/src/code.google.com/p/go.ne

2015-07-08 Thread Mattia Rizzolo
Source: go-md2man
Version: 1.0.2-1
Severity: serious
User: reproducible-builds@lists.alioth.debian.org
Usertags: ftbfs

Dear maintianer,
you package FTBFS as follow in my pbuilder:


 debian/rules build
dh build --buildsystem=golang --with=golang
   debian/rules override_dh_auto_build
make[1]: Entering directory '/tmp/buildd/go-md2man-1.0.2'
dh_auto_build
cd obj-x86_64-linux-gnu
go install -v github.com/cpuguy83/go-md2man 
github.com/cpuguy83/go-md2man/mangen
src/github.com/russross/blackfriday/sanitize.go:6:2: code in directory 
/tmp/buildd/go-md2man-1.0.2/obj-x86_64-linux-gnu/src/code.google.com/p/go.net/html
 expects import golang.org/x/net/html
dh_auto_build: go install -v github.com/cpuguy83/go-md2man 
github.com/cpuguy83/go-md2man/mangen returned exit code 1
debian/rules:13: recipe for target 'override_dh_auto_build' failed
make[1]: *** [override_dh_auto_build] Error 1
make[1]: Leaving directory '/tmp/buildd/go-md2man-1.0.2'
debian/rules:10: recipe for target 'build' failed
make: *** [build] Error 2
dpkg-buildpackage: error: debian/rules build gave error exit status 2


Alternative (full) build log:
https://reproducible.debian.net/rb-pkg/unstable/amd64/go-md2man.html

-- 
regards,
Mattia Rizzolo

GPG Key: 66AE 2B4A FCCF 3F52 DA18  4D18 4B04 3FCD B944 4540 .''`.
more about me:  http://mapreri.org : :'  :
Launchpad user: https://launchpad.net/~mapreri `. `'`
Debian QA page: https://qa.debian.org/developer.php?login=mattia `-


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

[Reproducible-builds] Bug#791815: libxslt: please support timestamps from environment

2015-07-08 Thread Dhole
Source: libxslt
Version: 1.1.28-2
Severity: wishlist
Tags: patch
User: reproducible-builds@lists.alioth.debian.org
Usertags: toolchain timestamps

Hi!

While working on the “reproducible builds” effort [1], we have noticed
that libxslt embeds timestamps when generating documentation.

We have a proposal for using a deterministic timestamp [2] (based on
the latest debian/changelog entry) which is contained in the environment
variable SOURCE_DATE_EPOCH (currently exported by debhelper in our
experimental framework).

The attached patch proposes a way to use this variable to get
reproducible timestamps when generating docs, if the variable has been
set (if not, it falls back to the old behavior).


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

Regards,
-- 
Dhole
diff -Nru libxslt-1.1.28/debian/changelog libxslt-1.1.28/debian/changelog
--- libxslt-1.1.28/debian/changelog 2015-07-01 12:00:21.0 +0200
+++ libxslt-1.1.28/debian/changelog 2015-07-08 15:19:03.0 +0200
@@ -1,9 +1,14 @@
-libxslt (1.1.28-2.0~reproducible3) UNRELEASED; urgency=low
+libxslt (1.1.28-2.0~reproducible4) UNRELEASED; urgency=low
 
+  [ Jérémy Bobbio ]
   * Add a patch from Daniel Veillard to make generate-id() provide stable IDs
 to make its output reproducible.
 
- -- Jérémy Bobbio lu...@debian.org  Wed, 01 Jul 2015 11:49:58 +0200
+  [ Eduard Sanou ]
+  * Add support for reproducible builds by using $SOURCE_DATE_EPOCH as the
+date when processing docs (when using the var $date).
+
+ -- Dhole dh...@openmailbox.org  Wed, 08 Jul 2015 15:05:07 +0200
 
 libxslt (1.1.28-2) unstable; urgency=low
 
diff -Nru 
libxslt-1.1.28/debian/patches/0010-Replace-timestamp-with-SOURCE_DATE_EPOCH 
libxslt-1.1.28/debian/patches/0010-Replace-timestamp-with-SOURCE_DATE_EPOCH
--- libxslt-1.1.28/debian/patches/0010-Replace-timestamp-with-SOURCE_DATE_EPOCH 
1970-01-01 01:00:00.0 +0100
+++ libxslt-1.1.28/debian/patches/0010-Replace-timestamp-with-SOURCE_DATE_EPOCH 
2015-07-08 15:18:26.0 +0200
@@ -0,0 +1,65 @@
+Description: Replace date timestamp by SOURCE_DATE_EPOCH env var
+Author: Dhole dh...@openmailbox.org
+
+---
+
+--- libxslt-1.1.28.orig/libexslt/date.c
 libxslt-1.1.28/libexslt/date.c
+@@ -46,6 +46,7 @@
+ #include exslt.h
+ 
+ #include string.h
++#include errno.h
+ 
+ #ifdef HAVE_MATH_H
+ #include math.h
+@@ -747,21 +748,46 @@ static exsltDateValPtr
+ exsltDateCurrent (void)
+ {
+ struct tm localTm, gmTm;
++struct tm *tb = NULL;
+ time_t secs;
+ int local_s, gm_s;
+ exsltDateValPtr ret;
++char *source_date_epoch;
+ 
+ ret = exsltDateCreateDate(XS_DATETIME);
+ if (ret == NULL)
+ return NULL;
+ 
+-/* get current time */
+ secs= time(NULL);
++/* 
++ * Allow the date and time to be set externally by an exported
++ * environment variable to enable reproducible builds. 
++ */
++source_date_epoch = getenv(SOURCE_DATE_EPOCH);
++if (source_date_epoch) {
++  errno = 0;
++  secs = (time_t) strtol (source_date_epoch, NULL, 10);
++  if (errno == 0) {
++  tb = gmtime(secs);
++  if (tb == NULL) {
++  /* SOURCE_DATE_EPOCH is not a valid date */
++  return NULL;
++  } else {
++  localTm = *tb;
++  }
++  } else {
++  /* SOURCE_DATE_EPOCH is not a valid number */
++  return NULL;
++  } 
++} else {
++  /* get current time */
+ #if HAVE_LOCALTIME_R
+-localtime_r(secs, localTm);
++  localtime_r(secs, localTm);
+ #else
+-localTm = *localtime(secs);
++  localTm = *localtime(secs);
+ #endif
++}
++
+ 
+ /* get real year, not years since 1900 */
+ ret-value.date.year = localTm.tm_year + 1900;
diff -Nru libxslt-1.1.28/debian/patches/series 
libxslt-1.1.28/debian/patches/series
--- libxslt-1.1.28/debian/patches/series2015-07-01 12:00:21.0 
+0200
+++ libxslt-1.1.28/debian/patches/series2015-07-08 15:13:19.0 
+0200
@@ -7,3 +7,4 @@
 0007-EXSLT-function-str-replace-is-broken-as-is.patch
 0008-Fix-quoting-of-xlocale-test-program-in-configure.in.patch
 0009-Make-generate-id-deterministic.patch
+0010-Replace-timestamp-with-SOURCE_DATE_EPOCH


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

[Reproducible-builds] Bug#791815: Info received ( Bug#791815: libxslt: please support timestamps from environment)

2015-07-08 Thread Debian Bug Tracking System
Thank you for the additional information you have supplied regarding
this Bug report.

This is an automatically generated reply to let you know your message
has been received.

Your message is being forwarded to the package maintainers and other
interested parties for their attention; they will reply in due course.

Your message has been sent to the package maintainer(s):
 Debian XML/SGML Group debian-xml-sgml-p...@lists.alioth.debian.org

If you wish to submit further information on this problem, please
send it to 791...@bugs.debian.org.

Please do not send mail to ow...@bugs.debian.org unless you wish
to report a problem with the Bug-tracking system.

-- 
791815: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=791815
Debian Bug Tracking System
Contact ow...@bugs.debian.org with problems

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


[Reproducible-builds] debhelper: set SOURCE_DATE_EPOCH env var for reproducible builds

2015-07-08 Thread Dhole
Source: debhelper
Version: 9.20150628
Severity: wishlist
Tags: patch
User: reproducible-builds@lists.alioth.debian.org
Usertags: toolchain timestamps

Hi!

While working on the “reproducible builds” effort [1] we have a proposal
of using deterministic timestamps [2] (based on the latest
debian/changelog entry) which is to be set in the environment variable
SOURCE_DATE_EPOCH.

The attached patch makes debhelper export the SOURCE_DATE_EPOCH env
variable during the execution with the latest debian/changelog entry
timestamp, so that packages running during the build process can read it
and replace localtime date/times calls with the exported timestamp in
order to have reproducible builds.

Also, in order to help reproducible builds, a fixed timezone is exported
(TZ=UTC).

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

Regards,
-- 
Dhole
diff -Nru debhelper-9.20150628/debian/changelog 
debhelper-9.20150628+nmu1/debian/changelog
--- debhelper-9.20150628/debian/changelog   2015-06-28 13:56:15.0 
+0200
+++ debhelper-9.20150628+nmu1/debian/changelog  2015-07-08 19:35:19.0 
+0200
@@ -1,3 +1,12 @@
+debhelper (9.20150628+nmu1) UNRELEASED; urgency=medium
+
+  * Non-maintainer upload.
+  * export the env var SOURCE_DATE_EPOCH with the last debian/changelog
+timestamp.
+  * set env TZ=UTC
+
+ -- Dhole dh...@openmailbox.org  Wed, 08 Jul 2015 19:34:46 +0200
+
 debhelper (9.20150628) unstable; urgency=medium
 
   * Upload to unstable with ddebs support disabled by default.
diff -Nru debhelper-9.20150628/Debian/Debhelper/Dh_Lib.pm 
debhelper-9.20150628+nmu1/Debian/Debhelper/Dh_Lib.pm
--- debhelper-9.20150628/Debian/Debhelper/Dh_Lib.pm 2015-06-28 
13:24:32.0 +0200
+++ debhelper-9.20150628+nmu1/Debian/Debhelper/Dh_Lib.pm2015-07-08 
19:34:25.0 +0200
@@ -1144,12 +1144,44 @@
}
 }
 
+# Read latest debian/changelog timestamp and export the environment variable
+# SOURCE_DATE_EPOCH with its value, so that any package can read it and 
replace 
+# calls to localtime (or other undeterministic timestamps) with the exported 
+# timestamp to get reproducible builds.
+sub set_source_date_epoch {
+   eval use Dpkg::Changelog::Debian;
+   if ($@) {
+   warning unable to set SOURCE_DATE_EPOCH: $@;
+   return;
+   }
+   eval use Time::Piece;
+   if ($@) {
+   warning unable to set SOURCE_DATE_EPOCH: $@;
+   return;
+   }
+
+   my $changelog = Dpkg::Changelog::Debian-new();
+   $changelog-load(debian/changelog);
+
+   my $tt = @{$changelog}[0]-get_timestamp();
+   $tt =~ s/\s*\([^\)]+\)\s*$//; # Remove the optional timezone codename
+   my $timestamp = Time::Piece-strptime($tt, %a, %d %b %Y %T %z);
+
+   $ENV{SOURCE_DATE_EPOCH} = $timestamp-epoch();
+}
+
 # Sets environment variables from dpkg-buildflags. Avoids changing
 # any existing environment variables.
 sub set_buildflags {
-   return if $ENV{DH_INTERNAL_BUILDFLAGS} || compat(8);
+   return if $ENV{DH_INTERNAL_BUILDFLAGS};
$ENV{DH_INTERNAL_BUILDFLAGS}=1;
 
+   set_source_date_epoch();
+   # Set env timezone to UTC to help packages build reproducibly
+   $ENV{TZ} = UTC;
+
+   return if compat(8);
+
eval use Dpkg::BuildFlags;
if ($@) {
warning unable to load build flags: $@;


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

Re: [Reproducible-builds] Bug#791815: libxslt: please support timestamps from environment

2015-07-08 Thread Dhole
On 07/08/2015 06:44 PM, Dhole wrote:
 Source: libxslt
 Version: 1.1.28-2
 Severity: wishlist
 Tags: patch
 User: reproducible-builds@lists.alioth.debian.org
 Usertags: toolchain timestamps
 
 Hi!
 
 While working on the “reproducible builds” effort [1], we have noticed
 that libxslt embeds timestamps when generating documentation.
 
 We have a proposal for using a deterministic timestamp [2] (based on
 the latest debian/changelog entry) which is contained in the environment
 variable SOURCE_DATE_EPOCH (currently exported by debhelper in our
 experimental framework).
 
 The attached patch proposes a way to use this variable to get
 reproducible timestamps when generating docs, if the variable has been
 set (if not, it falls back to the old behavior).
 
 
  [1]: https://wiki.debian.org/ReproducibleBuilds
  [2]: https://wiki.debian.org/ReproducibleBuilds/TimestampsProposal
 

The submitted bug for the mentioned feature in debhelper can be found
at: https://bugs.debian.org/791823


Regards,
-- 
Dhole



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

[Reproducible-builds] Bug#791845: yacas: please make the build reproducible

2015-07-08 Thread Reiner Herrmann
Source: yacas
Version: 1.3.3-2
Severity: wishlist
Tags: patch
User: reproducible-builds@lists.alioth.debian.org
Usertags: locale
X-Debbugs-Cc: reproducible-builds@lists.alioth.debian.org

Hi!

While working on the reproducible builds effort [1], we have noticed
that yacas could not be built reproducibly.
The hints file is sorted differently depending on the configured locale.

The attached patch fixes this by setting LC_ALL to C before sorting.

Regards,
 Reiner

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

diff --git a/debian/patches/02_reproducible-build.patch b/debian/patches/02_reproducible-build.patch
new file mode 100644
index 000..da6b98c
--- /dev/null
+++ b/debian/patches/02_reproducible-build.patch
@@ -0,0 +1,16 @@
+Author: Reiner Herrmann rei...@reiner-h.de
+Description: normalize locale to get reproducible order
+
+Index: yacas-1.3.3/manmake/Makefile.am
+===
+--- yacas-1.3.3.orig/manmake/Makefile.am
 yacas-1.3.3/manmake/Makefile.am
+@@ -22,7 +22,7 @@ hints: manripper removeduplicates $(REFS
+ 	rm -f hints.unsorted
+ 	for file in ref.book.txt $(REFSOURCES) refprog.book.txt $(REFPROGSOURCES); do \
+ 	./manripper $(srcdir)/$$file  hints.unsorted ; done
+-	sort -t : hints.unsorted  hints.sorted
++	LC_ALL=C sort -t : hints.unsorted  hints.sorted
+ 	./removeduplicates hints.sorted hints.singlesorted
+ 	echo   tail.txt
+ 	cat hints.singlesorted tail.txt  hints
diff --git a/debian/patches/series b/debian/patches/series
index f1af840..57cb584 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -1 +1,2 @@
 01_locchanges.patch
+02_reproducible-build.patch


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

[Reproducible-builds] Bug#791851: scowl: please make the build reproducible

2015-07-08 Thread Reiner Herrmann
Source: scowl
Version: 7.1-1
Severity: wishlist
Tags: patch
User: reproducible-builds@lists.alioth.debian.org
Usertags: locale
X-Debbugs-Cc: reproducible-builds@lists.alioth.debian.org

Hi!

While working on the reproducible builds effort [1], we have noticed
that scowl could not be built reproducibly.
The dictionary files are sorted differently depending on the configured locale.

The attached patch fixes this by setting LC_ALL to C before sorting.

Regards,
 Reiner

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

diff --git a/debian/rules b/debian/rules
index a66c8e7..ccbdb40 100755
--- a/debian/rules
+++ b/debian/rules
@@ -75,8 +75,8 @@ build-stamp:
 		fi;\
 	  done;\
 	done;\
-	  echo cat $$SPELLING-english$$SIZE.unsorted | sort -u | iconv -t 'utf-8'  $$SPELLING-english$$SIZE; rm $$SPELLING-english$$SIZE.unsorted;\
-	  cat $$SPELLING-english$$SIZE.unsorted | sort -u | iconv -f 'iso8859-1' -t 'utf-8'  $$SPELLING-english$$SIZE; rm $$SPELLING-english$$SIZE.unsorted;\
+	  echo cat $$SPELLING-english$$SIZE.unsorted | LC_ALL=C sort -u | iconv -t 'utf-8'  $$SPELLING-english$$SIZE; rm $$SPELLING-english$$SIZE.unsorted;\
+	  cat $$SPELLING-english$$SIZE.unsorted | LC_ALL=C sort -u | iconv -f 'iso8859-1' -t 'utf-8'  $$SPELLING-english$$SIZE; rm $$SPELLING-english$$SIZE.unsorted;\
 	  done;\
 	done
 


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

[Reproducible-builds] [PATCH 4/5] DocBook: Avoid building man pages repeatedly and inconsistently

2015-07-08 Thread Ben Hutchings
Some kernel-doc sections are included in multiple DocBook files.  This
means the mandocs target will generate the same manual page multiple
times with different metadata (author name/address and manual title,
taken from the including DocBook file).  If it's invoked in a parallel
build, the output is nondeterminstic.

For each section that is duplicated, mark the less specific manual's
inclusion as 'extra' and exclude it during conversion to manual pages.
Use xmlif for this, as that is bundled with xmlto which we already
use.

I would have preferred to use more conventional markup for this, but
each of the following approaches failed:

1. Wrap the extra inclusions with a new element and add a template to
   the stylesheet to include/exclude them.  Unfortunately DocBook XSL
   doesn't seem to support foreign elements at an intermediate level
   in the document tree.
2. Use DocBook profiling.  This works but requires passing an absolute
   path to the profile stylesheet to xmlto, so it's not portable.
3. Use SGML marked sections.  docbook2x can handle these but xmlto
   chokes on them.

Reported-by: Jérémy Bobbio lu...@debian.org
Signed-off-by: Ben Hutchings b...@decadent.org.uk
---
 Documentation/DocBook/Makefile| 10 +-
 Documentation/DocBook/device-drivers.tmpl |  6 ++
 Documentation/DocBook/gadget.tmpl |  3 +++
 Documentation/DocBook/kernel-api.tmpl |  6 ++
 4 files changed, 24 insertions(+), 1 deletion(-)

diff --git a/Documentation/DocBook/Makefile b/Documentation/DocBook/Makefile
index 11a4145..83fcb6c 100644
--- a/Documentation/DocBook/Makefile
+++ b/Documentation/DocBook/Makefile
@@ -56,6 +56,13 @@ htmldocs: $(HTML)
 
 MAN := $(patsubst %.xml, %.9, $(BOOKS))
 mandocs: $(MAN)
+   @dups=$$(sed -n 's/.*refname\([^]*\)\/refname.*/\1/p'  \
+$(obj)/*.xml.noextra | sort | uniq -d);\
+   if [ -n $$dups ]; then\
+   echo 2 The following manual pages are generated more than 
once:; \
+   printf 2 '%s\n' $$dups; \
+   exit 1; \
+   fi
find $(obj)/man -name '*.9' | xargs gzip -nf
 
 installmandocs: mandocs
@@ -150,7 +157,7 @@ quiet_cmd_db2html = HTML$@
 cp $(PNG-$(basename $(notdir $@))) $(patsubst %.html,%,$@); fi
 
 quiet_cmd_db2man = MAN $@
-  cmd_db2man = if grep -q refentry $; then xmlto man $(XMLTOFLAGS) -o 
$(obj)/man $ ; fi
+  cmd_db2man = if grep -q refentry $; then xmlif excludeextra=1 $ 
$.noextra  xmlto man $(XMLTOFLAGS) -o $(obj)/man $.noextra ; fi
 %.9 : %.xml
@(which xmlto  /dev/null 21) || \
 (echo *** You need to install xmlto ***; \
@@ -217,6 +224,7 @@ clean-files := $(DOCBOOKS) \
$(patsubst %.xml, %.ps,   $(DOCBOOKS)) \
$(patsubst %.xml, %.pdf,  $(DOCBOOKS)) \
$(patsubst %.xml, %.html, $(DOCBOOKS)) \
+   $(patsubst %, %.noextra,  $(DOCBOOKS)) \
$(patsubst %.xml, %.9,$(DOCBOOKS)) \
$(index)
 
diff --git a/Documentation/DocBook/device-drivers.tmpl 
b/Documentation/DocBook/device-drivers.tmpl
index faf09d4..87853ea 100644
--- a/Documentation/DocBook/device-drivers.tmpl
+++ b/Documentation/DocBook/device-drivers.tmpl
@@ -194,8 +194,13 @@ X!Edrivers/pnp/system.c
 
   chapter id=snddev
  titleSound Devices/title
+?xmlif if excludeextra='1'?
+?xmlif else?
 !Iinclude/sound/core.h
+?xmlif fi?
 !Esound/sound_core.c
+?xmlif if excludeextra='1'?
+?xmlif else?
 !Iinclude/sound/pcm.h
 !Esound/core/pcm.c
 !Esound/core/device.c
@@ -211,6 +216,7 @@ X!Edrivers/pnp/system.c
 !Esound/core/hwdep.c
 !Esound/core/pcm_native.c
 !Esound/core/memalloc.c
+?xmlif fi?
 !-- FIXME: Removed for now since no structured comments in source
 X!Isound/sound_firmware.c
 --
diff --git a/Documentation/DocBook/gadget.tmpl 
b/Documentation/DocBook/gadget.tmpl
index 6416292..e1b87bd 100644
--- a/Documentation/DocBook/gadget.tmpl
+++ b/Documentation/DocBook/gadget.tmpl
@@ -488,7 +488,10 @@ These are the same types and constants used by host
 side drivers (and usbcore).
 /para
 
+?xmlif if excludeextra='1'?
+?xmlif else?
 !Iinclude/linux/usb/ch9.h
+?xmlif fi?
 /sect1
 
 sect1 id=coretitleCore Objects and Methods/title
diff --git a/Documentation/DocBook/kernel-api.tmpl 
b/Documentation/DocBook/kernel-api.tmpl
index ecfd0ea..722249a 100644
--- a/Documentation/DocBook/kernel-api.tmpl
+++ b/Documentation/DocBook/kernel-api.tmpl
@@ -58,8 +58,11 @@
 
  sect1titleString Conversions/title
 !Elib/vsprintf.c
+?xmlif if excludeextra='1'?
+?xmlif else?
 !Finclude/linux/kernel.h kstrtol
 !Finclude/linux/kernel.h kstrtoul
+?xmlif fi?
 !Elib/kstrtox.c
  /sect1
  sect1titleString Manipulation/title
@@ -178,7 +181,10 @@ X!Ekernel/module.c
   chapter id=hardware
  titleHardware Interfaces/title
  sect1titleInterrupt Handling/title
+?xmlif if excludeextra='1'?
+?xmlif else?
 !Ekernel/irq/manage.c

[Reproducible-builds] [PATCH 3/5] DocBook: Generate consistent IDs

2015-07-08 Thread Ben Hutchings
By default, DocBook XSL uses a non-deterministic function to generate
IDs for HTML elements where it can't take a name from the input
document.  However, it has the option to generate 'consistent'
(deterministic) IDs instead.  Enable this to make the HTML pages
reproducible.

Reported-by: Jérémy Bobbio lu...@debian.org
Signed-off-by: Ben Hutchings b...@decadent.org.uk
---
 Documentation/DocBook/stylesheet.xsl | 1 +
 1 file changed, 1 insertion(+)

diff --git a/Documentation/DocBook/stylesheet.xsl 
b/Documentation/DocBook/stylesheet.xsl
index 85b2527..3bf4ecf 100644
--- a/Documentation/DocBook/stylesheet.xsl
+++ b/Documentation/DocBook/stylesheet.xsl
@@ -5,6 +5,7 @@
 param name=funcsynopsis.tabular.threshold80/param
 param name=callout.graphics0/param
 !-- param name=paper.typeA4/param --
+param name=generate.consistent.ids1/param
 param name=generate.section.toc.level2/param
 param name=use.id.as.filename1/param
 /stylesheet

-- 
Ben Hutchings
If the facts do not conform to your theory, they must be disposed of.



signature.asc
Description: This is a digitally signed message part
___
Reproducible-builds mailing list
Reproducible-builds@lists.alioth.debian.org
http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/reproducible-builds

[Reproducible-builds] [PATCH 0/5] Reproducible document builds

2015-07-08 Thread Ben Hutchings
As part of the reproducible builds project, Jérémy Bobbio identified
several time-dependent and non-deterministic functions in the document
build process (htmldocs, mandocs targets).  This patch series should
fix all of those.

Ben.

Ben Hutchings (4):
  DocBook: Don't store mtime (or name) in compressed man pages
  DocBook: Generate consistent IDs
  DocBook: Avoid building man pages repeatedly and inconsistently
  scripts/kernel-doc: Use $KBUILD_BUILD_TIMESTAMP as man page date

Jérémy Bobbio (1):
  scripts/kernel-doc: parse kernel-doc deterministically

 Documentation/DocBook/Makefile| 12 ++--
 Documentation/DocBook/device-drivers.tmpl |  6 ++
 Documentation/DocBook/gadget.tmpl |  3 +++
 Documentation/DocBook/kernel-api.tmpl |  6 ++
 Documentation/DocBook/stylesheet.xsl  |  1 +
 scripts/kernel-doc| 17 +
 6 files changed, 39 insertions(+), 6 deletions(-)

-- 
Ben Hutchings
If the facts do not conform to your theory, they must be disposed of.



signature.asc
Description: This is a digitally signed message part
___
Reproducible-builds mailing list
Reproducible-builds@lists.alioth.debian.org
http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/reproducible-builds

[Reproducible-builds] [PATCH 2/5] DocBook: Don't store mtime (or name) in compressed man pages

2015-07-08 Thread Ben Hutchings
The mtime on a man page is the build time.  As gzip stores the mtime
and original name in the compressed file by default, this makes
compressed man pages unreproducible.  Neither of these are important
metadata in this case, so turn this off.

Reported-by: Jérémy Bobbio lu...@debian.org
Signed-off-by: Ben Hutchings b...@decadent.org.uk
---
 Documentation/DocBook/Makefile | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/Documentation/DocBook/Makefile b/Documentation/DocBook/Makefile
index b6a6a2e..11a4145 100644
--- a/Documentation/DocBook/Makefile
+++ b/Documentation/DocBook/Makefile
@@ -56,7 +56,7 @@ htmldocs: $(HTML)
 
 MAN := $(patsubst %.xml, %.9, $(BOOKS))
 mandocs: $(MAN)
-   find $(obj)/man -name '*.9' | xargs gzip -f
+   find $(obj)/man -name '*.9' | xargs gzip -nf
 
 installmandocs: mandocs
mkdir -p /usr/local/man/man9/

-- 
Ben Hutchings
If the facts do not conform to your theory, they must be disposed of.



signature.asc
Description: This is a digitally signed message part
___
Reproducible-builds mailing list
Reproducible-builds@lists.alioth.debian.org
http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/reproducible-builds

[Reproducible-builds] Bug#791834: bitcoin: please make the build reproducible

2015-07-08 Thread Reiner Herrmann
Source: bitcoin
Version: 0.10.2-3
Severity: wishlist
Tags: patch
User: reproducible-builds@lists.alioth.debian.org
Usertags: locale
X-Debbugs-Cc: reproducible-builds@lists.alioth.debian.org

Hi!

While working on the reproducible builds€ effort [1], we have noticed
that bitcoin could not be built reproducibly.
A file list is sorted differently depending on the locale.

The attached patch fixes this by setting to LC_ALL to C before sorting.

Regards,
 Reiner

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

diff --git a/debian/patches/1008_reproducible_build.patch b/debian/patches/1008_reproducible_build.patch
new file mode 100644
index 000..e1efccc
--- /dev/null
+++ b/debian/patches/1008_reproducible_build.patch
@@ -0,0 +1,20 @@
+Author: Reiner Herrmann rei...@reiner-h.de
+Description: Locale-independent sorting of file list
+ sort behaves differently depending on the configured locale,
+ which results in an unreproducible build.
+ By setting LC_ALL to C before sorting, the file list will
+ always be the same.
+
+Index: bitcoin-0.10.2/src/leveldb/build_detect_platform
+===
+--- bitcoin-0.10.2.orig/src/leveldb/build_detect_platform
 bitcoin-0.10.2/src/leveldb/build_detect_platform
+@@ -188,7 +188,7 @@ set -f # temporarily disable globbing so
+ PRUNE_TEST=-name *test*.cc -prune
+ PRUNE_BENCH=-name *_bench.cc -prune
+ PRUNE_TOOL=-name leveldb_main.cc -prune
+-PORTABLE_FILES=`find $DIRS $PRUNE_TEST -o $PRUNE_BENCH -o $PRUNE_TOOL -o -name '*.cc' -print | sort | sed s,^$PREFIX/,, | tr \n  `
++PORTABLE_FILES=`find $DIRS $PRUNE_TEST -o $PRUNE_BENCH -o $PRUNE_TOOL -o -name '*.cc' -print | LC_ALL=C sort | sed s,^$PREFIX/,, | tr \n  `
+ 
+ set +f # re-enable globbing
+ 
diff --git a/debian/patches/series b/debian/patches/series
index feeb0e2..5ace2d5 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -3,4 +3,5 @@
 #1005_use_system_leveldb.patch
 1006_libmemenv_kfrebsd.patch
 1007_libmemenv_hurd.patch
+1008_reproducible_build.patch
 2002_libmemenv_debian-ports.patch


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