Giter Club home page Giter Club logo

openshift-cartridge-nodejs's Introduction

Custom Node.js cartridge for OpenShift

nodejs-openshift

This is a custom Node.js cartridge that takes care of auto-updating the Node.js and NPM versions on each build.

Why

Because the standard OpenShift cartridge never gets updated to the latest Node.js version.

When to use

When you need a quick and unsophisticated solution to run your application on the latest Node.js version.

Note: Looking for (co-)maintainers

A lot of people have been using this cartridge since the beginning of 2015. Thank you all for your PRs and moral support.

However, since I'm not using OpenShift in my projects anymore, there's now little reason for me to maintain this repository as well as it probably deserves.

So, if anyone is willing and ready to step up and become a maintainer, please don't hesitate to drop me a line!

How to

The lazy way

Just click here:

Create Node.js app on OpenShift

…or deploy from the OpenShift Hub Quickstart.

Go to Choose a type of application in your OpenShift Online account, paste the URL below into "Code Anything" textbox at the bottom of the page, click "Next", then set your public URL and click "Create Application".

https://raw.githubusercontent.com/icflorescu/openshift-cartridge-nodejs/master/metadata/manifest.yml

Using command line

Assuming you have rhc installed (see here), run:

rhc app create appname https://raw.githubusercontent.com/icflorescu/openshift-cartridge-nodejs/master/metadata/manifest.yml

…where appname is the name of your application.

If you want to create the app with your own source code instead of the provided application template, run:

rhc app create appname \
  https://raw.githubusercontent.com/icflorescu/openshift-cartridge-nodejs/master/metadata/manifest.yml \
  --from-code=https://github.com/you/your-repo.git

…where https://github.com/you/your-repo.git is your application repository URL.

Make sure your app has the appropriate start entry in package.json (see note below).

You can also create an app based on multiple cartridges. For instance, assuming you'd want to include this custom MongoDB cartridge as well, run:

rhc app create appname \
  https://raw.githubusercontent.com/icflorescu/openshift-cartridge-nodejs/master/metadata/manifest.yml \
  https://raw.githubusercontent.com/icflorescu/openshift-cartridge-mongodb/master/metadata/manifest.yml

See output of rhc app create --help for information on additional options.

Customizing the Node.js and npm versions

Node.js

By default, the Node.js version is determined by querying semver.io/node/unstable.

A different URL can be specified either via NODE_VERSION_URL environment variable or by setting .openshift/NODE_VERSION_URL marker in your application repository. For instance, you'd get the latest 0.10.x (0.10.41 as of Jan 24, 2015) by putting this in NODE_VERSION_URL variable or .openshift/NODE_VERSION_URL marker:

https://semver.io/node/resolve/0.10

If you're using a non-default Node.js version and you're planning to scale the application across multiple gears, you must use the environment variable (learn here why).

npm

By default, the npm version is determined by running npm view npm version.

A different npm version can be specified either via NPM_VERSION_URL environment variable or by setting .openshift/NPM_VERSION_URL marker in your application repository. For instance, you'd get the latest 2.x (2.14.16 as of Jan 24, 2016) by putting this in NPM_VERSION_URL variable or .openshift/NPM_VERSION_URL marker:

https://semver.io/npm/resolve/2

Features

  • The cartridge build script is using this function to check for the latest Node.js and npm versions and installs them if necessary;
  • This cartridge can be scaled;
  • This cartridge does not (yet?) have a hot-deploy strategy.

Notes

  • Can't guarantee this cartridge is production-ready. Some people use it though (on their own responsibility).
  • This is a lean cartridge. No unnecessary modules are installed. Which means that unlike the standard Node.js cartridge – it won't install supervisor for you. You'll have to implement your own logic to auto-restart on errors. The provided application template is using cluster for that.
  • The cartridge emulates the execution of npm start to start your application, so make sure your application entrypoint is defined in your start script of your package.json file. See package.json in the provided template or read the npm docs for more information. See a discussion here to learn why the cartridge is emulating npm start instead of actually running it.
  • The cartridge also emulates the execution of npm stop if the script is found in your package.json file. Otherwise, a SIGTERM is sent to the running process using kill.
  • Due to OpenShift's outdated gcc (4.4.7 as of Jan 4 2016), native modules (such as pg-native) won't compile on recent Node.js versions. They'll only work on Node.js 0.10 and 0.12. See this issue for more info.
  • Upon cartridge initialization, the Node.js binary package is downloaded and installed, which may take a while, depending on OpenShift server and network load. 2 - 3 minutes is quite often, but 5 - 10 minutes is not uncommon, especially for scalable multi-gear setups (if you specified "Scale with web traffic").
  • The cartridge automatically installs the npm dependencies as needed on each build/deploy event; devDependencies are not installed (see an in-depth discussion here).

FAQ

Q: I'm getting the error Cannot download, must be smaller than 20480 bytes while trying to deploy the cartridge to OpenShift. What am I doing wrong?

A: You're probably trying to use the URL https://github.com/icflorescu/openshift-cartridge-nodejs instead of https://raw.githubusercontent.com/icflorescu/openshift-cartridge-nodejs/master/metadata/manifest.yml. A common mistake for people not paying sufficient attention while trying to use a custom cartridge for the first time.


Q: The latest Node.js version is 5.3.0, but the cartridge installs 5.1.1. Isn't it supposed to install the latest?

A: By default, the Node.js version is determined by querying semver.io/node/unstable (see the top of this README). For reasons which escape me, semver.io is not updating instantly the latest version, but you can force the cartridge to install it by putting, for instance, https://semver.io/node/resolve/5.3.x in NODE_VERSION_URL environment variable or .openshift/NODE_VERSION_URL file.


Q: How do I disable the auto-update feature? I want to lock my application to specific Node.js and npm versions.

A: Just set the necessary environment variables or markers to the versions you need. For instance, you can lock your application to Node.js 4.3.2 and npm 3.6.0 by setting:

NODE_VERSION_URL=https://semver.io/node/resolve/4.3.2
NPM_VERSION_URL=https://semver.io/npm/resolve/3.6.0

Q: Sometimes, git push fails with:

remote: CLIENT_MESSAGE: Stopping Node.js application...
remote: CLIENT_RESULT: Warning! Could not stop Node.js application!
remote: An error occurred executing 'gear prereceive' (exit code: 1)
remote: Error message: CLIENT_ERROR: Failed to execute: 'control stop' for /var/lib/openshift/[...]/nodejs
remote:
remote: For more details about the problem, try running the command again with the '--trace' option.
To ssh://[...].git/
 ! [remote rejected] master -> master (pre-receive hook declined)
error: failed to push some refs to 'ssh://[...].git/'

What's wrong?

A: Your application may take longer than 60 seconds to shutdown. Try to git push again until it works.


Q: I'm trying to use engines in package.json to specify node and npm versions, but it doesn't work. What do I have to do?

A: See @Spown's comment here.

Related

Since you're here, chances are you might also be interested in this custom MongoDB cartridge.

Before raising issues

I'm getting lots of questions from people just learning to do web development or simply looking to solve a very specific problem they're dealing with. While I will answer some of them for the benefit of the community, please understand that open-source is a shared effort and it's definitely not about piggybacking on other people's work. On places like GitHub, that means raising issues is encouraged, but coming up with useful PRs is a lot better. If I'm willing to share some of my code for free, I'm doing it for a number of reasons: my own intellectual challenges, pride, arrogance, stubbornness to believe I'm bringing a contribution to common progress and freedom, etc. Your particular well-being is probably not one of those reasons. I'm not in the business of providing free consultancy, so if you need my help to solve your specific problem, there's a fee for that.

Credits

See contributors here.

If you find this repo useful, don't hesitate to give it a star and spread the word.

License

The ISC License.

openshift-cartridge-nodejs's People

Contributors

4lejandrito avatar alexchesters avatar baskerville avatar burib avatar gochomugo avatar gregorifaroux avatar icflorescu avatar jonashavers avatar juodumas avatar kevinf15 avatar mik-jozef avatar phw avatar velichkov avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

openshift-cartridge-nodejs's Issues

Constant error during push - Failed to execute: 'control stop'

Hello,

I am constantly receiving below error during "git push". If i retry i succeed on one gear but it again failed on second gear and my repo changes are not synced. I tried increasing time in bin/control script from 60 to 120 but that didnt help. Interestingly, when i do rhc app-stop it stops the application well.
Do you have any suggestion or recommendation? I have nodejs on 2 gears which are load balanced using haproxy.

remote: An error occurred executing 'gear prereceive' (exit code: 1)
remote: Error message: CLIENT_ERROR: Failed to execute: 'control stop' for /var/lib/openshift/[...]/nodejs

Thanks!

No ".openshift" directory

When i do git clone ssh://app... there is no .openshift directory at the root.
Neither at $OPENSHIFT_REPO_DIR.
Just these

.git
static
utils
.eslintrc
app.js
package.json
start.js

I installed nodejs cartridge from the openshift web app.

TypeError: Cannot read property 'start' of undefined

When I push my code, I get:

remote: TypeError: Cannot read property 'start' of undefined
remote:     at [eval]:1:69
remote:     at Object.exports.runInThisContext (vm.js:54:17)
remote:     at Object.<anonymous> ([eval]-wrapper:6:22)
remote:     at Module._compile (module.js:425:26)
remote:     at node.js:589:27
remote:     at doNTCallback0 (node.js:430:9)
remote:     at process._tickCallback (node.js:359:13)
remote: [eval]:1
remote: var package = require("./package.json"); console.log(package.scripts.start);

I have create a dummy "start" in my package.json, but it did not solve the issue.

Error when updating cartridge

When pushing to the cartridge I get the following error:

remote: CLIENT_MESSAGE: Stopping Node.js application...
remote: CLIENT_RESULT: Warning! Could not stop Node.js application!
remote: An error occurred executing 'gear prereceive' (exit code: 1)

I'm going to assume this was introduced in #11

Allow specifying the npm version

It would be great if one could specify the npm version to use similar to how you can specify the node version with a semver URL in .openshift/NPM_VERSION_URL.

Error on clean install - OSE specific

I fresh install of this cartridge currently fails with the error: node: error while loading shared libraries: libuv.so.0.10: cannot open shared object file: No such file or directory I've used this cartridge a lot in the past without issue so I think this is something new. To reproduce just

rhc app create someapp https://raw.githubusercontent.com/icflorescu/openshift-cartridge-nodejs/master/metadata/manifest.yml

ssh in and type node

Question: auto restart if app crashes

I know there is no auto restart functionality to this cartridge; wondering if anyone have implemented it. It would be great if app starts upon certain exception.

Any pointer would help.

Tag info with Express

