borg icon indicating copy to clipboard operation
borg copied to clipboard

No FUSE support when using GitHub-built Linux binaries

Open ddribin opened this issue 1 month ago • 12 comments

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.

ddribin avatar Nov 19 '25 02:11 ddribin

You need to install FUSE separately

infectormp avatar Nov 19 '25 03:11 infectormp

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]

ddribin avatar Nov 19 '25 04:11 ddribin

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?

ddribin avatar Nov 19 '25 13:11 ddribin

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.

ThomasWaldmann avatar Nov 19 '25 14:11 ThomasWaldmann

https://github.com/borgbackup/borg/actions/runs/18981859621/job/54216156479

Strange: some test_fuse tests passed there.

ThomasWaldmann avatar Nov 19 '25 15:11 ThomasWaldmann

Oh, that was a *-fuse2 tox env used for building the binaries, but when installing ubuntu packages, it removed fuse(2) when installing fuse3...

ThomasWaldmann avatar Nov 19 '25 15:11 ThomasWaldmann

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.

ThomasWaldmann avatar Nov 30 '25 00:11 ThomasWaldmann

Fixed in 1.4-maint (soon released as 1.4.3).

ThomasWaldmann avatar Nov 30 '25 10:11 ThomasWaldmann

Thank you! If you have a pre-release binary built, I can install it test it out, if you like.

ddribin avatar Nov 30 '25 13:11 ddribin

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!

ddribin avatar Dec 02 '25 14:12 ddribin

Yeah, I still need to do related fixing in master branch though.

ThomasWaldmann avatar Dec 02 '25 14:12 ThomasWaldmann

Okay. Sorry about closing!

ddribin avatar Dec 02 '25 19:12 ddribin