-
-
Notifications
You must be signed in to change notification settings - Fork 33
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
Native dependencies bugs #23
Comments
I would also like to add a new dependency-related problem: |
@Gigas002 Thanks for this investigation. This build system is very simple and not stable (there are no CI build tests).
Next steps, in my opinion, is to union configuration variables from Issue review:
There are several ways we can add libiconv library to build pipeline.
Binaries that we can use (with 7z as another dep): |
Last time, when I've build Gdal (ver. 3.1.2), I've used the vcpkg. As you know, the PROJ and Gdal itself out there is pretty outdated. So I've pulled the PROJ dependencies (minimal, I also think, that gdal's port on vcpkg will be updated in the upcoming release, look at this issue and a linked PR (they're also switching the build methods in this PR, so that might be interesting/useful). Don't know much details, but probably if they'll be able to build 3.1.x Gdal that means, that they're updating all dependencies for it too? Anyway, we can request ports adding/updating on vcpkg repo (I've done it for PROJ 7.1.0 and someone's already grabbed the thing). So I suppose that would be a good idea to pull all the needed dependencies by vcpkg, since it's also very easy to build and use (and easier to automate, I suppose), but we might need to wait until the ports will be added/updated. For now we could list all the needed dependencies and check their versions/availability on vcpkg. Regarding the antivirus issue, I was using Kaspersky antivirus, when it deleted the libgeos_c.dll. I've tried to build geos from source with cmake/vs, but lib from 3.8.0 build is still deleted by antivirus (so it's not current repo's problem obviously). Guess we can safely update it to the latest stable release, since it doesn't break anything. (BTW, it seems, like geos will be updated in vcpkg soon too) |
Several months ago, I had some experience with vcpkg. And more one thing, I'm using concrete versions of main libraries. With vcpkg we can't specify them directly in builds. gdal.netcore/win/CONFIGVARS.bat Lines 5 to 12 in 70ab3da
I'm not against using vpckg. Furthermore, integration will bring us more drivers and a bit of automation for windows build pipeline. Let's establish a list of packages that we can pull using vcpkg:
Other libraries optional:
|
Good point about versioning. Judging by vcpkg's roadmap, they're planning to support specifiying versions explicitly (yet it was planned for june release and still not released). It would be great if they'll complete this roadmap since it contains nice features. Gdal itself doesn't release that frequently, so I guess using slightly outdated packages between releases is fine. |
- gdal builds for both runtimes - rewrote makefiles - shared config for makefiles
@Gigas002 The work is in progress. About VCPKG integration with GDAL: Just a moment with configuring PROJ was insane: gdal.netcore/unix/gdal-makefile Lines 56 to 70 in bff4708
Configure also for GDAL ignores custom curl, sqlite3, hdf5: gdal.netcore/unix/configuregdal.sh Lines 23 to 29 in bff4708
|
Well done! curl -- 7.72.0 (latest) Missing: hdf4 -- 4.2.15 |
@Gigas002 Good news. After a long break, I'm continuing to implement this feature. But currently there is a problem with building How it's going - we have an open issue for now: microsoft/vcpkg#14459 gdal.netcore/unix/gdal-makefile Lines 131 to 142 in 19757e1
|
* working on #23 - gdal builds for both runtimes - rewrote makefiles - shared config for makefiles * forgot RID in makefile. will update docs later * fixed linux build - added pretty print for makefiles * builds almost ready. vcpkg integrated * broken proj and linux build makefiles organized * restored shared folder, testing external curl * fixed linux build sync build ready * GDAL v3.2.1 fixes #25 proj.db location
Already finished VCPKG integration. Now, everything is controlled by makefiles. gdal.netcore/shared/GdalCore.opt Lines 28 to 41 in f53f3bc
|
Awesome! |
Yes, that's a good point about targets. Sure it will be LTS (2.2,3.1) and current (5.0). But what about netstandard2.1 for libraries? It's not deprecated and maybe some libraries would use it. |
Yes, I suppose it's better to pack netstandard builds at least for a near future. |
Problem
While using prebuilt gdal from gisinternals (and nuget packages by @szekerest), I've noticed some issues, which I've explained in details in gdal repo:
These issues also appears in this library. Recently I've located a new problem, related to this nuget package: my antivirus deletes the package instantly because of
libgeos_c.dll
.Solution
Not so long ago I've found some time to sort out how gdal builds and managed to find a solution for these issues.
First two I are fixed by changing gdal's
nmake.opt
. It requires a new dependency -- iconv (I've got it through vcpkg) and adding those paths tonmake.opt
:I've also specified
wsetargv.obj
innmake.opt
, so it can be a part of solution too:I've tested the fixes above on latest gdal 3.1.2 with PROJ 7.1.0 (installed it's deps through vcpkg, built with cmake+vs using sqlite3 and libtiff) built on win-x64. Even though I've tested it on gdal apps, not the library, I think that might be also a solution for resolving the same issue in library.
Regarding the geos issue, I've tried to build geos with your
win/getgeos.bat
script, but antivirus still deleted thelibgeos_c.dll
. Building the newer commit (e.g. 3.8.1 release, not 3.8.0) fixes the issue. I suppose there were some kind of vulnerability in 3.8.0, idk.I'm not sure how your binaries are built and don't want to break anything, so I've decided to open an issue instead of PR to convey this information to you.
The text was updated successfully, but these errors were encountered: