System.Data.SQLite
Check-in [4919dd2ea9]
Not logged in

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Overview
Comment:Merge updates from trunk.
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | sessions
Files: files | file ages | folders
SHA1: 4919dd2ea9e19dd6fdd7a92b776055f1d671f242
User & Date: mistachkin 2017-10-08 22:00:54
Context
2017-10-09
16:09
The delegates used for native callbacks from the SQLite core library must be marked as 'cdecl'. check-in: bad97b09fc user: mistachkin tags: sessions
2017-10-08
22:00
Merge updates from trunk. check-in: 4919dd2ea9 user: mistachkin tags: sessions
21:55
Pickup release archive verification tool changes from upstream. Add NuGet packages in the master release archive manifest. check-in: 68b09a1bbd user: mistachkin tags: trunk
2017-10-07
03:17
Avoid a superfluous call to Marshal.Copy. check-in: cfbbd7b1fe user: mistachkin tags: sessions
Changes
Hide Diffs Side-by-Side Diffs Ignore Whitespace Patch

Changes to Setup/data/verify.lst.

  1240   1240   #
  1241   1241   set sds_manifests(setupX64Vs2015) {
  1242   1242     {{tmp}\vcredist_x64_2015_VSU3.exe}
  1243   1243   }
  1244   1244   
  1245   1245   ###############################################################################
  1246   1246   #
         1247  +# NOTE: This is the list of all files that should be present in all NuGet
         1248  +#       packages.
         1249  +#
         1250  +set sds_manifests(nuGetMetadata) {
         1251  +  _rels/.rels
         1252  +  [Content_Types].xml
         1253  +  package/services/metadata/core-properties/${md5}.psmdcp
         1254  +}
         1255  +
         1256  +###############################################################################
         1257  +#
         1258  +# NOTE: This is the list of all files that should be present in all core
         1259  +#       NuGet packages that include the primary managed assembly.
         1260  +#
         1261  +set sds_manifests(nuGetCoreManaged) {
         1262  +  lib/net20/System.Data.SQLite.dll
         1263  +  lib/net20/System.Data.SQLite.xml
         1264  +  lib/net40/System.Data.SQLite.dll
         1265  +  lib/net40/System.Data.SQLite.xml
         1266  +  lib/net45/System.Data.SQLite.dll
         1267  +  lib/net45/System.Data.SQLite.xml
         1268  +  lib/net451/System.Data.SQLite.dll
         1269  +  lib/net451/System.Data.SQLite.xml
         1270  +  lib/net46/System.Data.SQLite.dll
         1271  +  lib/net46/System.Data.SQLite.xml
         1272  +}
         1273  +
         1274  +###############################################################################
         1275  +#
         1276  +# NOTE: This is the list of all files that should be present in all core
         1277  +#       NuGet packages that include the primary interop assemblies.
         1278  +#
         1279  +set sds_manifests(nuGetCoreNative) {
         1280  +  build/net20/x64/SQLite.Interop.dll
         1281  +  build/net20/x86/SQLite.Interop.dll
         1282  +  build/net40/x64/SQLite.Interop.dll
         1283  +  build/net40/x86/SQLite.Interop.dll
         1284  +  build/net45/x64/SQLite.Interop.dll
         1285  +  build/net45/x86/SQLite.Interop.dll
         1286  +  build/net451/x64/SQLite.Interop.dll
         1287  +  build/net451/x86/SQLite.Interop.dll
         1288  +  build/net46/x64/SQLite.Interop.dll
         1289  +  build/net46/x86/SQLite.Interop.dll
         1290  +  build/net20/System.Data.SQLite.Core.targets
         1291  +  build/net40/System.Data.SQLite.Core.targets
         1292  +  build/net45/System.Data.SQLite.Core.targets
         1293  +  build/net451/System.Data.SQLite.Core.targets
         1294  +  build/net46/System.Data.SQLite.Core.targets
         1295  +  lib/net20/System.Data.SQLite.dll.config
         1296  +  lib/net40/System.Data.SQLite.dll.config
         1297  +  lib/net45/System.Data.SQLite.dll.config
         1298  +  lib/net451/System.Data.SQLite.dll.config
         1299  +  lib/net46/System.Data.SQLite.dll.config
         1300  +}
         1301  +
         1302  +###############################################################################
         1303  +#
         1304  +# NOTE: This is the list of all files that should be present in all NuGet
         1305  +#       packages that include support for the Entity Framework 6.x.
         1306  +#
         1307  +set sds_manifests(nuGetEf6) {
         1308  +  System.Data.SQLite.EF6.nuspec
         1309  +  content/net40/app.config.install.xdt
         1310  +  content/net40/web.config.install.xdt
         1311  +  content/net40/app.config.transform
         1312  +  content/net40/web.config.transform
         1313  +  content/net45/app.config.install.xdt
         1314  +  content/net45/web.config.install.xdt
         1315  +  content/net45/app.config.transform
         1316  +  content/net45/web.config.transform
         1317  +  content/net451/app.config.install.xdt
         1318  +  content/net451/web.config.install.xdt
         1319  +  content/net451/app.config.transform
         1320  +  content/net451/web.config.transform
         1321  +  content/net46/app.config.install.xdt
         1322  +  content/net46/web.config.install.xdt
         1323  +  content/net46/app.config.transform
         1324  +  content/net46/web.config.transform
         1325  +  lib/net40/System.Data.SQLite.EF6.dll
         1326  +  lib/net45/System.Data.SQLite.EF6.dll
         1327  +  lib/net451/System.Data.SQLite.EF6.dll
         1328  +  lib/net46/System.Data.SQLite.EF6.dll
         1329  +  tools/net40/install.ps1
         1330  +  tools/net45/install.ps1
         1331  +  tools/net451/install.ps1
         1332  +  tools/net46/install.ps1
         1333  +}
         1334  +
         1335  +###############################################################################
         1336  +#
         1337  +# NOTE: This is the list of all files that should be present in all NuGet
         1338  +#       packages that include support for LINQ.
         1339  +#
         1340  +set sds_manifests(nuGetLinq) {
         1341  +  System.Data.SQLite.Linq.nuspec
         1342  +  content/net20/app.config.transform
         1343  +  content/net20/web.config.transform
         1344  +  content/net40/app.config.transform
         1345  +  content/net40/web.config.transform
         1346  +  content/net45/app.config.transform
         1347  +  content/net45/web.config.transform
         1348  +  content/net451/app.config.transform
         1349  +  content/net451/web.config.transform
         1350  +  content/net46/app.config.transform
         1351  +  content/net46/web.config.transform
         1352  +  lib/net20/System.Data.SQLite.Linq.dll
         1353  +  lib/net40/System.Data.SQLite.Linq.dll
         1354  +  lib/net45/System.Data.SQLite.Linq.dll
         1355  +  lib/net451/System.Data.SQLite.Linq.dll
         1356  +  lib/net46/System.Data.SQLite.Linq.dll
         1357  +}
         1358  +
         1359  +###############################################################################
         1360  +#
         1361  +# NOTE: This is the list of all files that should be present in the primary
         1362  +#       NuGet package.
         1363  +#
         1364  +set sds_manifests(nuGetPrimary) {
         1365  +  System.Data.SQLite.nuspec
         1366  +}
         1367  +
         1368  +###############################################################################
         1369  +#
         1370  +# NOTE: This is the list of all files that should be present in the core
         1371  +#       NuGet package.
         1372  +#
         1373  +set sds_manifests(nuGetCore) {
         1374  +  System.Data.SQLite.Core.nuspec
         1375  +}
         1376  +
         1377  +###############################################################################
         1378  +#
         1379  +# NOTE: This is the list of all files that should be present in the core
         1380  +#       NuGet package that includes only the primary managed assembly.
         1381  +#
         1382  +set sds_manifests(nuGetCoreMsil) {
         1383  +  System.Data.SQLite.Core.MSIL.nuspec
         1384  +}
         1385  +
         1386  +###############################################################################
         1387  +#
         1388  +# NOTE: This is the list of all files that should be present in the NuGet
         1389  +#       package that includes only the managed assemblies.
         1390  +#
         1391  +set sds_manifests(nuGetMsil) {
         1392  +  System.Data.SQLite.MSIL.nuspec
         1393  +}
         1394  +
         1395  +###############################################################################
         1396  +#
         1397  +# NOTE: This is the list of all files that should be present in the NuGet
         1398  +#       package that includes the mixed-mode assembly for x64.
         1399  +#
         1400  +set sds_manifests(nuGetX64) {
         1401  +  System.Data.SQLite.x64.nuspec
         1402  +}
         1403  +
         1404  +###############################################################################
         1405  +#
         1406  +# NOTE: This is the list of all files that should be present in the NuGet
         1407  +#       package that includes the mixed-mode assembly for x86.
         1408  +#
         1409  +set sds_manifests(nuGetX86) {
         1410  +  System.Data.SQLite.x86.nuspec
         1411  +}
         1412  +
         1413  +###############################################################################
         1414  +#
  1247   1415   # NOTE: These are the master archive manifest groups, based on file name.  The
  1248   1416   #       first element in each list is the array variable name prefix used to
  1249   1417   #       locate another array containing the named elements referenced by the
  1250   1418   #       remaining elements in each list.  Here is an example:
  1251   1419   #
  1252   1420   #       1. First, the archive file name has the patch level removed from it.
  1253   1421   #          Next, it is mapped to the name of the array containing the file
