diff options
author | V3n3RiX <venerix@redcorelinux.org> | 2018-02-15 16:58:00 +0000 |
---|---|---|
committer | V3n3RiX <venerix@redcorelinux.org> | 2018-02-15 16:58:00 +0000 |
commit | 434d713861b70f6c6563d6ee50a8e64f14c970d9 (patch) | |
tree | b72c523c72e764420f835ba9d63d43ffef687dcf /dev-db/sqlite | |
parent | f78108598211053d41752a83e0345441bb9014ae (diff) |
gentoo resync : 15.02.2018
Diffstat (limited to 'dev-db/sqlite')
-rw-r--r-- | dev-db/sqlite/Manifest | 9 | ||||
-rw-r--r-- | dev-db/sqlite/files/sqlite-3.22.0-full_archive-build.patch | 405 | ||||
-rw-r--r-- | dev-db/sqlite/files/sqlite-3.22.0-full_archive-headers.patch | 15 | ||||
-rw-r--r-- | dev-db/sqlite/files/sqlite-3.22.0-full_archive-tests.patch | 249 | ||||
-rw-r--r-- | dev-db/sqlite/sqlite-3.21.0.ebuild | 2 | ||||
-rw-r--r-- | dev-db/sqlite/sqlite-3.22.0.ebuild | 303 |
6 files changed, 981 insertions, 2 deletions
diff --git a/dev-db/sqlite/Manifest b/dev-db/sqlite/Manifest index 27c67d521f58..6439ed7f78ad 100644 --- a/dev-db/sqlite/Manifest +++ b/dev-db/sqlite/Manifest @@ -5,20 +5,27 @@ AUX sqlite-3.20.1-full_tarball-csv-unsigned_char.patch 1087 BLAKE2B 20e74644ea5f AUX sqlite-3.20.1-full_tarball-tests-big-endian.patch 3507 BLAKE2B 50df13de29f0a1cbbd47d9932e5bbfd32a2992d9f1fa28ca4bba3d5477f9f49fc65b50736fa0ab99fc6b9c09b43fd56cfc4071b0e69a2d07e2ff7c91ddb5b96c SHA512 e9e3827f78cc51b401727138ce2bbe5cd157c47c1d2da8994e2f2b44ab66705625edabed3b0246c82ba56d59761f8451917ffcc6ddbba1dc36a519e5b8a5c96a AUX sqlite-3.21.0-full_archive-build.patch 5885 BLAKE2B a1ec0a84ebfaf68e13c6b591152f4d1a634a3963a528d581303b7f8fe79f35b32af18193833aad82c3619b911c548e2a6f0da4ba639dd8e33e5ddec5a89cad99 SHA512 27dc99503373d5bc235fcf45fa9731d3328d75332a88be39a12650237b08c7b779b8a95446654e59df0da855d310e0dff35388a661d8d51fc8d363575f52ab7b AUX sqlite-3.21.0-nonfull_archive-build.patch 407 BLAKE2B 38f71008ce9554333668bd1d3a2ff94a95a060e2d920f05f7d7be7e65fb3cbc549d265beaf3bebcf653dc4ab28eccc762fd51e983167c82b899a2d35789ac48a SHA512 1047210c37e638a8bcf80b071e780f28e4260c73c581e0fbf9021d0df5287c5e9a17193e563e8de76b41d3f158ecb8fcccd3df227c1f9360246bc52a70f75651 +AUX sqlite-3.22.0-full_archive-build.patch 13457 BLAKE2B c5cb64031e92af91542f59cebdb71161723b1de5f0f7dc1f5324571a0d85a942dbd5265d7afca738d044fafa06a59184c3716a8526f71d37763c73bf85839ffe SHA512 f1484ad421b99153b21e6f9ccf0c827fec1d081294a4b7965b483f54a76eda3af9fe879ef7c2cd95db9be270fbdaf726b46844a4988076a2f52e4eb6fb36ffa5 +AUX sqlite-3.22.0-full_archive-headers.patch 693 BLAKE2B c94193298bf3d3ba22c78ed8e2af4dfd21aa7fba2f8743130f7960599d0670d84b05f30cbe26be5f29715e64f895055390993f33d0fbc4390894ccf0b40da298 SHA512 3a39be126aca6f4b6ab15bb6629d26ab3a9635473f9f1c3e55072ad9a525d6236cf3149577e9b8cdb68759dd8dd9d87a11685a7430e7c6d02724b544bd065559 +AUX sqlite-3.22.0-full_archive-tests.patch 7566 BLAKE2B c59f71e46eaa7af45cc2046db2eaa73d8da3e7fc14341fca8418cf77eecb14b6278f54fd9932ff5f5a6f2d53e4dd9f07b88ac7e343533020e4650f1b2a4642f8 SHA512 a9dcd1e3caba1454c22b051c31237ce82b4e5e79783581111e3ef3cbf937b7bb139a569db5df7eeccc221113421cf4765af45a499bc5dc335f8ff5c5b2cf9d43 DIST sqlite-autoconf-3190300.tar.gz 2542682 BLAKE2B bcbc3ce87b569c2d84c099776db292b10fc0100ec10a285bbb8819b996994aa020d5576620363e9b45debf27481e3f17a8589b71aa7551f4ee44b137d4c538a1 SHA512 7896c99726da75818f1027d5675b24724bc89c738874c868868e60c09d4509ad5a6da93f54cfcecb3a1052e4f164f7cb864ede333b9ccfb4f6b811b052ca1d3d DIST sqlite-autoconf-3200000.tar.gz 2565548 BLAKE2B 29d88fb8597b6ef7c7b3613c73d8b912cd22e1354c664a2edae0b5d0379103b1025a54d83f24ee74159bed3b928627cb1a50c8df48658ba0cdc5ce7fdbfa5920 SHA512 f5b0ffcc27adeed5b27b29962d03defa167151868f2281c5642a8ddfa10ac8971aff22081a5b46bd36bcf664bd271975e80249ec403b73656658b33af084ec94 DIST sqlite-autoconf-3200100.tar.gz 2565638 BLAKE2B bd1d32c211ea906cb2dbf78ea54d364db1a642d8a3b2751a427521a9da3391a2cd23c1ecdc5ff70b68f4166c583e69373f566cb04847295542185ab598e79c1b SHA512 56e3d326ea2225cadc628c3518d46d9f7c4bafa0e3612f2b7ab0dc0d79fcbb7e095f6d84a9a48e1c6d83adcdc8706ad5ac4404f0f622c7fe38cfde3a7e7e69f0 DIST sqlite-autoconf-3210000.tar.gz 2568942 BLAKE2B 83a7095fd5fd5447a3c16816ceb9f51f393de9689942bd4eb4c6eafe357a1dd1783500f8faf2765fa6628da6a39f550237b661af1337ac063ca285f5f0a5218e SHA512 8f00708965eacef171620c49538f75768d350ec3f2bfef412a5c70af865ab03b6a64ce1e65d9fdb3d66f4d00262a30fc162b01fd69f63c05c14d5243374b6298 +DIST sqlite-autoconf-3220000.tar.gz 2644649 BLAKE2B e73fd7846362e6cc07eb96ea18e8883c1473c2b07c6e0c89e7e65726c5a6556b50bac71904a5b3a431ba40ff72b32e55c3e5ab7461567b5643560a0790a9a4dd SHA512 13e791bb1d7ba7edb5d84f4945f36ce2e03898a5bb1612d28799ef35a100f32e85cbb38f4ef65a7b43d020e5d48bf09b2e79cbb2003cc8aca2b09458b8c5d5bc DIST sqlite-doc-3190300.zip 5649351 BLAKE2B f0bc52bebe6e3c4be227d8f6cf2689fb2f6d46e6472d61334a7959697d4017dcee87c4ff146293f13a88e69990c2e7f291e4ad8ae5359c378e1bcecf6dfe2aa1 SHA512 4f99b6797f76dab1859eaf4596c42d6b10a80a1ad9dcb33b82fcc4ef80a8e8299ac24c0d2a0f41debf9e82d43c9ecf9675547eb6163756f29afe847613ef75f3 DIST sqlite-doc-3200000.zip 5695366 BLAKE2B 0e6dba7666d449875026772204943c892e8984a85cd517a33d7a5bdccb352070fc2cc8012b9b57b70c2436587ab5d6840ef329253bcb27c7c1cd10b0b4c30c06 SHA512 0dfa9487c5e4084a9c17e8bf83a92b9a2cd53642efeff0b12051ecdeaf11e3896031f1b4d59021354a293b8acc8c6fcab827961721fda7a5de8415460d3bd280 DIST sqlite-doc-3200100.zip 5759028 BLAKE2B a633672b739160873e64b89e1350c85b0002fd8f268b6ae0f5189de12f411125fbb309585175727b8915fe1468b3e70e7c33239826232c3e7bc8c1c59132bec0 SHA512 518ca59644cecfcd67f511268112e421c5d7bbd77ef1e33304bf306ef110becf1e2a7fe37c506ec6892edb9d5c6ee77657b374c2e061f49890d18af062dea2b3 DIST sqlite-doc-3210000.zip 5800635 BLAKE2B c9e15fe7373045783d05bd7b0a70f980e3c8a3c0ec4243f85fe338788830a58e82f1c6b3c053efe75caa33e99a6162e2f9831e4f5b9577c0bf90a305ee2f0381 SHA512 799c7279166b489d1a5acc9410808c2d4b78e64037fc15b60764180fe1c698f35e27e86793140302f560cfa583baa2c33e416d5c9e1842ec58c6cb6093729334 +DIST sqlite-doc-3220000.zip 5856836 BLAKE2B 1be73848040f3ae9734a44c94e4c36cae269d79abb20467f9f8368754e1ae07f4c25490be985b44d08f427e281fc268c6569dc0f5bbb6254621c62798507d687 SHA512 f9141d3907e5c1a3008d3b7e111e46e7ff1f010358eb682d3e1187a67deb7cca7ba1d5fbc5b19da26ee8df3a0c71a098fd0e8d8ca89c25e5ad2b3e12ba7dc312 DIST sqlite-src-3190300.zip 10193997 BLAKE2B 2286d410594cb04acc79e4877101cbd5018cb84802394fbe4fe9ceaca4e9b20064372f5189d8d70bc7c034789fa92799224939e46f35f8fe47fb42d08f9b29e1 SHA512 514c3de6346bdea359036a79c880133f0eeed4cdfc9e811d662dc343f91ea43edda0f9760405a48e7f61ea1dd3478980cc7d3b5409ef27adcb5311a06e36297e DIST sqlite-src-3200000.zip 10575632 BLAKE2B 2f0f41129e56477531f59d91e02469ccf5e21eaadce57a2a81bde9bcd549c12d55a496f27fd07bf0ded78b55aa8a6e4d48e5073638dc87eaeef8e989906fccfb SHA512 40fe7972902d041f012c7739c8712aa40069aebc7be680fde8f43b33fed885bfc42331bfb7200651486484edb71cbdd77ddb9c119d0847bdfb0e92063090f029 DIST sqlite-src-3200100.zip 10575637 BLAKE2B e45bad50d728e749c258546dd75a9d647ca35584092c663fed176fdd69164623bbe58afd15cd74fcd32a0cec893cffdb0f096873188c42ec5595ef7d635c79ad SHA512 845a0d64c9356aadf178c04dd716bbd37a7353526b06cfa8e8f65653cf6a1893a5c5e8c78d20b43910c34d9167272cf517749c91ed0ba7686977e3d0327e8939 DIST sqlite-src-3210000.zip 10577695 BLAKE2B 21f110d4cdda95864a39b9b9b65985d29e1409ed38a9bda692d33dde845c115476cd77dc3b9cd1b7359ff383dc3050cbf0437b113ea128392aef50dd3b778d46 SHA512 3a054422da80d750fd5ab297f9d2728f4e7b55fa790a72d55da8c381835571992d56b349e50d4680b04c9e2e44d6fa83009c2df3ffa045f43ff9059bb8736894 +DIST sqlite-src-3220000.zip 10721627 BLAKE2B ed4cf93c36c095edeccd6ee4dac5419c516264a42eb9d6d2e333b1d4a134c6198dfcd2bbae41dff811616f0dc7f9e9bb487f9c5b5f631fcb5885540a84bf527a SHA512 e35defb0ffcc10100399051bc734746de40fa3dc5cd673eac470fb58cd8bd6d911b6dacb5e8489e2dd79c6ae75faaeb8c02384f64c4595963e62bd3faeb9446c EBUILD sqlite-3.19.3.ebuild 7611 BLAKE2B 1263a4f8abaff47d5295084f20992bcba69901f1883bd7413d6ab5d8c3b0a8ff6d3a8155857939a4498ee574244222af7f9d1194e32a97bd7f7b0ddbd6d4f067 SHA512 774cca8ce00fea1abd5061bddf8a5661b6345c7d92a40cff80e67e50c05f8015374ee9164a56345a27bbfaa5b377cdbd24ff88b1747cde2c7d32ad3b48c0650a EBUILD sqlite-3.20.0.ebuild 7620 BLAKE2B ea080930bb5e163562cd5e1b7e7e66437cd10638c2e8de05ef657028d5811169b0ba769c43fe016e7fb630daf8e9e03a92b49056bc06be8d6145e2e69af789dc SHA512 22a41d407e0c18fe978eb26cf7606bb977779f61fa26e39f9ebb9d289c26a884ec4d8dec311a2147c5eb51532b8fa9ef6eab4f042a3d7a6e6fb7f06053e67193 EBUILD sqlite-3.20.1-r1.ebuild 8072 BLAKE2B 0b1c72b1efd206d11ddddea689032b7680b1909ffc1f0b46a1819dba8d62a7ee44674a124c4c529d47cc11cd378510436b1333a4d0ecb88a718a896cc047a1e8 SHA512 e819cbf0aff755be74c04b096495b909cd43d50162e7c243a67936169e42db5113880fc47e5d2da26aa0ff84a87d71bb9007eb87a026dd302d58deb5db0409ac -EBUILD sqlite-3.21.0.ebuild 8458 BLAKE2B 48d854b3dd9c48c14fb534aa2f37cc0af1fad552ea940d4381aa60ede0e236a343040fbb2c6e83b19ea08079e0a3501f66dc389f47582f2507d8e8acba125a88 SHA512 3d6f5278c9bf233e16e40acc54f6e0bf30f5456736c9f86f34c2a156573495438783811428fd9f470e02df84177b4cd67dcabc87aa3669a8df7a87276c6d8042 +EBUILD sqlite-3.21.0.ebuild 8456 BLAKE2B 18e5a760e610ad09748b7f3d65f3e447b4b5203aa0739fb935ad0889426ac79e1304a3ef48b3d535540f7e1165c3b3563ebd80824407ff5fcd7538c6a98d070d SHA512 66e0e61a4ef4d69f883745db5997e1404d2ed9cf115e6ff003535362da22401201c04e9d5c92bafd8ca2ec51934308359cbe61c27481892547973efb3282959e +EBUILD sqlite-3.22.0.ebuild 9319 BLAKE2B 1a6ffe8c2bbc4c5842298562ed6feb47b9187168f80740e3252bed8ea857585ceda1bf16153c8770c08221c0924cfff849bf35445b2984d9530bd8a3e250c170 SHA512 0d774f05a56a677fda403b99bc036ec647ac574d1f5a1c1689fc37726159ef69e6c8b764739cae44a5b6e41cb7d7ec61bdf5dad949a766e1fe05ddd40a1543da MISC metadata.xml 745 BLAKE2B 967f5a809e007354fac9d750f068aaf552aac8503f72d20c57dfd0f85dbdbf620209bbd9646cb2b79cfc5f2a40917422c4925784d54220f61132d70ddd414d53 SHA512 06ed7007e3ded9f29fadc70c583e9795a8ab5c27578159bb060b39c0cf7de6b4bca06ff0ceeab6710c50db96a44c976c52af2352ee7928211a46d5eca071b849 diff --git a/dev-db/sqlite/files/sqlite-3.22.0-full_archive-build.patch b/dev-db/sqlite/files/sqlite-3.22.0-full_archive-build.patch new file mode 100644 index 000000000000..5e1236a4e968 --- /dev/null +++ b/dev-db/sqlite/files/sqlite-3.22.0-full_archive-build.patch @@ -0,0 +1,405 @@ +Move some code to libsqlite3.so to avoid duplication. +Link executables against libsqlite3.so. +Increase timeout for fuzzcheck. +Fix building with dlopen() not available. + +--- /Makefile.in ++++ /Makefile.in +@@ -307,6 +307,9 @@ + # Source code for extensions + # + SRC += \ ++ $(TOP)/ext/expert/sqlite3expert.c \ ++ $(TOP)/ext/expert/sqlite3expert.h ++SRC += \ + $(TOP)/ext/fts1/fts1.c \ + $(TOP)/ext/fts1/fts1.h \ + $(TOP)/ext/fts1/fts1_hash.c \ +@@ -355,8 +358,11 @@ + $(TOP)/ext/rbu/sqlite3rbu.h \ + $(TOP)/ext/rbu/sqlite3rbu.c + SRC += \ ++ $(TOP)/ext/misc/appendvfs.c \ + $(TOP)/ext/misc/json1.c \ +- $(TOP)/ext/misc/stmt.c ++ $(TOP)/ext/misc/sqlar.c \ ++ $(TOP)/ext/misc/stmt.c \ ++ $(TOP)/ext/misc/zipfile.c + + # Generated source code files + # +@@ -425,7 +431,6 @@ + # Statically linked extensions + # + TESTSRC += \ +- $(TOP)/ext/expert/sqlite3expert.c \ + $(TOP)/ext/expert/test_expert.c \ + $(TOP)/ext/misc/amatch.c \ + $(TOP)/ext/misc/carray.c \ +@@ -447,8 +452,7 @@ + $(TOP)/ext/misc/spellfix.c \ + $(TOP)/ext/misc/totype.c \ + $(TOP)/ext/misc/unionvtab.c \ +- $(TOP)/ext/misc/wholenumber.c \ +- $(TOP)/ext/misc/zipfile.c ++ $(TOP)/ext/misc/wholenumber.c + + # Source code to the library files needed by the test fixture + # +@@ -610,25 +614,25 @@ + + libtclsqlite3.la: tclsqlite.lo libsqlite3.la + $(LTLINK) -no-undefined -o $@ tclsqlite.lo \ +- libsqlite3.la @TCL_STUB_LIB_SPEC@ $(TLIBS) \ ++ libsqlite3.la @TCL_STUB_LIB_SPEC@ \ + -rpath "$(TCLLIBDIR)" \ + -version-info "8:6:8" \ + -avoid-version + +-sqlite3$(TEXE): shell.c sqlite3.c +- $(LTLINK) $(READLINE_FLAGS) $(SHELL_OPT) -o $@ \ +- shell.c sqlite3.c \ +- $(LIBREADLINE) $(TLIBS) -rpath "$(libdir)" ++sqlite3$(TEXE): shell.c libsqlite3.la ++ $(LTLINK) $(READLINE_FLAGS) -o $@ \ ++ shell.c libsqlite3.la \ ++ $(LIBREADLINE) + +-sqldiff$(TEXE): $(TOP)/tool/sqldiff.c sqlite3.lo sqlite3.h +- $(LTLINK) -o $@ $(TOP)/tool/sqldiff.c sqlite3.lo $(TLIBS) ++sqldiff$(TEXE): $(TOP)/tool/sqldiff.c libsqlite3.la ++ $(LTLINK) -o $@ $(TOP)/tool/sqldiff.c libsqlite3.la + +-dbhash$(TEXE): $(TOP)/tool/dbhash.c sqlite3.lo sqlite3.h +- $(LTLINK) -o $@ $(TOP)/tool/dbhash.c sqlite3.lo $(TLIBS) ++dbhash$(TEXE): $(TOP)/tool/dbhash.c libsqlite3.la ++ $(LTLINK) -o $@ $(TOP)/tool/dbhash.c libsqlite3.la + +-scrub$(TEXE): $(TOP)/ext/misc/scrub.c sqlite3.lo ++scrub$(TEXE): $(TOP)/ext/misc/scrub.c libsqlite3.la + $(LTLINK) -o $@ -I. -DSCRUB_STANDALONE \ +- $(TOP)/ext/misc/scrub.c sqlite3.lo $(TLIBS) ++ $(TOP)/ext/misc/scrub.c libsqlite3.la + + srcck1$(BEXE): $(TOP)/tool/srcck1.c + $(BCC) -o srcck1$(BEXE) $(TOP)/tool/srcck1.c +@@ -704,7 +708,7 @@ + # Rule to build the amalgamation + # + sqlite3.lo: sqlite3.c +- $(LTCOMPILE) $(TEMP_STORE) -c sqlite3.c ++ $(LTCOMPILE) $(SHELL_OPT) $(TEMP_STORE) -c sqlite3.c + + # Rules to build the LEMON compiler generator + # +@@ -995,14 +999,9 @@ + # Source files that go into making shell.c + SHELL_SRC = \ + $(TOP)/src/shell.c.in \ +- $(TOP)/ext/misc/appendvfs.c \ + $(TOP)/ext/misc/shathree.c \ + $(TOP)/ext/misc/fileio.c \ + $(TOP)/ext/misc/completion.c \ +- $(TOP)/ext/misc/sqlar.c \ +- $(TOP)/ext/expert/sqlite3expert.c \ +- $(TOP)/ext/expert/sqlite3expert.h \ +- $(TOP)/ext/misc/zipfile.c \ + $(TOP)/src/test_windirent.c + + shell.c: $(SHELL_SRC) $(TOP)/tool/mkshellc.tcl +@@ -1161,13 +1160,13 @@ + + # Fuzz testing + fuzztest: fuzzcheck$(TEXE) $(FUZZDATA) +- ./fuzzcheck$(TEXE) $(FUZZDATA) ++ ./fuzzcheck$(TEXE) --timeout 3600 $(FUZZDATA) + + fastfuzztest: fuzzcheck$(TEXE) $(FUZZDATA) +- ./fuzzcheck$(TEXE) --limit-mem 100M $(FUZZDATA) ++ ./fuzzcheck$(TEXE) --limit-mem 100M --timeout 3600 $(FUZZDATA) + + valgrindfuzz: fuzzcheck$(TEXT) $(FUZZDATA) +- valgrind ./fuzzcheck$(TEXE) --cell-size-check --limit-mem 10M --timeout 600 $(FUZZDATA) ++ valgrind ./fuzzcheck$(TEXE) --cell-size-check --limit-mem 10M --timeout 3600 $(FUZZDATA) + + # The veryquick.test TCL tests. + # +@@ -1197,24 +1196,23 @@ + smoketest: $(TESTPROGS) fuzzcheck$(TEXE) + ./testfixture$(TEXE) $(TOP)/test/main.test $(TESTOPTS) + +-sqlite3_analyzer.c: sqlite3.c $(TOP)/src/tclsqlite.c $(TOP)/tool/spaceanal.tcl $(TOP)/tool/mkccode.tcl $(TOP)/tool/sqlite3_analyzer.c.in ++sqlite3_analyzer.c: $(TOP)/src/tclsqlite.c $(TOP)/tool/spaceanal.tcl $(TOP)/tool/mkccode.tcl $(TOP)/tool/sqlite3_analyzer.c.in + $(TCLSH_CMD) $(TOP)/tool/mkccode.tcl $(TOP)/tool/sqlite3_analyzer.c.in >sqlite3_analyzer.c + +-sqlite3_analyzer$(TEXE): sqlite3_analyzer.c +- $(LTLINK) sqlite3_analyzer.c -o $@ $(LIBTCL) $(TLIBS) ++sqlite3_analyzer$(TEXE): sqlite3_analyzer.c libsqlite3.la ++ $(LTLINK) sqlite3_analyzer.c -o $@ libsqlite3.la $(LIBTCL) + +-sqltclsh.c: sqlite3.c $(TOP)/src/tclsqlite.c $(TOP)/tool/sqltclsh.tcl $(TOP)/ext/misc/appendvfs.c $(TOP)/tool/mkccode.tcl $(TOP)/tool/sqltclsh.c.in ++sqltclsh.c: $(TOP)/src/tclsqlite.c $(TOP)/tool/sqltclsh.tcl $(TOP)/tool/mkccode.tcl $(TOP)/tool/sqltclsh.c.in + $(TCLSH_CMD) $(TOP)/tool/mkccode.tcl $(TOP)/tool/sqltclsh.c.in >sqltclsh.c + +-sqltclsh$(TEXE): sqltclsh.c +- $(LTLINK) sqltclsh.c -o $@ $(LIBTCL) $(TLIBS) ++sqltclsh$(TEXE): sqltclsh.c libsqlite3.la ++ $(LTLINK) sqltclsh.c -o $@ libsqlite3.la $(LIBTCL) + +-sqlite3_expert$(TEXE): $(TOP)/ext/expert/sqlite3expert.h $(TOP)/ext/expert/sqlite3expert.c $(TOP)/ext/expert/expert.c sqlite3.c +- $(LTLINK) $(TOP)/ext/expert/sqlite3expert.h $(TOP)/ext/expert/sqlite3expert.c $(TOP)/ext/expert/expert.c sqlite3.c -o sqlite3_expert $(TLIBS) ++sqlite3_expert$(TEXE): $(TOP)/ext/expert/sqlite3expert.h $(TOP)/ext/expert/expert.c libsqlite3.la ++ $(LTLINK) $(TOP)/ext/expert/expert.c -o sqlite3_expert libsqlite3.la + + CHECKER_DEPS =\ + $(TOP)/tool/mkccode.tcl \ +- sqlite3.c \ + $(TOP)/src/tclsqlite.c \ + $(TOP)/ext/repair/sqlite3_checker.tcl \ + $(TOP)/ext/repair/checkindex.c \ +@@ -1225,30 +1223,30 @@ + sqlite3_checker.c: $(CHECKER_DEPS) + $(TCLSH_CMD) $(TOP)/tool/mkccode.tcl $(TOP)/ext/repair/sqlite3_checker.c.in >$@ + +-sqlite3_checker$(TEXE): sqlite3_checker.c +- $(LTLINK) sqlite3_checker.c -o $@ $(LIBTCL) $(TLIBS) ++sqlite3_checker$(TEXE): sqlite3_checker.c libsqlite3.la ++ $(LTLINK) sqlite3_checker.c -o $@ libsqlite3.la $(LIBTCL) + +-dbdump$(TEXE): $(TOP)/ext/misc/dbdump.c sqlite3.lo ++dbdump$(TEXE): $(TOP)/ext/misc/dbdump.c libsqlite3.la + $(LTLINK) -DDBDUMP_STANDALONE -o $@ \ +- $(TOP)/ext/misc/dbdump.c sqlite3.lo $(TLIBS) ++ $(TOP)/ext/misc/dbdump.c libsqlite3.la + +-showdb$(TEXE): $(TOP)/tool/showdb.c sqlite3.lo +- $(LTLINK) -o $@ $(TOP)/tool/showdb.c sqlite3.lo $(TLIBS) ++showdb$(TEXE): $(TOP)/tool/showdb.c libsqlite3.la ++ $(LTLINK) -o $@ $(TOP)/tool/showdb.c libsqlite3.la + +-showstat4$(TEXE): $(TOP)/tool/showstat4.c sqlite3.lo +- $(LTLINK) -o $@ $(TOP)/tool/showstat4.c sqlite3.lo $(TLIBS) ++showstat4$(TEXE): $(TOP)/tool/showstat4.c libsqlite3.la ++ $(LTLINK) -o $@ $(TOP)/tool/showstat4.c libsqlite3.la + +-showjournal$(TEXE): $(TOP)/tool/showjournal.c sqlite3.lo +- $(LTLINK) -o $@ $(TOP)/tool/showjournal.c sqlite3.lo $(TLIBS) ++showjournal$(TEXE): $(TOP)/tool/showjournal.c ++ $(LTLINK) -o $@ $(TOP)/tool/showjournal.c + +-showwal$(TEXE): $(TOP)/tool/showwal.c sqlite3.lo +- $(LTLINK) -o $@ $(TOP)/tool/showwal.c sqlite3.lo $(TLIBS) ++showwal$(TEXE): $(TOP)/tool/showwal.c ++ $(LTLINK) -o $@ $(TOP)/tool/showwal.c + + showshm$(TEXE): $(TOP)/tool/showshm.c + $(LTLINK) -o $@ $(TOP)/tool/showshm.c + +-changeset$(TEXE): $(TOP)/ext/session/changeset.c sqlite3.lo +- $(LTLINK) -o $@ $(TOP)/ext/session/changeset.c sqlite3.lo $(TLIBS) ++changeset$(TEXE): $(TOP)/ext/session/changeset.c libsqlite3.la ++ $(LTLINK) -o $@ $(TOP)/ext/session/changeset.c libsqlite3.la + + rollback-test$(TEXE): $(TOP)/tool/rollback-test.c sqlite3.lo + $(LTLINK) -o $@ $(TOP)/tool/rollback-test.c sqlite3.lo $(TLIBS) +@@ -1267,11 +1265,11 @@ + kvtest$(TEXE): $(TOP)/test/kvtest.c sqlite3.c + $(LTLINK) $(KV_OPT) -o $@ $(TOP)/test/kvtest.c sqlite3.c $(TLIBS) + +-rbu$(EXE): $(TOP)/ext/rbu/rbu.c $(TOP)/ext/rbu/sqlite3rbu.c sqlite3.lo +- $(LTLINK) -I. -o $@ $(TOP)/ext/rbu/rbu.c sqlite3.lo $(TLIBS) ++rbu$(EXE): $(TOP)/ext/rbu/rbu.c libsqlite3.la ++ $(LTLINK) -I. -o $@ $(TOP)/ext/rbu/rbu.c libsqlite3.la + +-loadfts$(EXE): $(TOP)/tool/loadfts.c libsqlite3.la +- $(LTLINK) $(TOP)/tool/loadfts.c libsqlite3.la -o $@ $(TLIBS) ++loadfts$(EXE): $(TOP)/tool/loadfts.c libsqlite3.la ++ $(LTLINK) $(TOP)/tool/loadfts.c libsqlite3.la -o $@ + + # This target will fail if the SQLite amalgamation contains any exported + # symbols that do not begin with "sqlite3_". It is run as part of the +--- /configure.ac ++++ /configure.ac +@@ -590,6 +590,9 @@ + if test "${use_loadextension}" = "yes" ; then + OPT_FEATURE_FLAGS="" + AC_SEARCH_LIBS(dlopen, dl) ++ if test "${ac_cv_search_dlopen}" = "no" ; then ++ OPT_FEATURE_FLAGS="-DSQLITE_OMIT_LOAD_EXTENSION=1" ++ fi + else + OPT_FEATURE_FLAGS="-DSQLITE_OMIT_LOAD_EXTENSION=1" + fi +--- /ext/misc/sqlar.c ++++ /ext/misc/sqlar.c +@@ -14,6 +14,8 @@ + ** for working with sqlar archives and used by the shell tool's built-in + ** sqlar support. + */ ++#ifdef SQLITE_HAVE_ZLIB ++ + #include "sqlite3ext.h" + SQLITE_EXTENSION_INIT1 + #include <zlib.h> +@@ -119,3 +121,5 @@ + } + return rc; + } ++ ++#endif /* SQLITE_HAVE_ZLIB */ +--- /ext/misc/zipfile.c ++++ /ext/misc/zipfile.c +@@ -24,6 +24,8 @@ + ** * No support for zip64 extensions + ** * Only the "inflate/deflate" (zlib) compression method is supported + */ ++#ifdef SQLITE_HAVE_ZLIB ++ + #include "sqlite3ext.h" + SQLITE_EXTENSION_INIT1 + #include <stdio.h> +@@ -1665,3 +1667,5 @@ + (void)pzErrMsg; /* Unused parameter */ + return zipfileRegister(db); + } ++ ++#endif /* SQLITE_HAVE_ZLIB */ +--- /ext/repair/sqlite3_checker.c.in ++++ /ext/repair/sqlite3_checker.c.in +@@ -2,6 +2,7 @@ + ** Read an SQLite database file and analyze its space utilization. Generate + ** text on standard output. + */ ++#define SQLITE_CORE 1 + #define TCLSH_INIT_PROC sqlite3_checker_init_proc + #define SQLITE_ENABLE_DBPAGE_VTAB 1 + #define SQLITE_ENABLE_JSON1 1 +@@ -14,7 +15,7 @@ + #define SQLITE_OMIT_SHARED_CACHE 1 + #define SQLITE_DEFAULT_MEMSTATUS 0 + #define SQLITE_MAX_EXPR_DEPTH 0 +-INCLUDE sqlite3.c ++#include "sqlite3.h" + INCLUDE $ROOT/src/tclsqlite.c + INCLUDE $ROOT/ext/misc/btreeinfo.c + INCLUDE $ROOT/ext/repair/checkindex.c +--- /src/shell.c.in ++++ /src/shell.c.in +@@ -61,6 +61,7 @@ + #include <stdio.h> + #include <assert.h> + #include "sqlite3.h" ++#include "ext/expert/sqlite3expert.h" + typedef sqlite3_int64 i64; + typedef sqlite3_uint64 u64; + typedef unsigned char u8; +@@ -124,6 +125,10 @@ + # define SHELL_USE_LOCAL_GETLINE 1 + #endif + ++#ifdef SQLITE_HAVE_ZLIB ++#include <zlib.h> ++#endif ++ + + #if defined(_WIN32) || defined(WIN32) + # include <io.h> +@@ -963,13 +968,6 @@ + INCLUDE ../ext/misc/shathree.c + INCLUDE ../ext/misc/fileio.c + INCLUDE ../ext/misc/completion.c +-INCLUDE ../ext/misc/appendvfs.c +-#ifdef SQLITE_HAVE_ZLIB +-INCLUDE ../ext/misc/zipfile.c +-INCLUDE ../ext/misc/sqlar.c +-#endif +-INCLUDE ../ext/expert/sqlite3expert.h +-INCLUDE ../ext/expert/sqlite3expert.c + + #if defined(SQLITE_ENABLE_SESSION) + /* +@@ -3467,7 +3465,9 @@ + sqlite3_shathree_init(p->db, 0, 0); + sqlite3_completion_init(p->db, 0, 0); + #ifdef SQLITE_HAVE_ZLIB ++ extern int sqlite3_zipfile_init(sqlite3 *, char **, const sqlite3_api_routines *); + sqlite3_zipfile_init(p->db, 0, 0); ++ extern int sqlite3_sqlar_init(sqlite3 *, char **, const sqlite3_api_routines *); + sqlite3_sqlar_init(p->db, 0, 0); + #endif + sqlite3_create_function(p->db, "shell_add_schema", 3, SQLITE_UTF8, 0, +@@ -5316,6 +5316,7 @@ + } + sqlite3_fileio_init(cmd.db, 0, 0); + #ifdef SQLITE_HAVE_ZLIB ++ extern int sqlite3_sqlar_init(sqlite3 *, char **, const sqlite3_api_routines *); + sqlite3_sqlar_init(cmd.db, 0, 0); + #endif + sqlite3_create_function(cmd.db, "shell_putsnl", 1, SQLITE_UTF8, cmd.p, +@@ -8222,6 +8223,7 @@ + #endif + } + data.out = stdout; ++ extern int sqlite3_appendvfs_init(sqlite3 *, char **, const sqlite3_api_routines *); + sqlite3_appendvfs_init(0,0,0); + + /* Go ahead and open the database file if it already exists. If the +--- /tool/mksqlite3c.tcl ++++ /tool/mksqlite3c.tcl +@@ -116,6 +116,7 @@ + rtree.h + sqlite3session.h + sqlite3.h ++ sqlite3expert.h + sqlite3ext.h + sqlite3rbu.h + sqliteicu.h +@@ -399,6 +400,10 @@ + json1.c + fts5.c + stmt.c ++ appendvfs.c ++ sqlar.c ++ sqlite3expert.c ++ zipfile.c + } { + copy_file tsrc/$file + } +--- /tool/sqlite3_analyzer.c.in ++++ /tool/sqlite3_analyzer.c.in +@@ -14,9 +14,6 @@ + #define SQLITE_DEFAULT_MEMSTATUS 0 + #define SQLITE_MAX_EXPR_DEPTH 0 + #define SQLITE_OMIT_LOAD_EXTENSION 1 +-#ifndef USE_EXTERNAL_SQLITE +-INCLUDE sqlite3.c +-#endif + INCLUDE $ROOT/src/tclsqlite.c + + const char *sqlite3_analyzer_init_proc(Tcl_Interp *interp){ +--- /tool/sqltclsh.c.in ++++ /tool/sqltclsh.c.in +@@ -27,19 +27,17 @@ + #define SQLITE_OMIT_SHARED_CACHE 1 + #define SQLITE_DEFAULT_MEMSTATUS 0 + #define SQLITE_MAX_EXPR_DEPTH 0 +-INCLUDE sqlite3.c +-INCLUDE $ROOT/ext/misc/appendvfs.c +-#ifdef SQLITE_HAVE_ZLIB +-INCLUDE $ROOT/ext/misc/zipfile.c +-INCLUDE $ROOT/ext/misc/sqlar.c +-#endif ++#include "sqlite3.h" + INCLUDE $ROOT/src/tclsqlite.c + + const char *sqlite3_tclapp_init_proc(Tcl_Interp *interp){ + (void)interp; ++ extern int sqlite3_appendvfs_init(sqlite3 *,char **, const sqlite3_api_routines *); + sqlite3_appendvfs_init(0,0,0); + #ifdef SQLITE_HAVE_ZLIB ++ extern int sqlite3_sqlar_init(sqlite3 *, char **, const sqlite3_api_routines *); + sqlite3_auto_extension((void(*)(void))sqlite3_sqlar_init); ++ extern int sqlite3_zipfile_init(sqlite3 *, char **, const sqlite3_api_routines *); + sqlite3_auto_extension((void(*)(void))sqlite3_zipfile_init); + #endif + diff --git a/dev-db/sqlite/files/sqlite-3.22.0-full_archive-headers.patch b/dev-db/sqlite/files/sqlite-3.22.0-full_archive-headers.patch new file mode 100644 index 000000000000..751f00a62bdf --- /dev/null +++ b/dev-db/sqlite/files/sqlite-3.22.0-full_archive-headers.patch @@ -0,0 +1,15 @@ +https://sqlite.org/src/info/6185d190e250faae + +--- /src/sqlite3ext.h ++++ /src/sqlite3ext.h +@@ -563,8 +563,8 @@ + #define sqlite3_value_pointer sqlite3_api->value_pointer + /* Version 3.22.0 and later */ + #define sqlite3_vtab_nochange sqlite3_api->vtab_nochange +-#define sqlite3_value_nochange sqltie3_api->value_nochange +-#define sqlite3_vtab_collation sqltie3_api->vtab_collation ++#define sqlite3_value_nochange sqlite3_api->value_nochange ++#define sqlite3_vtab_collation sqlite3_api->vtab_collation + #endif /* !defined(SQLITE_CORE) && !defined(SQLITE_OMIT_LOAD_EXTENSION) */ + + #if !defined(SQLITE_CORE) && !defined(SQLITE_OMIT_LOAD_EXTENSION) diff --git a/dev-db/sqlite/files/sqlite-3.22.0-full_archive-tests.patch b/dev-db/sqlite/files/sqlite-3.22.0-full_archive-tests.patch new file mode 100644 index 000000000000..a253028b7f4b --- /dev/null +++ b/dev-db/sqlite/files/sqlite-3.22.0-full_archive-tests.patch @@ -0,0 +1,249 @@ +https://sqlite.org/src/info/e4766cabdf64d8e9 +https://sqlite.org/src/info/d9e59cfb8476e1ec +https://sqlite.org/src/info/ba0631de60ca38bf +https://sqlite.org/src/info/b685d3231097fb90 + +--- /test/fts3rank.test ++++ /test/fts3rank.test +@@ -14,7 +14,7 @@ + + set testdir [file dirname $argv0] + source $testdir/tester.tcl +-set testprefix fts3expr5 ++set testprefix fts3rank + + # If SQLITE_ENABLE_FTS3 is defined, omit this file. + ifcapable !fts3 { +@@ -56,9 +56,14 @@ + SELECT * FROM t1 ORDER BY rank(x'0000000000000000') DESC, rowid + } {0 {{one two} one {one two} three {one two} two}} + +-do_catchsql_test 1.5 { +- SELECT * FROM t1 ORDER BY rank(x'0100000001000000') DESC, rowid +-} {1 {invalid matchinfo blob passed to function rank()}} ++if {$tcl_platform(byteOrder)=="littleEndian"} { ++ do_catchsql_test 1.5le { ++ SELECT * FROM t1 ORDER BY rank(x'0100000001000000') DESC, rowid ++ } {1 {invalid matchinfo blob passed to function rank()}} ++} else { ++ do_catchsql_test 1.5be { ++ SELECT * FROM t1 ORDER BY rank(x'0000000100000001') DESC, rowid ++ } {1 {invalid matchinfo blob passed to function rank()}} ++} + + finish_test +- +--- /test/func6.test ++++ /test/func6.test +@@ -33,54 +33,125 @@ + CREATE TABLE t2(x TEXT PRIMARY KEY, y) WITHOUT ROWID; + INSERT INTO t2(x,y) SELECT a, b FROM t1; + } ++ ++# Load the contents of $file from disk and return it encoded as a hex ++# string. ++proc loadhex {file} { ++ set fd [open $file] ++ fconfigure $fd -translation binary -encoding binary ++ set data [read $fd] ++ close $fd ++ binary encode hex $data ++} ++ ++# Each argument is either an integer between 0 and 65535, a text value, or ++# an empty string representing an SQL NULL. This command builds an SQLite ++# record containing the values passed as arguments and returns it encoded ++# as a hex string. ++proc hexrecord {args} { ++ set hdr "" ++ set body "" ++ foreach x $args { ++ if {$x==""} { ++ append hdr 00 ++ } elseif {[string is integer $x]==0} { ++ set n [string length $x] ++ append hdr [format %02x [expr $n*2 + 13]] ++ append body [binary encode hex $x] ++ } elseif {$x == 0} { ++ append hdr 08 ++ } elseif {$x == 1} { ++ append hdr 09 ++ } elseif {$x <= 127} { ++ append hdr 01 ++ append body [format %02x $x] ++ } else { ++ append hdr 02 ++ append body [format %04x $x] ++ } ++ } ++ set res [format %02x [expr 1 + [string length $hdr]/2]] ++ append res $hdr ++ append res $body ++} ++ ++# Argument $off is an offset into the database image encoded as a hex string ++# in argument $hexdb. This command returns 0 if the offset contains the hex ++# $hexrec, or throws an exception otherwise. ++# ++proc offset_contains_record {off hexdb hexrec} { ++ set n [string length $hexrec] ++ set off [expr $off*2] ++ if { [string compare $hexrec [string range $hexdb $off [expr $off+$n-1]]] } { ++ error "record not found!" ++ } ++ return 0 ++} ++ ++# This command is the implementation of SQL function "offrec()". The first ++# argument to this is an offset value. The remaining values are used to ++# formulate an SQLite record. If database file test.db does not contain ++# an equivalent record at the specified offset, an exception is thrown. ++# Otherwise, 0 is returned. ++# ++proc offrec {args} { ++ set offset [lindex $args 0] ++ set rec [hexrecord {*}[lrange $args 1 end]] ++ offset_contains_record $offset $::F $rec ++} ++set F [loadhex test.db] ++db func offrec offrec ++ ++# Test the sanity of the tests. ++do_execsql_test func6-105 { ++ SELECT sqlite_offset(d) FROM t1 ORDER BY rowid LIMIT 1; ++} {8179} ++do_test func6-106 { ++ set r [hexrecord abc001 1 999 {}] ++ offset_contains_record 8179 $F $r ++} 0 ++ ++set z100 [string trim [string repeat "0 " 100]] ++ ++# Test offsets within table b-tree t1. + do_execsql_test func6-110 { +- SELECT a, sqlite_offset(d)/4096 + 1, +- sqlite_offset(d)%4096 FROM t1 +- ORDER BY rowid LIMIT 2; +-} {abc001 2 4084 abc002 2 4069} ++ SELECT offrec(sqlite_offset(d), a, b, c, d) FROM t1 ORDER BY rowid ++} $z100 ++ + do_execsql_test func6-120 { + SELECT a, typeof(sqlite_offset(+a)) FROM t1 + ORDER BY rowid LIMIT 2; + } {abc001 null abc002 null} ++ ++# Test offsets within index b-tree t1a. + do_execsql_test func6-130 { +- SELECT a, sqlite_offset(a)/4096+1, +- sqlite_offset(a)%4096 +- FROM t1 +- ORDER BY a LIMIT 2; +-} {abc001 3 4087 abc002 3 4076} ++ SELECT offrec(sqlite_offset(a), a, rowid) FROM t1 ORDER BY a ++} $z100 ++ ++# Test offsets within table b-tree t1 with a temp b-tree ORDER BY. + do_execsql_test func6-140 { +- SELECT a, sqlite_offset(d)/4096+1, +- sqlite_offset(d)%4096 +- FROM t1 +- ORDER BY a LIMIT 2; +-} {abc001 2 4084 abc002 2 4069} ++ SELECT offrec(sqlite_offset(d), a, b, c, d) FROM t1 ORDER BY a ++} $z100 ++ ++# Test offsets from both index t1a and table t1 in the same query. + do_execsql_test func6-150 { +- SELECT a, +- sqlite_offset(a)/4096+1, +- sqlite_offset(a)%4096, +- sqlite_offset(d)/4096+1, +- sqlite_offset(d)%4096 +- FROM t1 +- ORDER BY a LIMIT 2; +-} {abc001 3 4087 2 4084 abc002 3 4076 2 4069} +-do_execsql_test func6-160 { +- SELECT b, +- sqlite_offset(b)/4096+1, +- sqlite_offset(b)%4096, +- sqlite_offset(c)/4096+1, +- sqlite_offset(c)%4096, +- sqlite_offset(d)/4096+1, +- sqlite_offset(d)%4096 +- FROM t1 +- ORDER BY b LIMIT 2; +-} {1 4 4090 4 4090 2 4084 2 4 4081 4 4081 2 4069} ++ SELECT offrec(sqlite_offset(a), a, rowid), ++ offrec(sqlite_offset(d), a, b, c, d) ++ FROM t1 ORDER BY a ++} [concat $z100 $z100] + ++# Test offsets from both index t1bc and table t1 in the same query. ++do_execsql_test func6-160 { ++ SELECT offrec(sqlite_offset(b), b, c, rowid), ++ offrec(sqlite_offset(c), b, c, rowid), ++ offrec(sqlite_offset(d), a, b, c, d) ++ FROM t1 ++ ORDER BY b ++} [concat $z100 $z100 $z100] + ++# Test offsets in WITHOUT ROWID table t2. + do_execsql_test func6-200 { +- SELECT y, sqlite_offset(y)/4096+1, +- sqlite_offset(y)%4096 +- FROM t2 +- ORDER BY x LIMIT 2; +-} {1 5 4087 2 5 4076} ++ SELECT offrec( sqlite_offset(y), x, y ) FROM t2 ORDER BY x ++} $z100 + + finish_test +--- /test/walro2.test ++++ /test/walro2.test +@@ -39,6 +39,18 @@ + } + } + ++# Most systems allocate the *-shm file in 32KB trunks. But on UNIX systems ++# for which the getpagesize() call returns greater than 32K, the *-shm ++# file is allocated in page-sized units (since you cannot mmap part of ++# a page). The following code sets variable $MINSHMSZ to the smallest ++# possible *-shm file (i.e. the greater of 32KB and the system page-size). ++# ++do_execsql_test 0.0 { ++ PRAGMA journal_mode = wal; ++ CREATE TABLE t1(x); ++} {wal} ++set MINSHMSZ [file size test.db-shm] ++ + foreach bZeroShm {0 1} { + set TN [expr $bZeroShm+1] + do_multiclient_test tn { +@@ -169,7 +181,7 @@ + } {a b c d e f g h 1 2} + do_test $TN.3.2.2 { + list [file size test.db-wal] [file size test.db-shm] +- } {0 32768} ++ } [list 0 $MINSHMSZ] + + do_test $TN.3.3.0 { + code2 { sqlite3 db2 test.db } +@@ -182,7 +194,7 @@ + code2 { db2 close } + code1 { db close } + list [file size test.db-wal] [file size test.db-shm] +- } [list [wal_file_size 4 1024] 32768] ++ } [list [wal_file_size 4 1024] $MINSHMSZ] + do_test $TN.3.3.1 { + code1 { sqlite3 db file:test.db?readonly_shm=1 } + sql1 { SELECT * FROM t1 } +@@ -196,7 +208,7 @@ + } + code2 { db2 close } + list [file size test.db-wal] [file size test.db-shm] +- } [list [wal_file_size 4 1024] 32768] ++ } [list [wal_file_size 4 1024] $MINSHMSZ] + do_test $TN.3.3.3 { + sql1 { SELECT * FROM t1 } + } {i ii} diff --git a/dev-db/sqlite/sqlite-3.21.0.ebuild b/dev-db/sqlite/sqlite-3.21.0.ebuild index 3ffed2d02980..0364ee16f59e 100644 --- a/dev-db/sqlite/sqlite-3.21.0.ebuild +++ b/dev-db/sqlite/sqlite-3.21.0.ebuild @@ -19,7 +19,7 @@ SRC_URI="doc? ( https://sqlite.org/2017/${PN}-doc-${DOC_PV}.zip ) LICENSE="public-domain" SLOT="3" -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~ppc-aix ~x64-cygwin ~amd64-fbsd ~x86-fbsd ~amd64-linux ~arm-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~m68k-mint ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris" +KEYWORDS="~alpha amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc x86 ~ppc-aix ~x64-cygwin ~amd64-fbsd ~x86-fbsd ~amd64-linux ~arm-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~m68k-mint ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris" IUSE="debug doc icu +readline secure-delete static-libs tcl test tools" RDEPEND="icu? ( dev-libs/icu:0=[${MULTILIB_USEDEP}] ) diff --git a/dev-db/sqlite/sqlite-3.22.0.ebuild b/dev-db/sqlite/sqlite-3.22.0.ebuild new file mode 100644 index 000000000000..56d3540d02b4 --- /dev/null +++ b/dev-db/sqlite/sqlite-3.22.0.ebuild @@ -0,0 +1,303 @@ +# Copyright 1999-2018 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +EAPI="6" + +inherit autotools eutils flag-o-matic multilib multilib-minimal toolchain-funcs versionator + +SRC_PV="$(printf "%u%02u%02u%02u" $(get_version_components))" +DOC_PV="${SRC_PV}" +# DOC_PV="$(printf "%u%02u%02u00" $(get_version_components $(get_version_component_range 1-3)))" + +DESCRIPTION="A SQL Database Engine in a C Library" +HOMEPAGE="https://sqlite.org/" +SRC_URI="doc? ( https://sqlite.org/2018/${PN}-doc-${DOC_PV}.zip ) + tcl? ( https://sqlite.org/2018/${PN}-src-${SRC_PV}.zip ) + test? ( https://sqlite.org/2018/${PN}-src-${SRC_PV}.zip ) + tools? ( https://sqlite.org/2018/${PN}-src-${SRC_PV}.zip ) + !tcl? ( !test? ( !tools? ( https://sqlite.org/2018/${PN}-autoconf-${SRC_PV}.tar.gz ) ) )" + +LICENSE="public-domain" +SLOT="3" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~ppc-aix ~x64-cygwin ~amd64-fbsd ~x86-fbsd ~amd64-linux ~arm-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~m68k-mint ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris" +IUSE="debug doc icu +readline secure-delete static-libs tcl test tools" + +RDEPEND="sys-libs/zlib:0=[${MULTILIB_USEDEP}] + icu? ( dev-libs/icu:0=[${MULTILIB_USEDEP}] ) + readline? ( sys-libs/readline:0=[${MULTILIB_USEDEP}] ) + tcl? ( dev-lang/tcl:0=[${MULTILIB_USEDEP}] ) + tools? ( dev-lang/tcl:0=[${MULTILIB_USEDEP}] )" +DEPEND="${RDEPEND} + doc? ( app-arch/unzip ) + tcl? ( app-arch/unzip ) + test? ( + app-arch/unzip + dev-lang/tcl:0[${MULTILIB_USEDEP}] + ) + tools? ( app-arch/unzip )" + +full_archive() { + use tcl || use test || use tools +} + +pkg_setup() { + if full_archive; then + S="${WORKDIR}/${PN}-src-${SRC_PV}" + else + S="${WORKDIR}/${PN}-autoconf-${SRC_PV}" + fi +} + +src_prepare() { + if full_archive; then + eapply "${FILESDIR}/${PN}-3.22.0-full_archive-build.patch" + eapply "${FILESDIR}/${PN}-3.22.0-full_archive-headers.patch" + eapply "${FILESDIR}/${PN}-3.22.0-full_archive-tests.patch" + + eapply_user + + # Fix AC_CHECK_FUNCS. + # https://mailinglists.sqlite.org/cgi-bin/mailman/private/sqlite-dev/2016-March/002762.html + sed -e "s/AC_CHECK_FUNCS(.*)/AC_CHECK_FUNCS([fdatasync fullfsync gmtime_r isnan localtime_r localtime_s malloc_usable_size posix_fallocate pread pread64 pwrite pwrite64 strchrnul usleep utime])/" -i configure.ac || die "sed failed" + else + eapply "${FILESDIR}/${PN}-3.21.0-nonfull_archive-build.patch" + eapply -p2 "${FILESDIR}/${PN}-3.22.0-full_archive-headers.patch" + + eapply_user + + # Fix AC_CHECK_FUNCS. + # https://mailinglists.sqlite.org/cgi-bin/mailman/private/sqlite-dev/2016-March/002762.html + sed \ + -e "s/AC_CHECK_FUNCS(\[fdatasync.*/AC_CHECK_FUNCS([fdatasync fullfsync gmtime_r isnan localtime_r localtime_s malloc_usable_size posix_fallocate pread pread64 pwrite pwrite64 strchrnul usleep utime])/" \ + -e "/AC_CHECK_FUNCS(posix_fallocate)/d" \ + -i configure.ac || die "sed failed" + fi + + eautoreconf + + multilib_copy_sources +} + +multilib_src_configure() { + local CPPFLAGS="${CPPFLAGS}" CFLAGS="${CFLAGS}" options=() + + options+=( + --enable-$(full_archive && echo load-extension || echo dynamic-extensions) + --enable-threadsafe + ) + if ! full_archive; then + options+=(--disable-static-shell) + fi + + # Support detection of misuse of SQLite API. + # https://sqlite.org/compile.html#enable_api_armor + append-cppflags -DSQLITE_ENABLE_API_ARMOR + + # Support column metadata functions. + # https://sqlite.org/c3ref/column_database_name.html + append-cppflags -DSQLITE_ENABLE_COLUMN_METADATA + + # Support sqlite_dbpage virtual table. + # https://sqlite.org/compile.html#enable_dbpage_vtab + append-cppflags -DSQLITE_ENABLE_DBPAGE_VTAB + + # Support dbstat virtual table. + # https://sqlite.org/dbstat.html + append-cppflags -DSQLITE_ENABLE_DBSTAT_VTAB + + # Support comments in output of EXPLAIN. + # https://sqlite.org/compile.html#enable_explain_comments + append-cppflags -DSQLITE_ENABLE_EXPLAIN_COMMENTS + + # Support Full-Text Search versions 3, 4 and 5. + # https://sqlite.org/fts3.html + # https://sqlite.org/fts5.html + append-cppflags -DSQLITE_ENABLE_FTS3 -DSQLITE_ENABLE_FTS3_PARENTHESIS -DSQLITE_ENABLE_FTS4 + options+=(--enable-fts5) + + # Support hidden columns. + append-cppflags -DSQLITE_ENABLE_HIDDEN_COLUMNS + + # Support JSON1 extension. + # https://sqlite.org/json1.html + append-cppflags -DSQLITE_ENABLE_JSON1 + + # Support memsys5 memory allocator. + # https://sqlite.org/malloc.html#memsys5 + append-cppflags -DSQLITE_ENABLE_MEMSYS5 + + # Support sqlite_offset() function. + # https://sqlite.org/lang_corefunc.html#sqlite_offset + append-cppflags -DSQLITE_ENABLE_OFFSET_SQL_FUNC + + # Support pre-update hook functions. + # https://sqlite.org/c3ref/preupdate_count.html + append-cppflags -DSQLITE_ENABLE_PREUPDATE_HOOK + + # Support Resumable Bulk Update extension. + # https://sqlite.org/rbu.html + append-cppflags -DSQLITE_ENABLE_RBU + + # Support R*Trees. + # https://sqlite.org/rtree.html + append-cppflags -DSQLITE_ENABLE_RTREE + + # Support scan status functions. + # https://sqlite.org/c3ref/stmt_scanstatus.html + # https://sqlite.org/c3ref/stmt_scanstatus_reset.html + append-cppflags -DSQLITE_ENABLE_STMT_SCANSTATUS + + # Support sqlite_stmt virtual table. + # https://sqlite.org/stmt.html + append-cppflags -DSQLITE_ENABLE_STMTVTAB + + # Support Session extension. + # https://sqlite.org/sessionintro.html + options+=(--enable-session) + + # Support unknown() function. + # https://sqlite.org/compile.html#enable_unknown_sql_function + append-cppflags -DSQLITE_ENABLE_UNKNOWN_SQL_FUNCTION + + # Support unlock notification. + # https://sqlite.org/unlock_notify.html + append-cppflags -DSQLITE_ENABLE_UNLOCK_NOTIFY + + # Support LIMIT and ORDER BY clauses on DELETE and UPDATE statements. + # https://sqlite.org/compile.html#enable_update_delete_limit + append-cppflags -DSQLITE_ENABLE_UPDATE_DELETE_LIMIT + + # Support PRAGMA function_list, PRAGMA module_list and PRAGMA pragma_list statements. + # https://sqlite.org/pragma.html#pragma_function_list + # https://sqlite.org/pragma.html#pragma_module_list + # https://sqlite.org/pragma.html#pragma_pragma_list + append-cppflags -DSQLITE_INTROSPECTION_PRAGMAS + + # Support soundex() function. + # https://sqlite.org/lang_corefunc.html#soundex + append-cppflags -DSQLITE_SOUNDEX + + # debug USE flag. + if full_archive; then + options+=($(use_enable debug)) + else + if use debug; then + append-cppflags -DSQLITE_DEBUG + else + append-cppflags -DNDEBUG + fi + fi + + # icu USE flag. + if use icu; then + # Support ICU extension. + # https://sqlite.org/compile.html#enable_icu + append-cppflags -DSQLITE_ENABLE_ICU + if full_archive; then + sed -e "s/^TLIBS = @LIBS@/& -licui18n -licuuc/" -i Makefile.in || die "sed failed" + else + sed -e "s/^LIBS = @LIBS@/& -licui18n -licuuc/" -i Makefile.in || die "sed failed" + fi + fi + + # readline USE flag. + options+=( + --disable-editline + $(use_enable readline) + ) + if full_archive && use readline; then + options+=(--with-readline-inc="-I${EPREFIX}/usr/include/readline") + fi + + # secure-delete USE flag. + if use secure-delete; then + # Enable secure_delete pragma by default. + # https://sqlite.org/pragma.html#pragma_secure_delete + append-cppflags -DSQLITE_SECURE_DELETE + fi + + # static-libs USE flag. + options+=($(use_enable static-libs static)) + + # tcl, test, tools USE flags. + if full_archive; then + options+=(--enable-tcl) + fi + + if [[ "${CHOST}" == *-mint* ]]; then + append-cppflags -DSQLITE_OMIT_WAL + fi + + if [[ "${ABI}" == "x86" ]]; then + if $(tc-getCC) ${CPPFLAGS} ${CFLAGS} -E -P -dM - < /dev/null 2> /dev/null | grep -q "^#define __SSE__ 1$"; then + append-cflags -mfpmath=sse + else + append-cflags -ffloat-store + fi + fi + + econf "${options[@]}" +} + +multilib_src_compile() { + emake HAVE_TCL="$(usex tcl 1 "")" TCLLIBDIR="${EPREFIX}/usr/$(get_libdir)/${P}" + + if use tools && multilib_is_native_abi; then + emake changeset dbdump dbhash rbu scrub showdb showjournal showshm showstat4 showwal sqldiff sqlite3_analyzer sqlite3_checker sqlite3_expert sqltclsh + fi +} + +multilib_src_test() { + if [[ "${EUID}" -eq 0 ]]; then + ewarn "Skipping tests due to root permissions" + return + fi + + emake HAVE_TCL="$(usex tcl 1 "")" $(use debug && echo fulltest || echo test) +} + +multilib_src_install() { + emake DESTDIR="${D}" HAVE_TCL="$(usex tcl 1 "")" TCLLIBDIR="${EPREFIX}/usr/$(get_libdir)/${P}" install + + if use tools && multilib_is_native_abi; then + install_tool() { + if [[ -f ".libs/${1}" ]]; then + newbin ".libs/${1}" "${2}" + else + newbin "${1}" "${2}" + fi + } + + install_tool changeset sqlite3-changeset + install_tool dbdump sqlite3-db-dump + install_tool dbhash sqlite3-db-hash + install_tool rbu sqlite3-rbu + install_tool scrub sqlite3-scrub + install_tool showdb sqlite3-show-db + install_tool showjournal sqlite3-show-journal + install_tool showshm sqlite3-show-shm + install_tool showstat4 sqlite3-show-stat4 + install_tool showwal sqlite3-show-wal + install_tool sqldiff sqlite3-diff + install_tool sqlite3_analyzer sqlite3-analyzer + install_tool sqlite3_checker sqlite3-checker + install_tool sqlite3_expert sqlite3-expert + install_tool sqltclsh sqlite3-tclsh + + unset -f install_tool + fi +} + +multilib_src_install_all() { + prune_libtool_files + + doman sqlite3.1 + + if use doc; then + rm "${WORKDIR}/${PN}-doc-${DOC_PV}/"*.{db,txt} + ( + docinto html + dodoc -r "${WORKDIR}/${PN}-doc-${DOC_PV}/"* + ) + fi +} |