Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support for Windows #167

Closed
cristian-sima opened this issue Jul 16, 2016 · 51 comments
Closed

Support for Windows #167

cristian-sima opened this issue Jul 16, 2016 · 51 comments
Assignees
Labels
🖼 Platform: Windows Issue pertains to Windows ‼️ Priority: OMG Maximum Issue needs to be seen to immediately. Like now. Please. ⚠️ 👩‍🔬 Status: In Progress Issue or PR is currently active and work is in progress 🤯 Type: Compatibility Issue contains information about a compatibility issue in Hyper
Milestone

Comments

@cristian-sima
Copy link

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

@montogeek
Copy link
Contributor

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

@cristian-sima
Copy link
Author

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

@montogeek
Copy link
Contributor

Can you try it?

@cristian-sima
Copy link
Author

Yes. How do I compile it?

@montogeek
Copy link
Contributor

Check the Readme.md file :)

@cristian-sima
Copy link
Author

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

@kwonoj
Copy link
Contributor

kwonoj commented Jul 16, 2016

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 .

@avindra
Copy link

avindra commented Jul 16, 2016

@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 👍

@montogeek
Copy link
Contributor

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

@montogeek
Copy link
Contributor

montogeek commented Jul 16, 2016

We could replace child_pty by https://github.com/chjj/pty.js, another project successfully migrated it railsware/upterm#83

@avindra
Copy link

avindra commented Jul 16, 2016

@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

@montogeek
Copy link
Contributor

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

@avindra
Copy link

avindra commented Jul 16, 2016

@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 👍

@montogeek
Copy link
Contributor

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

@avindra
Copy link

avindra commented Jul 16, 2016

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
Copy link
Contributor

@avindra
Copy link

avindra commented Jul 16, 2016

@montogeek : Worked with plaform=linux

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

@montogeek
Copy link
Contributor

And does it run?

@avindra
Copy link

avindra commented Jul 16, 2016

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

@montogeek
Copy link
Contributor

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

@kwonoj
Copy link
Contributor

kwonoj commented Jul 16, 2016

@montogeek I've followed instructions on windows (#167 (comment)) and current major blocker is replace child_pty into windows compatible modules. Not for packaging state, it blocks dev-build installation already.

@montogeek
Copy link
Contributor

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

@kwonoj
Copy link
Contributor

kwonoj commented Jul 16, 2016

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

@montogeek
Copy link
Contributor

@kwonoj It's possible, check railsware/upterm@76c297a from another project, for example exit instead of close

@kwonoj
Copy link
Contributor

kwonoj commented Jul 16, 2016

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.

@montogeek
Copy link
Contributor

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

@vors
Copy link
Contributor

vors commented Jul 17, 2016

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

@kwonoj
Copy link
Contributor

kwonoj commented Jul 17, 2016

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
Copy link
Contributor

vors commented Jul 18, 2016

@kwonoj
Copy link
Contributor

kwonoj commented Jul 18, 2016

@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
Copy link
Contributor

kwonoj commented Jul 18, 2016

@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.

@timothyis timothyis added 👩‍🔬 Status: In Progress Issue or PR is currently active and work is in progress 💛 Priority: Medium Issue isn't of the highest priority but still important 🤯 Type: Compatibility Issue contains information about a compatibility issue in Hyper labels Jul 29, 2016
@cristian-sima
Copy link
Author

Flow has added support for Windows today facebook/flow#6 (comment)

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

@WA9ACE
Copy link

WA9ACE commented Aug 2, 2016

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.

@niallobrien
Copy link

@montogeek Funny seeing you here 😆

@yeluolei
Copy link

yeluolei commented Aug 24, 2016

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

@Adam-Meisen
Copy link

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.

@timothyis timothyis added the 🖼 Platform: Windows Issue pertains to Windows label Oct 6, 2016
@lednhatkhanh
Copy link

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

@timothyis timothyis mentioned this issue Oct 13, 2016
@cchamberlain
Copy link

@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.

@jcolesio
Copy link

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

@cchamberlain
Copy link

@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.

@jcolesio
Copy link

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

@matheuss matheuss added ‼️ Priority: OMG Maximum Issue needs to be seen to immediately. Like now. Please. ⚠️ and removed 💛 Priority: Medium Issue isn't of the highest priority but still important labels Oct 25, 2016
@matheuss matheuss added this to the v1.0.0 milestone Oct 25, 2016
@matheuss matheuss self-assigned this Oct 25, 2016
@matheuss
Copy link
Member

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

@cristian-sima
Copy link
Author

cristian-sima commented Oct 31, 2016

Nice 💯. Thanks

@jcolesio
Copy link

jcolesio commented Nov 1, 2016

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

On Oct 31, 2016, at 2:28 AM, Cristian Sima <[email protected]mailto:[email protected]> wrote:

Nice ?

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

@zbuttram
Copy link
Contributor

zbuttram commented Nov 1, 2016

@jcolesio Looks like that is still being worked on. There's a quick explanation in the comments on the PR: #946 (comment)

@cchamberlain
Copy link

@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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
🖼 Platform: Windows Issue pertains to Windows ‼️ Priority: OMG Maximum Issue needs to be seen to immediately. Like now. Please. ⚠️ 👩‍🔬 Status: In Progress Issue or PR is currently active and work is in progress 🤯 Type: Compatibility Issue contains information about a compatibility issue in Hyper
Projects
None yet
Development

No branches or pull requests