On Tue, Nov 5, 2013 at 5:56 AM, <openda...@hushmail.com> wrote: > Hi, > > I'm trying to install the Fibers (https://npmjs.org/package/fibers) Node > module on OpenBSD but it seems to be failing. I contacted the author and he > told me to check the bindings.gyp file: > > Anything here OpenBSD might react to? > > % cat .npm/fibers/1.0.1/package/binding.gyp > { > 'target_defaults': { > 'default_configuration': 'Release', > 'configurations': { > 'Release': { > 'cflags': [ '-O3' ], > 'xcode_settings': { > 'GCC_OPTIMIZATION_LEVEL': '3', > 'GCC_GENERATE_DEBUGGING_SYMBOLS': > 'NO', > }, > 'msvs_settings': { > 'VCCLCompilerTool': { > 'Optimization': 3, > 'FavorSizeOrSpeed': 1, > }, > }, > } > }, > }, > 'targets': [ > { > 'target_name': 'fibers', > 'sources': [ > 'src/fibers.cc', > 'src/coroutine.cc', > 'src/libcoro/coro.c', > # Rebuild on header changes > 'src/coroutine.h', > 'src/libcoro/coro.h', > ], > 'cflags!': ['-ansi'], > 'conditions': [ > ['OS == "win"', > {'defines': ['CORO_FIBER', > 'WINDOWS']}, > # else > { > 'defines': ['USE_CORO', > 'CORO_GUARDPAGES=1'], > 'ldflags': ['-pthread'], > } > ], > ['OS == "linux" or OS == "solaris" or OS == > "sunos" or OS == "freebsd"', {'defines': ['CORO_UCONTEXT']}], > ['OS == "mac"', {'defines': ['CORO_SJLJ']}], > ['OS == "openbsd"', {'defines': > ['CORO_ASM']}], > ['target_arch == "arm"', > { > # There's been problems > getting real fibers working on arm > 'defines': ['CORO_PTHREAD'], > 'defines!': ['CORO_UCONTEXT', > 'CORO_SJLJ', 'CORO_ASM'], > }, > ], > ], > }, > ], > } > > Here is the build error itself: > > % npm install fibers > npm http GET https://registry.npmjs.org/fibers > npm http 304 https://registry.npmjs.org/fibers > >> fibers@1.0.1 install /home/opendaddy/myapp/node_modules/fibers >> node ./build.js > > gmake: Entering directory `/home/opendaddy/myapp/node_modules/fibers/build' > g++ '-D_LARGEFILE_SOURCE' '-D_FILE_OFFSET_BITS=64' '-DUSE_CORO' > '-DCORO_GUARDPAGES=1' '-DCORO_UCONTEXT' '-DBUILDING_NODE_EXTENSION' > -I/home/opendaddy/.node-gyp/0.8.18/src > -I/home/opendaddy/.node-gyp/0.8.18/deps/uv/include > -I/home/opendaddy/.node-gyp/0.8.18/deps/v8/include -I/usr/include -fPIC > -Wall -pthread -m64 -O2 -fno-strict-aliasing -fno-tree-vrp -fno-tree-sink > -fno-rtti -fno-exceptions -MMD -MF > ./Release/.deps/Release/obj.target/fibers/src/fibers.o.d.raw -c -o > Release/obj.target/fibers/src/fibers.o ../src/fibers.cc > In file included from ../src/coroutine.h:4, > from ../src/fibers.cc:1: > ../src/libcoro/coro.h:321:23: warning: ucontext.h: No such file or directory > g++ '-D_LARGEFILE_SOURCE' '-D_FILE_OFFSET_BITS=64' '-DUSE_CORO' > '-DCORO_GUARDPAGES=1' '-DCORO_UCONTEXT' '-DBUILDING_NODE_EXTENSION' > -I/home/opendaddy/.node-gyp/0.8.18/src > -I/home/opendaddy/.node-gyp/0.8.18/deps/uv/include > -I/home/opendaddy/.node-gyp/0.8.18/deps/v8/include -I/usr/include -fPIC > -Wall -pthread -m64 -O2 -fno-strict-aliasing -fno-tree-vrp -fno-tree-sink > -fno-rtti -fno-exceptions -MMD -MF > ./Release/.deps/Release/obj.target/fibers/src/coroutine.o.d.raw -c -o > Release/obj.target/fibers/src/coroutine.o ../src/coroutine.cc > In file included from ../src/coroutine.h:4, > from ../src/coroutine.cc:1: > ../src/libcoro/coro.h:321:23: warning: ucontext.h: No such file or directory > ../src/coroutine.cc: In member function 'void > Coroutine::transfer(Coroutine&)': > ../src/coroutine.cc:152: error: 'swapcontext' was not declared in this scope > gmake: *** [Release/obj.target/fibers/src/coroutine.o] Error 1 > gmake: Leaving directory `/home/opendaddy/myapp/node_modules/fibers/build' > gyp ERR! build error > gyp ERR! stack Error: `gmake` failed with exit code: 2 > gyp ERR! stack at ChildProcess.onExit > (/usr/local/lib/node_modules/node-gyp/lib/build.js:257:23) > gyp ERR! stack at ChildProcess.EventEmitter.emit (events.js:99:17) > gyp ERR! stack at Process.ChildProcess._handle.onexit > (child_process.js:678:10) > gyp ERR! System OpenBSD 5.3 > gyp ERR! command "node" > "/usr/local/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" > "rebuild" > gyp ERR! cwd /home/opendaddy/myapp/node_modules/fibers > gyp ERR! node -v v0.8.18 > gyp ERR! node-gyp -v v0.8.2 > gyp ERR! not ok > Build failed > npm ERR! fibers@1.0.1 install: `node ./build.js` > npm ERR! `sh "-c" "node ./build.js"` failed with 1 > npm ERR! > npm ERR! Failed at the fibers@1.0.1 install script. > npm ERR! This is most likely a problem with the fibers package, > npm ERR! not with npm itself. > npm ERR! Tell the author that this fails on your system: > npm ERR! node ./build.js > npm ERR! You can get their info via: > npm ERR! npm owner ls fibers > npm ERR! There is likely additional logging output above. > > npm ERR! System OpenBSD 5.3 > npm ERR! command "/usr/local/bin/node" "/usr/local/bin/npm" "install" "fibers" > npm ERR! cwd /home/opendaddy/myapp > npm ERR! node -v v0.8.18 > npm ERR! npm -v 1.2.2 > npm ERR! code ELIFECYCLE > npm ERR! > npm ERR! Additional logging details can be found in: > npm ERR! /home/opendaddy/myapp/npm-debug.log > npm ERR! not ok code 0 > > Thanks. > > O.D. >
-- re sending to list -- The problem is because node's gyp was not taught (my bad - I fixed it for next release) what OpenBSD boxes are. To fix it - simply `pkg_add gyp` (obviously you will need to have PKG_PATH set). Once gyp is installed the "['OS == "openbsd"', {'defines': ['CORO_ASM']}]," line will actually be picked up.