Package Details: mingw-w64-sqlite 3.49.1-1

Git Clone URL: https://aur.archlinux.org/mingw-w64-sqlite.git (read-only, click to copy)
Package Base: mingw-w64-sqlite
Description: A C library that implements an SQL database engine (mingw-w64)
Upstream URL: https://www.sqlite.org/
Licenses: custom:public domain
Groups: mingw-w64
Submitter: felixonmars
Maintainer: Martchus
Last Packager: jazztickets
Votes: 12
Popularity: 0.000000
First Submitted: 2014-06-07 14:17 (UTC)
Last Updated: 2025-02-26 00:16 (UTC)

Latest Comments

1 2 3 4 Next › Last »

Martchus commented on 2025-02-22 12:35 (UTC)

The upstream change works so it would be great if you could add my changes from https://github.com/Martchus/PKGBUILDs/tree/master/sqlite/mingw-w64 on the next version update (which will most likely contain the fix from that snapshot).

Martchus commented on 2025-02-21 22:25 (UTC) (edited on 2025-02-21 22:33 (UTC) by Martchus)

As mentioned, for Qt I probably just need -DSQLITE_ENABLE_COLUMN_METADATA=1.

However, I am not doing the rebuild now after all because the SQLite maintainer has just e-mailed me. They are going to introduce a --dll-basename=XYZ configuration option to allow packaging like ours to keep the library name in-line with what it was (unintentionally) before. With such a config option being supported by upstream I would then keep the library name as-is to avoid rebuilds, keep consistency with MSYS2 mingw-w64 packaging and avoid other potential disruption.

EDIT: It is there: https://sqlite.org/forum/forumpost/de7078d6f6 - So I'm going to test it.

Martchus commented on 2025-02-21 14:53 (UTC) (edited on 2025-02-21 15:11 (UTC) by Martchus)

Unfortunately Qt doesn't build against the latest version (regardless of whether GCC or LLVM is used to build):

