[Git][reproducible-builds/strip-nondeterminism][master] 7 commits: Revert all commits from incorrectly-merged reproducible-builds/strip-nondeterminism!4.

Chris Lamb gitlab at salsa.debian.org
Thu Sep 5 17:31:09 UTC 2019



Chris Lamb pushed to branch master at Reproducible Builds / strip-nondeterminism


Commits:
3e12e9a4 by Chris Lamb at 2019-09-05T17:28:25Z
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

- - - - -
2bc5a0c2 by Marc Herbert at 2019-09-05T17:29:55Z
Add $member_id to prepare fix for '/' and '//' in ar archives

Signed-off-by: Chris Lamb <lamby at debian.org>

- - - - -
cfac6191 by Marc Herbert at 2019-09-05T17:29:58Z
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 at debian.org>

- - - - -
c2d555b0 by Marc Herbert at 2019-09-05T17:30:08Z
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 at debian.org>

- - - - -
5d18afb4 by Marc Herbert at 2019-09-05T17:30:13Z
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 at debian.org>

- - - - -
e33501c1 by Marc Herbert at 2019-09-05T17:30:17Z
Add new $File::StripNondeterminism::verbose global

Signed-off-by: Chris Lamb <lamby at debian.org>

- - - - -
3236e8f1 by Marc Herbert at 2019-09-05T17:30:28Z
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 at debian.org>

- - - - -


2 changed files:

- − debian/source/include-binaries
- lib/File/StripNondeterminism/handlers/ar.pm


Changes:

=====================================
debian/source/include-binaries deleted
=====================================
@@ -1,6 +0,0 @@
-t/fixtures/ar/long_member_name.a.in
-t/fixtures/ar/long_member_name.a.out
-t/fixtures/ar/longnames_symtab.a.in
-t/fixtures/ar/longnames_symtab.a.out
-t/fixtures/ar/symbol_table.a.in
-t/fixtures/ar/symbol_table.a.out


=====================================
lib/File/StripNondeterminism/handlers/ar.pm
=====================================
@@ -90,7 +90,7 @@ sub normalize {
 		if ($File::StripNondeterminism::verbose
 		    && $File::StripNondeterminism::canonical_time
 		    && substr($member_id, 0, 2) eq "/ ") {
-		    print "Setting symbols table's mtime in $file to: "
+		    print STDERR "Setting symbols table's mtime in $file to: "
 			. gmtime($File::StripNondeterminism::canonical_time)
 			. ". GNU ar cannot do this.\n";
 		}



View it on GitLab: https://salsa.debian.org/reproducible-builds/strip-nondeterminism/compare/a9824cd69f587841ce4c5746dd475102228f8ca7...3236e8f1d55729a8f0013241502bec2f89531bfa

-- 
View it on GitLab: https://salsa.debian.org/reproducible-builds/strip-nondeterminism/compare/a9824cd69f587841ce4c5746dd475102228f8ca7...3236e8f1d55729a8f0013241502bec2f89531bfa
You're receiving this email because of your account on salsa.debian.org.


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.reproducible-builds.org/pipermail/rb-commits/attachments/20190905/78702b05/attachment.html>


More information about the rb-commits mailing list