summaryrefslogtreecommitdiff
path: root/dev-db/sqlcipher/sqlcipher-4.15.0.ebuild
blob: 72b83907fd48f1b23f161a76f07c75b84a532d8e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
# Copyright 2021-2026 BaldEagleOS Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8

inherit autotools flag-o-matic

DESCRIPTION="Full Database Encryption for SQLite"
HOMEPAGE="
	https://www.zetetic.net/sqlcipher/
	https://github.com/sqlcipher/sqlcipher
"
SRC_URI="https://github.com/sqlcipher/sqlcipher/archive/v${PV}.tar.gz -> ${P}.tar.gz"

LICENSE="BSD"
SLOT="0"
KEYWORDS="amd64 x86"
IUSE="debug libedit readline libressl tcl test"
# Testsuite requires compilation with TCL, bug #582584
REQUIRED_USE="
	?? ( libedit readline )
	test? ( tcl )
"
RESTRICT="!test? ( test )"

RDEPEND="
	!libressl? ( >=dev-libs/openssl-3.0:= )
	libressl? ( dev-libs/libressl:= )
	sys-libs/zlib
	libedit? ( dev-libs/libedit )
	readline? ( sys-libs/readline:= )
	tcl? ( dev-lang/tcl:= )
"
DEPEND="${RDEPEND}"
BDEPEND="dev-lang/tcl"

src_prepare() {
	append-cflags -DSQLITE_HAS_CODEC -DSQLITE_ENABLE_COLUMN_METADATA -DSQLITE_EXTRA_INIT=sqlcipher_extra_init -DSQLITE_EXTRA_SHUTDOWN=sqlcipher_extra_shutdown -DSQLITE_TEMP_STORE=3
	append-ldflags -lssl -lcrypto
	eapply -p0 $FILESDIR/patch-autosetup_sqlite-config_tcl

	if use libressl; then
		eapply -p0 $FILESDIR/patch-src_crypto_openssl_c
	fi

	default
}

src_configure() {
	local myeconfargs=(
		--enable-fts3
		--enable-fts4
		--enable-fts5
		--enable-geopoly
		--enable-memsys5
		--enable-rtree
		--enable-session
		--with-tempstore=yes
		$(use_enable debug)
		$(use_enable libedit editline)
		$(use_enable readline)
		$(use_enable tcl)
	)
	ECONF_SOURCE=${S} \
			econf "${myeconfargs[@]}"
}

src_install() {
	emake DESTDIR="${D}" install

	# Rename files from sqlite3 to sqlcipher to prevent file collisons
	mv ${ED}/usr/bin/{sqlite3,sqlcipher}
	mv ${ED}/usr/include/{sqlite3,sqlcipher}.h
	mv ${ED}/usr/include/{sqlite3ext,sqlcipherext}.h
	mv ${ED}/usr/lib64/lib{sqlite3,sqlcipher}.a
	rm ${ED}/usr/lib64/libsqlite3.so{,.0}
	mv ${ED}/usr/lib64/libsqlite3.so.* \
		${ED}/usr/lib64/libsqlcipher.so.${PV}
	mv ${ED}/usr/lib64/pkgconfig/{sqlite3,sqlcipher}.pc
	mv ${ED}/usr/share/man/man1/{sqlite3,sqlcipher}.1
	sed -i s/-lsqlite3/-lsqlcipher/ ${ED}/usr/lib64/pkgconfig/sqlcipher.pc
	einstalldocs
	find "${D}" -name '*.la' -type f -delete || die
}