Skip to content
Prev 666 / 919 Next

R 4.0.0 rebuild status

On Monday, 29 June 2020 13.46.02 WEST I?aki Ucar wrote:
I think that I meant the way that the python packages are rebuilt for each new 
python version. I should have said Python mass rebuild.

I took your work as the basis, together with Tom's help and I used dnf to get 
a list of R packages (assuming that their name starts with R- ). The advantage 
of this approach is that it works for CRAN and Bioconductor.

$ dnf list available --disablerepo=\* --enablerepo=rawhide-source R-* | tail -
n +3 | awk -e '{print $1};' | sed -e 's/\.src$//' > r-packages.txt

That gave the list of the (source) packages to rebuild.

In order to get the list of dependencies I used a similar strategy:
$ (for p in $(cat r-packages.txt); do echo -n $p, ; dnf -q repoquery --
disablerepo=\* --enablerepo=rawhide-source --requires $p | sed ':a;N;$!ba;s/
\n/,/g'; done) > r-packages-dependencies.csv

The resulting file is a csv file with the first column as the package and the 
remaining columns as the dependencies.

Now the idea was to process this file using a python script to create a direct 
graph of dependencies (using networkx). In the process non R packages are 
removed and some dependencies are cleaned (e.g. -devel packages direct to the 
source package).


The advantage of this is that it allows to identify cycles.

My only surprise in this process was to find that several packages require R-
rpm-macros.

That causes some dependency cycles because R-rpm-macros also requires
R-rprintf,R-devel,R-knitr,R-stringi,R-testthat.

Since R-rpm-macros is used for Fedora and epel 8 I suggest to remove the 
dependency. Do you agree?