................................................................................
  1715   1883       setupEf6Bundle setupX86Vs2015]
  1716   1884   
  1717   1885   ###############################################################################
  1718   1886   
  1719   1887   set manifests(sqlite-netFx46-setup-bundle-x64-2015-.exe) [list sds \
  1720   1888       setupCore setupBundle setupLinqCore setupEf6Core setupLinqBundle \
  1721   1889       setupEf6Bundle setupX64Vs2015]
         1890  +
         1891  +###############################################################################
         1892  +############################### NuGet Packages ################################
         1893  +###############################################################################
         1894  +
         1895  +set manifests(System.Data.SQLite..nupkg) [list sds \
         1896  +    nuGetMetadata nuGetPrimary]
         1897  +
         1898  +set manifests(System.Data.SQLite.Core..nupkg) [list sds \
         1899  +    nuGetMetadata nuGetCoreManaged nuGetCoreNative nuGetCore]
         1900  +
         1901  +set manifests(System.Data.SQLite.Core.MSIL..nupkg) [list sds \
         1902  +    nuGetMetadata nuGetCoreManaged nuGetCoreMsil]
         1903  +
         1904  +set manifests(System.Data.SQLite.EF6..nupkg) [list sds \
         1905  +    nuGetMetadata nuGetEf6]
         1906  +
         1907  +set manifests(System.Data.SQLite.Linq..nupkg) [list sds \
         1908  +    nuGetMetadata nuGetLinq]
         1909  +
         1910  +set manifests(System.Data.SQLite.MSIL..nupkg) [list sds \
         1911  +    nuGetMetadata nuGetMsil]
         1912  +
         1913  +set manifests(System.Data.SQLite.x64..nupkg) [list sds \
         1914  +    nuGetMetadata nuGetCoreManaged nuGetX64]
         1915  +
         1916  +set manifests(System.Data.SQLite.x86..nupkg) [list sds \
         1917  +    nuGetMetadata nuGetCoreManaged nuGetX86]
  1722   1918   
  1723   1919   ###############################################################################
  1724   1920   # end of file

