On Wed, May 14, 2025 at 11:05 PM Simon Urbanek <simon.urba...@r-project.org> wrote: > > Jeroen, > > thanks for raising the issues. Comments inline. > > > > On May 15, 2025, at 1:47 AM, Jeroen Ooms <jeroeno...@gmail.com> wrote: > > > > R-universe builds and checks all CRAN packages on arm64 on Mac, Linux > > and soon Windows. It is important that we can identify from a binary > > package for which architecture it was built. R inserts this > > information into the second part of the "Built:" field in the > > DESCRIPTION. For example, packages with compiled code contain: > > > > Built: R 4.5.0; aarch64-unknown-linux-gnu; 2025-05-05 14:06:56 UTC; unix > > > > And packages without compiled code contain: > > > > Built: R 4.5.0; ; 2025-05-08 06:46:33 UTC; unix > > > > However this is not working for packages that compile something, but > > do not have a 'src' dir. > > > Can you give an example, please? I wonder if there is a real use-case or just > bad package design.
The case that bit me yesterday was a Bioconductor package Rigraphlib, see https://bioconductor.org/packages/release/bioc/src/contrib/Rigraphlib_1.0.0.tar.gz This package builds a static library entirely from a configure script. Because there is no 'src' dir, we assumed the package to be all-arch, and get linking errors when trying to use it on another arch then it was built for. Arguably this is indeed bad package design, but that is hard to protect against. > I wouldn't think that should happen as configure is supposed to only guide > the compilation in src - if there is no src no binaries are expected as the > package did not provide any native sources hence there should be no binary > content. This looks like something that could be added to R CMD check? In that case maybe R should warn if it runs a package configure script but there is no "src"? And check if NeedsCompilation: yes is set? One way or another, what matters is that when R runs configure or make during install, the value in the "Built" field in the binary package should contain the platform value. This is also important when distros ship R packages in deb or rpm format, to prevent packages that have compiled code from getting "Architecture: all" and be installed on the wrong platforms. ______________________________________________ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel