<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
<html lang="en">
<head>
<meta content="text/html; charset=US-ASCII" http-equiv="Content-Type">
<title>
GitLab
</title>



<style>img {
max-width: 100%; height: auto;
}
</style>
</head>
<body>
<div class="content">

<h3>
Chris Lamb pushed to branch master
at <a href="https://salsa.debian.org/reproducible-builds/strip-nondeterminism">Reproducible Builds / strip-nondeterminism</a>
</h3>
<h4>
Commits:
</h4>
<ul>
<li>
<strong><a href="https://salsa.debian.org/reproducible-builds/strip-nondeterminism/commit/3e12e9a48fa696d2780514c30b2ee68224f0bf43">3e12e9a4</a></strong>
<div>
<span>by Chris Lamb</span>
<i>at 2019-09-05T17:28:25Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Revert all commits from incorrectly-merged reproducible-builds/strip-nondeterminism!4.

An old version was seemingly merged [locally] by myself. See:

  https://salsa.debian.org/reproducible-builds/strip-nondeterminism/merge_requests/4#note_107844

Gbp-Dch: ignore
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/reproducible-builds/strip-nondeterminism/commit/2bc5a0c2a7b492f3b1c20dcbce8eaded0c954974">2bc5a0c2</a></strong>
<div>
<span>by Marc Herbert</span>
<i>at 2019-09-05T17:29:55Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Add $member_id to prepare fix for '/' and '//' in ar archives

Signed-off-by: Chris Lamb <lamby@debian.org>
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/reproducible-builds/strip-nondeterminism/commit/cfac61910364fc63997930e45fbd01b9d95ce083">cfac6191</a></strong>
<div>
<span>by Marc Herbert</span>
<i>at 2019-09-05T17:29:58Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Don't corrupt the pseudo-filemode of ar symbols table '/'.

Don't reset to "644" the pseudo-permissions of the symbols table '/'. Whatever
the placeholder is ("0" with GNU ar 2.31), messing with it diverges with the
output of GNU ar which is already deterministic.

Signed-off-by: Chris Lamb <lamby@debian.org>
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/reproducible-builds/strip-nondeterminism/commit/c2d555b0822ce2dad0995a665ecafcc9c2cecb3e">c2d555b0</a></strong>
<div>
<span>by Marc Herbert</span>
<i>at 2019-09-05T17:30:08Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Stop corrupting the SystemV/GNU table of long filenames in ar archives

Long filenames are stored in a special section with a completely
different format. Stop assuming it has regular metadata and stop
corrupting it.

Signed-off-by: Chris Lamb <lamby@debian.org>
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/reproducible-builds/strip-nondeterminism/commit/5d18afb4ad129280366a6d0de314ebb58cb36ba6">5d18afb4</a></strong>
<div>
<span>by Marc Herbert</span>
<i>at 2019-09-05T17:30:13Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Add ar test files for symtab ('/') and long names ('//')

Note symbol_table.out cannot be produced by GNU ar alone because it can't set
any specified timestamp on the symbol table.

long_member_name.a.out cannot be created by GNU ar alone either for a
completely different, strange and permission-related reason.  Faking a
specified timestamp for archive members is easy pre-archiving with "touch -r".
However this obviously requires 'ar U'. For long filenames, ar U maps
permissions 644 to the string "100644" for some unknown reason. Both ar D and
strip-nondeterminism use the permission string "644" (displayed by diffoscope
as "?rw-r--r--")

This is the script which was used to create these test files:

create_ar_testcase()
{
    ar_base="$1"; shift

    for o in "$@"; do
        objcopy --remove-section=.comment \
        --remove-section=.note.GNU-stack \
        --remove-section=.eh_frame \
        "$o" || true
    done
    touch "$@"

    rm -f "${ar_base}".a.in "${ar_base}".a.out "${ar_base}".a.D
    ar qU "${ar_base}".a.in "$@"

    ar qD "${ar_base}".a.D "$@"
    cp "${ar_base}".a.D "${ar_base}".a
    strip-nondeterminism --normalizers +all -v -T 1423159771 "${ar_base}".a
    mv "${ar_base}".a "${ar_base}".a.out
}

Signed-off-by: Chris Lamb <lamby@debian.org>
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/reproducible-builds/strip-nondeterminism/commit/e33501c162cd69de62f252bcf21b8d99d9e4caec">e33501c1</a></strong>
<div>
<span>by Marc Herbert</span>
<i>at 2019-09-05T17:30:17Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Add new $File::StripNondeterminism::verbose global

