Hi László, On Sa 01 Mär 2025 14:29:13 CET, László Böszörményi (GCS) wrote:
On Sat, Mar 1, 2025 at 1:47 PM Mike Gabriel <sunwea...@debian.org> wrote:I am not 100% sure it builds on all arch, so an upload to experimental sounds good to me. If things pop up, we can amend them, if not, you can proceed with the upload to unstable.Tested locally and it fails to load from the CLI shell: sqlite> .load libSqliteIcu.so Error: /lib/x86_64-linux-gnu/libSqliteIcu.so: undefined symbol: sqlite3_sqliteicu_init But I can load the csv extension for example. Did you test the module on your end? Maybe sqlite3 itself needs to build with ICU support [1].
I found an explanation of why this happens: https://stackoverflow.com/questions/6578600/how-to-compile-sqlite-with-icu/52876577#52876577We have to rename the ICU extension to libIcu.so or icu.so, then it works. But using libIcu.so or icu.so in the main multi-arch libdir is probably a bad idea.
So, my suggestion is to name the loadable module icu.so and ship it in /usr/lib/x86_64-linux-gnu/sqlite/. This requires users to load the module with its full pathname.
See below... (sid-amd64-tests)root@sunobo:~# cd /usr/lib/x86_64-linux-gnu/(sid-amd64-tests)root@sunobo:/usr/lib/x86_64-linux-gnu# mv libSqliteIcu.so libIcu.so
(sid-amd64-tests)root@sunobo:/usr/lib/x86_64-linux-gnu# sqlite3 SQLite version 3.46.1 2024-08-13 09:16:08 Enter ".help" for usage hints. Connected to a transient in-memory database. Use ".open FILENAME" to reopen on a persistent database. sqlite> .load libIcu.so sqlite> (sid-amd64-tests)root@sunobo:/usr/lib/x86_64-linux-gnu# mv libIcu.so icu.so (sid-amd64-tests)root@sunobo:/usr/lib/x86_64-linux-gnu# sqlite3 SQLite version 3.46.1 2024-08-13 09:16:08 Enter ".help" for usage hints. Connected to a transient in-memory database. Use ".open FILENAME" to reopen on a persistent database. sqlite> .load icu.so sqlite> (sid-amd64-tests)root@sunobo:/usr/lib/x86_64-linux-gnu# mkdir sqlite (sid-amd64-tests)root@sunobo:/usr/lib/x86_64-linux-gnu# mv icu.so sqlite/ (sid-amd64-tests)root@sunobo:/usr/lib/x86_64-linux-gnu# sqlite3 SQLite version 3.46.1 2024-08-13 09:16:08 Enter ".help" for usage hints. Connected to a transient in-memory database. Use ".open FILENAME" to reopen on a persistent database. sqlite> .load icu.so Error: icu.so.so: cannot open shared object file: No such file or directory sqlite> .load /usr/lib/x86_64-linux-gnu/sqlite/icu.so sqlite> Any other idea? Mike -- mike gabriel aka sunweaver (Debian Developer) mobile: +49 (1520) 1976 148 landline: +49 (4351) 486 14 27 GnuPG Fingerprint: 9BFB AEE8 6C0A A5FF BF22 0782 9AF4 6B30 2577 1B31 mail: sunwea...@debian.org, http://sunweavers.net
pgpIj8JZJZOjo.pgp
Description: Digitale PGP-Signatur