No FUSE support when using GitHub-built Linux binaries
I have tried using the GitHub-built Linux binaries (the ones with -gh suffix) for version 1.4.2 and I get an error about no FUSE support:
> ./borg-linux-glibc235-x86_64-gh --version
borg-linux-glibc235-x86_64-gh 1.4.2
> ./borg-linux-glibc235-x86_64-gh mount -v -o allow_other :: /mnt/restore
Runtime Error: borg mount not available: no FUSE support, BORG_FUSE_IMPL=pyfuse3,llfuse.
The non -gh one works fine:
> ./borg-linux-glibc231-x86_64 --version
borg-linux-glibc231-x86_64 1.4.2
> ./borg-linux-glibc231-x86_64 mount -v -o allow_other :: /mnt/restore
Mounting filesystem
The host OS is Ubuntu 22.04.5 LTS.
The same thing happens with the ARM version borg-linux-glibc235-arm64-gh (also on Ubuntu 22.04.5 LTS):
> ./borg-linux-glibc235-arm64-gh --version
borg-linux-glibc235-arm64-gh 1.4.2
> ./borg-linux-glibc235-arm64-gh mount -v :: /mnt/restore
Runtime Error: borg mount not available: no FUSE support, BORG_FUSE_IMPL=pyfuse3,llfuse.
You need to install FUSE separately
It is installed:
> apt list --installed | rg fuse
fuse3/jammy,now 3.10.5-1build1 amd64 [installed,automatic]
libfuse3-3/jammy,now 3.10.5-1build1 amd64 [installed,automatic]
Plus, the non GitHub build works, which also uses FUSE.
On the ARM machine, I tried installing python3-pyfuse3 and get the same error:
> apt list --installed | rg fuse
fuse3/jammy,now 3.10.5-1build1 arm64 [installed,automatic]
libfuse3-3/jammy,now 3.10.5-1build1 arm64 [installed,automatic]
python3-pyfuse3/jammy,now 3.2.0-3build1 arm64 [installed]
I also tried installing libfuse2 and python3-llfuse, but still no go:
> apt list --installed | rg fuse
fuse3/jammy,now 3.10.5-1build1 arm64 [installed,automatic]
libfuse-dev/jammy,now 2.9.9-5ubuntu3 arm64 [installed]
libfuse2/jammy,now 2.9.9-5ubuntu3 arm64 [installed]
libfuse3-3/jammy,now 3.10.5-1build1 arm64 [installed,automatic]
python3-llfuse/jammy,now 1.3.8+dfsg-2build1 arm64 [installed]
python3-pyfuse3/jammy,now 3.2.0-3build1 arm64 [installed]
Are there any other dependencies missing?
Maybe there is a build issue and it didn't include FUSE support in the *-gh binaries.
1.4.2 was the first time we released binaries built that way.
https://github.com/borgbackup/borg/actions/runs/18981859621/job/54216156479
Strange: some test_fuse tests passed there.
Oh, that was a *-fuse2 tox env used for building the binaries, but when installing ubuntu packages, it removed fuse(2) when installing fuse3...
looks like the 1.4.2 github-built release binaries have broken fuse support:
- they bundle pyfuse3
- they bundle libfuse3
- but borg mount does not work
I suspect it is due to not bundling trio, which is a requirement of pyfuse3, see #9196.
Not sure why it did not get bundled, usually pyinstaller finds requirements automatically.
I will go back to llfuse / libfuse2 for borg 1.4.3 release.
Fixed in 1.4-maint (soon released as 1.4.3).
Thank you! If you have a pre-release binary built, I can install it test it out, if you like.
I see 1.4.3 was just released. I tried out the -gh binaries and mount works for both borg-linux-glibc235-x86_64-gh and borg-linux-glibc235-arm64-gh. Thank you!
Yeah, I still need to do related fixing in master branch though.
Okay. Sorry about closing!