Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions dev-db/sqlite/Manifest
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
DIST sqlite-3.48.0-942c958.tar.gz 12957390 BLAKE2B de0f0cd3228b60d35f7f05f33204579ed39e0e81767092d14e4454922b30af2e61345e32e6e761831512f6631f20c5e4deb212943bb7a58d1be7aba4895b0d24 SHA512 41db4d849e23830d25719a075dee430c4e2fba01f885c1b0792c41134952db4b8d965f5504a868b5b5fb4d72154d1e0abac16cbedfba3e1f73f307a72c07885e
DIST sqlite-3.49.0-659bafd.tar.gz 12974302 BLAKE2B b7fd2fd006a2221b3afc5a3513dcce8068c0754a570d2825d2c4fd85b6103dba4d12a41f1570af041cb174e00d367602284a8f8ea329cf981d1106eb4655d6bf SHA512 1444c3bae3d44247c6b4aa6b4cd833bc3d8d3b17717327b33b1cf6ca257688259fb1217213a40226acaa9f015b503f7b3616f03d930f0aad27c846d4e40451c5
DIST sqlite-3.49.1-3cd92ce.tar.gz 12978554 BLAKE2B 5140a453e187c19d4e875801942b9bc6b742b85ffb42e7cbdac6cac8c2220e1ece58ad140763f11150a1e796d62abe39ecf8183bf288f7eced190ed5324aa06d SHA512 bfd396338de3afdad5cc4ea134ecc373b9790e0dc5740475dd8f402b908686f239c014c2f027653ec8c4fdf9d89ff6068dd9839b67f952e78daff06f1b6fd37d
DIST sqlite-3.50.0-3f52361.tar.gz 12988171 BLAKE2B 2dbf0cab114263af476247fa7daa2817d597a07330b8c03eed802466cfbae86bb5212a248f2135aca1018d828efb65ce98c35ff76652683511e779ad51c45af2 SHA512 22c74ee16d7d44417df93a7be46a67208fef32ca08843e01a133792ff04fedc06a30b259cdbfe5262367b03ea1b132014ea395dda0c653c590dce104802e3f48
304 changes: 304 additions & 0 deletions dev-db/sqlite/sqlite-3.50.0.ebuild
Original file line number Diff line number Diff line change
@@ -0,0 +1,304 @@
# Distributed under the terms of the GNU General Public License v2

EAPI="7"

inherit autotools flag-o-matic 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.
SRC_URI="https://github.com/sqlite/sqlite/tarball/3f523613528194d3487853ed6e5367c6f215ec4f -> sqlite-3.50.0-3f52361.tar.gz"

LICENSE="public-domain"
SLOT="3"
KEYWORDS="*"
IUSE="debug doc icu +readline secure-delete static-libs tcl test tools"
RESTRICT="!test? ( test )"

BDEPEND="app-arch/unzip
>=dev-lang/tcl-8.6:0"
RDEPEND="sys-libs/zlib:0=
icu? ( dev-libs/icu:0= )
readline? ( sys-libs/readline:0= )
tcl? ( dev-lang/tcl:0= )
tools? ( dev-lang/tcl:0= )"
DEPEND="${RDEPEND}
test? ( >=dev-lang/tcl-8.6:0 )"

S="${WORKDIR}/sqlite-sqlite-3f52361"

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

# debug USE flag.
options+=($(use_enable debug))

# icu USE flag.
if use icu; then
# Support ICU extension.
# https://sqlite.org/compile.html#enable_icu
append-cppflags -DSQLITE_ENABLE_ICU

# sqlite needs a little help properly linking to ICU. Its automatic configure code
# doesn't seem to work, so we will use pkg-config directly to extract all libraries
# to link against: (See ext/icu/README.txt and auto.def for more details)

for lib in i18n io uc; do
pkg-config icu-$lib --libs >> $T/icu_ld.txt || die
done
options+=( --with-icu-ldflags="$(cat $T/icu_ld.txt | tr '\n' ' ' )" )
fi

# readline USE flag.
options+=(
--disable-editline
$(use_enable readline)
)
if use readline; then
options+=(--with-readline-inc="-I${ESYSROOT}/usr/include/readline")
fi

# secure-delete USE flag.
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

# static-libs USE flag.
options+=($(use_enable static-libs static))

# tcl, test, tools USE flags.
if use tcl || use test || use tools; 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[@]}"
}

src_compile() {
if use tcl || use test || use tools; then
emake HAVE_TCL="1" TCLLIBDIR="${EPREFIX}/usr/$(get_libdir)/${P}"
else
emake
fi

if use tools; then
emake changeset dbdump dbhash dbtotxt index_usage rbu scrub showdb showjournal showshm showstat4 showwal sqldiff sqlite3_analyzer sqlite3_checker sqlite3_expert sqltclsh
fi
}

src_test() {
if [[ "${EUID}" -eq 0 ]]; then
ewarn "Skipping tests due to root permissions"
return
fi

local -x SQLITE_HISTORY="${T}/sqlite_history_${ABI}"

if use tcl || use test || use tools; then
emake HAVE_TCL="1" $(use debug && echo fulltest || echo test)
else
emake $(use debug && echo fulltest || echo test)
fi
}

src_install() {
if use tcl || use test || use tools; then
emake DESTDIR="${D}" HAVE_TCL="1" TCLLIBDIR="${EPREFIX}/usr/$(get_libdir)/${P}" install
else
emake DESTDIR="${D}" install
fi

if use tools; 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

find "${ED}" -name "*.la" -delete || die

doman sqlite3.1

if use doc; then
pushd "${WORKDIR}/${PN}-doc-${MY_PV}" > /dev/null || die

find "(" -name "*.db" -o -name "*.txt" ")" -delete || die
rm search search.d/admin || die
rmdir search.d || die
find -name "*~" -delete || die

(
docinto html
dodoc -r *
)

popd > /dev/null || die
fi
}