dat: Sodium Native Error on Mac OSX

I am reporting:

Bug Report

Please give us details about your installation to assist you. Run dat -v to see the version of Dat you are using.

  • Operating system: Mac OS 10.8.5
  • Node Version: v10.15.3
  • Dat Version: dat@13.13.0

Expected behavior

Actual behavior

Running dat share ne generates errors:

→ dat share ne
dyld: lazy symbol binding failed: Symbol not found: _memset_s
  Referenced from: /Users/dmitrizaitsev/.npm-global/lib/node_modules/dat/node_modules/sodium-native/prebuilds/darwin-x64/libsodium.dylib
  Expected in: /usr/lib/libSystem.B.dylib

dyld: Symbol not found: _memset_s
  Referenced from: /Users/dmitrizaitsev/.npm-global/lib/node_modules/dat/node_modules/sodium-native/prebuilds/darwin-x64/libsodium.dylib
  Expected in: /usr/lib/libSystem.B.dylib

Trace/BPT trap: 5

Debug Logs

→ DEBUG=dat* dat share ne
  dat Dat DEBUG mode engaged, enabling quiet mode +0ms
  dat dat 13.13.0 +7ms
  dat node v10.15.3 +0ms
  dat Sharing archive { _: [ 'ne' ],
  utp: true,
  debug: false,
  quiet: true,
  sparse: false,
  import: true,
  ignoreHidden: true,
  'ignore-hidden': true,
  watch: true,
  logspeed: 400,
  dir: 'ne' } +0ms
dyld: lazy symbol binding failed: Symbol not found: _memset_s
  Referenced from: /Users/dmitrizaitsev/.npm-global/lib/node_modules/dat/node_modules/sodium-native/prebuilds/darwin-x64/libsodium.dylib
  Expected in: /usr/lib/libSystem.B.dylib

dyld: Symbol not found: _memset_s
  Referenced from: /Users/dmitrizaitsev/.npm-global/lib/node_modules/dat/node_modules/sodium-native/prebuilds/darwin-x64/libsodium.dylib
  Expected in: /usr/lib/libSystem.B.dylib

Trace/BPT trap: 5

About this issue

  • Original URL
  • State: closed
  • Created 5 years ago
  • Comments: 16 (1 by maintainers)

Most upvoted comments

@dmitriz It’s not as much about Apple as it is an update to your standard library. It may be possible to do on your own without upgrading the OS, but I don’t know how. Sometimes you also have to assume so basic level of support 😃 The function in question is a secure way to wipe sensitive material and we can’t support systems that don’t have it. memset_s was introduced with the C11 standard

@dmitriz Fire up your Linux machine and run DAT on that (I do) 😃 DAT is in no way limited to Apple’s platforms. Running the latest version of your operating system is just a basic security practice and no project has the resources to support older versions of multiple operating systems ad infinitum. Hope you get it running and enjoy using DAT.

Fair enough. Just wanted to report my error here to help others rather than try it myself if that requires any major time investment and risk… such as running updates to slow down my computer, as happened to my other Macs… the change in performance was massive, a lesson not to repeat 😃.

@dmitriz Fire up your Linux machine and run DAT on that (I do) 😃 DAT is in no way limited to Apple’s platforms. Running the latest version of your operating system is just a basic security practice and no project has the resources to support older versions of multiple operating systems ad infinitum. Hope you get it running and enjoy using DAT.

@aral 10 is fine, i think we need to update sodium for 12 tho.