[Rd] [2 of n] Revisiting and updating reproducible builds for base R in Debian

Simon Urbanek @|mon@urb@nek @end|ng |rom R-project@org
Mon Aug 10 00:46:22 CEST 2026


Those files are caches either in RDS for lazy-load format (or both).

The metadata one contains timestamps from the DESCRIPTION:

> a=readRDS("methods/Meta/package.rds")
> str(a)
List of 8
 $ DESCRIPTION: Named chr [1:15] "methods" "4.6.1" "base" "utils, stats" ...
  ..- attr(*, "names")= chr [1:15] "Package" "Version" "Priority" "Imports" ...
 $ Built      :List of 4
  ..$ R       :Classes 'R_system_version', 'package_version', 'numeric_version'  hidden list of 1
  .. ..$ : int [1:3] 4 6 1
  ..$ Platform: chr "x86_64-apple-darwin20"
  ..$ Date    : chr "2026-06-25 22:08:30 UTC"
  ..$ OStype  : chr "unix"
 $ Rdepends   : NULL
 $ Rdepends2  : NULL
 $ Depends    : list()
 $ Suggests   :List of 1
  ..$ codetools:List of 1
  .. ..$ name: chr "codetools"
 $ Imports    :List of 2
  ..$ utils:List of 1
  .. ..$ name: chr "utils"
  ..$ stats:List of 1
  .. ..$ name: chr "stats"
 $ LinkingTo  : list()
 - attr(*, "class")= chr "packageDescription2"
> a$DESCRIPTION["Built"]
Built  "R 4.6.1; x86_64-apple-darwin20; 2026-06-25 22:08:30 UTC; unix" 

so chances are that one may not be using the override (I didn't investigate further).

The tools/help/tools.rd? is the lazy-load DB for the issue you described namely the Rd2HTML example, so if that is removed, it will go away:

> e=new.env()
> lazyLoad("tools/help/tools",e)
> for(i in e[["Rd2HTML"]][[14]][[21]]) print(c(i))
[1] "\n"
[1] "    "
list()
[1] " built on\n"
[1] "    "
[1] "2026-06-26 at 10:09:34"
[1] ",\n"
[1] "    "
list()
[1] " installed on\n"
[1] "    "
[1] "2026-06-26 at 10:09:34"
[1] ", and\n"
[1] "    "
list()
[1] " rendered on\n"
[1] "    "
[[1]]
[1] "format(Sys.time(), \"%Y-%m-%d at %H:%M:%S\")"
attr(,"Rd_tag")
[1] "RCODE"

[1] ".\n"
[1] "  "

Cheers,
Simon



> On 10 Aug 2026, at 06:28, Dirk Eddelbuettel <edd using debian.org> wrote:
> 
> 
> tl;dr: Some progress, but some issues remaining which may require assistance.
> 
> 
> Thanks again to Gabe for noticing that one-off install step in package
> 'tools' I had not been aware of.  Ensuring that an override-timestamp is
> passed there too addressed this difference in subsequent builds moving us
> closer to reproducible builds.
> 
> I also addressed (so far by 'brutish force') one issue with the pdf docs made
> from help pages.  The help page for Rd2HTML demonstrates how a help can
> reflect Sexpr content at 'build', 'install', and 'render' time calling
> Sys.time() three times. This is obviously incompatible with reproducible 'bit
> by bit' identical builds so I (for now) commented that example out; I may try
> to see with Duncan what else we may do here.
> 
> Which gets us to the current state of affairs. Package r-base-core still
> shows difference which can be seen following the most recent build this
> browseable report:
> 
> https://tests.reproducible-builds.org/debian/rb-pkg/unstable/amd64/diffoscope-results/r-base.html
> 
> There are difference in
> 
> - the installed libtool script (and I may see about help from the
>   reproducibe builds team)
> 
> - methods/Meta/package.rds and methods/Meta/package.rdb and
>   methods/Meta/package.rdx: these have me stumped, and I am not all familiar
>   what goes into these files
> 
> - tools/help/tools.rdb and tools/help/tools.rdx: Also unclear
> 
> - usr/share/man/man1/R.1.gz and usr/share/man/man1/Rscript.1.gz: both carry
>   an 'installed at' timestamp, this should be addressable (but I have yet to
>   look closely).
> 
> If anybody reading this far (thanks for that!) knows about the R package
> internal files, and how we might tweak the creation of these files, please do
> not hesitate to reach out.  We as close as we've been on this and may get
> this over the goal line.
> 
> Cheers, Dirk
> 
> -- 
> dirk.eddelbuettel.com | @eddelbuettel | edd using debian.org
> 
> ______________________________________________
> R-devel using r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-devel
> 



More information about the R-devel mailing list