On Tue 31 Jul 2018 at 10:01:00 (-0400), Stefan Monnier wrote: > >> Funny thing is, this is what the versioning says on those pages: > >> Package: libmpfr4 (3.1.6-1) > >> Package: libmpfr6 (4.0.1-1) > >> > >> ...ok, that's strange. Even weirder, they are both built from the same > >> sources: mpfr-4.0.1-1. > > Indeed, I find that odd.
I can't find any evidence for that without being told where to look. > I suspect that the "3.1.6-1" in the "title" and the "4.0.1-1" in the > "download from source" refer to different versions of the package > (normally, those two are identical). > > Not sure how/why this happens. Maybe the source package has been > upgraded, but the build of the corresponding binaries is still > in-progress? > > >> I feel like I'm missing something. For example, what does the > >> "3.1.6-1" mean in libmpfr4? > > Usually it means "built from the upstream version 3.1.6 with some local > patches" and the "-1" is a Debian-local sub-version, in case Debian > builds several different versions of the package from the same upstream > versions (e.g. because Debian's own patches are modified, a typical > example being when Debian's security team backports a security patch to > 3.1.6). Usually they are, but you can't always rely on it; eg Grub2 had Debian version numbers 1.x in the days of wheezy. You have to check a little deeper: that was my point. > > The numbers in parentheses are the Debian versions of the package. > > That's how apt would upgrade a package if a bug was fixed within it. > > They're not related to the upstream version. > > Doesn't explain why one says "Package: libmpfr4 (3.1.6-1)" and the other > says "[mpfr4_4.0.1-1.dsc]": both "3.1.6-1" and "4.0.1-1" are Debian > version numbers and they are usually the same. I'm not sure you're quoting from here. > > As for the "6", I'm guessing that they chose that because the library > > version (yes, another versioning sequence) is 6.0.1 as opposed to 4.1.5. > > That's right, this is an "API version", so I guess it means that the > 4.0.1 upstream code can be used to build both the API version 4 and > the API version 6. That seems unlikely to me. I'm not going to bother to download the source to find out, but I suspect that the 4 in Packages's "Source: mpfr4" line is spurious, accidentally introduced between lenny and squeeze. I think that is the only mystery here, and the rest of the "problem" is built on jumping to false conclusions (or assumptions). Cheers, David.