Bug#930519: missing versioned dependencies
Andreas Metzler
ametzler at bebt.de
Sat Jun 15 18:30:12 BST 2019
On 2019-06-14 Marc Haber <mh+debian-packages at zugschlus.de> wrote:
> Package: exim4
[...]
> for some possibly historical reason, the dependencies between the exim
> packages are not versioned. This might lead to the latest security
> updates not being installed if some people just do apt install exim4
> instead of the recommended apt upgrade.
> I think that our packages should more closly depend on each other to
> avoid running an older exim4-daemon with a later exim4-base, forcing
> daemon upgrades even if somebody only upgrades exim4.
Hello Marc,
there are some semi-strict dependencies:
exim4 requires exim4-base from the same Debian source version and one
of the daemon packages (unversioned)
The daemon packages require exim4-base of at least the same upstream
version.
exim4-base requires exim4-config and Breaks daemon packages of older
upstream versions.
So what we currently have is that exim4, -base, and -daemon-* share the
same upstream version and exim4 and -base are built from the same source
(not the same binNMU).
You are suggesting to version the exim4 -> daemon dependency like this
Depends: exim4-daemon-light (>= ${source:Version}) |
exim4-daemon-heavy (>= ${source:Version}) |
exim4-daemon-custom (>= ${source:Version})
I see two possible downsides:
* Theoretically a dumb dependency-resolver might break upgrades,
choosing the first alternative instead of checking whether upgrading
everything fullfills the dependency. I think we can discount this.
* The -daemon-custom situation. I think the main reason why the
dependencies are as they are is to not enforce a rebuild of
exim4-daemon-custom for minor (i.e. Debian-revision) changes. This
made a lot of sense when the packaging changed a lot, i.e. there were
many uploads that would have produced the same -daemon-custom.
Nowadays almost every upload includes a new patch from -fixes so it
might make sense to change this,
cu Andreas
PS: FWIW I do not think the original argument (I did "apt get install
exim4" and am still CVE-xxx vulnerable) is a weak one. Linux packages
often and for a long time have split upstream sources into multiple
binaries. Therefore selective upgrades by "apt-get install somebinary
would often be incomplete. You'll either need to read every DSA en
detail and manually compare the list of upgraded/fixed packages with
installed list or or just do "apt-get upgrade".
--
`What a good friend you are to him, Dr. Maturin. His other friends are
so grateful to you.'
`I sew his ears on from time to time, sure'
More information about the Pkg-exim4-maintainers
mailing list