On 15 May 2025 at 11:41, Jeroen Ooms wrote: | 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?
Conceivably we may have valid use cases to run 'detection' in `configure` that is not related to src/ and compilation. | 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. That view is fairly narrow as it affects only R CMD INSTALL --build use (which may of course be the most common by far). But eg r2u wraps .deb meta-information around the inner tar.gz it does so by relying on src/ being present to detect binary per-platform status (Architecture: any" in Debian parlance). Can we get this BioConductor package to add a src/ field? Dirk -- dirk.eddelbuettel.com | @eddelbuettel | e...@debian.org ______________________________________________ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel