Bug 290974 - www/node24: build failed in stable/14 using poudriere
Summary: www/node24: build failed in stable/14 using poudriere
Status: Closed Works As Intended
Alias: None
Product: Ports & Packages
Classification: Unclassified
Component: Individual Port(s) (show other bugs)
Version: Latest
Hardware: Any Any
: --- Affects Only Me
Assignee: Po-Chuan Hsieh
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2025-11-12 13:44 UTC by david
Modified: 2025-11-30 18:37 UTC (History)
10 users (show)

See Also:
bugzilla: maintainer-feedback? (sunpoet)


Attachments
(gzipped) copy of the 4.6MB poudriere build log for www/node24 (105.03 KB, application/gzip)
2025-11-12 13:44 UTC, david
no flags Details
(gzipped) copy of 2nd poudriere build log for www/node24 (104.33 KB, application/gzip)
2025-11-12 14:45 UTC, david
no flags Details
Enable_session_option_successful_build_node22 (40.42 KB, image/png)
2025-11-12 15:06 UTC, gessel
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description david 2025-11-12 13:44:09 UTC
Created attachment 265359 [details]
(gzipped) copy of the 4.6MB poudriere build log for www/node24

This is a system running:
FreeBSD freebeast.catwhisker.org 14.3-STABLE FreeBSD 14.3-STABLE #352 stable/14-n272844-6c185061a63b: Wed Nov 12 11:34:14 UTC 2025     root@freebeast.catwhisker.org:/common/S1/obj/usr/src/amd64.amd64/sys/GENERIC amd64

with the ports tree at main-n725644-28e14227f506.

The initial errors in the log are:

   62 | #     define OSSL_DEPRECATED(since) __attribute__((deprecated))
      |                                                    ^
  c++ -o /wrkdirs/usr/ports/www/node24/work/node-v24.11.0/out/Release/embedtest -pthread -rdynamic -Wl,--export-dynamic -Wl,-z,noexecstack -Wl,--whole-archive /wrkdirs/usr/ports/www/node24/work/node-v24.11.0/out/Release/obj.target/tools/v8_gypfiles/libv8_snapshot.a -Wl,--no-whole-archive -Wl,-z,relro -Wl,-z,now -m64    -Wl,--start-group /wrkdirs/usr/ports/www/node24/work/node-v24.11.0/out/Release/obj.target/embedtest/src/node_snapshot_stub.o /wrkdirs/usr/ports/www/node24/work/node-v24.11.0/out/Release/obj.target/embedtest/test/embedding/embedtest.o /wrkdirs/usr/ports/www/node24/work/node-v24.11.0/out/Release/obj.target/libnode.a /wrkdirs/usr/ports/www/node24/work/node-v24.11.0/out/Release/obj.target/deps/histogram/libhistogram.a /wrkdirs/usr/ports/www/node24/work/node-v24.11.0/out/Release/obj.target/deps/nbytes/libnbytes.a /wrkdirs/usr/ports/www/node24/work/node-v24.11.0/out/Release/obj.target/tools/v8_gypfiles/libv8_snapshot.a /wrkdirs/usr/ports/www/node24/work/node-v24.11.0/out/Release/obj.target/tools/v8_gypfiles/libv8_libplatform.a /wrkdirs/usr/ports/www/node24/work/node-v24.11.0/out/Release/obj.target/deps/uvwasi/libuvwasi.a /wrkdirs/usr/ports/www/node24/work/node-v24.11.0/out/Release/obj.target/deps/ada/libada.a /wrkdirs/usr/ports/www/node24/work/node-v24.11.0/out/Release/obj.target/tools/v8_gypfiles/libsimdutf.a /wrkdirs/usr/ports/www/node24/work/node-v24.11.0/out/Release/obj.target/tools/v8_gypfiles/libabseil.a /wrkdirs/usr/ports/www/node24/work/node-v24.11.0/out/Release/obj.target/deps/inspector_protocol/libcrdtp.a /wrkdirs/usr/ports/www/node24/work/node-v24.11.0/out/Release/obj.target/deps/ncrypto/libncrypto.a /wrkdirs/usr/ports/www/node24/work/node-v24.11.0/out/Release/obj.target/tools/v8_gypfiles/libv8_base_without_compiler.a /wrkdirs/usr/ports/www/node24/work/node-v24.11.0/out/Release/obj.target/tools/v8_gypfiles/libv8_libbase.a /wrkdirs/usr/ports/www/node24/work/node-v24.11.0/out/Release/obj.target/tools/v8_gypfiles/libv8_zlib.a /wrkdirs/usr/ports/www/node24/work/node-v24.11.0/out/Release/obj.target/tools/v8_gypfiles/libhighway.a /wrkdirs/usr/ports/www/node24/work/node-v24.11.0/out/Release/obj.target/tools/v8_gypfiles/libv8_compiler.a /wrkdirs/usr/ports/www/node24/work/node-v24.11.0/out/Release/obj.target/tools/v8_gypfiles/libv8_initializers.a /wrkdirs/usr/ports/www/node24/work/node-v24.11.0/out/Release/obj.target/tools/v8_gypfiles/libv8_initializers_slow.a -L/lib -lz -L/usr/local/lib -lllhttp -luv -lsimdjson -lbrotlidec -lbrotlienc -lcares -lnghttp2 -lnghttp3 -lngtcp2 -lsqlite3 -lzstd -lcrypto -lssl -licui18n -licuuc -lutil -lkvm -L/usr/local/lib -lexecinfo -Wl,--end-group
