public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
From: "Sam James" <sam@gentoo.org>
To: gentoo-commits@lists.gentoo.org
Subject: [gentoo-commits] repo/gentoo:master commit in: dev-db/sqlite/files/, dev-db/sqlite/
Date: Tue, 12 Dec 2023 05:43:53 +0000 (UTC)	[thread overview]
Message-ID: <1702359771.8febd266c87c913fcf14b38e90a1b44cd163488f.sam@gentoo> (raw)

commit:     8febd266c87c913fcf14b38e90a1b44cd163488f
Author:     Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Tue Dec 12 05:42:51 2023 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Tue Dec 12 05:42:51 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=8febd266

dev-db/sqlite: backport regression fix

This fixes app-misc/tracker's test suite.

Signed-off-by: Sam James <sam <AT> gentoo.org>

 .../files/sqlite-3.44.2-tracker-regression.patch   | 187 +++++++++
 dev-db/sqlite/sqlite-3.44.2-r1.ebuild              | 432 +++++++++++++++++++++
 2 files changed, 619 insertions(+)

diff --git a/dev-db/sqlite/files/sqlite-3.44.2-tracker-regression.patch b/dev-db/sqlite/files/sqlite-3.44.2-tracker-regression.patch
new file mode 100644
index 000000000000..b03848a19147
--- /dev/null
+++ b/dev-db/sqlite/files/sqlite-3.44.2-tracker-regression.patch
@@ -0,0 +1,187 @@
+https://sqlite.org/forum/forumpost/cb59d962fd
+https://sqlite.org/src/vinfo/d8c6b246
+https://sqlite.org/src/info/67da596d82ec0ed3 (backport)
+
+--- a/ext/fts5/fts5_index.c
++++ b/ext/fts5/fts5_index.c
+@@ -355,10 +355,11 @@
+   int nContentlessDelete;         /* Number of contentless delete ops */
+   int nPendingRow;                /* Number of INSERT in hash table */
+ 
+   /* Error state. */
+   int rc;                         /* Current error code */
++  int flushRc;
+ 
+   /* State used by the fts5DataXXX() functions. */
+   sqlite3_blob *pReader;          /* RO incr-blob open on %_data table */
+   sqlite3_stmt *pWriter;          /* "INSERT ... %_data VALUES(?,?)" */
+   sqlite3_stmt *pDeleter;         /* "DELETE FROM %_data ... id>=? AND id<=?" */
+@@ -4000,10 +4001,11 @@
+   assert( p->pHash || p->nPendingData==0 );
+   if( p->pHash ){
+     sqlite3Fts5HashClear(p->pHash);
+     p->nPendingData = 0;
+     p->nPendingRow = 0;
++    p->flushRc = SQLITE_OK;
+   }
+   p->nContentlessDelete = 0;
+ }
+ 
+ /*
+@@ -5582,18 +5584,24 @@
+ /*
+ ** Flush any data stored in the in-memory hash tables to the database.
+ */
+ static void fts5IndexFlush(Fts5Index *p){
+   /* Unless it is empty, flush the hash table to disk */
++  if( p->flushRc ){
++    p->rc = p->flushRc;
++    return;
++  }
+   if( p->nPendingData || p->nContentlessDelete ){
+     assert( p->pHash );
+     fts5FlushOneHash(p);
+     if( p->rc==SQLITE_OK ){
+       sqlite3Fts5HashClear(p->pHash);
+       p->nPendingData = 0;
+       p->nPendingRow = 0;
+       p->nContentlessDelete = 0;
++    }else if( p->nPendingData || p->nContentlessDelete ){
++      p->flushRc = p->rc;
+     }
+   }
+ }
+ 
+ static Fts5Structure *fts5IndexOptimizeStruct(
+
+--- a/ext/fts5/fts5_main.c
++++ b/ext/fts5/fts5_main.c
+@@ -116,11 +116,11 @@
+   Fts5Table p;                    /* Public class members from fts5Int.h */
+   Fts5Storage *pStorage;          /* Document store */
+   Fts5Global *pGlobal;            /* Global (connection wide) data */
+   Fts5Cursor *pSortCsr;           /* Sort data from this cursor */
+   int iSavepoint;                 /* Successful xSavepoint()+1 */
+-  int bInSavepoint;
++  
+ #ifdef SQLITE_DEBUG
+   struct Fts5TransactionState ts;
+ #endif
+ };
+ 
+@@ -2613,13 +2613,11 @@
+   sqlite3_vtab *pVtab,            /* Virtual table handle */
+   const char *zName               /* New name of table */
+ ){
+   int rc;
+   Fts5FullTable *pTab = (Fts5FullTable*)pVtab;
+-  pTab->bInSavepoint = 1;
+   rc = sqlite3Fts5StorageRename(pTab->pStorage, zName);
+-  pTab->bInSavepoint = 0;
+   return rc;
+ }
+ 
+ int sqlite3Fts5FlushToDisk(Fts5Table *pTab){
+   fts5TripCursors((Fts5FullTable*)pTab);
+@@ -2632,30 +2630,16 @@
+ ** Flush the contents of the pending-terms table to disk.
+ */
+ static int fts5SavepointMethod(sqlite3_vtab *pVtab, int iSavepoint){
+   Fts5FullTable *pTab = (Fts5FullTable*)pVtab;
+   int rc = SQLITE_OK;
+-  char *zSql = 0;
++
+   fts5CheckTransactionState(pTab, FTS5_SAVEPOINT, iSavepoint);
+-
+-  if( pTab->bInSavepoint==0 ){
+-    zSql = sqlite3_mprintf("INSERT INTO %Q.%Q(%Q) VALUES('flush')",
+-        pTab->p.pConfig->zDb, pTab->p.pConfig->zName, pTab->p.pConfig->zName
+-    );
+-    if( zSql ){
+-      pTab->bInSavepoint = 1;
+-      rc = sqlite3_exec(pTab->p.pConfig->db, zSql, 0, 0, 0);
+-      pTab->bInSavepoint = 0;
+-      sqlite3_free(zSql);
+-    }else{
+-      rc = SQLITE_NOMEM;
+-    }
+-    if( rc==SQLITE_OK ){
+-      pTab->iSavepoint = iSavepoint+1;
+-    }
+-  }
+-
++  rc = sqlite3Fts5FlushToDisk((Fts5Table*)pVtab);
++  if( rc==SQLITE_OK ){
++    pTab->iSavepoint = iSavepoint+1;
++  }
+   return rc;
+ }
+ 
+ /*
+ ** The xRelease() method.
+@@ -2912,11 +2896,11 @@
+ /*
+ ** Run an integrity check on the FTS5 data structures.  Return a string
+ ** if anything is found amiss.  Return a NULL pointer if everything is
+ ** OK.
+ */
+-static int fts5Integrity(
++static int fts5IntegrityMethod(
+   sqlite3_vtab *pVtab,    /* the FTS5 virtual table to check */
+   const char *zSchema,    /* Name of schema in which this table lives */
+   const char *zTabname,   /* Name of the table itself */
+   int isQuick,            /* True if this is a quick-check */
+   char **pzErr            /* Write error message here */
+@@ -2970,11 +2954,11 @@
+     /* xRename       */ fts5RenameMethod,
+     /* xSavepoint    */ fts5SavepointMethod,
+     /* xRelease      */ fts5ReleaseMethod,
+     /* xRollbackTo   */ fts5RollbackToMethod,
+     /* xShadowName   */ fts5ShadowName,
+-    /* xIntegrity    */ fts5Integrity
++    /* xIntegrity    */ fts5IntegrityMethod
+   };
+ 
+   int rc;
+   Fts5Global *pGlobal = 0;
+ 
+
+--- a/ext/fts5/test/fts5misc.test
++++ b/ext/fts5/test/fts5misc.test
+@@ -89,11 +89,10 @@
+   CREATE VIRTUAL TABLE vt0 USING fts5(c0);
+   BEGIN TRANSACTION;
+   INSERT INTO vt0(c0) VALUES ('xyz');
+ }
+ 
+-breakpoint
+ do_execsql_test 2.2.2 {
+   ALTER TABLE t0 RENAME TO t1;
+ }
+ do_execsql_test 2.2.3 {
+   INSERT INTO vt0(vt0) VALUES('integrity-check');
+@@ -498,8 +497,23 @@
+ } {assertionfaultproblem}
+ do_execsql_test 17.5 {
+   SELECT c0 FROM t0 WHERE c0 GLOB '*faul*';
+ } {assertionfaultproblem}
+ 
++#-------------------------------------------------------------------------
++reset_db
++do_execsql_test 18.0 {
++  BEGIN;
++    CREATE VIRTUAL TABLE t1 USING fts5(text);
++    ALTER TABLE t1 RENAME TO t2;
++}
++
++do_execsql_test 18.1 {
++    DROP TABLE t2;
++}
++
++do_execsql_test 18.2 {
++  COMMIT;
++}
+ 
+ finish_test
+ 
+

diff --git a/dev-db/sqlite/sqlite-3.44.2-r1.ebuild b/dev-db/sqlite/sqlite-3.44.2-r1.ebuild
new file mode 100644
index 000000000000..466e09ad54a6
--- /dev/null
+++ b/dev-db/sqlite/sqlite-3.44.2-r1.ebuild
@@ -0,0 +1,432 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit autotools flag-o-matic multilib-minimal toolchain-funcs
+
+DESCRIPTION="SQL database engine"
+HOMEPAGE="https://sqlite.org/"
+
+# On version updates, make sure to read the forum (https://sqlite.org/forum/forum)
+# for hints regarding test failures, backports, etc.
+if [[ ${PV} == 9999 ]]; then
+	S="${WORKDIR}"/${PN}
+	PROPERTIES="live"
+else
+	printf -v SRC_PV "%u%02u%02u%02u" $(ver_rs 1- " ")
+	DOC_PV="${SRC_PV}"
+	#printf -v DOC_PV "%u%02u%02u00" $(ver_rs 1-3 " ")
+
+	SRC_URI="
+		https://sqlite.org/2023/${PN}-src-${SRC_PV}.zip
+		doc? ( https://sqlite.org/2023/${PN}-doc-${DOC_PV}.zip )
+	"
+	S="${WORKDIR}/${PN}-src-${SRC_PV}"
+
+	KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
+fi
+
+LICENSE="public-domain"
+SLOT="3"
+IUSE="debug doc icu +readline secure-delete static-libs tcl test tools"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+	sys-libs/zlib:=[${MULTILIB_USEDEP}]
+	icu? ( dev-libs/icu:=[${MULTILIB_USEDEP}] )
+	readline? ( sys-libs/readline:=[${MULTILIB_USEDEP}] )
+	tcl? ( dev-lang/tcl:=[${MULTILIB_USEDEP}] )
+	tools? ( dev-lang/tcl:= )
+"
+DEPEND="
+	${RDEPEND}
+	test? ( >=dev-lang/tcl-8.6:0[${MULTILIB_USEDEP}] )
+"
+BDEPEND=">=dev-lang/tcl-8.6:0"
+if [[ ${PV} == 9999 ]]; then
+	BDEPEND+=" dev-vcs/fossil"
+else
+	BDEPEND+=" app-arch/unzip"
+fi
+
+PATCHES=(
+	"${FILESDIR}"/${PN}-3.44.2-tracker-regression.patch
+)
+
+_fossil_fetch() {
+	local distdir="${PORTAGE_ACTUAL_DISTDIR:-${DISTDIR}}"
+	local repo_id="${1}"
+	local repo_uri="${2}"
+
+	local -x FOSSIL_HOME="${HOME}"
+
+	mkdir -p "${T}/fossil/${repo_id}" || die
+	pushd "${T}/fossil/${repo_id}" > /dev/null || die
+
+	if [[ -n "${EVCS_OFFLINE}" ]]; then
+		if [[ ! -f "${distdir}/fossil-src/${repo_id}/${repo_id}.fossil" ]]; then
+			die "Network activity disabled using EVCS_OFFLINE and clone of repository missing: \"${distdir}/fossil-src/${repo_id}/${repo_id}.fossil\""
+		fi
+	else
+		if [[ ! -f "${distdir}/fossil-src/${repo_id}/${repo_id}.fossil" ]]; then
+			einfo fossil clone --verbose "${repo_uri}" "${repo_id}.fossil"
+			fossil clone --verbose "${repo_uri}" "${repo_id}.fossil" || die
+			echo
+		else
+			cp -p "${distdir}/fossil-src/${repo_id}/${repo_id}.fossil" . || die
+			einfo fossil pull --repository "${repo_id}.fossil" --verbose "${repo_uri}"
+			fossil pull --repository "${repo_id}.fossil" --verbose "${repo_uri}" || die
+			echo
+		fi
+
+		(
+			addwrite "${distdir}"
+			mkdir -p "${distdir}/fossil-src/${repo_id}" || die
+			cp -p "${repo_id}.fossil" "${distdir}/fossil-src/${repo_id}/${repo_id}.fossil" || die
+		)
+	fi
+
+	popd > /dev/null || die
+}
+
+_fossil_checkout() {
+	local distdir="${PORTAGE_ACTUAL_DISTDIR:-${DISTDIR}}"
+	local repo_id="${1}"
+	local branch_or_commit="${2}"
+	local target_directory="${3}"
+
+	local -x FOSSIL_HOME="${HOME}"
+
+	if [[ ! -f "${distdir}/fossil-src/${repo_id}/${repo_id}.fossil" ]]; then
+		die "Clone of repository missing: \"${distdir}/fossil-src/${repo_id}/${repo_id}.fossil\""
+	fi
+
+	if [[ ! -f "${T}/fossil/${repo_id}/${repo_id}.fossil" ]]; then
+		mkdir -p "${T}/fossil/${repo_id}" || die
+		cp -p "${distdir}/fossil-src/${repo_id}/${repo_id}.fossil" "${T}/fossil/${repo_id}" || die
+	fi
+
+	mkdir "${target_directory}" || die
+	pushd "${target_directory}" > /dev/null || die
+
+	einfo fossil open --quiet "${T}/fossil/${repo_id}/${repo_id}.fossil" "${branch_or_commit}"
+	fossil open --quiet "${T}/fossil/${repo_id}/${repo_id}.fossil" "${branch_or_commit}" || die
+	echo
+
+	popd > /dev/null || die
+}
+
+fossil_fetch() {
+	local repo_id="${1}"
+	local repo_uri="${2}"
+	local target_directory="${3}"
+
+	local branch_or_commit="${EFOSSIL_COMMIT:-${EFOSSIL_BRANCH:-trunk}}"
+
+	_fossil_fetch "${repo_id}" "${repo_uri}"
+	_fossil_checkout "${repo_id}" "${branch_or_commit}" "${target_directory}"
+}
+
+src_unpack() {
+	if [[ ${PV} == 9999 ]]; then
+		fossil_fetch sqlite https://sqlite.org/src "${WORKDIR}/${PN}"
+		if use doc; then
+			fossil_fetch sqlite-doc https://sqlite.org/docsrc "${WORKDIR}/${PN}-doc"
+		fi
+	else
+		default
+	fi
+}
+
+src_prepare() {
+	default
+
+	eautoreconf
+	multilib_copy_sources
+}
+
+multilib_src_configure() {
+	local -x CPPFLAGS="${CPPFLAGS}" CFLAGS="${CFLAGS}"
+	local options=()
+
+	options+=(
+		--enable-load-extension
+		--enable-threadsafe
+	)
+
+	# Support detection of misuse of SQLite API.
+	# https://sqlite.org/compile.html#enable_api_armor
+	append-cppflags -DSQLITE_ENABLE_API_ARMOR
+
+	# Support bytecode and tables_used virtual tables.
+	# https://sqlite.org/compile.html#enable_bytecode_vtab
+	# https://sqlite.org/bytecodevtab.html
+	append-cppflags -DSQLITE_ENABLE_BYTECODE_VTAB
+
+	# Support column metadata functions.
+	# https://sqlite.org/compile.html#enable_column_metadata
+	# https://sqlite.org/c3ref/column_database_name.html
+	append-cppflags -DSQLITE_ENABLE_COLUMN_METADATA
+
+	# Support sqlite_dbpage virtual table.
+	# https://sqlite.org/compile.html#enable_dbpage_vtab
+	# https://sqlite.org/dbpage.html
+	append-cppflags -DSQLITE_ENABLE_DBPAGE_VTAB
+
+	# Support dbstat virtual table.
+	# https://sqlite.org/compile.html#enable_dbstat_vtab
+	# https://sqlite.org/dbstat.html
+	append-cppflags -DSQLITE_ENABLE_DBSTAT_VTAB
+
+	# Support sqlite3_serialize() and sqlite3_deserialize() functions.
+	# https://sqlite.org/compile.html#enable_deserialize
+	# https://sqlite.org/c3ref/serialize.html
+	# https://sqlite.org/c3ref/deserialize.html
+	append-cppflags -DSQLITE_ENABLE_DESERIALIZE
+
+	# Support comments in output of EXPLAIN.
+	# https://sqlite.org/compile.html#enable_explain_comments
+	append-cppflags -DSQLITE_ENABLE_EXPLAIN_COMMENTS
+
+	# Support Full-Text Search versions 3, 4 and 5.
+	# https://sqlite.org/compile.html#enable_fts3
+	# https://sqlite.org/compile.html#enable_fts3_parenthesis
+	# https://sqlite.org/compile.html#enable_fts4
+	# https://sqlite.org/compile.html#enable_fts5
+	# https://sqlite.org/fts3.html
+	# https://sqlite.org/fts5.html
+	append-cppflags -DSQLITE_ENABLE_FTS3 -DSQLITE_ENABLE_FTS3_PARENTHESIS -DSQLITE_ENABLE_FTS4
+	options+=( --enable-fts5 )
+
+	# Support hidden columns.
+	append-cppflags -DSQLITE_ENABLE_HIDDEN_COLUMNS
+
+	# Support memsys5 memory allocator.
+	# https://sqlite.org/compile.html#enable_memsys5
+	# https://sqlite.org/malloc.html#memsys5
+	append-cppflags -DSQLITE_ENABLE_MEMSYS5
+
+	# Support sqlite3_normalized_sql() function.
+	# https://sqlite.org/c3ref/expanded_sql.html
+	append-cppflags -DSQLITE_ENABLE_NORMALIZE
+
+	# Support sqlite_offset() function.
+	# https://sqlite.org/compile.html#enable_offset_sql_func
+	# https://sqlite.org/lang_corefunc.html#sqlite_offset
+	append-cppflags -DSQLITE_ENABLE_OFFSET_SQL_FUNC
+
+	# Support pre-update hook functions.
+	# https://sqlite.org/compile.html#enable_preupdate_hook
+	# https://sqlite.org/c3ref/preupdate_count.html
+	append-cppflags -DSQLITE_ENABLE_PREUPDATE_HOOK
+
+	# Support Resumable Bulk Update extension.
+	# https://sqlite.org/compile.html#enable_rbu
+	# https://sqlite.org/rbu.html
+	append-cppflags -DSQLITE_ENABLE_RBU
+
+	# Support R*Trees.
+	# https://sqlite.org/compile.html#enable_rtree
+	# https://sqlite.org/compile.html#enable_geopoly
+	# https://sqlite.org/rtree.html
+	# https://sqlite.org/geopoly.html
+	append-cppflags -DSQLITE_ENABLE_RTREE -DSQLITE_ENABLE_GEOPOLY
+
+	# Support Session extension.
+	# https://sqlite.org/compile.html#enable_session
+	# https://sqlite.org/sessionintro.html
+	append-cppflags -DSQLITE_ENABLE_SESSION
+
+	# Support scan status functions.
+	# https://sqlite.org/compile.html#enable_stmt_scanstatus
+	# https://sqlite.org/c3ref/stmt_scanstatus.html
+	# https://sqlite.org/c3ref/stmt_scanstatus_reset.html
+	append-cppflags -DSQLITE_ENABLE_STMT_SCANSTATUS
+
+	# Support sqlite_stmt virtual table.
+	# https://sqlite.org/compile.html#enable_stmtvtab
+	# https://sqlite.org/stmt.html
+	append-cppflags -DSQLITE_ENABLE_STMTVTAB
+
+	# Support unknown() function.
+	# https://sqlite.org/compile.html#enable_unknown_sql_function
+	append-cppflags -DSQLITE_ENABLE_UNKNOWN_SQL_FUNCTION
+
+	# Support unlock notification.
+	# https://sqlite.org/compile.html#enable_unlock_notify
+	# https://sqlite.org/c3ref/unlock_notify.html
+	# https://sqlite.org/unlock_notify.html
+	append-cppflags -DSQLITE_ENABLE_UNLOCK_NOTIFY
+
+	# Support LIMIT and ORDER BY clauses on DELETE and UPDATE statements.
+	# https://sqlite.org/compile.html#enable_update_delete_limit
+	# https://sqlite.org/lang_delete.html#optional_limit_and_order_by_clauses
+	# https://sqlite.org/lang_update.html#optional_limit_and_order_by_clauses
+	append-cppflags -DSQLITE_ENABLE_UPDATE_DELETE_LIMIT
+
+	# Support soundex() function.
+	# https://sqlite.org/compile.html#soundex
+	# https://sqlite.org/lang_corefunc.html#soundex
+	append-cppflags -DSQLITE_SOUNDEX
+
+	# Support URI filenames.
+	# https://sqlite.org/compile.html#use_uri
+	# https://sqlite.org/uri.html
+	append-cppflags -DSQLITE_USE_URI
+
+	options+=( $(use_enable debug) )
+
+	if use icu; then
+		# Support ICU extension.
+		# https://sqlite.org/compile.html#enable_icu
+		append-cppflags -DSQLITE_ENABLE_ICU
+		sed -e "s/^TLIBS = @LIBS@/& -licui18n -licuuc/" -i Makefile.in || die "sed failed"
+	fi
+
+	options+=(
+		--disable-editline
+		$(use_enable readline)
+	)
+
+	if use readline; then
+		options+=( --with-readline-inc="-I${ESYSROOT}/usr/include/readline" )
+	fi
+
+	if use secure-delete; then
+		# Enable secure_delete pragma by default.
+		# https://sqlite.org/compile.html#secure_delete
+		# https://sqlite.org/pragma.html#pragma_secure_delete
+		append-cppflags -DSQLITE_SECURE_DELETE
+	fi
+
+	options+=( $(use_enable static-libs static) )
+
+	# tcl, test, tools USE flags.
+	if use tcl || use test || { use tools && multilib_is_native_abi; }; then
+		options+=(
+			--enable-tcl
+			--with-tcl="${ESYSROOT}/usr/$(get_libdir)"
+		)
+	else
+		options+=( --disable-tcl )
+	fi
+
+	if [[ "${ABI}" == "x86" ]]; then
+		if $(tc-getCC) ${CPPFLAGS} ${CFLAGS} -E -P -dM - < /dev/null 2> /dev/null | grep -q "^#define __SSE__ 1$"; then
+			append-cflags -mfpmath=sse
+		else
+			append-cflags -ffloat-store
+		fi
+
+		# Skip known-broken test for now
+		# https://sqlite.org/forum/forumpost/d97caf168f
+		# https://sqlite.org/forum/forumpost/50f136d91d
+		if use test ; then
+			rm test/atof1.test || die
+		fi
+	fi
+
+	econf "${options[@]}"
+}
+
+multilib_src_compile() {
+	emake HAVE_TCL="$(usev tcl 1)" TCLLIBDIR="${EPREFIX}/usr/$(get_libdir)/${P}"
+
+	if use tools && multilib_is_native_abi; then
+		emake changeset dbdump dbhash dbtotxt index_usage rbu scrub showdb showjournal showshm showstat4 showwal sqldiff sqlite3_analyzer sqlite3_checker sqlite3_expert sqltclsh
+	fi
+
+	if [[ ${PV} == 9999 ]] && use doc && multilib_is_native_abi; then
+		emake tclsqlite3.c
+
+		local build_directory="$(pwd)"
+		build_directory="${build_directory##*/}"
+
+		mkdir "${WORKDIR}/${PN}-doc-build" || die
+		pushd "${WORKDIR}/${PN}-doc-build" > /dev/null || die
+
+		emake -f "../${PN}-doc/Makefile" -j1 SRC="../${PN}" BLD="../${build_directory}" DOC="../${PN}-doc" CC="$(tc-getBUILD_CC)" TCLINC="" TCLFLAGS="$($(tc-getBUILD_PKG_CONFIG) --libs tcl) -ldl -lm" base doc
+		rmdir doc/matrix{/*,} || die
+
+		popd > /dev/null || die
+	fi
+}
+
+multilib_src_test() {
+	if [[ "${EUID}" -eq 0 ]]; then
+		ewarn "Skipping tests due to root permissions"
+		return
+	fi
+
+	local -x SQLITE_HISTORY="${T}/sqlite_history_${ABI}"
+
+	# e_uri.test tries to open files in /.
+	# bug #839798
+	local SANDBOX_PREDICT=${SANDBOX_PREDICT}
+	addpredict "/test.db:/ÿ.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
+}


             reply	other threads:[~2023-12-12  5:43 UTC|newest]

Thread overview: 23+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-12-12  5:43 Sam James [this message]
  -- strict thread matches above, loose matches on Subject: below --
2024-11-10 22:44 [gentoo-commits] repo/gentoo:master commit in: dev-db/sqlite/files/, dev-db/sqlite/ Sam James
2024-11-06 11:03 Sam James
2024-03-21  3:46 Sam James
2024-01-07  8:12 Sam James
2022-02-02 12:15 Jakov Smolić
2022-01-16 18:33 Jakov Smolić
2021-12-12 23:42 Sam James
2020-09-15 18:34 Mike Gilbert
2020-07-29 18:46 Mike Gilbert
2020-03-09 19:29 Mike Gilbert
2019-08-16 17:03 Mike Gilbert
2019-08-09 18:39 Mike Gilbert
2019-05-05 19:05 Mike Gilbert
2019-02-27 22:35 Mike Gilbert
2019-02-27 22:35 Mike Gilbert
2018-04-26 15:14 Mike Gilbert
2017-09-28 17:18 Mike Gilbert
2017-04-04 19:50 Mike Gilbert
2017-01-27 17:34 Mike Gilbert
2016-11-29  9:16 Lars Wendler
2016-05-30 21:01 Mike Gilbert
2016-04-28 21:07 Mike Gilbert

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1702359771.8febd266c87c913fcf14b38e90a1b44cd163488f.sam@gentoo \
    --to=sam@gentoo.org \
    --cc=gentoo-commits@lists.gentoo.org \
    --cc=gentoo-dev@lists.gentoo.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox