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

windows #40

Open
ghost opened this issue Jan 30, 2013 · 14 comments
Open

windows #40

ghost opened this issue Jan 30, 2013 · 14 comments
Labels

Comments

@ghost
Copy link

ghost commented Jan 30, 2013

its using the older node-waf. There is not node.gyp bindings.

is this designed to work on windows at all ?

@mildsunrise
Copy link
Contributor

Dunno, but Node, NPM, and 99% of assets are probably designed
for UNIX-like systems. Since Microsoft made Windows be the only
OS that is not UNIX-like, don't expect much support on there either...

@djrenren
Copy link

Okay so node and npm are currently built entirely with windows in mind, that's why node-gyp exists. Not to mention the whole point of libgit2 is to be a cross-platform git implementation (yes, windows included). So what needs to be done to make this work under windows?

@mildsunrise
Copy link
Contributor

Frankly, I prefer to understand "multiplatform" as "on every standard platform".
Then Node-GYP wasn't specifically created to add support for Windows.

-- BEGIN RANT --

Microsoft paid Joyent to put some Windows support on Node.JS,
but it still creates a lot of problems because you expect a path to start with
/, and you expect the url module to work both on URL paths and system
paths. And a lot more like these. You expect your system to be standard.

These, and more reasons, make Git itself not designed to run on Windows.

So, everyone out there, please don't use Windows. You make the others
(and yourself) a huge favour by using any other platform. I wouldn't even
consider Windows a platform. ;)

-- END RANT --

PD: I'm partidary of using Node-GYP, but not because of Windows support.

@mildsunrise
Copy link
Contributor

@jmrenner IF libgit2 was to be truly crossplatform, it would have to support Solaris, SPARC, Sun OS, Windows 98/95/NT/ME, etc too. "crossplatform" doesn't necessarily mean every platform.

@djrenren
Copy link

I'd like to refer you all to the official libgit2 page:
crossplatform

As you can see windows is supported. So regardless of how all of you define "crossplatform" we should be able to get this working under windows.

@mildsunrise
Copy link
Contributor

@jmrenner

I know, but I said Git is not designed to run on non-standard systems.
Of course, LibGit2/Node/Gitteh can workaround these problems but it's
better to not use Windows at all.

You see, everytime Windows is booted, someone in the world gets shot.[citation needed]
So, instead of demanding support for a corrupt platform, please make the switch.
We'll (nearly) all thank you. :)

@samcday
Copy link
Contributor

samcday commented May 30, 2013

@jmendeth Not sure I completely agree with you on this one.

To lead in, yes, Windows generally sucks and engineers tend to work with Linux more as it's much easier to reason with, is open source, etc. So I always considered my primary audience to be Linux/OSX users. Further, Node deployments on PaaS are the least masochistic way to get something running nowadays, and other than Azure I'm fairly sure most PaaS infrastructure out there would be Linux based.

BUT Windows support for gitteh is important, as it should be as cross platform as the native library it wraps.

That said, I have not been able to scrounge up enough time lately to do this project much justice for updating to the latest libgit2 and making install flow for Linux/OSX rock-solid as it is, let alone adding Windows to the mix. I can promise you that the current master branch is fundamentally where I want the library to be (The CoffeeScript bridge into native code will be where most of the work happens), so if anyone wants to put their hand up for making node-gyp + CMake work nicely under Windows, the Internets will be forever in your debt!

@mildsunrise
Copy link
Contributor

BUT Windows support for gitteh is important, as it should be as cross platform as the native library it wraps.

Well, a wrapper's goal is to expose functionality, not to get to the same platforms.
The Libgit2 guys wanted/knew/had the time to add the necessary workarounds,
but I may not, and that doesn't make my wrapper a bad wrapper, does it?

That said, I won't make changes specifically to add support just for one unstandard platform.
BUT if someone takes the time to do it (or it works without doing nothing), then it's fine to
merge the changes. :)

Besides, by doing that we incite more people to switch, which is positive for all of us.

@djrenren
Copy link

@jmendeth I understand you hate windows. Doesn't mean people don't use it.

I get that a lot of people don't want to work with Windows or put in the work to support it. So, I return to my original question, does anyone have something resembling a list of things that need to be done in order to support windows?

If not, I'll just dig a little and see if I'm able to make it happen.

@samcday
Copy link
Contributor

samcday commented May 31, 2013

@jmrenner Your last comment is spot on. There has been interest in Windows support in the past, and I am absolutely interested in making it happen for gitteh, but I personally don't have the time or care-factor to make it happen.

Here's what would need to happen though:

  • Existing native codebase of gitteh would need to be evaluated to see how hard it is to compile under MSVC.
  • Node-gyp config would need updating to handle Windows compilation.
  • libgit2 itself compiles under CMake, so build process would need to be able to trigger cmake build correctly in Windows, this process currently occurs in install.js

@mildsunrise
Copy link
Contributor

@jmrenner Just a clarification. I don't hate Windows. I just don't want to spend time supporting it.
That means if @samcday or you add the support for Windows, then I'm perfectly fine with it.
And I'd like to use Node-GYP, but not because of the Windows support.

@ben
Copy link
Member

ben commented Jun 8, 2013

I took a look at this, and it doesn't seem that hard.

  • The codebase looks like pretty standard C++, and the MSVC compiler is pretty good at that.
  • The node-gyp config shouldn't be too hard either; mostly it's dependencies on which and env. The libgit2 build through cmake should already work.

Expect a PR when the more immediate build issues are resolved.

@zaggino
Copy link

zaggino commented Feb 23, 2014

Hi guys, are there any news on this?

@samcday
Copy link
Contributor

samcday commented Feb 24, 2014

@zaggino unfortunately gitteh is currently inactive, pending a primary contributor. So no, Windows support hasn't been added yet. You might want to check out nodegit, it may suit your needs.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

5 participants