diff options
Diffstat (limited to 'dev-db')
-rw-r--r-- | dev-db/Manifest.gz | bin | 15908 -> 15906 bytes | |||
-rw-r--r-- | dev-db/mongodb/Manifest | 4 | ||||
-rw-r--r-- | dev-db/mongodb/mongodb-4.4.20.ebuild | 7 | ||||
-rw-r--r-- | dev-db/mongodb/mongodb-5.0.16-r1.ebuild | 9 | ||||
-rw-r--r-- | dev-db/sqlite/Manifest | 2 | ||||
-rw-r--r-- | dev-db/sqlite/files/sqlite-3.44.2-fts-regression.patch | 125 | ||||
-rw-r--r-- | dev-db/sqlite/sqlite-3.44.2-r2.ebuild | 434 |
7 files changed, 570 insertions, 11 deletions
diff --git a/dev-db/Manifest.gz b/dev-db/Manifest.gz Binary files differindex e3b9a963ed48..7e81e489d8aa 100644 --- a/dev-db/Manifest.gz +++ b/dev-db/Manifest.gz diff --git a/dev-db/mongodb/Manifest b/dev-db/mongodb/Manifest index c8ef637dd6d5..f10a4264583c 100644 --- a/dev-db/mongodb/Manifest +++ b/dev-db/mongodb/Manifest @@ -24,6 +24,6 @@ AUX mongos.confd-r3 470 BLAKE2B 9cf6f201d337430901d957a5a0811ff11ac2e81814aac212 AUX mongos.initd-r3 422 BLAKE2B 90872d0d8cdc5e33e3eebee848f58a2db0511d48b496ba9318117b74ad9265ead53a21b7d1790729a62d61839099bee315ace8ff3646c01e096a943c2251bf88 SHA512 bf5897614d59c6b4e72529b126408a62ea37d9e9368e5ff69c8fcf2bad3ec09065cff09467f82117a892c51090018706d2f38c03cb9a974a61a49bd9efa0f144 DIST mongodb-src-r4.4.20.tar.gz 50883098 BLAKE2B 3ef2fddc4d926e372033449a14b0a71c606b6f8a9bb6767ff32c8da5a9287bf2972fae9dd83eab3ad934b1341c3edeed7708afd46f9a096819e9eca48aca40f5 SHA512 70b264b6a6f3ec16c8b0750d47026928f6250cb7a1a64d980c400ffbcc3af1b9c6301fe098d209fb8461cba4534b7c2edffdcdeb0548e627da107cc23d9a6b9c DIST mongodb-src-r5.0.16.tar.gz 56217257 BLAKE2B d78704c0cff4f8c1da20fdc5e083634c6dbe539136de58410ae6b86c9c5cd8044926425545ae07a7011a5febec5abb6f67773b8e539a4ac16daa1ad0ffc6a070 SHA512 d5fccd6cd3ee3f70457bd96a8eff66ca9872df37e196f1baf26993b6c080297d77504020e5554eaf3a2e92bb2730a467226b4bef47ab7fdc4de247d91c0143eb -EBUILD mongodb-4.4.20.ebuild 5203 BLAKE2B d7bbda27bf8b75cc2c713b8af735fd0cb6bd23e67866a05859b924a17a2688c241260a4cfd4d96adc78f8dc156bcdd4ead63f48dfd780b6517fa5931e15eb169 SHA512 564b9e79d32f6df720a46ad1f37622730595f2079e2a9e8f387eab765b94d64adf08bbd094b97c7b77716009b0e4677893c8388903eff98f33bbf5466c91b183 -EBUILD mongodb-5.0.16-r1.ebuild 5620 BLAKE2B feeb6349867a9780bd0c1e6ba3102de8710603fa112be5190250196923db48a4c076b6ab9df2736265eb66c95f01557d465faa3a9e6629946f3da092f4f7770b SHA512 75c7be0ab7e4f3f270a3b55f2254fc879bee54d949576f309c0a662a64a9c7a3a3388c290ee7903d896bbc51bfd070c9f0a304008ee3eb17f3f8e0d498a51ca1 +EBUILD mongodb-4.4.20.ebuild 5163 BLAKE2B a3babcee2a6ae390c1b9a6bfb04e8b391d72861c08938f5146c3ce9d61fbeca781bbb18f3a95dfd0e37f2e6835f1dbf83206f39fac1687b1db98c01c8ea95e6b SHA512 4b8b4a96424c7788a606df2ba6c0829d82c3bab139a74a7aafb87420d762495bc17db9347b340215a8e7e8a312d5fbcda828c04df5ae0b83d0a3167376216408 +EBUILD mongodb-5.0.16-r1.ebuild 5577 BLAKE2B 7cf7a99e22d846e2319a10e2449d946736777ce228a579d83130df23a0d628d2fd70abf022fe309b96913bad724e68d3c1cedfbd620eeaa4f7b20b250a445c01 SHA512 5c3c8bc92528e36120e1c940ed507a9647054b9214e1bf677a69bdff358fa9e59bf6c8daf41a73f8011f1e815d2dc1d29920c23ac24f55343386d3068a306b0c MISC metadata.xml 853 BLAKE2B fef5b12bf1ac004fe59de6ab55cb537d1b287b28ce4eaaee88d555c17784bf7b95273e25e917c7c75a511e24515d12eeb255108e07ef549db4e225a03adfbfc0 SHA512 fc7f8225e517043b6c5e0ceb77191204c4c66b1454e889837572c04aaaf5a973f89efed26f07493f448e69eefb90cca90a3f84e0acac134454f17bdc97959997 diff --git a/dev-db/mongodb/mongodb-4.4.20.ebuild b/dev-db/mongodb/mongodb-4.4.20.ebuild index 4dc301c49f07..e2606b9b203e 100644 --- a/dev-db/mongodb/mongodb-4.4.20.ebuild +++ b/dev-db/mongodb/mongodb-4.4.20.ebuild @@ -1,9 +1,9 @@ -# Copyright 1999-2023 Gentoo Authors +# Copyright 1999-2024 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=7 -PYTHON_COMPAT=( python3_{9..11} ) +PYTHON_COMPAT=( python3_{10..11} ) SCONS_MIN_VERSION="3.3.1" CHECKREQS_DISK_BUILD="2400M" @@ -21,7 +21,7 @@ SRC_URI="https://fastdl.mongodb.org/src/${MY_P}.tar.gz" LICENSE="Apache-2.0 SSPL-1" SLOT="0" KEYWORDS="amd64 ~arm64 -riscv" -IUSE="debug kerberos lto ssl test +tools" +IUSE="debug kerberos ssl test +tools" RESTRICT="!test? ( test )" RDEPEND="acct-group/mongodb @@ -123,7 +123,6 @@ src_configure() { use arm64 && scons_opts+=( --use-hardware-crc32=off ) # Bug 701300 use debug && scons_opts+=( --dbg=on ) use kerberos && scons_opts+=( --use-sasl-client ) - use lto && scons_opts+=( --lto=on ) use ssl && scons_opts+=( --ssl ) # Needed to avoid forcing FORTIFY_SOURCE diff --git a/dev-db/mongodb/mongodb-5.0.16-r1.ebuild b/dev-db/mongodb/mongodb-5.0.16-r1.ebuild index 95e24df12a4f..0711ae6c4d00 100644 --- a/dev-db/mongodb/mongodb-5.0.16-r1.ebuild +++ b/dev-db/mongodb/mongodb-5.0.16-r1.ebuild @@ -1,9 +1,9 @@ -# Copyright 1999-2023 Gentoo Authors +# Copyright 1999-2024 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=7 -PYTHON_COMPAT=( python3_{9..11} ) +PYTHON_COMPAT=( python3_{10..11} ) SCONS_MIN_VERSION="3.3.1" CHECKREQS_DISK_BUILD="2400M" @@ -22,7 +22,7 @@ LICENSE="Apache-2.0 SSPL-1" SLOT="0" KEYWORDS="amd64 ~arm64 -riscv" CPU_FLAGS="cpu_flags_x86_avx" -IUSE="debug kerberos lto mongosh ssl +tools ${CPU_FLAGS}" +IUSE="debug kerberos mongosh ssl +tools ${CPU_FLAGS}" # https://github.com/mongodb/mongo/wiki/Test-The-Mongodb-Server # resmoke needs python packages not yet present in Gentoo @@ -138,8 +138,7 @@ src_configure() { use arm64 && scons_opts+=( --use-hardware-crc32=off ) # Bug 701300 use debug && scons_opts+=( --dbg=on ) use kerberos && scons_opts+=( --use-sasl-client ) - use lto && scons_opts+=( --lto=on ) - use amd64 && ! use cpu_flags_x86_avx && scons_opts+=( --experimental-optimization=-sandybridge ) # Bug 890294 + use amd64 && ! use cpu_flags_x86_avx && scons_opts+=( --experimental-optimization=-sandybridge ) # Bug 890294 scons_opts+=( --ssl=$(usex ssl on off) ) diff --git a/dev-db/sqlite/Manifest b/dev-db/sqlite/Manifest index 94991281f3cd..30c9b2ac762a 100644 --- a/dev-db/sqlite/Manifest +++ b/dev-db/sqlite/Manifest @@ -1,6 +1,8 @@ +AUX sqlite-3.44.2-fts-regression.patch 3161 BLAKE2B fc2fe5d62016325c4defd667f2e54ef4546f06329dfba329dabef16e870bc67a80c7807f7c0c9390dbbfac1f9af0fbb660ae1f3eb424aa273de31ee2c83f348b SHA512 55d1ccc6268139c121b9eb82ac3824217aae65db23a94e166702a27d41fb69c56396b5e8ac7b3c04c66619316b54f6272ca3b805c585252980ee05930de0e499 AUX sqlite-3.44.2-tracker-regression.patch 5322 BLAKE2B 8a7cf0bb28a58717450c1dd0fe32ec196187ffd9576bd3498abf675e6d8aa906264ad64b5ee291f0a7624b7961e69d8155f45ed7165678378b29d27c1b7fe506 SHA512 911d594a8718849f46776a66f5b34d5054a6368512af26f80f842feb4ba6c7fd07b317f045df1ca105c875df47d96c78c6a7429642fc7c9c687e10c88888fb1f DIST sqlite-doc-3440200.zip 10704552 BLAKE2B 3d50ac157bd2793c9167328994334a417835e5381e432fd8028e064869b8eab2ab1d213815d2232850d695bc71626e9d89518b201888a43673274cba2a1b345d SHA512 a7c92af0d3a61a2450511cfb507785c7ab64c21c6dbcf5a8bdef509d25a6b3ca35ce93a25ca827497c27abca77d11b794fbbc783e4d8e131981bf1d4b29f83e8 DIST sqlite-src-3440200.zip 14070781 BLAKE2B 9d29964ee15da6a104f4857cb5f2621df5b51d043012789793526f34c56097d7b1b1dcaa7672637f2d16bcab4ff775ba2c8415213b79f80636c0ff2aeff883ba SHA512 5c1fed9c399dad75735a1b4451f8f6be474b07652d74500649e60474691923f56156ef6d5bce51b58367c1676371f1184e32584fe9ac4d5dd0c4776fa6f1d9a3 EBUILD sqlite-3.44.2-r1.ebuild 12998 BLAKE2B 966b5bb1ff09af723212e872ac5b9b90abcc0aea3040f4d0ca07b8e48709f7a390e9d23b40effda97fe913cb5509baeccb5d5ab14488fd9183f4884a8159f2a8 SHA512 819738dfb5631f54cca84bc7f4fe92570e14e069091d223db7bf144a1a1521e119eb2b2d9af7e1f4635245d5c6dc86c6de04ebc0ec68a92e45a7ae8d5c8b9785 +EBUILD sqlite-3.44.2-r2.ebuild 13055 BLAKE2B 4cd0bd4cea06e818ab4a6d907d535798ec34401827dab3429811438f78f3c4183cb3806901ee782ae2d265a93db1ca109ec45fb8ee870310cdf4103c9272f411 SHA512 8ee08a7a37f3f81baca430840e039a53cfdfe2357e213d57f0e69c42b81d8fbf548b5586dc59cc044490b92c850aac3e8582046eefc0f5b1a618649f9e92e4c6 EBUILD sqlite-9999.ebuild 12940 BLAKE2B 378fe8563793a737775cb323267460dd8ab1881dde18026795ba916a94814dafd56221abda70423833414445ea653cf3d1ad5489e6abfc409138f5037c5633c8 SHA512 d701f8d940b30351f1d01bc59194ff48413cf0b043171982362ad4b3c436466ad23577a3c70cc261f219357d94119761f1b3f992f5d6bd93285166557c698364 MISC metadata.xml 824 BLAKE2B 8ab2e8f230bf3a2b26077d90944bca7bf35ae905310205b90bf243365148488303256606c0ee7c3fb736300686466a1c2583bf103693c20063ca668fe9e52647 SHA512 ed4a89e3c2d633cb6ebf8bcbf3ca055d0d1b2ffd801ba559395f812faeaafdfedd97dae11a5a53a4c068e43026fbd4eed4cb12c8b89a7fda6dabe6f78a2e0b38 diff --git a/dev-db/sqlite/files/sqlite-3.44.2-fts-regression.patch b/dev-db/sqlite/files/sqlite-3.44.2-fts-regression.patch new file mode 100644 index 000000000000..369732f81b38 --- /dev/null +++ b/dev-db/sqlite/files/sqlite-3.44.2-fts-regression.patch @@ -0,0 +1,125 @@ +https://bugs.gentoo.org/921490 +https://www.sqlite.org/forum/forumpost/d16aeb397d + +https://github.com/kovidgoyal/calibre/commit/0a23fabd5b4bff152047ba0cffbc2b67592645d1 +https://github.com/kovidgoyal/calibre/commit/3349979551db05ec0c8754d7ea5a4e57a97f8a0a +https://github.com/kovidgoyal/calibre/commit/da82b673f09efbe9cdcc1e0900f0a9f04d8de052 +--- a/ext/fts5/fts5_aux.c ++++ b/ext/fts5/fts5_aux.c +@@ -209,10 +209,18 @@ + rc = fts5CInstIterNext(&p->iter); + } + } + + if( iPos==p->iRangeEnd ){ ++ if( p->bOpen ){ ++ if( p->iter.iStart>=0 && iPos>=p->iter.iStart ){ ++ fts5HighlightAppend(&rc, p, &p->zIn[p->iOff], iEndOff - p->iOff); ++ p->iOff = iEndOff; ++ } ++ fts5HighlightAppend(&rc, p, p->zClose, -1); ++ p->bOpen = 0; ++ } + fts5HighlightAppend(&rc, p, &p->zIn[p->iOff], iEndOff - p->iOff); + p->iOff = iEndOff; + } + + return rc; + +ADDED ext/fts5/test/fts5tokenizer2.test +Index: ext/fts5/test/fts5tokenizer2.test +================================================================== +--- /dev/null ++++ b/ext/fts5/test/fts5tokenizer2.test +@@ -0,0 +1,89 @@ ++# 2023 Nov 03 ++# ++# The author disclaims copyright to this source code. In place of ++# a legal notice, here is a blessing: ++# ++# May you do good and not evil. ++# May you find forgiveness for yourself and forgive others. ++# May you share freely, never taking more than you give. ++# ++#*********************************************************************** ++# ++# Tests focusing on the built-in fts5 tokenizers. ++# ++ ++source [file join [file dirname [info script]] fts5_common.tcl] ++set testprefix fts5tokenizer2 ++ ++# If SQLITE_ENABLE_FTS5 is defined, omit this file. ++ifcapable !fts5 { ++ finish_test ++ return ++} ++ ++sqlite3_fts5_create_tokenizer db tst get_tst_tokenizer ++proc get_tst_tokenizer {args} { ++ return "tst_tokenizer" ++} ++proc tst_tokenizer {flags txt} { ++ set token "" ++ set lTok [list] ++ ++ foreach c [split $txt {}] { ++ if {$token==""} { ++ append token $c ++ } else { ++ set t1 [string is upper $token] ++ set t2 [string is upper $c] ++ ++ if {$t1!=$t2} { ++ lappend lTok $token ++ set token "" ++ } ++ append token $c ++ } ++ } ++ if {$token!=""} { lappend lTok $token } ++ ++ set iOff 0 ++ foreach t $lTok { ++ set n [string length $t] ++ sqlite3_fts5_token $t $iOff [expr $iOff+$n] ++ incr iOff $n ++ } ++} ++ ++do_execsql_test 1.0 { ++ CREATE VIRTUAL TABLE t1 USING fts5(t, tokenize=tst); ++} ++ ++do_execsql_test 1.1 { ++ INSERT INTO t1 VALUES('AAdontBBmess'); ++} ++ ++do_execsql_test 1.2 { ++ SELECT snippet(t1, 0, '>', '<', '...', 4) FROM t1('BB'); ++} {AAdont>BB<mess} ++ ++do_execsql_test 1.3 { ++ SELECT highlight(t1, 0, '>', '<') FROM t1('BB'); ++} {AAdont>BB<mess} ++ ++do_execsql_test 1.4 { ++ SELECT highlight(t1, 0, '>', '<') FROM t1('AA'); ++} {>AA<dontBBmess} ++ ++do_execsql_test 1.5 { ++ SELECT highlight(t1, 0, '>', '<') FROM t1('dont'); ++} {AA>dont<BBmess} ++ ++do_execsql_test 1.6 { ++ SELECT highlight(t1, 0, '>', '<') FROM t1('mess'); ++} {AAdontBB>mess<} ++ ++do_execsql_test 1.7 { ++ SELECT highlight(t1, 0, '>', '<') FROM t1('BB mess'); ++} {AAdont>BBmess<} ++ ++ ++finish_test + + diff --git a/dev-db/sqlite/sqlite-3.44.2-r2.ebuild b/dev-db/sqlite/sqlite-3.44.2-r2.ebuild new file mode 100644 index 000000000000..90699bab480f --- /dev/null +++ b/dev-db/sqlite/sqlite-3.44.2-r2.ebuild @@ -0,0 +1,434 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit autotools flag-o-matic multilib-minimal toolchain-funcs + +DESCRIPTION="SQL database engine" +HOMEPAGE="https://sqlite.org/" + +# On version updates, make sure to read the forum (https://sqlite.org/forum/forum) +# for hints regarding test failures, backports, etc. +if [[ ${PV} == 9999 ]]; then + S="${WORKDIR}"/${PN} + PROPERTIES="live" +else + printf -v SRC_PV "%u%02u%02u%02u" $(ver_rs 1- " ") + DOC_PV="${SRC_PV}" + #printf -v DOC_PV "%u%02u%02u00" $(ver_rs 1-3 " ") + + SRC_URI=" + https://sqlite.org/2023/${PN}-src-${SRC_PV}.zip + doc? ( https://sqlite.org/2023/${PN}-doc-${DOC_PV}.zip ) + " + S="${WORKDIR}/${PN}-src-${SRC_PV}" + + KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" +fi + +LICENSE="public-domain" +SLOT="3" +IUSE="debug doc icu +readline secure-delete static-libs tcl test tools" +RESTRICT="!test? ( test )" + +RDEPEND=" + sys-libs/zlib:=[${MULTILIB_USEDEP}] + icu? ( dev-libs/icu:=[${MULTILIB_USEDEP}] ) + readline? ( sys-libs/readline:=[${MULTILIB_USEDEP}] ) + tcl? ( dev-lang/tcl:=[${MULTILIB_USEDEP}] ) + tools? ( dev-lang/tcl:= ) +" +DEPEND=" + ${RDEPEND} + test? ( >=dev-lang/tcl-8.6:0[${MULTILIB_USEDEP}] ) +" +BDEPEND=">=dev-lang/tcl-8.6:0" +if [[ ${PV} == 9999 ]]; then + BDEPEND+=" dev-vcs/fossil" +else + BDEPEND+=" app-arch/unzip" +fi + +PATCHES=( + "${FILESDIR}"/${PN}-3.44.2-tracker-regression.patch + "${FILESDIR}"/${PN}-3.44.2-fts-regression.patch +) + +_fossil_fetch() { + local distdir="${PORTAGE_ACTUAL_DISTDIR:-${DISTDIR}}" + local repo_id="${1}" + local repo_uri="${2}" + + local -x FOSSIL_HOME="${HOME}" + + mkdir -p "${T}/fossil/${repo_id}" || die + pushd "${T}/fossil/${repo_id}" > /dev/null || die + + if [[ -n "${EVCS_OFFLINE}" ]]; then + if [[ ! -f "${distdir}/fossil-src/${repo_id}/${repo_id}.fossil" ]]; then + die "Network activity disabled using EVCS_OFFLINE and clone of repository missing: \"${distdir}/fossil-src/${repo_id}/${repo_id}.fossil\"" + fi + else + if [[ ! -f "${distdir}/fossil-src/${repo_id}/${repo_id}.fossil" ]]; then + einfo fossil clone --verbose "${repo_uri}" "${repo_id}.fossil" + fossil clone --verbose "${repo_uri}" "${repo_id}.fossil" || die + echo + else + cp -p "${distdir}/fossil-src/${repo_id}/${repo_id}.fossil" . || die + einfo fossil pull --repository "${repo_id}.fossil" --verbose "${repo_uri}" + fossil pull --repository "${repo_id}.fossil" --verbose "${repo_uri}" || die + echo + fi + + ( + addwrite "${distdir}" + mkdir -p "${distdir}/fossil-src/${repo_id}" || die + cp -p "${repo_id}.fossil" "${distdir}/fossil-src/${repo_id}/${repo_id}.fossil" || die + ) + fi + + popd > /dev/null || die +} + +_fossil_checkout() { + local distdir="${PORTAGE_ACTUAL_DISTDIR:-${DISTDIR}}" + local repo_id="${1}" + local branch_or_commit="${2}" + local target_directory="${3}" + + local -x FOSSIL_HOME="${HOME}" + + if [[ ! -f "${distdir}/fossil-src/${repo_id}/${repo_id}.fossil" ]]; then + die "Clone of repository missing: \"${distdir}/fossil-src/${repo_id}/${repo_id}.fossil\"" + fi + + if [[ ! -f "${T}/fossil/${repo_id}/${repo_id}.fossil" ]]; then + mkdir -p "${T}/fossil/${repo_id}" || die + cp -p "${distdir}/fossil-src/${repo_id}/${repo_id}.fossil" "${T}/fossil/${repo_id}" || die + fi + + mkdir "${target_directory}" || die + pushd "${target_directory}" > /dev/null || die + + einfo fossil open --quiet "${T}/fossil/${repo_id}/${repo_id}.fossil" "${branch_or_commit}" + fossil open --quiet "${T}/fossil/${repo_id}/${repo_id}.fossil" "${branch_or_commit}" || die + echo + + popd > /dev/null || die +} + +fossil_fetch() { + local repo_id="${1}" + local repo_uri="${2}" + local target_directory="${3}" + + local branch_or_commit="${EFOSSIL_COMMIT:-${EFOSSIL_BRANCH:-trunk}}" + + _fossil_fetch "${repo_id}" "${repo_uri}" + _fossil_checkout "${repo_id}" "${branch_or_commit}" "${target_directory}" +} + +src_unpack() { + if [[ ${PV} == 9999 ]]; then + fossil_fetch sqlite https://sqlite.org/src "${WORKDIR}/${PN}" + if use doc; then + fossil_fetch sqlite-doc https://sqlite.org/docsrc "${WORKDIR}/${PN}-doc" + fi + else + default + fi +} + +src_prepare() { + default + + eautoreconf + multilib_copy_sources +} + +multilib_src_configure() { + local -x CPPFLAGS="${CPPFLAGS}" CFLAGS="${CFLAGS}" + local options=() + + options+=( + --enable-load-extension + --enable-threadsafe + ) + + # Support detection of misuse of SQLite API. + # https://sqlite.org/compile.html#enable_api_armor + append-cppflags -DSQLITE_ENABLE_API_ARMOR + + # Support bytecode and tables_used virtual tables. + # https://sqlite.org/compile.html#enable_bytecode_vtab + # https://sqlite.org/bytecodevtab.html + append-cppflags -DSQLITE_ENABLE_BYTECODE_VTAB + + # Support column metadata functions. + # https://sqlite.org/compile.html#enable_column_metadata + # 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 + # https://sqlite.org/dbpage.html + append-cppflags -DSQLITE_ENABLE_DBPAGE_VTAB + + # Support dbstat virtual table. + # https://sqlite.org/compile.html#enable_dbstat_vtab + # https://sqlite.org/dbstat.html + append-cppflags -DSQLITE_ENABLE_DBSTAT_VTAB + + # Support sqlite3_serialize() and sqlite3_deserialize() functions. + # https://sqlite.org/compile.html#enable_deserialize + # https://sqlite.org/c3ref/serialize.html + # https://sqlite.org/c3ref/deserialize.html + append-cppflags -DSQLITE_ENABLE_DESERIALIZE + + # 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/compile.html#enable_fts3 + # https://sqlite.org/compile.html#enable_fts3_parenthesis + # https://sqlite.org/compile.html#enable_fts4 + # https://sqlite.org/compile.html#enable_fts5 + # 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 memsys5 memory allocator. + # https://sqlite.org/compile.html#enable_memsys5 + # https://sqlite.org/malloc.html#memsys5 + append-cppflags -DSQLITE_ENABLE_MEMSYS5 + + # Support sqlite3_normalized_sql() function. + # https://sqlite.org/c3ref/expanded_sql.html + append-cppflags -DSQLITE_ENABLE_NORMALIZE + + # Support sqlite_offset() function. + # https://sqlite.org/compile.html#enable_offset_sql_func + # https://sqlite.org/lang_corefunc.html#sqlite_offset + append-cppflags -DSQLITE_ENABLE_OFFSET_SQL_FUNC + + # Support pre-update hook functions. + # https://sqlite.org/compile.html#enable_preupdate_hook + # https://sqlite.org/c3ref/preupdate_count.html + append-cppflags -DSQLITE_ENABLE_PREUPDATE_HOOK + + # Support Resumable Bulk Update extension. + # https://sqlite.org/compile.html#enable_rbu + # https://sqlite.org/rbu.html + append-cppflags -DSQLITE_ENABLE_RBU + + # Support R*Trees. + # https://sqlite.org/compile.html#enable_rtree + # https://sqlite.org/compile.html#enable_geopoly + # https://sqlite.org/rtree.html + # https://sqlite.org/geopoly.html + append-cppflags -DSQLITE_ENABLE_RTREE -DSQLITE_ENABLE_GEOPOLY + + # Support Session extension. + # https://sqlite.org/compile.html#enable_session + # https://sqlite.org/sessionintro.html + append-cppflags -DSQLITE_ENABLE_SESSION + + # Support scan status functions. + # https://sqlite.org/compile.html#enable_stmt_scanstatus + # 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/compile.html#enable_stmtvtab + # https://sqlite.org/stmt.html + append-cppflags -DSQLITE_ENABLE_STMTVTAB + + # 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/compile.html#enable_unlock_notify + # https://sqlite.org/c3ref/unlock_notify.html + # 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 + # https://sqlite.org/lang_delete.html#optional_limit_and_order_by_clauses + # https://sqlite.org/lang_update.html#optional_limit_and_order_by_clauses + append-cppflags -DSQLITE_ENABLE_UPDATE_DELETE_LIMIT + + # Support soundex() function. + # https://sqlite.org/compile.html#soundex + # https://sqlite.org/lang_corefunc.html#soundex + append-cppflags -DSQLITE_SOUNDEX + + # Support URI filenames. + # https://sqlite.org/compile.html#use_uri + # https://sqlite.org/uri.html + append-cppflags -DSQLITE_USE_URI + + options+=( $(use_enable debug) ) + + if use icu; then + # Support ICU extension. + # https://sqlite.org/compile.html#enable_icu + append-cppflags -DSQLITE_ENABLE_ICU + sed -e "s/^TLIBS = @LIBS@/& -licui18n -licuuc/" -i Makefile.in || die "sed failed" + fi + + options+=( + --disable-editline + $(use_enable readline) + ) + + if use readline; then + options+=( --with-readline-inc="-I${ESYSROOT}/usr/include/readline" ) + fi + + if use secure-delete; then + # Enable secure_delete pragma by default. + # https://sqlite.org/compile.html#secure_delete + # https://sqlite.org/pragma.html#pragma_secure_delete + append-cppflags -DSQLITE_SECURE_DELETE + fi + + options+=( $(use_enable static-libs static) ) + + # tcl, test, tools USE flags. + if use tcl || use test || { use tools && multilib_is_native_abi; }; then + options+=( + --enable-tcl + --with-tcl="${ESYSROOT}/usr/$(get_libdir)" + ) + else + options+=( --disable-tcl ) + 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 + + # Skip known-broken test for now + # https://sqlite.org/forum/forumpost/d97caf168f + # https://sqlite.org/forum/forumpost/50f136d91d + if use test ; then + rm test/atof1.test || die + fi + fi + + econf "${options[@]}" +} + +multilib_src_compile() { + emake HAVE_TCL="$(usev tcl 1)" TCLLIBDIR="${EPREFIX}/usr/$(get_libdir)/${P}" + + if use tools && multilib_is_native_abi; then + emake changeset dbdump dbhash dbtotxt index_usage rbu scrub showdb showjournal showshm showstat4 showwal sqldiff sqlite3_analyzer sqlite3_checker sqlite3_expert sqltclsh + fi + + if [[ ${PV} == 9999 ]] && use doc && multilib_is_native_abi; then + emake tclsqlite3.c + + local build_directory="$(pwd)" + build_directory="${build_directory##*/}" + + mkdir "${WORKDIR}/${PN}-doc-build" || die + pushd "${WORKDIR}/${PN}-doc-build" > /dev/null || die + + emake -f "../${PN}-doc/Makefile" -j1 SRC="../${PN}" BLD="../${build_directory}" DOC="../${PN}-doc" CC="$(tc-getBUILD_CC)" TCLINC="" TCLFLAGS="$($(tc-getBUILD_PKG_CONFIG) --libs tcl) -ldl -lm" base doc + rmdir doc/matrix{/*,} || die + + popd > /dev/null || die + fi +} + +multilib_src_test() { + if [[ "${EUID}" -eq 0 ]]; then + ewarn "Skipping tests due to root permissions" + return + fi + + local -x SQLITE_HISTORY="${T}/sqlite_history_${ABI}" + + # e_uri.test tries to open files in /. + # bug #839798 + local SANDBOX_PREDICT=${SANDBOX_PREDICT} + addpredict "/test.db" + addpredict "/ΓΏ.db" + + emake -Onone HAVE_TCL="$(usex tcl 1 "")" $(usex debug 'fulltest' '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 dbtotxt sqlite3-db-to-txt + install_tool index_usage sqlite3-index-usage + 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() { + find "${ED}" -name "*.la" -delete || die + + doman sqlite3.1 + + if use doc; then + if [[ ${PV} == 9999 ]]; then + pushd "${WORKDIR}/${PN}-doc-build/doc" > /dev/null || die + else + pushd "${WORKDIR}/${PN}-doc-${DOC_PV}" > /dev/null || die + fi + + find "(" -name "*.db" -o -name "*.txt" ")" -delete || die + if [[ ${PV} != 9999 ]]; then + rm search search.d/admin || die + rmdir search.d || die + find -name "*~" -delete || die + fi + + ( + docinto html + dodoc -r * + ) + + popd > /dev/null || die + fi +} |