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

doesn't compile on windows #363

Closed
hcorion opened this issue Apr 5, 2016 · 10 comments
Closed

doesn't compile on windows #363

hcorion opened this issue Apr 5, 2016 · 10 comments

Comments

@hcorion
Copy link

hcorion commented Apr 5, 2016

Hi all,
So, it is a known fact that leveldb does not compile on windows. At one point, there was instructions: http://leveldb.googlecode.com/git-history/windows/WINDOWS but they now no longer work. Someone was maintaining a windows port but it is no longer functioning: http://blog.kowalczyk.info/software/leveldb-for-windows/.
I'm not the only person that has wanted this:
https://ayende.com/blog/161409/leveldb-windows-it-aint-a-love-story
https://groups.google.com/forum/#!topic/leveldb/VuECZMnsob4
https://www.quora.com/How-can-I-compile-and-use-levelDB-for-Windows
So, the need is definitely there, here is what windows has to offer in the ways of building stuff:
cmake (which is actively maintained)
msys2 (which provides GNU make, among others)
MSbuild
nmake (microsoft's version of make)

I would be willing to debug. I have a decently powerful 64-bit windows 10 desktop, I just need a programmer. I have experience with cmake and msys2, and I know my way around a batch (windows script language) script.

@cmumford
Copy link
Contributor

There is an old branch for Windows, but it is not an officially supported platform. It's reasonably straightforward to port to Windows. My vote is to make Windows a supported platform at some point, but we need a Windows continuous builder which is not currently supported by Travis CI (travis-ci/travis-ci#2104)

@hitstergtd
Copy link

hitstergtd commented Apr 20, 2016

@cmumford,

Regarding CI of Windows builds:

  • I suggest looking at AppVeyor
  • It is free for open source projects and the free tier should more than suffice
  • Either an appveyor.yml or an online build configuration needs to be setup
  • For supporting information, see Scott Hanselman's take on AppVeyor

I would be willing to take a stab at a Windows port if you/someone can highlight any major sticky points in the codebase that I need to watch out for pre-port. I have a Windows box to test.

@hcorion
Copy link
Author

hcorion commented Apr 20, 2016

@cmumford @hitstergtd
Thanks for doing this, it's really great to see some progress in this direction.

@hitstergtd
Copy link

@hcorion
Not to raid your excitement and belay any false expectations: I am in the process of examining LevelDB code for another project, so once I feel comfortable with it, then I will give it a go. :)

@andreasbaumann
Copy link

andreasbaumann commented Apr 28, 2016

I'm currently working on a port myself (work in progress), see:

https://github.com/andreasbaumann/leveldb

I'm backporting the Cmake support from:

https://github.com/bureau14/leveldb

Having cmake for Windows to generate msbuild or msproject files is just makes life of Windows less painful. :-)

This port uses boost for the environment part which is something I would not like to draw in as
a dependency.

There is also a native port not using boost:

https://github.com/happynear/py-leveldb-windows/

This port also includes a port of snappy to Windows (didn't try myself yet with snappy).

The parts to port are:

  • port_win32 (mutexes, conditional variables)
  • atomic pointers
  • env_win32: mainly filesystem functions, file locking, threading

I got the feeling that code dealing with portability could be cleaned up a little bit: it's spread
in various files, I don't really seem to understand why atomic pointers are implemented in
atomic_pointer.h and in port__.h, port__.cc. Clues anybody?

@lostbearlabs
Copy link

The bitcoin fork of leveldb (https://github.com/bitcoin-core/leveldb) builds for windows but is only updated to v1.18.

(My employer has been using an even earlier version of that fork, and we're trying to figure out how to get up-to-date, which is what led me to this issue.)

@chris-morgan
Copy link

This is causing a lot of confusion: people are used to libraries like this being cross-platform, and this one isn’t properly. At the very least, can you please put a note in the README saying “doesn’t work on Windows, see #363”?

@cmumford
Copy link
Contributor

Official support for Windows is probably the most requested enhancement. We are currently working on CMake support with continuous integration. Using issue #466 to track this work.

@HassanQamar07
Copy link

Does it support windows installation now?

@pwnall
Copy link
Member

pwnall commented Jan 5, 2019

Nope. We'll update the README and CI integration when the support lands.

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

No branches or pull requests

8 participants