[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