Signed-off-by: Chris Lamb <lamby@debian.org>
</pre>
</li>
<li>
<strong><a href="https://salsa.debian.org/reproducible-builds/strip-nondeterminism/commit/3236e8f1d55729a8f0013241502bec2f89531bfa">3236e8f1</a></strong>
<div>
<span>by Marc Herbert</span>
<i>at 2019-09-05T17:30:28Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Tell user that GNU ar cannot set the symbol table's mtime in verbose mode

In other words tell the user when GNU ar cannot reproduce the output of
strip-nondeterminism.

Signed-off-by: Chris Lamb <lamby@debian.org>
</pre>
</li>
</ul>
<h4>2 changed files:</h4>
<ul>
<li class="file-stats">
<a href="#d0b2adb0358f0eab7dd3bb1849dd4e795a81f242">
<span class="deleted-file">

debian/source/include-binaries
</span>
</a>
</li>
<li class="file-stats">
<a href="#9bce0cb6d2d1c8c72efef379b30ea156e1cfb7e7">
lib/File/StripNondeterminism/handlers/ar.pm
</a>
</li>
</ul>
<h4>Changes:</h4>
<li id="d0b2adb0358f0eab7dd3bb1849dd4e795a81f242">
<a href="https://salsa.debian.org/reproducible-builds/strip-nondeterminism/compare/a9824cd69f587841ce4c5746dd475102228f8ca7...3236e8f1d55729a8f0013241502bec2f89531bfa#d0b2adb0358f0eab7dd3bb1849dd4e795a81f242"><strong>debian/source/include-binaries</strong>
deleted
</a>
<hr>
<table class="code white" style="font-family: monospace; font-size: 90%;" bgcolor="#fff" width="100%" cellpadding="0" cellspacing="0">
<tr class="line_holder old" id="" style="line-height: 1.6;">
<td class="diff-line-num old old_line" data-linenumber="1" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #fac5cd; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#f9d7dc">
1
</td>
<td class="diff-line-num new_line old" data-linenumber="0" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #fac5cd; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#f9d7dc">
 
</td>
<td class="line_content old" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#fbe9eb">
<pre style="margin: 0;">-<span id="LC1" class="line" lang="plaintext">t/fixtures/ar/long_member_name.a.in</span>
</pre>
</td>
</tr>
<tr class="line_holder old" id="" style="line-height: 1.6;">
<td class="diff-line-num old old_line" data-linenumber="2" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #fac5cd; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#f9d7dc">
2
</td>
<td class="diff-line-num new_line old" data-linenumber="0" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #fac5cd; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#f9d7dc">
 
</td>
<td class="line_content old" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#fbe9eb">
<pre style="margin: 0;">-<span id="LC2" class="line" lang="plaintext">t/fixtures/ar/long_member_name.a.out</span>
</pre>
</td>
</tr>
<tr class="line_holder old" id="" style="line-height: 1.6;">
<td class="diff-line-num old old_line" data-linenumber="3" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #fac5cd; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#f9d7dc">
3
</td>
<td class="diff-line-num new_line old" data-linenumber="0" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #fac5cd; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#f9d7dc">
 
</td>
<td class="line_content old" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#fbe9eb">
<pre style="margin: 0;">-<span id="LC3" class="line" lang="plaintext">t/fixtures/ar/longnames_symtab.a.in</span>
</pre>
</td>
</tr>
<tr class="line_holder old" id="" style="line-height: 1.6;">
<td class="diff-line-num old old_line" data-linenumber="4" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #fac5cd; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#f9d7dc">
4
</td>
<td class="diff-line-num new_line old" data-linenumber="0" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #fac5cd; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#f9d7dc">
 
</td>
<td class="line_content old" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#fbe9eb">
<pre style="margin: 0;">-<span id="LC4" class="line" lang="plaintext">t/fixtures/ar/longnames_symtab.a.out</span>
</pre>
</td>
</tr>
<tr class="line_holder old" id="" style="line-height: 1.6;">
<td class="diff-line-num old old_line" data-linenumber="5" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #fac5cd; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#f9d7dc">
5
</td>
<td class="diff-line-num new_line old" data-linenumber="0" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #fac5cd; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#f9d7dc">
 
