tilemill-project / tilemill

TileMill is a modern map design studio
https://tilemill-project.github.io/tilemill/
BSD 3-Clause "New" or "Revised" License
3.1k stars 527 forks source link

windows support #2747

Open mathisloge opened 2 years ago

mathisloge commented 2 years ago

So I'm currently adding back windows support to mapnik (and CMake support, too). That does include node-mapnik and python-mapnik, too. Just wanted to let you know, that it might be possible to build tilemill on windows again.

csytsma commented 2 years ago

@mathisloge Any updates on your mapnik windows efforts?

mathisloge commented 2 years ago

@csytsma mapnik itself is already buildable and functional under windows. node-mapnik is also functional. But I first need to make mapnik to build as a static library (incl. plugins etc.). That's mostly for the distribution of prebuild npm packages on Linux.

Unfortunately in the last six and the next two month my available time for open source projects is very limited. But be sure that I'm on it :)

prusswan commented 1 year ago

I was able to build mathisloge's node-mapnik and mapnik on Windows. However, trying to use it with current Tilemill proved to be difficult as Tilemill (including dependencies) is still stuck on Node 8. In the end, I just installed the pre-built node-mapnik binary for Node 12 and manually replaced the mapnik folders (main node_modules plus the ones under tilelive-mapnik). did the same for other dependencies such as gdal. Also had to patch the version checks etc. It's a bit of a mess but the result is here

On Tilemill's end, you can probably start a proper Node 12 branch (to use the prebuilt node-mapnik, unless mathisloge or someone else is willing to backport it to Node 8) and work through the other dependencies.

csytsma commented 1 year ago

If we upgraded/migrated the Tilemail primary branch to Node 12, any idea how much that might break everything else? If I recall, there were some older mapping libraries it was dependent on, like Wax, Millstone, MM etc. that would all have to be upgraded as well.

On Jul 5, 2022, at 4:32 PM, prusswan @.***> wrote:

I was able to build mathisloge's node-mapnik and mapnik on Windows. However, trying to use it with current Tilemill proved to be difficult as Tilemill (including dependencies) is still stuck on Node 8. In the end, I just installed the pre-built node-mapnik binary for Node 12 and manually replaced the mapnik folders (main node_modules plus the ones under tilelive-mapnik). did the same for other dependencies such as gdal. Also had to patch the version checks etc. It's a bit of a mess but the result is here https://github.com/prusswan/tilemill/tree/node12 On Tilemill's end, you can probably start a proper Node 12 branch (to use the prebuilt node-mapnik, unless mathisloge or someone else is willing to backport it to Node 8) and work through the other dependencies.

— Reply to this email directly, view it on GitHub https://github.com/tilemill-project/tilemill/issues/2747#issuecomment-1175600559, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAA7ORHCNSKPMHJOZUPKAQLVSTAZTANCNFSM5A5HXN5A. You are receiving this because you were mentioned.

prusswan commented 1 year ago

If we upgraded/migrated the Tilemail primary branch to Node 12, any idea how much that might break everything else? If I recall, there were some older mapping libraries it was dependent on, like Wax, Millstone, MM etc. that would all have to be upgraded as well.

Native JS libraries like MM should be of little issue. The problem ones are OS-dependent (such as mapnik and gdal) but seems there are already Node 12 binaries for those (like gdal 0.11), so it is just a matter of upgrading the other packages that are dependent on the older versions (some modules may be abandoned at this point, so forking would be necessary).

oudoken commented 4 months ago

I was able to build mathisloge's node-mapnik and mapnik on Windows. However, trying to use it with current Tilemill proved to be difficult as Tilemill (including dependencies) is still stuck on Node 8. In the end, I just installed the pre-built node-mapnik binary for Node 12 and manually replaced the mapnik folders (main node_modules plus the ones under tilelive-mapnik). did the same for other dependencies such as gdal. Also had to patch the version checks etc. It's a bit of a mess but the result is here

On Tilemill's end, you can probably start a proper Node 12 branch (to use the prebuilt node-mapnik, unless mathisloge or someone else is willing to backport it to Node 8) and work through the other dependencies.

Hi @prusswan, I've tried to npm install You repo (windows with node 12.22.12) but it throwns many errors, mostly error from compatibility with build tools, vs2019/vs2022 node-gyp etc...

Do You have any suggestion? Or better do You have pre-compiled (with all needed node-libraries mapnik, tilelive-mapnik, zip etc) anywhere?

Thanks

prusswan commented 4 months ago

@oudoken I don't work with Windows exclusively so it will take someone of @mathisloge's experience to sort out the build tools. For my purpose I went back to Linux/docker. With luck there might be a Windows developer interested enough to take this further.

btw, since this is already 2024, maybe node 18 would be a more practical target

mathisloge commented 4 months ago

As of 2024 if dropped windows myself and switched completly to linux :D

csytsma commented 4 months ago

The whole project needs to be updated to use a more current Node version. Anyone want to take that on?

On Feb 21, 2024, at 9:13 AM, Mathis Logemann @.***> wrote:

As of 2024 if dropped windows myself and switched completly to linux :D

— Reply to this email directly, view it on GitHub https://github.com/tilemill-project/tilemill/issues/2747#issuecomment-1957352652, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAA7ORB6D4AJ2BGDHVEBKYDYUYTMBAVCNFSM5A5HXN5KU5DIOJSWCZC7NNSXTN2JONZXKZKDN5WW2ZLOOQ5TCOJVG4ZTKMRWGUZA. You are receiving this because you were mentioned.

prusswan commented 4 months ago

As of 2024 if dropped windows myself and switched completly to linux :D

yea if only we get clients willing to "sponsor" the work

The whole project needs to be updated to use a more current Node version. Anyone want to take that on?

Node 18 for Linux should be "easy" (barring key dependencies that are abandoned with no replacement), perhaps you can start a separate issue to gauge the demand?

oudoken commented 4 months ago

@oudoken I don't work with Windows exclusively so it will take someone of @mathisloge's experience to sort out the build tools. For my purpose I went back to Linux/docker. With luck there might be a Windows developer interested enough to take this further.

btw, since this is already 2024, maybe node 18 would be a more practical target

Hi @prusswan, It's ok just wanting to try and test the whole thing on Windows for speed comparison. I have another linuxmint installation that works correctly on latest Tilemill repo. Thanks Kind Regards Rob