Here is a follow-up, and for kicks with some R scripting. It requires sources to have directory names like 'class-7.3-14', ie (CRAN) package name followed by (CRAN) version.
Shell script: ----------------------------------------------------------------------------- #!/bin/bash newfunc() { ## source directories are all named foo-1.2.3 dirs=$(find . -maxdepth 1 -type d -name \*-\* | sort) for d in ${dirs}; do if test -d ${d}/src; then if grep -q -r \\.Fortran\( ${d}/R; then fortran=TRUE else fortran=FALSE fi if grep -q -r \\.C\( ${d}/R; then ccall=TRUE else ccall=FALSE fi if grep -q "Priority: recommended" ${d}/DESCRIPTION; then recommended=TRUE else recommended=FALSE fi if [[ "${fortran}" == "TRUE" || "${ccall}" == "TRUE" ]]; then pretty=$(basename ${d}) echo "${pretty} ${fortran} ${ccall} ${recommended}" fi fi done } newfunc ----------------------------------------------------------------------------- We can call this from R to be able to tabulate the columns R script ----------------------------------------------------------------------------- dat <- read.table(pipe("./checkCandFortranCall.sh"), col.names=c("package", "dotFortran", "dotC", "recommended")) library(data.table) setDT(dat) sapply(dat[, -1], table) # counts by type dat[recommended==TRUE, ] dat[recommended==FALSE, ] ----------------------------------------------------------------------------- which on my box gives dotFortran dotC recommended FALSE 28 13 37 TRUE 20 35 11 indicating a fair number (still around a third of my r-cran-* packages). I think I will cover these by hand now: package dotFortran dotC recommended 1: class-7.3-14 FALSE TRUE TRUE 2: cluster-2.0.6 TRUE TRUE TRUE 3: foreign-0.8.68 FALSE TRUE TRUE 4: KernSmooth-2.23-15 TRUE FALSE TRUE 5: MASS-7.3-47 FALSE TRUE TRUE 6: Matrix-1.2-10 FALSE TRUE TRUE 7: mgcv-1.8-17 FALSE TRUE TRUE 8: nlme-3.1.131 TRUE TRUE TRUE 9: nnet-7.3-12 FALSE TRUE TRUE 10: spatial-7.3-11 FALSE TRUE TRUE 11: survival-2.41-3 FALSE TRUE TRUE and we should binNMU the remaining ones satisfying binary: any (ie applicable for Debian binNMUs) has either .C() or .Fortran() I have access to a fully expanded directory of CRAN sources of if we start we the reverse depends I can refine the script above to get a set of packages for which we can then set up binNMUs. One caveat: the shell script does not (yet?) filter out those packages that already had a post R 3.3.3 update which includes eg several from the set above. Dirk -- http://dirk.eddelbuettel.com | @eddelbuettel | e...@debian.org