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

PROJ broken with latest SQLite #10496

Closed
visr opened this issue Feb 10, 2025 · 12 comments
Closed

PROJ broken with latest SQLite #10496

visr opened this issue Feb 10, 2025 · 12 comments

Comments

@visr
Copy link
Contributor

visr commented Feb 10, 2025

SQLite_jll v3.49.0, built in #10481, break PROJ_jll.

ERROR: InitError: could not load library "a:.julia\artifacts\cb61d24895a5cdb6a03e51121c4d1c439b77fef4\bin\libproj_9.dll"
The specified module could not be found.

Doing add [email protected] fixes it.

CI can be seen on JuliaGeo/Proj.jl#113
SQLite changelog: https://www.sqlite.org/changes.html

@eschnett could this be related to adding the dlfcn_win32_jll dependency on Windows? Why is this dependency needed?

@eschnett
Copy link
Contributor

I don't know what causes this. The dependency is needed to build on Windows; without it there is a linker error. (The error message states that one could also disable a certain option while configuring SQLite.)

The version of dlfcn_win32_jll was also updated from 1.3.1 to 1.4.1 in the mean time. Does it work when you load dlfcn_win32_jll @1.3.1 with the default (3.49.0) SQLite? If so, we should yank the new version of dlfcn_win32_jll (and/or use it with respective compat entries =1.3.1).

@visr
Copy link
Contributor Author

visr commented Feb 10, 2025

Hmm no unfortunately dlfcn_win32_jll v1.3.1 doesn't work either.

  [58948b4f] PROJ_jll v902.500.100+1
  [76ed43ae] SQLite_jll v3.49.0+0
⌃ [c4b69c83] dlfcn_win32_jll v1.3.1+0
Info Packages marked with ⌃ have new versions available and may be upgradable.

julia> using PROJ_jll
ERROR: InitError: could not load library "a:\.julia\artifacts\cb61d24895a5cdb6a03e51121c4d1c439b77fef4\bin\libproj_9.dll"
The specified module could not be found.

@giordano
Copy link
Member

The specified module could not be found.

Wouldn't it be nice if your OS told you what the heck is the "specified module" that can't be found? You might be able to use https://github.com/giordano/DependencyWalker.jl for that, but that package would be useless if OSes were more collaborative.

@eschnett
Copy link
Contributor

Okay. Then SQLite itself is probably the culprit. I don't know why and I don't have a guess. The release notes don't mention anything special.

@eschnett
Copy link
Contributor

The dll name changed:

SQLite.v3.48.0.x86_64-w64-mingw32/bin/libsqlite3-0.dll
SQLite.v3.49.0.x86_64-w64-mingw32/bin/libsqlite3.dll

This makes the dlls incompatible. As is, 3.49.0 is indeed incompatible on Windows.

That might have been caused by the change to the configure script.

@eschnett
Copy link
Contributor

... In other words, unless we find a solution very soon, we should disable the new SQLite version to avoid problems on Windows.

@eschnett
Copy link
Contributor

See JuliaRegistries/General#124721

@eschnett
Copy link
Contributor

@visr This should now be fixed in the registry – SQLite 3.49.0 has been disabled. Try Pkg.update() without any work-arounds.

@visr
Copy link
Contributor Author

visr commented Feb 10, 2025

Thanks! Can confirm that worked.

I tried to have a look at sqlite/sqlite@version-3.48.0...version-3.49.0
and indeed there is a lot of stuff moving around in the build configuration. Hard to point at one thing though.

A recent related forum post mentions:

We have done literally zero testing or development in mingw and we do not officially support the various non-native Windows builds.

And that link mentions:

The 3.48.0 "autoconf" bundle used a different build system which we no longer use or support. As of 3.49.0, the "autoconf" bundle no longer uses GNU Autoconf but retains its historical "autoconf" name to minimize downstream disruption.

@eschnett
Copy link
Contributor

In the long run we'll have to figure out whether we can produce backward-compatible SQLite version, and if not, how to handle this disruption.

@visr
Copy link
Contributor Author

visr commented Feb 10, 2025

Maybe good to keep this open as a reminder for this?

@eschnett
Copy link
Contributor

I'll add a note to the SQLite build script instead. That's where people would look anyway.

I don't think it's urgent for people to update to SQLite 3.49.0.

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

No branches or pull requests

3 participants