Package: r-base-dev
Version: 3.0.0-2
Tags: patch

After the call for all the r-cran packages to be updated for R 3.0,
which is binary(?) incompatible with earlier versions, and the later
reference to ${R:Depends} in the ongoing discussion, I realised that
the ${R:Depends} is currently faulty: packages built under R 2.x have
a generated Depends line which reads: r-base-core (>= 2.14.1-2) or
similar, but actually, this should be tighter, and also specify
r-base-core (<< 3), as it appears that packages built under R 2.x will
not run under R 3.x.  The attached patch modifies the r-cran.mk file
to specify that r-base-core has to be less than the next major
version, under the assumption that this is the only time that binary
incompatibilities are introduced for packages built with earlier
versions of R.  This patch also assumes that there is no epoch,
otherwise the expr command will fail.

   Julian
--- /tmp/r-cran.mk.orig	2013-04-03 16:29:47.000000000 +0100
+++ /tmp/r-cran.mk	2013-04-09 09:11:48.000000000 +0100
@@ -61,6 +61,8 @@
 #			dpkg-parsechangelog -l- --count 1  | \
 #			awk '/^Version/ {print $$2}')
 rversion	:= $(shell dpkg-query -W -f='$${Version}' r-base-dev)
+rmajorversion   := $(shell echo $(rversion) | cut -d. -f1)
+rnextmajorver   := $(shell expr $(rmajorversion) + 1)
 
 ## we use these results for the to-be-installed-in directory
 debRlib		:= $(CURDIR)/debian/$(package)/$(debRdir)
@@ -76,7 +78,7 @@
 		dh_installdirs		$(debRdir)
                 ##
                 ## support ${R:Depends} via debian/${package}.substvars
-		echo "R:Depends=r-base-core (>= ${rversion})" >> debian/$(package).substvars
+		echo "R:Depends=r-base-core (>= ${rversion}), r-base-core (<< $(rnextmajorver))" >> 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