ld: error: undefined symbol: sqlite3session_delete
>>> referenced by node_sqlite.cc
>>>               node_sqlite.o:(node::sqlite::DatabaseSync::DeleteSessions()) in archive /wrkdirs/usr/ports/www/node24/work/node-v24.11.0/out/Release/obj.target/libnode.a
>>> referenced by node_sqlite.cc
>>>               node_sqlite.o:(node::sqlite::DatabaseSync::~DatabaseSync()) in archive /wrkdirs/usr/ports/www/node24/work/node-v24.11.0/out/Release/obj.target/libnode.a
>>> referenced by node_sqlite.cc
>>>               node_sqlite.o:(node::sqlite::DatabaseSync::Close(v8::FunctionCallbackInfo<v8::Value> const&)) in archive /wrkdirs/usr/ports/www/node24/work/node-v24.11.0/out/Release/obj.target/libnode.a
>>> referenced 1 more times

ld: error: undefined symbol: sqlite3session_create
>>> referenced by node_sqlite.cc
>>>               node_sqlite.o:(node::sqlite::DatabaseSync::CreateSession(v8::FunctionCallbackInfo<v8::Value> const&)) in archive /wrkdirs/usr/ports/www/node24/work/node-v24.11.0/out/Release/obj.target/libnode.a

ld: error: undefined symbol: sqlite3session_attach
>>> referenced by node_sqlite.cc
>>>               node_sqlite.o:(node::sqlite::DatabaseSync::CreateSession(v8::FunctionCallbackInfo<v8::Value> const&)) in archive /wrkdirs/usr/ports/www/node24/work/node-v24.11.0/out/Release/obj.target/libnode.a

ld: error: undefined symbol: sqlite3changeset_apply
>>> referenced by node_sqlite.cc
>>>               node_sqlite.o:(node::sqlite::DatabaseSync::ApplyChangeset(v8::FunctionCallbackInfo<v8::Value> const&)) in archive /wrkdirs/usr/ports/www/node24/work/node-v24.11.0/out/Release/obj.target/libnode.a
....

