Package: golang-github-cespare-xxhash-v2
Version: 2.3.0-1
Severity: serious
Tags: sid
X-Debbugs-Cc: [email protected]
Dear Maintainer,
The newly introduced binary package golang-github-cespare-xxhash-v2-dev ships
files under /usr/share/gocode/src/github.com/cespare/xxhash/v2/.
However, the existing package golang-github-cespare-xxhash-dev (source
golang-github-cespare-xxhash, version 2.3.0-3) already ships the v2 import
path under the exact same directory hierarchy.
Because golang-github-cespare-xxhash-v2-dev does not declare Breaks or Replaces
against golang-github-cespare-xxhash-dev, attempting to co-install both packages
(for instance, when building or testing packages that depend on the new -v2-dev
package while other dependencies like grpc-dev still depend on xxhash-dev)
fails with a dpkg file overwrite error:
dpkg: error processing archive
.../golang-github-cespare-xxhash-v2-dev_2.3.0-1_all.deb (--unpack):
trying to overwrite
'/usr/share/gocode/src/github.com/cespare/xxhash/v2/bench_test.go', which is
also in package golang-github-cespare-xxhash-dev (2.3.0-3)
To fix this and provide a smooth migration path across the archive:
1. In package golang-github-cespare-xxhash-v2-dev, declare:
Breaks: golang-github-cespare-xxhash-dev (<< 2.3.0-4~)
Replaces: golang-github-cespare-xxhash-dev (<< 2.3.0-4~)
2. In source package golang-github-cespare-xxhash-v2, add a transitional dummy
package in debian/control:
Package: golang-github-cespare-xxhash-dev
Architecture: all
Section: oldlibs
Depends:
golang-github-cespare-xxhash-v2-dev (= ${binary:Version}),
${misc:Depends},
Description: Go implementation of the 64-bit xxHash algorithm
(transitional dummy package)
This is a transitional dummy package to ease upgrades to
golang-github-cespare-xxhash-v2-dev. It can safely be removed.
Building the transitional binary directly from golang-github-cespare-xxhash-v2
takes over the binary package in DAK (per Developer's Reference § 5.9.3),
allowing
the old source package to be retired automatically while preserving support for
the ~30 packages in unstable that currently Build-Depend on the legacy package
name.