FAILED: lib/qt6/plugins/sqldrivers/qsqlite.dll
: && /usr/lib/ccache/bin/x86_64-w64-mingw32-g++ -D_FORTIFY_SOURCE=3 -D_GLIBCXX_ASSERTIONS -O2 -pipe -fexceptions --param=ssp-buffer-size=4 -Wformat -Werror=format-security -fcf-protection  -Wl,-O1,--sort-common,--as-needed -fstack-protector   -Wl,--no-undefined -Wl,--version-script,/build/mingw-w64-qt6-base/src/build-x86_64-w64-mingw32/src/plugins/sqldrivers/sqlite/QSQLiteDriverPlugin.version -shared -o lib/qt6/plugins/sqldrivers/qsqlite.dll -Wl,--major-image-version,0,--minor-image-version,0 src/plugins/sqldrivers/sqlite/CMakeFiles/QSQLiteDriverPlugin.dir/QSQLiteDriverPlugin_autogen/mocs_compilation.cpp.obj src/plugins/sqldrivers/sqlite/CMakeFiles/QSQLiteDriverPlugin.dir/qsql_sqlite.cpp.obj src/plugins/sqldrivers/sqlite/CMakeFiles/QSQLiteDriverPlugin.dir/qsql_sqlite_vfs.cpp.obj src/plugins/sqldrivers/sqlite/CMakeFiles/QSQLiteDriverPlugin.dir/smain.cpp.obj src/plugins/sqldrivers/sqlite/CMakeFiles/QSQLiteDriverPlugin.dir/QSQLiteDriverPlugin_resource.rc.res  /usr/x86_64-w64-mingw32/lib/libsqlite3.dll.a  lib/libQt6Sql.dll.a  lib/libQt6Core.dll.a  -lmpr  -luserenv  -lkernel32 -luser32 -lgdi32 -lwinspool -lshell32 -lole32 -loleaut32 -luuid -lcomdlg32 -ladvapi32 && :
/usr/lib/gcc/x86_64-w64-mingw32/14.2.0/../../../../x86_64-w64-mingw32/bin/ld: src/plugins/sqldrivers/sqlite/CMakeFiles/QSQLiteDriverPlugin.dir/qsql_sqlite.cpp.obj:qsql_sqlite.cpp:(.text+0x11e6): undefined reference to `sqlite3_column_table_name16'
collect2: error: ld returned 1 exit status
FAILED: lib/qt6/plugins/sqldrivers/qsqlite.dll
: && /usr/lib/ccache/bin/clang++ -rtlib=compiler-rt -fuse-ld=lld -mguard=cf -target aarch64-w64-mingw32 -Xclang -triple -Xclang aarch64-w64-mingw32 -D_FORTIFY_SOURCE=3 -D_GLIBCXX_ASSERTIONS -O2 -pipe -fexceptions --param=ssp-buffer-size=4 -Wformat -Werror=format-security -mguard=cf -stdlib=libc++ -isystem/usr/aarch64-w64-mingw32/include/c++/v1 -isystem/usr/aarch64-w64-mingw32/include -rtlib=compiler-rt -fuse-ld=lld -mguard=cf -target aarch64-w64-mingw32 -Xclang -triple -Xclang aarch64-w64-mingw32 -D_FORTIFY_SOURCE=3 -D_GLIBCXX_ASSERTIONS -O2 -pipe -fexceptions --param=ssp-buffer-size=4 -Wformat -Werror=format-security -mguard=cf -stdlib=libc++ -isystem/usr/aarch64-w64-mingw32/include/c++/v1 -isystem/usr/aarch64-w64-mingw32/include -DNDEBUG -O2  -rtlib=compiler-rt -fuse-ld=lld -mguard=cf -target aarch64-w64-mingw32 -Xclang -triple -Xclang aarch64-w64-mingw32 -Wl,-O1,--sort-common,--as-needed -fstack-protector -rtlib=compiler-rt -fuse-ld=lld -mguard=cf -target aarch64-w64-mingw32 -Xclang -triple -Xclang aarch64-w64-mingw32 -Wl,-O1,--sort-common,--as-needed -fstack-protector   -Wl,--no-undefined -shared -o lib/qt6/plugins/sqldrivers/qsqlite.dll -Wl,--major-image-version,0,--minor-image-version,0 src/plugins/sqldrivers/sqlite/CMakeFiles/QSQLiteDriverPlugin.dir/QSQLiteDriverPlugin_autogen/mocs_compilation.cpp.obj src/plugins/sqldrivers/sqlite/CMakeFiles/QSQLiteDriverPlugin.dir/qsql_sqlite.cpp.obj src/plugins/sqldrivers/sqlite/CMakeFiles/QSQLiteDriverPlugin.dir/qsql_sqlite_vfs.cpp.obj src/plugins/sqldrivers/sqlite/CMakeFiles/QSQLiteDriverPlugin.dir/smain.cpp.obj src/plugins/sqldrivers/sqlite/CMakeFiles/QSQLiteDriverPlugin.dir/QSQLiteDriverPlugin_resource.rc.res  /usr/aarch64-w64-mingw32/lib/libsqlite3.dll.a  lib/libQt6Sql.dll.a  lib/libQt6Core.dll.a  -lmpr  -luserenv  -lkernel32 -luser32 -lgdi32 -lwinspool -lshell32 -lole32 -loleaut32 -luuid -lcomdlg32 -ladvapi32 && :
ld.lld: error: undefined symbol: sqlite3_column_table_name16
>>> referenced by src/plugins/sqldrivers/sqlite/CMakeFiles/QSQLiteDriverPlugin.dir/qsql_sqlite.cpp.obj:(QSQLiteResultPrivate::initColumns(bool))

There's probably still nothing to be fixed in this PKGBUILD until this has been investigated. I'm just mentioning the build problem so noone is surprised that Qt is not building anymore.

EDIT: This probably just needs -DSQLITE_ENABLE_COLUMN_METADATA=1. However, it would make sense to enable also other features in consistency with the regular sqlite package. I'll come up with an improved version when I have time to build/test things.

Martchus commented on 2025-02-21 11:01 (UTC)

Upstream has responded. My take is that I am going to rebuild other packages against the new library name, see https://sqlite.org/forum/forumpost/f8c55772b3e3e640 and my answer for details. So no changes to the PKGBUILD required :-)

Martchus commented on 2025-02-20 23:21 (UTC) (edited on 2025-02-20 23:21 (UTC) by Martchus)

No, I haven't seen it. I'll read it.

If --soname has no effect on Windows builds I suggest we wait for a reacton from upstream. A symlink is likely not very useful because under Windows one hardly ever wants to deploy a symlink. Just renaming the library is also not an option because the import library will still point to the library under its new name. I suppose we could go for a copy/hardlink. However, that's also not nice because if some part of the dependency tree were already rebuilt and some not one needs both libraries.

So I just wait what upstream responds and if the new name is meant to stay I will simply do the rebuild. If it will be changed back on the next patch release I'll wait for that. So there's probably no need to change this PKGBUILD right now.

jazztickets commented on 2025-02-20 23:04 (UTC)

Have you seen this post? https://www.sqlite.org/src/forumpost/5a3b44f510df8ded

Supposedly you can set '--soname=legacy' in the configure options but it doesn't seem to be working for MinGW. Maybe I should just create a symlink to libsqlite3-0.dll in the package.

Martchus commented on 2025-02-20 22:47 (UTC)

I have asked upstream on their forums about the library name change: https://sqlite.org/forum/forumpost/828fdfe904

Martchus commented on 2025-02-20 22:24 (UTC)

Thanks for updating this. It looks like the library name change from libsqlite3-0.dll to libsqlite3.dll persists after 3.49.1. This is unfortunate because it means several packages this is required by need to be rebuilt. Before doing this it would probably make sense to ask upstream whether this change was actually intended considering there is probably no actual ABI break justifying a library name change.

patlefort commented on 2025-01-16 23:21 (UTC)

I get error 404 on source.