Snapd is out-of-date in Debian (2.61.1)

Debian package of snapd is currently at version 2.60.2+b2 in sid, 2.57.6 in bookworm (stable). The bigger problem is that the source package in salsa debian/snapd.git is somewhat of a mess with last updates over three years ago.

I spoke with @mvo who no longer maintains the package but did push the 2.60.2-1 source package and he clarified that the packaging changes were maintained in mvo’s personal fork on salsa mvo/snapd.

I think we should merge all the changes back to the main repo on salsa and use personal forks for short-lived branches and pull requests.

Separately I would like to explore using somewhat more modern packaging helpers and making packaging less complicated.

1 Like

I’ve built 2.61.1 locally. I’ll give it some testing and eventually upload to sid.

1 Like

I’ve uploaded the package to Debian unstable. There are some interesting failures. The ones for mips64el and loong64 can be ignored, I will update the list of supported architectures to exclude the two, since they have no suport in the snap store.

The failure on riscv64 is more problematic as the log is unclear about what exactly failed. I will look at reproducing this locally.

It looks like the issue with riscv64 is related to bolt-db. Bolt is no longer supported or maintained upstream. It looks like there are missing build-tags for the go source to build:


github.com/boltdb/bolt
# github.com/boltdb/bolt
src/github.com/boltdb/bolt/db.go:101:13: undefined array length maxMapSize or missing type constraint
src/github.com/boltdb/bolt/db.go:317:12: undefined: maxMapSize
src/github.com/boltdb/bolt/db.go:335:10: undefined: maxMapSize
src/github.com/boltdb/bolt/db.go:336:8: undefined: maxMapSize
src/github.com/boltdb/bolt/bolt_unix.go:62:15: undefined array length maxMapSize or missing type constraint
src/github.com/boltdb/bolt/bucket.go:135:15: undefined: brokenUnaligned
src/github.com/boltdb/bolt/freelist.go:166:2: idx declared and not used
src/github.com/boltdb/bolt/freelist.go:169:19: undefined array length maxAllocSize or missing type constraint
src/github.com/boltdb/bolt/freelist.go:176:14: undefined array length maxAllocSize or missing type constraint
src/github.com/boltdb/bolt/freelist.go:204:17: undefined array length maxAllocSize or missing type constraint
src/github.com/boltdb/bolt/freelist.go:204:17: too many errors

There are three versions of bolt packaged in Debian:

  • golang-github-boltdb-bolt-1.3.1
  • golang-github-coreos-bbolt-1.3.6
  • golang-github-nebulouslabs-bolt-1.0+git20170823.0.a22e934

It looks pretty terrible, and goes against the policy in a way, but it is what it is.

Once https://github.com/snapcore/snapd/pull/13534 is merged I will do a 2.61.1-2 update in Debian, with that patch cherry-picked, so that we can get a clean riscv64 build.