| OLD | NEW | 
|---|
| 1 Name: sqlite | 1 Name: sqlite | 
| 2 URL: http://sqlite.org/ | 2 URL: http://sqlite.org/ | 
| 3 Version: 3.7.6.3 | 3 Version: 3.8.7.4 | 
| 4 Included In Release: Yes | 4 Included In Release: Yes | 
| 5 Security Critical: Yes | 5 Security Critical: Yes | 
| 6 License: Public domain | 6 License: Public domain | 
| 7 | 7 | 
| 8 1) Managing differences between SQLite core and Chromium's version. | 8 1) Managing differences between SQLite core and Chromium's version. | 
| 9 2) Making changes to Chromium SQLite. | 9 2) Making changes to Chromium SQLite. | 
| 10 3) Import new release of SQLite. | 10 3) Import new release of SQLite. | 
| 11 4) Running SQLite's test suite within the Chromium checkout. | 11 4) Running SQLite's test suite within the Chromium checkout. | 
| 12 | 12 | 
| 13 --- | 13 --- | 
| (...skipping 29 matching lines...) Expand all  Loading... | 
| 43 | 43 | 
| 44 Once your patch is complete, squash it down into a reasonable CL, then | 44 Once your patch is complete, squash it down into a reasonable CL, then | 
| 45 re-generate the patches.  This is a truncated version of the import flow.  The | 45 re-generate the patches.  This is a truncated version of the import flow.  The | 
| 46 following is written like a shell script to allow copy/paste to a shell, ignore | 46 following is written like a shell script to allow copy/paste to a shell, ignore | 
| 47 comments and change the obvious lines.  These instructions should work on Linux | 47 comments and change the obvious lines.  These instructions should work on Linux | 
| 48 or OSX.  They may assume a modern version of git (I'm using 2.2.1). | 48 or OSX.  They may assume a modern version of git (I'm using 2.2.1). | 
| 49 | 49 | 
| 50 # Everything based in sqlite subdir. | 50 # Everything based in sqlite subdir. | 
| 51 cd third_party/sqlite | 51 cd third_party/sqlite | 
| 52 | 52 | 
| 53 BASE=3070603 | 53 BASE=3080704 | 
| 54 | 54 | 
| 55 #### Create a reference branch. | 55 #### Create a reference branch. | 
| 56 git checkout -b sqlite_${BASE} master | 56 git checkout -b sqlite_${BASE} master | 
| 57 git rm -rf src | 57 git rm -rf src | 
| 58 cp -a sqlite-src-${BASE} src | 58 cp -a sqlite-src-${BASE} src | 
| 59 # -f includes ignored files, of which there are a couple. | 59 # -f includes ignored files, of which there are a couple. | 
| 60 git add -f src/ | 60 git add -f src/ | 
| 61 git commit -m "Reset to sqlite-src-${BASE}" | 61 git commit -m "Reset to sqlite-src-${BASE}" | 
| 62 # This branch is unlikely to build. | 62 # This branch is unlikely to build. | 
| 63 | 63 | 
| (...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 119 rm -rf src | 119 rm -rf src | 
| 120 cp -a sqlite-src-${BASE} src | 120 cp -a sqlite-src-${BASE} src | 
| 121 # -f includes ignored files, of which there are a couple. | 121 # -f includes ignored files, of which there are a couple. | 
| 122 git add -f src/ | 122 git add -f src/ | 
| 123 git commit -m "Reset to sqlite-src-${BASE}" | 123 git commit -m "Reset to sqlite-src-${BASE}" | 
| 124 # This branch is unlikely to build. | 124 # This branch is unlikely to build. | 
| 125 | 125 | 
| 126 #### Convert patches into CLs. | 126 #### Convert patches into CLs. | 
| 127 git checkout -b sqlite_${BASE}_patched master | 127 git checkout -b sqlite_${BASE}_patched master | 
| 128 git rebase sqlite_${BASE} | 128 git rebase sqlite_${BASE} | 
| 129 git am patches/*.patch | 129 git am --keep-non-patch patches/*.patch | 
| 130 git diff master | 130 git diff master | 
| 131 # This branch should be identical to master. | 131 # This branch should be identical to master. | 
| 132 | 132 | 
| 133 #### Create new-SQLite reference branch. | 133 #### Create new-SQLite reference branch. | 
| 134 git checkout -b sqlite_${VERSION} master | 134 git checkout -b sqlite_${VERSION} master | 
| 135 git rebase sqlite_${BASE} | 135 git rebase sqlite_${BASE} | 
| 136 # SQLite's download page is at <http://www.sqlite.org/download.html>.  Scroll to | 136 # SQLite's download page is at <http://www.sqlite.org/download.html>.  Scroll to | 
| 137 # "Legacy Source Code Distribution Formats", and grab sqlite-src-<VERSION>.zip. | 137 # "Legacy Source Code Distribution Formats", and grab sqlite-src-<VERSION>.zip. | 
| 138 # Unzip it and pull it into the repo. | 138 # Unzip it and pull it into the repo. | 
| 139 wget http://www.sqlite.org/2014/sqlite-src-${VERSION}.zip | 139 wget http://www.sqlite.org/2014/sqlite-src-${VERSION}.zip | 
| 140 unzip sqlite-src-${VERSION}.zip | 140 unzip sqlite-src-${VERSION}.zip | 
| 141 rm sqlite-src-${VERSION}.zip | 141 rm sqlite-src-${VERSION}.zip | 
| 142 # -f includes ignored files, of which there are a couple. | 142 # -f includes ignored files, of which there are a couple. | 
| 143 git add -f sqlite-src-${VERSION}/ | 143 git add -f sqlite-src-${VERSION}/ | 
| 144 # Sometimes DOS line endings sneak into the source code.  This command works on | 144 # Sometimes DOS line endings sneak into the source code.  This command works on | 
| 145 # OSX and Linux and fixes those files, but double-check the results before | 145 # OSX and Linux and fixes those files, but double-check the results before | 
| 146 # committing: | 146 # committing: | 
| 147 egrep --exclude="*.eps" --exclude="*.ico" --exclude="*.jpg" \ | 147 egrep --exclude="*.eps" --exclude="*.ico" --exclude="*.jpg" \ | 
| 148       --exclude="*.gif" --exclude="*.tiff" --exclude="*.vsix" -URl '\r' . | \ | 148       --exclude="*.gif" --exclude="*.tiff" --exclude="*.vsix" -URl '\r' . | \ | 
| 149     LANG=C xargs sed -i~ -e $'s/\r$//' | 149     LANG=C xargs sed -i~ -e $'s/\r$//' | 
| 150 git commit -m "Begin import of sqlite-src-${VERSION}"es | 150 git commit -m "Begin import of sqlite-src-${VERSION}" sqlite-src-${VERSION} | 
| 151 sqlite-src-${VERSION} |  | 
| 152 rm -rf src | 151 rm -rf src | 
| 153 cp -a sqlite-src-${VERSION} src | 152 cp -a sqlite-src-${VERSION} src | 
| 154 # -f includes ignored files, of which there are a couple. | 153 # -f includes ignored files, of which there are a couple. | 
| 155 git add -f src/ | 154 git add -f src/ | 
| 156 git commit -m "Update src to sqlite-src-${VERSION}" src/ | 155 git commit -m "Update src to sqlite-src-${VERSION}" src/ | 
| 157 # This branch is unlikely to build. | 156 # This branch is unlikely to build. | 
| 158 | 157 | 
| 159 #### Create a branch for merging the CLs to the new SQLite. | 158 #### Create a branch for merging the CLs to the new SQLite. | 
| 160 git checkout -b sqlite_${VERSION}_patched master | 159 git checkout -b sqlite_${VERSION}_patched master | 
| 161 git rebase sqlite_${VERSION} | 160 git rebase sqlite_${VERSION} | 
| (...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 215   sudo port install tcl | 214   sudo port install tcl | 
| 216 TODO(shess): OSX works fine with either tcl8.5 or tcl8.6, but on Ubuntu 14.04.1 | 215 TODO(shess): OSX works fine with either tcl8.5 or tcl8.6, but on Ubuntu 14.04.1 | 
| 217 with tcl8.6, I see crashes in some of the WAL tests.  Revisit using tcl8.6 on | 216 with tcl8.6, I see crashes in some of the WAL tests.  Revisit using tcl8.6 on | 
| 218 next import of SQLite. | 217 next import of SQLite. | 
| 219 TODO(shess): That Homebrew command has installed tcl8.6 for a few years, so the | 218 TODO(shess): That Homebrew command has installed tcl8.6 for a few years, so the | 
| 220 above may require some adaptation of the build files. | 219 above may require some adaptation of the build files. | 
| 221 | 220 | 
| 222 cd third_party/sqlite/src | 221 cd third_party/sqlite/src | 
| 223 mkdir build | 222 mkdir build | 
| 224 cd build | 223 cd build | 
| 225 make -f ../Makefile.linux-gcc testfixture sqlite3 | 224 make -j -f ../Makefile.linux-gcc testfixture sqlite3 | 
| 226 # NOTE(shess): 64-bit builds under 3.7.6.3 show various warnings.  AFAICT they |  | 
| 227 # don't impact test operation.  Later versions are better so I'm not fixing it. |  | 
| 228 make -f ../Makefile.linux-gcc test > /tmp/test.log | 225 make -f ../Makefile.linux-gcc test > /tmp/test.log | 
| 229 egrep 'errors out of' /tmp/test.log | 226 egrep 'errors out of' /tmp/test.log | 
| 230 # Show broken tests: | 227 # Show broken tests: | 
| 231 egrep 'Failures on these tests:' /tmp/test.log | 228 egrep 'Failures on these tests:' /tmp/test.log | 
| 232 # Broken tests will also show lines ending in "..." instead of "... Ok". | 229 # Broken tests will also show lines ending in "..." instead of "... Ok". | 
| 233 | 230 | 
| 234 In version Right now on OSX, I see no failures: | 231 In version 3.8.7.4 on OSX 10.9.5, I see: | 
| 235   0 errors out of 77849 tests | 232    6 errors out of 138390 tests | 
|  | 233 The failed tests are: | 
|  | 234    pager4-1.3 pager4-1.4 pager4-1.5 pager4-1.9 pager4-1.10 pager4-1.11 | 
|  | 235 This is due to the change in os_unix.c fileHasMoved() to support WebDatabase. | 
|  | 236 Commenting out the early return allows them to succeed. | 
| 236 | 237 | 
| 237 In version 3.7.6.3 on Ubuntu 14.04 I see some failures: | 238 In version 3.8.7.4 on Ubuntu 14.04 I see: | 
| 238  83 errors out of 78604 tests | 239    9 errors out of 138920 tests | 
| 239  - precision in formatting numbers in enc4.test. | 240 The failed tests are: | 
| 240  - case sensitivity in nan.test. | 241    oserror-1.1.1 oserror-1.1.2 oserror-1.1.3 | 
| 241  - oserror-1.1.[1-3] fail because there are too many fds available.  Fixed with | 242    pager4-1.3 pager4-1.4 pager4-1.5 pager4-1.9 pager4-1.10 pager4-1.11 | 
| 242    "ulimit -n 1024". | 243 The oserror tests fail because there are too many fds available, and can be | 
|  | 244 fixed by running "ulimit -n 1024" before the test.  The pager4 tests are failing | 
|  | 245 for the same reason as above. | 
| 243 | 246 | 
| 244 -- | 247 -- | 
| 245 | 248 | 
| 246 NOTE(shess): On Ubuntu it is possible to run the tests in a tmpfs something | 249 NOTE(shess): On Ubuntu it is possible to run the tests in a tmpfs something | 
| 247 like: | 250 like: | 
| 248 | 251 | 
| 249 TMPFS=/dev/shm/sqlite_build | 252 TMPFS=/dev/shm/sqlite_build | 
| 250 BUILD=$PWD | 253 BUILD=$PWD | 
| 251 mkdir $TMPFS | 254 mkdir $TMPFS | 
| 252 (cd $TMPFS ; $BUILD/testfixture $BUILD/../test/veryquick.test >/tmp/test.log) | 255 (cd $TMPFS ; $BUILD/testfixture $BUILD/../test/veryquick.test >/tmp/test.log) | 
| 253 | 256 | 
| 254 This is faster, but it is plausible that different things are being tested than | 257 This is faster, but it is plausible that different things are being tested than | 
| 255 real-world use. | 258 real-world use. | 
| OLD | NEW | 
|---|