Hyper: Support for Windows

Created on 16 Jul 2016  Â·  51Comments  Â·  Source: vercel/hyper

From the doc I can see that Builds for Windows and Linux are coming very soon!

The bad part is that I have Windows. Therefore, :D support -> Windows

OMG Maximum In Progress Windows Compatibility

Most helpful comment

Also the Windows 10 Anniversary update drops tomorrow bringing with it Ubuntu on Windows. I would love to be able to use this as my Bash shell on Windows.

All 51 comments

@cristian-sima Have you tried compiled it on your machine?

@montogeek Well I read the there is no support for Windows. So no

Can you try it?

Yes. How do I compile it?

Check the Readme.md file :)

There is no section on readme page about compiling. Also, there is nothing specifically about Windows

I was also interested in this as I'm primarily windows user, initial package installation was not successful due to dependency child_pty does not support windows and native module build fails. Not sure if there's alternative workaround module can be used.

For a reference, I tried build on Windows 10 / msys2 (zsh) / windows-build-tools (for native node module compilation) / node v6.2 / npm v3.10.x .

@cristian-sima : Try the notes in the Contributing section. Its meant for development, but you can at least test it out locally to see if builds work for you.

I am forced to use Windows at work, and use Linux at home, so I'm looking forward to builds for those two platforms :+1:

@avindra I have seen screenshots of builds on Linux (Ubuntu)

We could replace child_pty by https://github.com/chjj/pty.js, another project successfully migrated it https://github.com/shockone/black-screen/issues/83

@montogeek I'm able to run it on openSUSE Tumbleweed by following the directions in the README.

The only difference I made was running webpack -p instead of webpack --watch

@avindra Great!
Maybe you could try running ./scripts/package.sh? First remove HYPERTERM_OSX_SIGNING_IDENTITY references, lets us know if it compiles :)

@montogeek :

It builds:

ls -lh dist/
total 41M
drwxr-xr-x 3 avindra users  87 Jul 16 18:44 HyperTerm-darwin-x64
-rw-r--r-- 1 avindra users 41M Jul 16 18:44 hyperterm-macos-x64-0.5.0.zip

the build assets currently have macos and darwin, due to harcoding of those in the packaging scripts I believe.

Took a few min, but it completed the build :+1:

Yeah, it not precisely fast . (you can omit npm i and npm lint).
Does it run?

There isn't a clear way to run it because this bundles a build for OS X (a .app file / folder), which only makes sense in Apple land.

However, the packager you guys use does support Windows and OS X by passing a different flag to --platform.

My bet is that it should be fairly easy to get at least the Linux build rolling.

@montogeek : Worked with plaform=linux

Produced a 41M bundle when made into a .tar.gz package

And does it run?

Yup, running the HyperTerm binary opens it.

Here is the file layout that it generates:

~/Dev/hyperterm/dist/HyperTerm-linux-x64  î‚° ls -larh
total 106M
-rw-r--r-- 1 avindra users    6 Jul 16 19:17 version
-rw-r--r-- 1 avindra users 647K Jul 16 19:17 snapshot_blob.bin
drwxr-xr-x 3 avindra users   38 Jul 16 19:17 resources
-rw-r--r-- 1 avindra users 406K Jul 16 19:17 natives_blob.bin
drwxr-xr-x 2 avindra users 4.0K Jul 16 19:17 locales
-rw-r--r-- 1 avindra users 1.3M Jul 16 19:17 LICENSES.chromium.html
-rw-r--r-- 1 avindra users 1.1K Jul 16 19:17 LICENSE
-rwxr-xr-x 1 avindra users  20M Jul 16 19:17 libnode.so
-rw-r--r-- 1 avindra users 2.5M Jul 16 19:17 libffmpeg.so
-rw-r--r-- 1 avindra users 9.7M Jul 16 19:17 icudtl.dat
-rwxr-xr-x 1 avindra users  63M Jul 16 19:17 HyperTerm
-rw-r--r-- 1 avindra users 9.3M Jul 16 19:17 content_shell.pak

