Skip to content

Bump SQLite to 3.49.1.0 #667

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

Merged
merged 16 commits into from
Jul 7, 2025
Merged

Bump SQLite to 3.49.1.0 #667

merged 16 commits into from
Jul 7, 2025

Conversation

zanieb
Copy link
Member

@zanieb zanieb commented Jun 22, 2025

Closes #666

@zanieb zanieb changed the title zb/sqlite 49 Bump SQLite to 3.49.1.0 Jun 22, 2025
@zanieb
Copy link
Member Author

zanieb commented Jun 26, 2025

SQLite changed from autoconf to autosetup which appears to have some minor differences. First, we had to use --prefix=<value> instead of --prefix <value. Second, it doesn't seem to be able to find our compiler. Maybe it's searching the PATH but for the wrong name? Maybe it's searching for the absolute executable path instead of just the name? I'm not sure.

sqlite> + ./configure --build=x86_64-unknown-linux-gnu --host=aarch64-unknown-linux-gnu --prefix=/tools/deps --disable-shared
sqlite> ~/sqlite-autoconf-3490100 ~
sqlite> No installed jimsh or tclsh, building local bootstrap jimsh0
sqlite> Host System...aarch64-unknown-linux-gnu
sqlite> Build System...x86_64-unknown-linux-gnu
sqlite> Error: failed to find: /usr/bin/aarch64-linux-gnu-g++
sqlite> Try: 'configure --help' for options

@indygreg
Copy link
Collaborator

It can't find the C++ compiler, likely because it isn't looking for clang++ or clang++ isn't on PATH.

It's a common pattern for us to export CC=... for the full path to the C++ compiler. Is this as simple as needing to export CXX to point to clang++?

It is also possible clang++ is being invoked but is failing because of something like libstdc++ not being in the expected place. I don't believe there's currently any C++ code in PBS, so ensuring the C++ toolchain works isn't something we've encountered yet.

@zanieb
Copy link
Member Author

zanieb commented Jul 5, 2025

Thanks for the hints, I can poke at that.

Some of the macOS builds fail with

sqlite> + /usr/bin/install -d /private/var/folders/y4/8dcllrc96x32z0w3fgrlx6_m0000gn/T/tmp3ray00qa/out/tools/deps/bin
sqlite> + /usr/bin/install -d /private/var/folders/y4/8dcllrc96x32z0w3fgrlx6_m0000gn/T/tmp3ray00qa/out/tools/deps/lib/pkgconfig
sqlite> + /usr/bin/install -d /private/var/folders/y4/8dcllrc96x32z0w3fgrlx6_m0000gn/T/tmp3ray00qa/out/tools/deps/share/man/man1
sqlite> + /usr/bin/install -d /private/var/folders/y4/8dcllrc96x32z0w3fgrlx6_m0000gn/T/tmp3ray00qa/out/tools/deps/lib
sqlite> /usr/bin/install sqlite3 "/private/var/folders/y4/8dcllrc96x32z0w3fgrlx6_m0000gn/T/tmp3ray00qa/out/tools/deps/bin"
sqlite> + /usr/bin/install -d /private/var/folders/y4/8dcllrc96x32z0w3fgrlx6_m0000gn/T/tmp3ray00qa/out/tools/deps/include
sqlite> install: mkdir /private/var/folders/y4/8dcllrc96x32z0w3fgrlx6_m0000gn/T/tmp3ray00qa/out/tools/deps/lib: File exists
sqlite> /usr/bin/install -m 0644 libsqlite3.a "/private/var/folders/y4/8dcllrc96x32z0w3fgrlx6_m0000gn/T/tmp3ray00qa/out/tools/deps/lib"
sqlite> make: *** [/private/var/folders/y4/8dcllrc96x32z0w3fgrlx6_m0000gn/T/tmp3ray00qa/out/tools/deps/lib/pkgconfig] Error 71

but some of the other macOs builds succeed

