snapd FTBFS when built with libfuse3-dev

Bug #1935667 reported by Graham Inggs
10
This bug affects 1 person
Affects Status Importance Assigned to Milestone
snapd (Ubuntu)
High
Ian Johnson

Bug Description

Fuse3 is a requirement for qemu 6 (LP: #1934510). Since we don't want to support two versions of fuse in main, we'd like reverse-dependencies of fuse to switch to fuse3.

snapd FTBFS in a test rebuild changing the build-dependency on libfuse-dev to libfuse3-dev.

Excerpt from the build log:

checking for fuse >= 2.5... no

Revision history for this message
Ian Johnson (anonymouse67) wrote :

Can you provide a full build failure log and information on what you changed when you tried to build snapd?

Changed in snapd (Ubuntu):
status: New → Incomplete
Revision history for this message
Graham Inggs (ginggs) wrote :
Revision history for this message
Graham Inggs (ginggs) wrote :
Revision history for this message
Graham Inggs (ginggs) wrote :

Sure, debdiff and build log of the rebuild attached.

Revision history for this message
Ian Johnson (anonymouse67) wrote :

Thanks for that

Changed in snapd (Ubuntu):
status: Incomplete → New
Revision history for this message
Graham Inggs (ginggs) wrote :

This is effectively a transition in main, so please don't upload until all of the other affected packages are ready.

Michael Vogt (mvo)
Changed in snapd (Ubuntu):
status: New → Triaged
importance: Undecided → High
Graham Inggs (ginggs)
summary: - Please switch to fuse3
+ snapd FTBFS when built with libfuse3-dev
Revision history for this message
Michael Vogt (mvo) wrote :

Thanks for the patch! For us it's slightly more complicated because we want to make sure that snapd keeps building (ideally unchanged) back to 16.04. We will look a bit more.

Revision history for this message
Michael Vogt (mvo) wrote :

This is merged now in: https://github.com/snapcore/snapd/pull/10524 and will be part of the next release.

Changed in snapd (Ubuntu):
status: Triaged → Fix Committed
Revision history for this message
Christian Ehrhardt  (paelzer) wrote :

Hi,
some (qemu, open-vm-tools, fuse3 itself) started to land.
We'd need to have this fixed and ready as well now.

Right now we certainly have a release post last August, but right now we have still a dependency to v2:
Package: snapd
Version: 2.53+21.10ubuntu1
Depends: adduser, apparmor (>= 2.10.95-0ubuntu2.2), ca-certificates, openssh-client, squashfs-tools, systemd, udev, libc6 (>= 2.34), libfuse2 (>= 2.6), liblzma5 (>= 5.1.1alpha+20110809), liblzo2-2 (>= 2.02), libudev1 (>= 183), zlib1g (>= 1:1.1.4)

Do not do this in a rush, in bug 1956949 it was found that we need to coordinate this more precisely to move "all at once" to avoid conflicts between fuse <-> fuse3.

Therefore the question, would this be ready for upload now if all other dependencies are as well?

Revision history for this message
Alberto Mardegan (mardy) wrote :

Hi Christian, we already merged support of fuse3 in master; Now we have a dependency on `libfuse-dev | libfuse3-dev`, and it should just be a matter of rebuilding the code.

Revision history for this message
Paride Legovini (paride) wrote :

Hi Alberto,

It seems that the snapd package in Jammy already has the `libfuse-dev | libfuse3-dev` Build-Dep, however we may still have an issue. That build-dep *allows* snapd to be built using libfuse3-dev, but by default the first declared dependency will be used by the resolver, which means that by default snapd will still build against libfuse-dev on Jammy. This will block demoting fuse2 to universe.

OTOH inverting the order (`libfuse3-dev | libfuse-dev`) will cause snapd to be build against libfuse3-dev on pre-Jammy releases (AIUI you want to use a common packaging across several releases).

A way out could be using a versioned dependency:

  libfuse3-dev (>= 3.10.5-1) | libfuse-dev

so libfuse3-dev will only be used on Jammy, and libfuse-dev on the older releases. I didn't test this, but it should work.

Revision history for this message
Paride Legovini (paride) wrote :

I'm moving this bug back to New because I'm not convinced it's Fix Committed, per my comment above. Indeed on Jammy we have

  Build-Depends: libfuse-dev | libfuse3-dev

but as a result then bin:snapd has:

  Depends: libfuse2 (>= 2.6)

which is not what we want.

Changed in snapd (Ubuntu):
status: Fix Committed → New
Revision history for this message
Ian Johnson (anonymouse67) wrote :

Filed a PR with your suggestion: https://github.com/snapcore/snapd/pull/11276

Changed in snapd (Ubuntu):
status: New → In Progress
assignee: nobody → Ian Johnson (anonymouse67)
Revision history for this message
Paride Legovini (paride) wrote :

Fix Released in 2.54.2+22.04ubuntu3:

src:snapd has:

Build-Depends: autoconf, automake, autotools-dev, bash-completion, ca-certificates, debhelper (>= 9), dbus, dh-apparmor, dh-autoreconf, dh-golang (>= 1.7), debhelper (>= 9.20160709~) | dh-systemd, fakeroot, gcc-multilib [amd64], gettext, grub-common, gnupg2, golang-go (>= 2:1.13~) [!powerpc] | golang-1.13 [!powerpc], indent, init-system-helpers, libapparmor-dev, libcap-dev, libfuse3-dev (>= 3.10.5-1) | libfuse-dev, libglib2.0-dev, liblzma-dev, liblzo2-dev, libseccomp-dev, libudev-dev, openssh-client, pkg-config, python3, python3-docutils, python3-markdown, squashfs-tools, tzdata, udev, xfslibs-dev

bin:snapd has:

Depends: adduser, apparmor (>= 2.10.95-0ubuntu2.2), ca-certificates, openssh-client, squashfs-tools, systemd, udev, libc6 (>= 2.34), libfuse3-3 (>= 3.2.3), liblzma5 (>= 5.1.1alpha+20110809), liblzo2-2 (>= 2.02), libudev1 (>= 183), zlib1g (>= 1:1.1.4), default-dbus-session-bus | dbus-session-bus

Thanks!

Changed in snapd (Ubuntu):
status: In Progress → Fix Released
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers