From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from lists.gentoo.org (pigeon.gentoo.org [208.92.234.80]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by finch.gentoo.org (Postfix) with ESMTPS id DF91F1395E2 for ; Thu, 10 Nov 2016 18:19:10 +0000 (UTC) Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id E749CE08F8; Thu, 10 Nov 2016 18:19:07 +0000 (UTC) Received: from smtp.gentoo.org (smtp.gentoo.org [140.211.166.183]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by pigeon.gentoo.org (Postfix) with ESMTPS id A0DB4E08F8 for ; Thu, 10 Nov 2016 18:19:07 +0000 (UTC) Received: from oystercatcher.gentoo.org (oystercatcher.gentoo.org [148.251.78.52]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.gentoo.org (Postfix) with ESMTPS id 752D0341662 for ; Thu, 10 Nov 2016 18:19:06 +0000 (UTC) Received: from localhost.localdomain (localhost [127.0.0.1]) by oystercatcher.gentoo.org (Postfix) with ESMTP id 14FDE2499 for ; Thu, 10 Nov 2016 18:19:05 +0000 (UTC) From: "Mike Gilbert" To: gentoo-commits@lists.gentoo.org Content-Transfer-Encoding: 8bit Content-type: text/plain; charset=UTF-8 Reply-To: gentoo-dev@lists.gentoo.org, "Mike Gilbert" Message-ID: <1478801862.861d3e9ed122fbf939b6e3ef5f36dcc800f050b3.floppym@gentoo> Subject: [gentoo-commits] repo/gentoo:master commit in: dev-db/sqlite/, dev-db/sqlite/files/ X-VCS-Repository: repo/gentoo X-VCS-Files: dev-db/sqlite/Manifest dev-db/sqlite/files/sqlite-3.15.0-full_tarball-tests-icu.patch dev-db/sqlite/sqlite-3.15.1.ebuild X-VCS-Directories: dev-db/sqlite/files/ dev-db/sqlite/ X-VCS-Committer: floppym X-VCS-Committer-Name: Mike Gilbert X-VCS-Revision: 861d3e9ed122fbf939b6e3ef5f36dcc800f050b3 X-VCS-Branch: master Date: Thu, 10 Nov 2016 18:19:05 +0000 (UTC) Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-commits@lists.gentoo.org X-Archives-Salt: a2c20fc2-bacd-4877-91fe-e6c8394e6ceb X-Archives-Hash: 9a24fb1433474ac01e943b49a7913358 commit: 861d3e9ed122fbf939b6e3ef5f36dcc800f050b3 Author: Arfrever Frehtes Taifersar Arahesis Apache Org> AuthorDate: Thu Nov 10 18:05:56 2016 +0000 Commit: Mike Gilbert gentoo org> CommitDate: Thu Nov 10 18:17:42 2016 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=861d3e9e dev-db/sqlite: Version bump (3.15.1). dev-db/sqlite/Manifest | 3 + .../sqlite-3.15.0-full_tarball-tests-icu.patch | 64 +++++ dev-db/sqlite/sqlite-3.15.1.ebuild | 262 +++++++++++++++++++++ 3 files changed, 329 insertions(+) diff --git a/dev-db/sqlite/Manifest b/dev-db/sqlite/Manifest index 6ef0b6f..dc03dba 100644 --- a/dev-db/sqlite/Manifest +++ b/dev-db/sqlite/Manifest @@ -4,15 +4,18 @@ DIST sqlite-autoconf-3120200.tar.gz 2374804 SHA256 fd00770c9afd39db555c78400e52f DIST sqlite-autoconf-3130000.tar.gz 2459805 SHA256 e2797026b3310c9d08bd472f6d430058c6dd139ff9d4e30289884ccd9744086b SHA512 c2547ff9a144c46829344058b4f8dcc5b8c9c823cbc667be2944dc7beecb9cc213858cc9ce302a763200278397d9a0fc6bb35c542028a124ef0980fedd574c2f WHIRLPOOL b9bcfb2eecf30719f7a673d569949b4e497c9682de08ca6f0ccc6c67a8f1541a51e88108bebde94a14802516b114c9f8cad83fbdbb130774b3082a8107657255 DIST sqlite-autoconf-3140100.tar.gz 2473610 SHA256 bc7182476900017becb81565ecea7775d46ab747a97281aa610f4f45881c47a6 SHA512 14d78eea1aef5bd143f942b88f01ef2c1ef58aeac6c0a10c0807761ac5301b71db7d787f82ba8215d804b80c115ee4800072d4aa86616d04d01aaf529e168461 WHIRLPOOL b43a9397b24b3cd6841bf5468d03d4ca10805c355df5afa6b0e69b6cf5d924f1e11e03b5b78549f9e21028d5a1ba2467707e84eb2e2955df21a59abd464dacb2 DIST sqlite-autoconf-3140200.tar.gz 2472940 SHA256 644f0c127f7d0cbe8765b9bbdf9ed09d6a2f2b9dfba48ddfd8ca0a42fdb5b3fc SHA512 02c5ca3073e29307f842af3305793dd6251d2ac43ce3f37b5b9402d6582a6bda56a41f82b130d03997ebb3cc109d6ab7baa9a946c03e74ae5158426bc154fd70 WHIRLPOOL c98f2b004838e5b767704248fdc5afd0428559155838240943861edd6e4a20121f81e24fca672cd8408c9c6907ef4e5d6c228c167ab7b3a0670b787420006377 +DIST sqlite-autoconf-3150100.tar.gz 2491350 SHA256 5dfa89b7697ee3c2ac7b44e8e157e7f204bf999c866afcaa8bb1c7ff656ae2c5 SHA512 516d683fb64a6a0ef170d718059420c9b0023bffd75780194d9c06fab1142a749700fafd83577c81dfc7a7a21eee955df9a879f8c2f818f542c7adb968daa0ed WHIRLPOOL 550a7a1e85860ab656ad78d7bfb61d859cc146343caf5b59009b29ee206a635725a0d65b261b08f4430192f064a01cc35a4088946275f4f239aa821622b8fd8c DIST sqlite-doc-3120000.zip 5402611 SHA256 346d9d56a0193d9396948192b7eca9e45c2adfeea6bbf71df62502830da510f3 SHA512 7879d006e528d692ea5718f27d03e2dfe2a5e54aa135be983b992836102720df4dc690d84795115a25ed19a663e895a3f3f8a59d0de079c451d215e07081281e WHIRLPOOL 00f5bc4b82af1ba8d43ae4d0761dacd2e608009812a12fee9aedd333baec9b36f74542c60de4acacd19f5ef898d3bd57dfb705f3b21219ba3862ca91c2f76402 DIST sqlite-doc-3120100.zip 5410493 SHA256 dbe53c076922c711a467dde57432583fbf9a12eac57cb75f6116a310880eb088 SHA512 d0117618d97744255248b9160816203147ba2afdb0bea5fe02d5e464541e09bc9147189317c6f849cc56059d6ae96e3e4b2a30cd8d0bc7b0e1ecacb573cfcdd4 WHIRLPOOL e3f054eda83301b9e4b5170bf9c56895756e4ac78a1c6256467c990fafccaeadec5f7ca54f1bf118bcb950f25db63df6c0972a138d36a10a0a9cfdf688eb207b DIST sqlite-doc-3120200.zip 5416790 SHA256 67c640c4b01b961016717db61e3e43c63c33248c78ce0de9f10b88ea7ce97670 SHA512 4ded937565b2d9b63ae55495d4b536bc0056e0d9aa7119ee54ddea127c42ba7de17986db7b85c172043fab1112132cbc126a102b248770fca6cde9a8fda438ae WHIRLPOOL 7eefecb6d0450c85ec3f30cdeb853117f4067e1bace7d3c0524e5c6cb13d2e31772211aec8562f972491da413d9bd79022bc29c16968b086562e7f17bff984eb DIST sqlite-doc-3130000.zip 5550186 SHA256 510606a9cdd89814b2d44e7b7f284ebb0a58153e1800de6daadfab445190f79c SHA512 0bf4544a07bd92533bc248dc16ed43c4fcad870ab535591618d3006f38c2741a8c0ed1da082444ea1af2f57936575c678bc12b651252426b908660023b36cd39 WHIRLPOOL 78fd5de701224e39d07fbb03a9193dff45237845b215d83f27a623f289d9da0df7082d53115e90474856b775d350ee3f9d2970ca2c1a4a33b24543de06fd3b9a DIST sqlite-doc-3140100.zip 5689913 SHA256 036203c71ca5796fd80b9d9d3bd710f698da3d5393d4df5c7cdf5468258c9ec6 SHA512 4a5292f6b6a117a0bf7ef8446c9748cde534d6a6f3a02a12fc4eb4cddcf1d11479bc4e2eebdb21866a1994143e02fd66b79a08b98acfdb3390689cbe425b0b6e WHIRLPOOL 4c82e3e950396504846a14d62c01a94c9063978b9aa42656adbb0219dbd6f89a4d7703ee2a4ed7265b7875f612f2b0869b098b09a2bfcafa01e7694dfaa57c06 DIST sqlite-doc-3140200.zip 5386739 SHA256 421d2ea3d288dd301ec98155a6765d6bc8ce93b9a3ae82bac56a21cdd91190c2 SHA512 4acd9818cc864332cbc57c9533d45c26d62f5c62ab9dff3f0fb1bb98530fe974f83699ccc0b098b14bcbfd718a2aa6b4d3b7c2ca880e4097d9b0833b8d902069 WHIRLPOOL b2593b17da42d41425d5579d36193945dc20d7bc11b271c0d94f005fef06352d3bf8b1c2963b9b811ba8f46190f35a9ea61080c09e765b28e9c7330ca613f3e6 +DIST sqlite-doc-3150100.zip 5461172 SHA256 121363c75da7f6c8988f70dfa5bed5f0f06b5c9d37b4e2230316c55a80760825 SHA512 fa58e69d74cc816e4541385ad0a62b1987eb1abf4cb325867500030b4fa8a5058a63133314aef685a2158e9171f98a557d555e99a13417bc7bf8240da7feda30 WHIRLPOOL 6eac94d6c71b28850592a9135a487d0d69a74c7d366f072d02f02de2091fe8169469b4ccba0605d555d10c5549cca6138d5938ad03dc5b453d3a342fb43d8101 DIST sqlite-src-3120000.zip 9367749 SHA256 d891e7ffd56cd97d069a6ed99d7e85cbe655b0a97ca6b5398c7806e888642df1 SHA512 9669e33e328b826f4692725ec09e21d85f4f2c386c624a81b0535f41ca7d2f996ebf5018db8ecdfdac18cff39a881a953111801499705dfb599f00e3bb5d10e4 WHIRLPOOL 865aaecbe331ec93b1a8c5b965c3edc43d35994c2db79d336febb27860ee91d68753d3ea274b4639f3e05d3f0a589fb21aedac33bc2120a4de8d094383d7b923 DIST sqlite-src-3120100.zip 9368459 SHA256 49b9819683f8f7329a78d2008e3f7c4e02126b556b95e5dfe3be102b9e741cff SHA512 6d0d7230343ca460215b5764d4a546631ddc2bcfc0777051379fb4632ccf9c36a53d26eda6811823156be166643c001c994a0f52498c6196ed13b34e931d55e1 WHIRLPOOL e41fd7a1ba870efb5421657975990c1d7e1ecc27023882771474a62e82b2ae305bc3d0b8556e0627de886d35e1b375fec223b3f70582d64fc5345c525b293131 DIST sqlite-src-3120200.zip 9370396 SHA256 2c16caa653e57f3c71873aa88797c97117981d6b0974254ce24d933dd27f9a86 SHA512 6cc9718c23ca3f65a42cc715eb67c8d174ecf0e397457efb6bfc5bd2efc9a51ea2f84266d31826068bf46efc550eb277b3c8e93cb85c5d23645e8b8ae4e2fc07 WHIRLPOOL ffdbbc384189f0d62a93ee8219051ff936b7c0c2fd39449f6ff72a734ab219f23f049648de7c0ec510a74aad85ba07ef0c8bebea4c3b83e043464744d2c039f4 DIST sqlite-src-3130000.zip 9506412 SHA256 b46b62dc27abbde52db69d8e2a710469b9af613ba251eb98e412d4f3827f915b SHA512 4cb7531105869ff7db5c08aa8e4d303fa3d80c8c67e21d9a835a09f7dddb4c9dbba837e2030dd4af6bcdb00a305b057cbd6430e11b3f2ae5e470f27b69b6c1e6 WHIRLPOOL 901f6cd343daaa62970f8d768e3c6ccb0b1da75fb5643b27e76f60d224005a08955fde9df5b8bb63250ab27994e2428ce19e21b4a1ccabec47cd4b8df4a13657 DIST sqlite-src-3140100.zip 9574478 SHA256 9411f67f383256d8d1520bac727b9e96eed5494222d2f8af76548d233b0adc74 SHA512 055f5f7db4088f527750358e7e9575b248a48137db5b4720269206141518b2426370e3c02d46278f1b7abf0b2f491e1f536e78d6d051a00b4e79579810cc57a6 WHIRLPOOL 0b1884844b0cec05c4a830a453221d2390f396c913133e259d0bea2800949d57894a43f729f97b7955c91db7f6a24e56d71fe63286b6e5b952fa8e24726b3448 DIST sqlite-src-3140200.zip 9577094 SHA256 52507e20c2757b24b703b43ede77ce464c8106c1658a5b357974c435aa0677a6 SHA512 d68412bceec463674790adb4388988dd4e1db40b095ba3f88cc3404979191930805b0a46603ef0b81ab41657167b3efa904535c0516170e2fc8c825a2729946c WHIRLPOOL 7084e7df53edf22de6fca51c0dbf12c16e3cb4b1ee62251e72a4a4820b6fdafee188654b2a3c5ecd2ae1054cf7f13b5e4dedad18eb94f307960c4a5d7cb3495c +DIST sqlite-src-3150100.zip 9632944 SHA256 423a73936931c5148a4812ee7d82534ec7d998576ea1b4e1573af91ec15a4b01 SHA512 c659d52287b8f9ae86d327490feeb4dad824712c3827483688b72fd43e067139ec5434086cf02e9f8f375adf6967337ebdd6aa696698ed5936b27ece01cff8a6 WHIRLPOOL 8ae9b7c56e4a8c22c2dba1d9656f6735610a7b8b9cd12de6417f1c6cd77e1dc5341ace9aef68ed2813f7b7d43583190312c8097186f58bcd51237d73cc7def49 diff --git a/dev-db/sqlite/files/sqlite-3.15.0-full_tarball-tests-icu.patch b/dev-db/sqlite/files/sqlite-3.15.0-full_tarball-tests-icu.patch new file mode 100644 index 00000000..7a979ae --- /dev/null +++ b/dev-db/sqlite/files/sqlite-3.15.0-full_tarball-tests-icu.patch @@ -0,0 +1,64 @@ +https://www.sqlite.org/src/info/afbbb6c66a85ff3f + +--- ext/icu/icu.c ++++ ext/icu/icu.c +@@ -500,20 +500,20 @@ + void *pContext; /* sqlite3_user_data() context */ + void (*xFunc)(sqlite3_context*,int,sqlite3_value**); + } scalars[] = { +- {"regexp", 2, SQLITE_ANY, 0, icuRegexpFunc}, ++ {"regexp", 2, SQLITE_ANY|SQLITE_DETERMINISTIC, 0, icuRegexpFunc}, + +- {"lower", 1, SQLITE_UTF16, 0, icuCaseFunc16}, +- {"lower", 2, SQLITE_UTF16, 0, icuCaseFunc16}, +- {"upper", 1, SQLITE_UTF16, (void*)1, icuCaseFunc16}, +- {"upper", 2, SQLITE_UTF16, (void*)1, icuCaseFunc16}, ++ {"lower", 1, SQLITE_UTF16|SQLITE_DETERMINISTIC, 0, icuCaseFunc16}, ++ {"lower", 2, SQLITE_UTF16|SQLITE_DETERMINISTIC, 0, icuCaseFunc16}, ++ {"upper", 1, SQLITE_UTF16|SQLITE_DETERMINISTIC, (void*)1, icuCaseFunc16}, ++ {"upper", 2, SQLITE_UTF16|SQLITE_DETERMINISTIC, (void*)1, icuCaseFunc16}, + +- {"lower", 1, SQLITE_UTF8, 0, icuCaseFunc16}, +- {"lower", 2, SQLITE_UTF8, 0, icuCaseFunc16}, +- {"upper", 1, SQLITE_UTF8, (void*)1, icuCaseFunc16}, +- {"upper", 2, SQLITE_UTF8, (void*)1, icuCaseFunc16}, ++ {"lower", 1, SQLITE_UTF8|SQLITE_DETERMINISTIC, 0, icuCaseFunc16}, ++ {"lower", 2, SQLITE_UTF8|SQLITE_DETERMINISTIC, 0, icuCaseFunc16}, ++ {"upper", 1, SQLITE_UTF8|SQLITE_DETERMINISTIC, (void*)1, icuCaseFunc16}, ++ {"upper", 2, SQLITE_UTF8|SQLITE_DETERMINISTIC, (void*)1, icuCaseFunc16}, + +- {"like", 2, SQLITE_UTF8, 0, icuLikeFunc}, +- {"like", 3, SQLITE_UTF8, 0, icuLikeFunc}, ++ {"like", 2, SQLITE_UTF8|SQLITE_DETERMINISTIC, 0, icuLikeFunc}, ++ {"like", 3, SQLITE_UTF8|SQLITE_DETERMINISTIC, 0, icuLikeFunc}, + + {"icu_load_collation", 2, SQLITE_UTF8, (void*)db, icuLoadCollation}, + }; +--- test/cursorhint2.test ++++ test/cursorhint2.test +@@ -164,17 +164,19 @@ + x2 {AND(EQ(c1,ADD(32,32)),EQ(c0,r[2]))} + } + +-do_extract_hints_test 2.11 { +- SELECT * FROM x1 LEFT JOIN x2 ON (a=x) WHERE x2.b LIKE 'abc%' +-} { +- x2 {AND(expr,EQ(c0,r[2]))} ++ifcapable !icu { ++ # This test only works using the built-in LIKE, not the ICU LIKE extension. ++ do_extract_hints_test 2.11 { ++ SELECT * FROM x1 LEFT JOIN x2 ON (a=x) WHERE x2.b LIKE 'abc%' ++ } { ++ x2 {AND(expr,EQ(c0,r[2]))} ++ } + } + +-do_extract_hints_test 2.11 { ++do_extract_hints_test 2.12 { + SELECT * FROM x1 LEFT JOIN x2 ON (a=x) WHERE coalesce(x2.b, 1) + } { + x2 {EQ(c0,r[2])} + } + + finish_test +- diff --git a/dev-db/sqlite/sqlite-3.15.1.ebuild b/dev-db/sqlite/sqlite-3.15.1.ebuild new file mode 100644 index 00000000..a38cdb2 --- /dev/null +++ b/dev-db/sqlite/sqlite-3.15.1.ebuild @@ -0,0 +1,262 @@ +# Copyright 1999-2016 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +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/2016/${PN}-doc-${DOC_PV}.zip ) + tcl? ( https://sqlite.org/2016/${PN}-src-${SRC_PV}.zip ) + test? ( https://sqlite.org/2016/${PN}-src-${SRC_PV}.zip ) + tools? ( https://sqlite.org/2016/${PN}-src-${SRC_PV}.zip ) + !tcl? ( !test? ( !tools? ( https://sqlite.org/2016/${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 ~amd64-fbsd ~sparc-fbsd ~x86-fbsd ~x86-freebsd ~hppa-hpux ~ia64-hpux ~x86-interix ~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}] ) + 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_tarball() { + use tcl || use test || use tools +} + +pkg_setup() { + if full_tarball; then + S="${WORKDIR}/${PN}-src-${SRC_PV}" + else + S="${WORKDIR}/${PN}-autoconf-${SRC_PV}" + fi +} + +src_prepare() { + if full_tarball; then + epatch "${FILESDIR}/${PN}-3.14.0-full_tarball-build.patch" + epatch "${FILESDIR}/${PN}-3.15.0-full_tarball-tests-icu.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 + epatch "${FILESDIR}/${PN}-3.12.0-nonfull_tarball-build.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}" options=() + + options+=( + --enable-$(full_tarball && echo load-extension || echo dynamic-extensions) + --enable-threadsafe + ) + if ! full_tarball; 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 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 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 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 soundex() function. + # https://sqlite.org/lang_corefunc.html#soundex + append-cppflags -DSQLITE_SOUNDEX + + # debug USE flag. + if full_tarball; 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_tarball; 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_tarball && 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_tarball; then + options+=(--enable-tcl) + fi + + if [[ "${CHOST}" == *-mint* ]]; then + append-cppflags -DSQLITE_OMIT_WAL + 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 dbhash rbu scrub showdb showjournal showstat4 showwal sqldiff sqlite3_analyzer + 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 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 showstat4 sqlite3-show-stat4 + install_tool showwal sqlite3-show-wal + install_tool sqldiff sqlite3-diff + install_tool sqlite3_analyzer sqlite3-analyzer + + 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 +}