Apologies to start with (technically this isn't an issue) but a request for "How do I get this working". If you could give me a pointer, or suggest a better place to ask this I will do.

I've hooked up the default cartridge to use express which is all fine and dandy. In doing this I noticed a bunch of 404 errors which is the polling of the tag info. From my understanding this is polling through to an openshift internal URL which is providing some sort of information.

What I can't work out, is how do I "allow" these requests to go through, without express intercepting them and then rejecting them because there's no route set up? Or - do I need to set up a route and point it something else?

There are no cartridges that match 'https://raw.githubusercontent.com/icflorescu/openshift-cartridge-nodejs/master/metadata/manifest.yml'

Hi, I'm trying to do this:

If you want to create the app with your own source code instead of the provided application template, run:

rhc app create appname
https://raw.githubusercontent.com/icflorescu/openshift-cartridge-nodejs/master/metadata/manifest.yml
--from-code=https://github.com/you/your-repo.git

When I run it with my repo for source code provided it says

Short Name           Full name
==========           =========
10gen-mms-agent-0.1  10gen Mongo Monitoring Service Agent
cron-1.4             Cron 1.4
diy-0.1              Do-It-Yourself 0.1
jbossas-7            JBoss Application Server 7
jboss-dv-6.1.0       JBoss Data Virtualization 6
jbosseap-6           JBoss Enterprise Application Platform 6
jboss-unified-push-1 JBoss Unified Push Server 1.0.0.Beta1
jboss-unified-push-2 JBoss Unified Push Server 1.0.0.Beta2
jenkins-client-1     Jenkins Client
jenkins-1            Jenkins Server
mongodb-2.4          MongoDB 2.4
mysql-5.1            MySQL 5.1
mysql-5.5            MySQL 5.5
nodejs-0.10          Node.js 0.10
nodejs-0.6           Node.js 0.6
metrics-0.1          OpenShift Metrics 0.1
perl-5.10            Perl 5.10
php-5.3              PHP 5.3
zend-5.6             PHP 5.3 with Zend Server 5.6
php-5.4              PHP 5.4
zend-6.1             PHP 5.4 with Zend Server 6.1
phpmyadmin-4         phpMyAdmin 4.0
postgresql-8.4       PostgreSQL 8.4
postgresql-9.2       PostgreSQL 9.2
python-2.6           Python 2.6
python-2.7           Python 2.7
python-3.3           Python 3.3
rockmongo-1.1        RockMongo 1.1
ruby-1.8             Ruby 1.8
ruby-1.9             Ruby 1.9
ruby-2.0             Ruby 2.0
switchyard-0         SwitchYard 0.8.0
jbossews-1.0         Tomcat 6 (JBoss EWS 1.0)
jbossews-2.0         Tomcat 7 (JBoss EWS 2.0)
jboss-vertx-2.1      Vert.x 2.1
haproxy-1.4          Web Load Balancer
jboss-wildfly-10     WildFly Application Server 10
jboss-wildfly-8      WildFly Application Server 8.2.1.Final
jboss-wildfly-9      WildFly Application Server 9

There are no cartridges that match 'https://raw.githubusercontent.com/icflorescu/openshift-cartridge-nodejs/master/metadata/manifest.yml'.

"Force update"

I changed the NODE_VERSION_URL to 6.2.0, and restarted the app, but nothing updated.

Cartridge isn't updating with changes

When I push my changes up to the cartridge, this is my output:

remote: CLIENT_RESULT: Application is already stopped.
remote: Building git ref 'master', commit some commit
remote: CLIENT_RESULT: Node.js modules installed.
remote: Preparing build for deployment
remote: Deployment id is some id
remote: Activating deployment
remote: CLIENT_MESSAGE: Starting Node.js application...
remote: CLIENT_RESULT: Node.js application started.
remote: -------------------------
remote: Git Post-Receive Result: success
remote: Activation status: success
remote: Deployment completed with status: success

However my changes aren't taking effect, in order for my changes to take affect I have to ssh onto the machine and manually kill and restart the node server.

Problem with auto scaling

When scaling up an application with this cartridge, the newly instantiated gear will always install the latest node version regardless of the .openshift/NODE_VERSION_URL marker. This is because the gear is first setup and then the content is synced over. So during the setup the $OPENSHIFT_REPO_DIR is still empty.

I don't know yet how to properly solve this. I think the cartridge should check the and update the nodejs version in some other hook, but I have not found any good information what hooks are called in which order for newly setup scaled gears.

But I have a workaround implemented at phw@50469aa . This commit allows the node.js version be specified via the environment variable NODE_VERSION_URL. Since the environment is made available to new gears immediately it will be setup with the correct version.

support "stop" script

Over the weekend I worked on an application that needed to be stopped in a more precise manner. It was handled using the "stop" script. So I made some little tweaks on the control script to make it invoke the script rather than use kill.

Would you want me to push a PR your way?

Planned updates and potentially breaking changes

I'm thinking about adding a few potentially breaking changes and I need your feedback about this.

First, I'd like to rename the application entry-point from start.js to index.js, for better compatibility with development workflows / tools (i.e. lots of people are using nodemon in its "standard" configuration). I can't even remember why I used start.js initially, but it's kind of non-standard.

Second, I'd like to start the application (see this line in the control script) with node --use_strict. Lots of people are now using ES6 / ES7 (with or without babel) and having to add 'use strict' on top of every file is annoying.

And I'm also thinking about adding a better-looking application template in this folder. Nothing too fancy because we have to avoid installing tens of npms when provisioning the cartridge, but I'm thinking about displaying some useful info from os on a nice-looking background (artwork suggestions and/or submissions are welcome :-) ).

Of course, the aforementioned changes won't affect existing deployments.

Looking forward for your feedback...

control

Hello, i try git push my code in repo.
So when i do this i get message:

remote: [eval]:1
remote: var p = require('/var/lib/openshift/57265a5e0c1e66f1d2000029/app- root/runtime/repo//package.json'); console.log(p.scripts.start);
remote: ^
remote:
remote: TypeError: Cannot read property 'start' of undefined
remote: at [eval]:1:122
remote: at Object.exports.runInThisContext (vm.js:54:17)
remote: at Object. ([eval]-wrapper:6:22)
remote: at Module._compile (module.js:413:34)
remote: at node.js:290:27
remote: at _combinedTickCallback (internal/process/next_tick.js:67:7)
remote: at process._tickCallba1ck (internal/process/next_tick.js:98:9)
remote: CLIENT_MESSAGE: Stopping Node.js application...

I think problem in bin/control in '/' before package.json

START_COMMAND=$(node -e "var p = require('$OPENSHIFT_REPO_DIR/package.json'); console.log(p.scripts.start);")

so my $OPENSHIFT_REPO_DIR returns /var/lib/openshift/57265a5e0c1e66f1d2000029/app-root/runtime/repo/ and if add /package.json retuns error

Sorry for my English

Failed to execute: 'control start' for ...

When I try to deploy or start my app I get this error:

DL is deprecated, please use Fiddle
Starting Node.js application...
Failed to execute: 'control start' for /var/lib/openshift/57e71d342d5271b2ee0000e3/nodejs

Possible bug in bin/control

In bin/control, the function:

function start_command() {
  node -e 'var package = require("./package.json"); console.log(package.scripts.start);'
}

may fail with unpredictable results, depending on pwd (which may not always equal $OPENSHIFT_REPO_DIR?!).

Will push a fix in a few minutes.

HTTP error 503 while node.js is booting on a idle gear

Hi,

The control start only wait for node.js process to be spawned but don't wait for it to listen for incoming connections.
So when an idle gear is woken up, the first HTTP request reply too early and lead to 503 errors because of node.js not yet listening on port 8080.

Is the choice of control start to wait for the node.js process instead of the checking the 8080 port has a particular reason ?

For the record, the official node.js 0.10 cartridge wait for the 8080 to be listened.

Thanks

Mongoose module build error

Mongoose fails to build with this cartridge and Node.js 4.1.2