Success!! Now we need somebody to follow our steps and try it on Windows!

@montogeek I've followed instructions on windows (https://github.com/zeit/hyperterm/issues/167#issuecomment-233153845) and current major blocker is replace child_pty into windows compatible modules. Not for packaging state, it blocks dev-build installation already.

@kwonoj Could you try using https://github.com/chjj/pty.js ?

@montogeek I can, haven't since I was worrying replacing it could possibly cause some regressions. I'll give a try soon.

@kwonoj It's possible, check https://github.com/shockone/black-screen/pull/88/commits/76c297aaa3b526195652914a6d0cb9aa42739601 from another project, for example exit instead of close

Yes I believe it's possible. my concern was breaking existing mac builds feature(if any) since there isn't any test coverage yet. Anyway I'll give it a try first before worrying out replace modules to see if I can make it work.

Yeah, not worries, we are just exploring possible solutions, in any case a PR is more than welcome!

I'm also interested in a windows build.

Got these errors.

child_pty seems like the only real one.

PS C:\dev\hyperterm> npm install
npm WARN engine [email protected]: wanted: {"node":">=4"} (current: {"node":"0.12.2","npm":"2.7.4"})
npm WARN engine [email protected]: wanted: {"node":">= 4.0"} (current: {"node":"0.12.2","npm":"2.7.4"})
npm WARN engine [email protected]: wanted: {"node":">=4"} (current: {"node":"0.12.2","npm":"2.7.4"})
|


> [email protected] install C:\dev\hyperterm\node_modules\child_pty
> node-gyp rebuild

/
C:\dev\hyperterm\node_modules\child_pty>if not defined npm_config_node_gyp (node "C:\Program Files (x86)\nodejs\node_mod else (rebuild) e-gyp-bin\\..\..\node_modules\node-gyp\bin\node-gyp.js" rebuild -)
gyp ERR! configure error
gyp ERR! stack Error: Can't find Python executable "python", you can set the PYTHON env variable.
gyp ERR! stack     at failNoPython (C:\Program Files (x86)\nodejs\node_modules\npm\node_modules\node-gyp\lib\configure.js:103:14)
gyp ERR! stack     at C:\Program Files (x86)\nodejs\node_modules\npm\node_modules\node-gyp\lib\configure.js:64:11
gyp ERR! System Windows_NT 6.3.9600complete (evalmachine.<anonymous>:95:15)
gyp ERR! command "node" "C:\\Program Files (x86)\\nodejs\\node_modules\\npm\\node_modules\\node-gyp\\bin\\node-gyp.js" "rebuild"
gyp ERR! cwd C:\dev\hyperterm\node_modules\child_pty
gyp ERR! node -v v0.12.2
ERR! node-gyp -v v1.0.3
not ok ! /
-


> [email protected] postinstall C:\dev\hyperterm\node_modules\electron-prebuilt
> node install.js

Downloading electron-v1.2.5-win32-ia32.zip
[============================================>] 100.0% of 42.47 MB (2.61 MB/s)
npm ERR! Windows_NT 6.3.9600
npm ERR! argv "C:\\Program Files (x86)\\nodejs\\\\node.exe" "C:\\Program Files (x86)\\nodejs\\node_modules\\npm\\bin\\npm-cli.js" "install"
npm ERR! node v0.12.2
npm ERR! npm  v2.7.4
npm ERR! code ELIFECYCLE

npm ERR! [email protected] install: `node-gyp rebuild`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the [email protected] install script 'node-gyp rebuild'.
npm ERR! This is most likely a problem with the child_pty package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR!     node-gyp rebuild
npm ERR! You can get their info via:
npm ERR!     npm owner ls child_pty
npm ERR! There is likely additional logging output above.

npm ERR! Please include the following file with any support request:
npm ERR!     C:\dev\hyperterm\npm-debug.log