</td>
<td class="line_content old" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#fbe9eb">
<pre style="margin: 0;">-<span id="LC5" class="line" lang="plaintext">t/fixtures/ar/symbol_table.a.in</span>
</pre>
</td>
</tr>
<tr class="line_holder old" id="" style="line-height: 1.6;">
<td class="diff-line-num old old_line" data-linenumber="6" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #fac5cd; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#f9d7dc">
6
</td>
<td class="diff-line-num new_line old" data-linenumber="0" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #fac5cd; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#f9d7dc">
 
</td>
<td class="line_content old" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#fbe9eb">
<pre style="margin: 0;">-<span id="LC6" class="line" lang="plaintext">t/fixtures/ar/symbol_table.a.out</span></pre>
</td>
</tr>

</table>
<br>
</li>
<li id="9bce0cb6d2d1c8c72efef379b30ea156e1cfb7e7">
<a href="https://salsa.debian.org/reproducible-builds/strip-nondeterminism/compare/a9824cd69f587841ce4c5746dd475102228f8ca7...3236e8f1d55729a8f0013241502bec2f89531bfa#9bce0cb6d2d1c8c72efef379b30ea156e1cfb7e7"><strong>lib/File/StripNondeterminism/handlers/ar.pm</strong></a>
<hr>
<table class="code white" style="font-family: monospace; font-size: 90%;" bgcolor="#fff" width="100%" cellpadding="0" cellspacing="0">
<tr class="line_holder match" id="" style="line-height: 1.6;">
<td class="diff-line-num unfold js-unfold old_line" data-linenumber="90" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #f0f0f0; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#fafafa">...</td>
<td class="diff-line-num unfold js-unfold new_line" data-linenumber="90" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #f0f0f0; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#fafafa">...</td>
<td class="line_content match " style="padding-left: 0.5em; padding-right: 0.5em; color: rgba(0,0,0,0.3);" bgcolor="#fafafa">@@ -90,7 +90,7 @@ sub normalize {</td>
</tr>
<tr class="line_holder" id="" style="line-height: 1.6;">
<td class="diff-line-num old_line" data-linenumber="90" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #f0f0f0; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#fafafa">
90
</td>
<td class="diff-line-num new_line" data-linenumber="90" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #f0f0f0; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#fafafa">
90
</td>
<td class="line_content" style="padding-left: 0.5em; padding-right: 0.5em;">
<pre style="margin: 0;"> <span id="LC90" class="line" lang="perl">          <span class="k" style="font-weight: 600;">if</span> <span class="p">(</span><span class="nv" style="color: #008080;">$</span><span class="nn" style="color: #555;">File::StripNondeterminism::</span><span class="nv" style="color: #008080;">verbose</span></span>
</pre>
</td>
</tr>
<tr class="line_holder" id="" style="line-height: 1.6;">
<td class="diff-line-num old_line" data-linenumber="91" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #f0f0f0; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#fafafa">
91
</td>
<td class="diff-line-num new_line" data-linenumber="91" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #f0f0f0; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#fafafa">
91
</td>
<td class="line_content" style="padding-left: 0.5em; padding-right: 0.5em;">
<pre style="margin: 0;"> <span id="LC91" class="line" lang="perl">              <span class="o" style="font-weight: 600;">&&</span> <span class="nv" style="color: #008080;">$</span><span class="nn" style="color: #555;">File::StripNondeterminism::</span><span class="nv" style="color: #008080;">canonical_time</span></span>
</pre>
</td>
</tr>
<tr class="line_holder" id="" style="line-height: 1.6;">
<td class="diff-line-num old_line" data-linenumber="92" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #f0f0f0; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#fafafa">
92
</td>
<td class="diff-line-num new_line" data-linenumber="92" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #f0f0f0; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#fafafa">
92
</td>
<td class="line_content" style="padding-left: 0.5em; padding-right: 0.5em;">
<pre style="margin: 0;"> <span id="LC92" class="line" lang="perl">              <span class="o" style="font-weight: 600;">&&</span> <span class="nb" style="color: #0086b3;">substr</span><span class="p">(</span><span class="nv" style="color: #008080;">$member_id</span><span class="p">,</span> <span class="mi" style="color: #099;">0</span><span class="p">,</span> <span class="mi" style="color: #099;">2</span><span class="p">)</span> <span class="ow" style="font-weight: 600;">eq</span> <span class="p">"</span><span class="s2" style="color: #d14;">/ </span><span class="p">")</span> <span class="p">{</span></span>
</pre>
</td>
</tr>
<tr class="line_holder old" id="" style="line-height: 1.6;">
<td class="diff-line-num old old_line" data-linenumber="93" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #fac5cd; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#f9d7dc">
93
</td>
<td class="diff-line-num new_line old" data-linenumber="93" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #fac5cd; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#f9d7dc">
 
</td>
<td class="line_content old" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#fbe9eb">
<pre style="margin: 0;">-<span id="LC93" class="line" lang="perl">              <span class="k" style="font-weight: 600;">print</span> <span class="p">"</span><span class="s2" style="color: #d14;">Setting symbols table's mtime in </span><span class="si" style="color: #d14;">$file</span><span class="s2" style="color: #d14;"> to: </span><span class="p">"</span></span>
</pre>
</td>
</tr>
<tr class="line_holder new" id="" style="line-height: 1.6;">
<td class="diff-line-num new old_line" data-linenumber="94" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #c7f0d2; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#ddfbe6">
 
</td>
<td class="diff-line-num new new_line" data-linenumber="93" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #c7f0d2; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#ddfbe6">
93
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC93" class="line" lang="perl">              <span class="k" style="font-weight: 600;">print</span> <span class="bp" style="color: #999;"><span class="idiff left">STDERR</span></span><span class="idiff right"> </span><span class="p">"</span><span class="s2" style="color: #d14;">Setting symbols table's mtime in </span><span class="si" style="color: #d14;">$file</span><span class="s2" style="color: #d14;"> to: </span><span class="p">"</span></span>
</pre>
</td>
</tr>
<tr class="line_holder" id="" style="line-height: 1.6;">
<td class="diff-line-num old_line" data-linenumber="94" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #f0f0f0; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#fafafa">
94
</td>
<td class="diff-line-num new_line" data-linenumber="94" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #f0f0f0; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#fafafa">
94
</td>
<td class="line_content" style="padding-left: 0.5em; padding-right: 0.5em;">
<pre style="margin: 0;"> <span id="LC94" class="line" lang="perl">                  <span class="o" style="font-weight: 600;">.</span> <span class="nb" style="color: #0086b3;">gmtime</span><span class="p">(</span><span class="nv" style="color: #008080;">$</span><span class="nn" style="color: #555;">File::StripNondeterminism::</span><span class="nv" style="color: #008080;">canonical_time</span><span class="p">)</span></span>
</pre>
</td>
</tr>
<tr class="line_holder" id="" style="line-height: 1.6;">
<td class="diff-line-num old_line" data-linenumber="95" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #f0f0f0; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#fafafa">
95
</td>
<td class="diff-line-num new_line" data-linenumber="95" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #f0f0f0; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#fafafa">
95
</td>
<td class="line_content" style="padding-left: 0.5em; padding-right: 0.5em;">
<pre style="margin: 0;"> <span id="LC95" class="line" lang="perl">                  <span class="o" style="font-weight: 600;">.</span> <span class="p">"</span><span class="s2" style="color: #d14;">. GNU ar cannot do this.</span><span class="se" style="color: #d14;">\n</span><span class="p">";</span></span>
</pre>
</td>
</tr>
<tr class="line_holder" id="" style="line-height: 1.6;">
<td class="diff-line-num old_line" data-linenumber="96" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #f0f0f0; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#fafafa">
96
</td>
<td class="diff-line-num new_line" data-linenumber="96" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #f0f0f0; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#fafafa">
96
</td>
<td class="line_content" style="padding-left: 0.5em; padding-right: 0.5em;">
<pre style="margin: 0;"> <span id="LC96" class="line" lang="perl">          <span class="p">}</span></span>
</pre>
</td>
</tr>

</table>
<br>
</li>

</div>
<div class="footer" style="margin-top: 10px;">
<p style="font-size: small; color: #777;">

<br>
<a href="https://salsa.debian.org/reproducible-builds/strip-nondeterminism/compare/a9824cd69f587841ce4c5746dd475102228f8ca7...3236e8f1d55729a8f0013241502bec2f89531bfa">View it on GitLab</a>.
<br>
You're receiving this email because of your account on salsa.debian.org.
If you'd like to receive fewer emails, you can
adjust your notification settings.



</p>
</div>
</body>
</html>