[R-sig-Debian] R-3.4.0 and recommended packages
Dirk Eddelbuettel
edd at debian.org
Thu Apr 27 14:24:18 CEST 2017
On 27 April 2017 at 13:58, Johannes Ranke wrote:
| Am Donnerstag, 27. April 2017, 06:32:13 schrieb Dirk Eddelbuettel:
| > On 27 April 2017 at 12:01, Johannes Ranke wrote:
| > | > so it seems to me this must affect all packages in Debian sid that were
| > | > built before the release of R 3.4.0!
| > |
| > | or rather before 14 April 2017, which is when R from revision r72510 was
| > | uploaded to sid as pre-release candidate.
| >
| > Another example with KernSmooth:
| > > library(KernSmooth)
| >
| > KernSmooth 2.23 loaded
| > Copyright M. P. Wand 1997-2009
| >
| > > example(bkde)
| >
| > bkde> data(geyser, package="MASS")
| >
| > bkde> x <- geyser$duration
| >
| > bkde> est <- bkde(x, bandwidth=0.25)
| > Error in linbin(x, gpoints, truncate) : object 'F_linbin' not found
| >
| >
| > Maybe this part of NEWS is what matters:
| >
| > * Packages which register native routines for .C or .Fortran need
| > to be re-installed for this version (unless installed with
| > R-devel SVN revision r72375 or later).
|
| Yes, that is what Martin Mächler referred to in the answer to Björan's call
| for help on r-help.
|
| > KernSmooth surely has .Fortran. Your spatial example had VR_frset failing,
| > and that too is called by the old .C.
| >
| > A counter-example is eg my RcppEigen package -- I can load it and run
| > example(fastLm) just fine as that uses .Call rather than .C or .Fortran.
| >
| > I think you are
| >
| > -- correct in that we need rebuilds
| > -- but only for packages using .C and .Fortran calls to compiled
|
| Yes.
Here is a quick script snippet. Looks like about 1/3 of my r-cran-* packages
use .C() or .Fortran() and need a rebuild for R 3.4.0 (which some may already
have gotten as some upstream packages got updates):
-----------------------------------------------------------------------------
#!/bin/bash
## 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
echo ".Fortran in ${d}"
fi
if grep -q -r \\.C\( ${d}/R; then
echo ".C in ${d}"
fi
fi
done
-----------------------------------------------------------------------------
|
| > This may be a use case for r-api-4. Or not as it doesn't break _all_
| > packages so I am not sure we should force _all_ packages to be rebuilt.
| >
| > Can we not find the ones that use .C and .Fortran ?
|
| I do not understand how the use of r-api-x works, but my feeling is that it
| will not allow to differentiate between packages using .C and .Fortan and the
| rest.
Right. And therefore cast too wide a net.
| I am surprised that I did not see a related bug report in the Debian BTS yet,
| did I overlook something? I only looked for r-base.
They may not know yet. I should write to debian-devel.
Any debian-med or debian-science readers here?
Dirk
--
http://dirk.eddelbuettel.com | @eddelbuettel | edd at debian.org
More information about the R-SIG-Debian
mailing list