OK, this isn't lovely looking yet but.. - I've reached this :

image

It's still based on quite much of manual wiring though. I'll try to see if I can come up with small PR for enabling preliminary support for windows build pipeline. Current goal's reuse most of scripts as-is, which'll only allows windows users who does have *nix compatible shells (cygwin, msys2..) though.

@vors please allow me some dumb question, are you referring artifacts at (http://www.appveyor.com/docs/packaging-artifacts) which is kind of build output from existing configs?

@kwonoj yes, it's simple artifacts: entry in appveyor.yml. I just cannot build it myself on windows at the moment and wanted to play around with it.

Great job, btw! Looking forward for the windows-support PR.

@vors , got it, I'll try to update PR.

Great job, btw! Looking forward for the windows-support PR.

Thanks for saying, I also anticipate windows support as well. :) waiting if child_pty can have support for windows.

@kwonoj oh, I missed #190

@kwonoj : Can you tweak scripts/package.sh and pass windows to the --platform flag for electron-packager ?

If my understanding is correct, this should build a redistributable exe file, which can be added as a build artifact for appveyor.

@avindra at this moment I don't consider to update build script at those levels. I've confirmed generated artifacts allows immediate dev-build tryout without additional configuration, think that serves anyone interested to try out dev build, since current build is anyway kind of broken state to use as a package on Windows.

Flow has added support for Windows today https://github.com/facebook/flow/issues/6#issuecomment-236691605

I am optimistic and looking forward to see also hyperterm supporting Windows :D

Also the Windows 10 Anniversary update drops tomorrow bringing with it Ubuntu on Windows. I would love to be able to use this as my Bash shell on Windows.

@montogeek Funny seeing you here :laughing:

xterm.js supports windows very well, use it in hyperterm maybe easily fix this problem

Hyperterm uses hterm under the hood, which is comparable to xterm.js, so it might indeed be feasible to swap the two. However, I don't think that would solve the compatibility problem, as the issue appears to be with child_pty, which is not a part of hterm.

Though it is worth noting that xterm.js uses pty.js, which has been proposed in this thread as a possible alternative to child_pty.

Any progressions on this issue? Can I try to install it on windows? Thank you.

@C0deMaver1ck - it likely works fine on ubuntu node within WSL. I'm running Xenial, zsh, and Linux node with few issues on Windows. Native support on Windows flavor of node is a completely separate undertaking.

@cchamberlain - are you running via a xserver and accesses via VNC?

@jcolesio - I have mobaxterm working as an X server that I can use from WSL bash. I was able to run apt-get's i3 with terminator and zsh on it with little effort. I haven't had time to try hyper but so far I haven't run into issues running Ubuntu node on it.

Nice. Tried to install terminator during the beta but there was too many dependency issues.

Yo y'all please help testing it!
Add Windows support and first-class Linux support #946

Nice 💯. Thanks

Is there a more detailed version on how to build on windows ?

On Oct 31, 2016, at 2:28 AM, Cristian Sima <[email protected]notifications@github.com> wrote:

Nice ?

You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHubhttps://github.com/zeit/hyper/issues/167#issuecomment-257229114, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AERc7Ji_BUv2FDYA2EpgZisi0lkM9zLIks5q5ZiYgaJpZM4JOB3T.

@jcolesio Looks like that is still being worked on. There's a quick explanation in the comments on the PR: https://github.com/zeit/hyper/pull/946#issuecomment-257201607

@jcolesio - I'd assume you can use windows-build-tools and configure python path per its instructions as an alternative to the VC++ Build Tools Technical Preview.

Was this page helpful?
0 / 5 - 0 ratings

Related issues

juicygoose picture juicygoose  Â·  3Comments

eoinmurray picture eoinmurray  Â·  3Comments

dbkaplun picture dbkaplun  Â·  3Comments

cilice picture cilice  Â·  3Comments

daenuprobst picture daenuprobst  Â·  3Comments