sqlite> + make -j 7 install DESTDIR=/private/var/folders/y4/8dcllrc96x32z0w3fgrlx6_m0000gn/T/tmpidcyumcw/out
sqlite> + /usr/bin/install -d /private/var/folders/y4/8dcllrc96x32z0w3fgrlx6_m0000gn/T/tmpidcyumcw/out/tools/deps/lib
sqlite> + /usr/bin/install -d /private/var/folders/y4/8dcllrc96x32z0w3fgrlx6_m0000gn/T/tmpidcyumcw/out/tools/deps/lib/pkgconfig
sqlite> + /usr/bin/install -d /private/var/folders/y4/8dcllrc96x32z0w3fgrlx6_m0000gn/T/tmpidcyumcw/out/tools/deps/include
sqlite> + /usr/bin/install -d /private/var/folders/y4/8dcllrc96x32z0w3fgrlx6_m0000gn/T/tmpidcyumcw/out/tools/deps/bin
sqlite> /usr/bin/install -m 0644 libsqlite3.a "/private/var/folders/y4/8dcllrc96x32z0w3fgrlx6_m0000gn/T/tmpidcyumcw/out/tools/deps/lib"
sqlite> + /usr/bin/install -d /private/var/folders/y4/8dcllrc96x32z0w3fgrlx6_m0000gn/T/tmpidcyumcw/out/tools/deps/share/man/man1
sqlite> /usr/bin/install -m 0644 sqlite3.pc "/private/var/folders/y4/8dcllrc96x32z0w3fgrlx6_m0000gn/T/tmpidcyumcw/out/tools/deps/lib/pkgconfig"
sqlite> /usr/bin/install -m 0644 /private/var/folders/y4/8dcllrc96x32z0w3fgrlx6_m0000gn/T/tmpidcyumcw/sqlite-autoconf-3490100/sqlite3.h /private/var/folders/y4/8dcllrc96x32z0w3fgrlx6_m0000gn/T/tmpidcyumcw/sqlite-autoconf-3490100/sqlite3ext.h "/private/var/folders/y4/8dcllrc96x32z0w3fgrlx6_m0000gn/T/tmpidcyumcw/out/tools/deps/include"
sqlite> /usr/bin/install -s sqlite3 "/private/var/folders/y4/8dcllrc96x32z0w3fgrlx6_m0000gn/T/tmpidcyumcw/out/tools/deps/bin"
sqlite> /usr/bin/install -m 0644 /private/var/folders/y4/8dcllrc96x32z0w3fgrlx6_m0000gn/T/tmpidcyumcw/sqlite-autoconf-3490100/sqlite3.1 "/private/var/folders/y4/8dcllrc96x32z0w3fgrlx6_m0000gn/T/tmpidcyumcw/out/tools/deps/share/man/man1"
sqlite> copying built files to /Users/runner/work/python-build-standalone/python-build-standalone/build/sqlite-3490100-aarch64-apple-darwin-debug.tar

presumably a race condition, I guess I'll try 1e59526

@zanieb
Copy link
Member Author

zanieb commented Jul 5, 2025

Setting CC and CXX gets us to

sqlite> + CC=clang
sqlite> + CXX=clang++
sqlite> + CFLAGS='-march=x86-64-v2 -fvisibility=hidden -DSQLITE_ENABLE_DBSTAT_VTAB -DSQLITE_ENABLE_FTS3 -DSQLITE_ENABLE_FTS3_PARENTHESIS -DSQLITE_ENABLE_FTS3_TOKENIZER -fPIC'
sqlite> + CPPFLAGS='-march=x86-64-v2 -fvisibility=hidden -fPIC'
sqlite> + LDFLAGS=
sqlite> + ./configure --build=x86_64-unknown-linux-gnu --host=x86_64-unknown-linux-musl --prefix=/tools/deps --disable-shared
sqlite> No installed jimsh or tclsh, building local bootstrap jimsh0
sqlite> No working C compiler found. Tried cc and gcc.

@zanieb
Copy link
Member Author

zanieb commented Jul 5, 2025

For quick reference, here's the compiler code from sqlite's autosetup

show