remote: CLIENT_MESSAGE: Stopping Node.js application...
remote: CLIENT_RESULT: Node.js application stopped.
remote: Building git ref 'master', commit c32cc00
remote: npm WARN package.json [email protected] No repository field.
remote: npm WARN package.json [email protected] No README data
remote:
remote: > [email protected] install /var/lib/openshift/561ab8d62d5271479e00002f/app-root/runtime/repo/node_modules/kerberos
remote: > (node-gyp rebuild) || (exit 0)
remote:
remote: gyp WARN EACCES user "undefined" does not have permission to access the dev dir "/var/lib/openshift/561ab8d62d5271479e00002f/.node-gyp/4.1.2"
remote: gyp WARN EACCES attempting to reinstall using temporary dev dir "/tmp/.node-gyp"
remote: make: Entering directory `/var/lib/openshift/561ab8d62d5271479e00002f/app-root/runtime/repo/node_modules/kerberos/build'
remote:   CXX(target) Release/obj.target/kerberos/lib/kerberos.o
remote: In file included from /tmp/.node-gyp/4.1.2/include/node/node.h:42,
remote:                  from ../lib/kerberos.h:4,
remote:                  from ../lib/kerberos.cc:1:
remote: /tmp/.node-gyp/4.1.2/include/node/v8.h:336: error: expected unqualified-id before 'using'
remote: /tmp/.node-gyp/4.1.2/include/node/v8.h: In constructor 'v8::MaybeLocal<T>::MaybeLocal()':
remote: /tmp/.node-gyp/4.1.2/include/node/v8.h:353: error: 'nullptr' was not declared in this scope
remote: /tmp/.node-gyp/4.1.2/include/node/v8.h: In member function 'bool v8::MaybeLocal<T>::IsEmpty() const':
remote: /tmp/.node-gyp/4.1.2/include/node/v8.h:360: error: 'nullptr' was not declared in this scope
remote: /tmp/.node-gyp/4.1.2/include/node/v8.h: In member function 'bool v8::MaybeLocal<T>::ToLocal(v8::Local<S>*) const':
remote: /tmp/.node-gyp/4.1.2/include/node/v8.h:364: error: 'nullptr' was not declared in this scope
remote: /tmp/.node-gyp/4.1.2/include/node/v8.h: In member function 'bool v8::WeakCallbackInfo<T>::IsFirstPass() const':
remote: /tmp/.node-gyp/4.1.2/include/node/v8.h:430: error: 'nullptr' was not declared in this scope
remote: /tmp/.node-gyp/4.1.2/include/node/v8.h: At global scope:
remote: /tmp/.node-gyp/4.1.2/include/node/v8.h:469: error: expected unqualified-id before 'using'
remote: /tmp/.node-gyp/4.1.2/include/node/v8.h: In constructor 'v8::Global<T>::Global()':
remote: /tmp/.node-gyp/4.1.2/include/node/v8.h:790: error: 'nullptr' was not declared in this scope
remote: /tmp/.node-gyp/4.1.2/include/node/v8.h: In constructor 'v8::Global<T>::Global(v8::Global<T>&&)':
remote: /tmp/.node-gyp/4.1.2/include/node/v8.h:815: error: 'nullptr' was not declared in this scope
remote: /tmp/.node-gyp/4.1.2/include/node/v8.h: In member function 'v8::Global<T>& v8::Global<T>::operator=(v8::Global<S>&&)':
remote: /tmp/.node-gyp/4.1.2/include/node/v8.h:827: error: 'nullptr' was not declared in this scope
remote: /tmp/.node-gyp/4.1.2/include/node/v8.h: At global scope:
remote: /tmp/.node-gyp/4.1.2/include/node/v8.h:852: error: expected unqualified-id before 'using'
remote: /tmp/.node-gyp/4.1.2/include/node/v8.h:1089: error: 'nullptr' was not declared in this scope
remote: /tmp/.node-gyp/4.1.2/include/node/v8.h:1095: error: 'nullptr' was not declared in this scope
remote: /tmp/.node-gyp/4.1.2/include/node/v8.h: In member function 'v8::MaybeLocal<v8::Object> v8::Function::NewInstance(v8::Local<v8::Context>) const':
remote: /tmp/.node-gyp/4.1.2/include/node/v8.h:3205: error: 'nullptr' was not declared in this scope
remote: /tmp/.node-gyp/4.1.2/include/node/v8.h: In member function 'v8::Local<T> v8::MaybeLocal<T>::ToLocalChecked()':
remote: /tmp/.node-gyp/4.1.2/include/node/v8.h:7151: error: 'nullptr' was not declared in this scope
remote: In file included from ../../nan/nan.h:182,
remote:                  from ../lib/kerberos.h:9,
remote:                  from ../lib/kerberos.cc:1:
remote: ../../nan/nan_maybe_43_inl.h: At global scope:
remote: ../../nan/nan_maybe_43_inl.h:13: error: expected unqualified-id before 'using'
remote: ../../nan/nan_maybe_43_inl.h:16: error: expected unqualified-id before 'using'
remote: ../../nan/nan_maybe_43_inl.h:19: error: expected initializer before '<' token
remote: ../../nan/nan_maybe_43_inl.h:24: error: expected initializer before '<' token
remote: ../../nan/nan_maybe_43_inl.h:31: error: expected initializer before '<' token
remote: ../../nan/nan_maybe_43_inl.h:36: error: expected initializer before '<' token
remote: ../../nan/nan_maybe_43_inl.h:41: error: expected initializer before '<' token
remote: ../../nan/nan_maybe_43_inl.h:46: error: expected initializer before '<' token
remote: ../../nan/nan_maybe_43_inl.h:51: error: expected initializer before '<' token
remote: ../../nan/nan_maybe_43_inl.h:60: error: expected initializer before '<' token
remote: ../../nan/nan_maybe_43_inl.h:65: error: expected initializer before '<' token
remote: ../../nan/nan_maybe_43_inl.h:70: error: expected initializer before '<' token
remote: ../../nan/nan_maybe_43_inl.h:77: error: expected initializer before '<' token
remote: ../../nan/nan_maybe_43_inl.h:84: error: expected initializer before '<' token
remote: ../../nan/nan_maybe_43_inl.h:92: error: expected initializer before '<' token
remote: ../../nan/nan_maybe_43_inl.h:99: error: expected initializer before '<' token
remote: ../../nan/nan_maybe_43_inl.h:109: error: expected initializer before '<' token
remote: ../../nan/nan_maybe_43_inl.h:115: error: expected initializer before '<' token
remote: ../../nan/nan_maybe_43_inl.h:119: error: expected initializer before '<' token
remote: ../../nan/nan_maybe_43_inl.h:126: error: expected initializer before '<' token
remote: ../../nan/nan_maybe_43_inl.h:131: error: expected initializer before '<' token
remote: ../../nan/nan_maybe_43_inl.h:136: error: expected initializer before '<' token
remote: ../../nan/nan_maybe_43_inl.h:140: error: expected initializer before '<' token
remote: ../../nan/nan_maybe_43_inl.h:146: error: expected initializer before '<' token
remote: ../../nan/nan_maybe_43_inl.h:151: error: expected initializer before '<' token
remote: ../../nan/nan_maybe_43_inl.h:157: error: expected initializer before '<' token
remote: ../../nan/nan_maybe_43_inl.h:163: error: expected initializer before '<' token
remote: ../../nan/nan_maybe_43_inl.h:169: error: expected initializer before '<' token
remote: ../../nan/nan_maybe_43_inl.h:175: error: expected initializer before '<' token
remote: ../../nan/nan_maybe_43_inl.h:181: error: expected initializer before '<' token
remote: ../../nan/nan_maybe_43_inl.h:187: error: expected initializer before '<' token
remote: ../../nan/nan_maybe_43_inl.h:195: error: expected initializer before '<' token
remote: ../../nan/nan_maybe_43_inl.h:202: error: expected initializer before '<' token
remote: ../../nan/nan_maybe_43_inl.h:206: error: expected initializer before '<' token
remote: ../../nan/nan_maybe_43_inl.h:210: error: expected initializer before '<' token
remote: ../../nan/nan_maybe_43_inl.h:214: error: expected initializer before '<' token
remote: ../../nan/nan_maybe_43_inl.h:218: error: expected initializer before '<' token
remote: In file included from ../../nan/nan.h:187,
remote:                  from ../lib/kerberos.h:9,
remote:                  from ../lib/kerberos.cc:1:
remote: ../../nan/nan_converters.h:14: error: ISO C++ forbids declaration of 'MaybeLocal' with no type
remote: ../../nan/nan_converters.h:14: error: expected ';' before '<' token
remote: ../../nan/nan_converters.h:16: error: ISO C++ forbids declaration of 'Maybe' with no type
remote: ../../nan/nan_converters.h:16: error: expected ';' before '<' token
remote: ../../nan/nan_converters.h:26: error: 'return_t' does not name a type
remote: ../../nan/nan_converters.h:27: error: 'return_t' does not name a type
remote: ../../nan/nan_converters.h:28: error: 'return_t' does not name a type
remote: ../../nan/nan_converters.h:29: error: 'return_t' does not name a type
remote: ../../nan/nan_converters.h:30: error: 'return_t' does not name a type
remote: ../../nan/nan_converters.h:31: error: 'return_t' does not name a type
remote: ../../nan/nan_converters.h:32: error: 'return_t' does not name a type
remote: ../../nan/nan_converters.h:42: error: 'return_t' does not name a type
remote: ../../nan/nan_converters.h:43: error: 'return_t' does not name a type
remote: ../../nan/nan_converters.h:44: error: 'return_t' does not name a type
remote: ../../nan/nan_converters.h:45: error: 'return_t' does not name a type
remote: ../../nan/nan_converters.h:46: error: 'return_t' does not name a type
remote: In file included from ../../nan/nan_converters.h:59,
remote:                  from ../../nan/nan.h:187,
remote:                  from ../lib/kerberos.h:9,
remote:                  from ../lib/kerberos.cc:1:
remote: ../../nan/nan_converters_43_inl.h:18: error: 'return_t' in class 'Nan::imp::ToFactory<v8::Boolean>' does not name a type
remote: ../../nan/nan_converters_43_inl.h:19: error: 'return_t' in class 'Nan::imp::ToFactory<v8::Number>' does not name a type
remote: ../../nan/nan_converters_43_inl.h:20: error: 'return_t' in class 'Nan::imp::ToFactory<v8::String>' does not name a type
remote: ../../nan/nan_converters_43_inl.h:21: error: 'return_t' in class 'Nan::imp::ToFactory<v8::Object>' does not name a type
remote: ../../nan/nan_converters_43_inl.h:22: error: 'return_t' in class 'Nan::imp::ToFactory<v8::Integer>' does not name a type
remote: ../../nan/nan_converters_43_inl.h:23: error: 'return_t' in class 'Nan::imp::ToFactory<v8::Uint32>' does not name a type
remote: ../../nan/nan_converters_43_inl.h:24: error: 'return_t' in class 'Nan::imp::ToFactory<v8::Int32>' does not name a type
remote: ../../nan/nan_converters_43_inl.h:34: error: 'return_t' in class 'Nan::imp::ToFactory<bool>' does not name a type
remote: ../../nan/nan_converters_43_inl.h:35: error: 'return_t' in class 'Nan::imp::ToFactory<double>' does not name a type
remote: ../../nan/nan_converters_43_inl.h:36: error: 'return_t' in class 'Nan::imp::ToFactory<long int>' does not name a type
remote: ../../nan/nan_converters_43_inl.h:37: error: 'return_t' in class 'Nan::imp::ToFactory<unsigned int>' does not name a type
remote: ../../nan/nan_converters_43_inl.h:38: error: 'return_t' in class 'Nan::imp::ToFactory<int>' does not name a type
remote: In file included from ../../nan/nan.h:188,
remote:                  from ../lib/kerberos.h:9,
remote:                  from ../lib/kerberos.cc:1:
remote: ../../nan/nan_new.h: In function 'v8::Local<T> Nan::imp::To(v8::Local<v8::Integer>) [with T = v8::Integer]':
remote: ../../nan/nan_new.h:21: error: no matching function for call to 'To(v8::Local<v8::Integer>&)'
remote: ../../nan/nan_new.h: In function 'v8::Local<T> Nan::imp::To(v8::Local<v8::Integer>) [with T = v8::Int32]':
remote: ../../nan/nan_new.h:28: error: no matching function for call to 'To(v8::Local<v8::Integer>&)'
remote: ../../nan/nan_new.h: In function 'v8::Local<T> Nan::imp::To(v8::Local<v8::Integer>) [with T = v8::Uint32]':
remote: ../../nan/nan_new.h:35: error: no matching function for call to 'To(v8::Local<v8::Integer>&)'
remote: ../../nan/nan_new.h: At global scope:
remote: ../../nan/nan_new.h:43: error: ISO C++ forbids declaration of 'MaybeLocal' with no type
remote: ../../nan/nan_new.h:43: error: expected ';' before '<' token
remote: ../../nan/nan_new.h:75: error: 'return_t' does not name a type
remote: ../../nan/nan_new.h:141: error: 'return_t' does not name a type
remote: ../../nan/nan_new.h:147: error: 'return_t' does not name a type
remote: ../../nan/nan_new.h:148: error: 'return_t' does not name a type
remote: ../../nan/nan_new.h:160: error: 'return_t' does not name a type
remote: ../../nan/nan_new.h:161: error: 'return_t' does not name a type
remote: ../../nan/nan_new.h:162: error: 'return_t' does not name a type
remote: ../../nan/nan_new.h:163: error: 'return_t' does not name a type
remote: ../../nan/nan_new.h:165: error: 'return_t' does not name a type
remote: ../../nan/nan_new.h:166: error: 'return_t' does not name a type
remote: ../../nan/nan_new.h:182: error: 'return_t' does not name a type
remote: ../../nan/nan_new.h:183: error: 'return_t' does not name a type
remote: In file included from ../../nan/nan_new.h:189,
remote:                  from ../../nan/nan.h:188,
remote:                  from ../lib/kerberos.h:9,
remote:                  from ../lib/kerberos.cc:1:
remote: ../../nan/nan_implementation_12_inl.h:56: error: 'return_t' in class 'Nan::imp::Factory<v8::Date>' does not name a type
remote: ../../nan/nan_implementation_12_inl.h: In static member function 'static v8::Local<v8::Function> Nan::imp::Factory<v8::Function>::New(void (*)(const Nan::FunctionCallbackInfo<v8::Value>&), v8::Local<v8::Value>)':
remote: ../../nan/nan_implementation_12_inl.h:90: error: 'NewInstance' was not declared in this scope
remote: ../../nan/nan_implementation_12_inl.h: In static member function 'static v8::Local<v8::FunctionTemplate> Nan::imp::Factory<v8::FunctionTemplate>::New(void (*)(const Nan::FunctionCallbackInfo<v8::Value>&), v8::Local<v8::Value>, v8::Local<v8::Signature>)':
remote: ../../nan/nan_implementation_12_inl.h:118: error: 'NewInstance' was not declared in this scope
remote: ../../nan/nan_implementation_12_inl.h: At global scope:
remote: ../../nan/nan_implementation_12_inl.h:197: error: 'return_t' in class 'Nan::imp::Factory<v8::RegExp>' does not name a type
remote: ../../nan/nan_implementation_12_inl.h:216: error: 'return_t' in class 'Nan::imp::Factory<v8::Script>' does not name a type
remote: ../../nan/nan_implementation_12_inl.h:222: error: 'return_t' in class 'Nan::imp::Factory<v8::Script>' does not name a type
remote: ../../nan/nan_implementation_12_inl.h:254: error: 'return_t' in class 'Nan::imp::Factory<v8::String>' does not name a type
remote: ../../nan/nan_implementation_12_inl.h:262: error: 'return_t' in class 'Nan::imp::Factory<v8::String>' does not name a type
remote: ../../nan/nan_implementation_12_inl.h:268: error: 'return_t' in class 'Nan::imp::Factory<v8::String>' does not name a type
remote: ../../nan/nan_implementation_12_inl.h:275: error: 'return_t' in class 'Nan::imp::Factory<v8::String>' does not name a type
remote: ../../nan/nan_implementation_12_inl.h:281: error: 'return_t' in class 'Nan::imp::Factory<v8::String>' does not name a type
remote: ../../nan/nan_implementation_12_inl.h:286: error: 'return_t' in class 'Nan::imp::Factory<v8::String>' does not name a type
remote: ../../nan/nan_implementation_12_inl.h:347: error: 'return_t' in class 'Nan::imp::Factory<v8::UnboundScript>' does not name a type
remote: ../../nan/nan_implementation_12_inl.h:354: error: 'return_t' in class 'Nan::imp::Factory<v8::UnboundScript>' does not name a type
remote: In file included from ../../nan/nan.h:188,
remote:                  from ../lib/kerberos.h:9,
remote:                  from ../lib/kerberos.cc:1:
remote: ../../nan/nan_new.h:291: error: 'return_t' in class 'Nan::imp::Factory<v8::String>' does not name a type
remote: ../../nan/nan_new.h:297: error: 'return_t' in class 'Nan::imp::Factory<v8::String>' does not name a type
remote: ../../nan/nan_new.h:303: error: 'return_t' in class 'Nan::imp::Factory<v8::String>' does not name a type
remote: ../../nan/nan_new.h:309: error: 'return_t' in class 'Nan::imp::Factory<v8::String>' does not name a type
remote: ../../nan/nan_new.h:315: error: 'return_t' in class 'Nan::imp::Factory<v8::String>' does not name a type
remote: ../../nan/nan_new.h:321: error: 'return_t' in class 'Nan::imp::Factory<v8::String>' does not name a type
remote: ../../nan/nan_new.h:327: error: 'return_t' in class 'Nan::imp::Factory<v8::RegExp>' does not name a type
remote: In file included from ../lib/kerberos.h:9,
remote:                  from ../lib/kerberos.cc:1:
remote: ../../nan/nan.h: In function 'v8::Local<v8::Value> Nan::Error(const char*)':
remote: ../../nan/nan.h:639: error: 'class v8::Local<v8::Boolean>' has no member named 'ToLocalChecked'
remote: ../../nan/nan.h: In function 'void Nan::ThrowError(const char*)':
remote: ../../nan/nan.h:639: error: 'class v8::Local<v8::Boolean>' has no member named 'ToLocalChecked'
remote: ../../nan/nan.h: In function 'v8::Local<v8::Value> Nan::RangeError(const char*)':
remote: ../../nan/nan.h:640: error: 'class v8::Local<v8::Boolean>' has no member named 'ToLocalChecked'
remote: ../../nan/nan.h: In function 'void Nan::ThrowRangeError(const char*)':
remote: ../../nan/nan.h:640: error: 'class v8::Local<v8::Boolean>' has no member named 'ToLocalChecked'
remote: ../../nan/nan.h: In function 'v8::Local<v8::Value> Nan::ReferenceError(const char*)':
remote: ../../nan/nan.h:641: error: 'class v8::Local<v8::Boolean>' has no member named 'ToLocalChecked'
remote: ../../nan/nan.h: In function 'void Nan::ThrowReferenceError(const char*)':
remote: ../../nan/nan.h:641: error: 'class v8::Local<v8::Boolean>' has no member named 'ToLocalChecked'
remote: ../../nan/nan.h: In function 'v8::Local<v8::Value> Nan::SyntaxError(const char*)':
remote: ../../nan/nan.h:642: error: 'class v8::Local<v8::Boolean>' has no member named 'ToLocalChecked'
remote: ../../nan/nan.h: In function 'void Nan::ThrowSyntaxError(const char*)':
remote: ../../nan/nan.h:642: error: 'class v8::Local<v8::Boolean>' has no member named 'ToLocalChecked'
remote: ../../nan/nan.h: In function 'v8::Local<v8::Value> Nan::TypeError(const char*)':
remote: ../../nan/nan.h:643: error: 'class v8::Local<v8::Boolean>' has no member named 'ToLocalChecked'
remote: ../../nan/nan.h: In function 'void Nan::ThrowTypeError(const char*)':
remote: ../../nan/nan.h:643: error: 'class v8::Local<v8::Boolean>' has no member named 'ToLocalChecked'
remote: ../../nan/nan.h: At global scope:
remote: ../../nan/nan.h:651: error: expected initializer before '<' token
remote: ../../nan/nan.h:673: error: expected initializer before '<' token
remote: ../../nan/nan.h:689: error: expected initializer before '<' token
remote: ../../nan/nan.h:702: error: expected initializer before '<' token
remote: ../../nan/nan.h:719: error: expected initializer before '<' token
remote: ../../nan/nan.h:725: error: expected initializer before '<' token
remote: ../../nan/nan.h:733: error: expected initializer before '<' token
remote: ../../nan/nan.h:740: error: expected initializer before '<' token
remote: ../../nan/nan.h:746: error: expected initializer before '<' token
remote: /tmp/.node-gyp/4.1.2/include/node/v8.h: In member function 'void Nan::Callback::SetFunction(const v8::Local<v8::Function>&)':
remote: /tmp/.node-gyp/4.1.2/include/node/v8.h:3021: error: argument dependent lookup finds 'class v8::Set'
remote: ../../nan/nan.h:1366: error:   in call to 'Set'
remote: ../../nan/nan.h: In member function 'void Nan::AsyncWorker::SaveToPersistent(const char*, const v8::Local<v8::Value>&)':
remote: ../../nan/nan.h:1488: error: 'class v8::Local<v8::Boolean>' has no member named 'ToLocalChecked'
remote: ../../nan/nan.h: In member function 'v8::Local<v8::Value> Nan::AsyncWorker::GetFromPersistent(const char*) const':
remote: ../../nan/nan.h:1506: error: 'class v8::Local<v8::Boolean>' has no member named 'ToLocalChecked'
remote: ../../nan/nan.h: In member function 'virtual void Nan::AsyncWorker::HandleErrorCallback()':
remote: ../../nan/nan.h:1540: error: no matching function for call to 'New(const char*)'
remote: ../../nan/nan.h: In function 'void Nan::SetMethod(const T&, const char*, void (*)(const Nan::FunctionCallbackInfo<v8::Value>&))':
remote: ../../nan/nan.h:1829: error: there are no arguments to 'GetFunction' that depend on a template parameter, so a declaration of 'GetFunction' must be available
remote: ../../nan/nan.h:1829: note: (if you use '-fpermissive', G++ will accept your code, but allowing the use of an undeclared name is deprecated)
remote: ../../nan/nan.h:1830: error: 'class v8::Local<v8::Boolean>' has no member named 'ToLocalChecked'
remote: ../../nan/nan.h: In function 'void Nan::SetPrototypeMethod(v8::Local<v8::FunctionTemplate>, const char*, void (*)(const Nan::FunctionCallbackInfo<v8::Value>&))':
remote: ../../nan/nan.h:1842: error: 'GetFunction' was not declared in this scope
remote: ../../nan/nan.h:1843: error: 'class v8::Local<v8::Boolean>' has no member named 'ToLocalChecked'
remote: ../../nan/nan.h: In function 'void Nan::SetAccessor(v8::Local<v8::ObjectTemplate>, v8::Local<v8::String>, void (*)(v8::Local<v8::String>, const Nan::PropertyCallbackInfo<v8::Value>&), void (*)(v8::Local<v8::String>, v8::Local<v8::Value>, const Nan::PropertyCallbackInfo<void>&), v8::Local<v8::Value>, v8::AccessControl, v8::PropertyAttribute, Nan::imp::Sig)':
remote: ../../nan/nan.h:1868: error: 'NewInstance' was not declared in this scope
remote: ../../nan/nan.h: In function 'bool Nan::SetAccessor(v8::Local<v8::Object>, v8::Local<v8::String>, void (*)(v8::Local<v8::String>, const Nan::PropertyCallbackInfo<v8::Value>&), void (*)(v8::Local<v8::String>, v8::Local<v8::Value>, const Nan::PropertyCallbackInfo<void>&), v8::Local<v8::Value>, v8::AccessControl, v8::PropertyAttribute)':
remote: ../../nan/nan.h:1911: error: 'NewInstance' was not declared in this scope
remote: ../../nan/nan.h: In function 'void Nan::SetNamedPropertyHandler(v8::Local<v8::ObjectTemplate>, void (*)(v8::Local<v8::String>, const Nan::PropertyCallbackInfo<v8::Value>&), void (*)(v8::Local<v8::String>, v8::Local<v8::Value>, const Nan::PropertyCallbackInfo<v8::Value>&), void (*)(v8::Local<v8::String>, const Nan::PropertyCallbackInfo<v8::Integer>&), void (*)(v8::Local<v8::String>, const Nan::PropertyCallbackInfo<v8::Boolean>&), void (*)(const Nan::PropertyCallbackInfo<v8::Array>&), v8::Local<v8::Value>)':
remote: ../../nan/nan.h:1959: error: 'NewInstance' was not declared in this scope
remote: ../../nan/nan.h: In function 'void Nan::SetIndexedPropertyHandler(v8::Local<v8::ObjectTemplate>, void (*)(uint32_t, const Nan::PropertyCallbackInfo<v8::Value>&), void (*)(uint32_t, v8::Local<v8::Value>, const Nan::PropertyCallbackInfo<v8::Value>&), void (*)(uint32_t, const Nan::PropertyCallbackInfo<v8::Integer>&), void (*)(uint32_t, const Nan::PropertyCallbackInfo<v8::Boolean>&), void (*)(const Nan::PropertyCallbackInfo<v8::Array>&), v8::Local<v8::Value>)':
remote: ../../nan/nan.h:2029: error: 'NewInstance' was not declared in this scope
remote: In file included from ../lib/kerberos.h:9,
remote:                  from ../lib/kerberos.cc:1:
remote: ../../nan/nan.h: In function 'void Nan::Export(Nan::ADDON_REGISTER_FUNCTION_ARGS_TYPE, const char*, void (*)(const Nan::FunctionCallbackInfo<v8::Value>&))':
remote: ../../nan/nan.h:2090: error: no matching function for call to 'New(const char*&)'
remote: ../../nan/nan.h:2091: error: 'GetFunction' was not declared in this scope
remote: /tmp/.node-gyp/4.1.2/include/node/v8.h:3021: error: argument dependent lookup finds 'class v8::Set'
remote: ../../nan/nan.h:2091: error:   in call to 'Set'
remote: ../../nan/nan.h: In constructor 'Nan::Tap::Tap(v8::Local<v8::Value>)':
remote: ../../nan/nan.h:2098: error: no matching function for call to 'To(v8::Local<v8::Value>&)'
remote: ../../nan/nan.h: In member function 'void Nan::Tap::ok(bool, const char*)':
remote: ../../nan/nan.h:2111: error: 'class v8::Local<v8::Boolean>' has no member named 'ToLocalChecked'
remote: ../../nan/nan.h: In member function 'void Nan::Tap::pass(const char*)':
remote: ../../nan/nan.h:2117: error: 'class v8::Local<v8::Boolean>' has no member named 'ToLocalChecked'
remote: ../lib/kerberos.cc: In static member function 'static void Kerberos::Initialize(Nan::ADDON_REGISTER_FUNCTION_ARGS_TYPE)':
remote: ../lib/kerberos.cc:74: error: no matching function for call to 'New(const char [9])'
remote: ../lib/kerberos.cc:89: error: no matching function for call to 'New(const char [9])'
remote: ../lib/kerberos.cc: In static member function 'static void Kerberos::After(uv_work_t*)':
remote: ../lib/kerberos.cc:842: error: no matching function for call to 'New(char*&)'
remote: ../lib/kerberos.cc:844: error: no matching function for call to 'New(const char [5])'
remote: make: Leaving directory `/var/lib/openshift/561ab8d62d5271479e00002f/app-root/runtime/repo/node_modules/kerberos/build'
remote: make: *** [Release/obj.target/kerberos/lib/kerberos.o] Error 1
remote: gyp ERR! build error
remote: gyp ERR! stack Error: `make` failed with exit code: 2
remote: gyp ERR! stack     at ChildProcess.onExit (/var/lib/openshift/561ab8d62d5271479e00002f/app-root/data/.nodejs/lib/node_modules/npm/node_modules/node-gyp/lib/build.js:270:23)
remote: gyp ERR! stack     at emitTwo (events.js:87:13)
remote: gyp ERR! stack     at ChildProcess.emit (events.js:172:7)
remote: gyp ERR! stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:200:12)
remote: gyp ERR! System Linux 2.6.32-504.34.1.el6.x86_64
remote: gyp ERR! command "/var/lib/openshift/561ab8d62d5271479e00002f/app-root/data/.nodejs/bin/node" "/var/lib/openshift/561ab8d62d5271479e00002f/app-root/data/.nodejs/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
remote: gyp ERR! cwd /var/lib/openshift/561ab8d62d5271479e00002f/app-root/runtime/repo/node_modules/kerberos
remote: gyp ERR! node -v v4.1.2
remote: gyp ERR! node-gyp -v v3.0.3
remote: gyp ERR! not ok
remote:
remote: > [email protected] install /var/lib/openshift/561ab8d62d5271479e00002f/app-root/runtime/repo/node_modules/kerberos
remote: > (node-gyp rebuild) || (exit 0)
remote:
remote: gyp WARN EACCES user "undefined" does not have permission to access the dev dir "/var/lib/openshift/561ab8d62d5271479e00002f/.node-gyp/4.1.2"
remote: gyp WARN EACCES attempting to reinstall using temporary dev dir "/tmp/.node-gyp"
remote: make: Entering directory `/var/lib/openshift/561ab8d62d5271479e00002f/app-root/runtime/repo/node_modules/kerberos/build'
remote:   CXX(target) Release/obj.target/kerberos/lib/kerberos.o
remote: In file included from /tmp/.node-gyp/4.1.2/include/node/node.h:42,
remote:                  from ../lib/kerberos.h:4,
remote:                  from ../lib/kerberos.cc:1:
remote: /tmp/.node-gyp/4.1.2/include/node/v8.h:336: error: expected unqualified-id before 'using'
remote: /tmp/.node-gyp/4.1.2/include/node/v8.h: In constructor 'v8::MaybeLocal<T>::MaybeLocal()':
remote: /tmp/.node-gyp/4.1.2/include/node/v8.h:353: error: 'nullptr' was not declared in this scope
remote: /tmp/.node-gyp/4.1.2/include/node/v8.h: In member function 'bool v8::MaybeLocal<T>::IsEmpty() const':
remote: /tmp/.node-gyp/4.1.2/include/node/v8.h:360: error: 'nullptr' was not declared in this scope
remote: /tmp/.node-gyp/4.1.2/include/node/v8.h: In member function 'bool v8::MaybeLocal<T>::ToLocal(v8::Local<S>*) const':
remote: /tmp/.node-gyp/4.1.2/include/node/v8.h:364: error: 'nullptr' was not declared in this scope
remote: /tmp/.node-gyp/4.1.2/include/node/v8.h: In member function 'bool v8::WeakCallbackInfo<T>::IsFirstPass() const':
remote: /tmp/.node-gyp/4.1.2/include/node/v8.h:430: error: 'nullptr' was not declared in this scope
remote: /tmp/.node-gyp/4.1.2/include/node/v8.h: At global scope:
remote: /tmp/.node-gyp/4.1.2/include/node/v8.h:469: error: expected unqualified-id before 'using'
remote: /tmp/.node-gyp/4.1.2/include/node/v8.h: In constructor 'v8::Global<T>::Global()':
remote: /tmp/.node-gyp/4.1.2/include/node/v8.h:790: error: 'nullptr' was not declared in this scope
remote: /tmp/.node-gyp/4.1.2/include/node/v8.h: In constructor 'v8::Global<T>::Global(v8::Global<T>&&)':
remote: /tmp/.node-gyp/4.1.2/include/node/v8.h:815: error: 'nullptr' was not declared in this scope
remote: /tmp/.node-gyp/4.1.2/include/node/v8.h: In member function 'v8::Global<T>& v8::Global<T>::operator=(v8::Global<S>&&)':
remote: /tmp/.node-gyp/4.1.2/include/node/v8.h:827: error: 'nullptr' was not declared in this scope
remote: /tmp/.node-gyp/4.1.2/include/node/v8.h: At global scope:
remote: /tmp/.node-gyp/4.1.2/include/node/v8.h:852: error: expected unqualified-id before 'using'
remote: /tmp/.node-gyp/4.1.2/include/node/v8.h:1089: error: 'nullptr' was not declared in this scope
remote: /tmp/.node-gyp/4.1.2/include/node/v8.h:1095: error: 'nullptr' was not declared in this scope
remote: /tmp/.node-gyp/4.1.2/include/node/v8.h: In member function 'v8::MaybeLocal<v8::Object> v8::Function::NewInstance(v8::Local<v8::Context>) const':
remote: /tmp/.node-gyp/4.1.2/include/node/v8.h:3205: error: 'nullptr' was not declared in this scope
remote: /tmp/.node-gyp/4.1.2/include/node/v8.h: In member function 'v8::Local<T> v8::MaybeLocal<T>::ToLocalChecked()':
remote: /tmp/.node-gyp/4.1.2/include/node/v8.h:7151: error: 'nullptr' was not declared in this scope
remote: In file included from ../../nan/nan.h:182,
remote:                  from ../lib/kerberos.h:9,
remote:                  from ../lib/kerberos.cc:1:
remote: ../../nan/nan_maybe_43_inl.h: At global scope:
remote: ../../nan/nan_maybe_43_inl.h:13: error: expected unqualified-id before 'using'
remote: ../../nan/nan_maybe_43_inl.h:16: error: expected unqualified-id before 'using'
remote: ../../nan/nan_maybe_43_inl.h:19: error: expected initializer before '<' token
remote: ../../nan/nan_maybe_43_inl.h:24: error: expected initializer before '<' token
remote: ../../nan/nan_maybe_43_inl.h:31: error: expected initializer before '<' token
remote: ../../nan/nan_maybe_43_inl.h:36: error: expected initializer before '<' token
remote: ../../nan/nan_maybe_43_inl.h:41: error: expected initializer before '<' token
remote: ../../nan/nan_maybe_43_inl.h:46: error: expected initializer before '<' token
remote: ../../nan/nan_maybe_43_inl.h:51: error: expected initializer before '<' token
remote: ../../nan/nan_maybe_43_inl.h:60: error: expected initializer before '<' token
remote: ../../nan/nan_maybe_43_inl.h:65: error: expected initializer before '<' token
remote: ../../nan/nan_maybe_43_inl.h:70: error: expected initializer before '<' token
remote: ../../nan/nan_maybe_43_inl.h:77: error: expected initializer before '<' token
remote: ../../nan/nan_maybe_43_inl.h:84: error: expected initializer before '<' token
remote: ../../nan/nan_maybe_43_inl.h:92: error: expected initializer before '<' token
remote: ../../nan/nan_maybe_43_inl.h:99: error: expected initializer before '<' token
remote: ../../nan/nan_maybe_43_inl.h:109: error: expected initializer before '<' token
remote: ../../nan/nan_maybe_43_inl.h:115: error: expected initializer before '<' token
remote: ../../nan/nan_maybe_43_inl.h:119: error: expected initializer before '<' token
remote: ../../nan/nan_maybe_43_inl.h:126: error: expected initializer before '<' token
remote: ../../nan/nan_maybe_43_inl.h:131: error: expected initializer before '<' token
remote: ../../nan/nan_maybe_43_inl.h:136: error: expected initializer before '<' token
remote: ../../nan/nan_maybe_43_inl.h:140: error: expected initializer before '<' token
remote: ../../nan/nan_maybe_43_inl.h:146: error: expected initializer before '<' token
remote: ../../nan/nan_maybe_43_inl.h:151: error: expected initializer before '<' token
remote: ../../nan/nan_maybe_43_inl.h:157: error: expected initializer before '<' token
remote: ../../nan/nan_maybe_43_inl.h:163: error: expected initializer before '<' token
remote: ../../nan/nan_maybe_43_inl.h:169: error: expected initializer before '<' token
remote: ../../nan/nan_maybe_43_inl.h:175: error: expected initializer before '<' token
remote: ../../nan/nan_maybe_43_inl.h:181: error: expected initializer before '<' token
remote: ../../nan/nan_maybe_43_inl.h:187: error: expected initializer before '<' token
remote: ../../nan/nan_maybe_43_inl.h:195: error: expected initializer before '<' token
remote: ../../nan/nan_maybe_43_inl.h:202: error: expected initializer before '<' token
remote: ../../nan/nan_maybe_43_inl.h:206: error: expected initializer before '<' token
remote: ../../nan/nan_maybe_43_inl.h:210: error: expected initializer before '<' token
remote: ../../nan/nan_maybe_43_inl.h:214: error: expected initializer before '<' token
remote: ../../nan/nan_maybe_43_inl.h:218: error: expected initializer before '<' token
remote: In file included from ../../nan/nan.h:187,
remote:                  from ../lib/kerberos.h:9,
remote:                  from ../lib/kerberos.cc:1:
remote: ../../nan/nan_converters.h:14: error: ISO C++ forbids declaration of 'MaybeLocal' with no type
remote: ../../nan/nan_converters.h:14: error: expected ';' before '<' token
remote: ../../nan/nan_converters.h:16: error: ISO C++ forbids declaration of 'Maybe' with no type
remote: ../../nan/nan_converters.h:16: error: expected ';' before '<' token
remote: ../../nan/nan_converters.h:26: error: 'return_t' does not name a type
remote: ../../nan/nan_converters.h:27: error: 'return_t' does not name a type
remote: ../../nan/nan_converters.h:28: error: 'return_t' does not name a type
remote: ../../nan/nan_converters.h:29: error: 'return_t' does not name a type
remote: ../../nan/nan_converters.h:30: error: 'return_t' does not name a type
remote: ../../nan/nan_converters.h:31: error: 'return_t' does not name a type
remote: ../../nan/nan_converters.h:32: error: 'return_t' does not name a type
remote: ../../nan/nan_converters.h:42: error: 'return_t' does not name a type
remote: ../../nan/nan_converters.h:43: error: 'return_t' does not name a type
remote: ../../nan/nan_converters.h:44: error: 'return_t' does not name a type
remote: ../../nan/nan_converters.h:45: error: 'return_t' does not name a type
remote: ../../nan/nan_converters.h:46: error: 'return_t' does not name a type
remote: In file included from ../../nan/nan_converters.h:59,
remote:                  from ../../nan/nan.h:187,
remote:                  from ../lib/kerberos.h:9,
remote:                  from ../lib/kerberos.cc:1:
remote: ../../nan/nan_converters_43_inl.h:18: error: 'return_t' in class 'Nan::imp::ToFactory<v8::Boolean>' does not name a type
remote: ../../nan/nan_converters_43_inl.h:19: error: 'return_t' in class 'Nan::imp::ToFactory<v8::Number>' does not name a type
remote: ../../nan/nan_converters_43_inl.h:20: error: 'return_t' in class 'Nan::imp::ToFactory<v8::String>' does not name a type
remote: ../../nan/nan_converters_43_inl.h:21: error: 'return_t' in class 'Nan::imp::ToFactory<v8::Object>' does not name a type
remote: ../../nan/nan_converters_43_inl.h:22: error: 'return_t' in class 'Nan::imp::ToFactory<v8::Integer>' does not name a type
remote: ../../nan/nan_converters_43_inl.h:23: error: 'return_t' in class 'Nan::imp::ToFactory<v8::Uint32>' does not name a type
remote: ../../nan/nan_converters_43_inl.h:24: error: 'return_t' in class 'Nan::imp::ToFactory<v8::Int32>' does not name a type
remote: ../../nan/nan_converters_43_inl.h:34: error: 'return_t' in class 'Nan::imp::ToFactory<bool>' does not name a type
remote: ../../nan/nan_converters_43_inl.h:35: error: 'return_t' in class 'Nan::imp::ToFactory<double>' does not name a type
remote: ../../nan/nan_converters_43_inl.h:36: error: 'return_t' in class 'Nan::imp::ToFactory<long int>' does not name a type
remote: ../../nan/nan_converters_43_inl.h:37: error: 'return_t' in class 'Nan::imp::ToFactory<unsigned int>' does not name a type
remote: ../../nan/nan_converters_43_inl.h:38: error: 'return_t' in class 'Nan::imp::ToFactory<int>' does not name a type
remote: In file included from ../../nan/nan.h:188,
remote:                  from ../lib/kerberos.h:9,
remote:                  from ../lib/kerberos.cc:1:
remote: ../../nan/nan_new.h: In function 'v8::Local<T> Nan::imp::To(v8::Local<v8::Integer>) [with T = v8::Integer]':
remote: ../../nan/nan_new.h:21: error: no matching function for call to 'To(v8::Local<v8::Integer>&)'
remote: ../../nan/nan_new.h: In function 'v8::Local<T> Nan::imp::To(v8::Local<v8::Integer>) [with T = v8::Int32]':
remote: ../../nan/nan_new.h:28: error: no matching function for call to 'To(v8::Local<v8::Integer>&)'
remote: ../../nan/nan_new.h: In function 'v8::Local<T> Nan::imp::To(v8::Local<v8::Integer>) [with T = v8::Uint32]':
remote: ../../nan/nan_new.h:35: error: no matching function for call to 'To(v8::Local<v8::Integer>&)'
remote: ../../nan/nan_new.h: At global scope:
remote: ../../nan/nan_new.h:43: error: ISO C++ forbids declaration of 'MaybeLocal' with no type
remote: ../../nan/nan_new.h:43: error: expected ';' before '<' token
remote: ../../nan/nan_new.h:75: error: 'return_t' does not name a type
remote: ../../nan/nan_new.h:141: error: 'return_t' does not name a type
remote: ../../nan/nan_new.h:147: error: 'return_t' does not name a type
remote: ../../nan/nan_new.h:148: error: 'return_t' does not name a type
remote: ../../nan/nan_new.h:160: error: 'return_t' does not name a type
remote: ../../nan/nan_new.h:161: error: 'return_t' does not name a type
remote: ../../nan/nan_new.h:162: error: 'return_t' does not name a type
remote: ../../nan/nan_new.h:163: error: 'return_t' does not name a type
remote: ../../nan/nan_new.h:165: error: 'return_t' does not name a type
remote: ../../nan/nan_new.h:166: error: 'return_t' does not name a type
remote: ../../nan/nan_new.h:182: error: 'return_t' does not name a type
remote: ../../nan/nan_new.h:183: error: 'return_t' does not name a type
remote: In file included from ../../nan/nan_new.h:189,
remote:                  from ../../nan/nan.h:188,
remote:                  from ../lib/kerberos.h:9,
remote:                  from ../lib/kerberos.cc:1:
remote: ../../nan/nan_implementation_12_inl.h:56: error: 'return_t' in class 'Nan::imp::Factory<v8::Date>' does not name a type
remote: ../../nan/nan_implementation_12_inl.h: In static member function 'static v8::Local<v8::Function> Nan::imp::Factory<v8::Function>::New(void (*)(const Nan::FunctionCallbackInfo<v8::Value>&), v8::Local<v8::Value>)':
remote: ../../nan/nan_implementation_12_inl.h:90: error: 'NewInstance' was not declared in this scope
remote: ../../nan/nan_implementation_12_inl.h: In static member function 'static v8::Local<v8::FunctionTemplate> Nan::imp::Factory<v8::FunctionTemplate>::New(void (*)(const Nan::FunctionCallbackInfo<v8::Value>&), v8::Local<v8::Value>, v8::Local<v8::Signature>)':
remote: ../../nan/nan_implementation_12_inl.h:118: error: 'NewInstance' was not declared in this scope
remote: ../../nan/nan_implementation_12_inl.h: At global scope:
remote: ../../nan/nan_implementation_12_inl.h:197: error: 'return_t' in class 'Nan::imp::Factory<v8::RegExp>' does not name a type
remote: ../../nan/nan_implementation_12_inl.h:216: error: 'return_t' in class 'Nan::imp::Factory<v8::Script>' does not name a type
remote: ../../nan/nan_implementation_12_inl.h:222: error: 'return_t' in class 'Nan::imp::Factory<v8::Script>' does not name a type
remote: ../../nan/nan_implementation_12_inl.h:254: error: 'return_t' in class 'Nan::imp::Factory<v8::String>' does not name a type
remote: ../../nan/nan_implementation_12_inl.h:262: error: 'return_t' in class 'Nan::imp::Factory<v8::String>' does not name a type
remote: ../../nan/nan_implementation_12_inl.h:268: error: 'return_t' in class 'Nan::imp::Factory<v8::String>' does not name a type
remote: ../../nan/nan_implementation_12_inl.h:275: error: 'return_t' in class 'Nan::imp::Factory<v8::String>' does not name a type
remote: ../../nan/nan_implementation_12_inl.h:281: error: 'return_t' in class 'Nan::imp::Factory<v8::String>' does not name a type
remote: ../../nan/nan_implementation_12_inl.h:286: error: 'return_t' in class 'Nan::imp::Factory<v8::String>' does not name a type
remote: ../../nan/nan_implementation_12_inl.h:347: error: 'return_t' in class 'Nan::imp::Factory<v8::UnboundScript>' does not name a type
remote: ../../nan/nan_implementation_12_inl.h:354: error: 'return_t' in class 'Nan::imp::Factory<v8::UnboundScript>' does not name a type
remote: In file included from ../../nan/nan.h:188,
remote:                  from ../lib/kerberos.h:9,
remote:                  from ../lib/kerberos.cc:1:
remote: ../../nan/nan_new.h:291: error: 'return_t' in class 'Nan::imp::Factory<v8::String>' does not name a type
remote: ../../nan/nan_new.h:297: error: 'return_t' in class 'Nan::imp::Factory<v8::String>' does not name a type
remote: ../../nan/nan_new.h:303: error: 'return_t' in class 'Nan::imp::Factory<v8::String>' does not name a type
remote: ../../nan/nan_new.h:309: error: 'return_t' in class 'Nan::imp::Factory<v8::String>' does not name a type
remote: ../../nan/nan_new.h:315: error: 'return_t' in class 'Nan::imp::Factory<v8::String>' does not name a type
remote: ../../nan/nan_new.h:321: error: 'return_t' in class 'Nan::imp::Factory<v8::String>' does not name a type
remote: ../../nan/nan_new.h:327: error: 'return_t' in class 'Nan::imp::Factory<v8::RegExp>' does not name a type
remote: In file included from ../lib/kerberos.h:9,
remote:                  from ../lib/kerberos.cc:1:
remote: ../../nan/nan.h: In function 'v8::Local<v8::Value> Nan::Error(const char*)':
remote: ../../nan/nan.h:639: error: 'class v8::Local<v8::Boolean>' has no member named 'ToLocalChecked'
remote: ../../nan/nan.h: In function 'void Nan::ThrowError(const char*)':
remote: ../../nan/nan.h:639: error: 'class v8::Local<v8::Boolean>' has no member named 'ToLocalChecked'
remote: ../../nan/nan.h: In function 'v8::Local<v8::Value> Nan::RangeError(const char*)':
remote: ../../nan/nan.h:640: error: 'class v8::Local<v8::Boolean>' has no member named 'ToLocalChecked'
remote: ../../nan/nan.h: In function 'void Nan::ThrowRangeError(const char*)':
remote: ../../nan/nan.h:640: error: 'class v8::Local<v8::Boolean>' has no member named 'ToLocalChecked'
remote: ../../nan/nan.h: In function 'v8::Local<v8::Value> Nan::ReferenceError(const char*)':
remote: ../../nan/nan.h:641: error: 'class v8::Local<v8::Boolean>' has no member named 'ToLocalChecked'
remote: ../../nan/nan.h: In function 'void Nan::ThrowReferenceError(const char*)':
remote: ../../nan/nan.h:641: error: 'class v8::Local<v8::Boolean>' has no member named 'ToLocalChecked'
remote: ../../nan/nan.h: In function 'v8::Local<v8::Value> Nan::SyntaxError(const char*)':
remote: ../../nan/nan.h:642: error: 'class v8::Local<v8::Boolean>' has no member named 'ToLocalChecked'
remote: ../../nan/nan.h: In function 'void Nan::ThrowSyntaxError(const char*)':
remote: ../../nan/nan.h:642: error: 'class v8::Local<v8::Boolean>' has no member named 'ToLocalChecked'
remote: ../../nan/nan.h: In function 'v8::Local<v8::Value> Nan::TypeError(const char*)':
remote: ../../nan/nan.h:643: error: 'class v8::Local<v8::Boolean>' has no member named 'ToLocalChecked'
remote: ../../nan/nan.h: In function 'void Nan::ThrowTypeError(const char*)':
remote: ../../nan/nan.h:643: error: 'class v8::Local<v8::Boolean>' has no member named 'ToLocalChecked'
remote: ../../nan/nan.h: At global scope:
remote: ../../nan/nan.h:651: error: expected initializer before '<' token
remote: ../../nan/nan.h:673: error: expected initializer before '<' token
remote: ../../nan/nan.h:689: error: expected initializer before '<' token
remote: ../../nan/nan.h:702: error: expected initializer before '<' token
remote: ../../nan/nan.h:719: error: expected initializer before '<' token
remote: ../../nan/nan.h:725: error: expected initializer before '<' token
remote: ../../nan/nan.h:733: error: expected initializer before '<' token
remote: ../../nan/nan.h:740: error: expected initializer before '<' token
remote: ../../nan/nan.h:746: error: expected initializer before '<' token
remote: /tmp/.node-gyp/4.1.2/include/node/v8.h: In member function 'void Nan::Callback::SetFunction(const v8::Local<v8::Function>&)':
remote: /tmp/.node-gyp/4.1.2/include/node/v8.h:3021: error: argument dependent lookup finds 'class v8::Set'
remote: ../../nan/nan.h:1366: error:   in call to 'Set'
remote: ../../nan/nan.h: In member function 'void Nan::AsyncWorker::SaveToPersistent(const char*, const v8::Local<v8::Value>&)':
remote: ../../nan/nan.h:1488: error: 'class v8::Local<v8::Boolean>' has no member named 'ToLocalChecked'
remote: ../../nan/nan.h: In member function 'v8::Local<v8::Value> Nan::AsyncWorker::GetFromPersistent(const char*) const':
remote: ../../nan/nan.h:1506: error: 'class v8::Local<v8::Boolean>' has no member named 'ToLocalChecked'
remote: ../../nan/nan.h: In member function 'virtual void Nan::AsyncWorker::HandleErrorCallback()':
remote: ../../nan/nan.h:1540: error: no matching function for call to 'New(const char*)'
remote: ../../nan/nan.h: In function 'void Nan::SetMethod(const T&, const char*, void (*)(const Nan::FunctionCallbackInfo<v8::Value>&))':
remote: ../../nan/nan.h:1829: error: there are no arguments to 'GetFunction' that depend on a template parameter, so a declaration of 'GetFunction' must be available
remote: ../../nan/nan.h:1829: note: (if you use '-fpermissive', G++ will accept your code, but allowing the use of an undeclared name is deprecated)
remote: ../../nan/nan.h:1830: error: 'class v8::Local<v8::Boolean>' has no member named 'ToLocalChecked'
remote: ../../nan/nan.h: In function 'void Nan::SetPrototypeMethod(v8::Local<v8::FunctionTemplate>, const char*, void (*)(const Nan::FunctionCallbackInfo<v8::Value>&))':
remote: ../../nan/nan.h:1842: error: 'GetFunction' was not declared in this scope
remote: ../../nan/nan.h:1843: error: 'class v8::Local<v8::Boolean>' has no member named 'ToLocalChecked'
remote: ../../nan/nan.h: In function 'void Nan::SetAccessor(v8::Local<v8::ObjectTemplate>, v8::Local<v8::String>, void (*)(v8::Local<v8::String>, const Nan::PropertyCallbackInfo<v8::Value>&), void (*)(v8::Local<v8::String>, v8::Local<v8::Value>, const Nan::PropertyCallbackInfo<void>&), v8::Local<v8::Value>, v8::AccessControl, v8::PropertyAttribute, Nan::imp::Sig)':
remote: ../../nan/nan.h:1868: error: 'NewInstance' was not declared in this scope
remote: ../../nan/nan.h: In function 'bool Nan::SetAccessor(v8::Local<v8::Object>, v8::Local<v8::String>, void (*)(v8::Local<v8::String>, const Nan::PropertyCallbackInfo<v8::Value>&), void (*)(v8::Local<v8::String>, v8::Local<v8::Value>, const Nan::PropertyCallbackInfo<void>&), v8::Local<v8::Value>, v8::AccessControl, v8::PropertyAttribute)':
remote: ../../nan/nan.h:1911: error: 'NewInstance' was not declared in this scope
remote: ../../nan/nan.h: In function 'void Nan::SetNamedPropertyHandler(v8::Local<v8::ObjectTemplate>, void (*)(v8::Local<v8::String>, const Nan::PropertyCallbackInfo<v8::Value>&), void (*)(v8::Local<v8::String>, v8::Local<v8::Value>, const Nan::PropertyCallbackInfo<v8::Value>&), void (*)(v8::Local<v8::String>, const Nan::PropertyCallbackInfo<v8::Integer>&), void (*)(v8::Local<v8::String>, const Nan::PropertyCallbackInfo<v8::Boolean>&), void (*)(const Nan::PropertyCallbackInfo<v8::Array>&), v8::Local<v8::Value>)':
remote: ../../nan/nan.h:1959: error: 'NewInstance' was not declared in this scope
remote: ../../nan/nan.h: In function 'void Nan::SetIndexedPropertyHandler(v8::Local<v8::ObjectTemplate>, void (*)(uint32_t, const Nan::PropertyCallbackInfo<v8::Value>&), void (*)(uint32_t, v8::Local<v8::Value>, const Nan::PropertyCallbackInfo<v8::Value>&), void (*)(uint32_t, const Nan::PropertyCallbackInfo<v8::Integer>&), void (*)(uint32_t, const Nan::PropertyCallbackInfo<v8::Boolean>&), void (*)(const Nan::PropertyCallbackInfo<v8::Array>&), v8::Local<v8::Value>)':
remote: ../../nan/nan.h:2029: error: 'NewInstance' was not declared in this scope
remote: In file included from ../lib/kerberos.h:9,
remote:                  from ../lib/kerberos.cc:1:
remote: ../../nan/nan.h: In function 'void Nan::Export(Nan::ADDON_REGISTER_FUNCTION_ARGS_TYPE, const char*, void (*)(const Nan::FunctionCallbackInfo<v8::Value>&))':
remote: ../../nan/nan.h:2090: error: no matching function for call to 'New(const char*&)'
remote: ../../nan/nan.h:2091: error: 'GetFunction' was not declared in this scope
remote: /tmp/.node-gyp/4.1.2/include/node/v8.h:3021: error: argument dependent lookup finds 'class v8::Set'
remote: ../../nan/nan.h:2091: error:   in call to 'Set'
remote: ../../nan/nan.h: In constructor 'Nan::Tap::Tap(v8::Local<v8::Value>)':
remote: ../../nan/nan.h:2098: error: no matching function for call to 'To(v8::Local<v8::Value>&)'
remote: ../../nan/nan.h: In member function 'void Nan::Tap::ok(bool, const char*)':
remote: ../../nan/nan.h:2111: error: 'class v8::Local<v8::Boolean>' has no member named 'ToLocalChecked'
remote: ../../nan/nan.h: In member function 'void Nan::Tap::pass(const char*)':
remote: ../../nan/nan.h:2117: error: 'class v8::Local<v8::Boolean>' has no member named 'ToLocalChecked'
remote: ../lib/kerberos.cc: In static member function 'static void Kerberos::Initialize(Nan::ADDON_REGISTER_FUNCTION_ARGS_TYPE)':
remote: ../lib/kerberos.cc:74: error: no matching function for call to 'New(const char [9])'
remote: ../lib/kerberos.cc:89: error: no matching function for call to 'New(const char [9])'
remote: ../lib/kerberos.cc: In static member function 'static void Kerberos::After(uv_work_t*)':
remote: ../lib/kerberos.cc:842: error: no matching function for call to 'New(char*&)'
remote: ../lib/kerberos.cc:844: error: no matching function for call to 'New(const char [5])'
remote: make: make: Leaving directory `/var/lib/openshift/561ab8d62d5271479e00002f/app-root/runtime/repo/node_modules/kerberos/build'
remote: *** [Release/obj.target/kerberos/lib/kerberos.o] Error 1
remote: gyp ERR! build error
remote: gyp ERR! stack Error: `make` failed with exit code: 2
remote: gyp ERR! stack     at ChildProcess.onExit (/var/lib/openshift/561ab8d62d5271479e00002f/app-root/data/.nodejs/lib/node_modules/npm/node_modules/node-gyp/lib/build.js:270:23)
remote: gyp ERR! stack     at emitTwo (events.js:87:13)
remote: gyp ERR! stack     at ChildProcess.emit (events.js:172:7)
remote: gyp ERR! stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:200:12)
remote: gyp ERR! System Linux 2.6.32-504.34.1.el6.x86_64
remote: gyp ERR! command "/var/lib/openshift/561ab8d62d5271479e00002f/app-root/data/.nodejs/bin/node" "/var/lib/openshift/561ab8d62d5271479e00002f/app-root/data/.nodejs/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
remote: gyp ERR! cwd /var/lib/openshift/561ab8d62d5271479e00002f/app-root/runtime/repo/node_modules/kerberos
remote: gyp ERR! node -v v4.1.2
remote: gyp ERR! node-gyp -v v3.0.3
remote: gyp ERR! not ok
remote: [email protected] /var/lib/openshift/561ab8d62d5271479e00002f/app-root/runtime/repo
remote: `-- [email protected]
remote:   +-- [email protected]
remote:   +-- [email protected]
remote:   +-- [email protected]
remote:   +-- [email protected]
remote:   +-- [email protected]
remote:   | +-- [email protected]
remote:   | +-- [email protected]
remote:   | | `-- [email protected]
remote:   | |   `-- [email protected]
remote:   | `-- [email protected]
remote:   |   +-- [email protected]
remote:   |   +-- [email protected]
remote:   |   +-- [email protected]
remote:   |   `-- [email protected]
remote:   +-- [email protected]
remote:   +-- [email protected]
remote:   +-- [email protected]
remote:   | +-- [email protected]
remote:   | `-- [email protected]
remote:   |   `-- [email protected]
remote:   +-- [email protected]
remote:   +-- [email protected]
remote:   +-- [email protected]
remote:   `-- [email protected]
remote:
remote: npm WARN EPACKAGEJSON [email protected] No repository field.
remote: CLIENT_RESULT: Node.js modules installed.
remote: Preparing build for deployment
remote: Deployment id is 24948628
remote: Activating deployment
remote: CLIENT_MESSAGE: Starting Node.js application...
remote: CLIENT_RESULT: Node.js application started.
remote: -------------------------
remote: Git Post-Receive Result: success
remote: Activation status: success
remote: Deployment completed with status: success

