summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Deutschmann <whissi@gentoo.org>2020-04-23 16:44:23 +0200
committerThomas Deutschmann <whissi@gentoo.org>2020-04-23 16:44:23 +0200
commit266adc0dd4ef16721ec51ffdc69df7325f6824fb (patch)
tree2e1cf34b53fcdc238a79ce0259fc7840d4d2196a /dev-db/sqlite
parentwww-client/chromium: security cleanup (diff)
downloadgentoo-266adc0dd4ef16721ec51ffdc69df7325f6824fb.tar.gz
gentoo-266adc0dd4ef16721ec51ffdc69df7325f6824fb.tar.bz2
gentoo-266adc0dd4ef16721ec51ffdc69df7325f6824fb.zip
dev-db/sqlite: security cleanup
Bug: https://bugs.gentoo.org/711526 Package-Manager: Portage-2.3.99, Repoman-2.3.22 Signed-off-by: Thomas Deutschmann <whissi@gentoo.org>
Diffstat (limited to 'dev-db/sqlite')
-rw-r--r--dev-db/sqlite/Manifest6
-rw-r--r--dev-db/sqlite/sqlite-3.29.0.ebuild395
-rw-r--r--dev-db/sqlite/sqlite-3.30.1.ebuild388
3 files changed, 0 insertions, 789 deletions
diff --git a/dev-db/sqlite/Manifest b/dev-db/sqlite/Manifest
index af34cd489009..a5126e72a2e2 100644
--- a/dev-db/sqlite/Manifest
+++ b/dev-db/sqlite/Manifest
@@ -1,9 +1,3 @@
-DIST sqlite-autoconf-3290000.tar.gz 2833613 BLAKE2B b68a4f9bfe90653f5ce9dbf94b44cecc843fbb639883a7be9dd40150749f8d2eca0c231b215137d2f8da78d33356d72640a943ba06516c6d7c10ebd04cae4766 SHA512 85dcaa72cc2476c628e801d4ce46cf10ed8997f56cb0334062df5553f18c29d607883a1049bf75258204f2f53a29a02a01f014dcca383b05dfac1e2123778024
-DIST sqlite-autoconf-3300100.tar.gz 2848951 BLAKE2B 3a541a2b07ebbaf7ddca4693b71765e2ecd11974dd64b4a7a19eaee4eea8a17a6004c69f3b2163213fe7568480152709745e029107711813d4bdd41052763cd1 SHA512 9ec0283c417fb0323b0e43550af2a49e9a63988e4212c27ea62cc9da3534caa6faf5bdc7e051b6772c4ce61560a433b3d3288b68e05e9ba8495f61a3bcebda3e
DIST sqlite-autoconf-3310100.tar.gz 2887243 BLAKE2B ef5d40b6e6c59a51ae95368eb9f6a938188813f89d5328ea1c1180ef35f124c14b3e83b0832ae5c2fa24cc2df352f1b0ea5f20b64d0762d50a700d9895f9a12e SHA512 d85250ba5f78f0c918880f663741709aba662192f04888b2324a0df17affdf5b8540e8428c6c7315119806e7adad758ea281c9b403c0ad94ac6a9bd1b93fd617
-DIST sqlite-doc-3290000.zip 9415641 BLAKE2B 97fef1f01d3e7730e5220541ad9ccdf9f8538aa43939c0f513919c8505b3a4f4b4c89eb2e04fddae80b7eeed440eb0f06f7cfd93cd56f0539bd6fdd5f47e1ff7 SHA512 ca856cf250e395d9c7e9817337adb5a16b1d96a20548a4010f5137188d35bb9d49a4a6da47bf2a696deffa68d2976dbb35a036adce19b8320e0e286876ac094f
-DIST sqlite-doc-3300100.zip 9485342 BLAKE2B bf5e3909a327c773106d4990b3e3be5dd63db2dbc1a7f8a7c1bd16f39bec83a6b2a98c4c56ded3b58f4087dcdcc934e542db36e142bf338a411ed7115d67d6b3 SHA512 373e843015307071443a0db5fb930f9120718f6118cc2e21b506fdc8535fbe6996e9889e8b5809ffb91257addfe778bdf3412a81e11f6bced2c5e0330337d00d
DIST sqlite-doc-3310100.zip 9600405 BLAKE2B 324fb7a0a38bc56476e41504c14996e9d5d83ac659403991515413d49f5ee3aad064ccece25f52b6041ef26bf23f320a9be1b6b02c5fbe96c36372107f54fc2e SHA512 5572e2c2dac30c014ef9cd60a620b7a7bb610f91a47e2890c0641540d39b9d5ce0e914ee697583130317633918b7827e2612a7cbc024f5bd6aa22ad28a78b56b
-DIST sqlite-src-3290000.zip 12557725 BLAKE2B b1aeb80734a2cb7d45c6f2e278bad2996b56ecaf792a8f26322bf50aeaa430eea267f23edb1721bb80ecb6e0c8e14c7a5d8f26178d056fd23efb52f496cc03e1 SHA512 575398fbe20c6471ee2abcbde170b8d48efbb3cb2716a65f42f05c52429a45d14e8046e50c59bbf75bfe2d8f151c34abd50b440c50af571f19e19f3290b230df
-DIST sqlite-src-3300100.zip 12648162 BLAKE2B bb239bac9115c74778de0347b4f4e24a82f149f55fe7dea8b89eb859bfe4cf6f6c2f065f5e1741c40624bb88ecd395140064a41d475a1c64a0188990fd6248e7 SHA512 f40236d0bb25f3ea01a1192dace3b6732fb671fbdabb7cfa8d0cc2b99d21aef00ae380999fdee904501cb03304644cddfb2506951f36a2f6a83693f311c3c11d
DIST sqlite-src-3310100.zip 12510166 BLAKE2B a856695e8552b8b4dcb28452fdbd48305fdb9072f9d6587f4b1f4445daf386e920eb936dcb50fdfe41a49f84b26a7c5fedcffea5acf3ba3fa935c36695d4b8ee SHA512 af92a00877bcd90372d6f83a27fea12b4fe8d1155b223a6bccbccc31bb8e3d2269cd9e68f329bc55f70d1068ccbf220ff5abccea6f593fd7a3a4bdd732d1cdbe
diff --git a/dev-db/sqlite/sqlite-3.29.0.ebuild b/dev-db/sqlite/sqlite-3.29.0.ebuild
deleted file mode 100644
index b85b5aea728c..000000000000
--- a/dev-db/sqlite/sqlite-3.29.0.ebuild
+++ /dev/null
@@ -1,395 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI="7"
-
-inherit autotools flag-o-matic multilib-minimal toolchain-funcs
-
-if [[ "${PV}" != "9999" ]]; then
- SRC_PV="$(printf "%u%02u%02u%02u" $(ver_rs 1- " "))"
- DOC_PV="${SRC_PV}"
- # DOC_PV="$(printf "%u%02u%02u00" $(ver_rs 1-3 " "))"
-fi
-
-DESCRIPTION="SQL database engine"
-HOMEPAGE="https://sqlite.org/"
-if [[ "${PV}" == "9999" ]]; then
- SRC_URI=""
-else
- SRC_URI="doc? ( https://sqlite.org/2019/${PN}-doc-${DOC_PV}.zip )
- tcl? ( https://sqlite.org/2019/${PN}-src-${SRC_PV}.zip )
- test? ( https://sqlite.org/2019/${PN}-src-${SRC_PV}.zip )
- tools? ( https://sqlite.org/2019/${PN}-src-${SRC_PV}.zip )
- !tcl? ( !test? ( !tools? ( https://sqlite.org/2019/${PN}-autoconf-${SRC_PV}.tar.gz ) ) )"
-fi
-
-LICENSE="public-domain"
-SLOT="3"
-KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~m68k ~mips ppc ppc64 ~riscv s390 sparc x86 ~ppc-aix ~x64-cygwin ~amd64-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"
-if [[ "${PV}" == "9999" ]]; then
- PROPERTIES="live"
-fi
-RESTRICT="!test? ( test )"
-
-if [[ "${PV}" == "9999" ]]; then
- BDEPEND=">=dev-lang/tcl-8.6:0
- dev-vcs/fossil"
-else
- BDEPEND="doc? ( app-arch/unzip )
- tcl? (
- app-arch/unzip
- >=dev-lang/tcl-8.6:0
- )
- test? (
- app-arch/unzip
- >=dev-lang/tcl-8.6:0
- )
- tools? (
- app-arch/unzip
- >=dev-lang/tcl-8.6:0
- )"
-fi
-RDEPEND="sys-libs/zlib:0=[${MULTILIB_USEDEP}]
- icu? ( dev-libs/icu:0=[${MULTILIB_USEDEP}] )
- readline? ( sys-libs/readline:0=[${MULTILIB_USEDEP}] )
- tcl? ( dev-lang/tcl:0=[${MULTILIB_USEDEP}] )
- tools? ( dev-lang/tcl:0=[${MULTILIB_USEDEP}] )"
-DEPEND="${RDEPEND}
- test? ( >=dev-lang/tcl-8.6:0[${MULTILIB_USEDEP}] )"
-
-full_archive() {
- [[ "${PV}" == "9999" ]] || use tcl || use test || use tools
-}
-
-pkg_setup() {
- if [[ "${PV}" == "9999" ]]; then
- S="${WORKDIR}/${PN}"
- else
- if full_archive; then
- S="${WORKDIR}/${PN}-src-${SRC_PV}"
- else
- S="${WORKDIR}/${PN}-autoconf-${SRC_PV}"
- fi
- fi
-}
-
-src_unpack() {
- if [[ "${PV}" == "9999" ]]; then
- local distdir="${PORTAGE_ACTUAL_DISTDIR:-${DISTDIR}}"
- addwrite "${distdir}"
- mkdir -p "${distdir}/fossil-src/${PN}" || die
-
- mkdir "${WORKDIR}/${PN}" || die
- pushd "${WORKDIR}/${PN}" > /dev/null || die
- if [[ ! -f "${distdir}/fossil-src/${PN}/sqlite.fossil" ]]; then
- einfo fossil clone --verbose https://sqlite.org/src sqlite.fossil
- fossil clone --verbose https://sqlite.org/src sqlite.fossil || die
- echo
- else
- cp -p "${distdir}/fossil-src/${PN}/sqlite.fossil" . || die
- einfo fossil pull --repository sqlite.fossil --verbose https://sqlite.org/src
- fossil pull --repository sqlite.fossil --verbose https://sqlite.org/src || die
- echo
- fi
- cp -p sqlite.fossil "${distdir}/fossil-src/${PN}" || die
- einfo fossil open --quiet sqlite.fossil
- fossil open --quiet sqlite.fossil || die
- echo
- popd > /dev/null || die
-
- if use doc; then
- mkdir "${WORKDIR}/${PN}-doc" || die
- pushd "${WORKDIR}/${PN}-doc" > /dev/null || die
- if [[ ! -f "${distdir}/fossil-src/${PN}/sqlite-doc.fossil" ]]; then
- einfo fossil clone --verbose https://sqlite.org/docsrc sqlite-doc.fossil
- fossil clone --verbose https://sqlite.org/docsrc sqlite-doc.fossil || die
- echo
- else
- cp -p "${distdir}/fossil-src/${PN}/sqlite-doc.fossil" . || die
- einfo fossil pull --repository sqlite-doc.fossil --verbose https://sqlite.org/docsrc
- fossil pull --repository sqlite-doc.fossil --verbose https://sqlite.org/docsrc || die
- echo
- fi
- cp -p sqlite-doc.fossil "${distdir}/fossil-src/${PN}" || die
- einfo fossil open --quiet sqlite-doc.fossil
- fossil open --quiet sqlite-doc.fossil || die
- echo
- popd > /dev/null || die
- fi
- else
- default
- fi
-}
-
-src_prepare() {
- if full_archive; then
- eapply "${FILESDIR}/${PN}-3.29.0-full_archive-build.patch"
- eapply "${FILESDIR}/${PN}-3.29.0-full_archive-tests.patch"
-
- eapply_user
-
- # Fix AC_CHECK_FUNCS.
- # https://mailinglists.sqlite.org/cgi-bin/mailman/private/sqlite-dev/2016-March/002762.html
- sed -e "s/AC_CHECK_FUNCS(.*)/AC_CHECK_FUNCS([fdatasync fullfsync gmtime_r isnan localtime_r localtime_s malloc_usable_size posix_fallocate pread pread64 pwrite pwrite64 strchrnul usleep utime])/" -i configure.ac || die "sed failed"
- else
- eapply "${FILESDIR}/${PN}-3.25.0-nonfull_archive-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 -x CPPFLAGS="${CPPFLAGS}" CFLAGS="${CFLAGS}"
- local options=()
-
- options+=(
- --enable-$(full_archive && echo load-extension || echo dynamic-extensions)
- --enable-threadsafe
- )
- if ! full_archive; then
- options+=(--disable-static-shell)
- fi
-
- # Support detection of misuse of SQLite API.
- # https://sqlite.org/compile.html#enable_api_armor
- append-cppflags -DSQLITE_ENABLE_API_ARMOR
-
- # Support column metadata functions.
- # https://sqlite.org/c3ref/column_database_name.html
- append-cppflags -DSQLITE_ENABLE_COLUMN_METADATA
-
- # Support sqlite_dbpage virtual table.
- # https://sqlite.org/compile.html#enable_dbpage_vtab
- append-cppflags -DSQLITE_ENABLE_DBPAGE_VTAB
-
- # Support dbstat virtual table.
- # https://sqlite.org/dbstat.html
- append-cppflags -DSQLITE_ENABLE_DBSTAT_VTAB
-
- # Support 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/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 sqlite3_normalized_sql() function.
- # https://sqlite.org/c3ref/expanded_sql.html
- append-cppflags -DSQLITE_ENABLE_NORMALIZE
-
- # Support sqlite_offset() function.
- # https://sqlite.org/lang_corefunc.html#sqlite_offset
- append-cppflags -DSQLITE_ENABLE_OFFSET_SQL_FUNC
-
- # Support pre-update hook functions.
- # https://sqlite.org/c3ref/preupdate_count.html
- append-cppflags -DSQLITE_ENABLE_PREUPDATE_HOOK
-
- # Support Resumable Bulk Update extension.
- # https://sqlite.org/rbu.html
- append-cppflags -DSQLITE_ENABLE_RBU
-
- # Support R*Trees.
- # https://sqlite.org/rtree.html
- # https://sqlite.org/geopoly.html
- append-cppflags -DSQLITE_ENABLE_RTREE -DSQLITE_ENABLE_GEOPOLY
-
- # Support scan status functions.
- # https://sqlite.org/c3ref/stmt_scanstatus.html
- # https://sqlite.org/c3ref/stmt_scanstatus_reset.html
- append-cppflags -DSQLITE_ENABLE_STMT_SCANSTATUS
-
- # Support sqlite_stmt virtual table.
- # https://sqlite.org/stmt.html
- append-cppflags -DSQLITE_ENABLE_STMTVTAB
-
- # Support Session extension.
- # https://sqlite.org/sessionintro.html
- options+=(--enable-session)
-
- # Support unknown() function.
- # https://sqlite.org/compile.html#enable_unknown_sql_function
- append-cppflags -DSQLITE_ENABLE_UNKNOWN_SQL_FUNCTION
-
- # Support unlock notification.
- # https://sqlite.org/unlock_notify.html
- append-cppflags -DSQLITE_ENABLE_UNLOCK_NOTIFY
-
- # Support LIMIT and ORDER BY clauses on DELETE and UPDATE statements.
- # https://sqlite.org/compile.html#enable_update_delete_limit
- append-cppflags -DSQLITE_ENABLE_UPDATE_DELETE_LIMIT
-
- # Support PRAGMA function_list, PRAGMA module_list and PRAGMA pragma_list statements.
- # https://sqlite.org/pragma.html#pragma_function_list
- # https://sqlite.org/pragma.html#pragma_module_list
- # https://sqlite.org/pragma.html#pragma_pragma_list
- append-cppflags -DSQLITE_INTROSPECTION_PRAGMAS
-
- # Support soundex() function.
- # https://sqlite.org/lang_corefunc.html#soundex
- append-cppflags -DSQLITE_SOUNDEX
-
- # Support URI filenames.
- # https://sqlite.org/uri.html
- append-cppflags -DSQLITE_USE_URI
-
- # debug USE flag.
- if full_archive; then
- options+=($(use_enable debug))
- else
- if use debug; then
- append-cppflags -DSQLITE_DEBUG
- else
- append-cppflags -DNDEBUG
- fi
- fi
-
- # icu USE flag.
- if use icu; then
- # Support ICU extension.
- # https://sqlite.org/compile.html#enable_icu
- append-cppflags -DSQLITE_ENABLE_ICU
- if full_archive; then
- sed -e "s/^TLIBS = @LIBS@/& -licui18n -licuuc/" -i Makefile.in || die "sed failed"
- else
- sed -e "s/^LIBS = @LIBS@/& -licui18n -licuuc/" -i Makefile.in || die "sed failed"
- fi
- fi
-
- # readline USE flag.
- options+=(
- --disable-editline
- $(use_enable readline)
- )
- if full_archive && use readline; then
- options+=(--with-readline-inc="-I${EPREFIX}/usr/include/readline")
- fi
-
- # secure-delete USE flag.
- if use secure-delete; then
- # Enable secure_delete pragma by default.
- # https://sqlite.org/pragma.html#pragma_secure_delete
- append-cppflags -DSQLITE_SECURE_DELETE
- fi
-
- # static-libs USE flag.
- options+=($(use_enable static-libs static))
-
- # tcl, test, tools USE flags.
- if full_archive; then
- options+=(--enable-tcl)
- fi
-
- if [[ "${CHOST}" == *-mint* ]]; then
- append-cppflags -DSQLITE_OMIT_WAL
- fi
-
- if [[ "${ABI}" == "x86" ]]; then
- if $(tc-getCC) ${CPPFLAGS} ${CFLAGS} -E -P -dM - < /dev/null 2> /dev/null | grep -q "^#define __SSE__ 1$"; then
- append-cflags -mfpmath=sse
- else
- append-cflags -ffloat-store
- fi
- fi
-
- econf "${options[@]}"
-}
-
-multilib_src_compile() {
- emake HAVE_TCL="$(usex tcl 1 "")" TCLLIBDIR="${EPREFIX}/usr/$(get_libdir)/${P}"
-
- if use tools && multilib_is_native_abi; then
- emake changeset dbdump dbhash dbtotxt index_usage rbu scrub showdb showjournal showshm showstat4 showwal sqldiff sqlite3_analyzer sqlite3_checker sqlite3_expert sqltclsh
- fi
-}
-
-multilib_src_test() {
- if [[ "${EUID}" -eq 0 ]]; then
- ewarn "Skipping tests due to root permissions"
- return
- fi
-
- local -x SQLITE_HISTORY="${T}/sqlite_history_${ABI}"
-
- emake HAVE_TCL="$(usex tcl 1 "")" $(use debug && echo fulltest || echo test)
-}
-
-multilib_src_install() {
- emake DESTDIR="${D}" HAVE_TCL="$(usex tcl 1 "")" TCLLIBDIR="${EPREFIX}/usr/$(get_libdir)/${P}" install
-
- if use tools && multilib_is_native_abi; then
- install_tool() {
- if [[ -f ".libs/${1}" ]]; then
- newbin ".libs/${1}" "${2}"
- else
- newbin "${1}" "${2}"
- fi
- }
-
- install_tool changeset sqlite3-changeset
- install_tool dbdump sqlite3-db-dump
- install_tool dbhash sqlite3-db-hash
- install_tool 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 "${D}" -name "*.la" -type f -delete || die
-
- doman sqlite3.1
-
- if use doc; then
- rm "${WORKDIR}/${PN}-doc-${DOC_PV}/"*.{db,txt} || die
- (
- docinto html
- dodoc -r "${WORKDIR}/${PN}-doc-${DOC_PV}/"*
- )
- fi
-}
diff --git a/dev-db/sqlite/sqlite-3.30.1.ebuild b/dev-db/sqlite/sqlite-3.30.1.ebuild
deleted file mode 100644
index 554790b13d06..000000000000
--- a/dev-db/sqlite/sqlite-3.30.1.ebuild
+++ /dev/null
@@ -1,388 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI="7"
-
-inherit autotools flag-o-matic multilib-minimal toolchain-funcs
-
-if [[ "${PV}" != "9999" ]]; then
- SRC_PV="$(printf "%u%02u%02u%02u" $(ver_rs 1- " "))"
- DOC_PV="${SRC_PV}"
- # DOC_PV="$(printf "%u%02u%02u00" $(ver_rs 1-3 " "))"
-fi
-
-DESCRIPTION="SQL database engine"
-HOMEPAGE="https://sqlite.org/"
-if [[ "${PV}" == "9999" ]]; then
- SRC_URI=""
-else
- SRC_URI="doc? ( https://sqlite.org/2019/${PN}-doc-${DOC_PV}.zip )
- tcl? ( https://sqlite.org/2019/${PN}-src-${SRC_PV}.zip )
- test? ( https://sqlite.org/2019/${PN}-src-${SRC_PV}.zip )
- tools? ( https://sqlite.org/2019/${PN}-src-${SRC_PV}.zip )
- !tcl? ( !test? ( !tools? ( https://sqlite.org/2019/${PN}-autoconf-${SRC_PV}.tar.gz ) ) )"
-fi
-
-LICENSE="public-domain"
-SLOT="3"
-KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~m68k ~mips ppc ppc64 ~riscv s390 sparc x86 ~ppc-aix ~x64-cygwin ~amd64-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"
-if [[ "${PV}" == "9999" ]]; then
- PROPERTIES="live"
-fi
-RESTRICT="!test? ( test )"
-
-if [[ "${PV}" == "9999" ]]; then
- BDEPEND=">=dev-lang/tcl-8.6:0
- dev-vcs/fossil"
-else
- BDEPEND="doc? ( app-arch/unzip )
- tcl? (
- app-arch/unzip
- >=dev-lang/tcl-8.6:0
- )
- test? (
- app-arch/unzip
- >=dev-lang/tcl-8.6:0
- )
- tools? (
- app-arch/unzip
- >=dev-lang/tcl-8.6:0
- )"
-fi
-RDEPEND="sys-libs/zlib:0=[${MULTILIB_USEDEP}]
- icu? ( dev-libs/icu:0=[${MULTILIB_USEDEP}] )
- readline? ( sys-libs/readline:0=[${MULTILIB_USEDEP}] )
- tcl? ( dev-lang/tcl:0=[${MULTILIB_USEDEP}] )
- tools? ( dev-lang/tcl:0=[${MULTILIB_USEDEP}] )"
-DEPEND="${RDEPEND}
- test? ( >=dev-lang/tcl-8.6:0[${MULTILIB_USEDEP}] )"
-
-full_archive() {
- [[ "${PV}" == "9999" ]] || use tcl || use test || use tools
-}
-
-pkg_setup() {
- if [[ "${PV}" == "9999" ]]; then
- S="${WORKDIR}/${PN}"
- else
- if full_archive; then
- S="${WORKDIR}/${PN}-src-${SRC_PV}"
- else
- S="${WORKDIR}/${PN}-autoconf-${SRC_PV}"
- fi
- fi
-}
-
-src_unpack() {
- if [[ "${PV}" == "9999" ]]; then
- local distdir="${PORTAGE_ACTUAL_DISTDIR:-${DISTDIR}}"
- addwrite "${distdir}"
- mkdir -p "${distdir}/fossil-src/${PN}" || die
-
- mkdir "${WORKDIR}/${PN}" || die
- pushd "${WORKDIR}/${PN}" > /dev/null || die
- if [[ ! -f "${distdir}/fossil-src/${PN}/sqlite.fossil" ]]; then
- einfo fossil clone --verbose https://sqlite.org/src sqlite.fossil
- fossil clone --verbose https://sqlite.org/src sqlite.fossil || die
- echo
- else
- cp -p "${distdir}/fossil-src/${PN}/sqlite.fossil" . || die
- einfo fossil pull --repository sqlite.fossil --verbose https://sqlite.org/src
- fossil pull --repository sqlite.fossil --verbose https://sqlite.org/src || die
- echo
- fi
- cp -p sqlite.fossil "${distdir}/fossil-src/${PN}" || die
- einfo fossil open --quiet sqlite.fossil
- fossil open --quiet sqlite.fossil || die
- echo
- popd > /dev/null || die
-
- if use doc; then
- mkdir "${WORKDIR}/${PN}-doc" || die
- pushd "${WORKDIR}/${PN}-doc" > /dev/null || die
- if [[ ! -f "${distdir}/fossil-src/${PN}/sqlite-doc.fossil" ]]; then
- einfo fossil clone --verbose https://sqlite.org/docsrc sqlite-doc.fossil
- fossil clone --verbose https://sqlite.org/docsrc sqlite-doc.fossil || die
- echo
- else
- cp -p "${distdir}/fossil-src/${PN}/sqlite-doc.fossil" . || die
- einfo fossil pull --repository sqlite-doc.fossil --verbose https://sqlite.org/docsrc
- fossil pull --repository sqlite-doc.fossil --verbose https://sqlite.org/docsrc || die
- echo
- fi
- cp -p sqlite-doc.fossil "${distdir}/fossil-src/${PN}" || die
- einfo fossil open --quiet sqlite-doc.fossil
- fossil open --quiet sqlite-doc.fossil || die
- echo
- popd > /dev/null || die
- fi
- else
- default
- fi
-}
-
-src_prepare() {
- if full_archive; then
- eapply "${FILESDIR}/${PN}-3.29.0-full_archive-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(.*)/AC_CHECK_FUNCS([fdatasync fullfsync gmtime_r isnan localtime_r localtime_s malloc_usable_size posix_fallocate pread pread64 pwrite pwrite64 strchrnul usleep utime])/" -i configure.ac || die "sed failed"
- else
- eapply "${FILESDIR}/${PN}-3.25.0-nonfull_archive-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 -x CPPFLAGS="${CPPFLAGS}" CFLAGS="${CFLAGS}"
- local options=()
-
- options+=(
- --enable-$(full_archive && echo load-extension || echo dynamic-extensions)
- --enable-threadsafe
- )
- if ! full_archive; then
- options+=(--disable-static-shell)
- fi
-
- # Support detection of misuse of SQLite API.
- # https://sqlite.org/compile.html#enable_api_armor
- append-cppflags -DSQLITE_ENABLE_API_ARMOR
-
- # Support column metadata functions.
- # https://sqlite.org/c3ref/column_database_name.html
- append-cppflags -DSQLITE_ENABLE_COLUMN_METADATA
-
- # Support sqlite_dbpage virtual table.
- # https://sqlite.org/compile.html#enable_dbpage_vtab
- append-cppflags -DSQLITE_ENABLE_DBPAGE_VTAB
-
- # Support dbstat virtual table.
- # https://sqlite.org/dbstat.html
- append-cppflags -DSQLITE_ENABLE_DBSTAT_VTAB
-
- # Support 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/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 sqlite3_normalized_sql() function.
- # https://sqlite.org/c3ref/expanded_sql.html
- append-cppflags -DSQLITE_ENABLE_NORMALIZE
-
- # Support sqlite_offset() function.
- # https://sqlite.org/lang_corefunc.html#sqlite_offset
- append-cppflags -DSQLITE_ENABLE_OFFSET_SQL_FUNC
-
- # Support pre-update hook functions.
- # https://sqlite.org/c3ref/preupdate_count.html
- append-cppflags -DSQLITE_ENABLE_PREUPDATE_HOOK
-
- # Support Resumable Bulk Update extension.
- # https://sqlite.org/rbu.html
- append-cppflags -DSQLITE_ENABLE_RBU
-
- # Support R*Trees.
- # https://sqlite.org/rtree.html
- # https://sqlite.org/geopoly.html
- append-cppflags -DSQLITE_ENABLE_RTREE -DSQLITE_ENABLE_GEOPOLY
-
- # Support scan status functions.
- # https://sqlite.org/c3ref/stmt_scanstatus.html
- # https://sqlite.org/c3ref/stmt_scanstatus_reset.html
- append-cppflags -DSQLITE_ENABLE_STMT_SCANSTATUS
-
- # Support sqlite_stmt virtual table.
- # https://sqlite.org/stmt.html
- append-cppflags -DSQLITE_ENABLE_STMTVTAB
-
- # Support Session extension.
- # https://sqlite.org/sessionintro.html
- options+=(--enable-session)
-
- # Support unknown() function.
- # https://sqlite.org/compile.html#enable_unknown_sql_function
- append-cppflags -DSQLITE_ENABLE_UNKNOWN_SQL_FUNCTION
-
- # Support unlock notification.
- # https://sqlite.org/unlock_notify.html
- append-cppflags -DSQLITE_ENABLE_UNLOCK_NOTIFY
-
- # Support LIMIT and ORDER BY clauses on DELETE and UPDATE statements.
- # https://sqlite.org/compile.html#enable_update_delete_limit
- append-cppflags -DSQLITE_ENABLE_UPDATE_DELETE_LIMIT
-
- # Support soundex() function.
- # https://sqlite.org/lang_corefunc.html#soundex
- append-cppflags -DSQLITE_SOUNDEX
-
- # Support URI filenames.
- # https://sqlite.org/uri.html
- append-cppflags -DSQLITE_USE_URI
-
- # debug USE flag.
- if full_archive; then
- options+=($(use_enable debug))
- else
- if use debug; then
- append-cppflags -DSQLITE_DEBUG
- else
- append-cppflags -DNDEBUG
- fi
- fi
-
- # icu USE flag.
- if use icu; then
- # Support ICU extension.
- # https://sqlite.org/compile.html#enable_icu
- append-cppflags -DSQLITE_ENABLE_ICU
- if full_archive; then
- sed -e "s/^TLIBS = @LIBS@/& -licui18n -licuuc/" -i Makefile.in || die "sed failed"
- else
- sed -e "s/^LIBS = @LIBS@/& -licui18n -licuuc/" -i Makefile.in || die "sed failed"
- fi
- fi
-
- # readline USE flag.
- options+=(
- --disable-editline
- $(use_enable readline)
- )
- if full_archive && use readline; then
- options+=(--with-readline-inc="-I${EPREFIX}/usr/include/readline")
- fi
-
- # secure-delete USE flag.
- if use secure-delete; then
- # Enable secure_delete pragma by default.
- # https://sqlite.org/pragma.html#pragma_secure_delete
- append-cppflags -DSQLITE_SECURE_DELETE
- fi
-
- # static-libs USE flag.
- options+=($(use_enable static-libs static))
-
- # tcl, test, tools USE flags.
- if full_archive; then
- options+=(--enable-tcl)
- fi
-
- if [[ "${CHOST}" == *-mint* ]]; then
- append-cppflags -DSQLITE_OMIT_WAL
- fi
-
- if [[ "${ABI}" == "x86" ]]; then
- if $(tc-getCC) ${CPPFLAGS} ${CFLAGS} -E -P -dM - < /dev/null 2> /dev/null | grep -q "^#define __SSE__ 1$"; then
- append-cflags -mfpmath=sse
- else
- append-cflags -ffloat-store
- fi
- fi
-
- econf "${options[@]}"
-}
-
-multilib_src_compile() {
- emake HAVE_TCL="$(usex tcl 1 "")" TCLLIBDIR="${EPREFIX}/usr/$(get_libdir)/${P}"
-
- if use tools && multilib_is_native_abi; then
- emake changeset dbdump dbhash dbtotxt index_usage rbu scrub showdb showjournal showshm showstat4 showwal sqldiff sqlite3_analyzer sqlite3_checker sqlite3_expert sqltclsh
- fi
-}
-
-multilib_src_test() {
- if [[ "${EUID}" -eq 0 ]]; then
- ewarn "Skipping tests due to root permissions"
- return
- fi
-
- local -x SQLITE_HISTORY="${T}/sqlite_history_${ABI}"
-
- emake HAVE_TCL="$(usex tcl 1 "")" $(use debug && echo fulltest || echo test)
-}
-
-multilib_src_install() {
- emake DESTDIR="${D}" HAVE_TCL="$(usex tcl 1 "")" TCLLIBDIR="${EPREFIX}/usr/$(get_libdir)/${P}" install
-
- if use tools && multilib_is_native_abi; then
- install_tool() {
- if [[ -f ".libs/${1}" ]]; then
- newbin ".libs/${1}" "${2}"
- else
- newbin "${1}" "${2}"
- fi
- }
-
- install_tool changeset sqlite3-changeset
- install_tool dbdump sqlite3-db-dump
- install_tool dbhash sqlite3-db-hash
- install_tool 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 "${D}" -name "*.la" -type f -delete || die
-
- doman sqlite3.1
-
- if use doc; then
- rm "${WORKDIR}/${PN}-doc-${DOC_PV}/"*.{db,txt} || die
- (
- docinto html
- dodoc -r "${WORKDIR}/${PN}-doc-${DOC_PV}/"*
- )
- fi
-}