Package: debmake-doc
Version: 1.14-1
Severity: normal

Hi

in "5.5.3. binNMU safe" there's:

~~~~
The dependency defined in the debian/control file among binary packages
from the same source package should be safe for the binNMU. This needs
attention if there are both “Architecture: any” and “Architecture: all”
packages involved in it.
[...]
“Architecture: all” package: depends on “Architecture: any” baz package

  Depends: baz (>= ${source:Version}), baz (<<
${source:Upstream-Version}.0~)
~~~~

Instead of restricting this by the next upstream version, the next
debian revision version should be used:

    Depends: baz (>= ${source:Version}), baz (<< ${source:Version}.1~)



Explanation:

Consider an arch:all package foo 1.0-1 which depends on baz as above.

The restriction "baz (<< ${source:Upstream-Version}.0~)" would resolve
to "baz << 1.0.0~".  This correctly includes versions from binNMUs
(1.0-1+b1).

But it also includes new debian revisions like 1.0-2 or 1.0-1.1 (NMU),
which might have changes which require foo and baz to be both updated at
the same time (foo 1.0-1 does not work with baz 1.0-1.1).  So these
versions should be excluded.

My proposal would set the restriction to "baz << 1.0-1.1~".  I
found that suggested in several places a few years ago, when I had a
deep look into this topic for packaging wine.



Some data:

Roughly looking at codesearch for the pattern in debian/control:

* (<< ${source:Upstream-Version}.0~) : 19 results
https://codesearch.debian.net/search?q=%28%3C%3C+%24%7Bsource%3AUpstream-
Version%7D.0%7E%29+path%3Adebian%2Fcontrol&literal=1

* (<< ${source:Version}.1~): 233 results
https://codesearch.debian.net/search?q=%28%3C%3C+%24%7Bsource%3AVersion%7D.1%7E%29+path%3Adebian%2Fcontrol&literal=1


* AFAICT you might also use the slightly stricter
"${source:Version}.0~", but it seems noone else does because NMUs should
start at ".1": 0 results
https://codesearch.debian.net/search?q=%28%3C%3C+%24%7Bsource%3AVersion%7D.0%7E%29+path%3Adebian%2Fcontrol&literal=1


Greets and thanks
jre




-- System Information:
Debian Release: bullseye/sid
  APT prefers testing
  APT policy: (990, 'testing'), (500, 'unstable-debug'), (500, 
'testing-debug'), (500, 'unstable'), (100, 'experimental'), (1, 
'experimental-debug')
Architecture: amd64 (x86_64)
Foreign Architectures: i386

Kernel: Linux 4.19.0-5-amd64 (SMP w/12 CPU cores)
Kernel taint flags: TAINT_PROPRIETARY_MODULE, TAINT_OOT_MODULE, 
TAINT_UNSIGNED_MODULE
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8), 
LANGUAGE=en_US.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /usr/bin/dash
Init: systemd (via /run/systemd/system)
LSM: AppArmor: enabled

debmake-doc depends on no packages.

Versions of packages debmake-doc recommends:
ii  debmake  4.3.1-1

Versions of packages debmake-doc suggests:
ii  debian-policy         4.4.0.1
ii  developers-reference  3.4.26

-- no debconf information

Reply via email to