Creating a new application errors

The output from Openshift is the following

The initial build for the application failed: Shell command '/sbin/runuser -s /bin/sh 5684552c7628e1ecff0000bb -c "exec /usr/bin/runcon 'unconfined_u:system_r:openshift_t:s0:c3,c392' /bin/sh -c \"gear postreceive --init >> /tmp/initial-build.log 2>&1\""' returned an error. rc=255

Can't recognize Budo

main.js: 1st line: var budo = require('budo');

at Function.Module._resolveFilename (module.js:339:15)

at Function.Module._load (module.js:290:25)

at Module.require (module.js:367:17)

at require (internal/module.js:20:19)

at Object.<anonymous> (/var/lib/openshift/5738bca57628e1b375000185/app-root/runtime/repo/main.js:1:74)

at Module._compile (module.js:413:34)

at Object.Module._extensions..js (module.js:422:10)

at Module.load (module.js:357:32)

at Function.Module._load (module.js:314:12)

at Function.Module.runMain (module.js:447:10)

node_modules are not required

I'm trying to start the simplest HelloWorld application using the cartridge.
Here is the app-root:

app-root
    node_modules
        mod
            index.js
    index.js

index.js:

var mod = require("mod")
console.log(mod)

node_modules/mod/index.js:

module.exports = "hello world!"

