Gentoo Archives: gentoo-commits

From: Mike Gilbert <floppym@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] repo/gentoo:master commit in: dev-db/sqlite/, dev-db/sqlite/files/
Date: Tue, 04 Apr 2017 19:50:54
Message-Id: 1491335406.4486cd1d6599120e49ebe589f17b4312647a6239.floppym@gentoo
1 commit: 4486cd1d6599120e49ebe589f17b4312647a6239
2 Author: Arfrever Frehtes Taifersar Arahesis <Arfrever <AT> Apache <DOT> Org>
3 AuthorDate: Tue Apr 4 19:23:41 2017 +0000
4 Commit: Mike Gilbert <floppym <AT> gentoo <DOT> org>
5 CommitDate: Tue Apr 4 19:50:06 2017 +0000
6 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=4486cd1d
7
8 dev-db/sqlite: Version bump (3.18.0).
9
10 dev-db/sqlite/Manifest | 3 +
11 .../files/sqlite-3.18.0-full_tarball-build.patch | 158 +++++++++++++
12 dev-db/sqlite/sqlite-3.18.0.ebuild | 261 +++++++++++++++++++++
13 3 files changed, 422 insertions(+)
14
15 diff --git a/dev-db/sqlite/Manifest b/dev-db/sqlite/Manifest
16 index e599eec48fb..1dd06bb5ced 100644
17 --- a/dev-db/sqlite/Manifest
18 +++ b/dev-db/sqlite/Manifest
19 @@ -1,6 +1,9 @@
20 DIST sqlite-autoconf-3160200.tar.gz 2508179 SHA256 65cc0c3e9366f50c0679c5ccd31432cea894bc4a3e8947dabab88c8693263615 SHA512 83bdd588504f265bbe93fb98a33a292aff5618c14f94d521c8557efbb5f777e82dfbb2d186cbfd4c628ee9522b1fcb73857e24ca2318fa34af3a3f9540e72b9a WHIRLPOOL 850a5051739f65eade0ee5740641a0503870f88d1ebdb40cab36b68d956896270ed59e387d57db74eede5ecd7fc9b3c14bc5841ff02e17eb50abc4701eba18fc
21 DIST sqlite-autoconf-3170000.tar.gz 2515143 SHA256 a4e485ad3a16e054765baf6371826b5000beed07e626510896069c0bf013874c SHA512 bebf2693ade1c99b6a178bbe663f64911bf7751932a2524506994cbbb19ab254e7febe3693a76084e55853c1ea85db9e4ece87192422583555fbe569915a2ca8 WHIRLPOOL c3ddeb9691470dfd10950ef36bca8f05f06faa171e3ee87da66d431ba364b7dd903b1350b8ab1aae445a2696ea56dd3f0c50e07d25bc83a09d673a9b92c84e3f
22 +DIST sqlite-autoconf-3180000.tar.gz 2533004 SHA256 3757612463976e7d08c5e9f0af3021613fc24bbcfe1c51197d6776b9ece9ac5c SHA512 4c2efda1d63d1849f7a351cc57c02cc1820efe3c19f88460a131a1d6ae4f7411e4b7672a5581055e581093df29f65cebd9ff5b24125c18802523b17477dce1ef WHIRLPOOL 5424d028af1649cedeb9192d86939753000bb94676b0578d5bdd33591ddd064f2e9ca60a1abc6e185a8fbbfd13c04361e7bfd82945b3b7c01073b8e79e985031
23 DIST sqlite-doc-3160200.zip 5521023 SHA256 c13ffbb6019f3849b251c22358f31ccb862a842c0a2379f552f2935600157dcb SHA512 b79d21074d1ab154e3b324fb2943f24321ad5cdbc6e2030f1d21940ae46538462af049e0e0cd7c6cf96dec2c59708eaf70aa4cb3c84ba1a0e87238ffcf31fca2 WHIRLPOOL 4d07279b8f186c4a015324021d60f3e76840594a35a2466cc023cd3ef32b5b01572d8a83db5d96f7281c617a8384485bdef60d390e1c12c4ecbc7e0223e1a194
24 DIST sqlite-doc-3170000.zip 5533032 SHA256 3102d9eab879074776216357e4c9e272f63d0cda975a0819ec5baba5e0922ff6 SHA512 6a7813be301416dc59401b7732733f44efad60b458ded0f4ed8d845aab0843a1123dd20d1e6f209dd32184a87bcd7e68e213e3676c43d1d05d2df5acc2c64b74 WHIRLPOOL dc1c9b6802985be34ac7819e08883c456a0a76fb1822eff46b26613760063b72888d34323cf15f0f48be69555c0b07b99424a85f29ac580c4ad8fa46b990b723
25 +DIST sqlite-doc-3180000.zip 5552381 SHA256 6f763eba9f51cb1096d1d40fbdd7ff974203060ddb892fc735adb2d7d42f1dad SHA512 7b65130cb2174d823842cddc912432d206044a8b276fdc2eef437854de7d0b05b8eb5d7aec0ead5c3f88bb7788ae5f1c42ffb1e43ab00774a68f6f7fea72d517 WHIRLPOOL be95f25105aea7f553145b371d64d1192057a2931551758bea418dd41b2ead6e9c07368347320bb041a59051c89ca2c84e3cd4e1f95806cad30dca3adec6042b
26 DIST sqlite-src-3160200.zip 10081950 SHA256 ee77c2cc5cc4a7b0a746a1d4496f7aee0d71c558a3bbfcf8e9e0b35416910337 SHA512 db49551c09830cf4d8997f0a623deeed9f85db5f27e6ca9d8aa5812a23c1466bbcdf8bb56cf009511f72cafec8f09a305127123f54d90437b28770dac34a0897 WHIRLPOOL b8cc52d5111bde34dae02391be8d83f9e703672b2101b36f5409e9acc23743c00561b02bd14b098e29972077fa1866a506d6343b58e4897ca07dac0bb60f4367
27 DIST sqlite-src-3170000.zip 10120844 SHA256 86754bee6bcaf1f2a6bf4a02676eb3a43d22d4e5d8339e217424cb2be6b748c3 SHA512 e60381de33fbf566507454e4f1dfb7d3ada554e5c919f05f0dd2f96a6f266adaa62681437f21fdea1c24de57fb6141b798f97854918faa189b507f12f11e0d36 WHIRLPOOL 535c598f7bb9ddbecdd1ca841c0ecf398831c494c99c38542d1cbb756d8333260d6891aa36167aeba75df83fbaf402465dc65c9b3a7fb6685fa54420cb1a1342
28 +DIST sqlite-src-3180000.zip 10166686 SHA256 eab4d137abd5aa1164244a5d558c9a02122071daf36984b236f8441d749b9ba6 SHA512 b82c5388066f2e905c067d75e890bf2ff03a522733b8c8e0ebdfffe1804d7ecb39b72f6d808fce59133ac8c645f8b6e163e3dff7bbb0d66bbe8748e069ca7a84 WHIRLPOOL b92890b587761dfd550b39fbd64c4fddaf58e495c0f2b7526a624c3415147494648add3fa6968a09411e73c9b0653ec541a49a34daeb7ad2ae4840e829528380
29
30 diff --git a/dev-db/sqlite/files/sqlite-3.18.0-full_tarball-build.patch b/dev-db/sqlite/files/sqlite-3.18.0-full_tarball-build.patch
31 new file mode 100644
32 index 00000000000..1278630c092
33 --- /dev/null
34 +++ b/dev-db/sqlite/files/sqlite-3.18.0-full_tarball-build.patch
35 @@ -0,0 +1,158 @@
36 +Link executables against libsqlite3.so.
37 +Increase timeout for fuzzcheck.
38 +Fix building with dlopen() not available.
39 +
40 +--- Makefile.in
41 ++++ Makefile.in
42 +@@ -562,6 +562,7 @@
43 + #
44 + SHELL_OPT = -DSQLITE_ENABLE_JSON1 -DSQLITE_ENABLE_FTS4
45 + # SHELL_OPT += -DSQLITE_ENABLE_FTS5
46 ++SHELL_OPT += -DSQLITE_ENABLE_DBSTAT_VTAB
47 + SHELL_OPT += -DSQLITE_ENABLE_EXPLAIN_COMMENTS
48 + SHELL_OPT += -DSQLITE_ENABLE_UNKNOWN_SQL_FUNCTION
49 + FUZZERSHELL_OPT = -DSQLITE_ENABLE_JSON1
50 +@@ -587,25 +588,25 @@
51 +
52 + libtclsqlite3.la: tclsqlite.lo libsqlite3.la
53 + $(LTLINK) -no-undefined -o $@ tclsqlite.lo \
54 +- libsqlite3.la @TCL_STUB_LIB_SPEC@ $(TLIBS) \
55 ++ libsqlite3.la @TCL_STUB_LIB_SPEC@ \
56 + -rpath "$(TCLLIBDIR)" \
57 + -version-info "8:6:8" \
58 + -avoid-version
59 +
60 +-sqlite3$(TEXE): $(TOP)/src/shell.c sqlite3.c
61 +- $(LTLINK) $(READLINE_FLAGS) $(SHELL_OPT) -o $@ \
62 +- $(TOP)/src/shell.c sqlite3.c \
63 +- $(LIBREADLINE) $(TLIBS) -rpath "$(libdir)"
64 ++sqlite3$(TEXE): $(TOP)/src/shell.c libsqlite3.la
65 ++ $(LTLINK) $(READLINE_FLAGS) -o $@ \
66 ++ $(TOP)/src/shell.c libsqlite3.la \
67 ++ $(LIBREADLINE)
68 +
69 +-sqldiff$(TEXE): $(TOP)/tool/sqldiff.c sqlite3.lo sqlite3.h
70 +- $(LTLINK) -o $@ $(TOP)/tool/sqldiff.c sqlite3.lo $(TLIBS)
71 ++sqldiff$(TEXE): $(TOP)/tool/sqldiff.c libsqlite3.la
72 ++ $(LTLINK) -o $@ $(TOP)/tool/sqldiff.c libsqlite3.la
73 +
74 +-dbhash$(TEXE): $(TOP)/tool/dbhash.c sqlite3.lo sqlite3.h
75 +- $(LTLINK) -o $@ $(TOP)/tool/dbhash.c sqlite3.lo $(TLIBS)
76 ++dbhash$(TEXE): $(TOP)/tool/dbhash.c libsqlite3.la
77 ++ $(LTLINK) -o $@ $(TOP)/tool/dbhash.c libsqlite3.la
78 +
79 +-scrub$(TEXE): $(TOP)/ext/misc/scrub.c sqlite3.lo
80 ++scrub$(TEXE): $(TOP)/ext/misc/scrub.c libsqlite3.la
81 + $(LTLINK) -o $@ -I. -DSCRUB_STANDALONE \
82 +- $(TOP)/ext/misc/scrub.c sqlite3.lo $(TLIBS)
83 ++ $(TOP)/ext/misc/scrub.c libsqlite3.la
84 +
85 + srcck1$(BEXE): $(TOP)/tool/srcck1.c
86 + $(BCC) -o srcck1$(BEXE) $(TOP)/tool/srcck1.c
87 +@@ -681,7 +682,7 @@
88 + # Rule to build the amalgamation
89 + #
90 + sqlite3.lo: sqlite3.c
91 +- $(LTCOMPILE) $(TEMP_STORE) -c sqlite3.c
92 ++ $(LTCOMPILE) $(SHELL_OPT) $(TEMP_STORE) -c sqlite3.c
93 +
94 + # Rules to build the LEMON compiler generator
95 + #
96 +@@ -1107,13 +1108,13 @@
97 +
98 + # Fuzz testing
99 + fuzztest: fuzzcheck$(TEXE) $(FUZZDATA)
100 +- ./fuzzcheck$(TEXE) $(FUZZDATA)
101 ++ ./fuzzcheck$(TEXE) --timeout 3600 $(FUZZDATA)
102 +
103 + fastfuzztest: fuzzcheck$(TEXE) $(FUZZDATA)
104 +- ./fuzzcheck$(TEXE) --limit-mem 100M $(FUZZDATA)
105 ++ ./fuzzcheck$(TEXE) --limit-mem 100M --timeout 3600 $(FUZZDATA)
106 +
107 + valgrindfuzz: fuzzcheck$(TEXT) $(FUZZDATA)
108 +- valgrind ./fuzzcheck$(TEXE) --cell-size-check --limit-mem 10M --timeout 600 $(FUZZDATA)
109 ++ valgrind ./fuzzcheck$(TEXE) --cell-size-check --limit-mem 10M --timeout 3600 $(FUZZDATA)
110 +
111 + # The veryquick.test TCL tests.
112 + #
113 +@@ -1143,36 +1144,35 @@
114 + smoketest: $(TESTPROGS) fuzzcheck$(TEXE)
115 + ./testfixture$(TEXE) $(TOP)/test/main.test $(TESTOPTS)
116 +
117 +-sqlite3_analyzer.c: sqlite3.c $(TOP)/src/tclsqlite.c $(TOP)/tool/spaceanal.tcl
118 ++sqlite3_analyzer.c: $(TOP)/src/tclsqlite.c $(TOP)/tool/spaceanal.tcl
119 + echo "#define TCLSH 2" > $@
120 +- echo "#define SQLITE_ENABLE_DBSTAT_VTAB 1" >> $@
121 +- cat sqlite3.c $(TOP)/src/tclsqlite.c >> $@
122 ++ cat $(TOP)/src/tclsqlite.c >> $@
123 + echo "static const char *tclsh_main_loop(void){" >> $@
124 + echo "static const char *zMainloop = " >> $@
125 + $(TCLSH_CMD) $(TOP)/tool/tostr.tcl $(TOP)/tool/spaceanal.tcl >> $@
126 + echo "; return zMainloop; }" >> $@
127 +
128 +-sqlite3_analyzer$(TEXE): sqlite3_analyzer.c
129 +- $(LTLINK) sqlite3_analyzer.c -o $@ $(LIBTCL) $(TLIBS)
130 ++sqlite3_analyzer$(TEXE): sqlite3_analyzer.c libsqlite3.la
131 ++ $(LTLINK) sqlite3_analyzer.c -o $@ libsqlite3.la $(LIBTCL)
132 +
133 +-dbdump$(TEXE): $(TOP)/ext/misc/dbdump.c sqlite3.lo
134 ++dbdump$(TEXE): $(TOP)/ext/misc/dbdump.c libsqlite3.la
135 + $(LTLINK) -DDBDUMP_STANDALONE -o $@ \
136 +- $(TOP)/ext/misc/dbdump.c sqlite3.lo $(TLIBS)
137 ++ $(TOP)/ext/misc/dbdump.c libsqlite3.la
138 +
139 +-showdb$(TEXE): $(TOP)/tool/showdb.c sqlite3.lo
140 +- $(LTLINK) -o $@ $(TOP)/tool/showdb.c sqlite3.lo $(TLIBS)
141 ++showdb$(TEXE): $(TOP)/tool/showdb.c libsqlite3.la
142 ++ $(LTLINK) -o $@ $(TOP)/tool/showdb.c libsqlite3.la
143 +
144 +-showstat4$(TEXE): $(TOP)/tool/showstat4.c sqlite3.lo
145 +- $(LTLINK) -o $@ $(TOP)/tool/showstat4.c sqlite3.lo $(TLIBS)
146 ++showstat4$(TEXE): $(TOP)/tool/showstat4.c libsqlite3.la
147 ++ $(LTLINK) -o $@ $(TOP)/tool/showstat4.c libsqlite3.la
148 +
149 +-showjournal$(TEXE): $(TOP)/tool/showjournal.c sqlite3.lo
150 +- $(LTLINK) -o $@ $(TOP)/tool/showjournal.c sqlite3.lo $(TLIBS)
151 ++showjournal$(TEXE): $(TOP)/tool/showjournal.c
152 ++ $(LTLINK) -o $@ $(TOP)/tool/showjournal.c
153 +
154 +-showwal$(TEXE): $(TOP)/tool/showwal.c sqlite3.lo
155 +- $(LTLINK) -o $@ $(TOP)/tool/showwal.c sqlite3.lo $(TLIBS)
156 ++showwal$(TEXE): $(TOP)/tool/showwal.c
157 ++ $(LTLINK) -o $@ $(TOP)/tool/showwal.c
158 +
159 +-changeset$(TEXE): $(TOP)/ext/session/changeset.c sqlite3.lo
160 +- $(LTLINK) -o $@ $(TOP)/ext/session/changeset.c sqlite3.lo $(TLIBS)
161 ++changeset$(TEXE): $(TOP)/ext/session/changeset.c libsqlite3.la
162 ++ $(LTLINK) -o $@ $(TOP)/ext/session/changeset.c libsqlite3.la
163 +
164 + rollback-test$(TEXE): $(TOP)/tool/rollback-test.c sqlite3.lo
165 + $(LTLINK) -o $@ $(TOP)/tool/rollback-test.c sqlite3.lo $(TLIBS)
166 +@@ -1191,11 +1191,11 @@
167 + kvtest$(TEXE): $(TOP)/test/kvtest.c sqlite3.c
168 + $(LTLINK) $(KV_OPT) -o $@ $(TOP)/test/kvtest.c sqlite3.c $(TLIBS)
169 +
170 +-rbu$(EXE): $(TOP)/ext/rbu/rbu.c $(TOP)/ext/rbu/sqlite3rbu.c sqlite3.lo
171 +- $(LTLINK) -I. -o $@ $(TOP)/ext/rbu/rbu.c sqlite3.lo $(TLIBS)
172 ++rbu$(EXE): $(TOP)/ext/rbu/rbu.c libsqlite3.la
173 ++ $(LTLINK) -I. -o $@ $(TOP)/ext/rbu/rbu.c libsqlite3.la
174 +
175 +-loadfts$(EXE): $(TOP)/tool/loadfts.c libsqlite3.la
176 +- $(LTLINK) $(TOP)/tool/loadfts.c libsqlite3.la -o $@ $(TLIBS)
177 ++loadfts$(EXE): $(TOP)/tool/loadfts.c libsqlite3.la
178 ++ $(LTLINK) $(TOP)/tool/loadfts.c libsqlite3.la -o $@
179 +
180 + # This target will fail if the SQLite amalgamation contains any exported
181 + # symbols that do not begin with "sqlite3_". It is run as part of the
182 +--- configure.ac
183 ++++ configure.ac
184 +@@ -584,6 +584,9 @@
185 + if test "${use_loadextension}" = "yes" ; then
186 + OPT_FEATURE_FLAGS=""
187 + AC_SEARCH_LIBS(dlopen, dl)
188 ++ if test "${ac_cv_search_dlopen}" = "no" ; then
189 ++ OPT_FEATURE_FLAGS="-DSQLITE_OMIT_LOAD_EXTENSION=1"
190 ++ fi
191 + else
192 + OPT_FEATURE_FLAGS="-DSQLITE_OMIT_LOAD_EXTENSION=1"
193 + fi
194
195 diff --git a/dev-db/sqlite/sqlite-3.18.0.ebuild b/dev-db/sqlite/sqlite-3.18.0.ebuild
196 new file mode 100644
197 index 00000000000..a607c0afbdc
198 --- /dev/null
199 +++ b/dev-db/sqlite/sqlite-3.18.0.ebuild
200 @@ -0,0 +1,261 @@
201 +# Copyright 1999-2017 Gentoo Foundation
202 +# Distributed under the terms of the GNU General Public License v2
203 +
204 +EAPI="6"
205 +
206 +inherit autotools eutils flag-o-matic multilib multilib-minimal toolchain-funcs versionator
207 +
208 +SRC_PV="$(printf "%u%02u%02u%02u" $(get_version_components))"
209 +DOC_PV="${SRC_PV}"
210 +# DOC_PV="$(printf "%u%02u%02u00" $(get_version_components $(get_version_component_range 1-3)))"
211 +
212 +DESCRIPTION="A SQL Database Engine in a C Library"
213 +HOMEPAGE="https://sqlite.org/"
214 +SRC_URI="doc? ( https://sqlite.org/2017/${PN}-doc-${DOC_PV}.zip )
215 + tcl? ( https://sqlite.org/2017/${PN}-src-${SRC_PV}.zip )
216 + test? ( https://sqlite.org/2017/${PN}-src-${SRC_PV}.zip )
217 + tools? ( https://sqlite.org/2017/${PN}-src-${SRC_PV}.zip )
218 + !tcl? ( !test? ( !tools? ( https://sqlite.org/2017/${PN}-autoconf-${SRC_PV}.tar.gz ) ) )"
219 +
220 +LICENSE="public-domain"
221 +SLOT="3"
222 +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~ppc-aix ~x64-cygwin ~amd64-fbsd ~sparc-fbsd ~x86-fbsd ~amd64-linux ~arm-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~m68k-mint ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
223 +IUSE="debug doc icu +readline secure-delete static-libs tcl test tools"
224 +
225 +RDEPEND="icu? ( dev-libs/icu:0=[${MULTILIB_USEDEP}] )
226 + readline? ( sys-libs/readline:0=[${MULTILIB_USEDEP}] )
227 + tcl? ( dev-lang/tcl:0=[${MULTILIB_USEDEP}] )
228 + tools? ( dev-lang/tcl:0=[${MULTILIB_USEDEP}] )"
229 +DEPEND="${RDEPEND}
230 + doc? ( app-arch/unzip )
231 + tcl? ( app-arch/unzip )
232 + test? (
233 + app-arch/unzip
234 + dev-lang/tcl:0[${MULTILIB_USEDEP}]
235 + )
236 + tools? ( app-arch/unzip )"
237 +
238 +full_tarball() {
239 + use tcl || use test || use tools
240 +}
241 +
242 +pkg_setup() {
243 + if full_tarball; then
244 + S="${WORKDIR}/${PN}-src-${SRC_PV}"
245 + else
246 + S="${WORKDIR}/${PN}-autoconf-${SRC_PV}"
247 + fi
248 +}
249 +
250 +src_prepare() {
251 + if full_tarball; then
252 + eapply -p0 "${FILESDIR}/${PN}-3.18.0-full_tarball-build.patch"
253 +
254 + eapply_user
255 +
256 + # Fix AC_CHECK_FUNCS.
257 + # https://mailinglists.sqlite.org/cgi-bin/mailman/private/sqlite-dev/2016-March/002762.html
258 + 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"
259 + else
260 + eapply -p0 "${FILESDIR}/${PN}-3.16.0-nonfull_tarball-build.patch"
261 +
262 + eapply_user
263 +
264 + # Fix AC_CHECK_FUNCS.
265 + # https://mailinglists.sqlite.org/cgi-bin/mailman/private/sqlite-dev/2016-March/002762.html
266 + sed \
267 + -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])/" \
268 + -e "/AC_CHECK_FUNCS(posix_fallocate)/d" \
269 + -i configure.ac || die "sed failed"
270 + fi
271 +
272 + eautoreconf
273 +
274 + multilib_copy_sources
275 +}
276 +
277 +multilib_src_configure() {
278 + local CPPFLAGS="${CPPFLAGS}" options=()
279 +
280 + options+=(
281 + --enable-$(full_tarball && echo load-extension || echo dynamic-extensions)
282 + --enable-threadsafe
283 + )
284 + if ! full_tarball; then
285 + options+=(--disable-static-shell)
286 + fi
287 +
288 + # Support detection of misuse of SQLite API.
289 + # https://sqlite.org/compile.html#enable_api_armor
290 + append-cppflags -DSQLITE_ENABLE_API_ARMOR
291 +
292 + # Support column metadata functions.
293 + # https://sqlite.org/c3ref/column_database_name.html
294 + append-cppflags -DSQLITE_ENABLE_COLUMN_METADATA
295 +
296 + # Support dbstat virtual table.
297 + # https://sqlite.org/dbstat.html
298 + append-cppflags -DSQLITE_ENABLE_DBSTAT_VTAB
299 +
300 + # Support comments in output of EXPLAIN.
301 + # https://sqlite.org/compile.html#enable_explain_comments
302 + append-cppflags -DSQLITE_ENABLE_EXPLAIN_COMMENTS
303 +
304 + # Support Full-Text Search versions 3, 4 and 5.
305 + # https://sqlite.org/fts3.html
306 + # https://sqlite.org/fts5.html
307 + append-cppflags -DSQLITE_ENABLE_FTS3 -DSQLITE_ENABLE_FTS3_PARENTHESIS -DSQLITE_ENABLE_FTS4
308 + options+=(--enable-fts5)
309 +
310 + # Support hidden columns.
311 + append-cppflags -DSQLITE_ENABLE_HIDDEN_COLUMNS
312 +
313 + # Support JSON1 extension.
314 + # https://sqlite.org/json1.html
315 + append-cppflags -DSQLITE_ENABLE_JSON1
316 +
317 + # Support memsys5 memory allocator.
318 + # https://sqlite.org/malloc.html#memsys5
319 + append-cppflags -DSQLITE_ENABLE_MEMSYS5
320 +
321 + # Support Resumable Bulk Update extension.
322 + # https://sqlite.org/rbu.html
323 + append-cppflags -DSQLITE_ENABLE_RBU
324 +
325 + # Support R*Trees.
326 + # https://sqlite.org/rtree.html
327 + append-cppflags -DSQLITE_ENABLE_RTREE
328 +
329 + # Support scan status functions.
330 + # https://sqlite.org/c3ref/stmt_scanstatus.html
331 + # https://sqlite.org/c3ref/stmt_scanstatus_reset.html
332 + append-cppflags -DSQLITE_ENABLE_STMT_SCANSTATUS
333 +
334 + # Support Session extension.
335 + # https://sqlite.org/sessionintro.html
336 + options+=(--enable-session)
337 +
338 + # Support unknown() function.
339 + # https://sqlite.org/compile.html#enable_unknown_sql_function
340 + append-cppflags -DSQLITE_ENABLE_UNKNOWN_SQL_FUNCTION
341 +
342 + # Support unlock notification.
343 + # https://sqlite.org/unlock_notify.html
344 + append-cppflags -DSQLITE_ENABLE_UNLOCK_NOTIFY
345 +
346 + # Support soundex() function.
347 + # https://sqlite.org/lang_corefunc.html#soundex
348 + append-cppflags -DSQLITE_SOUNDEX
349 +
350 + # debug USE flag.
351 + if full_tarball; then
352 + options+=($(use_enable debug))
353 + else
354 + if use debug; then
355 + append-cppflags -DSQLITE_DEBUG
356 + else
357 + append-cppflags -DNDEBUG
358 + fi
359 + fi
360 +
361 + # icu USE flag.
362 + if use icu; then
363 + # Support ICU extension.
364 + # https://sqlite.org/compile.html#enable_icu
365 + append-cppflags -DSQLITE_ENABLE_ICU
366 + if full_tarball; then
367 + sed -e "s/^TLIBS = @LIBS@/& -licui18n -licuuc/" -i Makefile.in || die "sed failed"
368 + else
369 + sed -e "s/^LIBS = @LIBS@/& -licui18n -licuuc/" -i Makefile.in || die "sed failed"
370 + fi
371 + fi
372 +
373 + # readline USE flag.
374 + options+=(
375 + --disable-editline
376 + $(use_enable readline)
377 + )
378 + if full_tarball && use readline; then
379 + options+=(--with-readline-inc="-I${EPREFIX}/usr/include/readline")
380 + fi
381 +
382 + # secure-delete USE flag.
383 + if use secure-delete; then
384 + # Enable secure_delete pragma by default.
385 + # https://sqlite.org/pragma.html#pragma_secure_delete
386 + append-cppflags -DSQLITE_SECURE_DELETE
387 + fi
388 +
389 + # static-libs USE flag.
390 + options+=($(use_enable static-libs static))
391 +
392 + # tcl, test, tools USE flags.
393 + if full_tarball; then
394 + options+=(--enable-tcl)
395 + fi
396 +
397 + if [[ "${CHOST}" == *-mint* ]]; then
398 + append-cppflags -DSQLITE_OMIT_WAL
399 + fi
400 +
401 + econf "${options[@]}"
402 +}
403 +
404 +multilib_src_compile() {
405 + emake HAVE_TCL="$(usex tcl 1 "")" TCLLIBDIR="${EPREFIX}/usr/$(get_libdir)/${P}"
406 +
407 + if use tools && multilib_is_native_abi; then
408 + emake changeset dbdump dbhash rbu scrub showdb showjournal showstat4 showwal sqldiff sqlite3_analyzer
409 + fi
410 +}
411 +
412 +multilib_src_test() {
413 + if [[ "${EUID}" -eq 0 ]]; then
414 + ewarn "Skipping tests due to root permissions"
415 + return
416 + fi
417 +
418 + emake HAVE_TCL="$(usex tcl 1 "")" $(use debug && echo fulltest || echo test)
419 +}
420 +
421 +multilib_src_install() {
422 + emake DESTDIR="${D}" HAVE_TCL="$(usex tcl 1 "")" TCLLIBDIR="${EPREFIX}/usr/$(get_libdir)/${P}" install
423 +
424 + if use tools && multilib_is_native_abi; then
425 + install_tool() {
426 + if [[ -f ".libs/${1}" ]]; then
427 + newbin ".libs/${1}" "${2}"
428 + else
429 + newbin "${1}" "${2}"
430 + fi
431 + }
432 +
433 + install_tool changeset sqlite3-changeset
434 + install_tool dbdump sqlite3-db-dump
435 + install_tool dbhash sqlite3-db-hash
436 + install_tool rbu sqlite3-rbu
437 + install_tool scrub sqlite3-scrub
438 + install_tool showdb sqlite3-show-db
439 + install_tool showjournal sqlite3-show-journal
440 + install_tool showstat4 sqlite3-show-stat4
441 + install_tool showwal sqlite3-show-wal
442 + install_tool sqldiff sqlite3-diff
443 + install_tool sqlite3_analyzer sqlite3-analyzer
444 +
445 + unset -f install_tool
446 + fi
447 +}
448 +
449 +multilib_src_install_all() {
450 + prune_libtool_files
451 +
452 + doman sqlite3.1
453 +
454 + if use doc; then
455 + rm "${WORKDIR}/${PN}-doc-${DOC_PV}/"*.{db,txt}
456 + (
457 + docinto html
458 + dodoc -r "${WORKDIR}/${PN}-doc-${DOC_PV}/"*
459 + )
460 + fi
461 +}