proc cc-init {} {
global autosetup

# Initialise some values from the environment or commandline or default settings
foreach i {LDFLAGS LIBS CPPFLAGS LINKFLAGS CFLAGS} {
	lassign $i var default
	define $var [get-env $var $default]
}

if {[env-is-set CC]} {
	# Set by the user, so don't try anything else
	set try [list [get-env CC ""]]
} else {
	# Try some reasonable options
	set try [list [get-define cross]cc [get-define cross]gcc]
}
define CC [find-an-executable {*}$try]
if {[get-define CC] eq ""} {
	user-error "Could not find a C compiler. Tried: [join $try ", "]"
}

define CPP [get-env CPP "[get-define CC] -E"]

# XXX: Could avoid looking for a C++ compiler until requested
# If CXX isn't found, it is set to the empty string.
if {[env-is-set CXX]} {
	define CXX [find-an-executable -required [get-env CXX ""]]
} else {
	define CXX [find-an-executable [get-define cross]c++ [get-define cross]g++]
}

# CXXFLAGS default to CFLAGS if not specified
define CXXFLAGS [get-env CXXFLAGS [get-define CFLAGS]]

# May need a CC_FOR_BUILD, so look for one
define CC_FOR_BUILD [find-an-executable [get-env CC_FOR_BUILD ""] cc gcc false]

# These start empty and never come from the user or environment
define AS_CFLAGS ""
define AS_CPPFLAGS ""
define AS_CXXFLAGS ""

define CCACHE [find-an-executable [get-env CCACHE ccache]]

# If any of these are set in the environment, propagate them to the AUTOREMAKE commandline
foreach i {CC CXX CCACHE CPP CFLAGS CXXFLAGS CXXFLAGS LDFLAGS LIBS CROSS CPPFLAGS LINKFLAGS CC_FOR_BUILD LD} {
	if {[env-is-set $i]} {
		# Note: If the variable is set on the command line, get-env will return that value
		# so the command line will continue to override the environment
		define-append-argv AUTOREMAKE $i=[get-env $i ""]
	}
}

# Initial cctest settings
cc-store-settings {-cflags {} -includes {} -declare {} -link 0 -lang c -libs {} -code {} -nooutput 0}
set autosetup(cc-include-deps) {}

msg-result "C compiler...[get-define CCACHE] [get-define CC] [get-define CFLAGS] [get-define CPPFLAGS]"
if {[get-define CXX] ne "false"} {
	msg-result "C++ compiler...[get-define CCACHE] [get-define CXX] [get-define CXXFLAGS] [get-define CPPFLAGS]"
}
msg-result "Build C compiler...[get-define CC_FOR_BUILD]"

# On Darwin, we prefer to use -g0 to avoid creating .dSYM directories
# but some compilers may not support it, so test here.
switch -glob -- [get-define host] {
	*-*-darwin* {
		if {[cctest -cflags {-g0}]} {
			define cc-default-debug -g0
		}
	}
}

if {![cc-check-includes stdlib.h]} {
	user-error "Compiler does not work. See config.log"
}

}

@indygreg
Copy link
Collaborator

indygreg commented Jul 5, 2025

CC_FOR_BUILD should likely be host compiler and CC should likely be target compiler. There's also a CROSS you may need to set if cross-compiling is enabled.

It's never semantically correct for the host and target compiler to come from the same PBS variable.

@zanieb
Copy link
Member Author

zanieb commented Jul 5, 2025

CC_FOR_BUILD should likely be host compiler and CC should likely be target compiler.

Yeah that's what I tried first and it failed to find CC. I reverted to CC as the host compiler just so I could see if we succeeded on the CC_FOR_BUILD step, I didn't expect it to be semantically correct. We actually don't propagate TARGET_CC to jobs though, so the previous commit was just wrong.

I think CROSS is just being used a prefix for the default cc and gcc search.

@zanieb
Copy link
Member Author

zanieb commented Jul 5, 2025

The static musl build of sqlite is failing with