Changes to Setup/verify.eagle.

   183    183         usage "no repository hashes are available"
   184    184       }
   185    185     }
   186    186   
   187    187     set hashPrefix [expr {$failHashes ? "ERROR" : "WARNING"}]
   188    188     set archiveFileNames [list]
   189    189   
   190         -  foreach extension [list exe rar zip] {
          190  +  foreach extension [list exe nupkg rar zip] {
   191    191       eval lappend archiveFileNames [findFilesRecursive \
   192    192           [file join $directory [appendArgs *. $extension]]]
   193    193     }
   194    194   
   195    195     foreach archiveFileName $archiveFileNames {
   196    196       set manifest [file tail $archiveFileName]
   197    197   
................................................................................
   208    208       #
   209    209       # HACK: Attempt to match and remove sub-strings from the
   210    210       #       manifest file name that look like the name of a
   211    211       #       build configuration (e.g. "debug" or "release").
   212    212       #
   213    213       regsub -- {-debug-|-release-} $manifest {-} manifest
   214    214   
          215  +    #
          216  +    # HACK: Special hack to allow "CLRvX" to appear in the
          217  +    #       manifest file names, part 1, the vanishing.
          218  +    #
          219  +    set manifest [string map \
          220  +        [list CLRv2 CLRvTWO CLRv4 CLRvFOUR] $manifest]
          221  +
          222  +    #
          223  +    # HACK: Special hack to allow "EF6", "x64", and "x86" to
          224  +    #       appear in the manifest file names, part 1, the
          225  +    #       vanishing.
          226  +    #
          227  +    set manifest [string map \
          228  +        [list EF6 EF-SIX x64 x-SIXTYFOUR x86 x-EIGHTYSIX] \
          229  +        $manifest]
          230  +
   215    231       #
   216    232       # HACK: Attempt to match and remove sub-strings from the
   217    233       #       manifest file name that look like a version number
   218    234       #       in the format "<major>.<minor>.<build>.<revision>"
   219    235       #       and/or a date/time string matching the format
   220    236       #       "YYYY-MM-DD-NN" (where the NN portion is a generic
   221    237       #       incrementing sequence number).
   222    238       #
   223    239       regsub -- {\d+\.\d+\.\d+\.\d+} $manifest {} manifest
   224    240       regsub -- {\d{4}-\d{2}-\d{2}-\d{2}} $manifest {} manifest
          241  +
          242  +    #
          243  +    # HACK: Special hack to allow "CLRvX" to appear in the
          244  +    #       manifest file names, part 2, the return.
          245  +    #
          246  +    set manifest [string map \
          247  +        [list CLRvTWO CLRv2 CLRvFOUR CLRv4] $manifest]
          248  +
          249  +    #
          250  +    # HACK: Special hack to allow "EF6", "x64", and "x86" to
          251  +    #       appear in the manifest file names, part 2, the
          252  +    #       return.
          253  +    #
          254  +    set manifest [string map \
          255  +        [list EF-SIX EF6 x-SIXTYFOUR x64 x-EIGHTYSIX x86] \
          256  +        $manifest]
          257  +
          258  +    #
          259  +    # HACK: Fixup manifest file names that correspond to the
          260  +    #       NuGet packages for SymbolSource.
          261  +    #
          262  +    if {[regexp -- {[/\\]SymbolSource[/\\]} $archiveFileName]} then {
          263  +      set manifest [string map [list .. .Source..] $manifest]
          264  +    }
   225    265   
   226    266       if {![info exists manifests($manifest)]} then {
   227    267         puts stdout [appendArgs \
   228    268             "WARNING: Cannot find master manifest \"" \
   229    269             $manifest "\" for archive \"" $archiveFileName \
   230    270             "\", skipped."]
   231    271   
................................................................................
   250    290   
   251    291       set listCommand [list]
   252    292       lappend listCommand exec -success Success -nocarriagereturns --
   253    293   
   254    294       set extractCommand [list]
   255    295       lappend extractCommand exec -success Success -nocarriagereturns --
   256    296   
   257         -    if {[file extension $archiveFileName] eq ".zip"} then {
          297  +    if {[file extension $archiveFileName] in [list .nupkg .zip]} then {
   258    298         if {![file exists $zip]} then {
   259    299           usage [appendArgs "tool \"" $zip "\" is missing"]
   260    300         }
   261    301   
   262    302         lappend listCommand $zip -Z -1 $archiveFileName
   263    303   
   264    304         lappend extractCommand $zip -j -o $archiveFileName \
................................................................................
   285    325       }
   286    326   
   287    327       if {[catch {eval $listCommand} result] == 0} then {
   288    328         #
   289    329         # HACK: The Inno Setup unpacking tool requires some extra
   290    330         #       parsing logic to handle the output.
   291    331         #
          332  +      set containedFileNames [list]
          333  +
   292    334         if {[string first [file tail $innounp] $listCommand] != -1} then {
   293         -        set containedFileNames [list]
   294         -
   295    335           foreach {dummy matchFileName} [regexp -line -all -inline -- \
   296    336               {^[ 0-9]{10}  \d{4}\.\d{2}\.\d{2} \d{2}:\d{2}  (.*)$} $result] {
   297    337             #
   298    338             # NOTE: Add the file name extracted from the output
   299    339             #       line to the list of file names contained in
   300    340             #       this archive.
   301    341             #
   302    342             lappend containedFileNames $matchFileName
   303    343           }
   304    344         } else {
   305         -        set containedFileNames [split [string map [list \\ /] \
   306         -            [string trim $result]] \n]
          345  +        foreach matchFileName [split [string map [list \\ /] [string \
          346  +            trim $result]] \n] {
          347  +          #
          348  +          # NOTE: Replace the dynamically calculated MD5 hash
          349  +          #       for the special NuGet package file name, if
          350  +          #       needed.
          351  +          #
          352  +          if {[file extension $matchFileName] eq ".psmdcp"} then {
          353  +            regsub -- {/[0-9a-f]{32}\.} $matchFileName {/${md5}.} \
          354  +                matchFileName
          355  +          }
          356  +
          357  +          lappend containedFileNames $matchFileName
          358  +        }
   307    359         }
   308    360   
   309    361         foreach manifestFileName $manifestFileNames {
   310    362           #
   311    363           # TODO: Should we use -nocase here because Windows
   312    364           #       is the primary release platform?
   313    365           #