Notes for abind - reproducible builds result

Version annotated: 1.4-5-2
Identified issues:
Identifier: randomness_in_r_rdb_rds_databases
Description R creates .rdb files and .rds with some randomness. They are a serialisation of some
sorts, related to lazy loading of modules?
Randomness seems to come from using absolute paths in .rd[bs] files.
.
Is not related to https://bugs.debian.org/774031 / r_base_appends_built_header_to_description_files
.
We have a pending patch to fix most of these (463/478) packages at the time
of writing) upstream in R:
.
https://stat.ethz.ch/pipermail/r-devel/2017-April/074138.html
.
When this is accepted into R upstream, commit 28d4af25 may be
(un-)reverted to remove these packages. In the meantime, please do not
remove this issue, nor mark it as deterministic, nor untag these packages.
.
The remaining ~15 packages are not completely fixed by this patch, so this
issue should remain, even when our upstream patch is accepted. These
packages will need to be investigated and fixed individually, see our blog
post on how to do that:
.
https://reproducible-builds.org/news/2017/05/03/reproduciing-r-packages/
Comments: The following paths.rds differences:
.
│ │ │ ├── ./usr/lib/R/site-library/abind/help/paths.rds
│ │ │ │ ├── paths.rds-content
│ │ │ │ │ ├── Rscript --vanilla -e 'args <- commandArgs(TRUE); readRDS(args[1])' {}
│ │ │ │ │ │ @@ -1,5 +1,7 @@
│ │ │ │ │ │ -[1] "/build/1st/abind-1.4-5/man/abind.Rd" "/build/1st/abind-1.4-5/man/acorn.Rd"
│ │ │ │ │ │ -[3] "/build/1st/abind-1.4-5/man/adrop.Rd" "/build/1st/abind-1.4-5/man/afill.Rd"
│ │ │ │ │ │ -[5] "/build/1st/abind-1.4-5/man/asub.Rd"
│ │ │ │ │ │ +[1] "/build/2/abind-1.4-5/2nd/man/abind.Rd"
│ │ │ │ │ │ +[2] "/build/2/abind-1.4-5/2nd/man/acorn.Rd"
│ │ │ │ │ │ +[3] "/build/2/abind-1.4-5/2nd/man/adrop.Rd"
│ │ │ │ │ │ +[4] "/build/2/abind-1.4-5/2nd/man/afill.Rd"
│ │ │ │ │ │ +[5] "/build/2/abind-1.4-5/2nd/man/asub.Rd"
│ │ │ │ │ │ attr(,"first")
│ │ │ │ │ │ -[1] 28
│ │ │ │ │ │ +[1] 30The
.
happen on sid and not elsewhere, meaning they're likely caused by build-path differences.
.
Both sides of the diff have the same files in the same order, but the left side
is missing the "[2]" and "[4]" markers.
.
The lines on the LHS of the diff just happen to be 79 bytes long (plus LF), and
the paths on the RHS are each two bytes longer, so this *might* be related to
something wrapping on 80 characters. Perhaps <https://sources.debian.org/src/r-base/4.1.2-2/src/main/options.c/#L294>.
 

Our notes about issues affecting packages are stored in notes.git and are targeted at packages in Debian in 'unstable/amd64' (unless they say otherwise).