samuelcolvin / xdelta3-python

Fast delta encoding in python using xdelta3
Other
34 stars 15 forks source link

Windows support would be nice #6

Open i30817 opened 6 years ago

i30817 commented 6 years ago

I'm using this on this tool: https://github.com/i30817/zxd3/

And this not being a OS independent package or have a windows version uploaded to pypi prevents me from releasing it on pypi for windows.

Unfortunately i know less than nothing about making native code compilable for windows and how to make pypi make that happen, so this is a issue, not a pull request.

samuelcolvin commented 6 years ago

Generating native binaries for windows is far from trivial and since I don't have a windows machine and haven't worked on it for years I wouldn't have a clue.

I couldn't even generate native manylinux binaries for linux since the suggested steps to build them on travis: https://github.com/pypa/manylinux use centos:5.11 which has a very old version of gcc which can't compile xdelta3.

i30817 commented 6 years ago

Seems like the path forward for manylinux is this, from nosing around the issues: https://github.com/pypa/manylinux/issues/118#issuecomment-307228834

samuelcolvin commented 6 years ago

makes sense, but that doesn't help for windows.

Since I'm not using this package in production yet and will only be using it on linux servers which can happily compile xdelta3, I'm afraid this can't be a priority for me.

i30817 commented 6 years ago

For windows, if you see mingwpy? I think it's supposed to allow crossbuild.

https://anaconda.org/carlkl/mingwpy http://mingwpy.github.io/index.html

Ofc, i haven't actually tried it, since i'm not a c person, maybe i should

edit: github page says it's abandoned. Annoying

i30817 commented 6 years ago

This https://stackoverflow.com/a/24793171/214260 (ie: building it locally and distributing it in the windows wheel like 'data') might work

And using mingw-w64 to crossbuild might work. I actually tried it after installing mingw-w64 with ./configure --build=x86_64-pc-linux-gnu --target=i686-w64-mingw32

and got stopped after errors in make like this 'xdelta3.h:171:72: error: expected declaration specifiers or ‘...’ before string constant'