Bug #21774
closedjammy/bookworm FUSE packages have incorrect FUSE dependency
Description
test-provision-ubuntu2204: #1 /console
09:30:37 2024-05-15T13:30:28.174537954Z crunch-run Using FUSE mount: Traceback (most recent call last): 09:30:37 2024-05-15T13:30:28.174537954Z crunch-run File "/usr/bin/arv-mount", line 6, in <module> 09:30:37 2024-05-15T13:30:28.174537954Z crunch-run import arvados_fuse.command 09:30:37 2024-05-15T13:30:28.174537954Z crunch-run File "/usr/lib/python3-arvados-fuse/lib/python3.10/site-packages/arvados_fuse/__init__.py", line 58, in <module> 09:30:37 2024-05-15T13:30:28.174537954Z crunch-run import llfuse 09:30:37 2024-05-15T13:30:28.174537954Z crunch-run ImportError: libfuse.so.2: cannot open shared object file: No such file or directory
This happens because the package declares it depends on fuse but that now gets you libfuse.so.3. We need to specify libfuse2 instead.
We have code in the package testing scripts to catch this, but we only run it in debug mode. That seems weird. I feel like we should always run it.
Updated by Brett Smith almost 2 years ago
- Blocks Support #21664: Add test provision ubuntu 22.04 & make sure it passes added
Updated by Brett Smith almost 2 years ago
- Blocks Support #21663: Add test provision debian 12 & make sure it passes added
Updated by Brett Smith almost 2 years ago
- Subject changed from jammy/bookworm FUSE packages have correct FUSE dependency to jammy/bookworm FUSE packages have incorrect FUSE dependency
Updated by Brett Smith almost 2 years ago
Brett Smith wrote:
This happens because the package declares it depends on
fusebut that now gets youlibfuse.so.3. We need to specifylibfuse2instead.
This doesn't seem to be right. It works in my manual testing, at least on Ubuntu 22.04. Need to dig further into what caused the failure.
Updated by Brett Smith almost 2 years ago
Okay, the problem is our dependency isn't specific enough. "fuse" is a virtual package that can be provided by fuse3. You can have that installed without libfuse2 installed, and in this case all the package dependencies will be satisfied but arv-mount won't work. Testing with the package-test-ubuntu2204 Docker image, here's a successful flow:
root@4f8d2a84ef02:/# dpkg -i /mnt/python3-arvados-fuse_2.8.0~dev20240510171531-1_amd64.deb [it installs but is missing dependencies] root@4f8d2a84ef02:/# apt --fix-broken install [...] The following additional packages will be installed: fuse libcurl3-gnutls libexpat1 libfuse2 libmpdec3 libpython3.10-minimal libpython3.10-stdlib media-types python3.10 python3.10-minimal Suggested packages: python3.10-venv python3.10-doc binutils binfmt-support The following NEW packages will be installed: fuse libcurl3-gnutls libexpat1 libfuse2 libmpdec3 libpython3.10-minimal libpython3.10-stdlib media-types python3.10 python3.10-minimal 0 upgraded, 10 newly installed, 0 to remove and 0 not upgraded. 1 not fully installed or removed. [succeeds] root@4f8d2a84ef02:/# arv-mount --version /usr/bin/arv-mount 2.8.0.dev20240510171531
And here's a failed flow:
root@a7ba2c68c9d5:/# apt-get install -y fuse3 python3.10 libcurl3-gnutls
[...]
The following additional packages will be installed:
libexpat1 libfuse3-3 libmpdec3 libpython3.10-minimal libpython3.10-stdlib media-types python3.10-minimal
Suggested packages:
python3.10-venv python3.10-doc binutils binfmt-support
The following NEW packages will be installed:
fuse3 libcurl3-gnutls libexpat1 libfuse3-3 libmpdec3 libpython3.10-minimal libpython3.10-stdlib media-types python3.10
python3.10-minimal
0 upgraded, 10 newly installed, 0 to remove and 0 not upgraded.
[succeeds]
root@a7ba2c68c9d5:/# dpkg -i /mnt/python3-arvados-fuse_2.8.0~dev20240510171531-1_amd64.deb
Selecting previously unselected package python3-arvados-fuse.
(Reading database ... 9125 files and directories currently installed.)
Preparing to unpack .../python3-arvados-fuse_2.8.0~dev20240510171531-1_amd64.deb ...
Unpacking python3-arvados-fuse (2.8.0~dev20240510171531-1) ...
Setting up python3-arvados-fuse (2.8.0~dev20240510171531-1) ...
root@a7ba2c68c9d5:/# arv-mount --version
Traceback (most recent call last):
File "/usr/bin/arv-mount", line 6, in <module>
import arvados_fuse.command
File "/usr/lib/python3-arvados-fuse/lib/python3.10/site-packages/arvados_fuse/__init__.py", line 58, in <module>
import llfuse
ImportError: libfuse.so.2: cannot open shared object file: No such file or directory
Updated by Brett Smith almost 2 years ago
21774-package-dependencies @ 9a68b3ef3bcfae2c8d064b573230870bfad1d19b - build-packages-multijob: #4196
TBH if this gets the test-provision jobs passing I will just merge it without review. At its core the bugfix is one word and "obvious."
Updated by Brett Smith almost 2 years ago
- Status changed from In Progress to Resolved
Updated by Brett Smith almost 2 years ago
Brett Smith wrote:
We have code in the package testing scripts to catch this, but we only run it in debug mode. That seems weird. I feel like we should always run it.
This was not quite right. Made #21775 with the real issue.
Updated by Brett Smith 8 months ago
- Related to Bug #23033: arvados-client FUSE dependency needs fixing on Ubuntu 24.04 added