Re: [Reproducible-builds] licencing reproducible/presentations.git

2016-02-06 Thread Reiner Herrmann
On Thu, Feb 04, 2016 at 11:07:41AM +0100, Holger Levsen wrote:
> but in any case the question is: are you fine to licence your work under 
> Creative Commons Attribution-Share Alike 3.0 License or (at the choice of the 
> user of the works) under GNU Free Documentation License, Version 1.3 or 
> later, 
> with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts?

Yes, I'm fine with that.

Regards,
 Reiner


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] package uploaded to our repo

2016-02-06 Thread Reiner Herrmann
texlive-bin_2015.20150524.37493-7.0~reproducible3.dsc has just been uploaded to 
https://wiki.debian.org/ReproducibleBuilds/ExperimentalToolchain

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


[Reproducible-builds] Bug#813932: sunpy: FTBFS: IndexError: only integers, slices (`:`), ellipsis (`...`), numpy.newaxis (`None`) and integer or boolean arrays are valid indices

2016-02-06 Thread Chris Lamb
Source: sunpy
Version: 0.6.1-2
Severity: serious
Justification: fails to build from source
User: reproducible-builds@lists.alioth.debian.org
Usertags: ftbfs
X-Debbugs-Cc: reproducible-builds@lists.alioth.debian.org

Dear Maintainer,

