[Bug 284653] databases/sqlite3: fix build with DEFAULT_VERSIONS+=tcltk=9.0

From: <bugzilla-noreply_at_freebsd.org>
Date: Fri, 07 Nov 2025 18:26:00 UTC
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=284653

--- Comment #5 from Dimitry Andric <dim@FreeBSD.org> ---
(In reply to Matthias Andree from comment #4)
It still seems to be semi-relevant. There is now no error, but at the beginning
of the configure stage, you see:

===>   sqlite3-3.50.4_1,1 depends on executable: tclsh9.0 - found
===>   sqlite3-3.50.4_1,1 depends on shared library: libedit.so.0 - found
(/usr/local/lib/libedit.so.0)
===>  Configuring for sqlite3-3.50.4_1,1                                       
                                                                               
                                                                               
         No installed jimsh or tclsh, building local bootstrap jimsh0          
                                                                               
                                                                               
                  Configuring SQLite version 3.50.4
...
TCL for code generation: jimsh

and then later:

./jimsh
/wrkdirs/usr/ports/databases/sqlite3/work-default/sqlite-src-3500400/tool/mkopcodec.tcl
opcodes.h >opcodes.c
./jimsh
/wrkdirs/usr/ports/databases/sqlite3/work-default/sqlite-src-3500400/tool/mkshellc.tcl
shell.c

The autosetup/autosetup-find-tclsh shell script in the sqlite3 source does:

# Looks for a suitable tclsh or jimsh in the PATH
# If not found, builds a bootstrap jimsh in current dir from source            
                                                                               
                                                                               
         # Prefer $autosetup_tclsh if is set in the environment (unless
./jimsh0 works)                                                                
                                                                               
                          # If an argument is given, use that as the test
instead of autosetup-test-tclsh                                                
                                                                               
                                         d="`dirname "$0"`"                    
                                                                               
                                                                               
                                                  for tclsh in ./jimsh0
$autosetup_tclsh jimsh tclsh tclsh8.5 tclsh8.6 tclsh8.7; do                    
                                                                               
                                                                           {
$tclsh "$d/${1-autosetup-test-tclsh}"; } 2>/dev/null && exit 0                 
                                                                               
                                                                              
done

So the variable `autosetup_tclsh` could be set, or the script could be patched
to try more versions of tclsh. Ideally this should be reported upstream.

Then again, its own "jimsh" replacement seems to be sufficient to generate the
files it needs. So it's probably fine to drop my patch.

I also tried building the port with the TCL option enabled, which seems to
work, even though it still says "No installed jimsh or tclsh, building local
bootstrap jimsh0" !

-- 
You are receiving this mail because:
You are the assignee for the bug.