diff options
author | Sandro <sandro.jaeckel@gmail.com> | 2021-04-22 03:27:36 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-04-22 03:27:36 +0200 |
commit | 2df2e5f330a015c2f3c807441e41c334f00f09e6 (patch) | |
tree | d5670b8e197b6a64c7c222869f9f4be023faf9d9 /doc/builders | |
parent | 3eb8f4d15c6b3fbb0170045df40b43cfd07d5d10 (diff) | |
parent | 80651c123ee99f36f478e4248024a0e53ac7ada7 (diff) |
Merge pull request #118269 from midchildan/feat/fuse/add-darwin
Diffstat (limited to 'doc/builders')
-rw-r--r-- | doc/builders/packages/fuse.section.md | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/doc/builders/packages/fuse.section.md b/doc/builders/packages/fuse.section.md index 5603481115e72..eb0023fcbc3ee 100644 --- a/doc/builders/packages/fuse.section.md +++ b/doc/builders/packages/fuse.section.md @@ -17,3 +17,29 @@ following, it's a likely sign that you need to have macFUSE installed. Referenced from: /nix/store/w8bi72bssv0bnxhwfw3xr1mvn7myf37x-sshfs-fuse-2.10/bin/sshfs Reason: image not found [1] 92299 abort /nix/store/w8bi72bssv0bnxhwfw3xr1mvn7myf37x-sshfs-fuse-2.10/bin/sshfs + +Package maintainers may often encounter the following error when building FUSE +packages on macOS: + + checking for fuse.h... no + configure: error: No fuse.h found. + +This happens on autoconf based projects that uses `AC_CHECK_HEADERS` or +`AC_CHECK_LIBS` to detect libfuse, and will occur even when the `fuse` package +is included in `buildInputs`. It happens because libfuse headers throw an error +on macOS if the `FUSE_USE_VERSION` macro is undefined. Many proejcts do define +`FUSE_USE_VERSION`, but only inside C source files. This results in the above +error at configure time because the configure script would attempt to compile +sample FUSE programs without defining `FUSE_USE_VERSION`. + +There are two possible solutions for this problem in Nixpkgs: + +1. Pass `FUSE_USE_VERSION` to the configure script by adding + `CFLAGS=-DFUSE_USE_VERSION=25` in `configureFlags`. The actual value would + have to match the definition used in the upstream source code. +2. Remove `AC_CHECK_HEADERS` / `AC_CHECK_LIBS` for libfuse. + +However, a better solution might be to fix the build script upstream to use +`PKG_CHECK_MODULES` instead. This approach wouldn't suffer from the problem that +`AC_CHECK_HEADERS`/`AC_CHECK_LIBS` has at the price of introducing a dependency +on pkg-config. |