[R-pkg-team] Bug#1089197: dh-r: Stop generating Depends/Suggests/Recommends from the apt cache
Philip Rinn
rinni at inventati.org
Thu Dec 19 10:31:14 GMT 2024
[please keep me and the bug in cc]
Hi,
during the effort to reproduce Debian binary packages distributed via
deb.debian.org (see https://reproduce.debian.net) it turned out that
many/most/all R package couldn't be reproduced as some
Depends/Suggests/Recommends where missing.
After digging it bit - the missing build-dependency on apt was
unfortunately just a red herring - it turns out, the problem is that
check_real_version_of_package() in dh/R.pm[1] uses 'grep-aptavail' and
thus the result depends on the state of the apt cache.
As parse_depends() (in dh/R.pm) calls check_real_version_of_package() to
build Depends/Suggests/Recommend they depend on the status of the apt
cache as well.
While this seems to be a quite elegant solution to the problem of
mapping R package names to Debian package names, it turns out to be
quite hard to reproduce the state of the apt cache for a given point in
time.
Jochen reminded me of the solution dh-python chose [2] for that problem
and I do think a (simplified) version of that would work for R packages
as well.
The main idea is to have a mapping table embedded in dh-r which can be
overrode on package level.
mapping table would basically be
<R package name> <corresponding Debian package name>
knitr r-cran-knir
ggplot2 r-cran-ggplot2
reshape2 r-cran-reshape2
...
containing a mapping for all packages in Debian unstable at the time of
the dh-r upload.
This would of course mean that we'd need to keep that list moderately
updated in the dh-r package.
As we can't guarantee that, we need the possibility to place a file in
debian/ to amend/override the mapping table dh-r provides. (We could of
course have a helper script creates that file for us.)
I'm quite sure, I miss some details here and I do entirely miss the
context of why the current approach was chosen, but I hope, we can start
a discussion on how to make it possible to reproduce R packages going
forward.
Best
Philip
[1]
https://salsa.debian.org/r-pkg-team/dh-r/-/blob/5d6dc04ba4f1f1b5db4bfaecc0e00893e46e5c72/dh/R.pm#L147-L170
[2]
https://salsa.debian.org/python-team/tools/dh-python/-/blob/master/pydist/README.PyDist
-------------- next part --------------
A non-text attachment was scrubbed...
Name: OpenPGP_signature.asc
Type: application/pgp-signature
Size: 931 bytes
Desc: OpenPGP digital signature
URL: <http://alioth-lists.debian.net/pipermail/r-pkg-team/attachments/20241219/b1e9cefd/attachment-0001.sig>
More information about the R-pkg-team
mailing list