processing / p5.js-editor

Deprecated desktop editor for p5.js
https://p5js.org
MIT License
338 stars 91 forks source link

Linux Support #217

Closed JobLeonard closed 8 years ago

JobLeonard commented 8 years ago

So, what is needed for proper Linux support?

I have little node and gulp experience, but am willing to try and help out; running Ubuntu 15.10 on my laptop here.

Testing shouldn't be too hard for me, but anything more than that will need a bit of guidance.

Cheers, Job

b2renger commented 8 years ago

+1

I'm in the same state of mind :)

autumna commented 8 years ago

+2 using 14.04. (with xfce)

lmccart commented 8 years ago

Hey all, thanks for your interest in helping here. I think the first steps we want to follow are like this:

  1. Get the app to compile and run.
  2. Test out the functionality, and document what doensn't work.
  3. Fix any bugs / non-working functionality.
  4. Modify the gulpfile to build a linux version, or determine if some other process is required.

Hope that helps!

JobLeonard commented 8 years ago

Ok, I gave it a shot! I followed the instructions of the readme, it basically timed out once I tried running gulp:

job@job-ThinkPad-T440s-Ubuntu ~/D/P/p/p5.js-editor>gulp
[13:14:05] Using gulpfile ~/Dev/Processing/p5js/p5.js-editor/gulpfile.js
[13:14:05] Starting 'copy-ffmpeg-default'...
copying ffmpegsumo to ./node_modules
[13:14:05] Finished 'copy-ffmpeg-default' after 7.35 ms
[13:14:05] Starting 'css'...
[13:14:05] Finished 'css' after 8.91 ms
[13:14:05] Starting 'browserify'...
[13:14:05] Finished 'browserify' after 4.44 ms
[13:14:05] Starting 'injected-js'...
[13:14:05] Starting 'watch'...
[13:14:05] Finished 'watch' after 31 ms
[13:14:05] Finished 'injected-js' after 82 ms
[13:14:05] Starting 'default'...
[13:14:05] Finished 'default' after 8.67 μs
[13:14:06] Starting 'browserify'...
[13:14:06] Finished 'browserify' after 1.87 ms

It has been stuck at this point for over an hour now. Killing it and trying again has the same results. Frustratingly, because it doesn't visibly crash I don't know what the problem is.