I will attach a gzipped copy of the log,
Comment 1 Vladimir Druzenko freebsd_committer freebsd_triage 2025-11-12 14:11:43 UTC
(In reply to david from comment #0)
Build sqlite3 with SESSION option enable.
Comment 2 david 2025-11-12 14:45:29 UTC
Created attachment 265360 [details]
(gzipped) copy of 2nd poudriere build log for www/node24
Comment 3 david 2025-11-12 14:49:34 UTC
Sigh.  I have trouble with UIs.  I had made a comment before attaching the 2nd log....

I had change the databases/sqlite3 config in poudriere, then re-started the "poudriere bulk"; it:

| [00:12:35] Built ports: databases/sqlite3@default security/nss graphics/colord x11-toolkits/gtk30

but failed on www/node24:

...
/usr/include/openssl/macros.h:62:52: note: expanded from macro 'OSSL_DEPRECATED'
   62 | #     define OSSL_DEPRECATED(since) __attribute__((deprecated))
      |                                                    ^
  c++ -o /wrkdirs/usr/ports/www/node24/work/node-v24.11.0/out/Release/embedtest -pthread -rdynamic -Wl,--export-dynamic -Wl,-z,noexecstack -Wl,--whole-archive /wrkdirs/usr/por
ts/www/node24/work/node-v24.11.0/out/Release/obj.target/tools/v8_gypfiles/libv8_snapshot.a -Wl,--no-whole-archive -Wl,-z,relro -Wl,-z,now -m64    -Wl,--start-group /wrkdirs/us
r/ports/www/node24/work/node-v24.11.0/out/Release/obj.target/embedtest/src/node_snapshot_stub.o /wrkdirs/usr/ports/www/node24/work/node-v24.11.0/out/Release/obj.target/embedte
st/test/embedding/embedtest.o /wrkdirs/usr/ports/www/node24/work/node-v24.11.0/out/Release/obj.target/libnode.a /wrkdirs/usr/ports/www/node24/work/node-v24.11.0/out/Release/ob
j.target/deps/histogram/libhistogram.a /wrkdirs/usr/ports/www/node24/work/node-v24.11.0/out/Release/obj.target/deps/nbytes/libnbytes.a /wrkdirs/usr/ports/www/node24/work/node-
v24.11.0/out/Release/obj.target/tools/v8_gypfiles/libv8_snapshot.a /wrkdirs/usr/ports/www/node24/work/node-v24.11.0/out/Release/obj.target/tools/v8_gypfiles/libv8_libplatform.
a /wrkdirs/usr/ports/www/node24/work/node-v24.11.0/out/Release/obj.target/deps/uvwasi/libuvwasi.a /wrkdirs/usr/ports/www/node24/work/node-v24.11.0/out/Release/obj.target/deps/
ada/libada.a /wrkdirs/usr/ports/www/node24/work/node-v24.11.0/out/Release/obj.target/tools/v8_gypfiles/libsimdutf.a /wrkdirs/usr/ports/www/node24/work/node-v24.11.0/out/Releas
e/obj.target/tools/v8_gypfiles/libabseil.a /wrkdirs/usr/ports/www/node24/work/node-v24.11.0/out/Release/obj.target/deps/inspector_protocol/libcrdtp.a /wrkdirs/usr/ports/www/no
de24/work/node-v24.11.0/out/Release/obj.target/deps/ncrypto/libncrypto.a /wrkdirs/usr/ports/www/node24/work/node-v24.11.0/out/Release/obj.target/tools/v8_gypfiles/libv8_base_w
ithout_compiler.a /wrkdirs/usr/ports/www/node24/work/node-v24.11.0/out/Release/obj.target/tools/v8_gypfiles/libv8_libbase.a /wrkdirs/usr/ports/www/node24/work/node-v24.11.0/ou
t/Release/obj.target/tools/v8_gypfiles/libv8_zlib.a /wrkdirs/usr/ports/www/node24/work/node-v24.11.0/out/Release/obj.target/tools/v8_gypfiles/libhighway.a /wrkdirs/usr/ports/w
ww/node24/work/node-v24.11.0/out/Release/obj.target/tools/v8_gypfiles/libv8_compiler.a /wrkdirs/usr/ports/www/node24/work/node-v24.11.0/out/Release/obj.target/tools/v8_gypfile
s/libv8_initializers.a /wrkdirs/usr/ports/www/node24/work/node-v24.11.0/out/Release/obj.target/tools/v8_gypfiles/libv8_initializers_slow.a -L/lib -lz -L/usr/local/lib -lllhttp
 -luv -lsimdjson -lbrotlidec -lbrotlienc -lcares -lnghttp2 -lnghttp3 -lngtcp2 -lsqlite3 -lzstd -lcrypto -lssl -licui18n -licuuc -lutil -lkvm -L/usr/local/lib -lexecinfo -Wl,--
end-group
ld: error: undefined symbol: sqlite3_load_extension
>>> referenced by node_sqlite.cc
>>>               node_sqlite.o:(node::sqlite::DatabaseSync::LoadExtension(v8::FunctionCallbackInfo<v8::Value> const&)) in archive /wrkdirs/usr/ports/www/node24/work/node-v24.11.0/out/Release/obj.target/libnode.a
c++: error: linker command failed with exit code 1 (use -v to see invocation)
gmake[1]: *** [embedtest.target.mk:198: /wrkdirs/usr/ports/www/node24/work/node-v24.11.0/out/Release/embedtest] Error 1
gmake[1]: *** Waiting for unfinished jobs....
....
Comment 4 gessel 2025-11-12 14:51:06 UTC
The same error appears with www/node22

....
/wrkdirs/usr/ports/www/node22/work/node-v22.21.0/out/Release/obj.target/tools/v8_gypfiles/libv8_initializers_slow.a -L/lib -lz -lllhttp -L/usr/local/lib -luv -lsimdjson -lbrotlidec -lbrotlienc -lcares -lnghttp2 -lnghttp3 -lngtcp2 -lsqlite3 -lzstd -lcrypto -lssl -licui18n -licuuc -lutil -lkvm -L/usr/local/lib -lexecinfo -Wl,--end-group
ld: error: undefined symbol: sqlite3session_delete
>>> referenced by node_sqlite.cc
>>>               node_sqlite.o:(node::sqlite::DatabaseSync::DeleteSessions()) in archive /wrkdirs/usr/ports/www/node22/work/node-v22.21.0/out/Release/obj.target/libnode.a
>>> referenced by node_sqlite.cc
>>>               node_sqlite.o:(node::sqlite::DatabaseSync::~DatabaseSync()) in archive /wrkdirs/usr/ports/www/node22/work/node-v22.21.0/out/Release/obj.target/libnode.a
>>> referenced by node_sqlite.cc
>>>               node_sqlite.o:(node::sqlite::DatabaseSync::Close(v8::FunctionCallbackInfo<v8::Value> const&)) in archive /wrkdirs/usr/ports/www/node22/work/node-v22.21.0/out/Release/obj.target/libnode.a
>>> referenced 1 more times

ld: error: undefined symbol: sqlite3session_create
>>> referenced by node_sqlite.cc
>>>               node_sqlite.o:(node::sqlite::DatabaseSync::CreateSession(v8::FunctionCallbackInfo<v8::Value> const&)) in archive /wrkdirs/usr/ports/www/node22/work/node-v22.21.0/out/Release/obj.target/libnode.a

ld: error: undefined symbol: sqlite3session_attach
>>> referenced by node_sqlite.cc
>>>               node_sqlite.o:(node::sqlite::DatabaseSync::CreateSession(v8::FunctionCallbackInfo<v8::Value> const&)) in archive /wrkdirs/usr/ports/www/node22/work/node-v22.21.0/out/Release/obj.target/libnode.a

ld: error: undefined symbol: sqlite3changeset_apply
>>> referenced by node_sqlite.cc
>>>               node_sqlite.o:(node::sqlite::DatabaseSync::ApplyChangeset(v8::FunctionCallbackInfo<v8::Value> const&)) in archive /wrkdirs/usr/ports/www/node22/work/node-v22.21.0/out/Release/obj.target/libnode.a

ld: error: undefined symbol: sqlite3session_changeset
>>> referenced by node_sqlite.cc
>>>               node_sqlite.o:(void node::sqlite::Session::Changeset<&sqlite3session_changeset>(v8::FunctionCallbackInfo<v8::Value> const&)) in archive /wrkdirs/usr/ports/www/node22/work/node-v22.21.0/out/Release/obj.target/libnode.a

ld: error: undefined symbol: sqlite3session_patchset
>>> referenced by node_sqlite.cc
>>>               node_sqlite.o:(void node::sqlite::Session::Changeset<&sqlite3session_patchset>(v8::FunctionCallbackInfo<v8::Value> const&)) in archive /wrkdirs/usr/ports/www/node22/work/node-v22.21.0/out/Release/obj.target/libnode.a
c++: error: linker command failed with exit code 1 (use -v to see invocation)
gmake[1]: *** [embedtest.target.mk:200: /wrkdirs/usr/ports/www/node22/work/node-v22.21.0/out/Release/embedtest] Error 1
gmake[1]: *** Waiting for unfinished jobs....
rm 50ab21469838fe09aec33e10a940f03ec1ceb58e.intermediate 31ceebfbfe402f3533acd86d0602ac07ef6429d0.intermediate 00eaef43454d973551e280adcefe1fe403769efc.intermediate 2891a414485a69bccb710b28dcc2c7e45f3aba1f.intermediate
gmake: *** [Makefile:135: node] Error 2
===> Compilation failed unexpectedly.
Try to set MAKE_JOBS_UNSAFE=yes and rebuild before reporting the failure to
the maintainer.
*** Error code 1

Stop.
make: stopped in /usr/ports/www/node22
Comment 5 gessel 2025-11-12 15:06:38 UTC
Created attachment 265361 [details]
Enable_session_option_successful_build_node22
Comment 6 gessel 2025-11-12 15:08:15 UTC
Enabling the session option in databases/sqlite3 (image attached for ref) enabled successful build of www/node22 and dependencies.
Comment 7 Frank Reisert 2025-11-12 15:30:43 UTC
Here, with OPTIONS_FILE_SET+=SESSION on sqlite3 node24 build fine.
Comment 8 david 2025-11-12 19:40:43 UTC
There is apparently at least one thing about this that I am not understanding.

I set the SESSION option for databases/sqlite3 to enabled:
freebeast(14.3-S)[12] poudriere options -j 14amd64 -p ports -z home -s databases/sqlite3 | grep -i session
     SESSION=on: Enable the session extension
usage: which [-as] program ...
     SESSION=on: Enable the session extension

and I cleared the repo of the old sqlite3 package:

poudriere pkgclean -j 14amd64 -r -C -z home -p ports databases/sqlite3

and then started a "poudriere bulk":

poudriere bulk -b latest -j 14amd64 -p ports -z home -f /usr/local/etc/poudriere.d/chromium-only

That effort ended with:
[00:12:34] Built ports: databases/sqlite3@default security/nss graphics/colord x11-toolkits/gtk30
[00:12:34] Failed ports: www/node24:build
[00:12:34] Skipped ports: www/chromium www/node
[00:12:34] [14amd64-ports-home] [2025-11-12_19h13m00s] [committing] Time: 00:12:32
           Queued: 7 Inspected: 0 Ignored: 0 Built: 4 Failed: 1 Skipped: 2 Fetched: 0 Remaining: 0
[00:12:34] Logs: /tank/poudriere/poudriere/data/logs/bulk/14amd64-ports-home/2025-11-12_19h13m00s


Up to this point, this (modulo what branch of FreeBSD I was running) has "just worked" for a bit over a decade (with a very few transient exceptions).  (This is the first time I have even tried to run "poudriere pkgclean" -- never had a reason before now.)  And I've been building my packages for regular weekly updates since July 2015.
Comment 9 rkoberman 2025-11-12 19:49:19 UTC
This is not poudriere specific. I am getting the same errors on head. I have updated sqlite3 when =trying to update node24-24.11.0 to node24-24.11.0_1.
Comment 10 david 2025-11-12 22:16:46 UTC
On the off-chance that only requesting that www/chromium (and whatever it needs) be rebuilt might be contributing, I tried again:

poudriere pkgclean -j 14amd64 -r -C -z home -p ports databases/sqlite3
poudriere bulk -b latest -j 14amd64 -p ports -z home -f /usr/local/etc/poudriere.d/14amd64-home-pkglist

It did ... more, but still choked & died with www/node24:
[00:39:16] Removing old packages
[00:39:17] Built ports: databases/sqlite3@default databases/py-sqlite3@py311 www/yt-dlp security/nss devel/libsoup3 devel/libsoup net/geoclue security/gnupg multimedia/mpv multimedia/gstreamer1-plugins-good net/geocode-glib devel/apr1 security/gpgme www/serf security/gpgmepp graphics/colord audio/gstreamer1-plugins-pulse graphics/poppler mail/mutt graphics/poppler-glib devel/subversion graphics/poppler-utils www/apache24 print/cups-filters x11-toolkits/gtk30 print/epson-inkjet-printer-escpr2 net-mgmt/wifimgr x11/nvidia-settings x11/zenity games/sgt-puzzles deskutils/gucharmap graphics/graphviz devel/goffice graphics/gegl print/gutenprint devel/qt6-base databases/qt6-base_sqldriver@sqlite graphics/qt6-svg x11-toolkits/qt6-shadertools graphics/gimp-app print/gimp-gutenprint graphics/gimp editors/abiword math/gnumeric x11-toolkits/qt6-declarative devel/qt6-5compat x11-toolkits/qt6-quicktimeline devel/qt6-tools x11-toolkits/qt6-quick3d multimedia/qt6-multimedia net/wireshark@default
[00:39:17] Failed ports: www/node24:build
[00:39:17] Skipped ports: www/chromium www/firefox www/node
[00:39:17] [14amd64-ports-home] [2025-11-12_20h39m50s] [committing] Time: 00:39:14
           Queued: 55 Inspected: 0 Ignored: 0 Built: 51 Failed: 1 Skipped: 3 Fetched: 0 Remaining: 0
[00:39:17] Logs: /tank/poudriere/poudriere/data/logs/bulk/14amd64-ports-home/2025-11-12_20h39m50s
[00:39:17] Cleaning up
[00:39:17] Unmounting file systems
Comment 11 david 2025-11-12 23:17:41 UTC
Apparently my poudriere setup did not have databases/sqlite3's "EXTENSION" option enabled.

I have now enabled that and restarted the "poudriere bulk."  (While I would have been quite certain that I did not explicitly disable that option -- I am no expert in databases/sqlite3; I merely build & use ports/packages that use it -- the commit history shows it became a default Mon Aug 23 07:32:50 2010 +0000.)

I wonder if there's a (sane) way to compare current poudriere options vs. the default set....

Anyway: www/node24 has now built:
| [00:16:29] [08] [00:14:47] Finished   www/node24 | node24-24.11.0_1: Success

Yay. :-)
Comment 12 rkoberman 2025-11-13 07:00:06 UTC
Still unable to build node24 on head with these same errors. Poudriere not involved, just # portmaster node24.
node24-24.11.0 worked fine (bundled sqlite3, but 24.11.0_1 fails and the only change was to switch to using the databases/sqlite3 version.

Errors are the same as you have seen:ld: error: undefined symbol: sqlite3changeset_apply
>>> referenced by node_sqlite.cc
>>>               /usr/ports/www/node24/work/node-v24.11.0/out/Release/obj.target/libnode/src/node_sqlite.o:(node::sqlite::DatabaseSync::ApplyChangeset(v8::FunctionCallbackInfo<v8::Value> const&)) in archive /usr/ports/www/node24/work/node-v24.11.0/out/Release/obj.target/libnode.a

ld: error: undefined symbol: sqlite3session_changeset
>>> referenced by node_sqlite.cc
>>>               /usr/ports/www/node24/work/node-v24.11.0/out/Release/obj.target/libnode/src/node_sqlite.o:(void node::sqlite::Session::Changeset<&sqlite3session_changeset>(v8::FunctionCallbackInfo<v8::Value> const&)) in archive /usr/ports/www/node24/work/node-v24.11.0/out/Release/obj.target/libnode.a

ld: error: undefined symbol: sqlite3session_patchset
>>> referenced by node_sqlite.cc
>>>               /usr/ports/www/node24/work/node-v24.11.0/out/Release/obj.target/libnode/src/node_sqlite.o:(void node::sqlite::Session::Changeset<&sqlite3session_patchset>(v8::FunctionCallbackInfo<v8::Value> const&)) in archive /usr/ports/www/node24/work/node-v24.11.0/out/Release/obj.target/libnode.a

While it looks like a common issue, maybe I should open a new bug for the non-poudreire case.
Comment 13 david 2025-11-13 11:28:17 UTC
(In reply to rkoberman from comment #12)
I had the same thing on a system where I update ports via portmaster; in that case, enabling the SESSION option fixed it.  (It was for my poudriere builder that I found I needed to enable both SESSION and EXTENSION.)

Given the evidence, I suspect that the system that's causing you this trouble may have at least one other option set in a non-default way, but there are a lot of them, and as I mentioned earlier, I'm no expert with the port (or databases in general, actually).

Here is the output of "make -C /usr/ports/databases/sqlite3 showconfig" on the system I mentioned above (where I use portmaster):
g1-129(14.3-S)[23] make -C /usr/ports/databases/sqlite3 showconfig
===> The following configuration options are available for sqlite3-3.50.4_2,1:
     ARMOR=off: Detect misuse of the API
     DBPAGE=on: Enable DBPAGE Virtual Table
     DBSTAT=on: Enable DBSTAT Virtual Table
     DIRECT_READ=on: File is read directly from disk
     DQS=off: Double-quoted String Literals
     EXAMPLES=on: Build and/or install examples
     EXTENSION=on: Enable loadable extensions
     FTS3_TOKEN=on: Enable two-args version fts3_tokenizer
     FTS4=on: Enable FTS3/4 (Full Text Search) module
     FTS5=on: Enable version 5 full-text search engine
     LIKENOTBLOB=off: LIKE does not match blobs
     MEMMAN=off: Allow it to release unused memory
     METADATA=on: Enable column metadata
     NORMALIZE=off: Enable normalized sql function
     NULL_TRIM=off: Omits NULL columns at the ends of rows
     RBU=off: Enable the resumable bulk update
     SECURE_DELETE=on: Overwrite deleted information with zeros
     SORT_REF=off: To use references in the sorter
     STATIC=off: Build static executables and/or libraries
     STMT=off: Prepared statement scan status
     STRIP=on: Strip binaries before installation
     TCL=off: Enable tcl extension and sqlite_analyzer
     THREADS=on: Threading support
     TRUSTED_SCHEMA=off: SQL functions & virtual tables are considered unsafe
     UNKNOWN_SQL=off: Suppress unknown function errors
     UNLOCK_NOTIFY=on: Enable notification on unlocking
     UPDATE_LIMIT=off: UPDATE/DELETE is extended with ORDER BY and LIMIT
     URI=on: Enable use the URI filename
     URI_AUTHORITY=off: Allow convert URL into a UNC
====> Optional extensions
     SESSION=on: Enable the session extension
====> Optional functions
     OFFSET=off: Enable sqlite_offset() returning records file offset
     SOUNDEX=off: Enable the soundex() SQL function
====> Index type for range queries
     GEOPOLY=off: Uses the GeoJSON notation (RFC-7946)
     RTREE=on: Enable R*Tree module
     RTREE_INT=off: Store 32-bit sig int (no float) coordinates
====> Unicode support
     ICU=off: Unicode support via ICU
     UNICODE61=on: Unicode Version 6.1 tokenizer
====> Where to store temporary file: you have to select exactly one of them
     TS0=off: Always use temporary file
     TS1=on: File by default, change allowed PRAGMA
     TS2=off: Memory by default, change allowed PRAGMA
     TS3=off: Always use memory
====> Which query planner to use, stability or ...: you can only select none or one of them
     STAT3=off: Collect histogram data from leftmost column
     STAT4=off: Collect histogram data from all columns
====> Command line editing library: you can only select none or one of them
     LIBEDIT=on: Command line editing via libedit
     READLINE=off: Command line editing via libreadline
===> Use 'make config' to modify these settings

You should be able to run the same command & save results to a file, grab the above to a different file, and compare the 2 files.  That should do no harm, and may help identify what's at issue.  Good luck!
Comment 14 rkoberman 2025-11-14 00:04:37 UTC
(In reply to david from comment #13)
Thanks! I have rebuilt sqlite3 and node24 built correctly. I would suggest that the build check config and exit if SESSION is not selected. I would also add EXTENSION if SESSION is selected as session requires EXTENSION. Depending on its impact, perhaps they might be made a flavor or default.
Comment 15 rkoberman 2025-11-14 20:35:45 UTC
Just was reading the SQLite3 Makefile and I see that SESSION and EXTENSION are now set by default. It was committed 2025-11-11 07:17:10, so, if  your sources are up to date and you have not created a modified config, it should just work.
Comment 16 jakub_lach 2025-11-20 05:05:38 UTC
(In reply to rkoberman from comment #14)

Just fyi - I've installed node24 from packages to build www/firefox -

checking for nodejs... ld-elf.so.1: /usr/local/bin/node: Undefined symbol "sqlite3session_delete"
no
ERROR: could not find Node.js executable later than 12.22.12; ensure `node` or `nodejs` is in PATH or set NODEJS in environment to point to an executable.
Comment 17 Vladimir Druzenko freebsd_committer freebsd_triage 2025-11-20 12:35:24 UTC
(In reply to jakub_lach from comment #16)
Rebuild sqlite3 with SESSION and EXTENSION options.
Comment 18 jakub_lach 2025-11-20 12:50:23 UTC
(In reply to Vladimir Druzenko from comment #17)

That's correct, I've just rmconfig.
Comment 19 bsd 2025-11-27 17:00:25 UTC
Just a note: I experienced the same symptoms trying to build www/librewolf which requires www/mode24. After looking here I just did

portmaster --force-config sqlite3

and selected options SESSION under EXTENSION section and that was it. Building www/librewolf succeeded with no errors. So I think maybe this SESSION option should be default ON, no idea it has any unpleasant side effects.
Comment 20 david 2025-11-27 17:09:49 UTC
(In reply to bsd from comment #19)
Right; per:

commit b5b732d31a22ebba5dd27d23acbfae5c7511da41
Author:     Po-Chuan Hsieh <sunpoet@FreeBSD.org>
AuthorDate: Tue Nov 11 15:13:27 2025 +0800
Commit:     Po-Chuan Hsieh <sunpoet@FreeBSD.org>
CommitDate: Tue Nov 11 15:17:10 2025 +0800

    databases/sqlite3: Enable SESSION option by default

    - Update WWW
    - Add LICENSE_FILE
    - Remove unnecessary substitution
    - Remove unnecessary double quotation mark
    - Bump PORTREVISION for package change

    PR:             290588
    Approved by:    maintainer (timeout, 14 days)

SESSION is default "on" for databases/sqlite3 (now); the problem (as I see it) is that folks who already had the port/package installed with the SESSION option set "off" wouldn't have a ready way to know that they need to make a change.

Similar issues may well apply to other options (and other ports/packages).

Perhaps, given the cascading nature of the failures, a ports/UPDATING entry might have been appropriate?  Maybe...?
Comment 21 Po-Chuan Hsieh freebsd_committer freebsd_triage 2025-11-30 07:40:22 UTC
(In reply to david from comment #20)

I've added an UPDATING entry in ports 1ca84c7f4b456bbbbd5b204070d09904e42e0ef2.

Thanks.
Comment 22 david 2025-11-30 18:37:41 UTC
(In reply to Po-Chuan Hsieh from comment #21)
Thank you. :-)