Re: [Reproducible-builds] Support for --ignore-profile flag in diffoscope

2016-05-13 Thread Jérémy Bobbio
Ximin Luo:
> This is quite an open-ended problem and there is no single "correct"
> answer. I don't even know myself what would be best, at this stage.

I think what we need to come up with now is a list of use cases. Then we
can decide which one we want to support and how easy it should be.

Is anyone willing to share examples where being able to ignore stuff
would have made their life easier?

The last one I spotted that could go on the list, ignoring irrelevant
differences in two Android App packages:
https://github.com/WhisperSystems/Signal-Android/blob/master/apkdiff/apkdiff.py

-- 
Lunar.''`. 
lu...@debian.org: :Ⓐ  :  # apt-get install anarchism
`. `'` 
  `-   


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

Re: [Reproducible-builds] [diffoscope] Support for --ignore-profile flag in diffoscope

2016-05-13 Thread Jérémy Bobbio
Ximin Luo:
> Concretely I have some suggestions:
> 
> 1. instead of calling this "ignore" we call it "hide". and instead of
> "irrelevant" we say "common"/"minor"/"known"

Great suggestions! :)

> 2. diffoscope --ignore-* (or --hide-*) MUST NOT return 0 or otherwise
> give the impression that two non-identical files are the same, even if
> all differences are "hidden". It should report "n differences hidden".

There's a tradeoff here: you don't really know how many differences are
going to be hidden until you've computed them, and that might be costly.

Use case: Jane is trying to understand if her patch removing __TIME__
from the source code is enough to make the binary reproducible. As she
knows how this affect the binary, she get faster results and avoid
clutter by adding the flag `--hide=debug-symbols` or
`--hide-pattern='*.debug'`.

I'm writing “faster results” because we can avoid unpacking the debug
symbols and comparing them which are costly operations.

If we display “n differences hidden”, then we always have to compare
everything…

-- 
Lunar.''`. 
lu...@debian.org: :Ⓐ  :  # apt-get install anarchism
`. `'` 
  `-   


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#829113: Bug#829113: reprotest: Should unset $DISPLAY to avoid GUI popups from some build tools

2016-07-01 Thread Jérémy Bobbio
Hi Axel!

Axel Beckert:
> Running
> 
> $ reprotest 'dpkg-buildpackage -b' 
> ../debian-paketmanagement-buch_0\~2016.06.29_all.deb
> 
> from a git checkout of commit 5f069a920df4e6f20a8eb9309c20c39ad60e6132
> under X to see if my $SOURCE_DATE_EPOCH implementation in that commit is
> working correctly.
> 
>* What was the outcome of this action?
> 
> Two GUI popups from ebook-convert (from the package calibre) moaning
> about non-existent $HOME and hence unreadable $HOME/.config/…
> 
>* What outcome did you expect instead?
> 
> No interactivity, especially no GUI interactivity at all.
> 
> Unsetting $DISPLAY should this issue.
> 
> (I'm not sure if setting and not setting $DISPLAY is or should be one of
> the not explicitly listed variations. But since I got that popup twice,
> I assume not.)

I don't think this is a bug in reprotest. As far as I can see by looking
in dpkg source tree, `dpkg-buildpackage` doesn't do anything to the
DISPLAY variable etiher. So I would assume building the package might
fail just as well without reprotest. If building the package requires to
unset DISPLAY, I think this should be done in `debian/rules`…

One take though, maybe reprotest should ensure that $HOME is set to an
existing (temporary) directory; other building tools might get unhappy.

-- 
Lunar.''`. 
lu...@debian.org: :Ⓐ  :  # apt-get install anarchism
`. `'` 
  `-   


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

Re: [Reproducible-builds] Remaining reprotest variations

2016-07-27 Thread Jérémy Bobbio
Ceridwen:
> For most of the variations I've done so far, I've been either
> depending on external utilities or had POSIX-compliant ways to execute
> them.  The rest of the variations pose more problems.
> 
> 1. user_group.  The POSIX standard includes the notion of user/group
> ids, but the only ways it defines to change the uid/gid of processes
> are C functions.  Unfortunately, there's also nothing in the POSIX
> standard for creating users, though at least `chown` is.  At the
> moment, my plan is to use `useradd`, `groupadd`, `userdel`,
> `groupdel`, and `su`.  (Using 'sudo' like prebuilder does is more
> complicated and less likely to be supported everywhere.)  I'm going to
> set the ids to something like 2.  This page,
> http://bhami.com/rosetta.html, indicates that this won't work on
> FreeBSD or MacOS X, and thatis supported by these pages,
> http://www.math.utah.edu/~beebe/unix/g/groupadd.html and
> http://www.math.utah.edu/~beebe/unix/u/useradd.html.
> - What works on FreeBSD/MacOS X?
> - Are there any other problems I'm likely to encounter using `su`?

If the code abstract user creation/removal depending on the system of
the execution environment, we could implement (more) specific behaviors
when required. Maybe that could be an answer: make it so experts in
other operation system can easily add support?

This applies to several variations you've listed as well, IMHO.

> 6. time: tests.reproducible-builds.org sets the system clock into the
> future for some machines, which doesn't work here.  I can try to use
> libfaketime for non-qemu environments and make the VM clock
> independent for qemu, but this is likely to get very tricky.  How much
> time should I spend on this?

We found many many problems that were related to time once all the
checks were in place, so it would be good if reprotest could have
similar support. Being able to run a different clock in qemu would be
best, I think.

> Beyond the specific variations, I have some questions about reversion
> that apply to several variations.  I'm trying to have reprotest revert
> all the changes it makes on its own, to make it more useful for
> simpler execution environments, but guaranteeing this under all
> conditions is tricky.
> 
> * If reprotest is called as root without any virtualization
>   (i.e. null), should it attempt to run the variations that require
>   root privileges on the host system?  These are host, domain, bin_sh,
>   and user_group.  I'm reluctant to disable this functionality
>   altogether, because I can see someone wanting it, but it definitely
>   has the potential to cause undesirable side effects if something
>   goes wrong.
>
> * Along the same line, `chsh` affects all user shells.  This doesn't
>   require root privileges, but should it be tested without
>   virtualization?

I think we should mandate isolated environment for anything that could
make the system go wrong. Or require a
“--i-dont-care-if-this-system-gets-broken” extra flag. ;)

Thanks for your insightful summary! :)

-- 
Lunar.''`. 
lu...@debian.org: :Ⓐ  :  # apt-get install anarchism
`. `'` 
  `-   


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

Bug#838260: diffoscope: Reduce noise from offsets deltas in readelf(1) diffs

2016-09-20 Thread Jérémy Bobbio
Chris Lamb:
>> Could these offset differences in readelf(1) output be ignored, at least
>> optionally?
> 
> Love the idea! However, my gut cautions against ignoring them. even with an
> option. 
> 
> Perhaps there is a perfect solution whereby we would normalise these two
> offsets to — making it up here! — relative values, but simply need to 
> nclude that we have done that once in the diff. That way, we have a) still
> captured the underlying issue, b) reduced the noise, and c) avoided a
> cumbersome option flag.

One idea that crossed my mind at some point that might be able to solve
this as well: be able to record other kinds of differences than just
line-oriented ones. Initially, I thought of this as a way to add image
comparison as I felt sad not knowing any free software that could easily
provide similar features to what GitHub offers [1].

But why stop with images? In the precise case of the readelf output,
having line-oriented diff means we are carrying around a useless and
confusing information: the line numbers are not helpful in anyway to
locate and undrstand the differences.

But what if we could replace the line numbers by the instruction
addresses? Then the noise mentioned by Daniel disappears. Meanwhile, the
actual output will become even more relevant.

Such an approach would require some structural changes to the code, but
could have benefits on many fronts.

 [1]: https://help.github.com/articles/rendering-and-diffing-images/

Hope that's any useful,
-- 
Lunar.''`.
lunar at debian.org : :Ⓐ :  # apt-get install anarchism
`. `'`
  `-



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

Bug#838260: diffoscope: Reduce noise from offsets deltas in readelf(1) diffs

2016-09-20 Thread Jérémy Bobbio
Daniel Shahaf:
> Jérémy Bobbio wrote on Tue, Sep 20, 2016 at 13:18:49 +:
>> But why stop with images? In the precise case of the readelf output,
>> having line-oriented diff means we are carrying around a useless and
>> confusing information: the line numbers are not helpful in anyway to
>> locate and undrstand the differences.
>>
>> But what if we could replace the line numbers by the instruction
>> addresses? Then the noise mentioned by Daniel disappears. Meanwhile, the
>> actual output will become even more relevant.
> 
> In the example in the OP, the (source code) line numbers and instruction
> addresses are the same between both builds.  It is the .rodata addresses
> embeddded into the instructions that differ.

Thanks for pointing this out, I had actually misunderstood the problem
at hand. :)

-- 
Lunar.''`.
lunar at debian.org : :Ⓐ :  # apt-get install anarchism
`. `'`
  `-



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: [dpkg] 08/08: document 1.18.10.0~reproducible1

2016-09-21 Thread Jérémy Bobbio
Mattia Rizzolo:
> The reason we like to have a static string in there (and in jenkins we
> use the host architecture), is that otherwise diffoscope would be noisy
> about the difference in the name if we compared the .changes files […].

Would it still be the case after Satyam's work which resulted in
https://anonscm.debian.org/cgit/reproducible/diffoscope.git/commit/?id=c61f41c5128094508d6fff8b746cecc3841f6b27
?

This change has been shipped as part of diffoscope/60 from what I can see.

-- 
Lunar.''`.
lunar at debian.org : :Ⓐ :  # apt-get install anarchism
`. `'`
  `-



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

2016-09-21 Thread Jérémy Bobbio
Mattia Rizzolo:
> Next steps:
> it would be great if somebody could figure what's the real gain of
> having .dsc in Checksums-Sha256.

This is how .buildinfo files have linked a source package in an
unambiguous manner to the resulting binaries. I see how the current
specification is giving you trouble, but it's kinda their “raison d'être”.

-- 
Lunar.''`.
lunar at debian.org : :Ⓐ :  # apt-get install anarchism
`. `'`
  `-



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

Bug#848049: diffoscope: Add detection of order-only differences in plain text formats

2016-12-25 Thread Jérémy Bobbio
Маша Глухова:
> I believe the attached patch would provide the requested functionality.

Nice work! :)

> From: Maria Glukhova 
> Date: Sat, 24 Dec 2016 12:29:57 +0200
> Subject: [PATCH] Add detection of order-only difference in plain text format.
> 
> Detect if the text files' contents differ only in line ordering, and give an 
> appropriate comment.
> […]
> +def order_only_difference(unified_diff):
> +diff_lines = unified_diff.splitlines()
> +added_lines = [line[1:] for line in diff_lines if line.startswith('+')]
> +removed_lines = [line[1:] for line in diff_lines if line.startswith('-')]
> +# Faster check: does number of lines match?
> +if len(added_lines) != len(removed_lines):
> +return False
> +# Counter stores line and number of its occurrences.
> +return sorted(added_lines) == sorted(removed_lines)

I guess it's a fine approach to the problem, but I wonder if it would
not be better to use a slightly less accurate strategy that would be
nicer to memory and CPU.

What I have in mind is to incrementally compute a hash value that would
give the same result even if the lines are in different order.

Drawing from discussions on StackOverflow [1], I think doing a sum of
Python's hash() would work. My test was:

def unordered_hash(lines):
h = 0
for line in lines:
h += hash(line)
return h

h1 = unordered_hash(open('tests/data/text_order1').readlines())
h2 = unordered_hash(open('tests/data/text_order2').readlines())
print(h1, h2, h1 == h2)

That way, it could probably be implemented directly in the difference
module and work for other file types than just text files.

 [1]: 
https://stackoverflow.com/questions/30734848/order-independant-hash-algorithm

-- 
Lunar.''`. 
lu...@debian.org: :Ⓐ  :  # apt-get install anarchism
`. `'` 
  `-   


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

Bug#849142: [PATCH] Update dex_expected_diffs and test requirement to ensure test compatibility with enjarify >= 1.0.3. (Closes: #849142)

2016-12-25 Thread Jérémy Bobbio
Chris Lamb:
> Daniel Shahaf wrote:
> 
> > > +if subprocess.call(
> > > +('python3', '-c', 'import enjarify.typeinference'),
> > 
> > Use sys.executable instead of hardcoding 'python3', to handle the case
> > that there's more than one python3 binary on the system?
> 
> I deliberately used python3 to match the behaviour of what the
> /usr/bin/enjarify script does.

Guess it's worth adding a comment about it for future readers. :)

-- 
Lunar.''`. 
lu...@debian.org: :Ⓐ  :  # apt-get install anarchism
`. `'` 
  `-   


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

Bug#848049: diffoscope: Add detection of order-only differences in plain text formats

2016-12-25 Thread Jérémy Bobbio
Hi!

Маша Глухова:
> The reason why I did not use some algorihm like that is that it requires to
> read files for the second time. Right now, all the actual work with the
> content of the files (except for the quick check for has_same_content) is
> delegated to diff, and on big files, it occupies most of the time. Assuming
> that for big files, reading them from drive would be the bottleneck, I
> tried to avoid reading them again, instead working with the result of the
> diff.
> Still, I would be happily mistaken. I will implement your version and
> compare the performance.

You would not have to read the file twice as long as you do the hash
in the difference module, when each line is actually fed to diff.
A similar trick is already used to cope with files that are too long,
see diffoscope.difference.make_feeder_from_raw_reader()

I don't know if my suggestions is a good one. It might not be a good
idea at all. Feel free to discuss it with your mentor before spending
too much time on it.

> Thank you again :)

PS: Please call me Lunar. :)

-- 
Lunar.''`. 
lu...@debian.org: :Ⓐ  :  # apt-get install anarchism
`. `'` 
  `-   


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

Bug#888237: Fwd: Re: diffoscope and file renames

2018-01-25 Thread Jérémy Bobbio
Chris Lamb:
> > I had no idea I should have installed it, and indeed I was missing it.
> 
> … which is itself a bug! However, the solution is not very obvious - why
> can't really detect whether we need would benefit from fuzzy matching without
> doing said fuzzy matching!
> 
> Will have a think :)

In that case, it might have worked to run difflib.SequenceMatcher on
archive paths to compare their distance. I'm not sure if it's a good
idea at all. :)

-- 
Lunar.''`. 
lu...@debian.org: :Ⓐ  :  # apt-get install anarchism
`. `'` 
  `-   


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] Bug#796039: diffoscope: please recognize big-endian Haskell .hi files

2015-08-18 Thread Jérémy Bobbio
Package: diffoscope
Severity: normal

diffoscope currently doesn't know how to parse Haskell .hi files written
on big-endian architectures as such. This should be fixed.

-- 
Lunar.''`. 
lu...@debian.org: :Ⓐ  :  # apt-get install anarchism
`. `'` 
  `-   


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

Re: [Reproducible-builds] SOURCE_DATE_EPOCH specification document

2015-08-26 Thread Jérémy Bobbio
Chris Lamb:
> Mattia wrote:
> > > After a hint from doko, I've started work on an official-looking spec
> > > for SOURCE_DATE_EPOCH
> >
> > Lamby pointed out that this is not something debian-related, so it would
> > be great to have it outsite a debian.{org,net} site.
> > 
> > OTOH also the howto is not strictly debian-related, and both documents
> > are related to reproducibly.
> > 
> > My personal proposal is to merge the two documents and move them to a new
> > more meaningful url (under rb.d.n).
> 
> I believe this would handicap adoption of SOURCE_DATE_EPOCH in the wider
> software community.

Strongly seconded. The HOWTO is meant to be a general document about all
things related to “reproducible builds”. It's an “how to”: it's intent
is to describe several way to achieve reproducible builds.

It is way different than a specification which mention the one true way
on how things should work on specific behaviors. 

-- 
Lunar.''`. 
lu...@debian.org: :Ⓐ  :  # apt-get install anarchism
`. `'` 
  `-   

___
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

2015-08-29 Thread Jérémy Bobbio
dpkg_1.18.3~reproducible1.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


Re: [Reproducible-builds] reproducible .buildinfo inclusion in the archive and output by dpkg

2015-08-29 Thread Jérémy Bobbio
Ansgar Burchardt:
> Holger Levsen  writes:
> > together with Lunar we four sad together on the last Saturday of DebConf15 
> > in 
> > Heidelberg and discussed the next steps forward to achieve the inclusion of 
> > .buildinfo inclusion in the Debian archive and output by dpkg.
> >
> > On the ftpmaster side we agreed that:
> >
> > - dak/queued has to be changed to accept .buildinfo files
> > - will be stored on ftp-master, concatted and compressed it will be exposed 
> > to 
> > the mirrors
> >  - one per arch + suite, aka for each Packages file
>
> How large are these? I'm sure the snapshot.d.o maintainers would prefer
> something that does not change with each mirror push, or is not part of
> the dists/ tree pushed to mirrors.

Holger tested it to be about 14 MB for amd64 once compressed. This
included Arch:all packages. If we use a single tar archive, with `gzip
--rsyncable`, I assume the difference on each mirror push will be
small. But we probably could use reproducible.debian.net to come up with
actual numbers if needed.

> > - Packages file gets a certfied-by field:
> > Build-Signed-Off-By:  0603CCFD91865C17E88D4C798382C95C29023DF9 
> > Jérémy 
> > Bobbio  which should include the checksum of the 
> > .buildinfo 
> > file (or maybe not, see above)
> 
> I think having an external service for these is better: otherwise we
> have to deal with who can add signatures, and probably would limit it to
> people in Debian's keyring (I don't want ftp-master to deal with
> external parties).  A seperate service could accept signatures from
> everybody, including parties not directly involved in Debian or
> automated systems.
> 
> Also adding even more data to the Packages indicies is something I would
> like to avoid: the files are already quite large.

I understand the latter concern, so maybe having this information in
Packages is a bad idea and we need another index, or none as efficiency
is maybe not a problem. But I'm quite convinced that the .buildinfo
files need signatures to be any useful. With reproducible builds, we
can easily provide a trust path from the source to the binary that goes
beyond the archive signing key.

I think limiting addition of these certifications (I assert that I have
successfuly built the given binary packages with the given source in the
mentioned environment = I sign the .buildinfo) to the Debian archives to
Debian Developers is a fine thing to do. Derivatives that partially
mirror the Debian archives are free to add their own. And the tools
should also support external signature repositories.

But the Debian archive should provide signatures of the .buildinfo so
at the very least we know which buildd came up with these binary
packages in the first place.

Please note that solving the question of signatures is not strictly
needed to move “reproducible builds” forward for now. We would like to
see the changes merged in dpkg as this makes all Debian packages
unreproducible currently. And this is currently blocking on having build
information available.

-- 
Lunar.''`. 
lu...@debian.org: :Ⓐ  :  # apt-get install anarchism
`. `'` 
  `-   

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

[Reproducible-builds] Bug#797525: Bug#797525: diffoscope: multiarch mode

2015-08-31 Thread Jérémy Bobbio
clone 797525 -1
retitle -1 diffoscope: provide option to disable fuzzy-matching
thanks

Hi!

Jakub Wilk:
> I want to use diffoscope to compare two "Multi-Arch: same" debs of the same
> version but different architecture, to see differences that will cause
> co-installation conflicts.
>
> This almost works currently, but there's a bit of noise that could be
> avoided. I'd like an option that does the following:
> - Ignores all differences in control.tar.

I had already in mind to provide pluggable ignore modules. So having
support for this use case is on my personal roadmap.

> - Ignores timestamp differences in data.tar.

I can offer to ignore difference in metadata in the data.tar tarball.
Ignoring all timestamp differences in not doable, they could take any
form in any files.

> - Disables fuzzy matching.

That will be a separate option.

-- 
Lunar.''`. 
lu...@debian.org: :Ⓐ  :  # apt-get install anarchism
`. `'` 
  `-   


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

Re: [Reproducible-builds] Bug#792687: gettext: please support timestamps from environment

2015-08-31 Thread Jérémy Bobbio
Santiago Vila:
> The problem here is that some packages execute xgettext *every* single
> time the package is built (creating a different .pot file each time),
> and then they also perform msgmerge with the new .pot file and the
> existing .po files, creating different .po files each time.
> 
> None of that is necessary at all:
> 
> For a given source package and debian revision, you only need to
> create the .pot file once, for example, just before dpkg-buildpackage.

Thanks for working on this and I think I agree. But I myself hit a wall
while trying to handle software using intltool. Do you have an idea on
how to handle them? If I remember correctly, gdm3 is one example.

-- 
Lunar.''`. 
lu...@debian.org: :Ⓐ  :  # apt-get install anarchism
`. `'` 
  `-   


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

Re: [Reproducible-builds] Bug#792687: gettext: please support timestamps from environment

2015-09-01 Thread Jérémy Bobbio
Santiago Vila:
> Excluding .pot files from what is considered to be the "source" might
> be part of the problem.

See tor-monitor upstream's reaction, for example:
https://lists.alioth.debian.org/pipermail/pkg-privacy-maintainers/Week-of-Mon-20150824/15.html

Quoting Alan from there:
> I didn't add the .pot in git because it's generated at build time.
> Adding it duplicates info and adds the risk that it's not up-to-date.

I'd be happy to hear more arguments for/against.

-- 
Lunar.''`. 
lu...@debian.org: :Ⓐ  :  # apt-get install anarchism
`. `'` 
  `-   


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#797759: Bug#797759: diffoscope: tar.gz and tar.bz2 archives compared wrongly

2015-09-02 Thread Jérémy Bobbio
Control: retitle -1 diffoscope: implement fuzzy-matching across containers
Control: severity -1 wishlist

Michele Alessandrini:
> When comparing tar.gz or tar.bz2 archives containing text files, some
> of which different, the output is a binary diff. Perhaps it only
> applies decompression and compares the two tar files, instead of their
> contents?

That can be implemented by adding support for fuzzy-matching across
containers. This would also detect and compare properly a file being
compressed from one version to the next.

It's doable. The trickiest part in my mind so far is where to attach
them in the tree of differences.

-- 
Lunar.''`. 
lu...@debian.org: :Ⓐ  :  # apt-get install anarchism
`. `'` 
  `-   


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#797759: Bug#797759: Bug#797759: diffoscope: tar.gz and tar.bz2 archives compared wrongly

2015-09-02 Thread Jérémy Bobbio
Michele Alessandrini:
> Il 02/09/2015 14:38, Jérémy Bobbio ha scritto:
> >Control: retitle -1 diffoscope: implement fuzzy-matching across containers
> >Control: severity -1 wishlist
> >
> >Michele Alessandrini:
> >>When comparing tar.gz or tar.bz2 archives containing text files, some
> >>of which different, the output is a binary diff. Perhaps it only
> >>applies decompression and compares the two tar files, instead of their
> >>contents?
> >
> >That can be implemented by adding support for fuzzy-matching across
> >containers. This would also detect and compare properly a file being
> >compressed from one version to the next.
> >
> >It's doable. The trickiest part in my mind so far is where to attach
> >them in the tree of differences.
> >
> 
> But isn't reading files inside archives a main feature of diffoscope?

It is. But .gz and .bz2 are two different file formats and diffoscope
treat them as such. It's like switching from .tar to .zip. It's quite a
difference and diffoscope will not blindly compare their content
currently.

Trust me, fuzzy matching accross containers is doable and will solve
exactly this problem, but also others.

-- 
Lunar.''`. 
lu...@debian.org: :Ⓐ  :  # apt-get install anarchism
`. `'` 
  `-   


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#797560: diffoscope: option to treat absent files as empty

2015-09-03 Thread Jérémy Bobbio
Control: tag -1 + pending

Jakub Wilk:
> I'd like an option for treating absent files as if they were empty, similar
> to "diff -N".

This has not been easy, but this will be in the next release
(--new-file is the switch).

-- 
Lunar.''`. 
lu...@debian.org: :Ⓐ  :  # apt-get install anarchism
`. `'` 
  `-   


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#788364: libmagic1: misdetect some Coreboot images as text

2015-09-03 Thread Jérémy Bobbio
retitle 788364 diffoscope: garbled output when comparing some Coreboot images
clone 788364 -1
reassign -1 libmagic1
severity -1 libmagic1 normal
retitle -1 libmagic1: misdetect Coreboot images as text files
thanks

Hi Christoph,

diffoscope is the tool that we have created as part of the “reproducible
builds” effort to understand differences between two builds. We now also
use it to compare builds of Coreboot images.

diffoscope uses libmagic (through its Python bindings) to identify the
format of the files its trying to compare. Some coreboot images are
misdetected as text files which results in garbled diffoscope output.

Proper way to detect Coreboot images is probably to look for a CBFS
header. cbfs_find_header() is how upstream does it:
http://review.coreboot.org/gitweb?p=coreboot.git;a=blob;f=util/cbfstool/cbfs_image.c;h=c40bd6641

I could tell diffoscope to detect Coreboot images with a similar
mechanism but it would probably be better to teach libmagic to do it.
Is that easily doable?

Reiner Herrmann:
> file detects them as plain-text:
> 
> > /tmp/b1_coreboot.rom: ISO-8859 text, with very long lines, with no line 
> > terminators
> > /tmp/b2_coreboot.rom: ISO-8859 text, with very long lines, with no line 
> > terminators
> 
> That's why diffoscope also treats them as text.
> I'm not sure this can/should be fixed inside diffoscope, as we rely on
> libmagic detecting them correctly.

Reiner, I remember you had a look into this during DebConf. Have you
made any progress?

-- 
Lunar.''`. 
lu...@debian.org: :Ⓐ  :  # apt-get install anarchism
`. `'` 
  `-   


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#797525: Bug#797525: diffoscope: multiarch mode

2015-09-03 Thread Jérémy Bobbio
Control: retitle -1 diffoscope: provide a way to ignore all differences in 
control.tar

Jérémy Bobbio:
> Jakub Wilk:
> > I want to use diffoscope to compare two "Multi-Arch: same" debs of the same
> > version but different architecture, to see differences that will cause
> > co-installation conflicts.
> >
> > This almost works currently, but there's a bit of noise that could be
> > avoided. I'd like an option that does the following:
> > - Ignores all differences in control.tar.
>
> I had already in mind to provide pluggable ignore modules. So having
> support for this use case is on my personal roadmap.

Let's retitle this bug accordingly.

> > - Disables fuzzy matching.
> 
> That will be a separate option.

Pending upload, this will be doable with `--fuzzy-threshold=0`.

-- 
Lunar.''`. 
lu...@debian.org: :Ⓐ  :  # apt-get install anarchism
`. `'` 
  `-   


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#798384: strip-nondeterminism: should preserve file permissions

2015-09-08 Thread Jérémy Bobbio
Package: strip-nondeterminism
Severity: important

Hi!

I'm opening a bug report to track the following issue discussed on the
reproducible-builds mailing list:

Eugene Zhukov:
> On Mon, Sep 7, 2015 at 8:11 PM, Andrew Ayer  wrote:
> > On Mon, 7 Sep 2015 19:49:56 +0300
> > Eugene Zhukov  wrote:
> >> I was testing my epubcheck package built with ExperimentalToolchain
> >> and noticed that jar file executable permissions get stripped.
> >> If I drop dh_strip_nondeterminism line from
> >> /usr/share/cdbs/1/rules/debhelper.mk everything works as expected.
> >> I don't really understand how this is related so I'd appreciate if you
> >> could have a look.
> >
> > Do you mean the jar file itself, or files within the jar?
> The jar file itself.
>
> > (dh-)strip-nondeterminism should leave the execute bit alone within the
> > jar, but I just checked and confirmed that it doesn't preserve the
> > execute bit on the jar itself.  I can fix this.

Thanks Andrew!

-- 
Lunar.''`. 
lu...@debian.org: :Ⓐ  :  # apt-get install anarchism
`. `'` 
  `-   


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] [report] Week 20 in Stretch cycle

2015-09-14 Thread Jérémy Bobbio
[ Chris Lamb suggested to post the weekly reports that has been so far ]
[ available on Planet Debian to the mailing-list. Please tell us if]
[ you think that's not a good idea.]

   What happened in the [1]reproducible builds effort this week:

Media coverage

   Motherboard published an [2]article on the project inspired by
   the [3]talk at the Chaos Communication 15. Journalists [4]sadly
   rarely pick their headlines. The sensationalist “How Debian Is
   Trying to Shut Down the CIA” got started a few rants here and
   there. [5]One from OpenBSD developper Ted Unangst lead to a
   good email contact and some [6]thorough comments.

Toolchain fixes

 * Emmanuel Bourg uploaded maven-ant-helper/7.11 which
   improved the reproducibility of the Javadoc by removing the
   timestamps and using the English locale.
 * Thomas Schmitt uploaded libisoburn/1.4.0-2 which adds to
   the ISO image creator xorriso new flags for -alter_date to
   avoid update ctimes. [7]Report by Daniel Kahn Gillmor.
 * Florian Schlichting uplodaded
   libmodule-build-perl/0.421400-2 which makes linked file
   ordering deterministic. [8]Original patch by Niko Tyni.

   The modified version of gettext has been [9]removed from the
   experimental toolchain. Fixing individual package seems a
   better approach for now.

   Chris Lamb sent two patches for abi-compliance-checker: one to
   [10]drop the timestamp from generated HTML reports and another
   to [11]make umask and timestamps deterministic in the abi
   tarball.

   [12]Bugs submitted by Dhole lead to a discussion on the best
   way to adapt pod2man now that we have [13]SOURCE_DATE_EPOCH
   specified. There is really a whole class of issues that are
   currently undiscovered waiting for tests running on a different
   date. This is likely to should happen soon.

   Chris Lamb uploaded a new version of debhelper in the
   [14]“reproducible” repository, cherry-picking a fix for
   interactions between ddebs and udebs.

Packages fixed

   The following packages became reproducible due to changes in
   their build dependencies: aspic, django-guardian,
   erlang-sqlite3, etcd, libnative-platform-java, mingw-ocaml,
   nose2, oar, obexftp, py3cairo, python-dugong,
   python-secretstorage, python-setuptools, qct, qdox, recutils,
   s3ql, wine.

   The following packages became reproducible after getting fixed:
 * bochs/2.6-4 by Santiago Vila.
 * codec2/0.4-3 by A. Maitland Bottoms.
 * coquelicot/0.9.4-1 by Lunar.
 * criticalmass/1:1.0.0-3 by Santiago Vila.
 * ekg/1:1.9~pre+r2855-3 by Santiago Vila.
 * eterm/0.9.6-3 by Santiago Vila.
 * fbi/2.10-2 by Moritz Muehlenhoff.
 * fsvs/1.2.6-2 by Santiago Vila.
 * glhack/1.2-3 by Santiago Vila.
 * httraqt/1.4.6-2 by Anton Gladky.
 * libapache-authznetldap-perl/0.07-6 by gregor herrmann,
   [15]original patch by Dhole.
 * libkinosearch1-perl/1.01-3 uploaded by Florian Schlichting,
   [16]original patch by Niko Tyni.
 * liblucy-perl/0.3.3-6 uploaded by Florian Schlichting,
   [17]original patch by Niko Tyni.
 * slony1-2/2.2.4-1 by Christoph Berg.
 * slrn/1.0.2-3 uploaded by Moritz Muehlenhoff, [18]original
   patch by Dmitry Bogatov.
 * svtplay-dl/0.10.2015.08.24-1 uploaded by Olof Johansson,
   fixed upstream.
 * swh-plugins/0.4.15+1-8 uploaded by Jaromír Mikeš,
   [19]original patch by Chris Lamb.
 * sysstat/11.1.6-2 uploaded by Robert Luberda, [20]original
   patch by Chris Lamb.
 * uhd/3.9.0-3 by A. Maitland Bottoms.
 * volk/1.1-3 by A. Maitland Bottoms.
 * yadifa/2.1.3-2 uploaded by Markus Schade, [21]original
   patch by Santiago Vila.

   Some uploads fixed some reproducibility issues but not all of
   them:
 * dict-jargon/4.4.7-3 uploaded by Ruben Molina, [22]original
   patch by Dhole.
 * ferret-vis/6.9.3-3 uploaded by Alastair McKinstry,
   [23]original patch by Chris Lamb.

   Patches submitted which have not made their way to the archive
   yet:
 * 798366 on lilo by Dmitry Bogatov: remove usage of __TIME__
   and __DATE__ macros.
 * 798557 on libapache-dbi-perl by Dhole: set date of the
   manpage to the latest debian/changelog entry.
 * 798776 on testdisk by [24]upstream!

reproducible.debian.net

   The configuration of all remote armhf and amd64 nodes in now
   finished. The remaining reproducibility tests running on the
   Jenkins host has been removed. armhf results and graphs are now
   visible in [25]dashboard. We can now test the whole archive in
   2-3 weeks using the current 12 amd64 jobs and 3 months using
   the current 6 armhf builders. We will be looking at improving
   the armhf sitation, maybe using more native systems or via
   arm64. (h01ger)

   The Jenkins UI is now more responsive since all jobs building
   packages have been moved to remote hosts. (h01ger)

   [26]A new job has been added to 

Re: [Reproducible-builds] [Debian Wiki] Update of "ReproducibleBuilds/TimestampsProposal" by BenBoeckel

2015-09-17 Thread Jérémy Bobbio
Daniel Kahn Gillmor:
> Wiki page:
> > -   EXECUTE_PROCESS(COMMAND "date" "-u" "-d @${SOURCE_DATE_EPOCH}" 
> > "+%d/%m/%Y" OUTPUT_VARIABLE BUILD_DATE)
> […]
> Is there a reason above that this example code to translate from
> SOURCE_DATE_EPOCH to a build date doesn't produce ISO-8601-compliant
> date strings in the BUILD_DATE variable?

I assume it's because it was initially in a piece of software that used
the above format. I'd say feel free to replace by a ISO-8601 format
string if you feel it matters.

-- 
Lunar.''`. 
lu...@debian.org: :Ⓐ  :  # apt-get install anarchism
`. `'` 
  `-   


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

Re: [Reproducible-builds] .buildinfo should contain source hashes (as well as binary hashes)

2015-09-20 Thread Jérémy Bobbio
Ximin Luo:
> With our current .buildinfo setup, the above process is more
> complicated, because we *only* store hashes of the binary build
> environment.

I'm sorry but this is not accurate regarding the current
specification [1]. It says:

Build-Environment

List of all packages forming the build environment, their
architecture if different from build architecture, and their
version.

The idea to put a hash of the binary package in the
Build-Environment is a late addition to the original idea. It came as a
way to make `srebuild` job easier: retrieving a specific binary package
with its hash is already part of snapshot.debian.org interface. It also
makes unecessary to find the relevant repository snapshot and the
related headaches with how to handle expired signatures.

In any cases, we currently don't have code to store any hash of the
Build-Environment. If we wanted to store hashes of binary packages, then
we would need to have them in /var/lib/dpkg/status and it's not done
yet, even if Guillem said this would be a good thing to have.

> Currently, to run a DDC test, we would have to read the buildinfo
> file, find the hashes of the binary build-deps, lookup the source
> packages that corresponds to these hashes, find a different binary
> build-deps for these hashes, and run our DDC-checker. This takes many
> round trips, and contacting external infrastructure that isn't
> necessary.

You would not need to lookup the source packages using hashes. Using
package and version gives you enough info to retrieve a specific source
package from the archive.

> If .buildinfo files contained source hashes, the DDC-checker could
> work more directly, without requiring a remote repository of source
> hash <-> binary hash mappings.

I'm interested in `.buildinfo` in the context of the Debian project. The
Debian archive is designed to be immutable. A specific version of a
package will always correspond to the same source and binary files.
So I don't see why one would do complex “source hash - binary hash
mapping” when you can just rely on what is in the archive (and what has
been archived by snapshot.debian.org).

If by building thing that ought to match a specific package version you
get different result, then you will have to investigate in any cases.


Implementation-wise, getting the hash of the .dsc in the .buildinfo is
going to be very tricky. dpkg does not know about what's available in
the archive. It just knows about packages which are or were installed.

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

-- 
Lunar.''`. 
lu...@debian.org: :Ⓐ  :  # apt-get install anarchism
`. `'` 
  `-   


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

Re: [Reproducible-builds] Bug#774274: fontforge: please allow scripts to set the font modification time

2015-09-20 Thread Jérémy Bobbio
Jérémy Bobbio:
> For font compilation to be deterministic, we need a way to set the font
> modification time to a defined value instead of the current time.
> 
> We thus add a new function “SetModificationTime” to the scripting language.
> It takes a single string argument looking like “2014-12-30 21:18:33”.

Now that we have SOURCE_DATE_EPOCH defined [1], I wonder if this is the
right approach. Just looking for the variable in the environment and
using it as the font modification time sounds an easier approach to
implement and to make many Debian packages reproducible without any
modifications.

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

-- 
Lunar.''`. 
lu...@debian.org: :Ⓐ  :  # apt-get install anarchism
`. `'` 
  `-   


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

2015-09-21 Thread Jérémy Bobbio
dpkg_1.18.3.0~reproducible1.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


Re: [Reproducible-builds] .buildinfo should contain source hashes (as well as binary hashes)

2015-09-21 Thread Jérémy Bobbio
Ximin Luo:
> > Implementation-wise, getting the hash of the .dsc in the .buildinfo is
> > going to be very tricky. dpkg does not know about what's available in
> > the archive. It just knows about packages which are or were installed.
> > 
> 
> `apt-cache showsrc [pkg]` has the right information in there, but it's a bit 
> messy. I need to test this without a deb-src line, though.

Building Debian packages doesn't involve APT in any ways. There is
currently no coupling in the direction dpkg → APT.

(That's why we need to get hash of the binary packages in
/var/lib/dpkg/status before they can be written in dpkg-genbuildinfo.)

-- 
Lunar.''`. 
lu...@debian.org: :Ⓐ  :  # apt-get install anarchism
`. `'` 
  `-   


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#799690: file: regression in MIME encoding lookups

2015-09-21 Thread Jérémy Bobbio
Package: file
Version: 1:5.25-1
Severity: important

Hi!

The latest upload of file broke diffoscope test suite.

With file/1:5.24-2:

$ file --mime-encoding tests/data/binary1
tests/data/binary1: binary

With file/1:5.25-1:

$ file --mime-encoding tests/data/binary1
tests/data/binary1: application/octet-streambinary

The test file is only 16 bytes long and can be downloaded at:
https://anonscm.debian.org/cgit/reproducible/diffoscope.git/plain/tests/data/binary1

Thanks,
-- 
Lunar.''`. 
lu...@debian.org: :Ⓐ  :  # apt-get install anarchism
`. `'` 
  `-   


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] Week 21 in Stretch cycle

2015-09-22 Thread Jérémy Bobbio
   What happened in the [1]reproducible builds effort this week:

Media coverage

   Nathan Willis covered [2]our DebConf15 status update in Linux
   Weekly News. Access to non-LWN subscribers will be given on
   Thursday 24th.

   Linux Journal published a [3]more general piece last Tuesday.

   Unexpected praise for reproducible builds appeared this week in
   the form of several iOS applications identified as including
   spyware. The malware was undetected by Apple screening. This
   actually happened because application developers had simply
   [4]downloaded a trojaned version of XCode through an unofficial
   source. While reproducible builds can't really help users of
   non-free software, this is exactly the kind of attacks that we
   are trying to prevent in our systems.

Toolchain fixes

 * Mathieu Malaterre uploaded abi-compliance-checker/1.99.11-1
   which [5]drops the timestamps from the generated HTML
   reports and [6]makes the generated .abi.tar.gz files
   reproducible. Original patches by Chris Lamb.

   Niko Tyni wrote and uploaded [7]a better patch for the source
   order problem in libmodule-build-perl.

   Tristan Seligmann [8]identified how the code generated by
   python-cffi could be emitted in random order in some cases.
   Upstream has already [9]fixed the problem.

Packages fixed

   The following 24 packages became reproducible due to changes in
   their build dependencies: apache-curator, checkbox-ng, gant,
   gnome-clocks, hawtjni, jackrabbit, jersey1, libjsr305-java,
   mathjax-docs, mlpy, moap, octave-geometry, paste, pdf.js,
   pyinotify, pytango, python-asyncssh, python-mock,
   python-openid, python-repoze.who, shadow, swift,
   tcpwatch-httpproxy, transfig.

   The following packages became reproducible after getting fixed:
 * apparmor/2.10-2 uploaded by intrigeri, fixed upstream by
   Christian Boltz, with the same change [10]suggested by
   Reiner Herrmann.
 * ardour/1:4.2~dfsg-2 by IOhannes m zmölnig.
 * dcmtk/3.6.1~20150629-1 uploaded by Andreas Tille,
   [11]original patch by akira.
 * deap/1.0.1-4 by Daniel Stender.
 * firebird2.5/2.5.4.26856.ds4-2 by Damyan Ivanov.
 * gamera/3.4.2+svn1437-1 by Daniel Stender.
 * genometools/1.5.7-1 by Sascha Steinbiss.
 * golang-github-go-xorm-core/0.4.4-1 by Alexandre Viau.
 * klibc/2.0.4-4 by Ben Hutchings.
 * libgtk2-perl/2:1.2496-3 by intrigeri.
 * lsof/4.89+dfsg-0.1 uploaded by Laurent Bigonville,
   [12]original patch by Lunar.
 * monotone/1.1-6 by Markus Wanner.
 * ndisc6/1.0.1-4 by Santiago Vila.
 * privoxy/3.0.23-4 by Roland Rosenfeld.
 * ruby-flexmock/2.0.0~rc1-1 by Antonio Terceiro.
 * ruby-html2haml/2.0.0-1 by Lunar.
 * tunnelx/20140102-3 uploaded by Wookey, [13]original patch
   by Chris Lamb.
 * wtforms/2.0.2-1 by Orestis Ioannou, [14]original patch by
   Juan Picca.

   Some uploads fixed some reproducibility issues but not all of
   them:
 * maxima/5.37-1 by Camm Maguire, [15]report by akira.

   Patches submitted which have not made their way to the archive
   yet:
 * 783152 on kmod by Lunar: export SOURCE_DATE_EPOCH in
   debian/rules.
 * 799010 on 389-ds-base by Chris Lamb: use SOURCE_DATE_EPOCH
   value as the build date.
 * 799206 on python-sqlalchemy-utils by Chris Lamb: sort the
   list of extra requirement.
 * 799330 on cappuccino by Chris Lamb: pass a fixed seed to
   polygen.
 * 799410 on segment by Chris Lamb: use date of the latest
   debian/changelog entry as build date.

reproducible.debian.net

   Tests for [16]Coreboot, [17]OpenWrt, [18]NetBSD, and
   [19]FreeBSD now runs weekly (instead of monthly).

diffoscope development

   Python 3 offers new features (namely yield from and
   concurrent.futures) that could help implement parallel
   processing. The clear separation of bytes and unicode strings
   is also likely to reduce encoding related issues.

   Mattia Rizolo thus kicked the effort of porting diffoscope to
   Python 3. tlsh was the only dependency missing a Python 3
   module. This got quickly fixed by a new upload.

   The rest of the code has been [20]moved to the point where only
   incompatibilities between Python 2.7 and Pyhon 3.4 had to be
   changed. The commit stream still require some cleanups but all
   tests are now passing under Python 3.

Documentation update

   The documentation on [21]how to assemble the weekly reports has
   been updated. (Lunar)

   The example on how to use [22]SOURCE_DATE_EPOCH with CMake has
   been improved. (Ben Beockel, Daniel Kahn Gillmor)

   The solution for [23]timestamps in man pages generated by
   Sphinx now uses SOURCE_DATE_EPOCH. (Mattia Rizzolo)

Package reviews

   45 [24]reviews have been removed, 141 added and 62 updated this
   week.

   67 new FTBFS reports have been filled by Chris Lamb, Niko Tyni,
   and Lisandro Damián Nicanor Pérez Meyer.

   New issues added this week:
   [25

[Reproducible-builds] package uploaded to our repo

2015-09-22 Thread Jérémy Bobbio
diffoscope_36.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


Re: [Reproducible-builds] Adding a 'c' build to test with DEB_BUILD_OPTIONS=nocheck ?

2015-09-23 Thread Jérémy Bobbio
Chris Lamb:
> I just ran into yet another package where the contents can vary
> depending on whether the tests are run or not.
> 
> As an example, without tests a given Python package entirely vanilla and
> is thus reproducible in our toolchain. However, executing the tests
> creates various intermediary files that are genuinely useful (eg.
> compiled versions of grammars, not .pyc files). These files are then
> installed to the binary package.
> 
> I'm only really discovering these when these files themselves are
> unreproducible/non-deterministic, otherwise they are completely
> invisible.
> 
> So, does this matter to us? It's strictly more of a general QA issue if
> we are declare that DEB_BUILD_OPTIONS does not contain nocheck from an
> reproducibility PoV.. but on the other hand, our testing framework would
> make this almost trivial to detect.
> 
> (Why another build? Whilst adding `nocheck` to our current `b` build
> could work, it would be a bad regression as I would dearly miss having
> the tests run in an exotic locale and timezone, etc., hence proposing a
> `c` build).

My take on this: I want to wait until we can rebuild packages taken from
directly the archive. We can easily run these later rebuilds with
“nocheck”. That should enable us to spot these problems.

What do you think?

-- 
Lunar.''`. 
lu...@debian.org: :Ⓐ  :  # apt-get install anarchism
`. `'` 
  `-   


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] [report] Week 22 in Stretch cycle

2015-09-28 Thread Jérémy Bobbio
   What happened in the [1]reproducible builds effort this past week:

Toolchain fixes

 * Ben Hutchings uploaded linux-tools/4.2-1 which makes the
   tarball generated by genorig.py reproducible.

Packages fixed

   The following 22 packages became reproducible due to changes in
   their build dependencies: breathe, cdi-api,
   geronimo-jpa-2.0-spec, geronimo-validation-1.0-spec,
   gradle-propdeps-plugin, jansi, javaparser, libjsr311-api-java,
   mac-widgets, mockito, mojarra, pastescript, plexus-utils2,
   powerline, python-psutil, python-sfml, python-tldap,
   pythondialog, tox, trident, truffle, zookeeper.

   The following packages became reproducible after getting fixed:
 * cloudprint/0.14-1 uploaded by David Steele, [2]original
   patch by Chris Lamb.
 * cpl-plugin-sinfo/2.6.5+dfsg-2 by Ole Streicher.
 * fonts-stix/1.1.1-4 uploaded by Hugo Lefeuvre, [3]original
   patch by Dhole.
 * gstreamermm-1.0/1.4.3+dfsg-5 by Philip Rinn.
 * hspell/1.2-3 uploaded by Tzafrir Cohen, [4]original patch
   by Reiner Herrmann.
 * libmodule-extractuse-perl/0.33-2 by gregor herrmann.
 * mariadb-10.0/10.0.21-1 by Otto Kekäläinen.
 * mkvtoolnix/8.4.0-1 uploaded by Christian Marillat, fixed
   upstream.
 * mlpack/1.0.12-5 by Barak A. Pearlmutter.
 * module-assistant/0.11.8 by Andreas Beckmann.
 * pitivi/0.94-4 uploaded by Sebastian Dröge, [5]reported by
   Scott Kitterman.
 * privoxy/3.0.23-4 by Roland Rosenfeld.
 * qtop/2.3.1-1 uploaded by Hugo Lefeuvre, fixed upstream.
 * seyon/2.20c-32 by Santiago Vila.
 * subvertpy/0.9.3-2 by Jelmer Vernooij.
 * twitter-bootstrap/2.0.2+dfsg-8 by Santiago Vila,
   [6]reported by Chris Lamb.
 * vdr-plugin-remote/0.7.0-1 by Tobias Grimm.

   Some uploads fixed some reproducibility issues but not all of
   them:
 * fldigi/3.23.01-1 by Kamal Mostafa.

   Patches submitted which have not made their way to the archive
   yet:
 * 799871 on console-data by Chris Lamb: grep all keymap files
   as text.
 * 87 on anarchism by Holger Levsen: use C locale when
   converting HTML to text files.
 * 800107 on dutch by Chris Lamb: grep wordlist files as text.

diffoscope development

   The changes to make [7]diffoscope run under Python 3, along
   with many small fixes, entered the archive with version 35 on
   September 21th.

   Another release was made the very next day fixed two
   encoding-related issues discovered when running diffoscope on
   more Debian packages.

strip-nondeterminism development

   Version 0.12.0 now [8]preserves file permissions on modified
   zip files and dh_strip_nondeterminism has been made
   [9]compatible with older debhelper.

disorderfs development

   Version 0.3.0 implemented a “multi-user” mode that was required
   to build Debian packages using disorderfs. It also added
   command line options to control the ordering of files in
   directory (either shuffled or reversed) and another to do
   arbitrary changes to the reported space used by files on disk.

   A couple days later, version 0.4.0 was released to support
   locks, flush, fsync, fsyncdir, read_buf, and write_buf. Almost
   all known issues have now been fixed.

reproducible.debian.net

   disorderfs is now used during the second build. This makes file
   ordering issue very easy to identify as such. (h01ger)

   Work has been done on making the distributed build setup more
   reliable. (h01ger)

Documentation update

   Matt Kraii fixed the example on [10]how to fix issues related
   to dates in Sphinx. Recent Sphinx versions should also be
   compatible with [11]SOURCE_DATE_EPOCH.

Package reviews

   53 [12]reviews have been removed, 85 added and 13 updated this
   week.

   46 packages failing to build from source has been identified by
   Chris Lamb, Chris West, and Niko Tyni. Chris Lamb was the lucky
   reporter of bug #80 on vdr-plugin-prefermenu.

   Issues related to disorderfs are being [13]tracked with a new
   issue.

References

   1. https://wiki.debian.org/ReproducibleBuilds
   2. https://bugs.debian.org/797505
   3. https://bugs.debian.org/792602
   4. https://bugs.debian.org/796275
   5. https://bugs.debian.org/799677
   6. https://bugs.debian.org/776299
   7. http://diffoscope.org/
   8. https://bugs.debian.org/798384
   9. https://bugs.debian.org/799732
  10. 
https://wiki.debian.org/ReproducibleBuilds/TimestampsInManpagesGeneratedBySphinx
  11. https://wiki.debian.org/ReproducibleBuilds/TimestampsProposal
  12. https://reproducible.debian.net/unstable/amd64/index_notes.html
  13. 
https://reproducible.debian.net/issues/unstable/ftbfs_due_to_disorderfs_issue.html


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

Re: [Reproducible-builds] dpkg 1.18.3.0~reproducible1 is broken (?)

2015-09-29 Thread Jérémy Bobbio
Santiago Vila:
> Using
> 
> deb http://reproducible.alioth.debian.org/debian/ ./
> 
> even the most simple package created makes lintian to complain:
> […]

I will not be able to look into this at least before the week-end. So
please beat me to it.

-- 
Lunar.''`. 
lu...@debian.org: :Ⓐ  :  # apt-get install anarchism
`. `'` 
  `-   


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

Re: [Reproducible-builds] CI testbuilds LC_ALL vs. LANG

2015-10-04 Thread Jérémy Bobbio
Andreas Metzler:
> If we are aiming for locale agnostic builds we seem to take a
> unnecessary work intensive approach by adding
> export LC_ALL=C
> to dozens (hundreds?) of debian/rules or changing
> -sort
> +env LC_ALL= sort
> instead of simply patching dpkg-buildpackage.

Using `dpkg-buildpackage` is not a requirement to build Debian packages.
If using `fakeroot debian/rules binary` starts to give different results
than running `dpkg-buildpackage`, some maintainers are likely to have
bad surprises.

Pushing for such a change is much larger than the scope of the
reproducible builds effort. Feel free to work on it, though!

-- 
Lunar.''`. 
lu...@debian.org: :Ⓐ  :  # apt-get install anarchism
`. `'` 
  `-   


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] [report] Week 23 in Stretch cycle

2015-10-05 Thread Jérémy Bobbio
   What happened in the [1]reproducible builds effort this past week:

Toolchain fixes

   Barry Warsaw uploaded wheel/0.26.0-1 which now uses
   [2]SOURCE_DATE_EPOCH instead of WHEEL_FORCE_TIMESTAMP and
   [3]uses time.gmtime() to avoid timezone issues. Patches by
   Chris Lamb and Reiner Herrmann.

   Andreas Metzler uploaded autogen/1:5.18.6-1 in experimental
   with [4]several patches for reproducibility issues written by
   Valentin Lorentz.

   Groovy upstream has merged a [5]change proposed by Emmanuel
   Bourg to remove timestamps generated by groovydoc.

   Ben Hutchings submitted a patch to [6]add support for
   SOURCE_DATE_EPOCH in linux-kbuild as an alternate way to
   specify the build timestamp.

   Reiner Herrman has sent a [7]patch adding support for
   [8]SOURCE_DATE_EPOCH in docbook-utils.

Packages fixed

   The following packages became reproducible due to changes in
   their build dependencies: commons-csv. fest-reflect,
   sunxi-tools, xfce4-terminal,

   The following packages became reproducible after getting fixed:
 * httpcomponents-client/4.5.1-1 by Emmanuel Bourg.
 * jhead/1:3.00-2 by Ludovic Rousseau.
 * libvigraimpex/1.10.0+dfsg-10 by Daniel Stender.
 * linux/4.2-1~exp1 by Ben Hutchings.
 * maelstrom/1.4.3-L3.0.6+main-7 by Santiago Vila.
 * nedit/1:5.6a-3 by Paul Gevers.
 * pitivi/0.94-4 by Sebastian Dröge, [9]reported by Scott
   Kitterman.
 * procenv/0.40-2 by James Hunt.
 * seyon/2.20c-32 by Santiago Vila.
 * slib/3b1-5 by Santiago Vila.
 * spock/0.7-groovy-2.0-1 by Emmanuel Bourg.
 * u-boot/2015.10~rc4+dfsg1-1 by Vagrant Cascadian.
 * vdr-plugin-remote/0.7.0-1 by Tobias Grimm.

   Some uploads fixed some reproducibility issues but not all of
   them:
 * dutch/1:2.10-4 uploaded by Thijs Kinkhorst, [10]original
   patch by Chris Lamb.

   Patches submitted which have not made their way to the archive
   yet:
 * 800776 on cluster-glue: exports SOURCE_DATE_EPOCH in
   debian/rules.

   Tomasz Rybak uploaded pycuda/2015.1.3-1 which should fix
   reproducibility issues. The package has not been tested as it
   is in contrib.

   akira found an [11]embedded code copy of texi2html in fftw.

reproducible.debian.net

   Email notifications are now only sent once a day per package,
   instead of on each status change. (h01ger)

   disorderfs has been temporarily disabled to see if it had any
   impact on the disk space issues. (h01ger)

   When running out of disk space, build nodes will now
   automatically detect the problem. This means test results will
   not be recorded as “FTBFS” and the problem will be reported to
   Jenkins maintainers. (h01ger)

   The navigation menu of package pages has been improved.
   (h01ger)

   The two amd64 builders now use two different kernel versions:
   3.16 from stable and 4.1 from backports on the other. (h01ger)

   We now [12]graph the number of packages which needs to be
   fixed. (h01ger)

   Munin now creates graphs on how many builds were performed by
   build nodes ([13]example). (h01ger)

   A migration plan has been agreed with [14]DSA on how to turn
   Jenkins into an official Debian service. A backport of
   jenkins-job-builder for Jessie is currently missing. (h01ger)

Package reviews

   119 [15]reviews have been removed, 103 added and 45 updated
   this week.

   16 “fail to build from source” issues were reported by Chris
   Lamb and Mattia Rizzolo.

   New issue this week:
   [16]timestamps_in_manpages_generated_by_docbook_utils.

Misc.

   Allan McRae has submitted a patch to make [17]ArchLinux pacman
   [18]record a .BUILDINFO file.

References

   1. https://wiki.debian.org/ReproducibleBuilds
   2. https://bugs.debian.org/795942
   3. https://bugs.debian.org/789981
   4. https://bugs.debian.org/794892
   5. https://github.com/apache/incubator-groovy/pull/121
   6. http://www.spinics.net/lists/linux-kbuild/msg11728.html
   7. https://bugs.debian.org/800797
   8. https://wiki.debian.org/ReproducibleBuilds/TimestampsProposal
   9. https://bugs.debian.org/799677
  10. https://bugs.debian.org/800107
  11. https://bugs.debian.org/800653
  12. https://reproducible.debian.net/unstable/amd64/stats_pkgs_to_fix.png
  13. 
https://jenkins.debian.net/munin/debian.net/profitbricks-build1-amd64.debian.net/jenkins_reproducible_builds.html
  14. https://dsa.debian.org/
  15. https://reproducible.debian.net/unstable/amd64/index_notes.html
  16. 
https://reproducible.debian.net/issues/unstable/timestamps_in_manpages_generated_by_docbook_utils_issue.html
  17. https://wiki.archlinux.org/index.php/Pacman
  18. https://lists.archlinux.org/pipermail/pacman-dev/2015-October/020357.html


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

2015-10-08 Thread Jérémy Bobbio
dpkg_1.18.3.0~reproducible2.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#801333: retitle

2015-10-14 Thread Jérémy Bobbio
retitle 801333 diffoscope: UnicodeDecodeError with 
haskell-authenticate-oauth/1.5.1.1-4
clone 801333 -1
retitle -1 diffoscope: UnicodeDecodeError in test_text_option_with_file
severity -1 minor
thanks

Holger Levsen:
> someone just reported the same problem on irc: […]

It was not the same problem. With a quick look at the stack trace,
you can see that the error is raised in a different location of the
code. Just like when you see “Segmentation fault”, it's a bad idea to
assume that it's due to the same bug.

> ==
>  FAILURES 
> ==
> _
>  test_text_option_with_file 
> _
> 
> tmpdir = local('/tmp/pytest-bnewbold/pytest-4/test_text_option_with_file0'), 
> capsys = <_pytest.capture.CaptureFixture object at 0x7f643f784c18>
> 
> def test_text_option_with_file(tmpdir, capsys):
> report_path = str(tmpdir.join('report.txt'))
> args = ['--text', report_path, TEST_TAR1_PATH, TEST_TAR2_PATH]
> with pytest.raises(SystemExit) as excinfo:
> main(args)
> assert excinfo.value.code == 1
> out, err = capsys.readouterr()
> assert err == ''
> assert out == ''
> with open(report_path, 'r') as f:
> >   assert f.read().startswith('--- ')
> 
> tests/test_main.py:105: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> 
> self = 
> input = b'--- /home/bnewbold/diffoscope/tests/data/test1.tar\n+++ 
> /home/bnewbold/diffoscope/tests/data/test2.tar\n\xe2\x94\x9c...n the Ends of 
> Goods and Evils, or alternatively [About]\n\xe2\x94\x82 +The 
> Purposes of Good and Evil).\n\xe2\x95\xb5\n'
> final = True
> 
> def decode(self, input, final=False):
> >   return codecs.ascii_decode(input, self.errors)[0]
> E   UnicodeDecodeError: 'ascii' codec can't decode byte 0xe2 in position 
> 102: ordinal not in range(128)
> 
> /usr/lib/python3.4/encodings/ascii.py:26: UnicodeDecodeError
> 
>  1 failed, 11 passed in 0.61 seconds 
> =
> 
> 
> [10:40] < bnewbold> this is with the diffoscope 36 package installed, running 
> the tests in a git checkout
> [10:42] < bnewbold> this is in a just-created 'sid' lxc container created on 
> a debian jessie laptop (created with lxc-create)

The test suite assumes to be run under a UTF-8 locale. That needs to be
either enforced or fixed.

-- 
Lunar.''`. 
lu...@debian.org: :Ⓐ  :  # apt-get install anarchism
`. `'` 
  `-   


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#801855: ongl: test strings depend on default character encoding of the build system

2015-10-15 Thread Jérémy Bobbio
Source: ognl
Version: 2.7.3-6
Severity: minor
User: reproducible-builds@lists.alioth.debian.org
Usertags: locale

Hi!

It seems that depending on the build system default character encoding,
the non-ASCII characters in org/ognl/test/QuotingTest.java might get
mistranslated.

This also prevents ongl from building reproducibly when one locale is
ISO-8859-15 and the other is UTF-8. See:
https://reproducible.debian.net/dbd/unstable/amd64/ognl_2.7.3-6.debbindiff.html
(also supplied as attachment)

-- 
Lunar.''`. 
lu...@debian.org: :Ⓐ  :  # apt-get install anarchism
`. `'` 
  `-   


ognl_2.7.3-6.debbindiff.html.xz
Description: Binary data


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

Re: [Reproducible-builds] Notes on OpenWRT Reproducibility

2015-10-15 Thread Jérémy Bobbio
bnewb...@robocracy.org:
> 1. There's a statement that diffoscope "cannot detect .bin files as
> squashfs". I don't think that's accurate, I could rename .squashfs files to
> .bin and diffoscope found the magic and worked fine.

diffoscope currently recognizes Squashfs images using file(1). The
extension should not matter.

> I think the issue is the huge number of hardware-specific ".bin" and
> ".img" formats OpenWRT generates[1]. Many of these are in uImage
> format (detectable by magic), others are just {kernel, bootloader, fs}
> at fixed offsets. For the former it would be great if diffoscope could
> pick up on the format in any way. I found a random script[2] that
> tries to extract uImage binaries into the original files, but it would
> be a good start to just present the metadata and offsets.

The easiest way is probably to add a new “container-style” type of file
in diffoscope. If you don't feel comfortable doing it yourself by
looking at the existing code I can probably do it, but I would welcome
good pointers and test data. Feel free to open a new wishlist bug for
this.

> 3. I was sort of surprised to see linux-latest passing reproducibility in
> Debian on armhf. Was anything special necessary for this, eg changes to
> mkimage to generate uImage without a timestamp? Any advice or HOWTO out
> there on reproducible kernel builds? I see Ben Hutchings's kbuild patch for
> SOURCE_DATE_EPOCH support; is that sufficient?

linux-latest is just a meta package to instal the latest kernel version.
The source package for the kernel is called “linux”. It has not been
tested on armhf yet:
https://reproducible.debian.net/rb-pkg/unstable/armhf/linux.html

> 5. diffoscope has squashfs support, but is there actually a way to generate
> squashfs files reproducibly? Perhaps there is a way to strip the metadata
> after the fact?

It's most probable that changes in mksquashfs itself will be required.

Thanks for your work! :)

-- 
Lunar.''`. 
lu...@debian.org: :Ⓐ  :  # apt-get install anarchism
`. `'` 
  `-   


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

Re: [Reproducible-builds] On expiring packages and issues

2015-10-16 Thread Jérémy Bobbio
Holger Levsen:
> On Freitag, 16. Oktober 2015, Santiago Vila wrote:
> > Hi. Do we expire issues (not packages) when no package currently have them?
> 
> https://reproducible.debian.net/index_issues.html -> scroll down to the 
> bottom.
> 
> > (I would prefer to keep them).
> 
> it depends, i'd say. they also stay in git history. Packages we definitly 
> remove once they are fixed or removed from sid.

I would say that it's better to keep any issue which other free software
projects might bump into. I know it's far from a clear guideline. In any
cases, we have the history, as Holger said.

-- 
Lunar.''`. 
lu...@debian.org: :Ⓐ  :  # apt-get install anarchism
`. `'` 
  `-   


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

Re: [Reproducible-builds] On expiring packages and issues

2015-10-16 Thread Jérémy Bobbio
Santiago Vila:
> On Fri, Oct 16, 2015 at 01:40:22PM +0200, Jérémy Bobbio wrote:
> > I would say that it's better to keep any issue which other free software
> > projects might bump into.
> 
> Agreed.
> 
> > I know it's far from a clear guideline. In any
> > cases, we have the history, as Holger said.
> 
> I'd like to avoid having to recover an old issue from git history, if
> possible.
> 
> So I propose this simple guideline to remove issues: Do it only when
> they were due to bugs in our CI.

I think it's sound to also remove issues due to Debian-specific
toolchain once it has been fixed. I don't think there's much value in
keeping tabs on something like ordering problems in debhelper the
required `sort` has been added.

-- 
Lunar.''`. 
lu...@debian.org: :Ⓐ  :  # apt-get install anarchism
`. `'` 
  `-   


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

Re: [Reproducible-builds] On expiring packages and issues

2015-10-17 Thread Jérémy Bobbio
Santiago Vila:
> On Fri, Oct 16, 2015 at 03:22:34PM +0200, Jérémy Bobbio wrote:
> > I think it's sound to also remove issues due to Debian-specific
> > toolchain once it has been fixed. I don't think there's much value in
> > keeping tabs on something like ordering problems in debhelper the
> > required `sort` has been added.
> 
> What do you mean by "Debian-specific"? We have lots of derived distros.
> In case they are interested in their own reproducibility, it would be nice
> for them that we do not expire issues so happily.

Good point.

> We are not even tracking anywhere which version fixed the different
> issues.

I believe this is done in the monthly reports.

-- 
Lunar.''`. 
lu...@debian.org: :Ⓐ  :  # apt-get install anarchism
`. `'` 
  `-   


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

Re: [Reproducible-builds] Weird localedef failures

2015-10-18 Thread Jérémy Bobbio
Hi!

Esa, thanks for looking into these problems.

Esa Peuha:
> Santiago Vila:
> > For the same reason (not being build-essential), it is ok that it's
> > not pre-installed in pbuilder chroot, and in fact, usually it's not.
> 
> Huh? How is the second build supposed to be able to set the locale to
> fr_CH without the locales package?

We install the locales-all package which contains all locales already
pre-built, and `Provides: locales`.

> No, that is not the problem. If you look at
> 
> https://reproducible.debian.net/rbuild/unstable/amd64/apertium-en-ca_0.9.3~r61232-1.rbuild.log
> 
> you can see that locales is in the Build-Depends list, but pbuilder
> doesn't try to install it, so either there is something wrong with
> the installed packages database (which would be a bug in our pbuilder
> setup) or locales is installed but some of its files are somehow
> inaccessible (which would also be a bug in our pbuilder setup).

We already had an issue where locales-all was not providing everything
that locales would provide. See #788352.

I guess the fact that locales-all doesn't ship localedef can be
considered as a bug. But the whole point of locales-all is that you
don't need to build anything.

In the present case, the fact that apertium locale packages ships
compiled locale definition files feels like a hack. I wonder if there's
a better solution. I also wonder if compiled locale definitions works
accross different versions of the glibc or if there's potential upgrade
issues hiding here.

(I must admit that I am also puzzled at the idea that there's a source
package *per locale*, that must be a hell of a burden to update and keep
in sync.)

So, probably there's a minor bug to fill against locales-all about
localedef.

A quick work-around for apertium locale packages would be to check if
the system already has a compiled locale definition and copy it instead
of always using localedef.

But I think it would be worthwhile to revisit how apertium locale
packages are built and work.

-- 
Lunar.''`. 
lu...@debian.org: :Ⓐ  :  # apt-get install anarchism
`. `'` 
  `-   


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

Re: [Reproducible-builds] Weird localedef failures

2015-10-18 Thread Jérémy Bobbio
Lunar:
> We already had an issue where locales-all was not providing everything
> that locales would provide. See #788352.
> 
> I guess the fact that locales-all doesn't ship localedef can be
> considered as a bug. But the whole point of locales-all is that you
> don't need to build anything.
> […]
> So, probably there's a minor bug to fill against locales-all about
> localedef.

I just noticed that this very issue might be already fixed in
experimental. It would be worthwhile work to verify the situation for
apertium locale packages.

-- 
Lunar.''`. 
lu...@debian.org: :Ⓐ  :  # apt-get install anarchism
`. `'` 
  `-   


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] [report] Week 25 in Stretch cycle

2015-10-19 Thread Jérémy Bobbio
   What happened in the [1]reproducible builds effort this week:

Toolchain fixes

 * Scott Kitterman uploaded python3-defaults/3.4.3-7 which
   changes py3versions to list versions in a consistent order.
   Issue [2]reported by Santiago Vila with a tentative patch
   by Chris Lamb. Sadly, it appears the problem is not
   entirely solved.
 * Martin Pitt uploaded init-system-helpers/1.24 which makes
   the order of unit files in maintainer scripts stable.
   [3]Original patch by Reiner Herrmann.
 * Niko Tyni uploaded libextutils-xsbuilder-perl/0.28-3 which
   [4]makes the generated XS code reproducible.

   Niko Tyni wrote a new [5]patch adding support for
   [6]SOURCE_DATE_EPOCH in Pod::Man. This would complement or
   replace the previously implemented POD_MAN_DATE environment
   variable in a more generic way.

   Niko Tyni [7]proposed a fix to prevent [8]mtime variation in
   directories due to debhelper usage of cp --parents -p.

Packages fixed

   The following 119 packages became reproducible due to changes
   in their build dependencies: aac-tactics, aafigure, apgdiff,
   bin-prot, boxbackup, calendar, camlmix, cconv, cdist, cl-asdf,
   cli-common, cluster-glue, cppo, cvs, esdl, ess, faucc, fauhdlc,
   fbcat, flex-old, freetennis, ftgl, gap, ghc, git-cola,
   globus-authz-callout-error, globus-authz, globus-callout,
   globus-common, globus-ftp-client, globus-ftp-control,
   globus-gass-cache, globus-gass-copy, globus-gass-transfer,
   globus-gram-client, globus-gram-job-manager-callout-error,
   globus-gram-protocol, globus-gridmap-callout-error,
   globus-gsi-callback, globus-gsi-cert-utils,
   globus-gsi-credential, globus-gsi-openssl-error,
   globus-gsi-proxy-core, globus-gsi-proxy-ssl,
   globus-gsi-sysconfig, globus-gss-assist, globus-gssapi-error,
   globus-gssapi-gsi, globus-net-manager, globus-openssl-module,
   globus-rsl, globus-scheduler-event-generator,
   globus-xio-gridftp-driver, globus-xio-gsi-driver, globus-xio,
   gnome-control-center, grml2usb, grub, guilt, hgview, htmlcxx,
   hwloc, imms, kde-l10n, keystone, kimwitu++, kimwitu-doc, kmod,
   krb5, laby, ledger, libcrypto++, libopendbx, libsyncml, libwps,
   lprng-doc, madwimax, maria, mediawiki-math, menhir, misery,
   monotone-viz, morse, mpfr4, obus, ocaml-csv, ocaml-reins,
   ocamldsort, ocp-indent, openscenegraph, opensp, optcomp, opus,
   otags, pa-bench, pa-ounit, pa-test, parmap, pcaputils,
   perl-cross-debian, prooftree, pyfits, pywavelets, pywbem, rpy,
   signify, siscone, swtchart, tipa, typerep, tyxml,
   unison2.32.52, unison2.40.102, unison, uuidm, variantslib,
   zipios++, zlibc, zope-maildrophost.

   The following packages became reproducible after getting fixed:
 * autoconf2.13/2.13-67 uploaded by Ben Pfaff, [9]original
   patch by Santiago Vila.
 * ding/1.8-3 by Roland Rosenfeld.
 * dropbear/2015.68-1 by Guilhem Moulin. First set of patches
   (#777324, #793006) by Chris Lamb and akira.
 * nvram-wakeup/1.1-3 by Tobias Grimm.
 * original-awk/2012-12-20-5 by Santiago Vila.
 * resiprocate/1:1.10.0-1 uploaded by Daniel Pocock, [10]patch
   by Reiner Herrmann merged upstream.
 * sbuild/0.66.0-5 by Johannes Schauer, [11]reported by Jakub
   Wilk.
 * scribus/1.4.5+dfsg1-4 by Mattia Rizzolo.
 * sgmltools-lite/3.0.3.0.cvs.20010909-19 by Santiago Vila.
 * unicode-data/8.0-2 uploaded by Alastair McKinstry,
   [12]original patch by Esa Peuha.
 * xmoto/0.5.11+dfsg-3 by Stephen Kitt.

   Packages which could not be tested:
 * mp4h/1.3.1-11 by Axel Beckert (shared memory issue on
   reproducible.debian.net).
 * nvidia-graphics-drivers-legacy-304xx/304.128-5 by Andreas
   Beckmann (non-free).

   Some uploads fixed some reproducibility issues but not all of
   them:
 * libvirt/1.2.20-1 by Guido Günther.
 * libgpars-groovy-java/1.2.1-4 by Emmanuel Bourg.

   Patches submitted which have not made their way to the archive
   yet:
 * 801520 on libapache2-mod-perl2 by Niko Tyni: sort the list
   of files used to build the documentation.
 * 801523 on perl by Niko Tyni: sort the list of input files
   in PPPort_xs.PL. [13]Forwarded upstream.
 * 801864 on ncurses by Esa Peuha: use C locale when sorting
   the list of keys.
 * 802042 on libchado-perl by Niko Tyni: sort keys in
   installed configuration file.

   Lunar reported that [14]test strings depend on default
   character encoding of the build system in ongl.

reproducible.debian.net

   The 189 packages composing the Arch Linux “core” repository are
   [15]now being tested. No packages are currently reproducible,
   but most of the time the difference is limited to metadata.
   This has already gained some interest in the Arch Linux
   community.

   An explicit log message is now visible when a build has been
   killed due to the 12 hours timeout. (h01ger)

   Remote build setup has been made more robust and self
   m

[Reproducible-builds] [report] Week 26 in Stretch cycle

2015-10-26 Thread Jérémy Bobbio
   What happened in the [1]reproducible builds effort this past week:

Toolchain fixes

 * Stefano Rivera uploaded python-cffi/1.3.0-1 which makes the
   generated code order deterministic for anonymous unions and
   anonymous structs. [2]Reported by Tristan Seligmann, and
   [3]fixed uptream.

   Mattia Rizzolo created a [4]bug report to continue the
   discussion on storing cryptographic checksums of the installed
   .deb in dpkg database. This follows the [5]discussion that
   happened in June and is a pre-requisite to add checksums to
   [6].buildinfo files.

   Niko Tyni [7]identified why the Vala compiler would generate
   code in varying order. A better patch than his initial attempt
   still needs to be written.

Packages fixed

   The following 15 packages became reproducible due to changes in
   their build dependencies: alt-ergo, approx, bin-prot,
   caml2html, coinst, dokujclient, libapreq2, mwparserfromhell,
   ocsigenserver, python-cryptography, python-watchdog,
   slurm-llnl, tyxml, unison2.40.102, yojson.

   The following packages became reproducible after getting fixed:
 * 389-ds-base/1.3.3.13-1 uploaded by Timo Aaltonen,
   [8]original patch by Chris Lamb.
 * apache2/2.4.17-1 by Stefan Fritsch.
 * ben/0.7.3 by Mehdi Dogguy.
 * cdo/1.6.9+dfsg.1-3 by Alastair McKinstry.
 * epubcheck/4.0.0-2 by Eugene Zhukov.
 * grads/2:2.0.2-8 by Alastair McKinstry.
 * litl/0.1.7+dfsg-1 uploaded by Samuel Thibault, [9]original
   patch by Chris Lamb.
 * mia/2.2.5-1 by Gert Wollny.
 * powerline/2.2-2 by Jerome Charaoui.
 * python-oslotest/1:1.11.0-2 by Thomas Goirand.
 * tth/4.05+ds-2 uploaded by Jerome Benoit, [10]original patch
   by Reiner Herrmann.
 * xbae/4.60.4-7 uploaded by Nicholas Breen, [11]original
   patch by Chris Lamb.
 * xdmf/2.1.dfsg.1-13 by Alastair McKinstry.

   Some uploads fixed some reproducibility issues but not all of
   them:
 * foxeye/0.10.2-1 by Andriy Grytsenko.
 * jaxe/3.5-6 by Samuel Thibault.
 * ncurses/6.0+20151017-1 by Sven Joachim, [12]original patch
   by Esa Peuha.
 * olap4j/1.2.0-1 by Emmanuel Bourg.
 * tomcat8/8.0.28-1 by Emmanuel Bourg.

reproducible.debian.net

   pbuilder has been updated to version 0.219~bpo8+1 on all eight
   build nodes. (Mattia Rizzolo, h01ger)

   Packages that FTBFS but for which no open bugs have been
   recorded are now tested again after 3 days. Likewise for
   “depwait” packages. (h01ger)

   Out of disk situations will not cause IRC notifications
   anymore. (h01ger)

Documentation update

   Lunar continued to work on writing documentation for the future
   reproducible-builds.org website.

Package reviews

   44 [13]reviews have been removed, 81 added and 48 updated this
   week.

   Chris West and Chris Lamb identified 70 “fail to build from
   source” issues.

Misc.

   h01ger presented the project in Mexico City at the [14]3er
   Congreso de Seguridad de la Información. It seems there is an
   interest for academic papers related to reproducible builds.

   Bryan has been doing hard work to improve reproducibility for
   [15]OpenWrt. He wrote a [16]report linking to the [17]patches
   and [18]test results he published.

References

   1. https://wiki.debian.org/ReproducibleBuilds
   2. https://bugs.debian.org/799278
   3. 
https://bitbucket.org/cffi/cffi/commits/1cfe8c7a59e88186f1a07a9dde28e1787fd900d0
   4. https://bugs.debian.org/802241
   5. https://lists.debian.org/debian-dpkg/2015/06/msg00011.html
   6. https://wiki.debian.org/ReproducibleBuilds/BuildinfoSpecification
   7. https://bugs.debian.org/802528
   8. https://bugs.debian.org/799010
   9. https://bugs.debian.org/797508
  10. https://bugs.debian.org/792181
  11. https://bugs.debian.org/797871
  12. https://bugs.debian.org/801864
  13. https://reproducible.debian.net/unstable/amd64/index_notes.html
  14. http://congresoseguridad.org/index.php?page=programa
  15. https://www.openwrt.org/
  16. https://lists.openwrt.org/pipermail/openwrt-devel/2015-October/036688.html
  17. https://github.com/bnewbold/openwrt-repro/compare/master...repro
  18. http://repro.bnewbold.the-nsa.org/openwrt-results/


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

Re: [Reproducible-builds] [Pkg-octave-devel] Trying to fix random_buildpath_by_octave

2015-10-27 Thread Jérémy Bobbio
Rafael Laboissiere:
> I think that I found the culprit.  The .oct files for octave are built using
> the mkoctfile program, as you pointed out above.  This program uses default
> values for the the environment variables containing flags for the to C++
> compilation and binary link.  For instance:
> 
>  $ mkdir tmp-1
>  $ cp /usr/share/doc/liboctave-dev/examples/oregonator.cc tmp-1
>  $ (cd tmp-1 ; mkoctfile -v oregonator.cc)
>  g++ -c -D_FORTIFY_SOURCE=2 -fPIC -I/usr/include/octave-4.0.0/octave/.. 
> -I/usr/include/octave-4.0.0/octave -I/usr/include/hdf5/serial 
> -I/usr/include/mpi -pthread -fopenmp -mieee-fp -g -O2 
> -fstack-protector-strong -Wformat -Werror=format-security oregonator.cc -o 
> oregonator.o
>  g++ -shared -Wl,-Bsymbolic  -o oregonator.oct  oregonator.o  
> -L/usr/lib/i386-linux-gnu/octave/4.0.0 -L/usr/lib/i386-linux-gnu -loctinterp 
> -loctave -Wl,-z,relro
> 
> I discovered that the "-g" is responsible for the difffrences in the
> resulting binaries.  Here is the proof:
> 
>  $ (cd ../tmp-1 ; CXXFLAGS="-g -O2 -fstack-protector-strong -Wformat 
> -Werror=format-security" mkoctfile oregonator.cc ; md5sum oregonator.o*)
>  e10495ec145b6c3f946c1728fa64afd2  oregonator.o
>  641e6c9a7ee23b38a4452e6337f8a6b5  oregonator.oct

Is `mkoctfile` creating a randomly-named temporary file? g++ will write
the full path to the source file in the debug symbols. That would
explain why removing `-g` solve the problem.

-- 
Lunar.''`. 
lu...@debian.org: :Ⓐ  :  # apt-get install anarchism
`. `'` 
  `-   


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

Re: [Reproducible-builds] [Pkg-octave-devel] Trying to fix random_buildpath_by_octave

2015-10-27 Thread Jérémy Bobbio
Sébastien Villemot:
> My understanding is that .oct files are stripped before creating the
> Debian package (by dh_strip). Hence they no longer contain debugging
> symbol. So removing -g at compilation time should make no difference.

The build id is generated by ld using a checksum of the whole binary
before it is being stripped. (The build id is used to tie a binary to
its debug symbols, so that's exactly what we want.)

-- 
Lunar.''`. 
lu...@debian.org: :Ⓐ  :  # apt-get install anarchism
`. `'` 
  `-   


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

Re: [Reproducible-builds] binNMU detection for generating Changes field in buildinfo (was: Re: binNMU or reproducible builds (choose only one))

2015-11-06 Thread Jérémy Bobbio
Johannes Schauer:
> Lunar:
> > Simon McVittie:
> > > BinNMUs don't upload any source at all. They instruct the autobuilders
> > > to run sbuild with some non-default options ("sbuild --binNMU=2
> > > --make-binNMU "Rebuild with foo 3" foo_1.2-3" will result in
> > > foo_1.2-3+b2_i386.changes, I think), and sbuild on each autobuilder
> > > downloads the foo_1.2-3.dsc that already exists in the archive.
> > > 
> > > The only inherent conflict that I can see between binNMUs and
> > > reproducible builds is that all attempts to reproduce the original build
> > > need to prepend the same changelog entry as the original build, for
> > > example by copying them from the build info that will already be
> > > necessary to be able to use the same build-dependency versions.
> > 
> > This is already taken in account in the current `.buildinfo`
> > specification [1]:
> > 
> > Changes
> > 
> > Close to the one in `*.changes`. When source and binary versions
> > differ, the field is added with the content of the extra changelog
> > entries.
> > 
> > The field is already created by the experimental `dpkg-genbuildinfo` [2].
> > It is not yet implement in the `srebuild` script but it shouldn't be too
> > hard.
> > 
> >  [1]: 
> > https://wiki.debian.org/ReproducibleBuilds/BuildinfoSpecification#buildinfo_field_descriptions
> >  [2]: 
> > https://anonscm.debian.org/cgit/reproducible/dpkg.git/tree/scripts/dpkg-genbuildinfo.pl?h=pu/reproducible_builds&id=c4665b80d7a042216145652ea3d1259b78ac6237#n246
> 
> I don't think this is the right way to do it. Looking at the dpkg-genbuildinfo
> script, it seems that this behaviour is triggered whenever the source version
> differs from the binary version. But binNMUs are not the only case for which
> the source and binary versions differ. To convince yourself you can run the
> following (get all packages that are not binNMUs (detected by them having a bX
> at the end of their version) and which have a versioned Source field):
> 
> grep-dctrl --not --field Version --eregex '\+b[0-9]+$' --and \
>   -F Source --eregex '\(' \
>   
> /var/lib/apt/lists/http.debian.net_debian_dists_sid_main_binary-amd64_Packages
>  \
>   -n -s Package,Source,Version
> 
> It shows that there are several binary packages that have a different source
> package version even though they are not binNMUs. The version of any binary
> package can be done during the build with dh_gencontrol or directly via
> `dpkg-gencontrol -v$version`.

Thanks for the explaination.

> The right way to find out whether a binNMU is done is to check
> $changelog->{'Binary-Only'} as it is done in dpkg-genchanges. During a binNMU,
> sbuild sets binary-only=yes in the top changelog entry.

I've changed the `if` to use $changelog->{'Binary-Only'}, but it was
already working as intended. The code read as follow:

my $sourceversion = $changelog->{'Binary-Only'} ?
$prev_changelog->{'Version'} : $changelog->{'Version'};
my $binaryversion = $changelog->{'Version'};
[…]
if ($binaryversion ne $sourceversion) { # handle binNMU

> In fact, what you call $binaryversion in that script is really the source
> version because your $binaryversion comes from d/changelog. So maybe you want
> to rename that variable. That also then remove the ambiguity from a later part
> in the code when you set the Version field in the buildinfo to $binaryversion.
> This is ambiguous because a source package can build binary packages of 
> several
> different versions.

The naming is coming straight from dpkg-genchanges, so both should be
changed if you fill they are ill-named.

-- 
Lunar.''`. 
lu...@debian.org: :Ⓐ  :  # apt-get install anarchism
`. `'` 
  `-   


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

2015-11-06 Thread Jérémy Bobbio
dpkg_1.18.4~reproducible1.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


Re: [Reproducible-builds] Repro Build report I do not understand

2015-11-06 Thread Jérémy Bobbio
Dirk Eddelbuettel:
> One of my packages which still didn't build reproduciby is littler -- for
> which I am upstream. I rewrote the build process, and even though it produces
> a small binary (which embeds R for use in #! scripts etc) it now ships as an
> R package on CRAN.  Which all build reproducibly.
> 
> Yet I have this:
>https://reproducible.debian.net/rb-pkg/unstable/amd64/littler.html
> 
> And I don't understand the 'dbgsym' part.  What turns that on? How can I turn
> it off?

You might want to read the latest status update to learn about them:
https://lists.debian.org/debian-devel/2015/08/msg00443.html

But they are not the source of reproducibility, just a symptom.

From the quick look I had, it seems symbols are sorted in a different
order depending on the locale:
https://reproducible.debian.net/dbd/unstable/amd64/littler_0.3.0-2.debbindiff.html#r-cran-littler_0.3.0-2_amd64.deb/data.tar.xz/data.tar/./usr/bin/r/objdump%20--disassemble%20--full-contents%20{}
(It's my guess because both are sorted by the second build has lowercase
'a' grouped together with uppercase 'A'.)

The symbols match the ones in
https://sources.debian.net/src/r-base/3.2.2-1/src/library/datasets/data/

Hope that helps,
-- 
Lunar.''`. 
lu...@debian.org: :Ⓐ  :  # apt-get install anarchism
`. `'` 
  `-   


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

Re: [Reproducible-builds] Repro Build report I do not understand

2015-11-06 Thread Jérémy Bobbio
Dirk Eddelbuettel:
> | From the quick look I had, it seems symbols are sorted in a different
> | order depending on the locale:
> | 
> https://reproducible.debian.net/dbd/unstable/amd64/littler_0.3.0-2.debbindiff.html#r-cran-littler_0.3.0-2_amd64.deb/data.tar.xz/data.tar/./usr/bin/r/objdump%20--disassemble%20--full-contents%20{}
> | (It's my guess because both are sorted by the second build has lowercase
> | 'a' grouped together with uppercase 'A'.)
> | 
> | The symbols match the ones in
> | https://sources.debian.net/src/r-base/3.2.2-1/src/library/datasets/data/
> | 
> | Hope that helps,
> 
> That is very good too.  Should I ensure a locale during the build?  Any other
> heavy hand?

You can try to set LC_ALL (or set LC_COLLATE and unset LC_ALL). But you
might want to identify where the sorting happens first.

-- 
Lunar.''`. 
lu...@debian.org: :Ⓐ  :  # apt-get install anarchism
`. `'` 
  `-   


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

Re: [Reproducible-builds] GCC patch reviewed. Proposed mail for gcc-patches mailing list

2015-11-10 Thread Jérémy Bobbio
Santiago Vila:
> I have very mixed feelings about this kind of patches.
> 
> I fear that by modifying gcc to hide the improper usage of __DATE__
> and __TIME__, we could be removing an incentive for maintainers and
> authors to write software which is truly reproducible, i.e. we run
> the risk of people thinking in the line of "Oh, I will not care about
> my program using __TIME__ or __DATE__ because gcc will take care of
> that".

Well, I still would like to push to add `-Wdate-time` to our default set
of CFLAGS. Even with Dhole's patch, developpers would see the warning
and ask themselves if it's the right thing to do.

I think for this precise case, that's a good compromise.

Also, I'm pretty sure that if the GCC team merges support for
SOURCE_DATE_EPOCH, we could get a similar patch merged to LLVM.

-- 
Lunar.''`. 
lu...@debian.org: :Ⓐ  :  # apt-get install anarchism
`. `'` 
  `-   


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

Re: [Reproducible-builds] [R-B WEBSITE PATCH] native en_US speaker website tweaks

2015-11-11 Thread Jérémy Bobbio
Daniel Kahn Gillmor:
>  index.html | 8 
>  1 file changed, 4 insertions(+), 4 deletions(-)

Thanks, it's now live! :)

-- 
Lunar.''`. 
lu...@debian.org: :Ⓐ  :  # apt-get install anarchism
`. `'` 
  `-   


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] [report] Week 29 in Stretch cycle

2015-11-16 Thread Jérémy Bobbio
   What happened in the [1]reproducible builds effort this past week:

Toolchain fixes

   Emmanuel Bourg uploaded eigenbase-resgen/1.3.0.13768-2 which
   uses of the scm-safe comment style by default to make them
   deterministic.

   Mattia Rizzolo started a [2]new thread on debian-devel to ask a
   wider audience for issues about the -Wdate-time compile time
   flag. When enabled, GCC and clang print warnings when __DATE__,
   __TIME__, or __TIMESTAMP__ are used. Having the [3]flag set by
   default would prompt maintainers to remove these source of
   unreproducibility from the sources.

Packages fixed

   The following packages have become reproducible due to changes
   in their build dependencies: bmake, cyrus-imapd-2.4,
   drobo-utils, eigenbase-farrago, fhist, fstrcmp, git-dpm,
   intercal, libexplain, libtemplates-parser, mcl, openimageio,
   pcal, powstatd, ruby-aggregate, ruby-archive-tar-minitar,
   ruby-bert, ruby-dbd-odbc, ruby-dbd-pg, ruby-extendmatrix,
   ruby-rack-mobile-detect, ruby-remcached, ruby-stomp,
   ruby-test-declarative, ruby-wirble, vtprint.

   The following packages became reproducible after getting fixed:
 * bino/1.6.1-1 by Daniel Schaal.
 * debconf/1.5.58 by Colin Watson.
 * fte/0.50.2b6-8 uploaded by Axel Beckert, [4]original patch
   by Reiner Herrmann.
 * gnome-desktop3/3.18.2-1 uploaded by Michael Biebl, fix by
   Laurent Bigonville based on Andreas Henriksson's
   suggestion.
 * libxmu/2:1.1.2-2 uploaded by Julien Cristau, fix by Andreas
   Boll.
 * megaglest/3.11.1-3 by Markus Koschany.
 * p4vasp/0.3.29+dfsg-2 uploaded by Graham Inggs, [5]original
   patch by Reiner Herrmann.
 * pd-iemmatrix/0.3-1 by IOhannes m zmölnig.
 * performous/1.0+git150721-2 by Markus Koschany.
 * python-sqlalchemy-utils/0.30.12-2 uploaded by Thomas
   Goirand, [6]original patch by Chris Lamb.
 * pywavelets/0.3.0-1 uploaded by Daniele Tricoli, [7]original
   patch by Juan Picca.
 * torus-trooper/0.22.dfsg1-10 uploaded by Markus Koschany,
   [8]original patch by Reiner Herrmann.
 * tycho2/2-3 by Ole Streicher.
 * xenomai/2.6.4+dfsg-0.1 by Leopold Palomo-Avellaneda.
 * xfonts-mona/2.90-8 by Nobuhiro Iwamatsu.

   Some uploads fixed some reproducibility issues, but not all of
   them:
 * apache-mime4j/0.7.2-4 by Emmanuel Bourg.
 * ispell-lt/1.2.1-5 by Chris Lamb (#778263.
 * xscavenger/1.4.5-1 uploaded by Hwei Sheng Teoh, [9]original
   patch by Chris Lamb.

   Patches submitted which have not made their way to the archive
   yet:
 * 804729 on pbuilder by Reiner Herrmann: tell dblatex to
   build in a deterministic path.

reproducible.debian.net

   The fifth and sixth armhf build nodes have been set up,
   resulting in five more builder jobs for armhf. More than 10,000
   packages have now been identified as reproducible with the
   [10]“reproducible” toolchain on armhf. (Vagrant Cascadian,
   h01ger)

   Helmut Grohne and Mattia Rizzolo now have root access on all 12
   build nodes used by [11]reproducible.debian.net and
   [12]jenkins.debian.net. (h01ger)

   [13]reproducible-builds.org is now linked from all package
   pages and the reproducible.debian.net dashboard. (h01ger)

   profitbricks-build5-amd64 and profitbricks-build6-amd64,
   responsible for running amd64 tests now run 398.26 days in the
   future. This means that one of the two builds that are being
   compared will be run on a different minute, hour, day, month,
   and year. This is not yet the case for armhf. FreeBSD tests are
   also done with 398.26 days difference. (h01ger)

   The design of the [14]Arch Linux test page has been greatly
   improved. (Levente Polyak)

diffoscope development

   Three releases of diffoscope happened this week numbered 39 to
   41. It includes support for EPUB files (Reiner Herrmann) and
   Free Pascal unit files, usually having .ppu as extension (Paul
   Gevers).

   The rest of the changes were mostly targetting at making it
   easier to run diffoscope on other systems. The tlsh, rpm, and
   debian modules are now all optional. The test suite will
   properly skip tests that need optional tools or modules when
   they are not available. As a result, diffosope is [15]now
   available on PyPI and thanks to the work of Levente Polyak
   [16]in Arch Linux.

   Getting these versions in Debian was a bit cumbersome. Version
   39 was uploaded with an expired key (according to the keyring
   on ftp.debian.org which will hopefully be updated soon) which
   is currently handled by keeping the files in the queue
   [17]without REJECTing them. This prevented any other Debian
   Developpers to upload the same version. Version 40 was uploaded
   as a source-only upload… but failed to build from source which
   had the [18]undesirable side effect of removing the previous
   version from unstable. The package faild to build from source
   because it was built passing -I to debbuild. This excl

[Reproducible-builds] Bug#806149: diffoscope TypeError processing openjfx/8u60-b27-4

2015-11-25 Thread Jérémy Bobbio
Control: merge 805774 806149
Control: tag 805774 pending

Mattia Rizzolo:
> Seen on rb.d.n with openjfx/8u60-b27-4 on testing (trying it on unstable
> resulted with a FTBFS of the package...)

Same problem as #805774. Fixed in Git.

-- 
Lunar.''`. 
lu...@debian.org: :Ⓐ  :  # apt-get install anarchism
`. `'` 
  `-   


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#806321: coreutils: please make the build reproducible (timestamps)

2015-11-26 Thread Jérémy Bobbio
Source: coreutils
Version: 8.23-4
Severity: wishlist
Tags: patch
User: reproducible-builds@lists.alioth.debian.org
Usertags: timestamps

Hi!

While working on the “reproducible builds” effort [1], we have noticed
that coreutils could not be built reproducibly. The build process uses
help2man to create some of manpages.

help2man author added support for the SOURCE_DATE_EPOCH environment
variable [2] in version 1.47.1 which makes it possible to use a
pre-defined value instead of the time of the build.

As coreutils source currently contains an old version of help2man, the
attached patch will copy the version in the help2man Debian package
before running ./configure on top of setting SOURCE_DATE_EPOCH to the
date of the latest debian/changelog entry.

Once applied, coreutils can be built reproducibly in our current
experimental framework.

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

-- 
Lunar.''`. 
lu...@debian.org: :Ⓐ  :  # apt-get install anarchism
`. `'` 
  `-   
diff -u coreutils-8.23/debian/changelog coreutils-8.23/debian/changelog
--- coreutils-8.23/debian/changelog
+++ coreutils-8.23/debian/changelog
@@ -1,3 +1,14 @@
+coreutils (8.23-4.0~reproducible1) UNRELEASED; urgency=low
+
+  * Non-maintainer upload.
+  * Make the build reproducible:
+- Replace in-tree help2man by the one in the help2man package. Add
+  the required Build-Depends. The in-tree help2man doesn't support
+  SOURCE_DATE_EPOCH.
+- Set SOURCE_DATE_EPOCH to the date of the latest debian/changelog entry.
+
+ -- Jérémy Bobbio   Thu, 26 Nov 2015 12:43:39 +0100
+
 coreutils (8.23-4) unstable; urgency=low
 
   * [33] remove chroot optimization that avoids the actual chroot when 
diff -u coreutils-8.23/debian/control coreutils-8.23/debian/control
--- coreutils-8.23/debian/control
+++ coreutils-8.23/debian/control
@@ -3,7 +3,7 @@
 Section: utils
 Priority: required
 Standards-Version: 3.9.6.0
-Build-Depends: gettext (>= 0.10.37), debhelper (>= 5.0.0), autotools-dev, dh-buildinfo, texinfo (>= 4.2), groff, dpatch, libattr1-dev [linux-any], libacl1-dev [linux-any], libselinux1-dev (>= 1.32) [linux-any], gperf, bison
+Build-Depends: gettext (>= 0.10.37), debhelper (>= 5.0.0), autotools-dev, dh-buildinfo, texinfo (>= 4.2), groff, dpatch, libattr1-dev [linux-any], libacl1-dev [linux-any], libselinux1-dev (>= 1.32) [linux-any], gperf, bison, help2man
 XS-Testsuite: autopkgtest
 
 Package: coreutils
diff -u coreutils-8.23/debian/rules coreutils-8.23/debian/rules
--- coreutils-8.23/debian/rules
+++ coreutils-8.23/debian/rules
@@ -20,6 +20,9 @@
   endif
 endif
 
+# ensure reproducible output
+export SOURCE_DATE_EPOCH = $(shell date -d "$$(dpkg-parsechangelog -SDate)" +%s)
+
 # implement no optimization build option
 CFLAGS = $(shell dpkg-buildflags --get CFLAGS)
 LDFLAGS = $(shell dpkg-buildflags --get LDFLAGS)
@@ -46,6 +46,9 @@
 	dh_testdir
 	dh_autotools-dev_updateconfig
 
+	# replace in-tree help2man by the one in Debian
+	cp /usr/bin/help2man man/help2man
+
 	CFLAGS="$(CFLAGS)" CPPFLAGS="$(CPPFLAGS)" \
 		LDFLAGS='$(LDFLAGS)' ./configure \
 		--build=$(DEB_BUILD_GNU_TYPE) --host=$(DEB_HOST_GNU_TYPE) \


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#806328: xz-utils: please ship xz.pot

2015-11-26 Thread Jérémy Bobbio
Source: xz-utils
Version: 5.1.1alpha+20120614-2.1
Severity: wishlist
User: reproducible-builds@lists.alioth.debian.org
Usertags: timestamps
X-Debbugs-Cc: reproducible-builds@lists.alioth.debian.org, sanv...@debian.org

Hi!

While working on the “reproducible builds” effort [1], we have noticed
that xz-utils could not be built reproducibly. One of the problem is
that the Gettext files always contain a different value for
POT-Creation-Date.

That's because the template for translations, xz.pot, is currently not
shipped as part of the source. So xgettext will be run everytime,
resulting in a new POT-Creation-Date and this slight loss of
information. This is not considered a good practice, as Santiago Vila
has explained in another bug report [2].

Upstream do ship xz.pot in its release tarballs. They also reference the
file to potential translators in README. So it would probably be better
to ship the file in Debian source.

Thanks!

 [1]: https://wiki.debian.org/ReproducibleBuilds
 [2]: https://bugs.debian.org/792687#15

-- 
Lunar.''`. 
lu...@debian.org: :Ⓐ  :  # apt-get install anarchism
`. `'` 
  `-   


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#806331: xz-utils: make the selected POSIX shell stable accross build environments

2015-11-26 Thread Jérémy Bobbio
Source: xz-utils
Version: 5.1.1alpha+20120614-2.1
Severity: normal
User: reproducible-builds@lists.alioth.debian.org
Usertags: environment
X-Debbugs-Cc: reproducible-builds@lists.alioth.debian.org, sanv...@debian.org

Hi!

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

When dash is the default shell, the configure script
m4/posix-shell.m4 will select /bin/bash as the “conforming POSIX
shell”. When bash is the default shell, /bin/sh will be selected.

The binary package currently in sid on amd64 uses /bin/bash. As bash
is currently Essential:yes (#103284), this is probably not a problem.
But I wonder if they would not be troubles if the package was built on
an environment were bash is the default shell, but later installed on a
system where /bin/dash is /bin/sh.

So for reproducibility and safety reason, it would be best if the
selected path to the shell would not depend on the build environment.

Thanks!

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

-- 
Lunar.''`. 
lu...@debian.org: :Ⓐ  :  # apt-get install anarchism
`. `'` 
  `-   


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] On which arch should Arch:all packages be built? addition to scsh-0.6, we should not be trying to build these packages on amd64:

2015-11-27 Thread Jérémy Bobbio
Santiago Vila:
> Let's take cmucl as an example:
> 
> Package: cmucl
> Architecture: i386 all
> 
> It has "all", yes, but implicitly I take the Architecture line
> as saying that I should only try to build the "Arch: all" package
> using a i386 autobuilder.
> 
> 
> Does this make sense?

I think the question can be phrased as: should architecture-independent
packages be buildable on all architectures?

My own answer would be: yes, as long as they don't mandate a particular
architecture in their Build-Depends-Indep.

Is there something wrong with this answer?

-- 
Lunar.''`. 
lu...@debian.org: :Ⓐ  :  # apt-get install anarchism
`. `'` 
  `-   


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

Re: [Reproducible-builds] On which arch should Arch:all packages be built? addition to scsh-0.6, we should not be trying to build these packages on amd64:

2015-11-29 Thread Jérémy Bobbio
Santiago Vila:
> On Fri, Nov 27, 2015 at 11:12:50AM +0100, Jérémy Bobbio wrote:
> > I think the question can be phrased as: should architecture-independent
> > packages be buildable on all architectures?
> > 
> > My own answer would be: yes, as long as they don't mandate a particular
> > architecture in their Build-Depends-Indep.
> > 
> > Is there something wrong with this answer?
> 
> My answer would be: Not necessarily.
> 
> In theory, the build process could need to compile a program which is
> used to create some file which is later used in the binary-indep target.
> 
> Such program does not need to be portable because, well, some programs
> are just not portable. Not in the sense that it's inherently non-portable
> but just in the sense that nobody had the time to "port" it yet.
> 
> If we had a case like this, an architecture field in the source
> package saying "i386 all" would mean that we could do all this:
> 
> "dpkg-buildpackage" under i386 to build the i386.deb and the all.deb.
> "dpkg-buildpackage -A" under i386 to build only the all.deb.
> "dpkg-buildpackage -B" under i386 to build only the i386.deb.
> 
> and at the same time it would be possible that the source package is
> just not designed or ready to build the all.deb under, say, amd64.
> 
> In most cases it will probably work, but I do not see it as a
> requirement that we should take for granted. For example, I would not
> submit it as a bug (unless I find a way to fix it first).

While I agree, I really think you've identified a hole in the policy
here. Either we need a formal agreement that "i386 all" = "Arch: all"
packages must be built on i386 or an extra field somewhere to indicate
that.

I would suggest moving the discussion to a better suited communication
channel as this is a general issue. Maybe debian-dpkg@l.d.o?

Thanks for finding this. :)

-- 
Lunar.''`. 
lu...@debian.org: :Ⓐ  :  # apt-get install anarchism
`. `'` 
  `-   


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] diffoscope dedicated mailing-list

2015-12-02 Thread Jérémy Bobbio
Hi!

diffoscope is really growing bigger than just the Debian community, so
it felt better to create a dedicated mailing-list.

Please subscribe: https://lists.reproducible-builds.org/listinfo/diffoscope

-- 
Lunar.''`. 
lu...@debian.org: :Ⓐ  :  # apt-get install anarchism
`. `'` 
  `-   


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#806891: [Reproducible-commits] [diffoscope] 01/01: Multi-file HTML output

2015-12-02 Thread Jérémy Bobbio
Joachim Breitner:
> Multi-file HTML output

Really great idea. :) Thanks for the initial patch!

> +parser.add_argument('--jquery', metavar='url', dest='jquery_url',
> +help='link to the jquery url, with --html-dir. By 
> default, a symlink to /usr/share/javascript/jquery/jquery.js is created')

To make the Suggests a reality, I think it would be better to only
display “By default, a symlink…” if the file is already present on the
filesystem. Otherwise, if `--html-dir` is specified, the software should
exit with an error, asking users to specify `--jquery`.

Related question: is the browser going to visit the subpage if I have
JavaScript disabled? In that case, one other option is to only add the
JavaScript code when we have access to jQuery. I know some people don't
want JavaScript in their browser, so specifying something like
`--no-jquery` or `--jquery=none` could also be a way to turn it off.

> +# no output desired? print text
> +if not parsed_args.text_output and not parsed_args.html_output and 
> not parsed_args.html_output_directory:
> +parsed_args.text_output = "-"

Maybe it would be nicer to write:

if not any(parsed_args.text_output, parsed_args.html_output, 
parsed_args.html_output_directory):

> +def output_unified_diff(print_func, directory, anchor, unified_diff):
> +if directory and len(unified_diff) > 
> Config.general.separate_file_diff_size:
> +# open a new file for this table
> +filename="%s.html" % hashlib.md5(anchor.encode('utf-8')).hexdigest()

I'm not entirely sure the anchor as it's working right now will be
unique… 

> +logger.debug('separate html output for diff of %s (size %d)', 
> anchor, len(unified_diff))
> +with file_printer(directory, filename) as new_print_func:
> +output_unified_diff_table(new_print_func, unified_diff)

So I think it would be great to crash here instead of overwrite if the file
aleardy exists. What do you think?

-- 
Lunar.''`. 
lu...@debian.org: :Ⓐ  :  # apt-get install anarchism
`. `'` 
  `-   


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

Re: [Reproducible-builds] Broken HTML on diffoscope.org

2015-12-13 Thread Jérémy Bobbio
Axel Beckert:
> there seems to be a missing "" on https://diffoscope.org/ behind
> the link to http://brew.sh/. Well, actually it's a "" which
> behaves like a missing one.

Just fixed it. Thanks!

-- 
Lunar.''`. 
lu...@debian.org: :Ⓐ  :  # apt-get install anarchism
`. `'` 
  `-   


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#808002: Bug#808002: diffoscope: Add support for Mozilla-optimized ZIPs

2015-12-15 Thread Jérémy Bobbio
Mike Hommey:
> It would be useful for diffoscope to output differences in omni.ja files as
> for other Zip files, instead of ending up with a diff of an hexdump.
> 
> The attached patch implements a minimal support for this. It however doesn't
> look at the difference in the `preload` value.

Great! I think it's fine to just skip the preload value. It will show up
in the fallback binary comparison if that's the only remaining difference.

I was going to merge this, but actually I have to ask: would you be kind
enough to amend the test suite as well?

Thanks!
-- 
Lunar.''`. 
lu...@debian.org: :Ⓐ  :  # apt-get install anarchism
`. `'` 
  `-   


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#808103: Bug#808103: diffoscope: Truncated symbols in ELF diffs

2015-12-16 Thread Jérémy Bobbio
Control: tag -1 + pending

Mike Hommey:
> When there are differences in symbols-related sections of ELF files,
> symbols can be truncated if they are long enough. That happens often
> with C++ mangled symbols.
> 
> The following patch fixes the issue: […]

Applied, thanks!

-- 
Lunar.''`. 
lu...@debian.org: :Ⓐ  :  # apt-get install anarchism
`. `'` 
  `-   


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#808104: Bug#808104: diffoscope 43 KeyError's with several packages

2015-12-16 Thread Jérémy Bobbio
Control: tag -1 + pending

Mattia Rizzolo:
> Seen on rb.d.n, with several packages, e.g.
> dhcpdump/1.8-2 on testing/amd64
> console-data/2:1.12-5 on testing/amd64
> 
> 
> Wed Dec 16 01:52:13 UTC 2015 - diffoscope 43 will be used to compare the two 
> builds:
> Traceback (most recent call last):
> […]
>   File "/usr/lib/python3/dist-packages/diffoscope/comparators/libarchive.py", 
> line 150, in get_member
> raise KeyError('%s not found in archive', member_name)
> KeyError: ('%s not found in archive', './md5sums')

Thanks for the report. Fix pushed.

-- 
Lunar.''`. 
lu...@debian.org: :Ⓐ  :  # apt-get install anarchism
`. `'` 
  `-   


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#808121: Bug#808121: diffoscope: HTML output is bloated

2015-12-16 Thread Jérémy Bobbio
Close: tag -1 + pending

Mike Hommey:
> Looking at the HTML in the HTML output, one can see that it is needlessly 
> large.
> 
> Specifically, there appears to be a lot of e.g. 
> following each other, without even a separation between them. This conflates
> the amount of memory necessary for browsers to render those pages.

I've commited a fix for this specific issue. The HTML presenter borrowed
a lot of code from diff2html which was probably not much optimized in
the first place. I guess the output could be vastly improved, but I'd
rather focus on other part of the code for now. Patches highly welcome
in the meantime.

-- 
Lunar.''`. 
lu...@debian.org: :Ⓐ  :  # apt-get install anarchism
`. `'` 
  `-   


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#808002: Bug#808002: diffoscope: Add support for Mozilla-optimized ZIPs

2015-12-16 Thread Jérémy Bobbio
Control: tag -1 + pending

Mike Hommey:
> On Tue, Dec 15, 2015 at 04:31:46PM +0100, Jérémy Bobbio wrote:
> > Mike Hommey:
> > > It would be useful for diffoscope to output differences in omni.ja files 
> > > as
> > > for other Zip files, instead of ending up with a diff of an hexdump.
> > > 
> > > The attached patch implements a minimal support for this. It however 
> > > doesn't
> > > look at the difference in the `preload` value.
> > 
> > Great! I think it's fine to just skip the preload value. It will show up
> > in the fallback binary comparison if that's the only remaining difference.
> > 
> > I was going to merge this, but actually I have to ask: would you be kind
> > enough to amend the test suite as well?
> 
> Attached.

Awesome! Applied. :)

-- 
Lunar.''`. 
lu...@debian.org: :Ⓐ  :  # apt-get install anarchism
`. `'` 
  `-   


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#808121: Bug#808121: Bug#808121: diffoscope: HTML output is bloated

2015-12-16 Thread Jérémy Bobbio
Mike Hommey:
> Here's another easy win, attached.

Nice. Commited. :)

-- 
Lunar.''`. 
lu...@debian.org: :Ⓐ  :  # apt-get install anarchism
`. `'` 
  `-   


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#808121: Bug#808121: Bug#808121: diffoscope: HTML output is bloated

2015-12-17 Thread Jérémy Bobbio
Esa Peuha:
> While we are at it, let's convert HTML character entity references
> (which each use 6-8 characters and as many bytes in the HTML file)
> to actual characters (which UTF-8 encodes as 2-3 bytes). Since all
> diffoscope output files are peppered with abundant amounts of these
> things, this could reduce the file sizes by a few percent at least.
> I used Python string literals instead of the actual characters in
> the Python file, because 1) the non-breaking and zero-width spaces
> would be very hard to distinguish from ordinary space and missing
> string content, respectively, and 2) it is impossible to be sure
> that every piece of software that is ever going to be used to view
> or edit the file would handle non-ASCII characters correctly.

Thanks for the patch. It's been commited and push.

I would be grateful if you could submit ready-to-merge Git changes next
time (see git-format-patch(1)).

-- 
Lunar.''`. 
lu...@debian.org: :Ⓐ  :  # apt-get install anarchism
`. `'` 
  `-   


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#808003: Bug#808003: diffoscope: Comparing directories shouldn't care about file order

2015-12-18 Thread Jérémy Bobbio
Control: tag -1 + pending

Mike Hommey:
>* What led up to the situation?
> 
> Comparing two directories
> 
>* What exactly did you do (or not do) that was effective (or
>  ineffective)?
> 
> Ran `diffoscope --html output.html a b` where a and b are directories 
> containing
> more or less the same thing.
> 
>* What was the outcome of this action?
> 
> The output contained differences in the output for find due to
> filesystem-dependent behavior wrt file ordering in readdir(3).
> 
>* What outcome did you expect instead?
> 
> The sorted list should be compared instead.

I've just commited a fix. Thanks for the report.

-- 
Lunar.''`. 
lu...@debian.org: :Ⓐ  :  # apt-get install anarchism
`. `'` 
  `-   

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

[Reproducible-builds] Bug#808199: Bug#808199: diffoscope: Weird line numbering in diff output

2015-12-18 Thread Jérémy Bobbio
Control: tag -1 + pending

Mike Hommey:
> Attached here is two files that can be compared directly, exposing the
> same problem. That's essentially the output of tar --full-time -tvf on
> both tarballs from the original bug report.
> 
> The following patch fixes the numbering issue:
> […]

Commited, thanks. The bug was around since the very first version of
the current HTML presenter code!

> However, there's another issue, that the diff is actually incomplete:
> the right hand side stops 3 lines too early.

I've fixed this as well.  The 'lines skipped' message was not written
when we were skipping lines at the end of the diff.

-- 
Lunar.''`. 
lu...@debian.org: :Ⓐ  :  # apt-get install anarchism
`. `'` 
  `-   


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#808541: Bug#808541: diffoscope TypeError with openocd/0.9.0-1 in testing/amd64

2015-12-20 Thread Jérémy Bobbio
Control: tag -1 + pending

Mattia Rizzolo:
> TypeError: unorderable types: bytes() < str()

I've pushed a fix. Thanks for the report.

(This only appeared when the default encoding was not Unicode-aware.)

-- 
Lunar.''`. 
lu...@debian.org: :Ⓐ  :  # apt-get install anarchism
`. `'` 
  `-   


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#808120: Bug#808120: diffoscope: Should use less memory

2015-12-22 Thread Jérémy Bobbio
Control: tag -1 + pending

Mike Hommey:
>* What was the outcome of this action?
> 
> A 533KB HTML file that, considering its size, doesn't contain much 
> differences.
> Yet, while processing this, the diffoscope process (not its children readelf,
> objdump or diff processes) sucked more than 4GB of memory. That tells me
> something unexpectedly suboptimal is happening.

Absolutely! The code was building a full list of lines to compare in
memory instead of feeding them to diff as they were produced. The fix
was trivial once the issue was understood. Thanks for the nudge.

-- 
Lunar.''`. 
lu...@debian.org: :Ⓐ  :  # apt-get install anarchism
`. `'` 
  `-   


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] dpkg-dev: please add support for .buildinfo files

2016-01-05 Thread Jérémy Bobbio
pecified).
 .IP \fB6.\fP 3
+Unless a source-only build has been requested, it runs the \fBbuildinfo\fP hook
+and calls \fBdpkg\-genbuildinfo\fP to generate a \fB.buildinfo\fP file.
+Several \fBdpkg\-buildpackage\fP options are forwarded to
+\fBdpkg\-genbuildinfo\fP.
+.IP \fB7.\fP 3
 It runs the \fBchanges\fP hook and calls \fBdpkg\-genchanges\fP to
 generate a \fB.changes\fP file.
 Many \fBdpkg\-buildpackage\fP options are forwarded to
 \fBdpkg\-genchanges\fP.
-.IP \fB7.\fP 3
+.IP \fB8.\fP 3
 It runs the \fBpostclean\fP hook and if \fB\-tc\fP is specified, it will
 call \fBfakeroot debian/rules clean\fP again.
-.IP \fB8.\fP 3
-It calls \fBdpkg\-source \-\-after\-build\fP.
 .IP \fB9.\fP 3
+It calls \fBdpkg\-source \-\-after\-build\fP.
+.IP \fB10.\fP 3
 It runs the \fBcheck\fP hook and calls a package checker for the
 \fB.changes\fP file (if a command is specified in \fBDEB_CHECK_COMMAND\fP or
 with \fB\-\-check\-command\fP).
-.IP \fB10.\fP 3
+.IP \fB11.\fP 3
 It runs the \fBsign\fP hook and calls \fBgpg2\fP or \fBgpg\fP to sign
 the \fB.dsc\fP file (if any, unless \fB\-us\fP is specified or on UNRELEASED
 builds), and the \fB.changes\fP file (unless \fB\-uc\fP is specified or on
 UNRELEASED builds).
-.IP \fB11.\fP 3
+.IP \fB12.\fP 3
 It runs the \fBdone\fP hook.
 .
 .SH OPTIONS
@@ -317,6 +322,12 @@ The source package version (without the epoch).
 The upstream version.
 .RE
 .TP
+.BI \-\-buildinfo-identifier= identifier
+By default, \fBdpkg\-buildpackage\fP put the system hostname and the
+current time in the name of the \fB.buildinfo\fP file. An arbitrary
+identifier can be specified as a replacement (since dpkg 1.18.5). It must
+contain only alphanumeric characters and hyphens.
+.TP
 .BI \-p sign-command
 When \fBdpkg\-buildpackage\fP needs to execute GPG to sign a source
 control (\fB.dsc\fP) file or a \fB.changes\fP file it will run
@@ -351,6 +362,10 @@ Passed unchanged to \fBdpkg\-source\fP. See its manual page.
 Pass option \fIopt\fP to \fBdpkg\-source\fP (since dpkg 1.15.6).
 Can be used multiple times.
 .TP
+.BI \-\-buildinfo\-option= opt
+Pass option \fIopt\fP to \fBdpkg\-genbuildinfo\fP (since dpkg 1.18.5).
+Can be used multiple times.
+.TP
 .BI \-\-changes\-option= opt
 Pass option \fIopt\fP to \fBdpkg\-genchanges\fP (since dpkg 1.15.6).
 Can be used multiple times.
@@ -422,6 +437,7 @@ and initial arguments for
 .BR dpkg\-source (1),
 .BR dpkg\-architecture (1),
 .BR dpkg\-buildflags (1),
+.BR dpkg\-genbuildinfo (1),
 .BR dpkg\-genchanges (1),
 .BR fakeroot (1),
 .BR lintian (1),
diff --git a/man/dpkg-genbuildinfo.1 b/man/dpkg-genbuildinfo.1
new file mode 100644
index 000..77f2a76
--- /dev/null
+++ b/man/dpkg-genbuildinfo.1
@@ -0,0 +1,98 @@
+.\" dpkg manual page - dpkg-genbuildinfo(1)
+.\"
+.\" Copyright © 1995-1996 Ian Jackson 
+.\" Copyright © 2000 Wichert Akkerman 
+.\" Copyright © 2008-2010 Raphaël Hertzog 
+.\" Copyright © 2006-2014 Guillem Jover 
+.\" Copyright © 2015 Jérémy Bobbio 
+.\"
+.\" This is free software; you can redistribute it and/or modify
+.\" it under the terms of the GNU General Public License as published by
+.\" the Free Software Foundation; either version 2 of the License, or
+.\" (at your option) any later version.
+.\"
+.\" This is distributed in the hope that it will be useful,
+.\" but WITHOUT ANY WARRANTY; without even the implied warranty of
+.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+.\" GNU General Public License for more details.
+.\"
+.\" You should have received a copy of the GNU General Public License
+.\" along with this program.  If not, see <https://www.gnu.org/licenses/>.
+.
+.TH dpkg\-genbuildinfo 1 "2015-01-01" "Debian Project" "dpkg utilities"
+.SH NAME
+dpkg\-genbuildinfo \- generate Debian .buildinfo files
+.
+.SH SYNOPSIS
+.B dpkg\-genbuildinfo
+.RI [ option ...]
+.br
+.
+.SH DESCRIPTION
+.B dpkg\-genbuildinfo
+reads information from an unpacked and built Debian source tree and
+from the files it has generated and generates a Debian control
+file describing the build environment and the build products
+.RB ( .buildinfo " file)."
+.
+.SH OPTIONS
+.TP
+.BI \-c controlfile
+Specifies the main source control file to read information from. The
+default is
+.BR debian/control .
+.TP
+.BI \-l changelog-file
+Specifies the changelog file to read information from. The
+default is
+.BR debian/changelog .
+.TP
+.BI \-f files-list-file
+Specifies where is the list of files that have been produced by the build,
+rather than using
+.BR debian/files .
+.TP
+.BI \-F changelog-format
+Specifies the format of the changelog. See \fBdpkg\-parsechangelog\fP(1)
+for information about alternative formats.
+.TP
+.BI \-u upload-files-dir
+Look for the files to be uploaded in
+.I upload-files-dir
+rather than
+.B ..
+.RB ( dpkg\-genbuildinfo
+needs to find these files so that it can include their sizes and
+c

[Reproducible-builds] package uploaded to our repo

2016-01-15 Thread Jérémy Bobbio
dpkg_1.18.5~reproducible1.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] dpkg-dev: please make mtimes of packaged files deterministic

2016-01-15 Thread Jérémy Bobbio
reassign 759886 dpkg-dev
retitle 759886 dpkg-dev: please make mtimes of packaged files deterministic
thanks

Hi!

The attached patch series is an attempt to make the mtimes of packaged
files deterministic. It is taken from the `pu/reproducible_builds`
dpkg branch maintained by the “reproducible builds” folks [1].

The first two patches introduce the idea of a canonical build timestamp
that will be used throughout dpkg-deb.

The first patch will make use of this timestamp to set the mtime in ar
headers (that's #75). All headers will thus get the same timestamp
instead of recording the current time as they are added.

The second patch will use the --mtime and --clamp-mtime option of tar to
clamp the mtime of files recorded in control.tar and data.tar to the
build timestamp: files created at a later time will see their mtime
set to the build timestamp (that's #759886). As --clamp-mtime is only
available since tar/1.28-1 and has not yet been merged upstream,
dpkg-deb will first look for its availability by looking for the option
in the output of “tar --help”. If it's not available, it will fallback
to the previous behavior.

The third patch adds the ability to set the aforementioned build
timestamp using the SOURCE_DATE_EPOCH environment variable [2].

The forth patch changes dpkg-buildpackage to set SOURCE_DATE_EPOCH to
the time of the latest debian/changelog entry if it hasn't been already
set, effectively making the timestamps recorded by dpkg-deb in the most
common build process deterministic.

 [1]: 
https://anonscm.debian.org/cgit/reproducible/dpkg.git/log/?h=pu/reproducible_builds
 [2]: https://reproducible-builds.org/specs/source-date-epoch/

-- 
Lunar.''`. 
lu...@debian.org: :Ⓐ  :  # apt-get install anarchism
`. `'` 
  `-   
From e56a69e2fac8531c9a45008470ca8aa8dd9f Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?J=C3=A9r=C3=A9my=20Bobbio?= 
Date: Tue, 27 Aug 2013 22:38:31 +0200
Subject: [PATCH 1/4] dpkg-deb: Use a single timestamp for ar headers when
 building a .deb

In order to make build reproducible in the future, we now use a single
timestamp in all ar headers when creating a .deb.

Previously, each ar header would have the current time of its creation.
This level of precision is not really needed and the time of the beginning of
the build is good enough.

Address: #75
---
 dpkg-deb/build.c   | 10 +++---
 dpkg-split/split.c |  4 ++--
 lib/dpkg/ar.c  | 13 +++--
 lib/dpkg/ar.h  |  4 ++--
 4 files changed, 18 insertions(+), 13 deletions(-)

diff --git a/dpkg-deb/build.c b/dpkg-deb/build.c
index 8d9f066..117e424 100644
--- a/dpkg-deb/build.c
+++ b/dpkg-deb/build.c
@@ -37,6 +37,7 @@
 #include 
 #include 
 #include 
+#include 
 
 #include 
 #include 
@@ -529,6 +530,7 @@ do_build(const char *const *argv)
   int arfd;
   int p1[2], gzfd;
   pid_t c1, c2;
+  time_t build_timestamp;
 
   /* Decode our arguments. */
   dir = *argv++;
@@ -559,6 +561,8 @@ do_build(const char *const *argv)
   }
   m_output(stdout, _(""));
 
+  build_timestamp = time(NULL);
+
   /* Now that we have verified everything its time to actually
* build something. Let's start by making the ar-wrapper. */
   arfd = creat(debar, 0644);
@@ -636,8 +640,8 @@ do_build(const char *const *argv)
 compressor_get_extension(control_compress_params.type));
 
 dpkg_ar_put_magic(debar, arfd);
-dpkg_ar_member_put_mem(debar, arfd, DEBMAGIC, deb_magic, strlen(deb_magic));
-dpkg_ar_member_put_file(debar, arfd, adminmember, gzfd, -1);
+dpkg_ar_member_put_mem(debar, arfd, DEBMAGIC, deb_magic, build_timestamp, strlen(deb_magic));
+dpkg_ar_member_put_file(debar, arfd, adminmember, gzfd, build_timestamp, -1);
   } else {
 internerr("unknown deb format version %d.%d", deb_format.major, deb_format.minor);
   }
@@ -679,7 +683,7 @@ do_build(const char *const *argv)
 if (lseek(gzfd, 0, SEEK_SET))
   ohshite(_("failed to rewind temporary file (%s)"), _("data member"));
 
-dpkg_ar_member_put_file(debar, arfd, datamember, gzfd, -1);
+dpkg_ar_member_put_file(debar, arfd, datamember, gzfd, build_timestamp, -1);
 
 close(gzfd);
   }
diff --git a/dpkg-split/split.c b/dpkg-split/split.c
index 8137654..d132e3e 100644
--- a/dpkg-split/split.c
+++ b/dpkg-split/split.c
@@ -210,13 +210,13 @@ mksplit(const char *file_src, const char *prefix, off_t maxpartsize,
 		  (intmax_t)st.st_size, (intmax_t)partsize,
 		  curpart, nparts, pkg->available.arch->name);
 		dpkg_ar_member_put_mem(file_dst.buf, fd_dst, PARTMAGIC,
-		   partmagic.buf, partmagic.used);
+		   partmagic.buf, time(NULL), partmagic.used);
 		varbuf_reset(&partmagic);
 
 		/* Write the data part. */
 		varbuf_printf(&partname, "data.%d", curpart);
 		dpkg_ar_member_put_file(file_dst.buf, fd_dst, partname.buf,
-		fd_src, cur_

Re: [Reproducible-builds] package uploaded to our repo

2016-01-15 Thread Jérémy Bobbio
Jérémy Bobbio:
> dpkg_1.18.5~reproducible1.dsc has just been uploaded to 
> https://wiki.debian.org/ReproducibleBuilds/ExperimentalToolchain

With this upload, we should not need a modified debhelper anymore. :)
See #759886.

-- 
Lunar.''`. 
lu...@debian.org: :Ⓐ  :  # apt-get install anarchism
`. `'` 
  `-   


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

Re: [Reproducible-builds] Communicating about the change in behaviour for ar

2016-01-17 Thread Jérémy Bobbio
Manoj Srivastava:
> I was trying to import the new version of make into unstable, and
>  I discovered that t/10 tests about the archive related part of makes
>  test suite failed. The reason was a change in the behaviour of ar,
>  which is now configured with --enable-deterministic-archives. When
>  adding files and the archive index use zero for UIDs, GIDs, timestamps,
>  and use consistent file modes for all files.  When this option is used,
>  if ar is used with identical options and identical input files,
>  multiple runs will create identical output files regardless of the
>  input files' owners, groups, file modes, or modification times. This
>  seems like good news for reproducible builds.
> 
> Unfortunately, when using makes libxx(*.a) syntax for creating
>  archives, make needs the timestamp of the file in order to decide to
>  update it or not. With the current deterministic behavior of ar, the
>  timestamp is always 0. This is behaviour that is not backwards
>  compatible (as can be seen in the bug report #798804 and
>  #798913). Some operations, instead of being no-ops, now rebuild theg/Lunar
>  archive.
> 
> T think the change, because of the benefits of the
>  reproducible builds, are a good thing, but I also think that they are
>  not visible to the general user base (not all the users of ar and make
>  are debian developers, and the release is not the only thing built
>  using ar and make).  My recommendations is a NEWS file entry for
>  binutils and make; and a mention in the release announcement for
>  reproducible builds.
> 
> I have uploaded a version of make the defaults to adding U to the
>  ARFLAGS, but, on research and reflection, I would be open to reverting
>  that and adding a NEWS entry.

In any case, I think we should communicate to users that something
unexpected (from the point view of make) is happening so they can adapt
their Makefile. What would you think of the attached patch series?

The warning is actually implemented in the second patch, but the first
one is required to be able to differentiate a non-existent archive or
member from a member with a timestamp set to 0.

-- 
Lunar.''`. 
lu...@debian.org: :Ⓐ  :  # apt-get install anarchism
`. `'` 
  `-   
From a40d198fb5a3a0387ce5b4f0f40e23cab2a535bb Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?J=C3=A9r=C3=A9my=20Bobbio?= 
Date: Sun, 17 Jan 2016 10:55:40 +
Subject: [PATCH 1/2] Make ar_member_date compatible with archives with
 timestamps set to 0

ar_scan() scanning function uses 0 to indicate that scanning should continue.
This made ar_member_date() unable to differentiate when it was unable to find
the requested member from a member with a timestamp set to 0.

We thus change its prototype to have its return value indicate if it has been
able to find the requested member. The timestamp is set through the newly given
pointer.
---
 ar.c   | 33 +
 commands.c |  5 -
 dir.c  |  7 +--
 makeint.h  |  2 +-
 remake.c   |  7 +++
 5 files changed, 38 insertions(+), 16 deletions(-)

diff --git a/ar.c b/ar.c
index 675572a..d10a8df 100644
--- a/ar.c
+++ b/ar.c
@@ -68,25 +68,39 @@ ar_parse_name (const char *name, char **arname_p, char **memname_p)
 
 /* This function is called by 'ar_scan' to find which member to look at.  */
 
+struct member_date_lookup
+{
+  const char *name;
+  time_t *member_date;
+};
+
 /* ARGSUSED */
 static long int
 ar_member_date_1 (int desc UNUSED, const char *mem, int truncated,
   long int hdrpos UNUSED, long int datapos UNUSED,
   long int size UNUSED, long int date,
   int uid UNUSED, int gid UNUSED, int mode UNUSED,
-  const void *name)
+  const void *data)
 {
-  return ar_name_equal (name, mem, truncated) ? date : 0;
+  const struct member_date_lookup *lookup_data = data;
+  if (ar_name_equal (lookup_data->name, mem, truncated))
+{
+  *lookup_data->member_date = date;
+  return 1;
+}
+  return 0;
 }
 
-/* Return the modtime of NAME.  */
+/* Read the modtime of NAME in MEMBER_DATE.
+   Returns 1 if NAME exists, 0 otherwise.  */
 
-time_t
-ar_member_date (const char *name)
+int
+ar_member_date (const char *name, time_t *member_date)
 {
   char *arname;
   char *memname;
-  long int val;
+  int found;
+  struct member_date_lookup lookup_data;
 
   ar_parse_name (name, &arname, &memname);
 
@@ -107,11 +121,14 @@ ar_member_date (const char *name)
   (void) f_mtime (arfile, 0);
   }
 
-  val = ar_scan (arname, ar_member_date_1, memname);
+  lookup_data.name = memname;
+  lookup_data.member_date = member_date;
+  found = ar_scan (arname, ar_member_date_1, &lookup_data);
 
   free (arname);
 
-  return (val <= 0 ? (time_t) -1 : (time_t) val);
+  /* return 0 (not found) if the archive does not exist or has inva

[Reproducible-builds] Bug#808207: diffoscope: Filter objdump --disassemble output before diffing it

2016-01-18 Thread Jérémy Bobbio
Hi Mike!

Mike Hommey:
> When comparing large ELF binaries, some minor differences can end up hurting
> the visibility of more important differences.
> 
> Specifically, objdump --disassemble displays symbols+offsets for addresses
> it derives from IP-relative addressing, like the following:
> 
>9d2be2: 48 8d 05 42 65 24 02lea0x2246542(%rip),%rax# 
> 2c1912b <_fini@@xul45a1+0x1d803>

I would be grateful if you could try again using the master branch.
Dhole made diffoscope compare ELF sections individually and I wonder how
much it helped with this problem.

If it doesn't, would you be so kind to provide example binaries?

Thanks,
-- 
Lunar.''`. 
lu...@debian.org: :Ⓐ  :  # apt-get install anarchism
`. `'` 
  `-   


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#808197: diffoscope: readelf --debug-dump can be brutal

2016-01-18 Thread Jérémy Bobbio
Control: tag -1 + pending

Mike Hommey:
> However, if each debug section was compared individually, that give more
> chance for diffoscope to work. (--debug-dump takes values allowing to treat
> each debug section independently)

Implemented by Dhole and currently available in the master branch.

-- 
Lunar.''`. 
lu...@debian.org: :Ⓐ  :  # apt-get install anarchism
`. `'` 
  `-   


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#808267: diffoscope: Redundant information in ELF comparisons

2016-01-18 Thread Jérémy Bobbio
Hi Mike,

Mike Hommey:
> When comparing ELF files, the following commands are used:
> - readelf --all
> - readelf --debug-dump
> - objdump --disassemble --full-contents
> 
> objdump --disassemble --full-contents is actually redundant in itself. For
> example, it will dump both an hexdump and a disassembly of the .text section.
> It's also redundant with the output of readelf --debug-dump because it does an
> hexdump of the .debug_* sections that readelf --debug-dump does a dwarf dump
> of.

The master branch now compare ELF files section by section. If you could
test it and see if there's still redundancies, I would be grateful.

Thanks!
-- 
Lunar.''`. 
lu...@debian.org: :Ⓐ  :  # apt-get install anarchism
`. `'` 
  `-   


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#812428: libgcrypt20: please make the build reproducible (timestamps)

2016-01-23 Thread Jérémy Bobbio
Source: libgcrypt20
Version: 1.6.4-4
Severity: wishlist
Tag: patch
User: reproducible-builds@lists.alioth.debian.org
Usertags: timestamps
X-Debbugs-Cc: reproducible-builds@lists.alioth.debian.org

Hi!

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

The attached patch adds support for SOURCE_DATE_EPOCH to set the value
of BUILD_TIMESTAMP defined in the configure script. Once applied,
libgcrypt20 is nearly reproducible in our current experimental
framework—their might be remaining timestamps in the PDF documentation.

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

-- 
Lunar.''`. 
lu...@debian.org: :Ⓐ  :  # apt-get install anarchism
`. `'` 
  `-   
diff --git a/debian/control b/debian/control
index ff31343..e3a19c4 100644
--- a/debian/control
+++ b/debian/control
@@ -6,7 +6,7 @@ Uploaders: Andreas Metzler ,
  Eric Dorland , James Westby ,
  Simon Josefsson 
 Build-Depends: debhelper (>= 9.20150628),
- libgpg-error-dev (>= 1.11), autotools-dev
+ libgpg-error-dev (>= 1.11), autotools-dev, dh-autoreconf
 Build-Depends-Indep: texlive-latex-base, texlive-generic-recommended,
  texinfo (>= 4.6-0)
 Standards-Version: 3.9.6
diff --git a/debian/patches/30_support_source_date_epoch.diff b/debian/patches/30_support_source_date_epoch.diff
new file mode 100644
index 000..8e43921
--- /dev/null
+++ b/debian/patches/30_support_source_date_epoch.diff
@@ -0,0 +1,18 @@
+Description: support setting BUILD_TIMESTAMP using SOURCE_DATE_EPOCH
+ Enable reproducible builds by supporting setting the value of BUILD_TIMESTAMP
+ through the SOURCE_DATE_EPOCH environment variable. More information at:
+ https://reproducible-builds.org/specs/source-date-epoch/
+Author: Jérémy Bobbio 
+Last-Update: 2016-01-23
+
+--- libgcrypt20-1.6.4.orig/configure.ac
 libgcrypt20-1.6.4/configure.ac
+@@ -1993,7 +1993,7 @@ changequote([,])dnl
+ BUILD_FILEVERSION="${BUILD_FILEVERSION}mym4_revision_dec"
+ AC_SUBST(BUILD_FILEVERSION)
+ 
+-BUILD_TIMESTAMP=`date -u +%Y-%m-%dT%H:%M+ 2>/dev/null || date`
++BUILD_TIMESTAMP=`date -d"@$SOURCE_DATE_EPOCH" -u +%Y-%m-%dT%H:%M+ 2>/dev/null || date -u +%Y-%m-%dT%H:%M+ 2>/dev/null || date`
+ AC_SUBST(BUILD_TIMESTAMP)
+ AC_DEFINE_UNQUOTED(BUILD_TIMESTAMP, "$BUILD_TIMESTAMP",
+[The time this package was configured for a build])
diff --git a/debian/patches/series b/debian/patches/series
index d5154e9..2f0a91b 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -1,3 +1,4 @@
 12_lessdeps_libgcrypt-config.diff
 15_multiarchpath_in_-L.diff
 20_fedora_libgcrypt-1.6.3-aliasing.patch
+30_support_source_date_epoch.diff
diff --git a/debian/rules b/debian/rules
index 27614f9..1b137a5 100755
--- a/debian/rules
+++ b/debian/rules
@@ -48,4 +48,4 @@ override_dh_gencontrol:
 	dh_gencontrol --remaining-packages
 
 %:
-	dh $@ --parallel --with autotools_dev
+	dh $@ --parallel --with autoreconf --with autotools_dev


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#812524: Bug#812524: UnicodeDecodeError with glob2/0.9.4.4-2.4 on unstable/amd64

2016-01-24 Thread Jérémy Bobbio
Control: tag -1 + pending

Mattia Rizzolo:
>   File "/usr/lib/python3.5/encodings/ascii.py", line 26, in decode
> return codecs.ascii_decode(input, self.errors)[0]
> UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 95: 
> ordinal not in range(128)

Fixed in 00b26a6.

-- 
Lunar.''`. 
lu...@debian.org: :Ⓐ  :  # apt-get install anarchism
`. `'` 
  `-   


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#812534: Bug#812534: TypeError with python-expyriment/0.7.0+git34-g55a4e7e-3.1 on unstable/amd64

2016-01-24 Thread Jérémy Bobbio
Control: tag -1 + pending

Mattia Rizzolo:
>   File "/usr/lib/python3/dist-packages/diffoscope/comparators/debian.py", 
> line 185, in recognizes
> for d in buildinfo.get('Checksums-Sha256'):
> TypeError: 'NoneType' object is not iterable

Already fixed in af6bcf80.

-- 
Lunar.''`. 
lu...@debian.org: :Ⓐ  :  # apt-get install anarchism
`. `'` 
  `-   


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#812762: findutils: FTBFS if fr_FR or other locales are installed

2016-01-26 Thread Jérémy Bobbio
Source: findutils
Version: 4.6.0-2
Severity: important
User: reproducible-builds@lists.alioth.debian.org
Usertag: ftbfs

Hi!

findutils will FTBFS due to test errors if fr_FR or a couple other
locales are installed. The failing tests are test-mbrtowc{1,2,3,4}.sh.
The log contains:

test-mbrtowc.c:49: assertion 'ret == (size_t)(-2)' failed
Aborted

An easy way to test this is to install the locales-all package in the
build environment.

Maybe mbrtowc() behavior when n == 0 has changed in recent libc?

-- 
Lunar.''`. 
lu...@debian.org: :Ⓐ  :  # apt-get install anarchism
`. `'` 
  `-   


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#807669: dh-strip-nondeterminism: Breaks some jar file

2016-01-26 Thread Jérémy Bobbio
Control: tag -1 + patch

Raphael Hertzog:
> On Mon, 14 Dec 2015, Raphael Hertzog wrote:
> > Your analysis is correct but dh_strip_nondeterminisn should detect the
> > signature and avoid messing up with the file in that case.
> > 
> > That's what this bug is about.
> 
> And we got another case where dh_strip_nondeterminism actually broke a
> working package... https://bugs.kali.org/view.php?id=3019
> 
> Is there anything we can do to ensure that this bug gets a timely fix?

Attached is a patch which I think could work. I'm not confident enough
in my Perl skills to commit directly though.

-- 
Lunar.''`. 
lu...@debian.org: :Ⓐ  :  # apt-get install anarchism
`. `'` 
  `-   
From e2dfd6d97a2f0af21f5d113d7eed12d90ebe2384 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?J=C3=A9r=C3=A9my=20Bobbio?= 
Date: Tue, 26 Jan 2016 13:59:14 +
Subject: [PATCH] Don't process signed Jar file

Otherwise, we will break the signature and that's not a good thing.

I guess it would be better if we had a way to pass a warning back. But that's
something for the future.

Closes: #807669
---
 lib/File/StripNondeterminism/handlers/jar.pm | 6 ++
 1 file changed, 6 insertions(+)

diff --git a/lib/File/StripNondeterminism/handlers/jar.pm b/lib/File/StripNondeterminism/handlers/jar.pm
index e136395..4af06a0 100644
--- a/lib/File/StripNondeterminism/handlers/jar.pm
+++ b/lib/File/StripNondeterminism/handlers/jar.pm
@@ -87,6 +87,12 @@ sub _jar_normalize_member {
 
 sub normalize {
 	my ($jar_filename) = @_;
+	my $jar = Archive::Zip->new($jar_filename);
+	my @filenames = $jar->memberNames();
+	for my $filename (@filenames) {
+		# don't process signed jars
+		return 0 if $filename =~ /\AMETA-INF\/[^\/]+\.SF\Z/i;
+	}
 	return File::StripNondeterminism::handlers::zip::normalize($jar_filename,
 			filename_cmp => \&_jar_filename_cmp,
 			member_normalizer => \&_jar_normalize_member);
-- 
2.6.1



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

Re: [Reproducible-builds] Bug#138409: dpkg-dev: please add support for .buildinfo files

2016-01-26 Thread Jérémy Bobbio
Jérémy Bobbio:
> The attached patch will enable dpkg-buildpackage to create .buildinfo
> files as specified on the Debian wiki [1]. They have two main purposes:
> 
>  * recording information about the system environment used during a
>particular build—versions of the build dependencies installed, system
>architecture, etc. for easier forensics/debugging;
>  * describe how to recreate (partially or in full) the original
>environment when trying to reproduce a particular build.

I think the proposed patch is missing a field to record some environment
variables that can affect the build process. Right now, I'm thinking of
DEB_BUILD_OPTIONS and DEB_flag_{SET,STRIP,APPEND,PREPEND} (from
dpkg-buildflags). Maybe others? Build profiles?

Initially I was against recording such information, but now that we
understand the purpose of .buildinfo files better and not mandate that
they be reproducible themselves, it doesn't matter if one contains
`DEB_BUILD_OPTIONS=parallel=4` and the other
`DEB_BUILD_OPTIONS=parallel=16`. It is the responsibility of users
trying to recreate a given package to filter this out.

-- 
Lunar.''`. 
lu...@debian.org: :Ⓐ  :  # apt-get install anarchism
`. `'` 
  `-   


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#812876: glib2.0: please make the build reproducible (locale)

2016-01-27 Thread Jérémy Bobbio
Source: glib2.0
Version: 2.46.2-3
Severity: wishlist
Tags: patch
User: reproducible-builds@lists.alioth.debian.org
Usertags: locale

Hi!

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

The attached patch ensure that functions are sorted using the C locale
when giotypefuncs.c is generated.

Once applied, glib2.0 can be built reproducibly in our current
experimental framework.

-- 
Lunar.''`. 
lu...@debian.org: :Ⓐ  :  # apt-get install anarchism
`. `'` 
  `-   
diff -Nru glib2.0-2.46.2/debian/patches/locale-independent-sort-for-giotypefuncs.patch glib2.0-2.46.2/debian/patches/locale-independent-sort-for-giotypefuncs.patch
--- glib2.0-2.46.2/debian/patches/locale-independent-sort-for-giotypefuncs.patch	1970-01-01 01:00:00.0 +0100
+++ glib2.0-2.46.2/debian/patches/locale-independent-sort-for-giotypefuncs.patch	2016-01-27 14:33:11.0 +0100
@@ -0,0 +1,13 @@
+Index: glib2.0-2.46.2/gio/tests/Makefile.am
+===
+--- glib2.0-2.46.2.orig/gio/tests/Makefile.am
 glib2.0-2.46.2/gio/tests/Makefile.am
+@@ -558,7 +558,7 @@ giotypefuncs.c: Makefile
+ 	  ${CPP} $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) xgen-giosrc.c | \
+ 	  $(GREP) -o '\bg_[A-Za-z0-9_]*_get_type\b' | \
+ 	  $(GREP) -v 'g_io_extension_get_type\|g_variant_get_type' | \
+-	  sort | uniq | \
++	  LC_ALL=C sort | uniq | \
+ 	  $(SED) -e 's/^/*tp++ = /' -e 's/$$/ ();/' >> xgen-gio && \
+ 	  cp xgen-gio $@ # && rm -f xgen-gio xgen-giosrc.c
+ 
diff -Nru glib2.0-2.46.2/debian/patches/series glib2.0-2.46.2/debian/patches/series
--- glib2.0-2.46.2/debian/patches/series	2015-12-23 17:08:41.0 +0100
+++ glib2.0-2.46.2/debian/patches/series	2016-01-27 14:31:36.0 +0100
@@ -14,3 +14,4 @@
 0001-Fix-trashing-on-overlayfs.patch
 bug712848-volume-monitor-deadlock-kfreebsd.patch
 disable-failing-test-for-pcre838.patch
+locale-independent-sort-for-giotypefuncs.patch


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-01-27 Thread Jérémy Bobbio
libxslt_1.1.28-2.1.0~reproducible2.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#812895: libxml++2.6: please make the build reproducible (environment)

2016-01-27 Thread Jérémy Bobbio
Source: libxml++2.6
Version: 2.40.1-1
Severity: wishlist
Tags: patch
User: reproducible-builds@lists.alioth.debian.org
Usertags: environment

Hi!

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

The reason is that the entire `examples` directory is shipped after
being built and so contains several libtool scripts which capture the
PATH. These files and others added during the build are actually not
useful as examples.

The attached patch replaces the wildcard in
`debian/libxml++2.6.examples` by the output of
`find examples -type f | LC_ALL=C sort` to ship only source files. Once
applied, libxml++2.6 can be built reproducibly in our current
experimental framework.

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

-- 
Lunar.''`. 
lu...@debian.org: :Ⓐ  :  # apt-get install anarchism
`. `'` 
  `-   
diff -Nru libxml++2.6-2.40.1/debian/libxml++2.6-doc.examples libxml++2.6-2.40.1/debian/libxml++2.6-doc.examples
--- libxml++2.6-2.40.1/debian/libxml++2.6-doc.examples	2012-02-06 04:48:29.0 +0100
+++ libxml++2.6-2.40.1/debian/libxml++2.6-doc.examples	2016-01-27 17:59:41.0 +0100
@@ -1 +1,65 @@
-examples/*
+examples/Makefile.am
+examples/Makefile.in
+examples/README
+examples/dom_build/main.cc
+examples/dom_parse_entities/example.dtd
+examples/dom_parse_entities/example.xml
+examples/dom_parse_entities/main.cc
+examples/dom_parser/example.dtd
+examples/dom_parser/example.xml
+examples/dom_parser/example_invalid.xml
+examples/dom_parser/example_with_namespace.xml
+examples/dom_parser/main.cc
+examples/dom_parser_raw/example.dtd
+examples/dom_parser_raw/example.xml
+examples/dom_parser_raw/example_invalid.xml
+examples/dom_parser_raw/main.cc
+examples/dom_read_write/README
+examples/dom_read_write/example.dtd
+examples/dom_read_write/example.xml
+examples/dom_read_write/main.cc
+examples/dom_update_namespace/example1.xml
+examples/dom_update_namespace/example2.xml
+examples/dom_update_namespace/main.cc
+examples/dom_xinclude/example.xml
+examples/dom_xinclude/include1.txt
+examples/dom_xinclude/include2.xml
+examples/dom_xinclude/main.cc
+examples/dom_xpath/example.xml
+examples/dom_xpath/main.cc
+examples/dtdvalidation/example.dtd
+examples/dtdvalidation/main.cc
+examples/import_node/example1.xml
+examples/import_node/example2.xml
+examples/import_node/main.cc
+examples/sax_exception/example.xml
+examples/sax_exception/main.cc
+examples/sax_exception/myparser.cc
+examples/sax_exception/myparser.h
+examples/sax_parser/example.xml
+examples/sax_parser/main.cc
+examples/sax_parser/myparser.cc
+examples/sax_parser/myparser.h
+examples/sax_parser_build_dom/README
+examples/sax_parser_build_dom/example.xml
+examples/sax_parser_build_dom/main.cc
+examples/sax_parser_build_dom/svgdocument.cc
+examples/sax_parser_build_dom/svgdocument.h
+examples/sax_parser_build_dom/svgelement.cc
+examples/sax_parser_build_dom/svgelement.h
+examples/sax_parser_build_dom/svggroup.h
+examples/sax_parser_build_dom/svgparser.cc
+examples/sax_parser_build_dom/svgparser.h
+examples/sax_parser_build_dom/svgpath.h
+examples/sax_parser_entities/example.xml
+examples/sax_parser_entities/main.cc
+examples/sax_parser_entities/myparser.cc
+examples/sax_parser_entities/myparser.h
+examples/schemavalidation/example.rng
+examples/schemavalidation/example.xml
+examples/schemavalidation/example.xsd
+examples/schemavalidation/main.cc
+examples/testutilities.cc
+examples/testutilities.h
+examples/textreader/example.xml
+examples/textreader/main.cc
--- libxml++2.6-2.40.1/debian/rules	2012-02-06 04:48:29.0 +0100
+++ libxml++2.6-2.40.1/debian/rules	2016-01-27 18:15:57.278176904 +0100
@@ -23,4 +23,3 @@
  --libdir=\$${prefix}/lib/$(DEB_HOST_MULTIARCH)
 DEB_MAKE_CHECK_TARGET := check
 DEB_DH_MAKESHLIBS_ARGS_$(SHARED_PKG) += -V"$(SHARED_PKG) (>= $(SHVER))"
-DEB_INSTALL_EXAMPLES_$(DOC_PKG) += -XMakefile -X.deps -X.libs -X.o


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#812899: libsm: please make the build reproducible (locale)

2016-01-27 Thread Jérémy Bobbio
Source: libsm
Version: 2:1.2.2-1
Severity: wishlist
Tags: patch
User: reproducible-builds@lists.alioth.debian.org
Usertags: locale

Hi!

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

The attached patch makes sure the text documentation is always generated
using a UTF-8 locale. Once applied, libsm can be built reproducibly in
our current experimental framework.

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

-- 
Lunar.''`. 
lu...@debian.org: :Ⓐ  :  # apt-get install anarchism
`. `'` 
  `-   
From f23f58eb98288fc3178d582dc03a77a332dc82fe Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?J=C3=A9r=C3=A9my=20Bobbio?= 
Date: Wed, 27 Jan 2016 18:32:31 +0100
Subject: [PATCH] Make sure text documentation is generated as UTF-8

Otherwise, if the package is built on a system with a locale
using another character encoding, the resulting text documentation
might not be readable on other systems.
---
 docbook.am | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/docbook.am b/docbook.am
index bba4d54..0c1a086 100644
--- a/docbook.am
+++ b/docbook.am
@@ -43,7 +43,7 @@ if HAVE_XMLTO_TEXT
 
 shelf_DATA += $(docbook:.xml=.txt)
 %.txt: %.xml $(chapters)
-	$(AM_V_GEN)$(XMLTO) $(XMLTO_HTML_FLAGS) txt $<
+	LC_ALL=C.UTF-8 $(AM_V_GEN)$(XMLTO) $(XMLTO_HTML_FLAGS) txt $<
 endif HAVE_XMLTO_TEXT
 
 if HAVE_FOP
-- 
2.7.0


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

Re: [Reproducible-builds] Bug#138409: dpkg-dev: please add support for .buildinfo files

2016-01-28 Thread Jérémy Bobbio
Guillem Jover:
> I've some pending changes I'll be committing to master or a separate
> branch, that I'd like to be tested on the reproducible setup (ideally
> against the already generated and pre-existing reproducible binaries),
> if that's possible, I'll ask about that when those land, I just need
> to finish up fewm more unit tests.
> 
> Here's a quick review: […]

Thanks for the review! Just so I can organize my work, are your pending
changes related to the .buildinfo?

I can spend the next days improving the patch with your remarks, but I'd
rather not duplicate your work. :)

-- 
Lunar.''`. 
lu...@debian.org: :Ⓐ  :  # apt-get install anarchism
`. `'` 
  `-   


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#813052: Bug#813052: diffoscope takes more than an hour on foreign arch libc6

2016-01-29 Thread Jérémy Bobbio
Helmut Grohne:
> Even though I cannot reproduce the issue at hand, I think that the code
> adding automatic debug symbols looks fishy to me. It appears to recurse
> over /tmp here and that looks very wrong to me.

I don't understand what you mean by that. Could you provide be (at least
some) of the `--debug` output?

-- 
Lunar.''`. 
lu...@debian.org: :Ⓐ  :  # apt-get install anarchism
`. `'` 
  `-   


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

Re: [Reproducible-builds] Bug#138409: dpkg-dev: please add support for .buildinfo files

2016-01-29 Thread Jérémy Bobbio
Guillem Jover:
> > One of the main change is that `.buildinfo` should now be named with an
> > arbitrary identifier. By default this defaults to $HOSTNAME-$TIMESTAMP
> > but can be set to an arbitrary value by the `--buildinfo-identifier`
> > command line flag.
> 
> Hmmm, leaking the hostname seems slightly privacy-concerning? If the
> information therein is not relevant I'd rather use something like an
> UUID (although that would require increasing the pseudo-build-essential
> set), or just hashing the hostname-timestamp with something like md5
> or sha1 or similar.

My hunch is that having a timestamp visible in the file name might help
recognizing files quickly after a bunch of builds, especially to
identify the last one. So I'd rather keep it.

If privacy is the goal, hashing just the hostname would not be help
much, as any precomputed table would work.

How about $TIMESTAMP-$EIGHT_FIRST_CHARS_OF_BUILDINFO_MD5?

(I'm picking md5 because it's already used in dpkg-gensymbols.)

> Can we just simply use the package name rules instead? It also avoids
> potential problems with case and similar. (There's a
> pkg_name_is_illegal function in Dpkg::Package already.)

Sounds reasonable. I've updated the wiki page and prepared a patch for
dak.

> > +} else {
> > +warning(_g('no .dsc file, skipping .buildinfo generation'));
> > +}
> >  }
>
> ISTR mentioning this before, but I don't see why generating the
> buildinfo file is tied to existing a source package at all? The source
> should be included if we are including a source in the upload, that's
> it.

The whole puprose of the reproducible builds effort is to provide a
verifiable path from sources to binaries. Signed .buildinfo files are
certifications that the listed binary packages have been built using the
described source and environment.

Only listing the source in .buildinfo when a source is included in the
upload would prevent us to have multiple builders certify the same
binaries. That would cut us from providing multiple certifications and
would undermine the purpose of reproducible builds.

So I could remove the limitation, but the resulting .buildinfo file
would not be very useful for reproducible builds.

> > +$fields->{'Source'} = $spackage;
> > +if ($changelog->{'Binary-Only'}) {
> > +$fields->{'Source'} .= ' (' . $sourceversion . ')';
> > +$fields->{'Changes'} = $changelog->{'Changes'} . "\n\n"
> > + . ' -- ' . $changelog->{'Maintainer'}
> > + . '  ' . $changelog->{'Date'};
> > +}
> 
> Hmmm, it bothers me slightly that the Changes field here diverges in
> form from the one in the .changes file.

I can understand. It's been designed that way because it's actually only
there for binNMUs where the source is the same as the original and we
need a way to reconstruct the right changelog file.

Because sbuild might actually change its strings in the future, it felt
like plain copy/pasting was the safest. So recreating the changelog in
case of binNMU is about outputing the value of the Changes field in the
.buildinfo, a blank line, and the changelog from the original source.

> I think I'd prefer to have the Date as its own field, maybe always
> included. And also the Maintainer field. Any reason to not include
> them all the time or on their own?

I think they would be confusing. If we would to include the “Maintainer”
I guess we should call it “Changed-By” like in .changes. “Date”
as such would be a confusing name because I would tend to think of it
as the date of the build, and not as the date of the latest changelog
of a binNMU… So maybe “Changed-On” or “Change-Date”.

But this feels just more complicated than just the current
implementation, even if the format differs slightly. Maybe we can rename
that field instead to “Extra-Changelog-Entry” or something else so it's
clear they have different format?

> > +my $environment = Dpkg::Deps::AND->new();
> > +foreach my $pkg (sort keys %env_pkgs) {
> > +foreach my $installed_pkg (@{$facts->{pkg}->{$pkg}}) {
> > +my $version = $installed_pkg->{version};
> > +my $architecture = $installed_pkg->{architecture};
> > +my $pkg_name = $pkg;
> 
> > +if (defined $architecture &&
> > +$architecture ne 'all' && $architecture ne $build_arch) {
> > +$pkg_name = "$pkg_name:$architecture";
> > +}
> […]
> Also this will include all Multi-Arch instances for a given package
> regardless of them being used or not, I don't think that's desirable.

Can we know for sure which one have been used?


I'm already working on other changes you suggested.

Thanks,
-- 
Lunar.''`. 
lu...@debian.org: :Ⓐ  :  # apt-get install anarchism
`. `'` 
  `-   


signature.asc
Description: Digital signature
___
Reproducible-builds mailing list
Repr

  1   2   3   4   5   6   >