sunpy fails to build from source in unstable/amd64:

  [..]

  --
  new_delt : float
  New delta between consecutive values.
  """
  if self.t_delt == new_delt:
  return self
  factor = self.t_delt / float(new_delt)
  
  # The last data-point does not change!
  new_size = floor((self.shape[1] - 1) * factor + 1) # pylint: 
disable=E1101
  data = ndimage.zoom(self.data, (1, new_size / self.shape[1])) # 
pylint: disable=E1101
  
  params = self._get_params()
  params.update({
  'time_axis': np.linspace(
  self.time_axis[0],
  >   self.time_axis[(new_size - 1) * new_delt / self.t_delt],
  new_size
  ),
  't_delt': new_delt,
  })
  E   IndexError: only integers, slices (`:`), ellipsis (`...`), 
numpy.newaxis (`None`) and integer or boolean arrays are valid indices
  
  sunpy/spectra/spectrogram.py:960: IndexError
  __ test_combine_freqs 
__
  
  def test_combine_freqs():
  image = np.random.rand(5, 3600)
  spec = LinearTimeSpectrogram(image,
  np.linspace(0, image.shape[1] - 1, image.shape[1]),
  np.array([8, 6, 4, 2, 0]),
  datetime(2010, 1, 1, 0, 15),
  datetime(2010, 1, 1, 0, 30),
  900,
  0.25
  )
  image = np.random.rand(5, 3600)
  spec2 = LinearTimeSpectrogram(image,
  np.linspace(0, image.shape[1] - 1, image.shape[1]),
  np.array([9, 7, 5, 3, 1]),
  datetime(2010, 1, 1, 0, 15),
  datetime(2010, 1, 1, 0, 30),
  900,
  0.25
  )
  >   comb = LinearTimeSpectrogram.combine_frequencies([spec, spec2])
  
  sunpy/spectra/tests/test_spectrogram.py:575: 
  _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
_ 
  sunpy/spectra/spectrogram.py:1162: in combine_frequencies
  specs = cls.intersect_time(specs)
  sunpy/spectra/spectrogram.py:1144: in intersect_time
  cut = [sp[:, (start - sp.t_init) / delt:] for sp in specs]
  sunpy/spectra/spectrogram.py:601: in __getitem__
  return self._slice(key[0], key[1])
  _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
_ 
  
  self = 
  y_range = slice(None, None, None), x_range = slice(0.0, None, None)
  
  def _slice(self, y_range, x_range):
  """Return new spectrogram reduced to the values passed
  as slices. Implementation detail."""
  >   data = self.data[y_range, x_range]
  E   IndexError: invalid slice
  
  sunpy/spectra/spectrogram.py:339: IndexError
  _ test_intersect_time 
__
  
  def test_intersect_time():
  image = np.random.rand(5, 3600)
  spec = LinearTimeSpectrogram(image,
  np.linspace(0, 0.25 * (image.shape[1] - 1), image.shape[1]),
  np.array([8, 6, 4, 2, 0]),
  datetime(2010, 1, 1, 0, 15),
  datetime(2010, 1, 1, 0, 30),
  900,
  0.25
  )
  image = np.random.rand(5, 3600)
  spec2 = LinearTimeSpectrogram(image,
  np.linspace(0, 0.25 * (image.shape[1] - 1), image.shape[1]),
  np.array([9, 7, 5, 3, 1]),
  datetime(2010, 1, 1, 0, 15),
  datetime(2010, 1, 1, 0, 30),
  901,
  0.25
  )
  
  one, other = LinearTimeSpectrogram.intersect_time(
  >   [spec, spec2]
  )
  
  sunpy/spectra/tests/test_spectrogram.py:632: 
  _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
_ 
  sunpy/spectra/spectrogram.py:1144: in intersect_time
  cut = [sp[:, (start - sp.t_init) / delt:] for sp in specs]
  sunpy/spectra/spectrogram.py:601: in __getitem__
  return self._slice(key[0], key[1])
  _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
_ 
  
  self = 
  y_range = slice(None, None, None), x_range = slice(4.0, None, None)
  
  def _slice(self, y_range, x_range):
  """Return new spectrogram reduced to the values passed
  as slices. Implementation detail."""
  >   data = self.data[y_range, x_range]
  E   IndexError: invalid slice
  
  sunpy/spectra/spectrogram.py:339: IndexError
   test_linearize 

  
  def test_linearize():
  image = np.random.rand(5, 900)
  spec = LinearTimeSpectrogram(image,
  np.linspace(0, 1 * 

[Reproducible-builds] Bug#813944: cvm: please make the build reproducible

2016-02-06 Thread Reiner Herrmann
Source: cvm
Version: 0.96-1.2
Severity: wishlist
Tags: patch
User: reproducible-builds@lists.alioth.debian.org
Usertags: timestamps fileordering umask
X-Debbugs-Cc: reproducible-builds@lists.alioth.debian.org

Hi!

While working on the "reproducible builds" effort [1], we have noticed
that cvm could not be built reproducibly.
Build timestamps are embedded in gzip headers, the permissions of some
directories are influenced by the umask and the order of the md5sums
file can vary.

The attached patch fixes those issues.

Regards,
 Reiner

[1]: https://wiki.debian.org/ReproducibleBuilds
diff --git a/debian/implicit b/debian/implicit
index 57a444a..b009aa1 100644
--- a/debian/implicit
+++ b/debian/implicit
@@ -35,7 +35,7 @@ deb-checkuid:
 	debian/$*/usr/share/doc/$*/changelog'
 	@test -s debian/$*/usr/share/doc/$*/changelog || \
 	  sh -cx 'rm -f debian/$*/usr/share/doc/$*/changelog'
-	@gzip -9 debian/$*/usr/share/doc/$*/changelog*
+	@gzip -9n debian/$*/usr/share/doc/$*/changelog*
 %.deb-docs-docs:
 	@for i in `cat debian/$*.docs 2>/dev/null || :`; do \
 	  sh -cx "install -m0644 $$i debian/$*/usr/share/doc/$*/" || exit 1; \
@@ -46,7 +46,7 @@ deb-checkuid:
 	@if test -r debian/$*.NEWS.Debian; then \
 	  sh -cx 'install -m0644 debian/$*.NEWS.Debian \
 	debian/$*/usr/share/doc/$*/NEWS.Debian && \
-	  gzip -9 debian/$*/usr/share/doc/$*/NEWS.Debian'; \
+	  gzip -9n debian/$*/usr/share/doc/$*/NEWS.Debian'; \
 	fi
 %.deb-docs-examples:
 	@rm -rf debian/$*/usr/share/doc/$*/examples
@@ -79,7 +79,7 @@ deb-checkuid:
 	: debian/$*/DEBIAN/md5sums
 	@rm -f debian/$*/DEBIAN/md5sums
 	@cd debian/$* && find * -path 'DEBIAN' -prune -o \
-	  -type f -exec md5sum {} >>DEBIAN/md5sums \;
+	  -type f -exec md5sum {} \; | LC_ALL=C sort >>DEBIAN/md5sums
 %.deb-DEBIAN: %.deb-checkdir %.deb-DEBIAN-base %.deb-DEBIAN-scripts \
 	  %.deb-DEBIAN-md5sums
 	: debian/$*/DEBIAN/ ok
diff --git a/debian/rules b/debian/rules
index db4c430..addac7d 100755
--- a/debian/rules
+++ b/debian/rules
@@ -90,24 +90,26 @@ install: deb-checkdir deb-checkuid build-stamp
 	 cvm-qmail.8 cvm-testclient.8 cvm-unix.8 cvm-vmailmgr.8; do \
 	  install -m0644 debian/$$i '$(DIR)'/usr/share/man/man8/ || exit 1; \
 	done
-	gzip -9 '$(DIR)'/usr/share/man/man8/*.8
+	gzip -9n '$(DIR)'/usr/share/man/man8/*.8
 	install -d -m0755 '$(DIR)'/usr/share/man/man7
 	install -m0644 debian/cvm-sql.7 '$(DIR)'/usr/share/man/man7/
-	gzip -9 '$(DIR)'/usr/share/man/man7/*.7
+	gzip -9n '$(DIR)'/usr/share/man/man7/*.7
 	# cvm-mysql
 	install -d -m0755 '$(DIR)'-mysql/usr/bin
 	mv '$(DIR)'/usr/bin/cvm-mysql* '$(DIR)'-mysql/usr/bin/
 	install -d -m0755 '$(DIR)'-mysql/usr/share/man/man8
 	install -m0644 debian/cvm-mysql.8 '$(DIR)'-mysql/usr/share/man/man8/
-	gzip -9 '$(DIR)'-mysql/usr/share/man/man8/*.8
+	gzip -9n '$(DIR)'-mysql/usr/share/man/man8/*.8
 	# cvm-pgsql
 	install -d -m0755 '$(DIR)'-pgsql/usr/bin
 	mv '$(DIR)'/usr/bin/cvm-pgsql* '$(DIR)'-pgsql/usr/bin/
 	install -d -m0755 '$(DIR)'-pgsql/usr/share/man/man8
 	install -m0644 debian/cvm-pgsql.8 '$(DIR)'-pgsql/usr/share/man/man8/
-	gzip -9 '$(DIR)'-pgsql/usr/share/man/man8/*.8
+	gzip -9n '$(DIR)'-pgsql/usr/share/man/man8/*.8
 	# changelog
 	rm -f changelog && ln -s ChangeLog changelog
+	# fix directory permissions
+	find '$(DIR)' '$(LDIR)'-dev -type d -print0 | xargs -0r chmod 0755
 
 binary: binary-indep binary-arch
 binary-indep:


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

[Reproducible-builds] please don't build on archs that packages don't declare support for

2016-02-06 Thread Michael R. Crusoe
Hello reproducible builds team!

I think you all are the bee's knees. However, some of the packages I
maintain aren't compatible with 32 bit architectures, like armhf, and are
explicitly marked as such. Yet the reproducible builds infrastructure still
tries to build on the incompatible architecture and I get an error on
tracker.d.o and elsewhere.

Here is an example:
https://tests.reproducible-builds.org/rb-pkg/unstable/amd64/khmer.html

Package: khmer
Architecture: amd64 any-arm64 any-mips64 any-mips64el any-ia64 any-ppc64el
any-sparc64
(from https://sources.debian.net/src/khmer/2.0%2Bdfsg-4/debian/control/ )

Could, perhaps, this not happen?

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

[Reproducible-builds] Bug#813892: dietlibc: please make the build reproducible

2016-02-06 Thread Reiner Herrmann
Source: dietlibc
Version: 0.33~cvs20120325-6
Severity: wishlist
Tags: patch
User: reproducible-builds@lists.alioth.debian.org
Usertags: timestamps fileordering
X-Debbugs-Cc: reproducible-builds@lists.alioth.debian.org

Hi!

While working on the "reproducible builds" effort [1], we have noticed
that dietlibc could not be built reproducibly.
It has build timestamps in the gzip headers of manpages and ChangeLog
files, an unsorted md5sums file and several static libraries were linked
with an unsorted order of object files.

The attached patch fixes this.

Regards,
 Reiner

[1]: https://wiki.debian.org/ReproducibleBuilds
diff --git a/debian/implicit b/debian/implicit
index 639532b..e87ac4c 100644
--- a/debian/implicit
+++ b/debian/implicit
@@ -35,7 +35,7 @@ deb-checkuid:
 	debian/$*/usr/share/doc/$*/changelog'
 	@test -s debian/$*/usr/share/doc/$*/changelog || \
 	  sh -cx 'rm -f debian/$*/usr/share/doc/$*/changelog'
-	@gzip -9 debian/$*/usr/share/doc/$*/changelog*
+	@gzip -9n debian/$*/usr/share/doc/$*/changelog*
 %.deb-docs-docs: %.deb-docs-base
 	@for i in `cat debian/$*.docs 2>/dev/null || :`; do \
 	  if test -d $$i; then \
@@ -54,7 +54,7 @@ deb-checkuid:
 	@if test -r debian/$*.NEWS.Debian; then \
 	  sh -cx 'install -m0644 debian/$*.NEWS.Debian \
 	debian/$*/usr/share/doc/$*/NEWS.Debian && \
-	  gzip -9 debian/$*/usr/share/doc/$*/NEWS.Debian'; \
+	  gzip -9n debian/$*/usr/share/doc/$*/NEWS.Debian'; \
 	fi
 %.deb-docs-examples: %.deb-docs-docs
 	@rm -rf debian/$*/usr/share/doc/$*/examples
@@ -87,7 +87,7 @@ deb-checkuid:
 	: debian/$*/DEBIAN/md5sums
 	@rm -f debian/$*/DEBIAN/md5sums
 	@cd debian/$* && find * -path 'DEBIAN' -prune -o \
-	  -type f -exec md5sum {} >>DEBIAN/md5sums \;
+	  -type f -exec md5sum {} \; | LC_ALL=C sort >>DEBIAN/md5sums
 %.deb-DEBIAN: %.deb-checkdir %.deb-DEBIAN-base %.deb-DEBIAN-scripts \
 	  %.deb-DEBIAN-md5sums
 	: debian/$*/DEBIAN/ ok
diff --git a/debian/patches/0038-reproducible-build.diff b/debian/patches/0038-reproducible-build.diff
new file mode 100644
index 000..524e657
--- /dev/null
+++ b/debian/patches/0038-reproducible-build.diff
@@ -0,0 +1,73 @@
+Author: Reiner Herrmann 
+Description: sort order of object files to get reproducible static libraries
+
+--- a/Makefile
 b/Makefile
+@@ -108,23 +108,23 @@
+ 
+ VPATH=lib:libstdio:libugly:libcruft:libcrypt:libshell:liblatin1:libcompat:libdl:librpc:libregex:libm:profiling
+ 
+-SYSCALLOBJ=$(patsubst syscalls.s/%.S,$(OBJDIR)/%.o,$(wildcard syscalls.s/*.S))
++SYSCALLOBJ=$(patsubst syscalls.s/%.S,$(OBJDIR)/%.o,$(sort $(wildcard syscalls.s/*.S)))
+ 
+-LIBOBJ=$(patsubst lib/%.c,$(OBJDIR)/%.o,$(wildcard lib/*.c))
+-LIBUGLYOBJ=$(patsubst libugly/%.c,$(OBJDIR)/%.o,$(wildcard libugly/*.c))
+-LIBSTDIOOBJ=$(patsubst libstdio/%.c,$(OBJDIR)/%.o,$(wildcard libstdio/*.c))
+-LIBCRUFTOBJ=$(patsubst libcruft/%.c,$(OBJDIR)/%.o,$(wildcard libcruft/*.c))
+-LIBCRYPTOBJ=$(patsubst libcrypt/%.c,$(OBJDIR)/%.o,$(wildcard libcrypt/*.c))
+-LIBSHELLOBJ=$(patsubst libshell/%.c,$(OBJDIR)/%.o,$(wildcard libshell/*.c))
+-LIBCOMPATOBJ=$(patsubst libcompat/%.c,$(OBJDIR)/%.o,$(wildcard libcompat/*.c)) $(OBJDIR)/syscall.o
+-LIBMATH=$(patsubst libm/%.c,%.o,$(wildcard libm/*.c))
++LIBOBJ=$(patsubst lib/%.c,$(OBJDIR)/%.o,$(sort $(wildcard lib/*.c)))
++LIBUGLYOBJ=$(patsubst libugly/%.c,$(OBJDIR)/%.o,$(sort $(wildcard libugly/*.c)))
++LIBSTDIOOBJ=$(patsubst libstdio/%.c,$(OBJDIR)/%.o,$(sort $(wildcard libstdio/*.c)))
++LIBCRUFTOBJ=$(patsubst libcruft/%.c,$(OBJDIR)/%.o,$(sort $(wildcard libcruft/*.c)))
++LIBCRYPTOBJ=$(patsubst libcrypt/%.c,$(OBJDIR)/%.o,$(sort $(wildcard libcrypt/*.c)))
++LIBSHELLOBJ=$(patsubst libshell/%.c,$(OBJDIR)/%.o,$(sort $(wildcard libshell/*.c)))
++LIBCOMPATOBJ=$(patsubst libcompat/%.c,$(OBJDIR)/%.o,$(sort $(wildcard libcompat/*.c))) $(OBJDIR)/syscall.o
++LIBMATH=$(patsubst libm/%.c,%.o,$(sort $(wildcard libm/*.c)))
+ 
+-LIBRPCOBJ=$(patsubst librpc/%.c,$(OBJDIR)/%.o,$(wildcard librpc/*.c))
+-LIBREGEXOBJ=$(patsubst libregex/%.c,$(OBJDIR)/%.o,$(wildcard libregex/*.c))
++LIBRPCOBJ=$(patsubst librpc/%.c,$(OBJDIR)/%.o,$(sort $(wildcard librpc/*.c)))
++LIBREGEXOBJ=$(patsubst libregex/%.c,$(OBJDIR)/%.o,$(sort $(wildcard libregex/*.c)))
+ 
+-LIBDLOBJ=$(patsubst libdl/%.c,$(OBJDIR)/%.o,$(wildcard libdl/*.c)) $(OBJDIR)/_dl_jump.o
++LIBDLOBJ=$(patsubst libdl/%.c,$(OBJDIR)/%.o,$(sort $(wildcard libdl/*.c))) $(OBJDIR)/_dl_jump.o
+ 
+-LIBPTHREAD_OBJS=$(patsubst libpthread/%.c,$(OBJDIR)/%.o,$(shell ./threadsafe.sh)) $(OBJDIR)/__testandset.o
++LIBPTHREAD_OBJS=$(patsubst libpthread/%.c,$(OBJDIR)/%.o,$(sort $(shell ./threadsafe.sh))) $(OBJDIR)/__testandset.o
+ 
+ LIBGMON_OBJS=$(OBJDIR)/__mcount.o $(OBJDIR)/monitor.o $(OBJDIR)/profil.o
+ 
+@@ -214,7 +214,7 @@
+ 
+ dummy.o:
+ 
+-LIBLATIN1_OBJS=$(patsubst liblatin1/%.c,$(OBJDIR)/%.o,$(wildcard liblatin1/*.c))
++LIBLATIN1_OBJS=$(patsubst liblatin1/%.c,$(OBJDIR)/%.o,$(sort $(wildcard liblatin1/*.c)))
+ $(OBJDIR)/liblatin1.a: $(LIBLATIN1_OBJS)
+ 	$(CROSS)ar cru $@ $^
+ 
+---