After pushing it to Openshift get an error:

==> app-root/logs/nodejs.log <==
at Function.Module._resolveFilename (module.js:339:15)
at Function.Module._load (module.js:290:25)
at Module.require (module.js:367:17)
at require (internal/module.js:20:19)
at Object. (/var/lib/openshift/5761644a0c1e66259f0001da/app-root/runtime/repo/index.js:1:73)
at Module._compile (module.js:413:34)
at Object.Module._extensions..js (module.js:422:10)
at Module.load (module.js:357:32)
at Function.Module._load (module.js:314:12)
at Function.Module.runMain (module.js:447:10)

Using lsvia sshshows there is nothing in /var/lib/openshift/5761644a0c1e66259f0001da/app-root/runtime/repo/node_modules.
Please, explain me what's wrong as I'm a node.js begginner.
Highly appreciate your help.

Can't install a different Node.js version than 5.11.1

I run this command

NODE_VERSION_URL="https://semver.io/node/resolve/6.2.2" rhc app create stbackend \
https://raw.githubusercontent.com/icflorescu/openshift-cartridge-nodejs/master/metadata/manifest.yml

and I also tried to fork the repo and change the code within lib/util to

  # if [ -n "$NODE_VERSION_URL" ]; then
  #   local VERSION_URL=$NODE_VERSION_URL
  # elif [ -f "$OPENSHIFT_REPO_DIR/.openshift/NODE_VERSION_URL" ]; then
  #   local VERSION_URL=$(cat $OPENSHIFT_REPO_DIR/.openshift/NODE_VERSION_URL)
  # else
  #   local VERSION_URL="https://semver.io/node/stable"
  # fi
  VERSION_URL="https://semver.io/node/resolve/6.2.2"