If I try to run npm run app (which of course won't work, but might give some info), I get:

> p5@0.5.10 app /home/job/Dev/Processing/p5js/p5.js-editor
> nw public

[10204:0325/150436:ERROR:browser_main_loop.cc(170)] Running without the SUID sandbox! See https://code.google.com/p/chromium/wiki/LinuxSUIDSandboxDevelopment for more information on developing with the sandbox on.
[10204:0325/150437:ERROR:nw_shell.cc(336)] TypeError: undefined is not a function
    at Object.8../files (file:///home/job/Dev/Processing/p5js/p5.js-editor/public/js/main.js:1043:11)
    at s (file:///home/job/Dev/Processing/p5js/p5.js-editor/public/js/main.js:1:220)
    at file:///home/job/Dev/Processing/p5js/p5.js-editor/public/js/main.js:1:271
    at Object.7../debug/index (file:///home/job/Dev/Processing/p5js/p5.js-editor/public/js/main.js:489:12)
    at s (file:///home/job/Dev/Processing/p5js/p5.js-editor/public/js/main.js:1:220)
    at e (file:///home/job/Dev/Processing/p5js/p5.js-editor/public/js/main.js:1:391)
    at file:///home/job/Dev/Processing/p5js/p5.js-editor/public/js/main.js:1:409
[10204:0325/150437:INFO:CONSOLE(1043)] "Uncaught TypeError: undefined is not a function", source: file:///home/job/Dev/Processing/p5js/p5.js-editor/public/js/main.js (1043)
lmccart commented 8 years ago

Argh sorry this is so frustrating to debug. I did open up main.js and found at line 1043:

if (!isWin) {
  menubar.createMacBuiltin("p5");
}

So this definitely seems wrong... Maybe one place to start would be to look through the codebase at this isWin var and maybe more properly name the var isMac, and then see where it plays out and make changes as necessary.

lmccart commented 8 years ago

FYI here's where that particular line in main.js gets generated from: https://github.com/processing/p5.js-editor/blob/master/app/menu.js#L7

As I search around for the definition of isWin it seems like this comes from one of the node_modules, but it seems likely there are also isMac and isLinux vars already defined that could be used:

/Users/lmccart/Documents/p5/p5.js-editor/dist/p5 - v0.5.10/osx64/p5.app/Contents/Resources/app.nw/js/main.js:
 7665  var os = (navigator.platform.match(/mac|win|linux/i) || ["other"])[0].toLowerCase();
 7666  var ua = navigator.userAgent;
 7667: exports.isWin = (os == "win");
 7668  exports.isMac = (os == "mac");
 7669  exports.isLinux = (os == "linux");
davejm commented 8 years ago

@lmccart Hi, I've been working on the linux support and have got it running on linux with npm run app. My dev branch is here: https://github.com/davejm/p5.js-editor/tree/linux-support . I haven't got a new ffmpegsumo library built for linux64 bit in there and the release seems a bit weird but everything else seems to work. Shall I create a pull request?

davejm commented 8 years ago

The build oddities were caused by me not having wine to update the windows build's icons. All works now. I can't see any problems. @JobLeonard can you test on your system to make sure?

lmccart commented 8 years ago

this is fantastic, nice work! yes, go ahead and submit a PR and I'll review and merge it in. if anyone else on linux has a moment to test as well, that'd be very helpful!

davejm commented 8 years ago

Hey @lmccart no problem. Submitted pull request #237. Sound doesn't work atm as I don't have the relevant custom built ffmpeg library but this can be copied from a linux version of Chrome, from a custom build of nw.js or from another project apparently according to this: https://github.com/nwjs/nw.js/wiki/Using-MP3-&-MP4-(H.264)-using-the--video--&--audio--tags. Anyway there's a note about that in the PR.

JobLeonard commented 8 years ago

Hey @davejm, thanks for working on this!

I'm getting this error when I try to run npm install in public, although I suspect that has more to do with my system:

> serialport@1.7.4 install /home/job/Dev/Processing/p5js/p5.js-editor/public/node_modules/serialport
> node-pre-gyp install --fallback-to-build

sh: 1: node-pre-gyp: not found
npm ERR! Linux 4.4.0-22-generic
npm ERR! argv "/usr/bin/nodejs" "/usr/bin/npm" "install"
npm ERR! node v4.4.4
npm ERR! npm  v2.15.1
npm ERR! file sh
npm ERR! code ELIFECYCLE
npm ERR! errno ENOENT
npm ERR! syscall spawn

npm ERR! serialport@1.7.4 install: `node-pre-gyp install --fallback-to-build`
npm ERR! spawn ENOENT
npm ERR! 
npm ERR! Failed at the serialport@1.7.4 install script 'node-pre-gyp install --fallback-to-build'.
npm ERR! This is most likely a problem with the serialport package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR!     node-pre-gyp install --fallback-to-build
npm ERR! You can get information on how to open an issue for this project with:
npm ERR!     npm bugs serialport
npm ERR! Or if that isn't available, you can get their info via:
npm ERR! 
npm ERR!     npm owner ls serialport
npm ERR! There is likely additional logging output above.

npm ERR! Please include the following file with any support request:
npm ERR!     /home/job/Dev/Processing/p5js/p5.js-editor/public/npm-debug.log
davejm commented 8 years ago

Thanks for testing @JobLeonard. Not sure what the problem is. I think that might be a native addon. Do you have the correct build tools for your distribution? If on debian/ubuntu do sudo apt-get install -y build-essential and try again. Also might be worth deleting the node_modules folder in public before you try again.

JobLeonard commented 8 years ago

Ok, so after a bit of googling, I learned that what you should never do on Debian- or Ubuntu-based distros, is install node from the default packages. Instead you should follow the instructions on the node website.

After fixing that, and giving this another go, I now get the following output on npm install:

job@job-ThinkPad-T440s-Ubuntu ~/D/P/p/p/public> npm install
npm WARN package.json p5@0.5.10 No description
npm WARN package.json p5@0.5.10 No repository field.
npm WARN package.json p5@0.5.10 No README data
npm WARN package.json p5@0.5.10 No license field.
npm ERR! Linux 4.4.0-22-generic
npm ERR! argv "/usr/bin/nodejs" "/usr/bin/npm" "install"
npm ERR! node v4.4.5
npm ERR! npm  v2.15.5
npm ERR! path /home/job/Dev/Processing/p5js/p5.js-editor/public/node_modules/serialport/node_modules/.bin/node-pre-gyp
npm ERR! code EACCES
npm ERR! errno -13
npm ERR! syscall unlink

npm ERR! Error: EACCES: permission denied, unlink '/home/job/Dev/Processing/p5js/p5.js-editor/public/node_modules/serialport/node_modules/.bin/node-pre-gyp'
npm ERR!     at Error (native)
npm ERR!  { [Error: EACCES: permission denied, unlink '/home/job/Dev/Processing/p5js/p5.js-editor/public/node_modules/serialport/node_modules/.bin/node-pre-gyp']
npm ERR!   errno: -13,
npm ERR!   code: 'EACCES',
npm ERR!   syscall: 'unlink',
npm ERR!   path: '/home/job/Dev/Processing/p5js/p5.js-editor/public/node_modules/serialport/node_modules/.bin/node-pre-gyp' }
npm ERR! 
npm ERR! Please try running this command again as root/Administrator.
npm ERR! error rolling back Error: EACCES: permission denied, unlink '/home/job/Dev/Processing/p5js/p5.js-editor/public/node_modules/serialport/node_modules/.bin/node-pre-gyp'
npm ERR! error rolling back     at Error (native)
npm ERR! error rolling back  { [Error: EACCES: permission denied, unlink '/home/job/Dev/Processing/p5js/p5.js-editor/public/node_modules/serialport/node_modules/.bin/node-pre-gyp']
npm ERR! error rolling back   errno: -13,
npm ERR! error rolling back   code: 'EACCES',
npm ERR! error rolling back   syscall: 'unlink',
npm ERR! error rolling back   path: '/home/job/Dev/Processing/p5js/p5.js-editor/public/node_modules/serialport/node_modules/.bin/node-pre-gyp' }

npm ERR! Please include the following file with any support request:
npm ERR!     /home/job/Dev/Processing/p5js/p5.js-editor/public/npm-debug.log
job@job-ThinkPad-T440s-Ubuntu ~/D/P/p/p/public> ls
boot.html  fonts/  images/  index.html*  js/  mode_assets/  node_modules/  npm-debug.log  package.json  serial.html
job@job-ThinkPad-T440s-Ubuntu ~/D/P/p/p/public> sudo rm -rf node_modules/
job@job-ThinkPad-T440s-Ubuntu ~/D/P/p/p/public> npm install
npm WARN package.json p5@0.5.10 No description
npm WARN package.json p5@0.5.10 No repository field.
npm WARN package.json p5@0.5.10 No README data
npm WARN package.json p5@0.5.10 No license field.
npm WARN deprecated wrench@1.5.9: wrench.js is deprecated! You should check out fs-extra (https://github.com/jprichardson/node-fs-extra) for any operations you were using wrench for. Thanks for all the usage over the years.
npm WARN optional dep failed, continuing fsevents@0.3.8
npm WARN deprecated graceful-fs@3.0.8: graceful-fs v3.0.0 and before will fail on node releases >= v7.0. Please update to graceful-fs@^4.0.0 as soon as possible. Use 'npm ls graceful-fs' to find it in the tree.
npm WARN installMany node-pre-gyp was bundled with serialport@1.7.4, but bundled package wasn't found in unpacked tree
|
> serialport@1.7.4 install /home/job/Dev/Processing/p5js/p5.js-editor/public/node_modules/serialport
> node-pre-gyp install --fallback-to-build

node-pre-gyp ERR! Tried to download: https://node-serialport.s3.amazonaws.com/serialport/v1.7.4/Release/node-v46-linux-x64.tar.gz 
node-pre-gyp ERR! Pre-built binaries not found for serialport@1.7.4 and node@4.4.5 (node-v46 ABI) (falling back to source compile with node-gyp) 
make: Entering directory '/home/job/Dev/Processing/p5js/p5.js-editor/public/node_modules/serialport/build'
  CXX(target) Release/obj.target/serialport/src/serialport.o
  CXX(target) Release/obj.target/serialport/src/serialport_unix.o
  CXX(target) Release/obj.target/serialport/src/serialport_poller.o
  SOLINK_MODULE(target) Release/obj.target/serialport.node
  COPY Release/serialport.node
  COPY /home/job/Dev/Processing/p5js/p5.js-editor/public/node_modules/serialport/build/serialport/v1.7.4/Release/node-v46-linux-x64/serialport.node
  TOUCH Release/obj.target/action_after_build.stamp
make: Leaving directory '/home/job/Dev/Processing/p5js/p5.js-editor/public/node_modules/serialport/build'

> bufferutil@1.2.1 install /home/job/Dev/Processing/p5js/p5.js-editor/public/node_modules/p5.serialserver/node_modules/ws/node_modules/bufferutil
> node-gyp rebuild

make: Entering directory '/home/job/Dev/Processing/p5js/p5.js-editor/public/node_modules/p5.serialserver/node_modules/ws/node_modules/bufferutil/build'
  CXX(target) Release/obj.target/bufferutil/src/bufferutil.o
  SOLINK_MODULE(target) Release/obj.target/bufferutil.node
  COPY Release/bufferutil.node
make: Leaving directory '/home/job/Dev/Processing/p5js/p5.js-editor/public/node_modules/p5.serialserver/node_modules/ws/node_modules/bufferutil/build'

> utf-8-validate@1.2.1 install /home/job/Dev/Processing/p5js/p5.js-editor/public/node_modules/p5.serialserver/node_modules/ws/node_modules/utf-8-validate
> node-gyp rebuild

make: Entering directory '/home/job/Dev/Processing/p5js/p5.js-editor/public/node_modules/p5.serialserver/node_modules/ws/node_modules/utf-8-validate/build'
  CXX(target) Release/obj.target/validation/src/validation.o
  SOLINK_MODULE(target) Release/obj.target/validation.node
  COPY Release/validation.node
make: Leaving directory '/home/job/Dev/Processing/p5js/p5.js-editor/public/node_modules/p5.serialserver/node_modules/ws/node_modules/utf-8-validate/build'
semver@3.0.1 node_modules/semver

wrench@1.5.9 node_modules/wrench

portscanner@1.0.0 node_modules/portscanner
└── async@0.1.15

node-static@0.7.6 node_modules/node-static
├── mime@1.3.4
├── colors@1.1.2
└── optimist@0.6.1 (wordwrap@0.0.3, minimist@0.0.10)

rimraf@2.5.2 node_modules/rimraf
└── glob@7.0.3 (path-is-absolute@1.0.0, inherits@2.0.1, once@1.3.3, inflight@1.0.5, minimatch@3.0.0)

chokidar@1.0.5 node_modules/chokidar
├── arrify@1.0.1
├── is-glob@1.1.3
├── path-is-absolute@1.0.0
├── async-each@0.1.6
├── is-binary-path@1.0.1 (binary-extensions@1.4.1)
├── glob-parent@1.3.0 (is-glob@2.0.1)
├── readdirp@1.4.0 (graceful-fs@4.1.4, minimatch@0.2.14, readable-stream@1.0.34)
└── anymatch@1.3.0 (micromatch@2.3.8)

trash@0.1.2 node_modules/trash
├── escape-string-applescript@0.1.1
├── minimist@0.1.0
└── update-notifier@0.1.10 (semver@2.3.2, chalk@0.4.0, configstore@0.3.2)

request@2.72.0 node_modules/request
├── aws-sign2@0.6.0
├── tunnel-agent@0.4.3
├── forever-agent@0.6.1
├── oauth-sign@0.8.2
├── caseless@0.11.0
├── is-typedarray@1.0.0
├── stringstream@0.0.5
├── aws4@1.4.1
├── isstream@0.1.2
├── json-stringify-safe@5.0.1
├── extend@3.0.0
├── tough-cookie@2.2.2
├── node-uuid@1.4.7
├── qs@6.1.0
├── combined-stream@1.0.5 (delayed-stream@1.0.0)
├── mime-types@2.1.11 (mime-db@1.23.0)
├── form-data@1.0.0-rc4 (async@1.5.2)
├── bl@1.1.2 (readable-stream@2.0.6)
├── hawk@3.1.3 (cryptiles@2.0.5, boom@2.10.1, sntp@1.0.9, hoek@2.16.3)
├── http-signature@1.1.1 (assert-plus@0.2.0, jsprim@1.2.2, sshpk@1.8.3)
└── har-validator@2.0.6 (pinkie-promise@2.0.1, commander@2.9.0, chalk@1.1.3, is-my-json-valid@2.13.1)

serialport@1.7.4 node_modules/serialport
├── bindings@1.2.1
├── async@0.9.0
├── sf@0.1.7
├── debug@2.2.0 (ms@0.7.1)
├── nan@2.0.9
├── optimist@0.6.1 (wordwrap@0.0.3, minimist@0.0.10)
└── node-pre-gyp@0.6.28 (semver@5.1.0, nopt@3.0.6, mkdirp@0.5.1, rc@1.1.6, npmlog@2.0.4, tar-pack@3.1.3, tar@2.2.1)

p5.serialserver@0.0.20 node_modules/p5.serialserver
└── ws@0.8.0 (options@0.0.6, ultron@1.0.2, bufferutil@1.2.1, utf-8-validate@1.2.1)
job@job-ThinkPad-T440s-Ubuntu ~/D/P/p/p/public> 
davejm commented 8 years ago

@JobLeonard hmm weird ok. Did you try installing the 'build-essential'? Looks like the error might be to do with permissions... could you try running sudo npm install?

JobLeonard commented 8 years ago

Sorry, forgot to mention that build-essential had already been installed (just double checked).

Using sudo causes a regression (?) to the former error message.

What's really strange is that node-serialport claims that using Chris Lea's PPA should have fixed this. So I'm puzzled as to where the problem might lie.

davejm commented 8 years ago

@JobLeonard after looking at this for quite some time I think I've pinpointed the problem. All was well when I was running nodejs v0.12 from the official ubuntu repo then I upgraded to Node4 and then Node6 and things started to break. The newest versions of serialport work with new nodejs but the old one in the public/package.json of this project doesn't. So, try replacing your public/package.json with the attached code and see if it works. It did for me. I upgraded the serialport version within this file and in the dependencies file of my fork of the p5-serialport package. Note that I haven't tested the functionality of serialport although there aren't any API changes in the latest build as far as I can see.

So, make the this code your public/package.json and remove the node_modules folder in public as well. Then try install again.

{
  "name": "p5",
  "version": "0.5.10",
  "main": "boot.html",
  "window": {
    "title": "Untitled",
    "toolbar": false,
    "frame": true,
    "position": "center",
    "width": 1024,
    "height": 768,
    "show": false,
    "focus": true,
    "resizable": true
  },
  "dependencies": {
    "chokidar": "1.0.5",
    "node-static": "0.7.6",
    "p5.serialserver": "git://github.com/davejm/p5.serialport.git#master",
    "portscanner": "1.0.0",
    "rimraf": "^2.3.4",
    "semver": "~3.0.1",
    "serialport": "3.1.2",
    "trash": "~0.1.2",
    "wrench": "~1.5.8"
  },
  "devDependencies": {
    "request": "^2.58.0"
  }
}
JobLeonard commented 8 years ago

Well, that seems to work for that bug!

job@job-ThinkPad-T440s-Ubuntu ~/D/P/p/p/public> npm install
npm WARN package.json p5@0.5.10 No description
npm WARN package.json p5@0.5.10 No repository field.
npm WARN package.json p5@0.5.10 No README data
npm WARN package.json p5@0.5.10 No license field.
npm WARN deprecated wrench@1.5.9: wrench.js is deprecated! You should check out fs-extra (https://github.com/jprichardson/node-fs-extra) for any operations you were using wrench for. Thanks for all the usage over the years.
npm WARN optional dep failed, continuing fsevents@0.3.8
npm WARN deprecated graceful-fs@3.0.8: graceful-fs v3.0.0 and before will fail on node releases >= v7.0. Please update to graceful-fs@^4.0.0 as soon as possible. Use 'npm ls graceful-fs' to find it in the tree.

> bufferutil@1.2.1 install /home/job/Dev/Processing/p5js/p5.js-editor/public/node_modules/p5.serialserver/node_modules/ws/node_modules/bufferutil
> node-gyp rebuild

make: Entering directory '/home/job/Dev/Processing/p5js/p5.js-editor/public/node_modules/p5.serialserver/node_modules/ws/node_modules/bufferutil/build'
  CXX(target) Release/obj.target/bufferutil/src/bufferutil.o
  SOLINK_MODULE(target) Release/obj.target/bufferutil.node
  COPY Release/bufferutil.node
make: Leaving directory '/home/job/Dev/Processing/p5js/p5.js-editor/public/node_modules/p5.serialserver/node_modules/ws/node_modules/bufferutil/build'

> utf-8-validate@1.2.1 install /home/job/Dev/Processing/p5js/p5.js-editor/public/node_modules/p5.serialserver/node_modules/ws/node_modules/utf-8-validate
> node-gyp rebuild

make: Entering directory '/home/job/Dev/Processing/p5js/p5.js-editor/public/node_modules/p5.serialserver/node_modules/ws/node_modules/utf-8-validate/build'
  CXX(target) Release/obj.target/validation/src/validation.o
  SOLINK_MODULE(target) Release/obj.target/validation.node
  COPY Release/validation.node
make: Leaving directory '/home/job/Dev/Processing/p5js/p5.js-editor/public/node_modules/p5.serialserver/node_modules/ws/node_modules/utf-8-validate/build'

> serialport@3.1.2 install /home/job/Dev/Processing/p5js/p5.js-editor/public/node_modules/serialport
> node-pre-gyp install --fallback-to-build

[serialport] Success: "/home/job/Dev/Processing/p5js/p5.js-editor/public/node_modules/serialport/build/Release/serialport.node" is installed via remote
semver@3.0.1 node_modules/semver

wrench@1.5.9 node_modules/wrench

portscanner@1.0.0 node_modules/portscanner
└── async@0.1.15

rimraf@2.5.2 node_modules/rimraf
└── glob@7.0.3 (path-is-absolute@1.0.0, inherits@2.0.1, inflight@1.0.5, once@1.3.3, minimatch@3.0.0)

node-static@0.7.6 node_modules/node-static
├── mime@1.3.4
├── colors@1.1.2
└── optimist@0.6.1 (wordwrap@0.0.3, minimist@0.0.10)

chokidar@1.0.5 node_modules/chokidar
├── is-glob@1.1.3
├── arrify@1.0.1
├── path-is-absolute@1.0.0
├── async-each@0.1.6
├── is-binary-path@1.0.1 (binary-extensions@1.4.1)
├── glob-parent@1.3.0 (is-glob@2.0.1)
├── readdirp@1.4.0 (graceful-fs@4.1.4, readable-stream@1.0.34, minimatch@0.2.14)
└── anymatch@1.3.0 (micromatch@2.3.8)

trash@0.1.2 node_modules/trash
├── escape-string-applescript@0.1.1
├── minimist@0.1.0
└── update-notifier@0.1.10 (semver@2.3.2, chalk@0.4.0, configstore@0.3.2)

request@2.72.0 node_modules/request
├── aws-sign2@0.6.0
├── tunnel-agent@0.4.3
├── forever-agent@0.6.1
├── oauth-sign@0.8.2
├── is-typedarray@1.0.0
├── caseless@0.11.0
├── stringstream@0.0.5
├── aws4@1.4.1
├── isstream@0.1.2
├── json-stringify-safe@5.0.1
├── extend@3.0.0
├── tough-cookie@2.2.2
├── node-uuid@1.4.7
├── qs@6.1.0
├── combined-stream@1.0.5 (delayed-stream@1.0.0)
├── mime-types@2.1.11 (mime-db@1.23.0)
├── form-data@1.0.0-rc4 (async@1.5.2)
├── bl@1.1.2 (readable-stream@2.0.6)
├── hawk@3.1.3 (cryptiles@2.0.5, boom@2.10.1, sntp@1.0.9, hoek@2.16.3)
├── http-signature@1.1.1 (assert-plus@0.2.0, jsprim@1.2.2, sshpk@1.8.3)
└── har-validator@2.0.6 (pinkie-promise@2.0.1, commander@2.9.0, chalk@1.1.3, is-my-json-valid@2.13.1)

p5.serialserver@0.0.20 node_modules/p5.serialserver
└── ws@0.8.0 (options@0.0.6, ultron@1.0.2, bufferutil@1.2.1, utf-8-validate@1.2.1)

serialport@3.1.2 node_modules/serialport
├── bindings@1.2.1
├── es6-promise@3.2.1
├── commander@2.9.0 (graceful-readlink@1.0.1)
├── nan@2.3.5
├── debug@2.2.0 (ms@0.7.1)
└── object.assign@4.0.3 (function-bind@1.1.0, object-keys@1.0.9, define-properties@1.1.2)

Except now it hangs on gulp:

job@job-ThinkPad-T440s-Ubuntu ~/D/P/p/p5.js-editor> gulp
[22:27:59] Using gulpfile ~/Dev/Processing/p5js/p5.js-editor/gulpfile.js
[22:27:59] Starting 'copy-ffmpeg-default'...
copying ffmpegsumo to ./node_modules
[22:27:59] Finished 'copy-ffmpeg-default' after 7.37 ms
[22:27:59] Starting 'css'...
[22:27:59] Finished 'css' after 9.06 ms
[22:27:59] Starting 'browserify'...
[22:27:59] Finished 'browserify' after 4.38 ms
[22:27:59] Starting 'injected-js'...
[22:27:59] Starting 'watch'...
[22:27:59] Finished 'watch' after 30 ms
[22:27:59] Finished 'injected-js' after 85 ms
[22:27:59] Starting 'default'...
[22:27:59] Finished 'default' after 9.22 μs

To be clear, it just hangs - it doesn't finish. If I ctrl+c out of that, and continue (since it might give some useful feedback about what's missing) I get:

^C~

job@job-ThinkPad-T440s-Ubuntu ~/D/P/p/p5.js-editor> npm run app

> p5@0.5.10 app /home/job/Dev/Processing/p5js/p5.js-editor
> nw public

[20496:0606/222936:ERROR:browser_main_loop.cc(170)] Running without the SUID sandbox! See https://code.google.com/p/chromium/wiki/LinuxSUIDSandboxDevelopment for more information on developing with the sandbox on.
ATTENTION: default value of option force_s3tc_enable overridden by environment.
[20496:0606/222936:ERROR:nw_shell.cc(336)] TypeError: undefined is not a function
    at Object.8../files (file:///home/job/Dev/Processing/p5js/p5.js-editor/public/js/main.js:1043:11)
    at s (file:///home/job/Dev/Processing/p5js/p5.js-editor/public/js/main.js:1:220)
    at file:///home/job/Dev/Processing/p5js/p5.js-editor/public/js/main.js:1:271
    at Object.7../debug/index (file:///home/job/Dev/Processing/p5js/p5.js-editor/public/js/main.js:489:12)
    at s (file:///home/job/Dev/Processing/p5js/p5.js-editor/public/js/main.js:1:220)
    at e (file:///home/job/Dev/Processing/p5js/p5.js-editor/public/js/main.js:1:391)
    at file:///home/job/Dev/Processing/p5js/p5.js-editor/public/js/main.js:1:409
[20496:0606/222936:INFO:CONSOLE(1043)] "Uncaught TypeError: undefined is not a function", source: file:///home/job/Dev/Processing/p5js/p5.js-editor/public/js/main.js (1043)

Again, it just stops doing anything - it doesn't open a window or anything. If I ctrl+c out of that I get:

^C~                                                                                                                                                             job@job-ThinkPad-T440s-Ubuntu ~/D/P/p/p5.js-editor> [20518:0606/223229:WARNING:x11_util.cc(1490)] X error received: serial 213, error_code 3 (BadWindow (invalid Window parameter)), request_code 4, minor_code 0 (X_DestroyWindow)
[20518:0606/223229:WARNING:x11_util.cc(1490)] X error received: serial 215, error_code 3 (BadWindow (invalid Window parameter)), request_code 4, minor_code 0 (X_DestroyWindow)
davejm commented 8 years ago

@JobLeonard very strange. Ok what about deleting the node_modules folder in the project root and the public folder and doing npm install for both again then trying again. I think after gulp finishes it's supposed to stay running as it 'watches' for changes in order to rebuild. It's hard to know what's going wrong as the main.js file is all the JS combined.

JobLeonard commented 8 years ago

Problem solved...

screenshot from 2016-06-06 23-38-33

davejm commented 8 years ago

@JobLeonard yay haha. p5 is perfect for quick memes!

JobLeonard commented 8 years ago

Seemed like an appropriate way to celebrate victory.. over my own idiocy, but victory nonetheless! (at least the serial port issue was real)

You're a champ for making this work, @davejm!

JobLeonard commented 8 years ago

So what's keeping the changes from being merged, if everything seems to work?

lmccart commented 8 years ago

sorry for the delay on this, I will take a look later today and get it merged in!

lmccart commented 8 years ago

This is awesome, thanks all! I merged it in and just posted a new release. http://p5js.org/download/ 🎉 🎉

b2renger commented 8 years ago

it works nicely ! though :

chmod +x p5

is needed to make the file executable.

JobLeonard commented 8 years ago

Also:

The p5.js editor is currently in development, try out a beta version of it now. Help out by posting feedback and bugs. Support for Linux coming soon, along with more features.

http://p5js.org/download/

I think you can remove the bolded line ;)