mirror of
https://github.com/sqlite/sqlite.git
synced 2025-08-10 01:02:56 +03:00
Update the srctree-check.tcl script and child script so that they can be run
on a read-only source tree and so that if any inconsistencies are found, the script returns a non-zero exit code and thus halts the build. FossilOrigin-Name: a0cc7e8117abf03c8d0ab903f1f4b8ff48b6c0e6de85080c9d2a915fd1c16778
This commit is contained in:
19
manifest
19
manifest
@@ -1,5 +1,5 @@
|
|||||||
C Fix\san\sfts5\sproblem\swhere\sa\stransaction\sconsisting\sof\s(a)\sa\sDELETE\son\srowid\sX,\s(b)\sa\sprefix\squery,\sand\s(c)\san\sINSERT\son\srowid\sX,\scould\scorrupt\sthe\sindex.
|
C Update\sthe\ssrctree-check.tcl\sscript\sand\schild\sscript\sso\sthat\sthey\scan\sbe\srun\non\sa\sread-only\ssource\stree\sand\sso\sthat\sif\sany\sinconsistencies\sare\sfound,\sthe\nscript\sreturns\sa\snon-zero\sexit\scode\sand\sthus\shalts\sthe\sbuild.
|
||||||
D 2023-11-06T19:01:25.066
|
D 2023-11-06T19:08:46.831
|
||||||
F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
|
F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
|
||||||
F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
|
F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
|
||||||
F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724
|
F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724
|
||||||
@@ -2059,13 +2059,13 @@ F tool/max-limits.c cbb635fbb37ae4d05f240bfb5b5270bb63c54439
|
|||||||
F tool/merge-test.tcl de76b62f2de2a92d4c1ca4f976bce0aea6899e0229e250479b229b2a1914b176
|
F tool/merge-test.tcl de76b62f2de2a92d4c1ca4f976bce0aea6899e0229e250479b229b2a1914b176
|
||||||
F tool/mkautoconfamal.sh cbdcf993fa83dccbef7fb77b39cdeb31ef9f77d9d88c9e343b58d35ca3898a6a
|
F tool/mkautoconfamal.sh cbdcf993fa83dccbef7fb77b39cdeb31ef9f77d9d88c9e343b58d35ca3898a6a
|
||||||
F tool/mkccode.tcl 86463e68ce9c15d3041610fedd285ce32a5cf7a58fc88b3202b8b76837650dbe x
|
F tool/mkccode.tcl 86463e68ce9c15d3041610fedd285ce32a5cf7a58fc88b3202b8b76837650dbe x
|
||||||
F tool/mkctimec.tcl 372452e24267dfe1b496eec3992d10c6e5e7d7870a152560cdcfe5404bc8cc04 x
|
F tool/mkctimec.tcl a16682eae5f01f85e5861b2aa215ca0d46b4230658ee25977e02b4508566fb75 x
|
||||||
F tool/mkkeywordhash.c b9faa0ae7e14e4dbbcd951cddd786bf46b8a65bb07b129ba8c0cfade723aaffd
|
F tool/mkkeywordhash.c b9faa0ae7e14e4dbbcd951cddd786bf46b8a65bb07b129ba8c0cfade723aaffd
|
||||||
F tool/mkmsvcmin.tcl 8897d515ef7f94772322db95a3b6fce6c614d84fe0bdd06ba5a1c786351d5a1d
|
F tool/mkmsvcmin.tcl 8897d515ef7f94772322db95a3b6fce6c614d84fe0bdd06ba5a1c786351d5a1d
|
||||||
F tool/mkopcodec.tcl 33d20791e191df43209b77d37f0ff0904620b28465cca6990cf8d60da61a07ef
|
F tool/mkopcodec.tcl 33d20791e191df43209b77d37f0ff0904620b28465cca6990cf8d60da61a07ef
|
||||||
F tool/mkopcodeh.tcl 769d9e6a8b462323150dc13a8539d6064664b72974f7894befe2491cc73e05cd
|
F tool/mkopcodeh.tcl 769d9e6a8b462323150dc13a8539d6064664b72974f7894befe2491cc73e05cd
|
||||||
F tool/mkopts.tcl 680f785fdb09729fd9ac50632413da4eadbdf9071535e3f26d03795828ab07fa
|
F tool/mkopts.tcl 680f785fdb09729fd9ac50632413da4eadbdf9071535e3f26d03795828ab07fa
|
||||||
F tool/mkpragmatab.tcl bd07bd59d45d0f3448e123d6937e9811195f9908a51e09d774609883055bfd3d
|
F tool/mkpragmatab.tcl 32e359ccb21011958a821955254bd7a5fa7915d01a8c16fed91ffc8b40cb4adf
|
||||||
F tool/mkshellc.tcl b7adf08b82de60811d2cb6af05ff59fc17e5cd6f3e98743c14eaaa3f8971fed0
|
F tool/mkshellc.tcl b7adf08b82de60811d2cb6af05ff59fc17e5cd6f3e98743c14eaaa3f8971fed0
|
||||||
F tool/mksourceid.c 36aa8020014aed0836fd13c51d6dc9219b0df1761d6b5f58ff5b616211b079b9
|
F tool/mksourceid.c 36aa8020014aed0836fd13c51d6dc9219b0df1761d6b5f58ff5b616211b079b9
|
||||||
F tool/mkspeedsql.tcl a1a334d288f7adfe6e996f2e712becf076745c97
|
F tool/mkspeedsql.tcl a1a334d288f7adfe6e996f2e712becf076745c97
|
||||||
@@ -2106,7 +2106,7 @@ F tool/sqltclsh.c.in 1bcc2e9da58fadf17b0bf6a50e68c1159e602ce057210b655d50bad5aaa
|
|||||||
F tool/sqltclsh.tcl 862f4cf1418df5e1315b5db3b5ebe88969e2a784525af5fbf9596592f14ed848
|
F tool/sqltclsh.tcl 862f4cf1418df5e1315b5db3b5ebe88969e2a784525af5fbf9596592f14ed848
|
||||||
F tool/src-verify.c 41c586dee84d0b190ad13e0282ed83d4a65ec9fefde9adf4943efdf6558eea7f
|
F tool/src-verify.c 41c586dee84d0b190ad13e0282ed83d4a65ec9fefde9adf4943efdf6558eea7f
|
||||||
F tool/srcck1.c 371de5363b70154012955544f86fdee8f6e5326f
|
F tool/srcck1.c 371de5363b70154012955544f86fdee8f6e5326f
|
||||||
F tool/srctree-check.tcl cef630bc4ff21a460d72479c43a42bf1c1ed61897659305c35c8d72e91bcb176
|
F tool/srctree-check.tcl 9f1098d439159692ece45cc9e701b35df4956269399fe0c770e41f235d1ce5e6
|
||||||
F tool/stack_usage.tcl f8e71b92cdb099a147dad572375595eae55eca43
|
F tool/stack_usage.tcl f8e71b92cdb099a147dad572375595eae55eca43
|
||||||
F tool/stripccomments.c 20b8aabc4694d0d4af5566e42da1f1a03aff057689370326e9269a9ddcffdc37
|
F tool/stripccomments.c 20b8aabc4694d0d4af5566e42da1f1a03aff057689370326e9269a9ddcffdc37
|
||||||
F tool/symbols-mingw.sh 4dbcea7e74768305384c9fd2ed2b41bbf9f0414d
|
F tool/symbols-mingw.sh 4dbcea7e74768305384c9fd2ed2b41bbf9f0414d
|
||||||
@@ -2139,9 +2139,10 @@ F vsixtest/vsixtest.tcl 6a9a6ab600c25a91a7acc6293828957a386a8a93
|
|||||||
F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc
|
F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc
|
||||||
F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e
|
F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e
|
||||||
F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0
|
F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0
|
||||||
P 34f23c3d0d080fef82e3515ecb74257f68878c74fb0bdceac176a004aa1a84e9
|
P 34af510a5615339f2963875eab94d4b07725e766c20819f82add19faa229d552
|
||||||
Q +c2058a045b57571b2b5d342adb212fe606717c633a0422755691ae6bf5725d25
|
Q +58eb5440d75fb13c1a089cb935de6fb94b4322e10e349db8f11f37b9a2fda2fc
|
||||||
R 076f635f2ce923c956d7afe0c8e318bb
|
Q +cba9f0601ca995ac6952aa3a83f7264f6d25aaaa2ea36b19e90cbf591077de72
|
||||||
|
R 07f5bfdcff7ecaae49d8d3d2bfc1f266
|
||||||
U drh
|
U drh
|
||||||
Z 51ac790dc9094eab5a57469e82ae7453
|
Z 58004ee5792314b55778e61ab0e49ddd
|
||||||
# Remove this line to create a well-formed Fossil manifest.
|
# Remove this line to create a well-formed Fossil manifest.
|
||||||
|
@@ -1 +1 @@
|
|||||||
34af510a5615339f2963875eab94d4b07725e766c20819f82add19faa229d552
|
a0cc7e8117abf03c8d0ab903f1f4b8ff48b6c0e6de85080c9d2a915fd1c16778
|
@@ -7,6 +7,13 @@
|
|||||||
# definition used in src/ctime.c, run this script from
|
# definition used in src/ctime.c, run this script from
|
||||||
# the checkout root. It generates src/ctime.c .
|
# the checkout root. It generates src/ctime.c .
|
||||||
#
|
#
|
||||||
|
# Results are normally written into src/ctime.c. But if an argument is
|
||||||
|
# provided, results are written there instead. Examples:
|
||||||
|
#
|
||||||
|
# tclsh tool/mkctimec.tcl ;# <-- results to src/ctime.c
|
||||||
|
#
|
||||||
|
# tclsh tool/mkctimec.tcl /dev/tty ;# <-- results to the terminal
|
||||||
|
#
|
||||||
|
|
||||||
|
|
||||||
set ::headWarning {/* DO NOT EDIT!
|
set ::headWarning {/* DO NOT EDIT!
|
||||||
@@ -429,10 +436,15 @@ foreach v $value2_options {
|
|||||||
}]
|
}]
|
||||||
}
|
}
|
||||||
|
|
||||||
set ctime_c "src/ctime.c"
|
if {$argc>0} {
|
||||||
|
set destfile [lindex $argv 0]
|
||||||
|
} else {
|
||||||
|
set destfile "[file dir [file dir [file normal $argv0]]]/src/ctime.c"
|
||||||
|
puts "Overwriting $destfile..."
|
||||||
|
}
|
||||||
|
|
||||||
if {[catch {set cfd [open $ctime_c w]}]!=0} {
|
if {[catch {set cfd [open $destfile w]}]!=0} {
|
||||||
puts stderr "File '$ctime_c' unwritable."
|
puts stderr "File '$destfile' unwritable."
|
||||||
exit 1;
|
exit 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -9,6 +9,14 @@
|
|||||||
# Then add the extra "case PragTyp_XXXXX:" and subsequent code for the
|
# Then add the extra "case PragTyp_XXXXX:" and subsequent code for the
|
||||||
# new pragma in ../src/pragma.c.
|
# new pragma in ../src/pragma.c.
|
||||||
#
|
#
|
||||||
|
# The results are normally written into the ../src/pragma.h file. However,
|
||||||
|
# if an alternative output file name is provided as an argument, then
|
||||||
|
# results are written into the alternative. For example:
|
||||||
|
#
|
||||||
|
# tclsh tool/mkpragmatab.tcl ;# <--- Results to src/pragma.h
|
||||||
|
#
|
||||||
|
# tclsh tool/mkpragmatab.tcl /dev/tty ;# <-- results to terminal
|
||||||
|
#
|
||||||
|
|
||||||
# Flag meanings:
|
# Flag meanings:
|
||||||
set flagMeaning(NeedSchema) {Force schema load before running}
|
set flagMeaning(NeedSchema) {Force schema load before running}
|
||||||
@@ -402,8 +410,12 @@ set pragma_def {
|
|||||||
|
|
||||||
# Open the output file
|
# Open the output file
|
||||||
#
|
#
|
||||||
set destfile "[file dir [file dir [file normal $argv0]]]/src/pragma.h"
|
if {$argc>0} {
|
||||||
puts "Overwriting $destfile with new pragma table..."
|
set destfile [lindex $argv 0]
|
||||||
|
} else {
|
||||||
|
set destfile "[file dir [file dir [file normal $argv0]]]/src/pragma.h"
|
||||||
|
puts "Overwriting $destfile with new pragma table..."
|
||||||
|
}
|
||||||
set fd [open $destfile wb]
|
set fd [open $destfile wb]
|
||||||
puts $fd {/* DO NOT EDIT!
|
puts $fd {/* DO NOT EDIT!
|
||||||
** This file is automatically generated by the script at
|
** This file is automatically generated by the script at
|
||||||
|
@@ -27,12 +27,15 @@ proc readfile {filename} {
|
|||||||
# Find the root of the tree.
|
# Find the root of the tree.
|
||||||
#
|
#
|
||||||
set ROOT [file dir [file dir [file normalize $argv0]]]
|
set ROOT [file dir [file dir [file normalize $argv0]]]
|
||||||
cd $ROOT
|
|
||||||
|
|
||||||
# Name of the TCL interpreter
|
# Name of the TCL interpreter
|
||||||
#
|
#
|
||||||
set TCLSH [info nameofexe]
|
set TCLSH [info nameofexe]
|
||||||
|
|
||||||
|
# Number of errors seen.
|
||||||
|
#
|
||||||
|
set NERR 0
|
||||||
|
|
||||||
######################### autoconf/tea/configure.ac ###########################
|
######################### autoconf/tea/configure.ac ###########################
|
||||||
|
|
||||||
set confac [readfile $ROOT/autoconf/tea/configure.ac]
|
set confac [readfile $ROOT/autoconf/tea/configure.ac]
|
||||||
@@ -42,38 +45,46 @@ append pattern [string trim $vers]
|
|||||||
append pattern {])}
|
append pattern {])}
|
||||||
if {[string first $pattern $confac]<=0} {
|
if {[string first $pattern $confac]<=0} {
|
||||||
puts "ERROR: ./autoconf/tea/configure.ac does not agree with ./VERSION"
|
puts "ERROR: ./autoconf/tea/configure.ac does not agree with ./VERSION"
|
||||||
exit 1
|
puts "...... Fix: manually edit ./autoconf/tea/configure.ac to"
|
||||||
|
incr NERR
|
||||||
}
|
}
|
||||||
|
|
||||||
######################### autoconf/Makefile.msc ###############################
|
######################### autoconf/Makefile.msc ###############################
|
||||||
|
|
||||||
set f1 [readfile $ROOT/autoconf/Makefile.msc]
|
set f1 [readfile $ROOT/autoconf/Makefile.msc]
|
||||||
exec mv $ROOT/autoconf/Makefile.msc $ROOT/autoconf/Makefile.msc.tmp
|
exec $TCLSH $ROOT/tool/mkmsvcmin.tcl $ROOT/Makefile.msc tmp1.txt
|
||||||
exec $TCLSH $ROOT/tool/mkmsvcmin.tcl
|
set f2 [readfile tmp1.txt]
|
||||||
set f2 [readfile $ROOT/autoconf/Makefile.msc]
|
file delete tmp1.txt
|
||||||
exec mv $ROOT/autoconf/Makefile.msc.tmp $ROOT/autoconf/Makefile.msc
|
|
||||||
if {$f1 != $f2} {
|
if {$f1 != $f2} {
|
||||||
puts "ERROR: ./autoconf/Makefile.msc does not agree with ./Makefile.msc"
|
puts "ERROR: ./autoconf/Makefile.msc does not agree with ./Makefile.msc"
|
||||||
|
puts "...... Fix: tclsh tool/mkmsvcmin.tcl"
|
||||||
|
incr NERR
|
||||||
}
|
}
|
||||||
|
|
||||||
######################### src/pragma.h ########################################
|
######################### src/pragma.h ########################################
|
||||||
|
|
||||||
set f1 [readfile $ROOT/src/pragma.h]
|
set f1 [readfile $ROOT/src/pragma.h]
|
||||||
exec mv $ROOT/src/pragma.h $ROOT/src/pragma.h.tmp
|
exec $TCLSH $ROOT/tool/mkpragmatab.tcl tmp2.txt
|
||||||
exec $TCLSH $ROOT/tool/mkpragmatab.tcl
|
set f2 [readfile tmp2.txt]
|
||||||
set f2 [readfile $ROOT/src/pragma.h]
|
file delete tmp2.txt
|
||||||
exec mv $ROOT/src/pragma.h.tmp $ROOT/src/pragma.h
|
|
||||||
if {$f1 != $f2} {
|
if {$f1 != $f2} {
|
||||||
puts "ERROR: ./src/pragma.h does not agree with ./tool/mkpragmatab.tcl"
|
puts "ERROR: ./src/pragma.h does not agree with ./tool/mkpragmatab.tcl"
|
||||||
|
puts "...... Fix: tclsh tool/mkpragmatab.tcl"
|
||||||
|
incr NERR
|
||||||
}
|
}
|
||||||
|
|
||||||
######################### src/ctime.c ########################################
|
######################### src/ctime.c ########################################
|
||||||
|
|
||||||
set f1 [readfile $ROOT/src/ctime.c]
|
set f1 [readfile $ROOT/src/ctime.c]
|
||||||
exec mv $ROOT/src/ctime.c $ROOT/src/ctime.c.tmp
|
exec $TCLSH $ROOT/tool/mkctimec.tcl tmp3.txt
|
||||||
exec $TCLSH $ROOT/tool/mkctimec.tcl
|
set f2 [readfile tmp3.txt]
|
||||||
set f2 [readfile $ROOT/src/ctime.c]
|
file delete tmp3.txt
|
||||||
exec mv $ROOT/src/ctime.c.tmp $ROOT/src/ctime.c
|
|
||||||
if {$f1 != $f2} {
|
if {$f1 != $f2} {
|
||||||
puts "ERROR: ./src/ctime.c does not agree with ./tool/mkctimec.tcl"
|
puts "ERROR: ./src/ctime.c does not agree with ./tool/mkctimec.tcl"
|
||||||
|
puts "..... Fix: tclsh tool/mkctimec.tcl"
|
||||||
|
incr NERR
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# If any errors are seen, exit 1 so that the build will fail.
|
||||||
|
#
|
||||||
|
if {$NERR>0} {exit 1}
|
||||||
|
Reference in New Issue
Block a user