2025-07-05T19:21:13.7576278Z sqlite> musl-clang -o libsqlite3.so  sqlite3.o -shared \
2025-07-05T19:21:13.7577260Z sqlite> 	 -rpath /tools/deps/lib        \
2025-07-05T19:21:13.7806262Z sqlite> clang-14
2025-07-05T19:21:13.7807293Z sqlite> :
2025-07-05T19:21:13.7807543Z sqlite> warning:
2025-07-05T19:21:13.7808156Z sqlite> argument unused during compilation: '-nostdinc' [-Wunused-command-line-argument]
2025-07-05T19:21:13.8825345Z sqlite> /tools/host/bin/ld:
2025-07-05T19:21:13.8827661Z sqlite> /tools/host/lib/libc.a(sysconf.o)
2025-07-05T19:21:13.8828302Z sqlite> : relocation
2025-07-05T19:21:13.8828683Z sqlite> R_X86_64_32S
2025-07-05T19:21:13.8828981Z sqlite> against
2025-07-05T19:21:13.8829548Z sqlite> `
2025-07-05T19:21:13.8830109Z sqlite> .rodata.sysconf.values
2025-07-05T19:21:13.8830418Z sqlite> ' can not be used when making
2025-07-05T19:21:13.8833815Z sqlite> a shared object
2025-07-05T19:21:13.8834332Z sqlite> ; recompile with -fPIC
2025-07-05T19:21:13.8834633Z sqlite> /tools/host/bin/ld
2025-07-05T19:21:13.8834932Z sqlite> : failed to set dynamic section sizes:
2025-07-05T19:21:13.8835228Z sqlite> bad value
2025-07-05T19:21:13.8843433Z sqlite> clang-14
2025-07-05T19:21:13.8844710Z sqlite> :
2025-07-05T19:21:13.8845077Z sqlite> error:
2025-07-05T19:21:13.8845426Z sqlite> linker command failed with exit code 1 (use -v to see invocation)
2025-07-05T19:21:13.8865888Z sqlite> Makefile:149: recipe for target 'libsqlite3.so' failed
2025-07-05T19:21:13.8866613Z sqlite> make: *** [libsqlite3.so] Error 1

we are setting -fPIC for our sqlite build unconditionally

2025-07-05T19:21:08.6448702Z sqlite> C compiler... musl-clang -fvisibility=hidden -DSQLITE_ENABLE_DBSTAT_VTAB -DSQLITE_ENABLE_FTS3 -DSQLITE_ENABLE_FTS3_PARENTHESIS -DSQLITE_ENABLE_FTS3_TOKENIZER -fPIC -fvisibility=hidden -fPIC
2025-07-05T19:21:08.6449813Z sqlite> C++ compiler... clang++ -fvisibility=hidden -DSQLITE_ENABLE_DBSTAT_VTAB -DSQLITE_ENABLE_FTS3 -DSQLITE_ENABLE_FTS3_PARENTHESIS -DSQLITE_ENABLE_FTS3_TOKENIZER -fPIC -fvisibility=hidden -fPIC

and our musl libc is built with -fPIC conditionally

SHARED=
if [ -n "${STATIC}" ]; then
    SHARED="--disable-shared"
else
    SHARED="--enable-shared"
    CFLAGS="${CFLAGS} -fPIC" CPPFLAGS="${CPPFLAGS} -fPIC"
fi

I think the problem is really that we're building a shared sqlite? Is --disable-shared not working, that wouldn't really make sense though?

CONFIGURE_FLAGS="${CONFIGURE_FLAGS} --prefix /tools/deps --disable-shared"
CONFIGURE_FLAGS="${CONFIGURE_FLAGS} --prefix=/tools/deps --disable-shared"
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is a syntax difference between autosetup and autoconf


make -j ${NUM_CPUS}
make -j ${NUM_CPUS} install DESTDIR=${ROOT}/out
make -j ${NUM_CPUS} libsqlite3.a
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

make implies make all which includes the shared library despite --disable-shared

Comment on lines 62 to 69
g++-aarch64-linux-gnu \
g++-arm-linux-gnueabi \
g++-arm-linux-gnueabihf \
g++-mips-linux-gnu \
g++-mips64el-linux-gnuabi64 \
g++-mipsel-linux-gnu \
g++-powerpc64le-linux-gnu \
g++-s390x-linux-gnu \
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We need a C++ compiler for this build now.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@zanieb zanieb marked this pull request as ready for review July 5, 2025 23:06

if [ "${TARGET_TRIPLE}" = "aarch64-apple-ios" ]; then
CONFIGURE_FLAGS="${CONFIGURE_FLAGS} ac_cv_search_system=no"
elif [ "${TARGET_TRIPLE}" = "x86_64-apple-ios" ]; then
CONFIGURE_FLAGS="${CONFIGURE_FLAGS} ac_cv_search_system=no"
fi

CFLAGS="${EXTRA_TARGET_CFLAGS} -DSQLITE_ENABLE_DBSTAT_VTAB -DSQLITE_ENABLE_FTS3 -DSQLITE_ENABLE_FTS3_PARENTHESIS -DSQLITE_ENABLE_FTS3_TOKENIZER -fPIC" CPPFLAGS="${EXTRA_TARGET_CFLAGS} -fPIC" LDFLAGS="${EXTRA_TARGET_LDFLAGS}" ./configure ${CONFIGURE_FLAGS}
CC_FOR_BUILD="${HOST_CC}" CFLAGS="${EXTRA_TARGET_CFLAGS} -DSQLITE_ENABLE_DBSTAT_VTAB -DSQLITE_ENABLE_FTS3 -DSQLITE_ENABLE_FTS3_PARENTHESIS -DSQLITE_ENABLE_FTS3_TOKENIZER -fPIC" CPPFLAGS="${EXTRA_TARGET_CFLAGS} -fPIC" LDFLAGS="${EXTRA_TARGET_LDFLAGS}" ./configure ${CONFIGURE_FLAGS}
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The autosetup script use CC_FOR_BUILD instead of HOST_CC.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not an actual concern but -fPIC for the preprocessor (CPPFLAGS) seems unneeded, I wonder why we were doing this.

@indygreg
Copy link
Collaborator

indygreg commented Jul 6, 2025

What exactly in SQLite needs C++? If they introduced a hard dependency on C++, I'd be shocked. It feels like a build system bug or use issue if C++ is actually required.

@zanieb
Copy link
Member Author

zanieb commented Jul 6, 2025

I'm not sure. I can look into that.

I guess this could be relevant

	# XXX: Could avoid looking for a C++ compiler until requested
	# If CXX isn't found, it is set to the empty string.
	if {[env-is-set CXX]} {
		define CXX [find-an-executable -required [get-env CXX ""]]
	} else {
		define CXX [find-an-executable [get-define cross]c++ [get-define cross]g++]
	}

Since we set CXX it looks for it?

@zanieb
Copy link
Member Author

zanieb commented Jul 6, 2025

Good call!

Copy link
Collaborator

@geofft geofft left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

TIL about autosetup, interesting.


if [ "${TARGET_TRIPLE}" = "aarch64-apple-ios" ]; then
CONFIGURE_FLAGS="${CONFIGURE_FLAGS} ac_cv_search_system=no"
elif [ "${TARGET_TRIPLE}" = "x86_64-apple-ios" ]; then
CONFIGURE_FLAGS="${CONFIGURE_FLAGS} ac_cv_search_system=no"
fi

CFLAGS="${EXTRA_TARGET_CFLAGS} -DSQLITE_ENABLE_DBSTAT_VTAB -DSQLITE_ENABLE_FTS3 -DSQLITE_ENABLE_FTS3_PARENTHESIS -DSQLITE_ENABLE_FTS3_TOKENIZER -fPIC" CPPFLAGS="${EXTRA_TARGET_CFLAGS} -fPIC" LDFLAGS="${EXTRA_TARGET_LDFLAGS}" ./configure ${CONFIGURE_FLAGS}
CC_FOR_BUILD="${HOST_CC}" CFLAGS="${EXTRA_TARGET_CFLAGS} -DSQLITE_ENABLE_DBSTAT_VTAB -DSQLITE_ENABLE_FTS3 -DSQLITE_ENABLE_FTS3_PARENTHESIS -DSQLITE_ENABLE_FTS3_TOKENIZER -fPIC" CPPFLAGS="${EXTRA_TARGET_CFLAGS} -fPIC" LDFLAGS="${EXTRA_TARGET_LDFLAGS}" ./configure ${CONFIGURE_FLAGS}
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not an actual concern but -fPIC for the preprocessor (CPPFLAGS) seems unneeded, I wonder why we were doing this.

@zanieb zanieb merged commit 9b796d4 into main Jul 7, 2025
115 checks passed
@zanieb zanieb deleted the zb/sqlite-49 branch July 7, 2025 20:19
@corbt
Copy link

corbt commented Jul 10, 2025

A uv-provided python 3.12 install (specifically cpython-3.12.11-linux-x86_64-gnu) that I just ran on a fresh machine appears to be missing the fts5 sqlite extension. When I've run the same script in the past, the extension was available.

Claude wrote me a script to check the installation configuration, and it appears that the ENABLE_FTS5 compile option is missing.

Is it possible that this change removed that option somehow?

=== Python Environment ===
Python Version: 3.12.11 (main, Jul  8 2025, 20:59:33) [Clang 20.1.4 ]
Python Executable: /root/sky_workdir/.venv/bin/python3
Platform: Linux-6.8.0-57-generic-x86_64-with-glibc2.31
Machine: x86_64

=== SQLite Information ===
SQLite Version: 3.49.1
/root/sky_workdir/test_sqlite3.py:23: DeprecationWarning: version is deprecated and will be removed in Python 3.14
  print(f"SQLite Module Version: {sqlite3.version}")
SQLite Module Version: 2.6.0
SQLite Module Path: /root/.local/share/uv/python/cpython-3.12.11-linux-x86_64-gnu/lib/python3.12/sqlite3/__init__.py

=== SQLite Compile Options ===
  ATOMIC_INTRINSICS=1
  COMPILER=clang-20.1.4
  DEFAULT_AUTOVACUUM
  DEFAULT_CACHE_SIZE=-2000
  DEFAULT_FILE_FORMAT=4
  DEFAULT_JOURNAL_SIZE_LIMIT=-1
  DEFAULT_MMAP_SIZE=0
  DEFAULT_PAGE_SIZE=4096
  DEFAULT_PCACHE_INITSZ=20
  DEFAULT_RECURSIVE_TRIGGERS
  DEFAULT_SECTOR_SIZE=4096
  DEFAULT_SYNCHRONOUS=2
  DEFAULT_WAL_AUTOCHECKPOINT=1000
  DEFAULT_WAL_SYNCHRONOUS=2
  DEFAULT_WORKER_THREADS=0
  DIRECT_OVERFLOW_READ
  ENABLE_DBSTAT_VTAB
  ENABLE_FTS3
  ENABLE_FTS3_PARENTHESIS
  ENABLE_FTS3_TOKENIZER
  ENABLE_MATH_FUNCTIONS
  MALLOC_SOFT_LIMIT=1024
  MAX_ATTACHED=10
  MAX_COLUMN=2000
  MAX_COMPOUND_SELECT=500
  MAX_DEFAULT_PAGE_SIZE=8192
  MAX_EXPR_DEPTH=1000
  MAX_FUNCTION_ARG=1000
  MAX_LENGTH=1000000000
  MAX_LIKE_PATTERN_LENGTH=50000
  MAX_MMAP_SIZE=0x7fff0000
  MAX_PAGE_COUNT=0xfffffffe
  MAX_PAGE_SIZE=65536
  MAX_SQL_LENGTH=1000000000
  MAX_TRIGGER_DEPTH=1000
  MAX_VARIABLE_NUMBER=32766
  MAX_VDBE_OP=250000000
  MAX_WORKER_THREADS=8
  MUTEX_PTHREADS
  SYSTEM_MALLOC
  TEMP_STORE=1
  THREADSAFE=1

=== FTS Support Check ===
✓ FTS3 is supported
✓ FTS4 is supported
✗ FTS5 not supported: no such module: fts5

=== pysqlite3-binary Check ===
✗ pysqlite3-binary is NOT installed
  To install: pip install pysqlite3-binary

=== Package Manager Info ===
✓ apt-get available at: /usr/bin/apt-get
✗ yum not found
✗ dnf not found
✓ brew available at: /home/linuxbrew/.linuxbrew/bin/brew
✓ conda available at: /root/miniconda3/bin/conda

=== Environment Variables ===
LD_LIBRARY_PATH: /usr/local/nvidia/lib:/usr/local/nvidia/lib64
DYLD_LIBRARY_PATH: <not set>
PATH: /root/sky_workdir/.venv/bin:/root/.local/bin:/root/miniconda3/bin:/root/miniconda3/condabin:/home...
PYTHONPATH: <not set>

@zanieb
Copy link
Member Author

zanieb commented Jul 10, 2025

Previously we only had -DSQLITE_ENABLE_FTS3 and that was retained here, I don't think it changed?

@zanieb
Copy link
Member Author

zanieb commented Jul 10, 2025

They did change the build system though so it's possible some default changed. I'll look into enabling it.

@corbt
Copy link

corbt commented Jul 10, 2025

Hmm I'm not sure. I've tried running my setup script on two fresh VMs now and it failed to find the fts5 extension on both of them. I'm falling back to the system python now using uv run --no-managed-python which fixes my immediate issue, but it does seem that the uv-managed installation is missing the extension.

@zanieb
Copy link
Member Author

zanieb commented Jul 10, 2025

#694 looks to do the trick

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

Successfully merging this pull request may close these issues.

Remark on Windows builds: python-build 3.12.11 of sqlite3.dll is sqlite-3.47.1, while official cpython-3.12.10 uses sqlite-3.49.1
4 participants