mirror of
https://github.com/flatcar/scripts.git
synced 2025-09-28 09:01:55 +02:00
dev-db/sqlite: Sync with Gentoo
It's from Gentoo commit 05065f46e1522d9e5e096f58212aee9ed5771b61.
This commit is contained in:
parent
ccd8982732
commit
92c655c3bb
@ -1,8 +1,4 @@
|
|||||||
DIST sqlite-doc-3450300.zip 10759906 BLAKE2B 3ad2307d4c5de10f20d0cb58bb673b291a63bf0328c3f1e40e37a4823fadda82e0f1fbfe7c9c76925ab1d1448e76cc4cbce4d4ad15c732f134f1b4b4caee9543 SHA512 8f865302137684c31c4f54d6cbe4ee82126394887930ec50501fb811023bc612878d2dc1c2317e960fe818a277b008a9835475e7a47822fc5ece5fe37aa61e31
|
|
||||||
DIST sqlite-doc-3460000.zip 10842823 BLAKE2B 4b4b36d78ba540abaa39bb510465e23e39cabcce97d19e4cb1374d941183ea05e1150356d15c99dbdf5513adebe2e9b06cbc59bd268fe6ce17905523488ec682 SHA512 22748bf113ff96320c90227ba104ff081bf1761550944afbc78b6768d6677b13982d7e759c5f67eb7ba7ed0dcbffee500bc39fc9929d28f86b2a269145fefebd
|
|
||||||
DIST sqlite-doc-3460100.zip 10851427 BLAKE2B 7462e83ca84e3e9aac7236f575fd2bdddac7744ae700a63fe8fdc9d2df3157c59fd374d99a0526bd4d9f742005ee7a90f3d78057861d3c3fcba9f897630e48db SHA512 1ad7dfc938d182f69ea9367b4f5ead1d48b991626521249e8b58c9fb4c2553e348ce402de9cc81b0ad699d4c45c467de56a98ee39f9c3555c6fafff15fba41ce
|
DIST sqlite-doc-3460100.zip 10851427 BLAKE2B 7462e83ca84e3e9aac7236f575fd2bdddac7744ae700a63fe8fdc9d2df3157c59fd374d99a0526bd4d9f742005ee7a90f3d78057861d3c3fcba9f897630e48db SHA512 1ad7dfc938d182f69ea9367b4f5ead1d48b991626521249e8b58c9fb4c2553e348ce402de9cc81b0ad699d4c45c467de56a98ee39f9c3555c6fafff15fba41ce
|
||||||
DIST sqlite-doc-3470000.zip 10937359 BLAKE2B 3fc349e4b2b0cd3fc59147519062133261463e09933419f330cd18e6b120d3498c10a1864c85c2de144430f1dbf7f9a867aba47ab77dbe2aa0b5128e0742dddf SHA512 20c126551a95905e63e99930e3f7964b6e3fc8b72fbbedf5484f669817af2a8384f05fce89d6117a5e232ba71f5469894d4bb22ba7abd796b24fd624372c7c17
|
DIST sqlite-doc-3470000.zip 10937359 BLAKE2B 3fc349e4b2b0cd3fc59147519062133261463e09933419f330cd18e6b120d3498c10a1864c85c2de144430f1dbf7f9a867aba47ab77dbe2aa0b5128e0742dddf SHA512 20c126551a95905e63e99930e3f7964b6e3fc8b72fbbedf5484f669817af2a8384f05fce89d6117a5e232ba71f5469894d4bb22ba7abd796b24fd624372c7c17
|
||||||
DIST sqlite-src-3450300.zip 14160555 BLAKE2B 1c16a9b26587ed6b50dcd8373d4328266da0a47da7ffff15d505eddc8df74850a5bca3330bd9ee2b52036ccff9fb8aeebea02ef5713cc933753b4d8a4c15b2e8 SHA512 8f44ffdefd2cf09e7edb7cd78d5416fe7b42e01fe4b4e4803ce9d34c7b1b2971ec170a908a94b4bb11737dd3888675c8ff101ff2b41c53b8db05b5954e947cc9
|
|
||||||
DIST sqlite-src-3460000.zip 14275927 BLAKE2B 8f8c7da56226cfbc669bc5cce7c897849dd0c6088189be2fc972fdc58bbc2933df979f040066a1cb9aea942117867eb31c9c97e7074e17215bfe747f9024a6c2 SHA512 441c51943e77655652409965b831df5af8662b4c585134be7fcd9bb5755a495170f37bd6510a80c18c42de72dda23536b583e84e58f042d342dd9e4139ae3327
|
|
||||||
DIST sqlite-src-3460100.zip 14276926 BLAKE2B df16ea944e317df8ed64fdfab289e3699ec71725ce55e2b30450adaeb41c061b4fba1eb8c41ba638b0edcd12b23264a1f9e413b69fd593c2b65fb1037d3fc8b2 SHA512 6d32a0db9f95d3cec34f02f3fd45b453bf7c422d4d4d9570790f641e7d190b8b31be8e8715afacc1b6e4417f15a4d15a0b28e608ae0b4b5f3054b075783b916e
|
DIST sqlite-src-3460100.zip 14276926 BLAKE2B df16ea944e317df8ed64fdfab289e3699ec71725ce55e2b30450adaeb41c061b4fba1eb8c41ba638b0edcd12b23264a1f9e413b69fd593c2b65fb1037d3fc8b2 SHA512 6d32a0db9f95d3cec34f02f3fd45b453bf7c422d4d4d9570790f641e7d190b8b31be8e8715afacc1b6e4417f15a4d15a0b28e608ae0b4b5f3054b075783b916e
|
||||||
DIST sqlite-src-3470000.zip 14408459 BLAKE2B c8e883410fdf9f020bc55ef01d7c2c5b7f1744d3475e7755f2395b24b2d5397302aac2eb7912161cbc2a705a1d7a94b1fa5e8f4e5dbf374c31de56228cbc9e5d SHA512 294d718fb1ebb23e2a4d6e8b7f498d7a7d922e6af5e36452fae075c0d48f4d4f64b5f235ab561b1e47fb7722efc647dfe541164cc385ddc0e2ec0dbce1f40b01
|
DIST sqlite-src-3470000.zip 14408459 BLAKE2B c8e883410fdf9f020bc55ef01d7c2c5b7f1744d3475e7755f2395b24b2d5397302aac2eb7912161cbc2a705a1d7a94b1fa5e8f4e5dbf374c31de56228cbc9e5d SHA512 294d718fb1ebb23e2a4d6e8b7f498d7a7d922e6af5e36452fae075c0d48f4d4f64b5f235ab561b1e47fb7722efc647dfe541164cc385ddc0e2ec0dbce1f40b01
|
||||||
|
@ -1,112 +0,0 @@
|
|||||||
https://sqlite.org/forum/forumpost/7dfd585ce1
|
|
||||||
https://sqlite.org/src/info/d0fbe779bc2460e1
|
|
||||||
|
|
||||||
Index: test/func4.test
|
|
||||||
==================================================================
|
|
||||||
--- a/test/func4.test
|
|
||||||
+++ b/test/func4.test
|
|
||||||
@@ -1,6 +1,6 @@
|
|
||||||
-# 2013 March 10
|
|
||||||
+# 2023-03-10
|
|
||||||
#
|
|
||||||
# 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.
|
|
||||||
@@ -7,11 +7,14 @@
|
|
||||||
# May you find forgiveness for yourself and forgive others.
|
|
||||||
# May you share freely, never taking more than you give.
|
|
||||||
#
|
|
||||||
#***********************************************************************
|
|
||||||
# This file implements regression tests for SQLite library. The focus of
|
|
||||||
-# this file is testing the tointeger() and toreal() functions.
|
|
||||||
+# this file is testing the tointeger() and toreal() functions that are
|
|
||||||
+# part of the "totype.c" extension. This file does not test the core
|
|
||||||
+# SQLite library. Failures of tests in this file are related to the
|
|
||||||
+# ext/misc/totype.c extension.
|
|
||||||
#
|
|
||||||
# Several of the toreal() tests are disabled on platforms where floating
|
|
||||||
# point precision is not high enough to represent their constant integer
|
|
||||||
# expression arguments as double precision floating point values.
|
|
||||||
#
|
|
||||||
@@ -21,10 +24,24 @@
|
|
||||||
set tcl_precision 0
|
|
||||||
load_static_extension db totype
|
|
||||||
|
|
||||||
set highPrecision(1) [expr \
|
|
||||||
{[db eval {SELECT tointeger(9223372036854775807 + 1);}] eq {{}}}]
|
|
||||||
+set highPrecision(2) [expr \
|
|
||||||
+ {[db eval {SELECT toreal(-9223372036854775808 + 1);}] eq {{}}}]
|
|
||||||
+
|
|
||||||
+# highPrecision(3) is only known to be false on i586 with gcc-13 and -O2.
|
|
||||||
+# It is true on the exact same platform with -O0. Both results seem
|
|
||||||
+# reasonable, so we'll just very the expectation accordingly.
|
|
||||||
+#
|
|
||||||
+set highPrecision(3) [expr \
|
|
||||||
+ {[db eval {SELECT toreal(9007199254740992 + 1);}] eq {{}}}]
|
|
||||||
+
|
|
||||||
+if {!$highPrecision(1) || !$highPrecision(2) || !$highPrecision(3)} {
|
|
||||||
+ puts "NOTICE: use_long_double: [use_long_double] \
|
|
||||||
+ highPrecision: $highPrecision(1) $highPrecision(2) $highPrecision(3)"
|
|
||||||
+}
|
|
||||||
|
|
||||||
do_execsql_test func4-1.1 {
|
|
||||||
SELECT tointeger(NULL);
|
|
||||||
} {{}}
|
|
||||||
do_execsql_test func4-1.2 {
|
|
||||||
@@ -193,12 +210,10 @@
|
|
||||||
do_execsql_test func4-1.55 {
|
|
||||||
SELECT tointeger(18446744073709551616 + 1);
|
|
||||||
} {{}}
|
|
||||||
|
|
||||||
ifcapable floatingpoint {
|
|
||||||
- set highPrecision(2) [expr \
|
|
||||||
- {[db eval {SELECT toreal(-9223372036854775808 + 1);}] eq {{}}}]
|
|
||||||
|
|
||||||
do_execsql_test func4-2.1 {
|
|
||||||
SELECT toreal(NULL);
|
|
||||||
} {{}}
|
|
||||||
do_execsql_test func4-2.2 {
|
|
||||||
@@ -339,14 +354,18 @@
|
|
||||||
SELECT toreal(9007199254740992 - 1);
|
|
||||||
} {9007199254740991.0}
|
|
||||||
do_execsql_test func4-2.45 {
|
|
||||||
SELECT toreal(9007199254740992);
|
|
||||||
} {9007199254740992.0}
|
|
||||||
- if {$highPrecision(2)} {
|
|
||||||
+ if {$highPrecision(3)} {
|
|
||||||
+ do_execsql_test func4-2.46 {
|
|
||||||
+ SELECT toreal(9007199254740992 + 1);
|
|
||||||
+ } {{}}
|
|
||||||
+ } else {
|
|
||||||
do_execsql_test func4-2.46 {
|
|
||||||
SELECT toreal(9007199254740992 + 1);
|
|
||||||
- } {{}}
|
|
||||||
+ } {9007199254740992.0}
|
|
||||||
}
|
|
||||||
do_execsql_test func4-2.47 {
|
|
||||||
SELECT toreal(9007199254740992 + 2);
|
|
||||||
} {9007199254740994.0}
|
|
||||||
do_execsql_test func4-2.48 {
|
|
||||||
@@ -624,14 +643,18 @@
|
|
||||||
SELECT tointeger(toreal(9007199254740992 - 1));
|
|
||||||
} {9007199254740991}
|
|
||||||
do_execsql_test func4-5.22 {
|
|
||||||
SELECT tointeger(toreal(9007199254740992));
|
|
||||||
} {9007199254740992}
|
|
||||||
- if {$highPrecision(2)} {
|
|
||||||
+ if {$highPrecision(3)} {
|
|
||||||
do_execsql_test func4-5.23 {
|
|
||||||
SELECT tointeger(toreal(9007199254740992 + 1));
|
|
||||||
} {{}}
|
|
||||||
+ } else {
|
|
||||||
+ do_execsql_test func4-5.23 {
|
|
||||||
+ SELECT tointeger(toreal(9007199254740992 + 1));
|
|
||||||
+ } {9007199254740992}
|
|
||||||
}
|
|
||||||
do_execsql_test func4-5.24 {
|
|
||||||
SELECT tointeger(toreal(9007199254740992 + 2));
|
|
||||||
} {9007199254740994}
|
|
||||||
if {$highPrecision(1)} {
|
|
||||||
|
|
||||||
|
|
122
sdk_container/src/third_party/portage-stable/dev-db/sqlite/files/sqlite-3.47.0-buildtclext.patch
vendored
Normal file
122
sdk_container/src/third_party/portage-stable/dev-db/sqlite/files/sqlite-3.47.0-buildtclext.patch
vendored
Normal file
@ -0,0 +1,122 @@
|
|||||||
|
# https://sqlite.org/forum/forumpost/0683a49cb02f31a1
|
||||||
|
# https://bugs.gentoo.org/942918
|
||||||
|
# Compiled from https://sqlite.org/forum/forumpost/6fd4ca69e86eafc6, https://www.sqlite.org/src/info/38136b33f9536b63 and https://www.sqlite.org/src/info/2f6e5946cf34e094
|
||||||
|
|
||||||
|
--- a/tool/buildtclext.tcl
|
||||||
|
+++ b/tool/buildtclext.tcl
|
||||||
|
@@ -140,12 +140,13 @@
|
||||||
|
if {[string length $OPTS]>1} {
|
||||||
|
append LDFLAGS $OPTS
|
||||||
|
}
|
||||||
|
- set CMD [subst $cmd]
|
||||||
|
if {$TCLMAJOR>8} {
|
||||||
|
set OUT libtcl9sqlite$VERSION.$SUFFIX
|
||||||
|
} else {
|
||||||
|
set OUT libsqlite$VERSION.$SUFFIX
|
||||||
|
}
|
||||||
|
+ set @ $OUT; # workaround for https://sqlite.org/forum/forumpost/6b1af7eb10884373
|
||||||
|
+ set CMD [subst $cmd]
|
||||||
|
}
|
||||||
|
|
||||||
|
# Show information about prior installs
|
||||||
|
|
||||||
|
From b03592c324a4d066e12c3af945dd510dc28b6d65 Mon Sep 17 00:00:00 2001
|
||||||
|
From: stephan <stephan@noemail.net>
|
||||||
|
Date: Sat, 16 Nov 2024 14:33:01 +0000
|
||||||
|
Subject: [PATCH] Add DESTDIR support to the tclextension-install target, via
|
||||||
|
[67a3ca0c013b] and [d1663cf05f7d].
|
||||||
|
|
||||||
|
--- a/Makefile.in
|
||||||
|
+++ b/Makefile.in
|
||||||
|
@@ -1600,7 +1600,7 @@ tclextension: tclsqlite3.c
|
||||||
|
# to find it.
|
||||||
|
#
|
||||||
|
tclextension-install: tclsqlite3.c
|
||||||
|
- $(TCLSH_CMD) $(TOP)/tool/buildtclext.tcl --cc "$(CC)" $(CFLAGS) $(OPT_FEATURE_FLAGS) $(OPTS)
|
||||||
|
+ $(TCLSH_CMD) $(TOP)/tool/buildtclext.tcl --destdir "$(DESTDIR)" --cc "$(CC)" $(CFLAGS) $(OPT_FEATURE_FLAGS) $(OPTS)
|
||||||
|
|
||||||
|
# Install the SQLite TCL extension that is used by $TCLSH_CMD
|
||||||
|
#
|
||||||
|
+38136b33f9536b63520d3810f397a3b4b5372028b31108806f84fe44bf338425
|
||||||
|
--- a/tool/buildtclext.tcl
|
||||||
|
+++ b/tool/buildtclext.tcl
|
||||||
|
@@ -15,6 +15,7 @@ Options:
|
||||||
|
--info Show info on existing SQLite TCL extension installs
|
||||||
|
--install-only Install an extension previously build
|
||||||
|
--uninstall Uninstall the extension
|
||||||
|
+ --destdir DIR Installation root (used by "make install DESTDIR=...")
|
||||||
|
|
||||||
|
Other options are retained and passed through into the compiler.}
|
||||||
|
|
||||||
|
@@ -25,6 +26,7 @@ set uninstall 0
|
||||||
|
set infoonly 0
|
||||||
|
set CC {}
|
||||||
|
set OPTS {}
|
||||||
|
+set DESTDIR ""; # --destdir "$(DESTDIR)"
|
||||||
|
for {set ii 0} {$ii<[llength $argv]} {incr ii} {
|
||||||
|
set a0 [lindex $argv $ii]
|
||||||
|
if {$a0=="--install-only"} {
|
||||||
|
@@ -42,6 +44,9 @@ for {set ii 0} {$ii<[llength $argv]} {incr ii} {
|
||||||
|
} elseif {$a0=="--cc" && $ii+1<[llength $argv]} {
|
||||||
|
incr ii
|
||||||
|
set CC [lindex $argv $ii]
|
||||||
|
+ } elseif {$a0=="--destdir" && $ii+1<[llength $argv]} {
|
||||||
|
+ incr ii
|
||||||
|
+ set DESTDIR [lindex $argv $ii]
|
||||||
|
} elseif {[string match -* $a0]} {
|
||||||
|
append OPTS " $a0"
|
||||||
|
} else {
|
||||||
|
@@ -245,7 +250,7 @@ package ifneeded sqlite3 $VERSION \\
|
||||||
|
|
||||||
|
if {$install} {
|
||||||
|
# Install the extension
|
||||||
|
- set DEST2 $DEST/sqlite$VERSION
|
||||||
|
+ set DEST2 ${DESTDIR}$DEST/sqlite$VERSION
|
||||||
|
file mkdir $DEST2
|
||||||
|
puts "installing $DEST2/pkgIndex.tcl"
|
||||||
|
file copy -force pkgIndex.tcl $DEST2
|
||||||
|
|
||||||
|
From 375552f224813c7e2fac0e67dd13ecd6ba3a3571 Mon Sep 17 00:00:00 2001
|
||||||
|
From: stephan <stephan@noemail.net>
|
||||||
|
Date: Sat, 16 Nov 2024 17:12:17 +0000
|
||||||
|
Subject: [PATCH] Handle DESTDIR at an earlier phase in buildtclext.tcl to
|
||||||
|
account for the is-writable-dir check and to filter out //zipfs: dirs as
|
||||||
|
(im)possible installation targets.
|
||||||
|
--- a/tool/buildtclext.tcl
|
||||||
|
+++ b/tool/buildtclext.tcl
|
||||||
|
@@ -198,7 +198,15 @@ if {$install} {
|
||||||
|
#
|
||||||
|
set DEST {}
|
||||||
|
foreach dir $auto_path {
|
||||||
|
- if {[file writable $dir]} {
|
||||||
|
+ if {[string match //*:* $dir]} {
|
||||||
|
+ # We can't install to //zipfs: paths
|
||||||
|
+ continue
|
||||||
|
+ } elseif {"" ne $DESTDIR && ![file writable $DESTDIR]} {
|
||||||
|
+ continue
|
||||||
|
+ }
|
||||||
|
+ set dir ${DESTDIR}$dir
|
||||||
|
+ if {[file writable $dir] || "" ne $DESTDIR} {
|
||||||
|
+ # the dir will be created later ^^^^^^^^
|
||||||
|
set DEST $dir
|
||||||
|
break
|
||||||
|
} elseif {[glob -nocomplain $dir/sqlite3*/pkgIndex.tcl]!=""} {
|
||||||
|
@@ -216,7 +224,7 @@ if {$install} {
|
||||||
|
puts "to work around this problem.\n"
|
||||||
|
puts "These are the (unwritable) \$auto_path directories:\n"
|
||||||
|
foreach dir $auto_path {
|
||||||
|
- puts " * $dir"
|
||||||
|
+ puts " * ${DESTDIR}$dir"
|
||||||
|
}
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
@@ -250,7 +258,7 @@ package ifneeded sqlite3 $VERSION \\
|
||||||
|
|
||||||
|
if {$install} {
|
||||||
|
# Install the extension
|
||||||
|
- set DEST2 ${DESTDIR}$DEST/sqlite$VERSION
|
||||||
|
+ set DEST2 $DEST/sqlite$VERSION
|
||||||
|
file mkdir $DEST2
|
||||||
|
puts "installing $DEST2/pkgIndex.tcl"
|
||||||
|
file copy -force pkgIndex.tcl $DEST2
|
||||||
|
|
@ -1,427 +0,0 @@
|
|||||||
# 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/2024/${PN}-src-${SRC_PV}.zip
|
|
||||||
doc? ( https://sqlite.org/2024/${PN}-doc-${DOC_PV}.zip )
|
|
||||||
"
|
|
||||||
S="${WORKDIR}/${PN}-src-${SRC_PV}"
|
|
||||||
|
|
||||||
KEYWORDS="~alpha amd64 arm arm64 hppa ~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.45.1-ppc64-ptr.patch
|
|
||||||
"${FILESDIR}"/${PN}-3.45.2-tests-x86.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
|
|
||||||
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
|
|
||||||
}
|
|
@ -1,426 +0,0 @@
|
|||||||
# 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/2024/${PN}-src-${SRC_PV}.zip
|
|
||||||
doc? ( https://sqlite.org/2024/${PN}-doc-${DOC_PV}.zip )
|
|
||||||
"
|
|
||||||
S="${WORKDIR}/${PN}-src-${SRC_PV}"
|
|
||||||
|
|
||||||
KEYWORDS="~alpha amd64 arm arm64 ~hppa ~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.45.1-ppc64-ptr.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
|
|
||||||
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
|
|
||||||
}
|
|
@ -24,7 +24,7 @@ else
|
|||||||
"
|
"
|
||||||
S="${WORKDIR}/${PN}-src-${SRC_PV}"
|
S="${WORKDIR}/${PN}-src-${SRC_PV}"
|
||||||
|
|
||||||
KEYWORDS="~alpha amd64 ~arm ~arm64 hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
|
KEYWORDS="~alpha amd64 arm arm64 hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
LICENSE="public-domain"
|
LICENSE="public-domain"
|
||||||
|
@ -54,6 +54,7 @@ PATCHES=(
|
|||||||
"${FILESDIR}"/${PN}-3.45.1-ppc64-ptr.patch
|
"${FILESDIR}"/${PN}-3.45.1-ppc64-ptr.patch
|
||||||
"${FILESDIR}"/${PN}-3.47.0-nonbash.patch
|
"${FILESDIR}"/${PN}-3.47.0-nonbash.patch
|
||||||
"${FILESDIR}"/${PN}-3.47.0-allocator-mismatch.patch
|
"${FILESDIR}"/${PN}-3.47.0-allocator-mismatch.patch
|
||||||
|
"${FILESDIR}"/${PN}-3.47.0-buildtclext.patch
|
||||||
)
|
)
|
||||||
|
|
||||||
_fossil_fetch() {
|
_fossil_fetch() {
|
||||||
|
@ -1,427 +0,0 @@
|
|||||||
# 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/2024/${PN}-src-${SRC_PV}.zip
|
|
||||||
doc? ( https://sqlite.org/2024/${PN}-doc-${DOC_PV}.zip )
|
|
||||||
"
|
|
||||||
S="${WORKDIR}/${PN}-src-${SRC_PV}"
|
|
||||||
|
|
||||||
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~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.45.1-ppc64-ptr.patch
|
|
||||||
"${FILESDIR}"/${PN}-3.47.0-nonbash.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
|
|
||||||
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 $(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
|
|
||||||
}
|
|
Loading…
x
Reference in New Issue
Block a user