Unclear how to model builds where different binary packages have different versions
While it's relatively rare, there are some source packages that use dpkg-gencontrol -v
to give different versions to the different binary packages they build. The first example that comes to mind is gcc-defaults
: currently in unstable, gcc
is at version 4:13.2.0-2
while libgphobos-dev
is at version 13.2.0-2
.
It's not clear how this is supposed to be modelled in debusine. The current specification of debian:binary-packages
says:
This artifact represents the set of binary packages (``.deb`` files and
similar) produced during the build of a source package for a given
architecture.
...
* srcpkg-name: the name of the source package
* srcpkg-version: the version of the source package
* version: the version used for the build (can be different from the
source version in case of binary-only rebuilds)
This says both that there's one ("the") set of binary packages for each build, and that there is a unique binary version. Both things can't be true.
Possible fixes might include:
- split the artifact into individual
debian:binary-package
artifacts (but the discussion in !427 (merged) seemed to prefer to avoid that idea) - turn
version
into a dictionary in some way - partition the artifact into one
debian:binary-packages
per unique binary version (but this feels like the worst of both worlds)