SQLite

View Ticket
Login
Ticket Hash: 7d96113ff0aac1d54c96f9c0268fad1b6d757892
Title: SQLite fails to build when TCL isn't installed
Status: Fixed Type: Build_Problem
Severity: Important Priority: Immediate
Subsystem: Makefile Resolution: Fixed
Last Modified: 2010-03-27 16:52:27
Version Found In: 3.6.17 + 7f4810747b
Description:
SQLite 3.6.17, with patch based on commit 7f4810747b0864981f27edbd504bfab2efea1e3c applied, fails to build when TCL isn't installed.
# make
cat ./src/sqlite.h.in | tclsh ./tool/mksqlite3h.tcl `cat ./VERSION` > sqlite3.h
/bin/sh: tclsh: command not found
make: *** [sqlite3.h] Error 127

drh added on 2009-08-16 18:03:57:
Here are some of my thoughts on requiring the use of tclsh in order to build SQLite from sources:

  1. The recommended way of building SQLite is to use the amalgamation products that are made available with each release. Tcl is not required to build the amalgamation. Tcl is only required for building from the intermediate check-ins.
  1. TCL has been installed by default on every Mac and on every version of Linux that I have ever used. And installing TCL o windows is very simple. Requiring TCL is not especially onerous.
  1. SQLite began life as a TCL extension. SQLite is a TCL extension that escaped into the wild. It is fitting, therefore, for SQLite to pay homage to its progenitor.

With these things in mind, I really don't have a problem with requiring TCL in order to build SQLite from canonical sources.


anonymous claiming to be Arfrever@Gentoo.Org added on 2009-08-17 11:55:33:
The amalgamation tarball doesn't contain extensions, tests, TCL bindings etc.

If the build-time dependency on TCL has to remain, then please update documentation (e.g. README) to state this.


drh added on 2009-09-09 14:49:13:
README file updated by check-in [ba20091ae8146d276414f97527bf63e50fac8691].


anonymous claiming to be Jeff Kowalczyk added on 2010-03-27 16:52:27:
I would respectfully ask that you reconsider the decision. For a source-based distribution such as Gentoo Linux, this imposes a unwanted dependency on tcl in order to use the desirable amalgamation build option.