I always get this output

The cartridge 'https://raw.githubusercontent.com/icflorescu/openshift-cartridge-nodejs/master/metadata/manifest.yml' will be downloaded and installed

Application Options
-------------------
Domain:     timaschew
Cartridges: https://raw.githubusercontent.com/icflorescu/openshift-cartridge-nodejs/master/metadata/manifest.yml
Gear Size:  default
Scaling:    no

Creating application 'stbackend' ... Starting Node.js application...
done

  Node.js v5.11.1 and NPM 3.10.3 installed.
Node.js application started.

How to disable strict-mode

Working on a legacy code that uses bcrypt, which causes this error on openshift
capture

Don't have time to edit bcrypt.. so, any suggestions?

Updating an already deployed app

When creating an app there is a message in yellow letters that says:

Downloaded cartridges do not receive updates automatically.

Their documentation is very vague and information is unrelated. Most people suggest deleting the app and recreating it just to update the cartridge.

Is there a way to update the cartridge manually?

Disable auto-update?

Is there a way to control when to update to latest or not? May be adding something to hook so that we can control what version of node gets installed?

node-gyp pakcage not installed

does node-gyp package installed on this cartridge?
i've create an app with this cartridge and my app need "bcrypt" package witch needs "node-gyp".
and i've got an error that says there is not "node-gyp" package installed - so app can't start.
so i've have to change from "bcrypt" to "bcrypt-nodejs" thats not depends on node-gyp.
additionaly : i can't install node-gyp manually by type : "npm install node-gyp" - throw permision err
note : i've create another app with "mongodb" package that depends on node-gyp and this time the app worked

