On 2017-09-08 22:49, Dirk Eddelbuettel wrote:
> I still maintain that this is a useless "academic" consideration.  If users
> want to corrupt their systems by only upgrading one package I will not stop
> them.  They can simply fix them by also upgrading the package left behind.

If the package dependencies are not strict enough and allow known broken 
package combinations to be installed (without any --force switch), it's 
our fault, not the user.

> I aim for 'apt-get dist-upgrade' doing the right thing for them. It will
> automate this.

Users running testing or sid are much more likely to perform partial
upgrades.
Or imagine someone backporting r-base 3.4.1 to stretch ... Breaks will
really help here.

But let's get back on the topic.

I think a similar example to what you want to achive is #874413 + 
#873791. This is a ABI break in python (some internal module was 
removed), which requires a bunch of binNMUs. In addition to this, there 
were Breaks added in some core python packages (e.g. libpython2.7-
stdlib) against all the packages that used the removed ABI.

Since you already compiled a minimal list of affected packages (that 
need to be binNMUed), you just need to add appropriately versioned 
Breaks against all of them in r-base-core (or whichever package better 
fits this). 

These Breaks can be removed on the next r ABI bump.

For the 42 packages listed in message #15 (even if you said there were 
46) this would be ... hmm, wait, only 4 of the versions listed there
are actually in sid, so the NMU list does not look too useful:

$ rmadison  -s unstable,stable r-cran-hdf5  r-cran-spam r-cran-spatstat 
r-cran-surveillance
r-cran-hdf5         | 1.6.10-4      | stable     | source
r-cran-hdf5         | 1.6.10-4      | unstable   | source
r-cran-hdf5         | 1.6.10-4+b1   | stable     | amd64, arm64, armel, armhf, 
i386, mips, mips64el, mipsel, ppc64el, s390x
r-cran-hdf5         | 1.6.10-4+b1   | unstable   | amd64, arm64, armel, armhf, 
hurd-i386, i386, kfreebsd-amd64, kfreebsd-i386, mips, mips64el, mipsel, 
powerpc, ppc64el, s390x
r-cran-spam         | 1.4-0-1       | stable     | source, amd64, arm64, armel, 
armhf, i386, mips, mips64el, mipsel, ppc64el, s390x
r-cran-spam         | 1.4-0-1       | unstable   | source, amd64, arm64, armel, 
armhf, hurd-i386, i386, kfreebsd-amd64, kfreebsd-i386, mips, mips64el, mipsel, 
powerpc, ppc64el, s390x
r-cran-spatstat     | 1.48-0-1      | stable     | source, amd64, arm64, armel, 
armhf, i386, mips, mips64el, mipsel, ppc64el, s390x
r-cran-spatstat     | 1.48-0-1      | unstable   | source, amd64, arm64, armel, 
armhf, hurd-i386, i386, kfreebsd-amd64, kfreebsd-i386, mips, mips64el, mipsel, 
powerpc, ppc64el, s390x
r-cran-surveillance | 1.13.0-1      | stable     | source, amd64, arm64, armel, 
armhf, i386, mips, mips64el, mipsel, ppc64el, s390x
r-cran-surveillance | 1.13.0-1      | unstable   | source, amd64, arm64, armel, 
armhf, hurd-i386, i386, kfreebsd-amd64, kfreebsd-i386, mips, mips64el, mipsel, 
powerpc, ppc64el, s390x


Anyway, these are the Breaks for the list from comment #15:

$ sort r-nmu-list | tr _ \  | awk 'BEGIN {print "Breaks:"} {print " " $2 " (<= 
" $3 "), "}'

Breaks:
 r-cran-ade4 (<= 1.7-5-1), 
 r-cran-bayesm (<= 3.0-2-2), 
 r-cran-blockmodeling (<= 0.1.8-1), 
 r-cran-brglm (<= 0.5-9-1), 
 r-cran-caret (<= 6.0-73+dfsg1-1), 
 r-cran-coin (<= 1.1-3-1), 
 r-cran-contfrac (<= 1.1-10-1), 
 r-cran-data.table (<= 1.10.0-1), 
 r-cran-deldir (<= 0.1-12-1), 
 r-cran-desolve (<= 1.14-1), 
 r-cran-eco (<= 3.1-7-1), 
 r-cran-expm (<= 0.999-0-1), 
 r-cran-fields (<= 8.10-1), 
 r-cran-gam (<= 1.14-1), 
 r-cran-glmnet (<= 2.0-5-1), 
 r-cran-goftest (<= 1.0-3-1), 
 r-cran-hdf5 (<= 1.6.10-4+b1), 
 r-cran-igraph (<= 1.0.1-1), 
 r-cran-mapproj (<= 1.2-4-1), 
 r-cran-maps (<= 3.1.1-1), 
 r-cran-maptools (<= 1:0.8-41+dfsg-1), 
 r-cran-mcmc (<= 0.9-4-2), 
 r-cran-mcmcpack (<= 1.3-8-1), 
 r-cran-medadherence (<= 1.03-2), 
 r-cran-mixtools (<= 1.0.4-1), 
 r-cran-mnp (<= 2.6-4-1), 
 r-cran-ncdf4 (<= 1.15-1+b2), 
 r-cran-phangorn (<= 2.1.1-1), 
 r-cran-phylobase (<= 0.8.2-1), 
 r-cran-qtl (<= 1.40-8-1), 
 r-cran-randomfields (<= 3.1.36-1), 
 r-cran-randomfieldsutils (<= 0.3.15-1), 
 r-cran-rcurl (<= 1.95-4.8-2), 
 r-cran-rniftilib (<= 0.0-35.r79-2), 
 r-cran-sp (<= 1:1.2-4-1), 
 r-cran-spam (<= 1.4-0-1), 
 r-cran-spatstat (<= 1.48-0-1), 
 r-cran-spdep (<= 0.6-9-1), 
 r-cran-surveillance (<= 1.13.0-1), 
 r-cran-treescape (<= 1.10.18-6), 
 r-cran-vegan (<= 2.4-2-1), 
 r-cran-vgam (<= 1.0-3-1),

Also note that the nmu commands for the packages that already were 
binNMUed are wrong: you need the source version there, so no +bX suffix.


Andreas

Reply via email to