Opened 16 months ago

Last modified 4 weeks ago

#59316 assigned defect

osxfuse @3.8.3: Assertion 'common_is_variable DEFAULT_SDK_10_15_ARCHITECURES' failed

Reported by: andrey-popov (Andrey Popov) Owned by:
Priority: Normal Milestone:
Component: ports Version: 2.6.1
Keywords: catalina Cc: svalgaard (Jens Svalgaard Kohrt), michaellass (Michael Lass), khepler, abusse (Anselm Busse), jonnyflash-owlgod, MeNdMont (MeNdMont), dbarelop (Daniel Barea), matt-hammond-bbc (Matt Hammond), dershow, rectalogic (Andrew Wason), jfb007, ballapete (Peter Dyballa), astrofitz (Michael Fitzgerald), p-bro, doeringudh
Port: osxfuse

Description

Build of osxfuse @3.8.3 fails by SIGTERM on macOS 10.15 with Xcode 11.1. Here is the (somewhat?) relevant part from the log:

:info:build ^[[1;31mAssertion 'common_is_variable DEFAULT_SDK_10_15_ARCHITECURES' failed^[[0m
:info:build ^[[1;31mat common_variable_clone (./build.d/lib/common.sh, line 501)^[[0m
:info:build ^[[1;31mat common_variable_clone (./build.d/lib/common.sh, line 514)^[[0m
:info:build ^[[1;31mat build_target_invoke (./build.sh, line 657)^[[0m
:info:build ^[[1;31mat build_main (./build.sh, line 943)^[[0m
:info:build ^[[1;31mat main (./build.sh, line 951)^[[0m
:info:build ^GTerminated: 15
:info:build ^[[0;37mReceived signal: SIGTERM^[[0m
:info:build Command failed:  cd "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_fuse_osxfuse/osxfuse/work/osxfuse-osxfuse-48bc246"    && ./build.sh -t packagemanager -a build -v 5 --build-directory="/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_fuse_osxfuse/osxfuse/ work" -- -a x86_64 --framework-prefix="/opt/local" --fsbundle-prefix="/opt/local" --library-prefix="/opt/local"
:info:build Killed by signal: 15
:error:build Failed to build osxfuse: command execution failed

I'm attaching the full log. This doesn't seem to be the same problem as in #54939 as the log doesn't mention LoadError.

Attachments (7)

main.log (300.0 KB) - added by andrey-popov (Andrey Popov) 16 months ago.
main.2.log (311.0 KB) - added by knightjp 16 months ago.
Main - 2
Screen Shot 2019-10-14 at 9.31.25 PM.png (427.9 KB) - added by knightjp 16 months ago.
FUSE not getting detected as installed
patch-build.d_defaults_sh.diff (740 bytes) - added by ballapete (Peter Dyballa) 4 months ago.
Diff output to patch build.d/defaults.sh to work on Catalina, macOS 10.15.6
patch-build.d_lib_xcode_sh.diff (838 bytes) - added by ballapete (Peter Dyballa) 4 months ago.
Diff output to patch build.d/lib/xcode.sh to work on Catalina, macOS 10.15.6
patch-build.d_targets_release_sh.diff (1.3 KB) - added by ballapete (Peter Dyballa) 4 months ago.
Corrected version of diff output to patch build.d/targets/release.sh to work on Catalina, macOS 10.15.6
fuse-osxfuse.tar.gz (5.8 KB) - added by doeringudh 4 weeks ago.
Complete port structure for macOS 10.15.7

Download all attachments as: .zip

Change History (53)

Changed 16 months ago by andrey-popov (Andrey Popov)

Attachment: main.log added

comment:1 Changed 16 months ago by mf2k (Frank Schima)

Cc: drkp removed
Owner: set to drkp
Status: newassigned

Changed 16 months ago by knightjp

Attachment: main.2.log added

Main - 2

comment:2 Changed 16 months ago by knightjp

I am facing issues in getting osxfuse installed. The package I was hoping to install is ntfs-3g and osxfuse is a vital dependency.

Of course I'm not a developer, but if I were to think about it, I am guessing the change to zsh by Catalina does have an effect on the current scripts.

comment:3 Changed 16 months ago by yan12125 (Chih-Hsuan Yen)

Keywords: catalina added

Per https://github.com/osxfuse/osxfuse/releases, Catalina support is available since 3.10.0, while the one in MacPorts is kept at 3.8.x as osxfuse is no longer an open source project since version 3.9.0 (1).

(1) https://github.com/osxfuse/osxfuse/issues/590.

comment:4 in reply to:  3 Changed 16 months ago by knightjp

Replying to yan12125:

Per https://github.com/osxfuse/osxfuse/releases, Catalina support is available since 3.10.0, while the one in MacPorts is kept at 3.8.x as osxfuse is no longer an open source project since version 3.9.0 (1).

(1) https://github.com/osxfuse/osxfuse/issues/590.

Why doesn't my current install of Macports detect that I have FUSE installed?

Changed 16 months ago by knightjp

FUSE not getting detected as installed

comment:5 Changed 16 months ago by pmininni (Pablo Mininni)

I was able to build ntfs-3g in Catalina by installing the latest version of OSXFuse (3.10.3) from https://github.com/osxfuse/osxfuse/releases, and then doing:

sudo ln -s /usr/local/lib/pkgconfig/fuse.pc /opt/local/lib/pkgconfig/fuse.pc
sudo port install ntfs-3g

The ntfs-3g port doesn't require OSXFuse from Macports to build, just the fuse.pc file. I was able to build and install the ntfs-3g port, and it seems to work fine. Maybe the portfile can be modified to look for fuse.pc in /usr/local/lib/pkgconfig, where the recent version of OSXFuse (needed for Catalina) places this file.

Last edited 16 months ago by pmininni (Pablo Mininni) (previous) (diff)

comment:6 in reply to:  5 ; Changed 16 months ago by knightjp

Replying to pmininni:

I was able to build ntfs-3g in Catalina by installing the latest version of OSXFuse (3.10.3) from The ntfs-3g port doesn't require OSXFuse from Macports to build, just the fuse.pc file. I was able to build and install the ntfs-3g port, and it seems to work fine. Maybe the portfile can be modified to look for fuse.pc in /usr/local/lib/pkgconfig, where the recent version of OSXFuse (needed for Catalina) places this file.

If you installed ntfs-3g, how did you get around perl5.28? I understand that it has issues as well.

comment:7 in reply to:  6 ; Changed 16 months ago by pmininni (Pablo Mininni)

Replying to knightjp:

If you installed ntfs-3g, how did you get around perl5.28? I understand that it has issues as well.

I had no problem with perl5.28 (@5.28.2_0). From what I can see, the latest Portfile already has implemented the "use_parallel_build no" fix reported in #59207. Try cleaning the port and reinstalling.

comment:8 in reply to:  5 Changed 16 months ago by knightjp

Replying to pmininni:

I was able to build ntfs-3g in Catalina by installing the latest version of OSXFuse (3.10.3) from https://github.com/osxfuse/osxfuse/releases, and then doing:

sudo ln -s /usr/local/lib/pkgconfig/fuse.pc /opt/local/lib/pkgconfig/fuse.pc
sudo port install ntfs-3g

I have FUSE (3.10.3) installed. I tried the command that you mentioned. It doesn't work. All I get is

ln: /opt/local/lib/pkgconfig/fuse.pc: No such file or directory

Any ideas?

comment:9 in reply to:  7 ; Changed 16 months ago by knightjp

Replying to pmininni:

Replying to knightjp:

If you installed ntfs-3g, how did you get around perl5.28? I understand that it has issues as well.

I had no problem with perl5.28 (@5.28.2_0). From what I can see, the latest Portfile already has implemented the "use_parallel_build no" fix reported in #59207. Try cleaning the port and reinstalling.

After installing ntfs, I have another issue with using the commands on this link.

wiki:howto/Ntfs3gFinder

When I use this command,

sudo mv /sbin/mount_ntfs /sbin/mount_ntfs.orig

I get this error.

mv: rename /sbin/mount_ntfs to /sbin/mount_ntfs.orig: Read-only file system
Last edited 15 months ago by ryandesign (Ryan Schmidt) (previous) (diff)

comment:10 in reply to:  9 Changed 16 months ago by pmininni (Pablo Mininni)

Replying to knightjp:

After installing ntfs, I have another issue with using the commands on this link.

wiki:howto/Ntfs3gFinder

When I use this command,

sudo mv /sbin/mount_ntfs /sbin/mount_ntfs.orig

I get this error.

mv: rename /sbin/mount_ntfs to /sbin/mount_ntfs.orig: Read-only file system

This is caused by the security changes in Catalina. The system is now in a read-only file system. You can manually mount NTFS filesystems from the command line. Or, if you want to have NTFS filesystems showing up automatically in Finder (with write permission), you have to do some extra work. Besides disabling (temporarily) SIP with the command "csrutil disable", you also have to unlock the volume so you can write to it. The following link explains how to do it:

https://github.com/osxfuse/osxfuse/wiki/NTFS-3G#auto-mount-ntfs-volumes-in-read-write-mode-on-macos-1015-catalina

I haven't tried it yet, but I would follow these instructions only to enable writing to the filesystem (i.e., disabling SIP, unlocking the volume, and re-enabling SIP). I would not do a symbolic link ("ln -s") as suggested there, as linking to a file outside /sbin can create a security issue. Instead, I will do what is suggested in wiki:howto/Ntfs3gFinder: You back-up /sbin/mount_ntfs and then create a new /sbin/mount_ntfs with the script provided in wiki:howto/Ntfs3gFinder.

Last edited 15 months ago by ryandesign (Ryan Schmidt) (previous) (diff)

comment:11 Changed 15 months ago by raulofpandora

Same happens here trying to install encfs using macports, it needs osxfuse, but doesn't compile.

I installed FUSE for macOS 3.10.3 from its page, created the suggested soft links, but encfs doesn't detect it and macports try to compile osxfuse unsuccessfully.

Any thoughts?

comment:12 in reply to:  3 Changed 15 months ago by ryandesign (Ryan Schmidt)

Replying to yan12125:

Per https://github.com/osxfuse/osxfuse/releases, Catalina support is available since 3.10.0, while the one in MacPorts is kept at 3.8.x as osxfuse is no longer an open source project since version 3.9.0 (1).

(1) https://github.com/osxfuse/osxfuse/issues/590.

This does not seem to be a valid justification to avoid updating the port in MacPorts. On Mavericks and later, we already download and install the signed binary from the developer, and don't build from source. There's no reason why we can't update to the latest version and continue to do that for Mavericks and later (or whatever minimum OS versions the latest release supports) and change the license to "Restrictive", while perhaps continuing to use the older BSD/APSL-licensed release for older macOS versions if needed.

comment:13 Changed 15 months ago by mike-kfed (Michael Kefeder)

I found a mailinglist post with a hint how to fix the build

  1. run port install osxfuse (it will fail)
  2. open the file build.d/defaults.sh in your temporary build-dir e.g. sudo vim /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_fuse_osxfuse/osxfuse/work/osxfuse-osxfuse-48bc246//build.d/defaults.sh
  1. copy the 10.14 declarations and change to 10.15
    declare -ra DEFAULT_SDK_10_15_ARCHITECURES=("i386" "x86_64")
    declare -r  DEFAULT_SDK_10_15_COMPILER="com.apple.compilers.llvm.clang.1_0"
    
    declare -ra DEFAULT_SDK_SUPPORTED=("10.9" "10.10" "10.11" "10.12" "10.13" "10.15")
    
  1. save the file and
  2. run port install osxfuse again

comment:14 in reply to:  13 Changed 15 months ago by mike-kfed (Michael Kefeder)

Replying to mike-kfed: side note: I only needed it to install at all to build encfs (to have headers and stuff of osxfuse on my system). I uninstalled macports osxfuse and used their v3.10 binary provided at https://osxfuse.github.io/ for my catalina system. macports should provide a osxfuse-3.10 port

comment:15 Changed 15 months ago by andrey-popov (Andrey Popov)

Cc: andrey-popov added

comment:16 Changed 15 months ago by andrey-popov (Andrey Popov)

Cc: andrey-popov removed

comment:17 Changed 14 months ago by svalgaard (Jens Svalgaard Kohrt)

Cc: svalgaard added

comment:18 Changed 14 months ago by michaellass (Michael Lass)

Cc: michaellass added

comment:19 Changed 13 months ago by khepler

Cc: khepler added

comment:20 Changed 13 months ago by abusse (Anselm Busse)

Cc: abusse added

comment:21 Changed 12 months ago by jonnyflash-owlgod

Cc: jonnyflash-owlgod added

comment:22 Changed 12 months ago by MeNdMont (MeNdMont)

Cc: MeNdMont added

comment:23 Changed 12 months ago by dbarelop (Daniel Barea)

Cc: dbarelop added

comment:24 Changed 12 months ago by matt-hammond-bbc (Matt Hammond)

Cc: matt-hammond-bbc added

comment:25 Changed 10 months ago by tsjk (Tamas Jantvik)

On 10.15.4 with XCode 11.4, not only did I need to change defaults.sh, add

declare -ra DEFAULT_SDK_10_15_ARCHITECURES=("x86_64")
declare -r  DEFAULT_SDK_10_15_COMPILER="com.apple.compilers.llvm.clang.1_0"

and change to

declare -ra DEFAULT_SDK_SUPPORTED=("10.9" "10.10" "10.11" "10.12" "10.13" "10.14" "10.15")

I also had to patch /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_fuse_osxfuse/osxfuse/work/osxfuse-osxfuse-48bc246/build.d/lib/xcode.sh

line 93: sdk_version="`DEVELOPER_DIR="${xcode_path}" xcodebuild -version -sdk ${sdk_name} SDKVersion 2>&4`"

to drop the minor version output for sdk version, so it becomes sdk_version="`DEVELOPER_DIR="${xcode_path}" xcodebuild -version -sdk ${sdk_name} SDKVersion 2>&4 | cut -d'.' -f1-2`"

After these changes it installed successfully.

comment:26 Changed 10 months ago by tsjk (Tamas Jantvik)

I thought I was done, but to actually get it to work I also had to:

( cd "/opt/local/Library/Filesystems/osxfuse.fs/Contents/Extensions" && { [[ -d "10.15" ]] || sudo ln -sv "10.11" "10.15"; } ) && \
( cd "/Library/Extensions" && { [[ -d "osxfuse.kext" ]] || sudo ln -sv "/opt/local/Library/Filesystems/osxfuse.fs/Contents/Extensions/10.15/osxfuse.kext"; } ) && \
sudo kextcache -update-volume /

I guess the build/install scripts could be fixed to do that. After all this it seems to work. My use cases are rar2fs and encfs-devel (from github.com:tsjk/macports), which both work.

comment:27 Changed 9 months ago by d7gonzo (Ryan E. Johnson)

I can confirm that the fix reported by tsjk in comment 25 fixes the compilation error. The follow-up posted in comment 26 does not appear necessary for me to use osxfuse for my purposes with the testdisk port.

comment:28 Changed 9 months ago by dershow

Cc: dershow added

comment:29 Changed 8 months ago by rectalogic (Andrew Wason)

Cc: rectalogic added

comment:30 Changed 7 months ago by ryandesign (Ryan Schmidt)

Cc: jfb007 added
Summary: osxfuse @3.8.3: Build fails with SIGTERMosxfuse @3.8.3: Assertion 'common_is_variable DEFAULT_SDK_10_15_ARCHITECURES' failed

Has duplicate #60460.

comment:31 Changed 5 months ago by someuser12

I can confirm that the fix reported by tsjk in comments 25 and 26 works for me. For my purpose (the sshfs port), the first of the two symbolic links in comment 26 was necessary.

comment:32 Changed 4 months ago by ballapete (Peter Dyballa)

Cc: ballapete added

Changed 4 months ago by ballapete (Peter Dyballa)

Diff output to patch build.d/defaults.sh to work on Catalina, macOS 10.15.6

Changed 4 months ago by ballapete (Peter Dyballa)

Diff output to patch build.d/lib/xcode.sh to work on Catalina, macOS 10.15.6

comment:33 Changed 4 months ago by ballapete (Peter Dyballa)

I am not completely understanding Xcode. The build ends here:

RegisterExecutionPolicyException /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_fuse_osxfuse/osxfuse/work/framework/OSXFUSE.framework (in target 'OSXFUSE' from project 'OSXFUSE')
    cd /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_fuse_osxfuse/osxfuse/work/osxfuse-osxfuse-48bc246/framework
    builtin-RegisterExecutionPolicyException /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_fuse_osxfuse/osxfuse/work/framework/OSXFUSE.framework

Touch /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_fuse_osxfuse/osxfuse/work/framework/OSXFUSE.framework (in target 'OSXFUSE' from project 'OSXFUSE')
    cd /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_fuse_osxfuse/osxfuse/work/osxfuse-osxfuse-48bc246/framework
    /usr/bin/touch -c /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_fuse_osxfuse/osxfuse/work/framework/OSXFUSE.framework

** BUILD SUCCEEDED **

T:framework          | ^[[mCompleted action build^[[0m
/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_fuse_osxfuse/osxfuse/work/osxfuse-osxfuse-48bc246/build.d/targets/packagemanager.sh: line 148: -bINSTALL_PATH=/opt/local/Library/Frameworks: No such file or directory
T:framework          | ^[[mSource target framework^[[0m
T:framework          | ^[[mInvoke action install^[[0m

I presume the text "INSTALL_PATH=" should be a SPACE character…

Changed 4 months ago by ballapete (Peter Dyballa)

Corrected version of diff output to patch build.d/targets/release.sh to work on Catalina, macOS 10.15.6

comment:34 Changed 4 months ago by ballapete (Peter Dyballa)

By adding to the post-extract clause the line

system -W ${workpath}/pkg/Core.pkg/Library/Filesystems/osxfuse.fs/Contents/Extensions "ln -s 10.11 ${workpath}/pkg/Core.pkg/Library/Filesystems/osxfuse.fs/Contents/Extensions/10.15"

a missing sym-link is created. This can also be corrected by updating the osxfuse-3.8.3.dmg archive. It's a bit old and not prepared for Catalina. The missing sym-link

/Library/Extensions/osxfuse.kext -> /opt/local/Library/Filesystems/osxfuse.fs/Contents/Extensions/10.15/osxfuse.kext

obviously cannot be created by port because it lies outside /opt.

Last edited 4 months ago by ballapete (Peter Dyballa) (previous) (diff)

comment:35 Changed 4 months ago by mf2k (Frank Schima)

Owner: drkp deleted

comment:36 Changed 3 months ago by astrofitz (Michael Fitzgerald)

Cc: astrofitz added

comment:37 in reply to:  34 ; Changed 2 months ago by ylluminarious (George Plymale II)

Replying to ballapete:

I tried your patches for macOS 10.15.6 and none of them have worked for me on 10.15.7.

Have you updated them for the new 15.7 minor release? I'd like to be able to upgrade osxfuse if possible. Also, does anyone know when this issue might get fixed?

comment:38 in reply to:  37 Changed 2 months ago by ballapete (Peter Dyballa)

Replying to ylluminarious:

Have you updated them for the new 15.7 minor release? I'd like to be able to upgrade osxfuse if possible. Also, does anyone know when this issue might get fixed?

That's bad! Last weekend I upgraded to Big Sur – and here I am fighting to get a TeX Live without old Python 2.7 and without old Perl 5.28.

comment:39 Changed 2 months ago by kencu (Ken)

This is all to be expected.

For a workflow-important system, you might wait three or six months to update to a new OS version.

My Ubuntu systems don't even show a new upgrade to LTS users who don't go looking for it until three months has gone by.

comment:40 Changed 2 months ago by p-bro

Cc: p-bro added

comment:41 Changed 4 weeks ago by doeringudh

I got it to work on macOS 10.15.7. The root cause for the breakage seems to be the release of Xcode 12.3. It introduces SDK 11.1, the version for Big Sur, I presume, and this one is now the default SDK even on Catalina. Besides the usual changes in osxfuse for additional SDKs there is a change of semantics for the "PAGE_SIZE" C macro.

"PAGE_SIZE" is no longer a constant but instead points to a variable now, so it cannot be used to initialize global variables any more. The compiler error message hints at this, and I found the definition in "/Library/Developer/CommandLineTools/SDKs/MacOSX11.1.sdk/usr/include/mach/i386/vm_param.h". I opted for changing the code in osxfuse accordingly (if a little hacky), since I regard this as more future-proof. Or one could also define the macro "__MAC_OS_X_VERSION_MIN_REQUIRED" to be lower than "101600" to get the old semantics.

Instead of adding more individual patch files to this thread and thereby increasing the confusion about what is needed and what isn't to get it working, I will add an attachment with the complete modified port structure. Plug-and-Play. I set it up on my Mac as a local repo, according to these instructions: https://guide.macports.org/chunked/development.local-repositories.html. For the complete picture, make a recursive diff between the ports in the macports and the local repo. The only thing that still has to be done manually is creating the symlink in "/Library/Extensions".

Last edited 4 weeks ago by doeringudh (previous) (diff)

Changed 4 weeks ago by doeringudh

Attachment: fuse-osxfuse.tar.gz added

Complete port structure for macOS 10.15.7

comment:42 Changed 4 weeks ago by doeringudh

Cc: doeringudh added

comment:43 Changed 4 weeks ago by kencu (Ken)

the current release of osxfuse is 4.04. It is closed source now, so can't be built in MacPorts.

All users on current systems should uninstall MacPorts old osxfuse and go install the binary if they want a current fuse.

Whether there is a reason to keep this old fuse version around at all for older systems is unclear.

comment:44 Changed 4 weeks ago by doeringudh

All good and well, but before all other ports depending directly on the "osxfuse" port (e.g. "encfs") instead of the presence of the respective shared library get reworked, installing the proprietary version is not enough. The scope of my patch is to only fix the breakage that macOS 10.15.7, or rather Xcode 12.3, have caused. Everything else is up to the official macports maintainers.

comment:45 Changed 4 weeks ago by kencu (Ken)

There are no official macports maintainers for osxfuse any more -- the port is now abandoned.

I see there are a number of modules that depend on osxfuse. This is an issue now. Assuming those modules are still useful, we would have to -- most likely -- come up with a binary-only install of osxfuse like homebrew did, and install that to support those ports.

I don't use osxfuse much -- ideally someone who did would take this project up -- but in the absence of anyone stepping forward, making a port that installs the binary is usually not too hard.

comment:46 Changed 4 weeks ago by doeringudh

I myself certainly do not have the time to officially take over the maintainership of this port. I am not a macOS developer. Professionally, I am rooted in the UNIX/Linux server realm. Close enough, but still not the same. However, if someone could point me to another port where such a binary-only install gets done already, I might be able to adapt it, without first having to wade through MacPorts' port building documentation, and contribute it once.

Note: See TracTickets for help on using tickets.