error in sideband demultiplexer

I sometimes get this error during a push, an error in my sideband demultiplexer is just as annoying as one in my flux capacitor :/.

I see this is a git error but is it related to the cartridge?

Thanks

git -c diff.mnemonicprefix=false -c core.quotepath=false -c credential.helper=sourcetree push -v --tags origin refs/heads/master:refs/heads/master 
Pushing to ssh://xxxxxxxx
remote: Stopping NodeJS cartridge        
remote: Tue Jan 12 2016 17:35:10 GMT-0500 (EST): Stopping application 'api03' ...        
remote: Tue Jan 12 2016 17:35:12 GMT-0500 (EST): Stopped Node application 'api03'        
remote: Syncing git content to other proxy gears        
remote: Saving away previously installed Node modules        
remote: Building git ref 'master', commit d7456f9        
remote: 
remote:   - Checking to see if Node.js version 4.2.4 is installed ...         
remote:   - Node.js version 4.2.4 is already installed        
remote: Building NodeJS cartridge        
remote:   - PATH set to include custom node version (4.2.4) from        
remote:        /var/lib/openshift/5687b99a7628e1d706000009/app-root/data/node-v4.2.4-linux-x64/bin         
remote:     PATH = /var/lib/openshift/5687b99a7628e1d706000009/app-root/data/node-v4.2.4-linux-x64/bin:/var/lib/openshift/5687b99a7628e1d706000009/app-root/runtime/repo/node_modules/.bin:/var/lib/openshift/5687b99a7628e1d706000009//.node_modules/.bin:/opt/rh/nodejs010/root/usr/bin:/var/lib/openshift/5687b99a7628e1d706000009/haproxy/usr/bin:/bin:/usr/bin:/usr/sbin        
remote:   - Installing dependencies w/ new version of npm ...         
remote: 
remote: npm info it worked if it ends with ok        
remote: npm info using [email protected]        
remote: npm info using [email protected]        
remote: npm info preinstall [email protected]        
remote: npm info package.json [email protected] No README data        
remote: npm info package.json [email protected] No license field.        
remote: npm info package.json [email protected] No license field.        
remote: npm info package.json [email protected] license should be a valid SPDX license expression        
remote: npm info package.json [email protected] No license field.        
remote: npm info package.json [email protected] No license field.        
remote: npm info package.json [email protected] No license field.        
remote: npm info package.json [email protected] No license field.        
remote: npm info build /var/lib/openshift/5687b99a7628e1d706000009/app-root/runtime/repo        
remote: npm info linkStuff [email protected]        
remote: npm info build /var/lib/openshift/5687b99a7628e1d706000009/app-root/runtime/repo/node_modules/config-multipaas        
remote: npm info preinstall [email protected]        
remote: npm info linkStuff [email protected]        
remote: npm info install [email protected]        
remote: npm info postinstall [email protected]        
remote: npm info build /var/lib/openshift/5687b99a7628e1d706000009/app-root/runtime/repo/node_modules/restify        
remote: npm info preinstall [email protected]        
remote: npm info linkStuff [email protected]        
remote: npm info install [email protected]        
remote: npm info postinstall [email protected]        
remote: npm info install [email protected]        
remote: npm info postinstall [email protected]        
remote: npm info prepublish [email protected]        
remote: npm info ok         
remote: Preparing build for deployment        
remote: Deployment id is 955f4ccf        
remote: Activating deployment        
remote: HAProxy already running        
remote: CLIENT_RESULT: HAProxy instance is started        
remote:   - Checking to see if Node.js version 4.2.4 is installed ...         
remote:   - Node.js version 4.2.4 is already installed        
remote: 
remote:   - pre_start_nodejs: Adding Node.js version 4.2.4 binaries to path        
remote:   - PATH set to include custom node version (4.2.4) from        
remote:        /var/lib/openshift/5687b99a7628e1d706000009/app-root/data/node-v4.2.4-linux-x64/bin         
remote:     PATH = /var/lib/openshift/5687b99a7628e1d706000009/app-root/data/node-v4.2.4-linux-x64/bin:/var/lib/openshift/5687b99a7628e1d706000009/app-root/runtime/repo/node_modules/.bin:/var/lib/openshift/5687b99a7628e1d706000009//.node_modules/.bin:/opt/rh/nodejs010/root/usr/bin:/var/lib/openshift/5687b99a7628e1d706000009/haproxy/usr/bin:/bin:/usr/bin:/usr/sbin        
remote: Starting NodeJS cartridge        
remote: Tue Jan 12 2016 17:35:58 GMT-0500 (EST): Starting application 'api03' ...        
remote: Waiting for application port (8080) become available ...        
Connection to xxxxx.rhcloud.com closed by remote host.
fatal: The remote end hung up unexpectedly
error: error in sideband demultiplexer
To ssh://[email protected]/~/git/api03.git/
   b017ebf..d7456f9  master -> master
