Control: reassign -1 dpkg 1.20.7.1 Control: retitle -1 dpkg: dpkg-realpath is broken Control: severity -1 grave Control: affects -1 + golang-github-coreos-bbolt-dev golang-github-xordataexchange-crypt-dev Control: tag -1 - help
On 02/03/2021 17.35, Shengjing Zhu wrote:
On Tue, Mar 2, 2021 at 5:24 PM Andreas Beckmann <[email protected]> wrote:during a test with piuparts I noticed your package fails to upgrade from 'stretch'. It installed fine in 'buster', then the upgrade to 'bullseye' fails. From the attached log (scroll to the bottom...): Preparing to unpack .../golang-github-coreos-bbolt-dev_1.3.5-1_all.deb ... Unpacking golang-github-coreos-bbolt-dev (1.3.5-1) over (1.3.1-coreos.5-3) ... dpkg: error processing archive /var/cache/apt/archives/golang-github-coreos-bbolt-dev_1.3.5-1_all.deb (--unpack): unable to install new version of '/usr/share/gocode/src/go.etcd.io/bbolt/allocate_test.go': No such file or directory Preparing to unpack .../libss2_1.46.1-1_amd64.deb ... Unpacking libss2:amd64 (1.46.1-1) over (1.44.5-1+deb10u3) ... Errors were encountered while processing: /var/cache/apt/archives/golang-github-coreos-bbolt-dev_1.3.5-1_all.deb /usr/share/gocode/src/go.etcd.io/bbolt is a symlink and possibly dangling at the time the error happens: lrwxrwxrwx 1 root root 26 Jan 20 2019 /usr/share/gocode/src/go.etcd.io/bbolt -> ../github.com/coreos/bbolt Maybe some symlink_to_dir migration is missing?Not sure what happens, it does have symlink_to_dir already. https://sources.debian.org/src/golang-github-coreos-bbolt/1.3.5-1/debian/maintscript/
The good thing is that it is easily reproducible ... injecting set -x into dpkg-maintscript-helper reveals Preparing to unpack .../golang-github-coreos-bbolt-dev_1.3.5-1_all.deb ... + local SYMLINK=/usr/share/gocode/src/go.etcd.io/bbolt + local SYMLINK_TARGET=/usr/share/gocode/src/github.com/coreos/bbolt + local LASTVERSION=1.3.3-1~ + local PACKAGE=-- + [ 1.3.3-1~ = -- ] + [ -- = -- -o -z -- ] + PACKAGE=golang-github-coreos-bbolt-dev:all + [ /usr/share/gocode/src/go.etcd.io/bbolt != -- -a 7 -gt 0 ] + shift + [ /usr/share/gocode/src/github.com/coreos/bbolt != -- -a 6 -gt 0 ] + shift + [ 1.3.3-1~ != -- -a 5 -gt 0 ] + shift + [ -- != -- -a 4 -gt 0 ] + [ 4 -gt 0 ] + shift + [ -n preinst ] + [ -n golang-github-coreos-bbolt-dev ] + [ -n golang-github-coreos-bbolt-dev:all ] + [ -n /usr/share/gocode/src/go.etcd.io/bbolt ] + [ usr/share/gocode/src/go.etcd.io/bbolt = /usr/share/gocode/src/go.etcd.io/bbolt ] + [ /usr/share/gocode/src/go.etcd.io/bbolt = /usr/share/gocode/src/go.etcd.io/bbolt ] + [ -n /usr/share/gocode/src/github.com/coreos/bbolt ] + [ -n upgrade ] + validate_optional_version 1.3.3-1~ + local VERSION=1.3.3-1~ + [ -z 1.3.3-1~ ] + dpkg --validate-version -- 1.3.3-1~ + VERSIONCHECK= + debug Executing /usr/bin/dpkg-maintscript-helper symlink_to_dir in preinst of golang-github-coreos-bbolt-dev + [ -n 1 ] + echo DEBUG: dpkg-maintscript-helper: Executing /usr/bin/dpkg-maintscript-helper symlink_to_dir in preinst of golang-github-coreos-bbolt-dev DEBUG: dpkg-maintscript-helper: Executing /usr/bin/dpkg-maintscript-helper symlink_to_dir in preinst of golang-github-coreos-bbolt-dev + debug SYMLINK=/usr/share/gocode/src/go.etcd.io/bbolt -> /usr/share/gocode/src/github.com/coreos/bbolt PACKAGE=golang-github-coreos-bbolt-dev:all LASTVERSION=1.3.3-1~ ACTION=upgrade PARAM=1.3.1-coreos.5-3 + [ -n 1 ] + echo DEBUG: dpkg-maintscript-helper: SYMLINK=/usr/share/gocode/src/go.etcd.io/bbolt -> /usr/share/gocode/src/github.com/coreos/bbolt PACKAGE=golang-github-coreos-bbolt-dev:all LASTVERSION=1.3.3-1~ ACTION=upgrade PARAM=1.3.1-coreos.5-3 DEBUG: dpkg-maintscript-helper: SYMLINK=/usr/share/gocode/src/go.etcd.io/bbolt -> /usr/share/gocode/src/github.com/coreos/bbolt PACKAGE=golang-github-coreos-bbolt-dev:all LASTVERSION=1.3.3-1~ ACTION=upgrade PARAM=1.3.1-coreos.5-3 + [ upgrade = install -o upgrade = upgrade ] + [ -n 1.3.1-coreos.5-3 ] + [ -h /usr/share/gocode/src/go.etcd.io/bbolt ] + symlink_match /usr/share/gocode/src/go.etcd.io/bbolt /usr/share/gocode/src/github.com/coreos/bbolt + local SYMLINK=/usr/share/gocode/src/go.etcd.io/bbolt + local SYMLINK_TARGET=/usr/share/gocode/src/github.com/coreos/bbolt + readlink /usr/share/gocode/src/go.etcd.io/bbolt + [ ../github.com/coreos/bbolt = /usr/share/gocode/src/github.com/coreos/bbolt ] + dpkg-realpath /usr/share/gocode/src/go.etcd.io/bbolt + [ /github.com/coreos/bbolt = /usr/share/gocode/src/github.com/coreos/bbolt ] + exit 0 Unpacking golang-github-coreos-bbolt-dev (1.3.5-1) over (1.3.1-coreos.5-3) ... dpkg: error processing archive /var/cache/apt/archives/golang-github-coreos-bbolt-dev_1.3.5-1_all.deb (--unpack): unable to install new version of '/usr/share/gocode/src/go.etcd.io/bbolt/allocate_test.go': No such file or directory # readlink /usr/share/gocode/src/go.etcd.io/bbolt ../github.com/coreos/bbolt # readlink -f /usr/share/gocode/src/go.etcd.io/bbolt /usr/share/gocode/src/github.com/coreos/bbolt # dpkg-realpath /usr/share/gocode/src/go.etcd.io/bbolt /github.com/coreos/bbolt The output from dpkg-realpath is wrong, causing dpkg-maintscript-helper to skip its job. Severity grave since I'm afraid that bug prepares for future upgrade errors since several dpkg-maintscript-helper actions may have been silently skipped without causing immediate trouble. Andreas

