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)
Fix Released
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  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.