You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
The reason will be displayed to describe this comment to others. Learn more.
Similar to @ncw's observation that FUSE is optional in rclone, FUSE is an optional dependency of borgbackup. Borg is a fully functional backup utility without its mount support. I expect far more people will complain about the disappearance of borgbackup from Homebrew than will complain about the disappearance of mount from borgbackup.
@darthShadow, perhaps you would be interested in including borgbackup in your discussion about dropping mount support from rclone?
The reason will be displayed to describe this comment to others. Learn more.
Unfortunately, I don't use borgbackup and am also not at all familiar with the code so I am not comfortable making or suggesting changes to fix this. Perhaps you could create an issue on their tracker and see if anyone is willing to pick it up?
The reason will be displayed to describe this comment to others. Learn more.
@ThomasWaldmann I don't have much experience fixing Homebrew packages, but what you've said doesn't seem to be true, because:
When I remove all FUSE-related references from Homebrew's borgbackup formula, borg sucessfully builds but borg mount complains that it can't find llfuse even though I've manually installed the module with pip3 install llfuse. Looks like Homebrew's installation of borg can only see python packages that have been installed into its virtualenv:
$ borg mount $BORG_REPO test-borg
borg mount not available: loading FUSE support failed [ImportError: No module named 'llfuse']
When I remove only the osxfuse dependency from Homebrew's borgbackup formula, while leaving the llfuse resource, it fails to build because llfuse requires the "fuse" package which comes with osxfuse:
==> /usr/local/Cellar/borgbackup/1.1.14_1/libexec/bin/pip install -v --no-deps --no-binary :all: --ignore-installed /private/tmp/borgbackup--llfuse-20201122-84906-1152kxr/llfuse-1.3.8
Using pip 20.2.4 from /usr/local/Cellar/borgbackup/1.1.14_1/libexec/lib/python3.9/site-packages/pip (python 3.9)
Non-user install because user site-packages disabled
Created temporary directory: /private/tmp/pip-ephem-wheel-cache-39qa4l9s
Created temporary directory: /private/tmp/pip-req-tracker-kgwq2s3p
Initialized build tracking at /private/tmp/pip-req-tracker-kgwq2s3p
Created build tracker: /private/tmp/pip-req-tracker-kgwq2s3p
Entered build tracker: /private/tmp/pip-req-tracker-kgwq2s3p
Created temporary directory: /private/tmp/pip-install-701fmrpb
Processing /private/tmp/borgbackup--llfuse-20201122-84906-1152kxr/llfuse-1.3.8
Created temporary directory: /private/tmp/pip-req-build-wdpr0y3s
Added file:///private/tmp/borgbackup--llfuse-20201122-84906-1152kxr/llfuse-1.3.8 to build tracker '/private/tmp/pip-req-tracker-kgwq2s3p'
Running setup.py (path:/private/tmp/pip-req-build-wdpr0y3s/setup.py) egg_info for package from file:///private/tmp/borgbackup--llfuse-20201122-84906-1152kxr/llfuse-1.3.8
Created temporary directory: /private/tmp/pip-pip-egg-info-h3udxfyx
Running command python setup.py egg_info
Package fuse was not found in the pkg-config search path.
Perhaps you should add the directory containing `fuse.pc'
to the PKG_CONFIG_PATH environment variable
No package 'fuse' found
ERROR: No .egg-info directory found in /private/tmp/pip-pip-egg-info-h3udxfyx
The reason will be displayed to describe this comment to others. Learn more.
Folks, suggest you move to a discussion at https://github.com/homebrew/discussions/discussions. You are of course welcome to continue talking here but it's unlikely that anyone except me and the people pinged will see this.
That being said, the diagnosed problem is exactly why I deprecated these formulae without attempting to get these "optional" fuse features to work. Formulae with optional fuse features will still probably need the fuse headers and libraries to at least compile. Homebrew migrated nearly all XQuartz formulae to brewed X11 without distributing an X display server, because the needed libraries built on macOS more or less without modification. That is not gonna be the case with libfuse, as to my knowledge, the macOS changes haven't been upstreamed. This is going to be a requirement for shipping libfuse for macOS in Homebrew/core, as the Homebrew maintainers won't distribute the osxfuse fork of libfuse because it does not have stable releases and is not the canonical upstream.
The easiest solution to this is also the one I suggested in the original issue, which is to maintain a fuse tap which uses a osxfuse cask Requirement. The harder solution is to work with the libfuse maintainers upstream the osxfuse changes and get it to build on macOS without patches.
8c2f17e
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Similar to @ncw's observation that FUSE is optional in rclone, FUSE is an optional dependency of borgbackup. Borg is a fully functional backup utility without its
mount
support. I expect far more people will complain about the disappearance of borgbackup from Homebrew than will complain about the disappearance of mount from borgbackup.@darthShadow, perhaps you would be interested in including borgbackup in your discussion about dropping
mount
support from rclone?8c2f17e
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Unfortunately, I don't use borgbackup and am also not at all familiar with the code so I am not comfortable making or suggesting changes to fix this. Perhaps you could create an issue on their tracker and see if anyone is willing to pick it up?
8c2f17e
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Doesn't it just work if you remove the llfuse and osxfuse references from the formula? FUSE has always been optional in Borg...
@ThomasWaldmann any comments?
8c2f17e
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
All borg functions except
borg mount
work without FUSE.So, homebrew does not need to change anything:
borg mount
(I am the borgbackup maintainer, btw.)
8c2f17e
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@ThomasWaldmann I don't have much experience fixing Homebrew packages, but what you've said doesn't seem to be true, because:
borg mount
complains that it can't findllfuse
even though I've manually installed the module withpip3 install llfuse
. Looks like Homebrew's installation of borg can only see python packages that have been installed into its virtualenv:8c2f17e
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Folks, suggest you move to a discussion at https://github.com/homebrew/discussions/discussions. You are of course welcome to continue talking here but it's unlikely that anyone except me and the people pinged will see this.
That being said, the diagnosed problem is exactly why I deprecated these formulae without attempting to get these "optional" fuse features to work. Formulae with optional fuse features will still probably need the fuse headers and libraries to at least compile. Homebrew migrated nearly all XQuartz formulae to brewed X11 without distributing an X display server, because the needed libraries built on macOS more or less without modification. That is not gonna be the case with libfuse, as to my knowledge, the macOS changes haven't been upstreamed. This is going to be a requirement for shipping libfuse for macOS in Homebrew/core, as the Homebrew maintainers won't distribute the osxfuse fork of libfuse because it does not have stable releases and is not the canonical upstream.
The easiest solution to this is also the one I suggested in the original issue, which is to maintain a fuse tap which uses a osxfuse cask Requirement. The harder solution is to work with the libfuse maintainers upstream the osxfuse changes and get it to build on macOS without patches.
8c2f17e
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@fjarlq I am not a macOS (and neither a brew) user.
So if brew is doing anything special (like using a separate virtual env for itself), that needs to be considered of course.
And yes, if you remove osxfuse requirement from brew package, you also need to remove llfuse requirement.
What I meant with "no change needed" was the deprecation (and that borg happily works without fuse / llfuse also, except the borg mount subcommand).