On Sun, May 10, 2015 at 04:46:30PM -0500, Dirk Eddelbuettel wrote:
>
> Hi Julian,
>
> On 10 May 2015 at 22:20, Julian Gilbey wrote:
> | Hi Dirk,
> |
> | Well, jessie has been released now.
>
> Once again without any breakage for R or R-related packages ...
Indeed. See the long discussion in the bug report about where
breakage will and won't be seen.
> | Please can you upload a version of r-base which addresses this issue,
> | providing a "Provides: r-base-api-3.0" field, and modifying the
> | r-base-dev scripts as described in the bug report.
>
> For starters I think "r-base-api-3.0" is a misnomer. R is currently at
> release 3.2. And all versions of R 3.* use the same API as this release once
> again showed.
>
> So maybe "r-api-3" ?
Fine.
> | As has been explained repeatedly in these bug reports, this is
> | (a) very easy to do
> | (b) recommended practice, having been done in several other similar
> | situations with other packages
> | (c) not going to cause any detrimental effects
> |
> | We are early enough in the stretch release cycle that any issues (not
> | that there are likely to be any) will be able to be ironed out.
>
> I won't stand in the way, but I won't push this issue either as I (still)
> don't fully believe in its need or merit. But I will probably consider
> patches. So if you or someone else wants to drive this this, send me
> (ideally also somewhat tested) patches.
There is a tested patch from Charles Plessy in the first report on
this bug:
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=704805
Attached is a cleaned patch which achieves the same, but will be more
robust if the api version changes (I've tweaked the regex slightly).
It seems to work on my system - tested.
The only thing I'm not sure about, and you may have a better view, is
whether r-cran packages should depend only on the api version (so:
Depends: r-api-3), or whether they should also depend upon the actual
base version (Depends: r-base-core (>= 3.2.0-2)).
The attached patch causes r-cran-* packages to *only* depend on
r-api-3; if r-cran-* packages should *also* depend on a versioned
r-base-core, then in the patch, reinstate the rversion line, and
combine the two R:Depends lines (the old and the new) into a single
line.
Julian
diff -Nru r-base-3.2.0.orig/debian/control r-base-3.2.0/debian/control
--- r-base-3.2.0.orig/debian/control 2015-05-11 00:20:08.947567937 +0100
+++ r-base-3.2.0/debian/control 2015-05-11 00:20:51.498702854 +0100
@@ -47,7 +47,7 @@
Architecture: any
Depends: ${misc:Depends}, ${perl:Depends}, zip, unzip, libpaper-utils, xdg-utils, ${shlibs:Depends}, ucf (>= 3.0)
Replaces: r-base (<= 1.4.1-1), r-recommended (<< 1.9.0), r-gnome (<= 2.3.1), r-cran-rcompgen (<= 0.1-17-1), r-base-latex (<= 2.9.2-4)
-Provides: r-gnome, r-cran-rcompgen, r-base-latex
+Provides: r-gnome, r-cran-rcompgen, r-base-latex, r-api-3
Conflicts: r-gnome, r-cran-rcompgen, r-base-latex
Recommends: r-recommended, r-base-dev, r-doc-html
Suggests: ess, r-doc-info | r-doc-pdf, r-mathlib, r-base-html
diff -Nru r-base-3.2.0.orig/debian/r-cran.mk r-base-3.2.0/debian/r-cran.mk
--- r-base-3.2.0.orig/debian/r-cran.mk 2015-05-11 00:20:08.979567287 +0100
+++ r-base-3.2.0/debian/r-cran.mk 2015-05-11 00:21:22.402074555 +0100
@@ -60,7 +60,7 @@
#rversion := $(shell zcat /usr/share/doc/r-base-dev/changelog.Debian.gz | \
# dpkg-parsechangelog -l- --count 1 | \
# awk '/^Version/ {print $$2}')
-rversion := $(shell dpkg-query -W -f='$${Version}' r-base-dev)
+rAPIversion := $(shell dpkg-query -W -f='$${Provides}' r-base-core | grep -o 'r-api[^, ]*')
## we use these results for the to-be-installed-in directory
debRlib := $(CURDIR)/debian/$(package)/$(debRdir)
@@ -96,7 +96,7 @@
dh_installdirs $(debRdir)
##
## support ${R:Depends} via debian/${package}.substvars
- echo "R:Depends=r-base-core (>= ${rversion})" >> debian/$(package).substvars
+ echo "R:Depends=${rAPIversion}" >> debian/$(package).substvars
##
## call R to install the sources we're looking at
## use this inside xvfb-run if this wrapper is installed
diff -Nru r-base-3.2.0.orig/debian/r-cran.mk.orig r-base-3.2.0/debian/r-cran.mk.orig
--- r-base-3.2.0.orig/debian/r-cran.mk.orig 2015-05-10 23:51:44.166227429 +0100
+++ r-base-3.2.0/debian/r-cran.mk.orig 2015-05-11 00:20:08.979567287 +0100
@@ -60,7 +60,7 @@
#rversion := $(shell zcat /usr/share/doc/r-base-dev/changelog.Debian.gz | \
# dpkg-parsechangelog -l- --count 1 | \
# awk '/^Version/ {print $$2}')
-rAPIversion := $(shell dpkg-query -W -f='$${Provides}' r-base-core | grep -o 'r-api.[^,]')
+rversion := $(shell dpkg-query -W -f='$${Version}' r-base-dev)
## we use these results for the to-be-installed-in directory
debRlib := $(CURDIR)/debian/$(package)/$(debRdir)
@@ -96,7 +96,7 @@
dh_installdirs $(debRdir)
##
## support ${R:Depends} via debian/${package}.substvars
- echo "R:Depends=${rAPIversion}" >> debian/$(package).substvars
+ echo "R:Depends=r-base-core (>= ${rversion})" >> debian/$(package).substvars
##
## call R to install the sources we're looking at
## use this inside xvfb-run if this wrapper is installed