updating local tracking ref 'refs/remotes/origin/master'
error: failed to push some refs to 'ssh://[email protected]/~/git/api03.git/'
Completed with errors, see above

set NODE_PATH=.

in my package.json i have "start": "NODE_PATH=. NODE_ENV=production node app.js" ...
in /app-root/logs/nodejs.log line :
nohup: failed to run command `NODE_PATH=.': No such file or directory
how can i set NODE_PATH ?
should i remove " NODE_ENV=production " ?
I've created some question on stackoverflow- the Question

Version is not changing

I have created new application in openshift using Node.js Auto-Updating cartridge. After application is created its showing node version 5.11.1. However I want node version 5.0.0. I have made the necessary changes in .openshift/NODE_VERSION_URL. But still i see version 5.0.0 installed.
Have I done anything wrong or I forgot to do something. PFA screenshots.
node_version2
node_version1

README is out of date

As of 85fc08f the command the cartridge runs to start the node process is npm start, rather than node start.js. However the Notes section of the README still contains the old instructions.

ensured npm update

so I was playing with autoupdating node and npm versions through autogenerated from package.json env variables and at some point it installed node 4 and npm 1.1.37 (still don't get how) and aftarwards no further updating was possible and the deployment failed every time. Even when I corrected my NPM_VERSION_URL it just failed because apperantly you are using npm to update itself

so basically if it gets broken and fails to start once - it's lights out forever. Well fortunately in my case it wasn't really broken - it was just incompatable with node, so I had to fall back to [email protected], update to npm@~2.14, update back to node@~4.4, reinstall global modules manually... good times... But imagine if npm gets really broken for some reason. The whole gear dies.

Maybe it would be wiser to use some other updating method? maybe a sandboxed node+npm pack dedicated solely to updating npm? Or just like the node - through a dist archive?

Number of installs/deployments

The GitHub traffic stats are only available to repo owners, so I thought I should make this info public:

image

If my interpretation of the above figures is correct, lately there have been around 200 clones per day for this repo. Since I can't imagine people are deliberately cloning it just for the sake of it, most likely those clones represent actual cartridge deployments on OpenShift.

To a certain extent, this is good and unexpected news for me. This repo started in December 2014 as an afternoon project because I wasn't satisfied with the outdated Node.js versions offered by the "official" cartridges and I wasn't entirely satisfied with the existing alternative community-provided solutions back then.

Fast forward 18 months, I'm glad to learn that lots of people are actively using the cartridge. Most of them are doing it in their fun&learning projects and some have even used it for exciting and successful public projects.

While it certainly feels good to know that your open-sourced work brings a contribution to the community, I was also a bit saddened to learn that so many people fail to understand that open-source must be a shared effort, in the sense that if you're using someone else's work, you do have a moral obligation to contribute back and – if/when you're asking for new features, to do it in a civilised way. The fact that the author was willing to share some of her/his work for the benefit of the community certainly doesn't qualify other people to ask for free training, assistance or support.

I have no plans to request money from the users of this project, but due to a relatively large number of messages I received, a few weeks ago I decided to introduce a somehow sarcastic notice called "before raising issues" in the repo readme. It goes without saying that I'm still getting requests for free support...

So, even if you're raising a valid issue, please don't take it personally if you're not getting an instant reply from me. I might be offline for a while, dealing with other things, or otherwise caught in a commercial project (since everybody has to eat and I'm not making any money out of this one).

There are many much more successful open-source projects out there and I can only imagine the things their authors must put up with...

Enjoy coding, enjoy life, and thanks for reading!

Looking for feedback on changing the default URL to install the latest Node.js version

I'm not sure why, but semver.io is constantly lagging behind on correctly reporting the latest Node.js version.

As of June 21st 2016, semver.io/node/stable still says 5.1.11, while in reality we're at 6.2.2, which I'd say is stable enough.

Therefore, I'm considering to switch the default semver URL to semver.io/node/resolve/6, which correctly reports 6.2.2, but I'll wait a couple of days for user feedback before proceeding.

Please note that you'll still be able to use 5.1.11, or generally lock your application to a specific version by expressly setting the NODE_VERSION_URL to something like https://semver.io/node/resolve/5.1.11.

use npm to start application

As noted in the Readme:

The cartridge emulates the execution of npm start to start your application, so make sure your application
entrypoint is defined in your start script of your package.json file. See package.json in the provided
template or read the npm docs for more information.

Some advantages of using npm directly would include:

  • automatically add node_modules/.bin to $PATH:

In addition to the shell's pre-existing PATH, npm run adds node_modules/.bin to the PATH provided to
scripts. Any binaries provided by locally-installed dependencies can be used without the
node_modules/.bin prefix.

https://docs.npmjs.com/cli/run-script

With the assumption that this emulation was meant to be similar to the actual npm start, the start command (in bin/control#L6),

START_COMMAND=$(node -e "var p = require('$OPENSHIFT_REPO_DIR/package.json'); console.log(p.scripts.start);")

could be enhanced to run npm:

START_COMMAND="npm start"

Since this command will be executed in the repository's working directory, we can be sure it will find a package.json to look for the scripts in.

Side note:

  • I noticed this when I tried to run forever app.js, but the application crashed as the forever command could not be found ($PATH did not include node_modules/.bin)

503

Hi there,

I have a nodejs repo on github that I used when setting up the nodejs(latest) cartridge on open shift. When I run it locally it works fine, but when I host it with open shift I get a 503.

Thanks

Instructions on how to set up

I am trying to set this up on Openshift. The instructions are not that clear of what needs to be done to get a working directory.

inter-device move failed

The error below was reported by @UberActivist, anyone else came across it so far?

oklkqtn

Don't have time to investigate right now, so any help would be appreciated. The problem looks like it's coming from here but I'm not sure why mv fails...

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.