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

Reply via email to