Sync with portage [Thu Jul 30 08:54:59 MSK 2020].

develop 1732
root 4 years ago
parent 256f446c8d
commit 7405307b23

Binary file not shown.

Binary file not shown.

@ -13,6 +13,6 @@ S="${WORKDIR}/${PN}-${P}"
LICENSE="Apache-2.0"
SLOT="0/1"
KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~ppc ppc64 ~s390 sparc x86 ~amd64-linux ~x86-linux"
KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ppc ppc64 ~s390 sparc x86 ~amd64-linux ~x86-linux"
DOCS=( CONTRIBUTORS README README.zopflipng )

Binary file not shown.

@ -11,7 +11,7 @@ SRC_URI="https://gitweb.gentoo.org/proj/${PN}.git/snapshot/${P}.tar.gz"
LICENSE="GPL-2"
SLOT="0"
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"
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"
RDEPEND="app-admin/eselect"

Binary file not shown.

@ -13,7 +13,7 @@ SRC_URI="https://github.com/tmux-python/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.
LICENSE="MIT"
SLOT="0"
KEYWORDS="~amd64 ~arm ~x86"
KEYWORDS="~amd64 ~arm ~ppc64 ~x86"
IUSE="test"
RDEPEND="

Binary file not shown.

@ -12,7 +12,7 @@ SRC_URI="https://github.com/rrthomas/recode/releases/download/v${PV}/${P}.tar.gz
LICENSE="GPL-2"
# librecode soname version
SLOT="0/3"
KEYWORDS="~alpha amd64 arm arm64 ~hppa ~ia64 ~m68k ~mips ppc ppc64 ~s390 ~sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~x86-solaris"
KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~m68k ~mips ppc ppc64 ~s390 sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~x86-solaris"
IUSE="nls static-libs"
DEPEND="sys-devel/flex"

@ -14,7 +14,7 @@ SRC_URI="https://github.com/Shoobx/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz"
LICENSE="MIT"
SLOT="0"
KEYWORDS="~alpha amd64 ~ia64 ~ppc ~sparc x86 ~x86-linux"
KEYWORDS="~alpha amd64 ~ia64 ppc ~sparc x86 ~x86-linux"
RDEPEND="dev-python/lxml[${PYTHON_USEDEP}]
dev-python/six[${PYTHON_USEDEP}]"

Binary file not shown.

@ -1,6 +1,6 @@
DIST mariadb-10.1.38.tar.gz 63535685 BLAKE2B c179ea2f60287c2bc1c0d1c47ae989ac2653a24063e8344cef2f3062fc6798e18b969e8f9aa8287104ce2518e6c644cb8d3a4650b5a0bc5dfde973e76e618955 SHA512 184582f3a902a989ba3d9c4d21288c014c8b469adbbb4cbabc621c5006022cef29baed8c1140ed4476b124da83b76dfa414295ed0c3374be826e75aca953a77b
DIST mariadb-10.1.43.tar.gz 63635313 BLAKE2B 60617d3021bb478633a995b93a3659a287ecab49bb1997efc430e2f453a8145307f0db02799b43560a51c92ef528060f93fb82fd0362ea34052f68590144bff0 SHA512 47e9693c6c1d25d2c3541efe001569c17e70721edcbfc3d0ccc96f3638820123436c18d2cbc3c2ad252adf1eda446feff0370eb97f9e57b6711757ac899b47e8
DIST mariadb-10.1.45-patches-03.tar.xz 8400 BLAKE2B fe5d04147c3d51877af55c44039d6b480dab1764bfb28a4d7e5d233fef9799a2df2d45880abcbf316ef023e10ecd6aab5be0f2b6b79311f77cd9eae069cae838 SHA512 6e57b5685bdf441ef89391e22f87194095d3819b9c0622991d44707105331881ebad534e0c312d8d4f0e1e32efab12284a8c457c8ff31d23cfd2221565d8d1cf
DIST mariadb-10.1.45-patches-04.tar.xz 8808 BLAKE2B 79b6ad86665b6ceea990813c1b60937283ccfd572e5aef095df9951fac0a35e10b7cab002a18adcdb4b643a4d881c57ed468a15fc2fe8f0b9755dc07c2c81fc6 SHA512 eba4c39a275a27faec01dcefd36635fb8ed4f9d651e244420ce0856932378196b9daa98c9de339dc84c3e07fb77fda27c2aa46930c741a1c4c53057b4f9b86c6
DIST mariadb-10.1.45.tar.gz 63673824 BLAKE2B 002aedf61282244905256757fe18eebe67f8a05d45496eee4804e5fba9edf58ece15188d6537ed45245b9342bc514376727c91261ec3f3a3d809c569c84a63de SHA512 708daf6cf98a914ca378e3461f3431f13d6274e20ef37de239e5d90db58215c50bfbc450e6b3b00d847cc819ab9de2bc780831009581e43db38d63397a417ace
DIST mariadb-10.2.22.tar.gz 71907765 BLAKE2B e7781a9e1bb0becca543ebb0b9e03912fbafa9de45bbd5c7232f92d29b934148dd124ad462bf8aa5aec2e4ee0bf75a03fae5e5fe97a77e1d93095052a577c14b SHA512 cd61d0c2d528b23b975e6ea142560d9b9ebff7ecda6fa9b3659b25b3406e8cc925918f4c3bb0e200ddb8d0520bcaa4d4f70d245b4731896f9ba2f1bdf0a817b2
DIST mariadb-10.2.29.tar.gz 73087972 BLAKE2B aa3fe880f00b02846b26f16fcd37d18ebe217a2c9680c8c535042d2759852c929cd649d662c6a2bc603d934a6ba770ef945752c99d150f539e1fdd0d9be0ad51 SHA512 cee4e0d1a2b203cadaaa5678c5ce17302f18ffa55d07c8329392b1ea84740340c006eb9ab5920beef80835c2a399d5fffca409b8288e10ae62d290af62ec4ab8

@ -12,7 +12,7 @@ inherit eutils systemd flag-o-matic prefix toolchain-funcs \
multiprocessing java-pkg-opt-2 cmake-utils multilib-build
# Patch version
PATCH_SET="https://dev.gentoo.org/~whissi/dist/${PN}/${PN}-10.1.45-patches-03.tar.xz"
PATCH_SET="https://dev.gentoo.org/~whissi/dist/${PN}/${PN}-10.1.45-patches-04.tar.xz"
SRC_URI="https://downloads.mariadb.org/interstitial/${P}/source/${P}.tar.gz
${PATCH_SET}"

@ -1,5 +1,2 @@
DIST sqlite-autoconf-3310100.tar.gz 2887243 BLAKE2B ef5d40b6e6c59a51ae95368eb9f6a938188813f89d5328ea1c1180ef35f124c14b3e83b0832ae5c2fa24cc2df352f1b0ea5f20b64d0762d50a700d9895f9a12e SHA512 d85250ba5f78f0c918880f663741709aba662192f04888b2324a0df17affdf5b8540e8428c6c7315119806e7adad758ea281c9b403c0ad94ac6a9bd1b93fd617
DIST sqlite-doc-3310100.zip 9600405 BLAKE2B 324fb7a0a38bc56476e41504c14996e9d5d83ac659403991515413d49f5ee3aad064ccece25f52b6041ef26bf23f320a9be1b6b02c5fbe96c36372107f54fc2e SHA512 5572e2c2dac30c014ef9cd60a620b7a7bb610f91a47e2890c0641540d39b9d5ce0e914ee697583130317633918b7827e2612a7cbc024f5bd6aa22ad28a78b56b
DIST sqlite-doc-3320300.zip 9772933 BLAKE2B efd72c18d0398c103e3f9c4cfeb03e7794fd69691b1bcea95b74a0c5d8af22aa13abc84ce8dc5864b5f4cb79be239433933b4daca34d1adfcc6f31ce2cde66bf SHA512 af9dca970b4c03c058d7d1cd55a3d11fa4b112dccac942b8660d82a7e9ba2956963fcb429eedfdc85915637c102e1f904ace98c8e0455c4120422bbd9f2f3cd0
DIST sqlite-src-3310100.zip 12510166 BLAKE2B a856695e8552b8b4dcb28452fdbd48305fdb9072f9d6587f4b1f4445daf386e920eb936dcb50fdfe41a49f84b26a7c5fedcffea5acf3ba3fa935c36695d4b8ee SHA512 af92a00877bcd90372d6f83a27fea12b4fe8d1155b223a6bccbccc31bb8e3d2269cd9e68f329bc55f70d1068ccbf220ff5abccea6f593fd7a3a4bdd732d1cdbe
DIST sqlite-src-3320300.zip 12461750 BLAKE2B 59cce74d284191cfc69ac09b6014701ddd2b7b3d7ebaad5da4ad71cc200e70285b3b201ff174819aa8dde5f610589d7947f547450334f0f17149014078316185 SHA512 7e027c7163a760fb9b6dbfd2e4ccffb39d4972280583fb0d7f8390017101dfed3b12a36653b3130a548ae4d04c6abb11c0a1921b6f09c54c6ae1e72fbdcb2fd4

@ -1,14 +0,0 @@
Fix building with dlopen() not available.
--- /configure.ac
+++ /configure.ac
@@ -102,6 +102,9 @@
[], [enable_dynamic_extensions=yes])
if test x"$enable_dynamic_extensions" != "xno"; then
AC_SEARCH_LIBS(dlopen, dl)
+ if test "${ac_cv_search_dlopen}" = "no"; then
+ BUILD_CFLAGS="$BUILD_CFLAGS -DSQLITE_OMIT_LOAD_EXTENSION=1"
+ fi
else
BUILD_CFLAGS="$BUILD_CFLAGS -DSQLITE_OMIT_LOAD_EXTENSION=1"
fi

@ -1,466 +0,0 @@
Move some code to libsqlite3.so to avoid duplication.
Link executables against libsqlite3.so.
Increase timeout for fuzzcheck.
Fix building with dlopen() not available.
--- /Makefile.in
+++ /Makefile.in
@@ -311,6 +311,9 @@
# Source code for extensions
#
SRC += \
+ $(TOP)/ext/expert/sqlite3expert.c \
+ $(TOP)/ext/expert/sqlite3expert.h
+SRC += \
$(TOP)/ext/fts1/fts1.c \
$(TOP)/ext/fts1/fts1.h \
$(TOP)/ext/fts1/fts1_hash.c \
@@ -363,8 +366,12 @@
$(TOP)/ext/rbu/sqlite3rbu.h \
$(TOP)/ext/rbu/sqlite3rbu.c
SRC += \
+ $(TOP)/ext/misc/appendvfs.c \
+ $(TOP)/ext/misc/dbdata.c \
$(TOP)/ext/misc/json1.c \
- $(TOP)/ext/misc/stmt.c
+ $(TOP)/ext/misc/sqlar.c \
+ $(TOP)/ext/misc/stmt.c \
+ $(TOP)/ext/misc/zipfile.c
# Generated source code files
#
@@ -435,7 +442,6 @@
# Statically linked extensions
#
TESTSRC += \
- $(TOP)/ext/expert/sqlite3expert.c \
$(TOP)/ext/expert/test_expert.c \
$(TOP)/ext/misc/amatch.c \
$(TOP)/ext/misc/carray.c \
@@ -461,7 +467,6 @@
$(TOP)/ext/misc/totype.c \
$(TOP)/ext/misc/unionvtab.c \
$(TOP)/ext/misc/wholenumber.c \
- $(TOP)/ext/misc/zipfile.c \
$(TOP)/ext/userauth/userauth.c
# Source code to the library files needed by the test fixture
@@ -639,25 +644,25 @@
libtclsqlite3.la: tclsqlite.lo libsqlite3.la
$(LTLINK) -no-undefined -o $@ tclsqlite.lo \
- libsqlite3.la @TCL_STUB_LIB_SPEC@ $(TLIBS) \
+ libsqlite3.la @TCL_STUB_LIB_SPEC@ \
-rpath "$(TCLLIBDIR)" \
-version-info "8:6:8" \
-avoid-version
-sqlite3$(TEXE): shell.c sqlite3.c
- $(LTLINK) $(READLINE_FLAGS) $(SHELL_OPT) -o $@ \
- shell.c sqlite3.c \
- $(LIBREADLINE) $(TLIBS) -rpath "$(libdir)"
+sqlite3$(TEXE): shell.c libsqlite3.la
+ $(LTLINK) $(READLINE_FLAGS) -o $@ \
+ shell.c libsqlite3.la \
+ $(LIBREADLINE)
-sqldiff$(TEXE): $(TOP)/tool/sqldiff.c sqlite3.lo sqlite3.h
- $(LTLINK) -o $@ $(TOP)/tool/sqldiff.c sqlite3.lo $(TLIBS)
+sqldiff$(TEXE): $(TOP)/tool/sqldiff.c libsqlite3.la
+ $(LTLINK) -o $@ $(TOP)/tool/sqldiff.c libsqlite3.la
-dbhash$(TEXE): $(TOP)/tool/dbhash.c sqlite3.lo sqlite3.h
- $(LTLINK) -o $@ $(TOP)/tool/dbhash.c sqlite3.lo $(TLIBS)
+dbhash$(TEXE): $(TOP)/tool/dbhash.c libsqlite3.la
+ $(LTLINK) -o $@ $(TOP)/tool/dbhash.c libsqlite3.la
-scrub$(TEXE): $(TOP)/ext/misc/scrub.c sqlite3.lo
+scrub$(TEXE): $(TOP)/ext/misc/scrub.c libsqlite3.la
$(LTLINK) -o $@ -I. -DSCRUB_STANDALONE \
- $(TOP)/ext/misc/scrub.c sqlite3.lo $(TLIBS)
+ $(TOP)/ext/misc/scrub.c libsqlite3.la
srcck1$(BEXE): $(TOP)/tool/srcck1.c
$(BCC) -o srcck1$(BEXE) $(TOP)/tool/srcck1.c
@@ -767,7 +772,7 @@
# Rule to build the amalgamation
#
sqlite3.lo: sqlite3.c
- $(LTCOMPILE) $(TEMP_STORE) -c sqlite3.c
+ $(LTCOMPILE) $(SHELL_OPT) $(TEMP_STORE) -c sqlite3.c
# Rules to build the LEMON compiler generator
#
@@ -1064,14 +1069,9 @@
# Source files that go into making shell.c
SHELL_SRC = \
$(TOP)/src/shell.c.in \
- $(TOP)/ext/misc/appendvfs.c \
$(TOP)/ext/misc/shathree.c \
$(TOP)/ext/misc/fileio.c \
$(TOP)/ext/misc/completion.c \
- $(TOP)/ext/misc/sqlar.c \
- $(TOP)/ext/expert/sqlite3expert.c \
- $(TOP)/ext/expert/sqlite3expert.h \
- $(TOP)/ext/misc/zipfile.c \
$(TOP)/ext/misc/memtrace.c \
$(TOP)/src/test_windirent.c
@@ -1239,11 +1239,11 @@
# Fuzz testing
fuzztest: fuzzcheck$(TEXE) $(FUZZDATA) sessionfuzz$(TEXE) $(TOP)/test/sessionfuzz-data1.db
- ./fuzzcheck$(TEXE) $(FUZZDATA)
+ ./fuzzcheck$(TEXE) --timeout 3600 $(FUZZDATA)
./sessionfuzz$(TEXE) run $(TOP)/test/sessionfuzz-data1.db
valgrindfuzz: fuzzcheck$(TEXT) $(FUZZDATA) sessionfuzz$(TEXE) $(TOP)/test/sessionfuzz-data1.db
- valgrind ./fuzzcheck$(TEXE) --cell-size-check --limit-mem 10M --timeout 600 $(FUZZDATA)
+ valgrind ./fuzzcheck$(TEXE) --cell-size-check --limit-mem 10M --timeout 3600 $(FUZZDATA)
valgrind ./sessionfuzz$(TEXE) run $(TOP)/test/sessionfuzz-data1.db
# The veryquick.test TCL tests.
@@ -1274,24 +1274,23 @@
smoketest: $(TESTPROGS) fuzzcheck$(TEXE)
./testfixture$(TEXE) $(TOP)/test/main.test $(TESTOPTS)
-sqlite3_analyzer.c: sqlite3.c $(TOP)/src/tclsqlite.c $(TOP)/tool/spaceanal.tcl $(TOP)/tool/mkccode.tcl $(TOP)/tool/sqlite3_analyzer.c.in
+sqlite3_analyzer.c: $(TOP)/src/tclsqlite.c $(TOP)/tool/spaceanal.tcl $(TOP)/tool/mkccode.tcl $(TOP)/tool/sqlite3_analyzer.c.in
$(TCLSH_CMD) $(TOP)/tool/mkccode.tcl $(TOP)/tool/sqlite3_analyzer.c.in >sqlite3_analyzer.c
-sqlite3_analyzer$(TEXE): sqlite3_analyzer.c
- $(LTLINK) sqlite3_analyzer.c -o $@ $(LIBTCL) $(TLIBS)
+sqlite3_analyzer$(TEXE): sqlite3_analyzer.c libsqlite3.la
+ $(LTLINK) sqlite3_analyzer.c -o $@ libsqlite3.la $(LIBTCL)
-sqltclsh.c: sqlite3.c $(TOP)/src/tclsqlite.c $(TOP)/tool/sqltclsh.tcl $(TOP)/ext/misc/appendvfs.c $(TOP)/tool/mkccode.tcl $(TOP)/tool/sqltclsh.c.in
+sqltclsh.c: $(TOP)/src/tclsqlite.c $(TOP)/tool/sqltclsh.tcl $(TOP)/tool/mkccode.tcl $(TOP)/tool/sqltclsh.c.in
$(TCLSH_CMD) $(TOP)/tool/mkccode.tcl $(TOP)/tool/sqltclsh.c.in >sqltclsh.c
-sqltclsh$(TEXE): sqltclsh.c
- $(LTLINK) sqltclsh.c -o $@ $(LIBTCL) $(TLIBS)
+sqltclsh$(TEXE): sqltclsh.c libsqlite3.la
+ $(LTLINK) sqltclsh.c -o $@ libsqlite3.la $(LIBTCL)
-sqlite3_expert$(TEXE): $(TOP)/ext/expert/sqlite3expert.h $(TOP)/ext/expert/sqlite3expert.c $(TOP)/ext/expert/expert.c sqlite3.c
- $(LTLINK) $(TOP)/ext/expert/sqlite3expert.h $(TOP)/ext/expert/sqlite3expert.c $(TOP)/ext/expert/expert.c sqlite3.c -o sqlite3_expert $(TLIBS)
+sqlite3_expert$(TEXE): $(TOP)/ext/expert/sqlite3expert.h $(TOP)/ext/expert/expert.c libsqlite3.la
+ $(LTLINK) $(TOP)/ext/expert/expert.c -o sqlite3_expert libsqlite3.la
CHECKER_DEPS =\
$(TOP)/tool/mkccode.tcl \
- sqlite3.c \
$(TOP)/src/tclsqlite.c \
$(TOP)/ext/repair/sqlite3_checker.tcl \
$(TOP)/ext/repair/checkindex.c \
@@ -1302,36 +1301,36 @@
sqlite3_checker.c: $(CHECKER_DEPS)
$(TCLSH_CMD) $(TOP)/tool/mkccode.tcl $(TOP)/ext/repair/sqlite3_checker.c.in >$@
-sqlite3_checker$(TEXE): sqlite3_checker.c
- $(LTLINK) sqlite3_checker.c -o $@ $(LIBTCL) $(TLIBS)
+sqlite3_checker$(TEXE): sqlite3_checker.c libsqlite3.la
+ $(LTLINK) sqlite3_checker.c -o $@ libsqlite3.la $(LIBTCL)
-dbdump$(TEXE): $(TOP)/ext/misc/dbdump.c sqlite3.lo
+dbdump$(TEXE): $(TOP)/ext/misc/dbdump.c libsqlite3.la
$(LTLINK) -DDBDUMP_STANDALONE -o $@ \
- $(TOP)/ext/misc/dbdump.c sqlite3.lo $(TLIBS)
+ $(TOP)/ext/misc/dbdump.c libsqlite3.la
-dbtotxt$(TEXE): $(TOP)/tool/dbtotxt.c
- $(LTLINK)-o $@ $(TOP)/tool/dbtotxt.c
+dbtotxt$(TEXE): $(TOP)/tool/dbtotxt.c
+ $(LTLINK) -o $@ $(TOP)/tool/dbtotxt.c
-showdb$(TEXE): $(TOP)/tool/showdb.c sqlite3.lo
- $(LTLINK) -o $@ $(TOP)/tool/showdb.c sqlite3.lo $(TLIBS)
+showdb$(TEXE): $(TOP)/tool/showdb.c libsqlite3.la
+ $(LTLINK) -o $@ $(TOP)/tool/showdb.c libsqlite3.la
-showstat4$(TEXE): $(TOP)/tool/showstat4.c sqlite3.lo
- $(LTLINK) -o $@ $(TOP)/tool/showstat4.c sqlite3.lo $(TLIBS)
+showstat4$(TEXE): $(TOP)/tool/showstat4.c libsqlite3.la
+ $(LTLINK) -o $@ $(TOP)/tool/showstat4.c libsqlite3.la
-showjournal$(TEXE): $(TOP)/tool/showjournal.c sqlite3.lo
- $(LTLINK) -o $@ $(TOP)/tool/showjournal.c sqlite3.lo $(TLIBS)
+showjournal$(TEXE): $(TOP)/tool/showjournal.c
+ $(LTLINK) -o $@ $(TOP)/tool/showjournal.c
-showwal$(TEXE): $(TOP)/tool/showwal.c sqlite3.lo
- $(LTLINK) -o $@ $(TOP)/tool/showwal.c sqlite3.lo $(TLIBS)
+showwal$(TEXE): $(TOP)/tool/showwal.c
+ $(LTLINK) -o $@ $(TOP)/tool/showwal.c
showshm$(TEXE): $(TOP)/tool/showshm.c
$(LTLINK) -o $@ $(TOP)/tool/showshm.c
-index_usage$(TEXE): $(TOP)/tool/index_usage.c sqlite3.lo
- $(LTLINK) $(SHELL_OPT) -o $@ $(TOP)/tool/index_usage.c sqlite3.lo $(TLIBS)
+index_usage$(TEXE): $(TOP)/tool/index_usage.c libsqlite3.la
+ $(LTLINK) -o $@ $(TOP)/tool/index_usage.c libsqlite3.la
-changeset$(TEXE): $(TOP)/ext/session/changeset.c sqlite3.lo
- $(LTLINK) -o $@ $(TOP)/ext/session/changeset.c sqlite3.lo $(TLIBS)
+changeset$(TEXE): $(TOP)/ext/session/changeset.c libsqlite3.la
+ $(LTLINK) -o $@ $(TOP)/ext/session/changeset.c libsqlite3.la
changesetfuzz$(TEXE): $(TOP)/ext/session/changesetfuzz.c sqlite3.lo
$(LTLINK) -o $@ $(TOP)/ext/session/changesetfuzz.c sqlite3.lo $(TLIBS)
@@ -1356,11 +1355,11 @@
kvtest$(TEXE): $(TOP)/test/kvtest.c sqlite3.c
$(LTLINK) $(KV_OPT) -o $@ $(TOP)/test/kvtest.c sqlite3.c $(TLIBS)
-rbu$(EXE): $(TOP)/ext/rbu/rbu.c $(TOP)/ext/rbu/sqlite3rbu.c sqlite3.lo
- $(LTLINK) -I. -o $@ $(TOP)/ext/rbu/rbu.c sqlite3.lo $(TLIBS)
+rbu$(EXE): $(TOP)/ext/rbu/rbu.c libsqlite3.la
+ $(LTLINK) -I. -o $@ $(TOP)/ext/rbu/rbu.c libsqlite3.la
-loadfts$(EXE): $(TOP)/tool/loadfts.c libsqlite3.la
- $(LTLINK) $(TOP)/tool/loadfts.c libsqlite3.la -o $@ $(TLIBS)
+loadfts$(EXE): $(TOP)/tool/loadfts.c libsqlite3.la
+ $(LTLINK) $(TOP)/tool/loadfts.c libsqlite3.la -o $@
# This target will fail if the SQLite amalgamation contains any exported
# symbols that do not begin with "sqlite3_". It is run as part of the
--- /configure.ac
+++ /configure.ac
@@ -587,6 +587,9 @@
if test "${enable_load_extension}" = "yes" ; then
OPT_FEATURE_FLAGS=""
AC_SEARCH_LIBS(dlopen, dl)
+ if test "${ac_cv_search_dlopen}" = "no" ; then
+ OPT_FEATURE_FLAGS="-DSQLITE_OMIT_LOAD_EXTENSION=1"
+ fi
else
OPT_FEATURE_FLAGS="-DSQLITE_OMIT_LOAD_EXTENSION=1"
fi
--- /ext/misc/sqlar.c
+++ /ext/misc/sqlar.c
@@ -14,6 +14,8 @@
** for working with sqlar archives and used by the shell tool's built-in
** sqlar support.
*/
+#ifdef SQLITE_HAVE_ZLIB
+
#include "sqlite3ext.h"
SQLITE_EXTENSION_INIT1
#include <zlib.h>
@@ -121,3 +123,5 @@
}
return rc;
}
+
+#endif /* SQLITE_HAVE_ZLIB */
--- /ext/misc/zipfile.c
+++ /ext/misc/zipfile.c
@@ -24,6 +24,8 @@
** * No support for zip64 extensions
** * Only the "inflate/deflate" (zlib) compression method is supported
*/
+#ifdef SQLITE_HAVE_ZLIB
+
#include "sqlite3ext.h"
SQLITE_EXTENSION_INIT1
#include <stdio.h>
@@ -2186,3 +2188,5 @@
(void)pzErrMsg; /* Unused parameter */
return zipfileRegister(db);
}
+
+#endif /* SQLITE_HAVE_ZLIB */
--- /ext/repair/sqlite3_checker.c.in
+++ /ext/repair/sqlite3_checker.c.in
@@ -2,6 +2,7 @@
** Read an SQLite database file and analyze its space utilization. Generate
** text on standard output.
*/
+#define SQLITE_CORE 1
#define TCLSH_INIT_PROC sqlite3_checker_init_proc
#define SQLITE_ENABLE_DBPAGE_VTAB 1
#define SQLITE_ENABLE_JSON1 1
@@ -14,7 +15,7 @@
#define SQLITE_OMIT_SHARED_CACHE 1
#define SQLITE_DEFAULT_MEMSTATUS 0
#define SQLITE_MAX_EXPR_DEPTH 0
-INCLUDE sqlite3.c
+#include "sqlite3.h"
INCLUDE $ROOT/src/tclsqlite.c
INCLUDE $ROOT/ext/misc/btreeinfo.c
INCLUDE $ROOT/ext/repair/checkindex.c
--- /src/shell.c.in
+++ /src/shell.c.in
@@ -61,6 +61,7 @@
#include <stdio.h>
#include <assert.h>
#include "sqlite3.h"
+#include "ext/expert/sqlite3expert.h"
typedef sqlite3_int64 i64;
typedef sqlite3_uint64 u64;
typedef unsigned char u8;
@@ -127,6 +128,10 @@
# define SHELL_USE_LOCAL_GETLINE 1
#endif
+#ifdef SQLITE_HAVE_ZLIB
+#include <zlib.h>
+#endif
+
#if defined(_WIN32) || defined(WIN32)
# include <io.h>
@@ -939,18 +944,7 @@
INCLUDE ../ext/misc/shathree.c
INCLUDE ../ext/misc/fileio.c
INCLUDE ../ext/misc/completion.c
-INCLUDE ../ext/misc/appendvfs.c
INCLUDE ../ext/misc/memtrace.c
-#ifdef SQLITE_HAVE_ZLIB
-INCLUDE ../ext/misc/zipfile.c
-INCLUDE ../ext/misc/sqlar.c
-#endif
-INCLUDE ../ext/expert/sqlite3expert.h
-INCLUDE ../ext/expert/sqlite3expert.c
-
-#if !defined(SQLITE_OMIT_VIRTUALTABLE) && defined(SQLITE_ENABLE_DBPAGE_VTAB)
-INCLUDE ../ext/misc/dbdata.c
-#endif
#if defined(SQLITE_ENABLE_SESSION)
/*
@@ -4173,10 +4167,13 @@
sqlite3_shathree_init(p->db, 0, 0);
sqlite3_completion_init(p->db, 0, 0);
#if !defined(SQLITE_OMIT_VIRTUALTABLE) && defined(SQLITE_ENABLE_DBPAGE_VTAB)
+ extern int sqlite3_dbdata_init(sqlite3 *, char **, const sqlite3_api_routines *);
sqlite3_dbdata_init(p->db, 0, 0);
#endif
#ifdef SQLITE_HAVE_ZLIB
+ extern int sqlite3_zipfile_init(sqlite3 *, char **, const sqlite3_api_routines *);
sqlite3_zipfile_init(p->db, 0, 0);
+ extern int sqlite3_sqlar_init(sqlite3 *, char **, const sqlite3_api_routines *);
sqlite3_sqlar_init(p->db, 0, 0);
#endif
sqlite3_create_function(p->db, "shell_add_schema", 3, SQLITE_UTF8, 0,
@@ -6176,6 +6173,7 @@
goto end_ar_command;
}
sqlite3_fileio_init(cmd.db, 0, 0);
+ extern int sqlite3_sqlar_init(sqlite3 *, char **, const sqlite3_api_routines *);
sqlite3_sqlar_init(cmd.db, 0, 0);
sqlite3_create_function(cmd.db, "shell_putsnl", 1, SQLITE_UTF8, cmd.p,
shellPutsFunc, 0, 0);
@@ -10354,6 +10352,7 @@
#endif
}
data.out = stdout;
+ extern int sqlite3_appendvfs_init(sqlite3 *, char **, const sqlite3_api_routines *);
sqlite3_appendvfs_init(0,0,0);
/* Go ahead and open the database file if it already exists. If the
--- /test/sessionfuzz.c
+++ /test/sessionfuzz.c
@@ -700,42 +700,6 @@
#include <assert.h>
#include "zlib.h"
-/*
-** Implementation of the "sqlar_uncompress(X,SZ)" SQL function
-**
-** Parameter SZ is interpreted as an integer. If it is less than or
-** equal to zero, then this function returns a copy of X. Or, if
-** SZ is equal to the size of X when interpreted as a blob, also
-** return a copy of X. Otherwise, decompress blob X using zlib
-** utility function uncompress() and return the results (another
-** blob).
-*/
-static void sqlarUncompressFunc(
- sqlite3_context *context,
- int argc,
- sqlite3_value **argv
-){
- uLong nData;
- uLongf sz;
-
- assert( argc==2 );
- sz = sqlite3_value_int(argv[1]);
-
- if( sz<=0 || sz==(nData = sqlite3_value_bytes(argv[0])) ){
- sqlite3_result_value(context, argv[0]);
- }else{
- const Bytef *pData= sqlite3_value_blob(argv[0]);
- Bytef *pOut = sqlite3_malloc(sz);
- if( Z_OK!=uncompress(pOut, &sz, pData, nData) ){
- sqlite3_result_error(context, "error in uncompress()", -1);
- }else{
- sqlite3_result_blob(context, pOut, sz, SQLITE_TRANSIENT);
- }
- sqlite3_free(pOut);
- }
-}
-
-
/* Run a chunk of SQL. If any errors happen, print an error message
** and exit.
*/
--- /tool/mksqlite3c.tcl
+++ /tool/mksqlite3c.tcl
@@ -117,6 +117,7 @@
rtree.h
sqlite3session.h
sqlite3.h
+ sqlite3expert.h
sqlite3ext.h
sqlite3rbu.h
sqliteicu.h
@@ -403,6 +404,11 @@
sqlite3session.c
fts5.c
stmt.c
+ appendvfs.c
+ dbdata.c
+ sqlar.c
+ sqlite3expert.c
+ zipfile.c
} {
copy_file tsrc/$file
}
--- /tool/sqlite3_analyzer.c.in
+++ /tool/sqlite3_analyzer.c.in
@@ -14,9 +14,6 @@
#define SQLITE_DEFAULT_MEMSTATUS 0
#define SQLITE_MAX_EXPR_DEPTH 0
#define SQLITE_OMIT_LOAD_EXTENSION 1
-#ifndef USE_EXTERNAL_SQLITE
-INCLUDE sqlite3.c
-#endif
INCLUDE $ROOT/src/tclsqlite.c
const char *sqlite3_analyzer_init_proc(Tcl_Interp *interp){
--- /tool/sqltclsh.c.in
+++ /tool/sqltclsh.c.in
@@ -27,19 +27,17 @@
#define SQLITE_OMIT_SHARED_CACHE 1
#define SQLITE_DEFAULT_MEMSTATUS 0
#define SQLITE_MAX_EXPR_DEPTH 0
-INCLUDE sqlite3.c
-INCLUDE $ROOT/ext/misc/appendvfs.c
-#ifdef SQLITE_HAVE_ZLIB
-INCLUDE $ROOT/ext/misc/zipfile.c
-INCLUDE $ROOT/ext/misc/sqlar.c
-#endif
+#include "sqlite3.h"
INCLUDE $ROOT/src/tclsqlite.c
const char *sqlite3_tclapp_init_proc(Tcl_Interp *interp){
(void)interp;
+ extern int sqlite3_appendvfs_init(sqlite3 *,char **, const sqlite3_api_routines *);
sqlite3_appendvfs_init(0,0,0);
#ifdef SQLITE_HAVE_ZLIB
+ extern int sqlite3_sqlar_init(sqlite3 *, char **, const sqlite3_api_routines *);
sqlite3_auto_extension((void(*)(void))sqlite3_sqlar_init);
+ extern int sqlite3_zipfile_init(sqlite3 *, char **, const sqlite3_api_routines *);
sqlite3_auto_extension((void(*)(void))sqlite3_zipfile_init);
#endif

@ -1,72 +0,0 @@
https://sqlite.org/cgi/src/info/04885763c4cd00cb
https://sqlite.org/cgi/src/info/b20503aaf5b6595a
--- /ext/fts5/test/fts5matchinfo.test
+++ /ext/fts5/test/fts5matchinfo.test
@@ -500,14 +500,18 @@
INSERT INTO t1 VALUES('c', 'd');
}
+if {$tcl_platform(byteOrder)=="littleEndian"} {
+ set res {X'02000000'}
+} else {
+ set res {X'00000002'}
+}
do_execsql_test 15.1 {
SELECT quote(matchinfo(t1, 'n')) FROM t1 LIMIT 1;
-} {X'02000000'}
-
+} $res
do_execsql_test 15.2 {
DELETE FROM t1_content WHERE rowid=1;
SELECT quote(matchinfo(t1, 'n')) FROM t1 LIMIT 1;
-} {X'02000000'}
+} $res
fts5_aux_test_functions db
do_execsql_test 15.3 {
@@ -517,4 +521,3 @@
}
finish_test
-
--- /src/insert.c
+++ /src/insert.c
@@ -2170,12 +2170,14 @@
x = *sqlite3VdbeGetOp(v, addrConflictCk);
if( x.opcode!=OP_IdxRowid ){
int p2; /* New P2 value for copied conflict check opcode */
+ const char *zP4;
if( sqlite3OpcodeProperty[x.opcode]&OPFLG_JUMP ){
p2 = lblRecheckOk;
}else{
p2 = x.p2;
}
- sqlite3VdbeAddOp4(v, x.opcode, x.p1, p2, x.p3, x.p4.z, x.p4type);
+ zP4 = x.p4type==P4_INT32 ? SQLITE_INT_TO_PTR(x.p4.i) : x.p4.z;
+ sqlite3VdbeAddOp4(v, x.opcode, x.p1, p2, x.p3, zP4, x.p4type);
sqlite3VdbeChangeP5(v, x.p5);
VdbeCoverageIf(v, p2!=x.p2);
}
--- /test/fts4aa.test
+++ /test/fts4aa.test
@@ -229,13 +229,18 @@
# 2019-11-18 https://bugs.chromium.org/p/chromium/issues/detail?id=1025467
db close
sqlite3 db :memory:
+if {$tcl_platform(byteOrder)=="littleEndian"} {
+ set res {X'0200000000000000000000000E0000000E00000001000000010000000100000001000000'}
+} else {
+ set res {X'0000000200000000000000000000000E0000000E00000001000000010000000100000001'}
+}
do_execsql_test fts4aa-6.10 {
CREATE VIRTUAL TABLE f USING fts4();
INSERT INTO f_segdir VALUES (77,91,0,0,'255 77',x'0001308000004d5c4ddddddd4d4d7b4d4d4d614d8019ff4d05000001204d4d2e4d6e4d4d4d4b4d6c4d004d4d4d4d4d4d3d000000004d5d4d4d645d4d004d4d4d4d4d4d4d4d4d454d6910004d05ffff054d646c4d004d5d4d4d4d4d3d000000004d4d4d4d4d4d4d4d4d4d4d69624d4d4d04004d4d4d4d4d604d4ce1404d554d45');
INSERT INTO f_segdir VALUES (77,108,0,0,'255 77',x'0001310000fa64004d4d4d3c5d4d654d4d4d614d8000ff4d05000001204d4d2e4d6e4d4d4dff4d4d4d4d4d4d00104d4d4d4d000000004d4d4d0400311d4d4d4d4d4d4d4d4d4d684d6910004d05ffff054d4d6c4d004d4d4d4d4d4d3d000000004d4d4d4d644d4d4d4d4d4d69624d4d4d03ed4d4d4d4d4d604d4ce1404d550080');
INSERT INTO f_stat VALUES (0,x'80808080100000000064004d4d4d3c4d4d654d4d4d614d8000ff4df6ff1a00204d4d2e4d6e4d4d4d104d4d4d4d4d4d00104d4d4d4d4d4d69574d4d4d000031044d4d4d3e4d4d4c4d05004d6910');
SELECT quote(matchinfo(f,'pnax')) from f where f match '0 1';
-} {X'0200000000000000000000000E0000000E00000001000000010000000100000001000000'}
+} $res
# 2019-11-18 Detect infinite loop in fts3SelectLeaf()
db close

@ -1,163 +0,0 @@
https://sqlite.org/cgi/src/info/9d0d4ab95dc0c56e
https://sqlite.org/cgi/src/info/abc473fb8fb99900
https://sqlite.org/cgi/src/info/5aeb5a2d295e10d5
https://sqlite.org/cgi/src/info/a67cf5b7d37d5b14
https://sqlite.org/cgi/src/info/14d14eb537075c6a
https://sqlite.org/cgi/src/info/c431b3fd8fd0f6a6
--- /src/expr.c
+++ /src/expr.c
@@ -5463,19 +5463,25 @@
case TK_LT:
case TK_LE:
case TK_GT:
- case TK_GE:
+ case TK_GE: {
+ Expr *pLeft = pExpr->pLeft;
+ Expr *pRight = pExpr->pRight;
testcase( pExpr->op==TK_EQ );
testcase( pExpr->op==TK_NE );
testcase( pExpr->op==TK_LT );
testcase( pExpr->op==TK_LE );
testcase( pExpr->op==TK_GT );
testcase( pExpr->op==TK_GE );
- if( (pExpr->pLeft->op==TK_COLUMN && IsVirtual(pExpr->pLeft->y.pTab))
- || (pExpr->pRight->op==TK_COLUMN && IsVirtual(pExpr->pRight->y.pTab))
+ /* The y.pTab=0 assignment in wherecode.c always happens after the
+ ** impliesNotNullRow() test */
+ if( (pLeft->op==TK_COLUMN && ALWAYS(pLeft->y.pTab!=0)
+ && IsVirtual(pLeft->y.pTab))
+ || (pRight->op==TK_COLUMN && ALWAYS(pRight->y.pTab!=0)
+ && IsVirtual(pRight->y.pTab))
){
- return WRC_Prune;
+ return WRC_Prune;
}
-
+ }
default:
return WRC_Continue;
}
--- /src/resolve.c
+++ /src/resolve.c
@@ -1051,7 +1051,7 @@
assert( !ExprHasProperty(pExpr, EP_Reduced) );
/* Handle special cases of "x IS TRUE", "x IS FALSE", "x IS NOT TRUE",
** and "x IS NOT FALSE". */
- if( pRight->op==TK_ID ){
+ if( pRight && pRight->op==TK_ID ){
int rc = resolveExprStep(pWalker, pRight);
if( rc==WRC_Abort ) return WRC_Abort;
if( pRight->op==TK_TRUEFALSE ){
--- /src/select.c
+++ /src/select.c
@@ -2806,6 +2806,7 @@
/* Generate code to take the intersection of the two temporary
** tables.
*/
+ if( rc ) break;
assert( p->pEList );
iBreak = sqlite3VdbeMakeLabel(pParse);
iCont = sqlite3VdbeMakeLabel(pParse);
@@ -5148,7 +5149,7 @@
pNew = sqlite3ExprListAppend(pParse, pNew, pExpr);
sqlite3TokenInit(&sColname, zColname);
sqlite3ExprListSetName(pParse, pNew, &sColname, 0);
- if( pNew && (p->selFlags & SF_NestedFrom)!=0 ){
+ if( pNew && (p->selFlags & SF_NestedFrom)!=0 && !IN_RENAME_OBJECT ){
struct ExprList_item *pX = &pNew->a[pNew->nExpr-1];
sqlite3DbFree(db, pX->zEName);
if( pSub ){
--- /src/sqliteInt.h
+++ /src/sqliteInt.h
@@ -2153,8 +2153,11 @@
*/
#ifndef SQLITE_OMIT_VIRTUALTABLE
# define IsVirtual(X) ((X)->nModuleArg)
+# define ExprIsVtab(X) \
+ ((X)->op==TK_COLUMN && (X)->y.pTab!=0 && (X)->y.pTab->nModuleArg)
#else
# define IsVirtual(X) 0
+# define ExprIsVtab(X) 0
#endif
/*
--- /src/whereexpr.c
+++ /src/whereexpr.c
@@ -377,7 +377,8 @@
** MATCH(expression,vtab_column)
*/
pCol = pList->a[1].pExpr;
- if( pCol->op==TK_COLUMN && IsVirtual(pCol->y.pTab) ){
+ testcase( pCol->op==TK_COLUMN && pCol->y.pTab==0 );
+ if( ExprIsVtab(pCol) ){
for(i=0; i<ArraySize(aOp); i++){
if( sqlite3StrICmp(pExpr->u.zToken, aOp[i].zOp)==0 ){
*peOp2 = aOp[i].eOp2;
@@ -399,7 +400,8 @@
** with function names in an arbitrary case.
*/
pCol = pList->a[0].pExpr;
- if( pCol->op==TK_COLUMN && IsVirtual(pCol->y.pTab) ){
+ testcase( pCol->op==TK_COLUMN && pCol->y.pTab==0 );
+ if( ExprIsVtab(pCol) ){
sqlite3_vtab *pVtab;
sqlite3_module *pMod;
void (*xNotUsed)(sqlite3_context*,int,sqlite3_value**);
@@ -422,10 +424,12 @@
int res = 0;
Expr *pLeft = pExpr->pLeft;
Expr *pRight = pExpr->pRight;
- if( pLeft->op==TK_COLUMN && IsVirtual(pLeft->y.pTab) ){
+ testcase( pLeft->op==TK_COLUMN && pLeft->y.pTab==0 );
+ if( ExprIsVtab(pLeft) ){
res++;
}
- if( pRight && pRight->op==TK_COLUMN && IsVirtual(pRight->y.pTab) ){
+ testcase( pRight && pRight->op==TK_COLUMN && pRight->y.pTab==0 );
+ if( pRight && ExprIsVtab(pRight) ){
res++;
SWAP(Expr*, pLeft, pRight);
}
--- /test/altertab.test
+++ /test/altertab.test
@@ -613,4 +613,21 @@
SELECT sql FROM sqlite_master;
} {{CREATE TABLE t0 (c1 INTEGER, PRIMARY KEY(c1))}}
+# 2020-02-23 ticket f50af3e8a565776b
+reset_db
+do_execsql_test 19.100 {
+ CREATE TABLE t1(x);
+ CREATE VIEW t2 AS SELECT 1 FROM t1, (t1 AS a0, t1);
+ ALTER TABLE t1 RENAME TO t3;
+ SELECT sql FROM sqlite_master;
+} {{CREATE TABLE "t3"(x)} {CREATE VIEW t2 AS SELECT 1 FROM "t3", ("t3" AS a0, "t3")}}
+do_execsql_test 19.110 {
+ INSERT INTO t3(x) VALUES(123);
+ SELECT * FROM t2;
+} {1}
+do_execsql_test 19.120 {
+ INSERT INTO t3(x) VALUES('xyz');
+ SELECT * FROM t2;
+} {1 1 1 1 1 1 1 1}
+
finish_test
--- /test/windowfault.test
+++ /test/windowfault.test
@@ -263,4 +263,15 @@
faultsim_test_result {0 {}}
}
+do_faultsim_test 11 -faults oom* -prep {
+} -body {
+ execsql {
+ VALUES(false),(current_date collate binary)
+ intersect
+ values(count() not like group_concat(cast(cast(0e00 as text) as integer) <= NULL || 0.4e-0 || 0x8 & true ) over () collate rtrim);
+ }
+} -test {
+ faultsim_test_result {0 {}}
+}
+
finish_test

@ -1,20 +0,0 @@
https://sqlite.org/cgi/src/info/04885763c4cd00cb
--- /sqlite3.c
+++ /sqlite3.c
@@ -121302,12 +121302,14 @@
x = *sqlite3VdbeGetOp(v, addrConflictCk);
if( x.opcode!=OP_IdxRowid ){
int p2; /* New P2 value for copied conflict check opcode */
+ const char *zP4;
if( sqlite3OpcodeProperty[x.opcode]&OPFLG_JUMP ){
p2 = lblRecheckOk;
}else{
p2 = x.p2;
}
- sqlite3VdbeAddOp4(v, x.opcode, x.p1, p2, x.p3, x.p4.z, x.p4type);
+ zP4 = x.p4type==P4_INT32 ? SQLITE_INT_TO_PTR(x.p4.i) : x.p4.z;
+ sqlite3VdbeAddOp4(v, x.opcode, x.p1, p2, x.p3, zP4, x.p4type);
sqlite3VdbeChangeP5(v, x.p5);
VdbeCoverageIf(v, p2!=x.p2);
}

@ -1,112 +0,0 @@
https://sqlite.org/cgi/src/info/9d0d4ab95dc0c56e
https://sqlite.org/cgi/src/info/abc473fb8fb99900
https://sqlite.org/cgi/src/info/5aeb5a2d295e10d5
https://sqlite.org/cgi/src/info/a67cf5b7d37d5b14
https://sqlite.org/cgi/src/info/c431b3fd8fd0f6a6
--- /sqlite3.c
+++ /sqlite3.c
@@ -17428,8 +17428,11 @@
*/
#ifndef SQLITE_OMIT_VIRTUALTABLE
# define IsVirtual(X) ((X)->nModuleArg)
+# define ExprIsVtab(X) \
+ ((X)->op==TK_COLUMN && (X)->y.pTab!=0 && (X)->y.pTab->nModuleArg)
#else
# define IsVirtual(X) 0
+# define ExprIsVtab(X) 0
#endif
/*
@@ -97816,7 +97819,7 @@
assert( !ExprHasProperty(pExpr, EP_Reduced) );
/* Handle special cases of "x IS TRUE", "x IS FALSE", "x IS NOT TRUE",
** and "x IS NOT FALSE". */
- if( pRight->op==TK_ID ){
+ if( pRight && pRight->op==TK_ID ){
int rc = resolveExprStep(pWalker, pRight);
if( rc==WRC_Abort ) return WRC_Abort;
if( pRight->op==TK_TRUEFALSE ){
@@ -104133,19 +104136,25 @@
case TK_LT:
case TK_LE:
case TK_GT:
- case TK_GE:
+ case TK_GE: {
+ Expr *pLeft = pExpr->pLeft;
+ Expr *pRight = pExpr->pRight;
testcase( pExpr->op==TK_EQ );
testcase( pExpr->op==TK_NE );
testcase( pExpr->op==TK_LT );
testcase( pExpr->op==TK_LE );
testcase( pExpr->op==TK_GT );
testcase( pExpr->op==TK_GE );
- if( (pExpr->pLeft->op==TK_COLUMN && IsVirtual(pExpr->pLeft->y.pTab))
- || (pExpr->pRight->op==TK_COLUMN && IsVirtual(pExpr->pRight->y.pTab))
+ /* The y.pTab=0 assignment in wherecode.c always happens after the
+ ** impliesNotNullRow() test */
+ if( (pLeft->op==TK_COLUMN && ALWAYS(pLeft->y.pTab!=0)
+ && IsVirtual(pLeft->y.pTab))
+ || (pRight->op==TK_COLUMN && ALWAYS(pRight->y.pTab!=0)
+ && IsVirtual(pRight->y.pTab))
){
- return WRC_Prune;
+ return WRC_Prune;
}
-
+ }
default:
return WRC_Continue;
}
@@ -130673,6 +130682,7 @@
/* Generate code to take the intersection of the two temporary
** tables.
*/
+ if( rc ) break;
assert( p->pEList );
iBreak = sqlite3VdbeMakeLabel(pParse);
iCont = sqlite3VdbeMakeLabel(pParse);
@@ -133015,7 +133025,7 @@
pNew = sqlite3ExprListAppend(pParse, pNew, pExpr);
sqlite3TokenInit(&sColname, zColname);
sqlite3ExprListSetName(pParse, pNew, &sColname, 0);
- if( pNew && (p->selFlags & SF_NestedFrom)!=0 ){
+ if( pNew && (p->selFlags & SF_NestedFrom)!=0 && !IN_RENAME_OBJECT ){
struct ExprList_item *pX = &pNew->a[pNew->nExpr-1];
sqlite3DbFree(db, pX->zEName);
if( pSub ){
@@ -142593,7 +142603,8 @@
** MATCH(expression,vtab_column)
*/
pCol = pList->a[1].pExpr;
- if( pCol->op==TK_COLUMN && IsVirtual(pCol->y.pTab) ){
+ testcase( pCol->op==TK_COLUMN && pCol->y.pTab==0 );
+ if( ExprIsVtab(pCol) ){
for(i=0; i<ArraySize(aOp); i++){
if( sqlite3StrICmp(pExpr->u.zToken, aOp[i].zOp)==0 ){
*peOp2 = aOp[i].eOp2;
@@ -142615,7 +142626,8 @@
** with function names in an arbitrary case.
*/
pCol = pList->a[0].pExpr;
- if( pCol->op==TK_COLUMN && IsVirtual(pCol->y.pTab) ){
+ testcase( pCol->op==TK_COLUMN && pCol->y.pTab==0 );
+ if( ExprIsVtab(pCol) ){
sqlite3_vtab *pVtab;
sqlite3_module *pMod;
void (*xNotUsed)(sqlite3_context*,int,sqlite3_value**);
@@ -142638,10 +142650,12 @@
int res = 0;
Expr *pLeft = pExpr->pLeft;
Expr *pRight = pExpr->pRight;
- if( pLeft->op==TK_COLUMN && IsVirtual(pLeft->y.pTab) ){
+ testcase( pLeft->op==TK_COLUMN && pLeft->y.pTab==0 );
+ if( ExprIsVtab(pLeft) ){
res++;
}
- if( pRight && pRight->op==TK_COLUMN && IsVirtual(pRight->y.pTab) ){
+ testcase( pRight && pRight->op==TK_COLUMN && pRight->y.pTab==0 );
+ if( pRight && ExprIsVtab(pRight) ){
res++;
SWAP(Expr*, pLeft, pRight);
}

@ -0,0 +1,361 @@
https://sqlite.org/src/info/d48af4d2cfff3d5f
https://sqlite.org/src/info/cc888878ea8d5bc7
https://sqlite.org/src/info/be545f85a6ef09cc
https://sqlite.org/src/info/6e0ffa2053124168
https://sqlite.org/src/info/4d0cfb1236884349
https://sqlite.org/src/info/ccff8cb8267d4c56
https://sqlite.org/src/info/5124732370fd53c9
--- /ext/fts3/fts3.c
+++ /ext/fts3/fts3.c
@@ -2068,7 +2068,7 @@
sqlite3_int64 *piPrev, /* IN/OUT: Previous value written to list */
sqlite3_int64 iVal /* Write this value to the list */
){
- assert( iVal-*piPrev > 0 || (*piPrev==0 && iVal==0) );
+ assert_fts3_nc( iVal-*piPrev > 0 || (*piPrev==0 && iVal==0) );
*pp += sqlite3Fts3PutVarint(*pp, iVal-*piPrev);
*piPrev = iVal;
}
@@ -5208,10 +5208,12 @@
);
if( res ){
nNew = (int)(pOut - pPhrase->doclist.pList) - 1;
- assert( pPhrase->doclist.pList[nNew]=='\0' );
- assert( nNew<=pPhrase->doclist.nList && nNew>0 );
- memset(&pPhrase->doclist.pList[nNew], 0, pPhrase->doclist.nList - nNew);
- pPhrase->doclist.nList = nNew;
+ if( nNew>=0 ){
+ assert( pPhrase->doclist.pList[nNew]=='\0' );
+ assert( nNew<=pPhrase->doclist.nList && nNew>0 );
+ memset(&pPhrase->doclist.pList[nNew], 0, pPhrase->doclist.nList - nNew);
+ pPhrase->doclist.nList = nNew;
+ }
*paPoslist = pPhrase->doclist.pList;
*pnToken = pPhrase->nToken;
}
@@ -5563,7 +5565,10 @@
}else
#endif
{
- bHit = (pExpr->bEof==0 && pExpr->iDocid==pCsr->iPrevId);
+ bHit = (
+ pExpr->bEof==0 && pExpr->iDocid==pCsr->iPrevId
+ && pExpr->pPhrase->doclist.nList>0
+ );
}
break;
}
--- /ext/fts3/fts3_write.c
+++ /ext/fts3/fts3_write.c
@@ -341,7 +341,9 @@
** created by merging the oldest :2 segments from absolute level :1. See
** function sqlite3Fts3Incrmerge() for details. */
/* 29 */ "SELECT 2 * total(1 + leaves_end_block - start_block) "
- " FROM %Q.'%q_segdir' WHERE level = ? AND idx < ?",
+ " FROM (SELECT * FROM %Q.'%q_segdir' "
+ " WHERE level = ? ORDER BY idx ASC LIMIT ?"
+ " )",
/* SQL_DELETE_SEGDIR_ENTRY
** Delete the %_segdir entry on absolute level :1 with index :2. */
@@ -2853,6 +2855,19 @@
return SQLITE_OK;
}
+static int fts3GrowSegReaderBuffer(Fts3MultiSegReader *pCsr, int nReq){
+ if( nReq>pCsr->nBuffer ){
+ char *aNew;
+ pCsr->nBuffer = nReq*2;
+ aNew = sqlite3_realloc(pCsr->aBuffer, pCsr->nBuffer);
+ if( !aNew ){
+ return SQLITE_NOMEM;
+ }
+ pCsr->aBuffer = aNew;
+ }
+ return SQLITE_OK;
+}
+
int sqlite3Fts3SegReaderStep(
Fts3Table *p, /* Virtual table handle */
@@ -2987,15 +3002,9 @@
}
nByte = sqlite3Fts3VarintLen(iDelta) + (isRequirePos?nList+1:0);
- if( nDoclist+nByte>pCsr->nBuffer ){
- char *aNew;
- pCsr->nBuffer = (nDoclist+nByte)*2;
- aNew = sqlite3_realloc(pCsr->aBuffer, pCsr->nBuffer);
- if( !aNew ){
- return SQLITE_NOMEM;
- }
- pCsr->aBuffer = aNew;
- }
+
+ rc = fts3GrowSegReaderBuffer(pCsr, nByte+nDoclist);
+ if( rc ) return rc;
if( isFirst ){
char *a = &pCsr->aBuffer[nDoclist];
@@ -3020,6 +3029,9 @@
fts3SegReaderSort(apSegment, nMerge, j, xCmp);
}
if( nDoclist>0 ){
+ rc = fts3GrowSegReaderBuffer(pCsr, nDoclist+FTS3_NODE_PADDING);
+ if( rc ) return rc;
+ memset(&pCsr->aBuffer[nDoclist], 0, FTS3_NODE_PADDING);
pCsr->aDoclist = pCsr->aBuffer;
pCsr->nDoclist = nDoclist;
rc = SQLITE_ROW;
@@ -4288,7 +4300,7 @@
int i;
int nHeight = (int)aRoot[0];
NodeWriter *pNode;
- if( nHeight<1 || nHeight>FTS_MAX_APPENDABLE_HEIGHT ){
+ if( nHeight<1 || nHeight>=FTS_MAX_APPENDABLE_HEIGHT ){
sqlite3_reset(pSelect);
return FTS_CORRUPT_VTAB;
}
--- /src/expr.c
+++ /src/expr.c
@@ -4272,7 +4272,9 @@
int nCol;
testcase( op==TK_EXISTS );
testcase( op==TK_SELECT );
- if( op==TK_SELECT && (nCol = pExpr->x.pSelect->pEList->nExpr)!=1 ){
+ if( pParse->db->mallocFailed ){
+ return 0;
+ }else if( op==TK_SELECT && (nCol = pExpr->x.pSelect->pEList->nExpr)!=1 ){
sqlite3SubselectError(pParse, nCol, 1);
}else{
return sqlite3CodeSubselect(pParse, pExpr);
--- /test/fts3corrupt4.test
+++ /test/fts3corrupt4.test
@@ -6123,4 +6123,163 @@
SELECT offsets(t1) FROM t1 WHERE t1 MATCH 'rtree ner "json1^enable"';
}
+#-------------------------------------------------------------------------
+do_execsql_test 42.1 {
+ CREATE VIRTUAL TABLE f USING fts3(a, b);
+}
+do_execsql_test 42.2 {
+ INSERT INTO f_segdir VALUES(0,2,1111,0,0,X'00');
+ INSERT INTO f_segdir VALUES(0,3,0 ,0,0,X'00013003010200');
+}
+do_execsql_test 42.3 {
+ INSERT INTO f(f) VALUES ('merge=107,2');
+}
+
+#-------------------------------------------------------------------------
+reset_db
+set saved $sqlite_fts3_enable_parentheses
+set sqlite_fts3_enable_parentheses 1
+do_execsql_test 43.1 {
+ CREATE VIRTUAL TABLE def USING fts3(xyz);
+ INSERT INTO def_segdir VALUES(0,0,0,0,0, X'0001310301c9000103323334050d81');
+} {}
+
+do_execsql_test 43.2 {
+ SELECT rowid FROM def WHERE def MATCH '1 NEAR 1'
+} {1}
+
+set sqlite_fts3_enable_parentheses $saved
+
+#-------------------------------------------------------------------------
+reset_db
+do_execsql_test 44.1 {
+ CREATE VIRTUAL TABLE t0 USING fts3(col0 INTEGER PRIMARY KEY,col1 VARCHAR(8),col2 BINARY,col3 BINARY);
+ INSERT INTO t0_content VALUES(0,NULL,NULL,NULL,NULL);
+ INSERT INTO t0_segdir VALUES(0,0,0,0,'0 42',X'00013103010200010332333405010201ba00000461616161050101020200000462626262050101030200');
+}
+
+do_execsql_test 44.2 {
+ SELECT matchinfo(t0, t0) IS NULL FROM t0 WHERE t0 MATCH '1*'
+} {0}
+
+#-------------------------------------------------------------------------
+#
+reset_db
+do_test 45.0 {
+ sqlite3 db {}
+ db deserialize [decode_hexdb {
+.open --hexdb
+| size 24576 pagesize 4096 filename crash-65c98512cc9e49.db
+| page 1 offset 0
+| 0: 53 51 4c 69 74 65 20 66 6f 72 6d 61 74 20 33 00 SQLite format 3.
+| 16: 10 00 01 01 00 40 20 20 00 00 00 00 00 00 00 06 .....@ ........
+| 96: 00 00 00 00 0d 0e fc 00 06 0d bc 00 0f ca 0f 6c ...............l
+| 112: 0f 04 0e 13 0e c9 0d bc 00 00 00 00 00 00 00 00 ................
+| 3504: 00 00 00 00 00 00 00 00 00 00 00 00 55 06 07 17 ............U...
+| 3520: 1b 1b 01 81 01 74 61 62 6c 65 78 31 5f 73 74 61 .....tablex1_sta
+| 3536: 74 78 31 5f 73 74 61 74 06 43 52 45 41 54 45 20 tx1_stat.CREATE
+| 3552: 54 41 42 4c 45 20 27 78 31 5f 73 74 61 74 27 28 TABLE 'x1_stat'(
+| 3568: 69 64 20 49 4e 54 45 47 45 52 20 50 52 49 4d 41 id INTEGER PRIMA
+| 3584: 52 59 20 4b 45 59 2c 20 76 61 6c 75 65 20 42 4c RY KEY, value BL
+| 3600: 41 82 29 81 33 04 07 17 1f 1f 01 82 35 74 61 62 A.).3.......5tab
+| 3616: 6c 65 78 31 5f 73 65 67 64 69 72 78 31 5f 73 65 lex1_segdirx1_se
+| 3632: 67 64 69 72 04 43 52 45 41 54 45 20 54 41 42 4c gdir.CREATE TABL
+| 3648: 45 20 27 78 31 5f 73 65 67 64 69 72 27 28 6c 65 E 'x1_segdir'(le
+| 3664: 76 65 6c 20 49 4e 54 45 47 45 52 2c 69 64 78 20 vel INTEGER,idx
+| 3680: 49 4e 54 45 47 45 52 2c 73 74 61 72 74 5f 62 6c INTEGER,start_bl
+| 3696: 6f 63 6b 20 49 4e 54 45 47 45 52 2c 6c 65 61 76 ock INTEGER,leav
+| 3712: 65 73 5f 65 6e 64 5f 62 6c 6f 63 6b 20 49 4e 54 es_end_block INT
+| 3728: 45 47 45 52 2c 65 6e 64 5f 62 6c 6f 63 6b 20 49 EGER,end_block I
+| 3744: 4e 54 45 47 45 52 2c 72 6f 6f 74 20 42 4c 4f 42 NTEGER,root BLOB
+| 3760: 2c 50 52 49 4d 41 52 59 20 4b 45 59 28 6c 65 76 ,PRIMARY KEY(lev
+| 3776: 65 6c 2c 20 69 64 78 29 29 31 05 06 17 45 1f 01 el, idx))1...E..
+| 3792: 00 69 6e 64 65 78 73 71 6c 69 74 65 5f 61 75 74 .indexsqlite_aut
+| 3808: 6f 69 6e 64 65 78 5f 78 31 5f 73 65 67 64 69 72 oindex_x1_segdir
+| 3824: 5f 31 78 31 5f 73 65 67 64 69 72 05 00 00 00 08 _1x1_segdir.....
+| 3840: 60 00 00 00 66 03 07 17 23 23 01 81 13 74 61 62 `...f...##...tab
+| 3856: 6c 65 78 31 5f 73 65 67 6d 65 6e 74 73 78 31 5f lex1_segmentsx1_
+| 3872: 73 65 67 6d 65 6e 74 73 03 43 52 45 41 54 45 20 segments.CREATE
+| 3888: 54 41 42 4c 45 20 27 78 31 5f 73 65 67 6d 65 6e TABLE 'x1_segmen
+| 3904: 74 73 27 28 62 6c 6f 63 6b 69 64 20 49 4e 54 45 ts'(blockid INTE
+| 3920: 47 45 52 20 50 52 49 4d 41 52 59 20 4b 45 59 2c GER PRIMARY KEY,
+| 3936: 20 62 6c 6f 63 6b 20 42 4c 4f 42 29 5c 02 07 17 block BLOB)....
+| 3952: 21 21 01 81 03 74 61 62 6c 65 78 31 5f 63 6f 6e !!...tablex1_con
+| 3968: 74 65 6e 74 78 31 5f 63 6f 6e 74 65 6e 74 02 43 tentx1_content.C
+| 3984: 52 45 41 54 45 20 54 41 42 4c 45 20 27 78 31 5f REATE TABLE 'x1_
+| 4000: 63 6f 6e 74 65 6e 74 27 28 64 6f 63 69 64 20 49 content'(docid I
+| 4016: 4e 54 45 47 45 52 20 50 52 49 4d 41 52 59 20 4b NTEGER PRIMARY K
+| 4032: 45 59 2c 20 27 63 30 78 27 29 34 01 06 17 11 11 EY, 'c0x')4.....
+| 4048: 08 57 74 61 62 6c 65 78 31 78 31 43 52 45 41 54 .Wtablex1x1CREAT
+| 4064: 45 20 56 49 52 54 55 41 4c 20 54 41 42 4c 45 20 E VIRTUAL TABLE
+| 4080: 78 31 20 55 53 49 4e 47 20 66 74 73 33 28 78 29 x1 USING fts3(x)
+| page 2 offset 4096
+| 0: 0d 00 00 00 11 0f 77 f0 0f f8 0f f0 0f e8 0f e0 ......w.........
+| 16: 0f d8 0f d0 0f c8 0f c0 00 00 00 00 00 00 00 00 ................
+| 3952: 00 00 00 00 00 00 00 00 06 11 03 00 13 77 78 79 .............wxy
+| 3968: 06 10 03 00 13 74 75 76 06 0f 03 00 13 71 33 73 .....tuv.....q3s
+| 3984: 06 0e 03 00 13 6e 6f 70 06 0d 03 00 13 6b 6c 6d .....nop.....klm
+| 4000: 06 0c 03 04 c3 68 69 6a 06 0b 03 00 13 65 66 67 .....hij.....efg
+| 4016: 06 0a 03 00 13 62 63 64 06 09 03 00 13 79 7a 61 .....bcd.....yza
+| 4032: 06 08 03 00 13 76 77 78 06 07 03 00 13 73 74 75 .....vwx.....stu
+| 4048: 06 06 03 00 13 70 71 72 06 05 03 00 13 6d 6e 6f .....pqr.....mno
+| 4064: 06 03 03 00 13 6a 6b 6c 06 03 03 00 13 67 68 69 .....jkl.....ghi
+| 4080: 06 02 02 00 03 64 65 66 06 01 03 00 13 61 52 63 .....def.....aRc
+| page 3 offset 8192
+| 0: 0d 00 00 00 03 0f a7 00 0f b5 0f a7 0f fa 01 00 ................
+| 4000: 00 00 00 00 00 00 00 0c 02 03 00 1e 00 03 6b 6c ..............kl
+| 4016: 6d 03 0d 02 00 43 01 04 00 81 0a 00 03 61 62 63 m....C.......abc
+| 4032: 03 0b 32 00 00 03 62 63 64 03 0a 02 00 00 03 64 ..2...bcd......d
+| 4048: 69 26 03 02 02 00 00 03 65 66 67 03 0b 02 00 00 i&......efg.....
+| 4064: 03 67 68 69 03 03 02 00 00 03 68 69 6a 03 0c 02 .ghi......hij...
+| 4080: 00 00 03 6a 6a 2c 03 04 02 00 03 81 00 03 00 00 ...jj,..........
+| page 4 offset 12288
+| 0: 0d 0f 3a 00 05 0f 25 00 0f 9e 0f 88 0f 43 0f 25 ..:...%......C.%
+| 16: 0f 72 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .r..............
+| 3856: 00 00 00 00 00 00 00 00 00 56 01 08 08 13 1e 03 .........V......
+| 3872: 30 20 39 00 03 13 05 07 08 08 18 08 13 1e 30 20 0 9...........0
+| 3888: 39 00 03 77 78 79 03 11 02 00 0f 6c 00 09 01 08 9..wxy.....l....
+| 3904: 08 15 54 27 04 07 09 01 08 08 15 42 02 30 20 33 ..T'.......B.0 3
+| 3920: 36 00 03 6e 6f 70 03 0e 02 00 00 03 71 72 73 03 6..nop......qrs.
+| 3936: 0f 02 00 00 03 74 75 76 03 10 02 00 0f cf b1 06 .....tuv........
+| 3952: 01 08 14 06 07 01 08 09 01 1b 14 02 02 31 32 38 .............128
+| 3968: 20 2d 37 32 10 01 01 6b 14 03 07 09 09 08 08 15 -72...k........
+| 3984: 1e 30 20 33 36 00 03 79 7a 61 03 09 02 00 2f 02 .0 36..yza..../.
+| 4000: 07 09 08 08 08 15 54 30 20 33 36 00 03 6d 6e 6f ......T0 36..mno
+| 4016: 03 05 02 00 00 03 70 71 72 03 06 02 00 00 03 73 ......pqr......s
+| 4032: 74 75 03 07 02 00 00 03 76 77 78 03 08 02 00 00 tu......vwx.....
+| 4048: 00 00 4a 08 08 08 15 54 30 20 33 36 00 03 61 62 ..J....T0 36..ab
+| 4064: 63 03 01 02 00 00 03 64 65 66 03 02 02 00 00 03 c......def......
+| 4080: 67 68 69 03 03 67 00 00 03 6a 6b 6c 03 04 02 00 ghi..g...jkl....
+| page 5 offset 16384
+| 0: 0a 0f e7 00 05 0f da 00 0f e1 0f fa 0f f4 0f ed ................
+| 16: 0f da 0f 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
+| 4048: 00 00 00 00 00 00 00 1a 01 03 06 04 01 08 01 02 ................
+| 4064: 06 05 04 08 08 01 05 00 00 00 06 01 03 06 04 09 ................
+| 4080: 02 01 02 04 05 04 09 09 01 03 05 04 09 08 01 02 ................
+| page 6 offset 20480
+| 0: 0d 00 10 00 01 0f f9 00 0f f9 00 00 00 00 00 00 ................
+| 4080: 00 00 00 00 00 00 00 00 00 05 01 03 00 10 01 03 ................
+| end crash-65c98512cc9e49.db
+}]} {}
+
+do_catchsql_test 45.2 {
+ INSERT INTO x1(x1) VALUES( 'merge=1' )
+} {1 {database disk image is malformed}}
+
+#-------------------------------------------------------------------------
+reset_db
+set saved $sqlite_fts3_enable_parentheses
+set sqlite_fts3_enable_parentheses 1
+do_execsql_test 46.1 {
+ CREATE VIRTUAL TABLE t0 USING fts3(a INTEGER PRIMARY KEY,b,c,d);
+ INSERT INTO t0_segdir VALUES(0,0,0,0,'0 42',X'0001310301c9000103323334050d8000f200000461616161050101020200000462626262050101030200');
+} {}
+
+do_catchsql_test 46.2 {
+ SELECT * FROM t0
+ WHERE t0 MATCH x'2b0a312b0a312a312a2a0b5d0a0b0b0a312a0a0b0b0a312a0b310a392a0b0a27312a2a0b5d0a312a0b310a31315d0b310a312a316d2a0b313b15bceaa50a312a0b0a27312a2a0b5d0a312a0b310a312b0b2a310a312a0b2a0b2a0b2e5d0a0bff313336e34a2a312a0b0a3c310b0a0b4b4b0b4b2a4bec40322b2a0b310a0a312a0a0a0a0a0a0a0a0a0b310a312a2a2a0b5d0a0b0b0a312a0b310a312a0b0a4e4541530b310a5df5ced70a0a0a0a0a4f520a0a0a0a0a0a0a312a0b0a4e4541520b310a5d616161610a0a0a0a4f520a0a0a0a0a0a312b0a312a312a0a0a0a0a0a0a004a0b0a310b220a0b0a310a4a22310a0b0a7e6fe0e0e030e0e0e0e0e01176e02000e0e0e0e0e01131320226310a0b0a310a4a22310a0b0a310a766f8b8b4ee0e0300ae0090909090909090909090909090909090909090909090909090909090909090947aaaa540b09090909090909090909090909090909090909090909090909090909090909fae0e0f2f22164e0e0f273e07fefefef7d6dfafafafa6d6d6d6d';
+} {1 {database disk image is malformed}}
+
+set sqlite_fts3_enable_parentheses $saved
+
finish_test
--- /test/fts3corrupt6.test
+++ /test/fts3corrupt6.test
@@ -0,0 +1,60 @@
+# 2020 June 8
+#
+# The author disclaims copyright to this source code. In place of
+# a legal notice, here is a blessing:
+#
+# May you do good and not evil.
+# May you find forgiveness for yourself and forgive others.
+# May you share freely, never taking more than you give.
+#
+#*************************************************************************
+# This file implements regression tests for SQLite library. The
+# focus of this script is testing the FTS3 module.
+#
+# $Id: fts3aa.test,v 1.1 2007/08/20 17:38:42 shess Exp $
+#
+
+set testdir [file dirname $argv0]
+source $testdir/tester.tcl
+source $testdir/fts3_common.tcl
+set testprefix fts3corrupt6
+
+# If SQLITE_ENABLE_FTS3 is defined, omit this file.
+ifcapable !fts3 {
+ finish_test
+ return
+}
+
+set ::saved_sqlite_fts3_enable_parentheses $::sqlite_fts3_enable_parentheses
+set sqlite_fts3_enable_parentheses 1
+sqlite3_fts3_may_be_corrupt 1
+database_may_be_corrupt
+
+do_execsql_test 1.0 {
+ BEGIN TRANSACTION;
+ CREATE TABLE t_content(col0 INTEGER);
+ PRAGMA writable_schema=ON;
+ CREATE VIRTUAL TABLE t0 USING fts3(col0 INTEGER PRIMARY KEY,col1 VARCHAR(8),col2 BINARY,col3 BINARY);
+ INSERT INTO t0_content VALUES(0,NULL,NULL,NULL,NULL);
+ INSERT INTO t0_segdir VALUES(0,0,0,0,'0 42',X'000131030102000103323334050101010200000461616161050101020200000462626262050101030200');
+ COMMIT;
+}
+
+do_execsql_test 1.1 {
+ SELECT 0+matchinfo(t0,'yxyyxy') FROM t0 WHERE t0 MATCH CAST( x'2b0a312b0a312a312a2a0b5d0a0b0b0a312a0a0b0b0a312a0b310a392a0b0a27312a2a0b5d0a312a0b310a31315d0b310a312a316d2a0b313b15bceaa50a312a0b0a27312a2a0b5d0a312a0b310a312b0b2a310a312a0b2a0b2a0b2e5d0a0bff313336e34a2a312a0b0a3c310b0a0b4b4b0b4b2a4bec40322b2a0b310a0a312a0a0a0a0a0a0a0a0a0b310a312a2a2a0b5d0a0b0b0a312a0b310a312a0b0a4e4541530b310a5df5ced70a0a0a0a0a4f520a0a0a0a0a0a0a312a0b0a4e4541520b310a5d616161610a0a0a0a4f520a0a0a0a0a0a312b0a312a312a0a0a0a0a0a0a004a0b0a310b220a0b0a310a4a22310a0b0a7e6fe0e0e030e0e0e0e0e01176e02000e0e0e0e0e01131320226310a0b0a310a4a22310a0b0a310a766f8b8b4ee0e0300ae0090909090909090909090909090909090909090909090909090909090909090947aaaa540b09090909090909090909090909090909090909090909090909090909090909fae0e0f2f22164e0e0f273e07fefefef7d6dfafafafa6d6d6d6d' AS TEXT);
+} {0}
+
+do_execsql_test 1.2 {
+ CREATE VIRTUAL TABLE t1 USING fts3(col0 INTEGER PRIMARY KEY,col1 VARCHAR(8),col2 BINARY,col3 BINARY);
+ INSERT INTO t1_content VALUES(0,NULL,NULL,NULL,NULL);
+ INSERT INTO t1_segdir VALUES(0,0,0,0,'0 42',X'000131030102000103323334050101010200000461616161050101020200000462626262050101030200');
+}
+
+do_execsql_test 1.3 {
+ SELECT 42+matchinfo(t1,'yxyyxy') FROM t1 WHERE t1 MATCH x'2b0a312b0a312a312a2a0b5d0a0b0b0a312a0a0b0b0a312a0b310a392a0b0a27312a2a0b5d0a312a0b310a31315d0b310a312a316d2a0b313b15bceaa50a312a0b0a27312a2a0b5d0a312a0b310a312b0b2a310a312a0b2a0b2a0b2e5d0a0bff313336e34a2a312a0b0a3c310b0a0b4b4b0b4b2a4bec40322b2a0b310a0a312a0a0a0a0a0a0a0a0a0b310a312a2a2a0b5d0a0b0b0a312a0b310a312a0b0a4e4541530b310a5df5ced70a0a0a0a0a4f520a0a0a0a0a0a0a312a0b0a4e4541520b310a5d616161610a0a0a0a4f520a0a0a0a0a0a312b0a312a312a0a0a0a0a0a0a004a0b0a310b220a0b0a310a4a22310a0b0a7e6fe0e0e030e0e0e0e0e01176e02000e0e0e0e0e01131320226310a0b0a310a4a22310a0b0a310a766f8b8b4ee0e0300ae0090909090909090909090909090909090909090909090909090909090909090947aaaa540b09090909090909090909090909090909090909090909090909090909090909fae0e0f2f22164e0e0f273e07fefefef7d6dfafafafa6d6d6d6d';
+} {42}
+
+set sqlite_fts3_enable_parentheses $saved_sqlite_fts3_enable_parentheses
+finish_test
+
+

@ -0,0 +1,302 @@
https://sqlite.org/src/info/30735432bc33cb95
https://sqlite.org/src/info/1bd18ca35bdbf303
https://sqlite.org/src/info/49da8bdce17ced91
https://sqlite.org/src/info/f25a56c26e28abd4
--- /ext/fts5/fts5_index.c
+++ /ext/fts5/fts5_index.c
@@ -2321,11 +2321,11 @@
}
search_success:
- pIter->iLeafOffset = iOff + nNew;
- if( pIter->iLeafOffset>n || nNew<1 ){
+ if( (i64)iOff+nNew>n || nNew<1 ){
p->rc = FTS5_CORRUPT;
return;
}
+ pIter->iLeafOffset = iOff + nNew;
pIter->iTermLeafOffset = pIter->iLeafOffset;
pIter->iTermLeafPgno = pIter->iLeafPgno;
--- /ext/fts5/test/fts5corrupt3.test
+++ /ext/fts5/test/fts5corrupt3.test
@@ -10108,6 +10108,221 @@
INSERT INTO t1(t1) SELECT x FROM t2;
} {1 {database disk image is malformed}}
+#-------------------------------------------------------------------------
+reset_db
+do_test 69.0 {
+ sqlite3 db {}
+ db deserialize [decode_hexdb {
+.open --hexdb
+| size 32768 pagesize 4096 filename crash-31c462b8b665d0.db
+| page 1 offset 0
+| 0: 53 51 4c 69 74 65 20 66 6f 72 6d 61 74 20 33 00 SQLite format 3.
+| 16: 10 00 01 01 00 40 20 20 00 00 00 00 00 00 00 08 .....@ ........
+| 32: 00 00 00 02 00 00 00 00 00 00 00 00 00 00 00 00 ................
+| 96: 00 00 00 00 0d 0f c7 00 07 0d 92 00 0f 8d 0f 36 ...............6
+| 112: 0e cb 0e 6b 0e 0e 0d b6 0d 92 00 00 00 00 00 00 ...k............
+| 3472: 00 00 22 08 06 17 11 11 01 31 74 61 62 6c 65 74 .........1tablet
+| 3488: 32 74 32 08 43 52 45 41 54 45 20 54 41 42 4c 45 2t2.CREATE TABLE
+| 3504: 20 74 32 28 78 29 56 07 06 17 1f 1f 01 7d 74 61 t2(x)V.......ta
+| 3520: 62 6c 65 74 31 5f 63 6f 6e 66 69 67 74 31 5f 63 blet1_configt1_c
+| 3536: 6f 6e 66 69 67 07 43 52 45 41 54 45 20 54 41 42 onfig.CREATE TAB
+| 3552: 4c 45 20 27 74 31 5f 63 6f 6e 66 69 67 27 28 6b LE 't1_config'(k
+| 3568: 20 50 52 49 4d 41 52 59 20 4b 45 59 2c 20 76 29 PRIMARY KEY, v)
+| 3584: 20 57 49 54 48 4f 55 54 20 52 4f 57 49 44 5b 06 WITHOUT ROWID[.
+| 3600: 07 17 21 21 01 81 01 74 61 62 6c 65 74 31 5f 64 ..!!...tablet1_d
+| 3616: 6f 63 73 69 7a 65 74 31 5f 64 6f 63 73 69 7a 65 ocsizet1_docsize
+| 3632: 06 43 52 45 41 54 45 20 54 41 42 4c 45 20 27 74 .CREATE TABLE 't
+| 3648: 31 5f 64 6f 63 73 69 7a 65 27 28 69 64 20 49 4e 1_docsize'(id IN
+| 3664: 54 45 47 45 52 20 50 52 49 4d 41 52 59 20 4b 45 TEGER PRIMARY KE
+| 3680: 59 2c 20 73 7a 20 42 4c 4f 42 29 5e 05 07 17 21 Y, sz BLOB)^...!
+| 3696: 21 01 81 07 74 61 62 6c 65 74 31 5f 63 6f 6e 74 !...tablet1_cont
+| 3712: 65 6e 74 74 31 5f 63 6f 6e 74 65 6e 74 05 43 52 entt1_content.CR
+| 3728: 45 41 54 45 20 54 41 42 4c 45 20 27 74 31 5f 63 EATE TABLE 't1_c
+| 3744: 6f 6e 74 65 6e 74 27 28 69 64 20 49 4e 54 45 47 ontent'(id INTEG
+| 3760: 45 52 20 50 52 49 4d 41 52 59 20 4b 45 59 2c 20 ER PRIMARY KEY,
+| 3776: 63 39 2c 20 63 31 2c 20 63 32 29 69 04 07 17 19 c9, c1, c2)i....
+| 3792: 19 01 81 2d 74 61 62 6c 65 74 31 5f 69 64 78 74 ...-tablet1_idxt
+| 3808: 31 5f 69 64 78 04 43 52 45 41 54 45 20 54 41 42 1_idx.CREATE TAB
+| 3824: 4c 45 20 27 74 31 5f 69 64 78 27 28 73 65 67 69 LE 't1_idx'(segi
+| 3840: 64 2c 20 74 65 72 6d 2c 20 70 67 6e 6f 2c 20 50 d, term, pgno, P
+| 3856: 52 49 4d 41 52 59 20 4b 45 59 28 73 65 67 69 64 RIMARY KEY(segid
+| 3872: 2c 20 74 65 72 6d 29 29 20 57 49 54 48 4f 55 54 , term)) WITHOUT
+| 3888: 20 52 4f 57 49 44 55 03 07 17 1b 1b 01 81 01 74 ROWIDU........t
+| 3904: 61 62 6c 65 74 31 5f 64 61 74 61 74 31 5f 64 61 ablet1_datat1_da
+| 3920: 74 61 03 43 52 45 41 54 45 20 54 41 42 4c 45 20 ta.CREATE TABLE
+| 3936: 27 74 31 5f 64 61 74 61 27 28 69 64 20 49 4e 54 't1_data'(id INT
+| 3952: 45 47 45 52 20 50 52 49 4d 41 52 59 20 4b 45 59 EGER PRIMARY KEY
+| 3968: 2c 20 62 6c 6f 63 6b 20 42 4c 4f 42 29 38 02 06 , block BLOB)8..
+| 3984: 17 11 11 08 5f 74 61 62 6c 65 74 31 74 31 43 52 ...._tablet1t1CR
+| 4000: 45 41 54 45 20 56 49 52 54 55 41 4c 20 54 41 42 EATE VIRTUAL TAB
+| 4016: 4c 45 20 74 31 20 55 53 49 4e 47 20 66 74 73 35 LE t1 USING fts5
+| 4032: 28 61 2c 62 2c 63 29 00 00 00 00 00 00 00 00 00 (a,b,c).........
+| page 3 offset 8192
+| 0: 0d 00 00 00 03 0c 94 00 0f e6 0f ef 0c 94 00 00 ................
+| 3216: 00 00 00 00 86 4a 84 80 80 80 80 01 04 00 8d 18 .....J..........
+| 3232: 00 00 03 2b 02 30 30 01 02 06 01 02 06 01 02 06 ...+.00.........
+| 3248: 1f 02 03 01 02 03 01 02 03 01 08 32 30 31 36 30 ...........20160
+| 3264: 36 30 39 01 02 07 01 02 07 01 02 07 01 01 34 01 609...........4.
+| 3280: 02 05 01 02 05 01 02 05 01 01 35 01 02 04 01 02 ..........5.....
+| 3296: 04 01 02 04 02 07 30 30 30 30 30 30 30 1c 02 04 ......0000000...
+| 3312: 01 02 04 01 02 04 01 06 62 69 6e 61 72 79 03 06 ........binary..
+| 3328: 01 02 02 03 06 01 02 02 03 06 01 02 02 03 06 01 ................
+| 3344: 02 02 03 06 00 02 02 03 06 01 02 02 03 06 01 02 ................
+| 3360: 02 03 06 01 02 02 03 06 01 02 02 03 06 01 02 02 ................
+| 3376: 03 06 01 02 02 03 06 01 02 02 01 08 63 6f 6d 70 ............comp
+| 3392: 69 6c 65 72 01 02 02 01 02 02 01 02 02 01 06 64 iler...........d
+| 3408: 62 73 74 61 74 07 02 03 01 02 03 01 02 03 02 04 bstat...........
+| 3424: 65 62 75 67 04 02 02 01 02 02 01 02 02 01 06 65 ebug...........e
+| 3440: 6e 61 62 6c 65 07 02 02 01 02 02 01 02 02 01 02 nable...........
+| 3456: 02 01 02 02 01 02 02 01 02 02 01 02 02 01 02 02 ................
+| 3472: 01 02 02 01 02 02 01 02 02 01 02 02 01 02 02 01 ................
+| 3488: 01 02 01 02 02 01 02 02 01 02 02 01 02 02 01 02 ................
+| 3504: 02 01 02 02 02 08 78 74 65 6e 73 69 6f 6e 1f 02 ......xtension..
+| 3520: 04 01 02 04 01 02 04 01 04 66 74 73 34 1a 02 03 .........fts4...
+| 3536: 01 02 03 01 02 03 04 01 35 0d 02 03 01 02 03 01 ........5.......
+| 3552: 02 03 01 03 67 63 63 01 aa 03 01 02 03 01 02 03 ....gcc.........
+| 3568: 02 06 65 6f 70 6f 6c 79 10 02 03 02 02 03 01 02 ..eopoly........
+| 3584: 03 01 05 6a 73 6f 6e 31 13 02 03 01 02 03 01 02 ...json1........
+| 3600: 03 01 04 6c 6f 61 64 1f 02 03 01 02 03 01 02 03 ...load.........
+| 3616: 01 03 6d 61 78 1c 02 02 01 02 02 01 02 02 02 05 ..max...........
+| 3632: 65 6d 6f 72 79 1c 02 03 01 02 03 01 02 03 04 04 emory...........
+| 3648: 73 79 73 35 16 02 03 01 02 03 01 02 03 01 06 6e sys5...........n
+| 3664: 6f 63 61 73 65 02 06 01 02 02 03 06 01 02 02 03 ocase...........
+| 3680: 06 01 02 02 03 06 01 02 02 03 06 01 02 02 03 06 ................
+| 3696: 01 02 02 03 06 01 02 02 03 06 01 02 02 03 06 01 ................
+| 3712: 02 02 03 06 01 02 02 03 06 01 02 02 03 06 01 02 ................
+| 3728: 02 01 04 6f 6d 69 74 1f 02 02 01 02 02 01 02 01 ...omit.........
+| 3744: ff ff ff ff ff ff ff ff f0 00 00 00 00 00 01 02 ................
+| 3760: 58 81 96 4d 01 06 01 02 02 03 06 01 02 02 03 06 X..M............
+| 3776: 01 02 02 03 06 01 02 02 03 06 01 02 02 03 06 01 ................
+| 3792: 02 02 03 06 01 02 02 03 06 01 02 02 03 06 01 02 ................
+| 3808: 02 03 06 01 02 02 03 06 01 02 02 03 06 01 02 02 ................
+| 3824: 01 0a 74 68 72 65 61 64 73 61 66 65 22 02 02 01 ..threadsafe....
+| 3840: 02 02 01 02 02 01 04 76 74 61 62 07 02 04 01 02 .......vtab.....
+| 3856: 04 01 02 04 01 01 78 01 06 01 01 02 01 06 01 01 ......x.........
+| 3872: 02 01 06 01 1e 02 01 06 01 01 02 01 06 01 01 02 ................
+| 3888: 01 06 01 01 02 01 06 01 01 02 01 06 01 01 02 01 ................
+| 3904: 06 01 01 02 01 06 01 01 02 01 06 01 01 02 01 06 ................
+| 3920: 01 01 02 01 06 01 01 02 01 06 01 01 02 01 06 01 ................
+| 3936: 00 02 01 06 01 01 02 01 06 01 01 02 01 06 01 01 ................
+| 3952: 02 01 06 01 01 02 01 06 01 01 02 01 06 01 01 02 ................
+| 3968: 01 06 01 01 02 01 06 01 01 02 01 06 01 01 02 01 ................
+| 3984: 06 01 01 02 01 06 01 01 02 01 06 01 01 02 01 06 ................
+| 4000: 01 01 02 01 06 01 01 02 01 06 01 01 02 01 06 01 ................
+| 4016: 01 02 01 06 01 01 02 01 06 01 01 02 01 06 01 01 ................
+| 4032: 02 01 06 01 01 02 01 06 01 01 02 04 15 13 0c 0c ................
+| 4048: 12 44 13 11 0f 47 13 0f 0b 0e 11 10 0f 0e 10 0f .D...G..........
+| 4064: 44 0f 10 40 15 0f 07 01 03 00 14 24 5a 24 24 0f D..@.......$Z$$.
+| 4080: 0a 03 00 24 00 00 00 00 01 01 01 00 01 01 01 01 ...$............
+| page 4 offset 12288
+| 0: 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
+| 4080: 00 00 00 00 00 00 00 00 00 00 05 04 09 0c 01 02 ................
+| page 5 offset 16384
+| 0: 0d 00 00 00 24 0c 0a 00 0f d8 0f af 0f 86 0f 74 ....$..........t
+| 16: 0f 61 0f 4e 0f 2f 0f 0f 0e ef 0e d7 0e be 0e a5 .a.N./..........
+| 32: 0e 8d 0e 74 0e 5b 0e 40 0e 24 0e 08 0d ef 0d d5 ...t.[.@.$......
+| 48: 0d bb 0d a0 0d 84 0d 68 0d 4f 0d 00 00 00 00 00 .......h.O......
+| 3072: 00 00 00 00 00 00 00 00 00 00 18 24 05 00 25 0f ...........$..%.
+| 3088: 19 54 48 52 45 41 44 53 41 46 45 3d 30 58 42 49 .THREADSAFE=0XBI
+| 3104: 4e 41 52 59 18 23 05 00 25 0f 19 54 48 52 45 41 NARY.#..%..THREA
+| 3120: 44 53 41 46 45 3d 30 58 4e 4f 43 41 53 45 17 22 DSAFE=0XNOCASE..
+| 3136: 05 00 25 0f 17 54 48 52 45 41 44 53 41 46 45 3d ..%..THREADSAFE=
+| 3152: 30 58 52 54 52 49 4d 1f 21 05 00 33 0f 19 4f 4d 0XRTRIM.!..3..OM
+| 3168: 49 54 20 4c 4f 41 44 20 45 58 54 45 4e 53 49 4f IT LOAD EXTENSIO
+| 3184: 4e 58 42 49 4e 41 52 59 1f 20 05 00 33 d3 19 4f NXBINARY. ..3..O
+| 3200: 4d 49 54 28 2c 4f 41 44 b2 04 55 85 44 54 e5 34 MIT(,OAD..U.DT.4
+| 3216: 94 f4 e5 84 e4 f4 34 15 34 51 e1 f0 50 03 30 f1 ......4.4Q..P.0.
+| 3232: 74 f4 d4 95 42 04 c4 f4 14 42 04 55 85 44 54 e5 t...B....B.U.DT.
+| 3248: 34 94 f4 e5 85 25 45 24 94 d1 f1 e0 50 03 30 f1 4....%E$....P.0.
+| 3264: 94 d4 15 82 04 d4 54 d4 f5 25 93 d3 53 03 03 03 ......T..%..S...
+| 3280: 03 03 03 05 84 24 94 e4 15 25 91 f1 d0 50 03 30 .....$...%...P.0
+| 3296: f1 94 d4 15 82 04 d4 54 d4 f5 25 93 d3 53 03 03 .......T..%..S..
+| 3312: 03 03 03 03 05 84 e4 f4 34 15 34 51 e1 c0 50 03 ........4.4Q..P.
+| 3328: 30 f1 74 d4 15 82 04 d4 54 d4 f5 25 93 d3 53 03 0.t.....T..%..S.
+| 3344: 03 03 03 03 03 05 85 25 45 24 94 d1 81 b0 50 02 .......%E$....P.
+| 3360: 50 f1 94 54 e4 14 24 c4 52 05 25 45 24 54 55 84 P..T..$.R.%E$TU.
+| 3376: 24 94 e4 15 25 91 81 a0 50 02 50 f1 94 54 e4 14 $...%...P.P..T..
+| 3392: 24 c4 52 05 25 45 24 54 55 84 e4 f4 34 15 34 51 $.R.%E$TU...4.4Q
+| 3408: 71 90 50 02 50 f1 74 54 e4 14 24 c4 52 05 25 45 q.P.P.tT..$.R.%E
+| 3424: 24 54 55 85 25 45 24 94 d1 a1 80 50 02 90 f1 94 $TU.%E$....P....
+| 3440: 54 e4 14 24 c4 52 04 d4 54 d5 35 95 33 55 84 24 T..$.R..T.5.3U.$
+| 3456: 94 e4 15 25 91 a1 70 50 02 90 f1 94 54 e4 14 24 ...%..pP....T..$
+| 3472: c4 52 04 d4 54 d5 35 95 33 55 84 e4 f4 34 15 34 .R..T.5.3U...4.4
+| 3488: 51 91 60 50 02 90 f1 74 54 e4 14 24 c4 52 04 d4 Q.`P...tT..$.R..
+| 3504: 54 d5 35 95 33 55 85 25 45 24 94 d1 81 50 50 02 T.5.3U.%E$...PP.
+| 3520: 50 f1 94 54 e4 14 24 c4 52 04 a5 34 f4 e3 15 84 P..T..$.R..4....
+| 3536: 24 94 e4 15 25 91 81 40 50 02 50 f1 94 54 e4 14 $...%..@P.P..T..
+| 3552: 24 c4 52 04 a5 34 f4 e3 15 84 e4 f4 34 15 34 51 $.R..4......4.4Q
+| 3568: 71 30 50 02 4f f1 74 54 e4 14 24 c4 52 04 a5 34 q0P.O.tT..$.R..4
+| 3584: f4 e3 15 85 25 45 24 94 d1 a1 20 50 02 90 f1 94 ....%E$... P....
+| 3600: 54 e4 14 24 c4 52 04 74 54 f5 04 f4 c5 95 84 24 T..$.R.tT......$
+| 3616: 94 e4 15 25 91 a1 10 50 02 90 f1 94 54 e4 14 24 ...%...P....T..$
+| 3632: c4 52 04 74 54 f5 04 f4 c5 95 84 e4 f4 34 15 34 .R.tT........4.4
+| 3648: 51 91 00 50 02 90 f1 74 54 e4 14 24 c4 51 f4 74 Q..P...tT..$.Q.t
+| 3664: 54 f5 04 f4 c5 95 85 25 45 24 94 d1 70 f0 50 02 T......%E$..p.P.
+| 3680: 30 f1 94 54 e4 14 24 c5 20 46 54 53 35 58 42 49 0..T..$. FTS5XBI
+| 3696: 4e 41 52 59 17 0e 05 00 23 0f 19 45 4e 41 42 4c NARY....#..ENABL
+| 3712: 45 20 46 54 53 35 58 4f 4f 43 41 53 45 16 0d 05 E FTS5XOOCASE...
+| 3728: 00 23 0f 17 45 4e 41 42 4c 45 20 46 54 53 35 58 .#..ENABLE FTS5X
+| 3744: 52 54 52 49 4d 17 0c 05 00 23 0f 19 45 4e 41 42 RTRIM....#..ENAB
+| 3760: 4c 45 20 46 54 53 34 58 42 49 4e 41 52 59 97 0b LE FTS4XBINARY..
+| 3776: 05 00 23 0f 19 45 4e 41 42 4c 45 20 46 54 53 34 ..#..ENABLE FTS4
+| 3792: 58 4e 4f 43 41 53 45 16 0a 05 00 23 0f 17 45 4e XNOCASE....#..EN
+| 3808: 41 42 4c 45 20 46 54 53 34 58 52 54 52 49 4d 1e ABLE FTS4XRTRIM.
+| 3824: 09 05 00 3e 5f 19 45 4e 41 42 4c 45 20 44 42 53 ...>_.ENABLE DBS
+| 3840: 44 41 54 20 56 54 41 42 58 42 49 4e 41 52 59 1e DAT VTABXBINARY.
+| 3856: 08 05 00 31 0f 19 45 4e 41 42 4c 45 20 44 42 53 ...1..ENABLE DBS
+| 3872: 54 41 54 20 56 54 41 42 58 4e 4f 43 4d e3 45 1d TAT VTABXNOCM.E.
+| 3888: 07 05 00 31 0f 17 45 4e 41 42 4c 45 20 44 42 53 ...1..ENABLE DBS
+| 3904: 54 41 54 20 56 54 41 42 58 52 54 52 49 4d 11 06 TAT VTABXRTRIM..
+| 3920: 05 00 17 0f 19 44 45 42 55 47 58 42 49 4e 41 52 .....DEBUGXBINAR
+| 3936: 59 11 05 05 00 17 0f 19 44 45 42 55 47 58 4e 4f Y.......DEBUGXNO
+| 3952: 43 41 53 45 10 02 02 50 08 5f 17 44 45 42 55 47 CASE...P._.DEBUG
+| 3968: 58 52 54 52 49 4d 27 03 05 00 44 0f 19 43 4f 4d XRTRIM'...D..COM
+| 3984: 50 49 4c 45 52 3d 67 63 63 2d 35 2e 34 2e 30 20 PILER=gcc-5.4.0
+| 4000: 32 30 31 36 30 36 30 39 58 42 49 4e 41 52 59 27 20160609XBINARY'
+| 4016: 02 05 00 43 0f 19 43 4f 4d 50 49 4c 45 52 3d 67 ...C..COMPILER=g
+| 4032: 63 63 2d 35 2e 34 2e 30 20 32 30 31 36 30 36 30 cc-5.4.0 2016060
+| 4048: 39 58 4e 4f 43 41 53 45 26 01 05 00 43 c9 17 43 9XNOCASE&...C..C
+| 4064: 4f 4d 50 49 4c 47 02 3d 67 63 63 2d 35 2e 34 2e OMPILG.=gcc-5.4.
+| 4080: 30 20 32 30 31 36 30 36 30 39 58 52 54 52 49 4d 0 20160609XRTRIM
+| page 6 offset 20480
+| 0: 0d 00 00 00 24 0e e0 00 0f f8 0f f0 0f e8 0f e0 ....$...........
+| 16: 0f d8 0f d0 0f c8 0f c0 0f b8 0f b0 0f a8 0f a0 ................
+| 32: 0f 98 0f 90 0f 88 0f 80 0f 78 0f 70 0f 68 0f 60 .........x.p.h.`
+| 48: 0f 58 0f 50 0f 48 0f 40 0f 38 00 00 00 00 00 00 .X.P.H.@.8......
+| 3808: 06 24 03 00 12 02 01 01 06 23 03 00 12 02 01 01 .$.......#......
+| 3824: 06 22 03 00 12 02 01 01 06 21 03 00 12 03 01 01 .........!......
+| 3840: 06 20 03 00 12 03 01 01 06 1f 03 00 12 03 01 01 . ..............
+| 3856: 06 1e 03 00 12 03 01 01 06 1d 03 00 12 03 01 01 ................
+| 3872: 06 1c 03 00 12 03 01 01 06 1b 03 00 12 02 01 01 ................
+| 3888: 06 1a 03 00 12 02 01 01 06 19 03 00 12 02 01 01 ................
+| 3904: 06 18 03 00 12 02 01 01 06 17 03 00 12 02 01 01 ................
+| 3920: 06 16 03 00 12 02 01 01 06 15 03 00 12 02 01 01 ................
+| 3936: 06 14 03 00 12 02 01 01 06 13 03 00 12 02 01 01 ................
+| 3952: 06 12 03 00 12 02 01 01 06 11 03 00 12 02 01 01 ................
+| 3968: 06 10 03 00 12 02 01 01 06 1f 03 00 12 02 01 01 ................
+| 3984: 06 0e 03 00 12 02 01 01 06 0d 03 00 12 02 01 01 ................
+| 4000: 06 0c 03 00 12 02 01 01 06 0b 03 00 12 02 01 01 ................
+| 4016: 06 0a 03 00 12 02 01 01 06 09 03 00 12 03 01 01 ................
+| 4032: 06 08 03 00 12 03 01 01 06 07 03 00 12 03 01 01 ................
+| 4048: 06 06 03 00 12 01 01 01 06 05 03 00 12 01 01 01 ................
+| 4064: 06 04 03 00 12 01 01 01 06 03 03 00 12 06 01 01 ................
+| 4080: 06 02 03 00 12 06 01 01 06 01 03 00 12 06 01 01 ................
+| page 7 offset 24576
+| 0: 0a 00 00 00 01 0f f4 00 0f f4 00 00 00 00 00 00 ................
+| 4080: 00 00 00 00 0b 03 1b 01 76 65 72 73 69 6f 6e 04 ........version.
+| page 8 offset 28672
+| 0: 0d 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
+| 4048: 00 00 00 00 00 00 11 03 02 2b 69 6e 74 65 67 72 .........+integr
+| 4064: 69 74 79 2d 63 68 65 63 6b 09 00 00 00 00 00 00 ity-check.......
+| end crash-31c462b8b665d0.db
+}]} {}
+
+
+do_catchsql_test 69.2 {
+ SELECT * FROM t1 WHERE a MATCH 'fx*'
+} {1 {database disk image is malformed}}
sqlite3_fts5_may_be_corrupt 0
finish_test
--- /src/btree.c
+++ /src/btree.c
@@ -3886,7 +3886,7 @@
Pgno nFree = get4byte(&pBt->pPage1->aData[36]);
Pgno nFin = finalDbSize(pBt, nOrig, nFree);
- if( nOrig<nFin ){
+ if( nOrig<nFin || nFree>=nOrig ){
rc = SQLITE_CORRUPT_BKPT;
}else if( nFree>0 ){
rc = saveAllCursors(pBt, 0, 0);
@@ -8772,7 +8772,11 @@
assert( pPage->intKey || pX->nKey>=0 );
assert( pPage->leaf || !pPage->intKey );
if( pPage->nFree<0 ){
- rc = btreeComputeFreeSpace(pPage);
+ if( pCur->eState>CURSOR_INVALID ){
+ rc = SQLITE_CORRUPT_BKPT;
+ }else{
+ rc = btreeComputeFreeSpace(pPage);
+ }
if( rc ) return rc;
}
--- /test/corruptL.test
+++ /test/corruptL.test
@@ -1266,5 +1266,30 @@
do_execsql_test 15.1 {
UPDATE c1 SET c= NOT EXISTS(SELECT 1 FROM c1 ORDER BY (SELECT 1 FROM c1 ORDER BY a)) +10 WHERE d BETWEEN 4 AND 7;
} {}
+
+#-------------------------------------------------------------------------
+reset_db
+do_execsql_test 16.0 {
+ CREATE TABLE t1(w, x, y, z, UNIQUE(w, x), UNIQUE(y, z));
+ INSERT INTO t1 VALUES(1, 1, 1, 1);
+
+ CREATE TABLE t1idx(x, y, i INTEGER, PRIMARY KEY(x)) WITHOUT ROWID;
+ INSERT INTO t1idx VALUES(10, NULL, 5);
+
+ PRAGMA writable_schema = 1;
+ UPDATE sqlite_master SET rootpage = (
+ SELECT rootpage FROM sqlite_master WHERE name='t1idx'
+ ) WHERE type = 'index';
+}
+
+db close
+sqlite3 db test.db
+
+do_catchsql_test 16.1 {
+ PRAGMA writable_schema = ON;
+ INSERT INTO t1(rowid, w, x, y, z) VALUES(5, 10, 11, 10, NULL);
+} {1 {database disk image is malformed}}
+
finish_test
+

@ -0,0 +1,220 @@
https://sqlite.org/src/info/14eed318aa9e6e16
https://sqlite.org/src/info/9679c0c61131f0e9
https://sqlite.org/src/info/28515bbbae4fbc26
https://sqlite.org/src/info/892e9191dc8f8056
https://sqlite.org/src/info/270ac1a0f232d755
--- /ext/fts3/fts3.c
+++ /ext/fts3/fts3.c
@@ -5831,7 +5831,8 @@
fts3EvalRestart(pCsr, pRoot, &rc);
do {
fts3EvalNextRow(pCsr, pRoot, &rc);
- assert( pRoot->bEof==0 );
+ assert_fts3_nc( pRoot->bEof==0 );
+ if( pRoot->bEof ) rc = FTS_CORRUPT_VTAB;
}while( pRoot->iDocid!=iDocid && rc==SQLITE_OK );
}
}
--- /ext/misc/appendvfs.c
+++ /ext/misc/appendvfs.c
@@ -439,7 +439,7 @@
p = (ApndFile*)pFile;
memset(p, 0, sizeof(*p));
pSubFile = ORIGFILE(pFile);
- p->base.pMethods = &apnd_io_methods;
+ pFile->pMethods = &apnd_io_methods;
rc = pSubVfs->xOpen(pSubVfs, zName, pSubFile, flags, pOutFlags);
if( rc ) goto apnd_open_done;
rc = pSubFile->pMethods->xFileSize(pSubFile, &sz);
--- /ext/misc/cksumvfs.c
+++ /ext/misc/cksumvfs.c
@@ -634,7 +634,7 @@
p = (CksmFile*)pFile;
memset(p, 0, sizeof(*p));
pSubFile = ORIGFILE(pFile);
- p->base.pMethods = &cksm_io_methods;
+ pFile->pMethods = &cksm_io_methods;
rc = pSubVfs->xOpen(pSubVfs, zName, pSubFile, flags, pOutFlags);
if( rc ) goto cksm_open_done;
if( flags & SQLITE_OPEN_WAL ){
--- /src/date.c
+++ /src/date.c
@@ -1112,8 +1112,8 @@
case 'm': sqlite3_snprintf(3, &z[j],"%02d",x.M); j+=2; break;
case 'M': sqlite3_snprintf(3, &z[j],"%02d",x.m); j+=2; break;
case 's': {
- sqlite3_snprintf(30,&z[j],"%lld",
- (i64)(x.iJD/1000 - 21086676*(i64)10000));
+ i64 iS = (i64)(x.iJD/1000 - 21086676*(i64)10000);
+ sqlite3Int64ToText(iS, &z[j]);
j += sqlite3Strlen30(&z[j]);
break;
}
--- /src/memdb.c
+++ /src/memdb.c
@@ -339,7 +339,7 @@
p->mFlags = SQLITE_DESERIALIZE_RESIZEABLE | SQLITE_DESERIALIZE_FREEONCLOSE;
assert( pOutFlags!=0 ); /* True because flags==SQLITE_OPEN_MAIN_DB */
*pOutFlags = flags | SQLITE_OPEN_MEMORY;
- p->base.pMethods = &memdb_io_methods;
+ pFile->pMethods = &memdb_io_methods;
p->szMax = sqlite3GlobalConfig.mxMemdbSize;
return SQLITE_OK;
}
--- /src/memjournal.c
+++ /src/memjournal.c
@@ -366,7 +366,7 @@
assert( MEMJOURNAL_DFLT_FILECHUNKSIZE==fileChunkSize(p->nChunkSize) );
}
- p->pMethod = (const sqlite3_io_methods*)&MemJournalMethods;
+ pJfd->pMethods = (const sqlite3_io_methods*)&MemJournalMethods;
p->nSpill = nSpill;
p->flags = flags;
p->zJournal = zName;
@@ -392,7 +392,7 @@
int sqlite3JournalCreate(sqlite3_file *pJfd){
int rc = SQLITE_OK;
MemJournal *p = (MemJournal*)pJfd;
- if( p->pMethod==&MemJournalMethods && (
+ if( pJfd->pMethods==&MemJournalMethods && (
#ifdef SQLITE_ENABLE_ATOMIC_WRITE
p->nSpill>0
#else
--- /src/os_unix.c
+++ /src/os_unix.c
@@ -5689,7 +5689,7 @@
if( rc!=SQLITE_OK ){
if( h>=0 ) robust_close(pNew, h, __LINE__);
}else{
- pNew->pMethod = pLockingStyle;
+ pId->pMethods = pLockingStyle;
OpenCounter(+1);
verifyDbFile(pNew);
}
--- /src/os_win.c
+++ /src/os_win.c
@@ -5266,7 +5266,7 @@
}
sqlite3_free(zTmpname);
- pFile->pMethod = pAppData ? pAppData->pMethod : &winIoMethod;
+ id->pMethods = pAppData ? pAppData->pMethod : &winIoMethod;
pFile->pVfs = pVfs;
pFile->h = h;
if( isReadonly ){
--- /src/sqliteInt.h
+++ /src/sqliteInt.h
@@ -4437,6 +4437,7 @@
int sqlite3FixExprList(DbFixer*, ExprList*);
int sqlite3FixTriggerStep(DbFixer*, TriggerStep*);
int sqlite3RealSameAsInt(double,sqlite3_int64);
+void sqlite3Int64ToText(i64,char*);
int sqlite3AtoF(const char *z, double*, int, u8);
int sqlite3GetInt32(const char *, int*);
int sqlite3Atoi(const char*);
--- /src/test_multiplex.c
+++ /src/test_multiplex.c
@@ -591,9 +591,9 @@
if( rc==SQLITE_OK ){
if( pSubOpen->pMethods->iVersion==1 ){
- pMultiplexOpen->base.pMethods = &gMultiplex.sIoMethodsV1;
+ pConn->pMethods = &gMultiplex.sIoMethodsV1;
}else{
- pMultiplexOpen->base.pMethods = &gMultiplex.sIoMethodsV2;
+ pConn->pMethods = &gMultiplex.sIoMethodsV2;
}
}else{
multiplexFreeComponents(pGroup);
--- /src/util.c
+++ /src/util.c
@@ -596,6 +596,30 @@
#endif
/*
+** Render an signed 64-bit integer as text. Store the result in zOut[].
+**
+** The caller must ensure that zOut[] is at least 21 bytes in size.
+*/
+void sqlite3Int64ToText(i64 v, char *zOut){
+ int i;
+ u64 x;
+ char zTemp[22];
+ if( v<0 ){
+ x = (v==SMALLEST_INT64) ? ((u64)1)<<63 : -v;
+ }else{
+ x = v;
+ }
+ i = sizeof(zTemp)-2;
+ zTemp[sizeof(zTemp)-1] = 0;
+ do{
+ zTemp[i--] = (x%10) + '0';
+ x = x/10;
+ }while( x );
+ if( v<0 ) zTemp[i--] = '-';
+ memcpy(zOut, &zTemp[i+1], sizeof(zTemp)-1-i);
+}
+
+/*
** Compare the 19-character string zNum against the text representation
** value 2^63: 9223372036854775808. Return negative, zero, or positive
** if zNum is less than, equal to, or greater than the string.
--- /src/vdbemem.c
+++ /src/vdbemem.c
@@ -104,16 +104,25 @@
static void vdbeMemRenderNum(int sz, char *zBuf, Mem *p){
StrAccum acc;
assert( p->flags & (MEM_Int|MEM_Real|MEM_IntReal) );
- sqlite3StrAccumInit(&acc, 0, zBuf, sz, 0);
+ assert( sz>22 );
if( p->flags & MEM_Int ){
- sqlite3_str_appendf(&acc, "%lld", p->u.i);
- }else if( p->flags & MEM_IntReal ){
- sqlite3_str_appendf(&acc, "%!.15g", (double)p->u.i);
+#if GCC_VERSION>=7000000
+ /* Work-around for GCC bug
+ ** https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96270 */
+ i64 x;
+ assert( (p->flags&MEM_Int)*2==sizeof(x) );
+ memcpy(&x, (char*)&p->u, (p->flags&MEM_Int)*2);
+ sqlite3Int64ToText(x, zBuf);
+#else
+ sqlite3Int64ToText(p->u.i, zBuf);
+#endif
}else{
- sqlite3_str_appendf(&acc, "%!.15g", p->u.r);
+ sqlite3StrAccumInit(&acc, 0, zBuf, sz, 0);
+ sqlite3_str_appendf(&acc, "%!.15g",
+ (p->flags & MEM_IntReal)!=0 ? (double)p->u.i : p->u.r);
+ assert( acc.zText==zBuf && acc.mxAlloc<=0 );
+ zBuf[acc.nChar] = 0; /* Fast version of sqlite3StrAccumFinish(&acc) */
}
- assert( acc.zText==zBuf && acc.mxAlloc<=0 );
- zBuf[acc.nChar] = 0; /* Fast version of sqlite3StrAccumFinish(&acc) */
}
#ifdef SQLITE_DEBUG
--- /test/fts3corrupt4.test
+++ /test/fts3corrupt4.test
@@ -6282,4 +6282,19 @@
set sqlite_fts3_enable_parentheses $saved
+#-------------------------------------------------------------------------
+reset_db
+do_execsql_test 47.1 {
+ CREATE VIRTUAL TABLE t1 USING fts3(a,b,c);
+}
+do_execsql_test 47.2 {
+ INSERT INTO t1_segdir VALUES(0,0,0,0,0,X'000130120106000106000106001f030001030001030000083230313630363039090107000107000107000001340901050001050001050000013509010400010400010400010730303030303030091c0400010400010400000662696e6172793c0301020200030102020003010202000301020200030102020003010202000301020200030102020003010202000301020200030102020003010202000008636f6d70696c657209010200010200010200000664627374617409070300010300010300010465627567090402000102000102000006656e61626c653f07020001020001020001020001020001020001020001020001020001020001020001020001010001020001020001020001020001020001020001020001020001087874656e73696f6e091f0400010400010400000466747334090a0300010300010300030135090d03000103000103000003676363090103000103000103000106656f706f6c790910030001030001030000056a736f6e310913030001030001030000046c6f6164091f030001030001030000036d6178091c02000102000102000105656d6f7279091c03000103000103000304737973350916030001030001030000066e6f636173653c02010202000301020200030102020003010202000301020200030102020003010202000301020200030102020003010202000301020200030102020000046f6d6974091f020001020001020000057274726565091903000103000103000302696d3c01010202000301020200030102020003010202000301020200030102020003010202000301a202000301020200030102020003010202000301020200000a746872656164736166650922020001020001020000047674616209070400010400010400000178b401010101020001010102000101010200010101020001010102000101010200010101020001010102000101010200010101020001010102000101010200010101020001010102000101010200010101020001010102000101010200010101020001010102000101010200010101020001010102000101010200010101020001010102000101010200010101020001010102000101010200010101020001010102000101010200010101020001010102000101010200');
+ INSERT INTO t1_segdir VALUES(0,1,0,0,0,X'0001300425061b000008323031363036303903250700000134032505000001350325040001073030303030303003251a000008636f6d70696c657203250200000664627374617403250a00010465627567032508000006656e61626c650925090504040404040001087874656e73696f6e03251d0000046674733403250d0003013503250f000003676363032503000106656f706f6c790325110000056a736f6e310325130000046c6f616403251c0000036d6178032518000105656d6f7279032519000304737973350325150000046f6d697403251b000005727472656503251700000a7468726561647361666503251e0000047674616333250b00');
+}
+
+do_catchsql_test 47.3 {
+ SELECT matchinfo(t1) FROM t1 WHERE t1 MATCH '"json1 enable"';
+} {1 {database disk image is malformed}}
+
+
finish_test

@ -16,16 +16,13 @@ HOMEPAGE="https://sqlite.org/"
if [[ "${PV}" == "9999" ]]; then
SRC_URI=""
else
SRC_URI="doc? ( https://sqlite.org/2020/${PN}-doc-${DOC_PV}.zip )
tcl? ( https://sqlite.org/2020/${PN}-src-${SRC_PV}.zip )
test? ( https://sqlite.org/2020/${PN}-src-${SRC_PV}.zip )
tools? ( https://sqlite.org/2020/${PN}-src-${SRC_PV}.zip )
!tcl? ( !test? ( !tools? ( https://sqlite.org/2020/${PN}-autoconf-${SRC_PV}.tar.gz ) ) )"
SRC_URI="https://sqlite.org/2020/${PN}-src-${SRC_PV}.zip
doc? ( https://sqlite.org/2020/${PN}-doc-${DOC_PV}.zip )"
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"
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"
@ -36,19 +33,8 @@ 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
)"
BDEPEND="app-arch/unzip
>=dev-lang/tcl-8.6:0"
fi
RDEPEND="sys-libs/zlib:0=[${MULTILIB_USEDEP}]
icu? ( dev-libs/icu:0=[${MULTILIB_USEDEP}] )
@ -58,21 +44,11 @@ RDEPEND="sys-libs/zlib: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
}
if [[ "${PV}" == "9999" ]]; then
S="${WORKDIR}/${PN}"
else
S="${WORKDIR}/${PN}-src-${SRC_PV}"
fi
src_unpack() {
if [[ "${PV}" == "9999" ]]; then
@ -123,30 +99,14 @@ src_unpack() {
}
src_prepare() {
if full_archive; then
eapply "${FILESDIR}/${PN}-3.31.0-full_archive-build.patch"
eapply "${FILESDIR}/${PN}-3.31.1-full_archive-architectures.patch"
eapply "${FILESDIR}/${PN}-3.31.1-full_archive-security_fixes.patch"
eapply "${FILESDIR}/"${PN}-3.32.1-full_archive-build_{1,2}.patch
eapply "${FILESDIR}/"${PN}-3.32.3-backports_{1,2,3}.patch
eapply_user
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 "${FILESDIR}/${PN}-3.31.1-nonfull_archive-architectures.patch"
eapply "${FILESDIR}/${PN}-3.31.1-nonfull_archive-security_fixes.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
# 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"
eautoreconf
@ -158,23 +118,24 @@ multilib_src_configure() {
local options=()
options+=(
--enable-$(full_archive && echo load-extension || echo dynamic-extensions)
--enable-load-extension
--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 bytecode and tables_used virtual tables.
# https://sqlite.org/bytecodevtab.html
append-cppflags -DSQLITE_ENABLE_BYTECODE_VTAB
# 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
# https://sqlite.org/dbpage.html
append-cppflags -DSQLITE_ENABLE_DBPAGE_VTAB
# Support dbstat virtual table.
@ -182,7 +143,6 @@ multilib_src_configure() {
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
@ -251,7 +211,8 @@ multilib_src_configure() {
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.
@ -263,26 +224,14 @@ multilib_src_configure() {
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
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
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
sed -e "s/^TLIBS = @LIBS@/& -licui18n -licuuc/" -i Makefile.in || die "sed failed"
fi
# readline USE flag.
@ -290,7 +239,7 @@ multilib_src_configure() {
--disable-editline
$(use_enable readline)
)
if full_archive && use readline; then
if use readline; then
options+=(--with-readline-inc="-I${ESYSROOT}/usr/include/readline")
fi
@ -305,9 +254,7 @@ multilib_src_configure() {
options+=($(use_enable static-libs static))
# tcl, test, tools USE flags.
if full_archive; then
options+=(--enable-tcl)
fi
options+=(--enable-tcl)
if [[ "${CHOST}" == *-mint* ]]; then
append-cppflags -DSQLITE_OMIT_WAL

Binary file not shown.

@ -1,2 +1 @@
DIST ispc-1.13.0.tar.gz 19202295 BLAKE2B 5fae81429acbda0d65d33e56609d05fb8b5a7db6dd0af5ff779d1e8954f6a98d1fcb0f7ecf0c1b9813630026557c21c2a70bfc87ed75959a8bd24e06fcd2e351 SHA512 d23c127beb9bb17e1ad2509f9ad51dd660c473458b939a6b64ca7f6319b3c2f25318ea2ceac00e4100a059f3f67fb97b6973f18e3432c82ff9691f2a08d15d5d
DIST ispc-1.9.2.tar.gz 19283765 BLAKE2B 500cca8a69a78ad9a21dc1e39dcb3ed01730e78deed61e4871ce5a9761829c80ac7b1b987d8e8a48c34b67ac96692b2c5026cfb5059a32c71e228c73550584eb SHA512 77a66086cbfd6c4dc855b3137a270cc40f24829255639aee5f562b0831c21938157667b20cfadc660cd67525c47e2e73b46692f7a11bf0c834dc60b69d40d76d

@ -1,13 +0,0 @@
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 13e66268..27ff8364 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -137,7 +137,7 @@ set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/bin )
if(CMAKE_BUILD_TYPE)
# Validate build type
- set(CONFIGURATION_TYPES "Debug;Release;RelWithDebInfo")
+ set(CONFIGURATION_TYPES "Debug;Release;RelWithDebInfo;Gentoo")
string(FIND "${CONFIGURATION_TYPES}" "${CMAKE_BUILD_TYPE}" MATCHED_CONFIG)
if (${MATCHED_CONFIG} EQUAL -1)

@ -1,106 +0,0 @@
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 13e66268..27ff8364 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -218,7 +218,7 @@ if (WASM_ENABLED)
list(APPEND ISPC_TARGETS wasm-i32x4)
endif()
-set(CLANG_LIBRARY_LIST clangFrontend clangDriver clangSerialization clangParse clangSema clangAnalysis clangAST clangBasic clangEdit clangLex)
+set(CLANG_LIBRARY_LIST clang clang-cpp)
set(LLVM_COMPONENTS engine ipo bitreader bitwriter instrumentation linker option)
if (${LLVM_VERSION_NUMBER} VERSION_GREATER_EQUAL "10.0.0")
@@ -402,11 +402,8 @@ if (ISPC_USE_ASAN)
endif()
# Link against Clang libraries
-foreach(clangLib ${CLANG_LIBRARY_LIST})
- find_library(${clangLib}Path NAMES ${clangLib} HINTS ${LLVM_LIBRARY_DIRS})
- list(APPEND CLANG_LIBRARY_FULL_PATH_LIST ${${clangLib}Path})
-endforeach()
-target_link_libraries(${PROJECT_NAME} ${CLANG_LIBRARY_FULL_PATH_LIST})
+find_package(Clang REQUIRED)
+target_link_libraries(${PROJECT_NAME} ${CLANG_LIBRARY_LIST})
# Link against LLVM libraries
target_link_libraries(${PROJECT_NAME} ${LLVM_LIBRARY_LIST})
diff --git a/src/llvmutil.cpp b/src/llvmutil.cpp
index 06fab989..57a7130f 100644
--- a/src/llvmutil.cpp
+++ b/src/llvmutil.cpp
@@ -42,6 +42,7 @@
#include <llvm/IR/BasicBlock.h>
#include <llvm/IR/Instructions.h>
#include <llvm/IR/Module.h>
+#include <llvm/Support/raw_ostream.h>
#include <map>
#include <set>
#include <vector>
@@ -1394,7 +1395,7 @@ static void lDumpValue(llvm::Value *v, std::set<llvm::Value *> &done) {
return;
fprintf(stderr, " ");
- v->dump();
+ v->print(llvm::outs(), false);
done.insert(v);
if (inst == NULL)
diff --git a/src/opt.cpp b/src/opt.cpp
index d78ac374..a607594a 100644
--- a/src/opt.cpp
+++ b/src/opt.cpp
@@ -142,7 +142,7 @@ static llvm::Pass *CreateFixBooleanSelectPass();
getenv("FUNC"), strlen(getenv("FUNC")))))) { \
fprintf(stderr, "Start of " NAME "\n"); \
fprintf(stderr, "---------------\n"); \
- bb.dump(); \
+ bb.print(llvm::outs(), false); \
fprintf(stderr, "---------------\n\n"); \
} else /* eat semicolon */
@@ -152,7 +152,7 @@ static llvm::Pass *CreateFixBooleanSelectPass();
getenv("FUNC"), strlen(getenv("FUNC")))))) { \
fprintf(stderr, "End of " NAME " %s\n", modifiedAny ? "** CHANGES **" : ""); \
fprintf(stderr, "---------------\n"); \
- bb.dump(); \
+ bb.print(llvm::outs(), false); \
fprintf(stderr, "---------------\n\n"); \
} else /* eat semicolon */
#else
@@ -453,7 +453,7 @@ void Optimize(llvm::Module *module, int optLevel) {
#ifndef ISPC_NO_DUMPS
if (g->debugPrint) {
printf("*** Code going into optimization ***\n");
- module->dump();
+ module->print(llvm::outs(), nullptr);
}
#endif
DebugPassManager optPM;
@@ -666,7 +666,7 @@ void Optimize(llvm::Module *module, int optLevel) {
#ifndef ISPC_NO_DUMPS
if (g->debugPrint) {
printf("\n*****\nFINAL OUTPUT\n*****\n");
- module->dump();
+ module->print(llvm::outs(), nullptr);
}
#endif
}
@@ -4256,7 +4256,7 @@ char DebugPass::ID = 0;
bool DebugPass::runOnModule(llvm::Module &module) {
fprintf(stderr, "%s", str_output);
fflush(stderr);
- module.dump();
+ module.print(llvm::outs(), nullptr);
return true;
}
@@ -4303,7 +4303,7 @@ void DebugPassFile::run(llvm::Module &module, bool init) {
snprintf(fname, sizeof(fname), "%s_%d_%s.ll", init ? "init" : "ir", pnum, sanitize(std::string(pname)).c_str());
llvm::raw_fd_ostream OS(fname, EC, llvm::sys::fs::F_None);
Assert(!EC && "IR dump file creation failed!");
- module.print(OS, 0);
+ module.print(OS, nullptr);
}
bool DebugPassFile::runOnModule(llvm::Module &module) {

@ -1,13 +0,0 @@
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 13e66268..27ff8364 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -352,7 +352,7 @@ target_include_directories(${PROJECT_NAME} PRIVATE
${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR})
# Compile options
if (UNIX)
- target_compile_options(${PROJECT_NAME} PRIVATE -Wall -Wno-sign-compare -Wno-unused-function -Werror ${LLVM_CPP_FLAGS})
+ target_compile_options(${PROJECT_NAME} PRIVATE -Wall -Wno-sign-compare -Wno-unused-function ${LLVM_CPP_FLAGS})
# Security options
target_compile_options(${PROJECT_NAME} PRIVATE -fstack-protector -fdata-sections -ffunction-sections
-Wformat -Wformat-security -fpie -fwrapv)

@ -48,12 +48,12 @@ src_configure() {
}
src_install() {
dobin ${BUILD_DIR}/bin/ispc
dobin "${BUILD_DIR}"/bin/ispc
dodoc README.md
if use examples; then
insinto "/usr/share/doc/${PF}/examples"
docompress -x "/usr/share/doc/${PF}/examples"
doins -r ${BUILD_DIR}/examples/*
doins -r "${BUILD_DIR}"/examples/*
fi
}

@ -1,52 +0,0 @@
# Copyright 1999-2018 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
EAPI=6
PYTHON_COMPAT=( python2_7 )
inherit toolchain-funcs python-any-r1
DESCRIPTION="Intel SPMD Program Compiler"
HOMEPAGE="https://ispc.github.com/"
if [[ ${PV} = *9999 ]]; then
inherit git-r3
EGIT_REPO_URI="https://github.com/ispc/ispc.git"
KEYWORDS=""
else
SRC_URI="https://github.com/${PN}/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
KEYWORDS="~amd64 ~x86"
fi
LICENSE="BSD BSD-2 UoI-NCSA"
SLOT="0"
IUSE="examples"
RDEPEND="
>=sys-devel/clang-3.0:*
>=sys-devel/llvm-3.0:*
"
DEPEND="
${RDEPEND}
${PYTHON_DEPS}
sys-devel/bison
sys-devel/flex
"
src_compile() {
#make all slient commands ("@") verbose and remove -Werror (ispc/ispc#1295)
sed -e '/^\t@/s/@//' -e 's/-Werror//' -i Makefile || die
emake LDFLAGS="${LDFLAGS}" OPT="${CXXFLAGS}" CXX="$(tc-getCXX)" CPP="$(tc-getCPP)"
}
src_install() {
dobin ispc
dodoc README.rst
if use examples; then
insinto "/usr/share/doc/${PF}/examples"
docompress -x "/usr/share/doc/${PF}/examples"
doins -r examples/*
fi
}

@ -35,9 +35,9 @@ DEPEND="
"
PATCHES=(
"${FILESDIR}/${P}-cmake-gentoo-release.patch"
"${FILESDIR}/${P}-llvm-10.patch"
"${FILESDIR}/${P}-werror.patch"
"${FILESDIR}/${PN}-1.13.0-cmake-gentoo-release.patch"
"${FILESDIR}/${PN}-1.13.0-llvm-10.patch"
"${FILESDIR}/${PN}-1.13.0-werror.patch"
)
src_configure() {
@ -48,12 +48,12 @@ src_configure() {
}
src_install() {
dobin ${BUILD_DIR}/bin/ispc
dobin "${BUILD_DIR}"/bin/ispc
dodoc README.md
if use examples; then
insinto "/usr/share/doc/${PF}/examples"
docompress -x "/usr/share/doc/${PF}/examples"
doins -r ${BUILD_DIR}/examples/*
doins -r "${BUILD_DIR}"/examples/*
fi
}

Binary file not shown.

@ -3,3 +3,4 @@ DIST libfmt-6.2.0.tar.gz 733403 BLAKE2B c7ff69a56b90ec8df7d1af5c9934592449f20520
DIST libfmt-6.2.1.tar.gz 733646 BLAKE2B 74394efc67065bf7a2259f5c16521b1cc4fb08bd599fe99be86b97b712c60d8790f39d65257ab18fe95bcde3d115d97e91c41d23309596f279cf51ebd4d2957d SHA512 520ef3addfecd9796253c347e0ecf4c18ef2f86d3b1b6b714f7834741f4737f1b7ed8365d3be46c9186617898911b23680cad2ae3cb7aadaf641ab32e327b0dc
DIST libfmt-7.0.0.tar.gz 738799 BLAKE2B de032e6d0400e960f9622281bd00aa8676c909f4f171ba327206d9fe7ce9616ea134f61d90616917e4a23d025d83c05ee41faa5a9b61691458a20e66631942a5 SHA512 c92bcc067cdc0d260179a1f731ab8f54d8c0f3af5911b39034f0e24b0a8ef43ecfd820e42f1a2e30c2a436113920ea06e73b297b185c8794a5d480f1ec9e5916
DIST libfmt-7.0.1.tar.gz 739512 BLAKE2B e7a665c7f4017ca19ab555bb3183fdee47cbdfc9f757ddb2fbfac85cb105c2f73b3d6779b38ca5bf40db3b5b34ddee2a6d1099ef46334f81687559d59fcca085 SHA512 d3a2b1b374183d6fe042a3ac77c4bcf0a7804490432c889c647f5947c32ac80d0f21bbfd653e67a1cd42309a207fd7058a05dc9fd2540b6ff532049a27749a05
DIST libfmt-7.0.2.tar.gz 739754 BLAKE2B 226da0934d00e7dea887306f91a93b233d2817323d0a52e1f04eec546e179abbf4f880fe423a642a3c53e7e0050ed37472d8ffdc3c22031c1258261bad9da174 SHA512 a15e4c384c3fa3e5480da67666b17798d13c117de78a46302eac1661a46a589899ea84ac3d1a48a627227b587ba245d5f744b40d88f9ecbb2b50ac92b20b7bdc

@ -0,0 +1,36 @@
# Copyright 1999-2020 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
CMAKE_ECLASS=cmake
inherit cmake-multilib
DESCRIPTION="Small, safe and fast formatting library"
HOMEPAGE="https://github.com/fmtlib/fmt"
LICENSE="MIT"
IUSE="test"
SLOT="0/$(ver_cut 1)"
if [[ ${PV} == *9999 ]] ; then
EGIT_REPO_URI="https://github.com/fmtlib/fmt.git"
inherit git-r3
else
SRC_URI="https://github.com/fmtlib/fmt/archive/${PV}.tar.gz -> ${P}.tar.gz"
KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~x86"
S="${WORKDIR}/fmt-${PV}"
fi
DEPEND=""
RDEPEND=""
RESTRICT="!test? ( test )"
multilib_src_configure() {
local mycmakeargs=(
-DFMT_CMAKE_DIR="$(get_libdir)/cmake/fmt"
-DFMT_LIB_DIR="$(get_libdir)"
-DFMT_TEST=$(usex test)
)
cmake_src_configure
}

@ -1 +1,2 @@
DIST libpqxx-6.4.5.tar.gz 715081 BLAKE2B 4f1356dc5fc9baddd8fdea6095541f4d90657ef0211edec7796ddd3693933b8d37d5bb14e19249a2e4627b85aef11c582b0ffac0226c8e99a70af1d2b0396e5c SHA512 b6f79c4af93876eaf859626c2deae3b23bd4fa1a438390bc01513ccc48b90565d59588f6977e7475bb7b8dbeb8b1c8ef2a4737d8eb4d15682531fbf78590ed5e
DIST libpqxx-7.1.2.tar.gz 693152 BLAKE2B da28d0041fc345eb7774eadf0a886e2a89692ac47d870120991aa97328a6be7d10e8cb2d6deb9e056dc7e05b04fd317d9d0fe4dcf8eab901114b27cd64bf4ff6 SHA512 a4a76c62f6115f5898e4c4bb1c6f095284bdb7ae6a1efa45add9efd422d2a8280d1698caa2469acbb087168208ae0fd8efa36c8735a8ce30e58853e27acd4161

@ -0,0 +1,78 @@
# Copyright 1999-2020 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
PYTHON_COMPAT=( python3_{6..9} )
inherit python-any-r1
KEYWORDS="~alpha ~amd64 ~hppa ~ia64 ~ppc ~ppc64 ~sparc ~x86"
DESCRIPTION="Standard front-end for writing C++ programs that use PostgreSQL"
SRC_URI="https://github.com/jtv/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz"
HOMEPAGE="http://pqxx.org/development/libpqxx/"
LICENSE="BSD"
SLOT="0"
IUSE="doc static-libs"
RDEPEND="dev-db/postgresql:="
DEPEND="${RDEPEND}
${PYTHON_DEPS}
doc? (
app-doc/doxygen
app-text/xmlto
)
"
DOCS=( AUTHORS NEWS README{.md,-UPGRADE} )
src_configure() {
econf \
--enable-shared \
$(use_enable doc documentation) \
$(use_enable static-libs static)
}
src_test() {
einfo "The tests need a running PostgreSQL server and an existing database."
einfo "Test requires PGDATABASE and PGUSER to be set at a minimum. Optionally,"
einfo "set PGPORT and PGHOST. Define them at the command line or in:"
einfo " ${EROOT}/etc/libpqxx_test_env"
if [[ -z $PGDATABASE || -z $PGUSER ]] ; then
if [[ -f ${EROOT}/etc/libpqxx_test_env ]] ; then
source "${EROOT}/etc/libpqxx_test_env"
[[ -n $PGDATABASE ]] && export PGDATABASE
[[ -n $PGHOST ]] && export PGHOST
[[ -n $PGPORT ]] && export PGPORT
[[ -n $PGUSER ]] && export PGUSER
fi
fi
if [[ -n $PGDATABASE && -n $PGUSER ]] ; then
local server_version
server_version=$(psql -Aqtc 'SELECT version();' 2> /dev/null)
if [[ $? = 0 ]] ; then
cd "${S}/test" || die
emake check
else
eerror "Is the server running?"
eerror "Verify role and database exist, and are permitted in pg_hba.conf for:"
eerror " Role: ${PGUSER}"
eerror " Database: ${PGDATABASE}"
die "Couldn't connect to server."
fi
else
eerror "PGDATABASE and PGUSER must be set to perform tests."
eerror "Skipping tests."
fi
}
src_install () {
use doc && HTML_DOCS=( doc/html/. )
default
if ! use static-libs; then
find "${D}" -name '*.la' -delete || die
fi
}

@ -1,15 +1,14 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="project">
<email>pgsql-bugs@gentoo.org</email>
<name>PostgreSQL and Related Package Development</name>
</maintainer>
<longdescription>
libpqxx is the official C++ client API for PostgreSQL. If you are
writing software in C++ that needs to access databases managed by
Postgres — on just about any platform — then libpqxx is the
library you use. Supersedes the now defunct libpq++ (AKA, libpqpp)
API.
</longdescription>
<maintainer type="project">
<email>pgsql-bugs@gentoo.org</email>
<name>PostgreSQL and Related Package Development</name>
</maintainer>
<longdescription>
libpqxx is the official C++ client API for PostgreSQL. If you are writing
software in C++ that needs to access databases managed by Postgres — on just
about any platform — then libpqxx is the library you use. Supersedes the now
defunct libpq++ (AKA, libpqpp) API.
</longdescription>
</pkgmetadata>

@ -1,3 +1,5 @@
DIST libxml2-2.9.10-patchset.tar.xz 71584 BLAKE2B 4925a28570ed4f84da0407c3ce5b257d0959661855792160e4c534125fe0bbfa3749e7fc43b6c91a17206ac08a85922f4158bf40164c8a17ec940bf12b7dde1c SHA512 cd5a6aa86b6cf9ff852922ecfa23f34edeecab10a0e6d1bcd4dca56a6e17713b10af9387c7a6276bfec612f1d44fc06c16a7bdcab01ef9080f4dd10fab253b93
DIST libxml2-2.9.10.tar.gz 5624761 BLAKE2B a9958bd7db17fbfb8259b64d66548eb19d28f1aecf40cf66752fcec5720855d31cea9941d52963badd8c18ea1770485f1c11da6213149458336ce0273418f421 SHA512 0adfd12bfde89cbd6296ba6e66b6bed4edb814a74b4265bda34d95c41d9d92c696ee7adb0c737aaf9cc6e10426a31a35079b2a23d26c074e299858da12c072ed
DIST libxml2-2.9.9-patchset.tar.xz 16792 BLAKE2B f761b5cda41d57543dadf2cdd8915b69727a818f31badc1092903a9e4341b807852fed0887e9ec7a06a0c19c4a49f9afc2f3c048947f21a09006bb51ef8399ef SHA512 c8c0ee6d0a2833e5664aa7549999f8ba63b9f0bbfda4651050eeee7d3a958c33ef55daba8cfb1ca73ebffeb44d411b5f4259fe6e11ef0204ad2deebd1708ebfb
DIST libxml2-2.9.9.tar.gz 5476717 BLAKE2B 00a67c38084f2effd5d68d7d3e68f0c96cf4f52eab6d8d9b96dc91f03a84baa132abeaf303a836ff9bbf04f832432a036077316c464398e433c9779d8519074b SHA512 cb7784ba4e72e942614e12e4f83f4ceb275f3d738b30e3b5c1f25edf8e9fa6789e854685974eed95b362049dbf6c8e7357e0327d64c681ed390534ac154e6810
DIST xmlts20080827.tar.gz 638940 BLAKE2B c5aab959c6e0698acd5b9be82b48a8ac26f4d01cc03f9acfff20d344f97f4711fc6d4a524ae70457147e8e30c72e27b6726829e1dd21896286aa974ed60774e7 SHA512 7325d0977c4427fc4944b291ccf896a665f654cc24399e5565c12a849c2bc3aef4fa3ee42a09ac115abcb6570c51a8fbd052c38d64d164279ecdecad5a4e884d

@ -0,0 +1,224 @@
# Copyright 1999-2020 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
PYTHON_COMPAT=( python2_7 python3_{6,7,8,9} )
PYTHON_REQ_USE="xml"
inherit libtool flag-o-matic python-r1 autotools prefix multilib-minimal
DESCRIPTION="XML C parser and toolkit"
HOMEPAGE="http://www.xmlsoft.org/"
LICENSE="MIT"
SLOT="2"
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 examples icu ipv6 lzma +python readline static-libs test"
REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )"
RESTRICT="!test? ( test )"
XSTS_HOME="http://www.w3.org/XML/2004/xml-schema-test-suite"
XSTS_NAME_1="xmlschema2002-01-16"
XSTS_NAME_2="xmlschema2004-01-14"
XSTS_TARBALL_1="xsts-2002-01-16.tar.gz"
XSTS_TARBALL_2="xsts-2004-01-14.tar.gz"
XMLCONF_TARBALL="xmlts20080827.tar.gz"
SRC_URI="ftp://xmlsoft.org/${PN}/${PN}-${PV/_rc/-rc}.tar.gz
https://dev.gentoo.org/~sam/distfiles/${CATEGORY}/${PN}/${P}-patchset.tar.xz
test? (
${XSTS_HOME}/${XSTS_NAME_1}/${XSTS_TARBALL_1}
${XSTS_HOME}/${XSTS_NAME_2}/${XSTS_TARBALL_2}
http://www.w3.org/XML/Test/${XMLCONF_TARBALL} )"
RDEPEND="
>=sys-libs/zlib-1.2.8-r1:=[${MULTILIB_USEDEP}]
icu? ( >=dev-libs/icu-51.2-r1:=[${MULTILIB_USEDEP}] )
lzma? ( >=app-arch/xz-utils-5.0.5-r1:=[${MULTILIB_USEDEP}] )
python? ( ${PYTHON_DEPS} )
readline? ( sys-libs/readline:= )
"
DEPEND="${RDEPEND}"
BDEPEND="
dev-util/gtk-doc-am
virtual/pkgconfig
"
S="${WORKDIR}/${PN}-${PV%_rc*}"
MULTILIB_CHOST_TOOLS=(
/usr/bin/xml2-config
)
src_unpack() {
# ${A} isn't used to avoid unpacking of test tarballs into $WORKDIR,
# as they are needed as tarballs in ${S}/xstc instead and not unpacked
unpack ${P/_rc/-rc}.tar.gz
unpack ${P}-patchset.tar.xz
cd "${S}" || die
if use test; then
cp "${DISTDIR}/${XSTS_TARBALL_1}" \
"${DISTDIR}/${XSTS_TARBALL_2}" \
"${S}"/xstc/ \
|| die "Failed to install test tarballs"
unpack ${XMLCONF_TARBALL}
fi
}
src_prepare() {
default
DOCS=( AUTHORS ChangeLog NEWS README* TODO* )
# Selective cherry-picks from master up to 2019-02-28 (commit 8161b463f5)
eapply "${WORKDIR}"/patches
# Patches needed for prefix support
eapply "${FILESDIR}"/${PN}-2.7.1-catalog_path.patch
eprefixify catalog.c xmlcatalog.c runtest.c xmllint.c
# Fix build for Windows platform
# https://bugzilla.gnome.org/show_bug.cgi?id=760456
# eapply "${FILESDIR}"/${PN}-2.8.0_rc1-winnt.patch
# Fix python detection, bug #567066
# https://bugzilla.gnome.org/show_bug.cgi?id=760458
eapply "${FILESDIR}"/${PN}-2.9.2-python-ABIFLAG.patch
# Fix python tests when building out of tree #565576
eapply "${FILESDIR}"/${PN}-2.9.8-out-of-tree-test.patch
if [[ ${CHOST} == *-darwin* ]] ; then
# Avoid final linking arguments for python modules
sed -i -e '/PYTHON_LIBS/s/ldflags/libs/' configure.ac || die
# gcc-apple doesn't grok -Wno-array-bounds
sed -i -e 's/-Wno-array-bounds//' configure.ac || die
fi
# Please do not remove, as else we get references to PORTAGE_TMPDIR
# in /usr/lib/python?.?/site-packages/libxml2mod.la among things.
# We now need to run eautoreconf at the end to prevent maintainer mode.
# elibtoolize
# epunt_cxx # if we don't eautoreconf
eautoreconf
}
multilib_src_configure() {
# filter seemingly problematic CFLAGS (#26320)
filter-flags -fprefetch-loop-arrays -funroll-loops
# USE zlib support breaks gnome2
# (libgnomeprint for instance fails to compile with
# fresh install, and existing) - <azarah@gentoo.org> (22 Dec 2002).
# The meaning of the 'debug' USE flag does not apply to the --with-debug
# switch (enabling the libxml2 debug module). See bug #100898.
# --with-mem-debug causes unusual segmentation faults (bug #105120).
libxml2_configure() {
ECONF_SOURCE="${S}" econf \
--with-html-subdir=${PF}/html \
$(use_with debug run-debug) \
$(use_with icu) \
$(use_with lzma) \
$(use_enable ipv6) \
$(use_enable static-libs static) \
$(multilib_native_use_with readline) \
$(multilib_native_use_with readline history) \
"$@"
}
libxml2_py_configure() {
mkdir -p "${BUILD_DIR}" || die # ensure python build dirs exist
run_in_build_dir libxml2_configure \
"--with-python=${EPYTHON}" \
"--with-python-install-dir=$(python_get_sitedir)"
# odd build system, also see bug #582130
}
libxml2_configure --without-python # build python bindings separately
if multilib_is_native_abi && use python; then
python_foreach_impl libxml2_py_configure
fi
}
multilib_src_compile() {
default
if multilib_is_native_abi && use python; then
local native_builddir=${BUILD_DIR}
python_foreach_impl libxml2_py_emake top_builddir="${native_builddir}" all
fi
}
multilib_src_test() {
ln -s "${S}"/xmlconf || die
emake check
multilib_is_native_abi && use python && python_foreach_impl libxml2_py_emake test
}
multilib_src_install() {
emake DESTDIR="${D}" \
EXAMPLES_DIR="${EPREFIX}"/usr/share/doc/${PF}/examples install
if multilib_is_native_abi && use python; then
python_foreach_impl libxml2_py_emake \
DESTDIR="${D}" \
docsdir="${EPREFIX}"/usr/share/doc/${PF}/python \
exampledir="${EPREFIX}"/usr/share/doc/${PF}/python/examples \
install
python_foreach_impl python_optimize
fi
}
multilib_src_install_all() {
# on windows, xmllint is installed by interix libxml2 in parent prefix.
# this is the version to use. the native winnt version does not support
# symlinks, which makes repoman fail if the portage tree is linked in
# from another location (which is my default). -- mduft
if [[ ${CHOST} == *-winnt* ]]; then
rm -rf "${ED}"/usr/bin/xmllint
rm -rf "${ED}"/usr/bin/xmlcatalog
fi
rm -rf "${ED}"/usr/share/doc/${P}
einstalldocs
if ! use examples; then
rm -rf "${ED}"/usr/share/doc/${PF}/examples
rm -rf "${ED}"/usr/share/doc/${PF}/python/examples
fi
find "${D}" -name '*.la' -delete || die
}
pkg_postinst() {
# We don't want to do the xmlcatalog during stage1, as xmlcatalog will not
# be in / and stage1 builds to ROOT=/tmp/stage1root. This fixes bug #208887.
if [[ "${ROOT}" != "/" ]]; then
elog "Skipping XML catalog creation for stage building (bug #208887)."
else
# need an XML catalog, so no-one writes to a non-existent one
CATALOG="${EROOT}/etc/xml/catalog"
# we dont want to clobber an existing catalog though,
# only ensure that one is there
# <obz@gentoo.org>
if [[ ! -e ${CATALOG} ]]; then
[[ -d "${EROOT}/etc/xml" ]] || mkdir -p "${EROOT}/etc/xml"
"${EPREFIX}"/usr/bin/xmlcatalog --create > "${CATALOG}"
einfo "Created XML catalog in ${CATALOG}"
fi
fi
}
libxml2_py_emake() {
pushd "${BUILD_DIR}/python" > /dev/null || die
emake "$@"
popd > /dev/null
}

@ -1,2 +1,3 @@
DIST libxslt-1.1.33-CVE-2019-11068.patch 3965 BLAKE2B eb3a0741ac9f464e31e8edd276fec4d837c63676a56a446ad42a0e251508bacb0129cbe18783de305336eaa32b189ffc23e95e03cfd5f940d4dee376f1fa0f8c SHA512 9a97c5038809aaf64cb4eb7d67b95acc4b62236d7613a5f753e2a0f4c9e707c22cd07bda2e518d3f36a40b9ed5aa93496b743998c7adadb84ca147e045e35948
DIST libxslt-1.1.33.tar.gz 3444093 BLAKE2B 3457e5b62328ccbc48fbc5f71bf8a54c195c0059dd18afa38e6916e74c57e72601970446210c7584d5410b956e3bbb8cd4b852ec71e0a13c4441e6de095d86d1 SHA512 ebbe438a38bf6355950167d3b580edc22baa46a77068c18c42445c1c9c716d42bed3b30c5cd5bec359ab32d03843224dae458e9e32dc61693e7cf4bab23536e0
DIST libxslt-1.1.34.tar.gz 3552258 BLAKE2B f043a0357e0705ab68041adf4031a6b3e0b5c3d396691c988a34963a0ee0ebe3bede2d1d7a0c5f0c42c046183653c94f4b51e10e35980a039c8cad446e84ad86 SHA512 1516a11ad608b04740674060d2c5d733b88889de5e413b9a4e8bf8d1a90d712149df6d2b1345b615f529d7c7d3fa6dae12e544da828b39c7d415e54c0ee0776b

@ -0,0 +1,239 @@
From aa0f7a8d59a9bbd646203d3f14e39e217961f725 Mon Sep 17 00:00:00 2001
From: Gilles Dartiguelongue <eva@gentoo.org>
Date: Wed, 11 Nov 2015 17:49:07 +0100
Subject: [PATCH] Simplify python setup in autoconf
AM_PATH_PYTHON does most of the job without using pkg-config as expected
from the rest of the autoconf script.
diff --git a/Makefile.am b/Makefile.am
index 2c417d0..a65a2b7 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -2,9 +2,14 @@ SUBDIRS = \
libxslt \
libexslt \
xsltproc \
- doc \
- $(PYTHON_SUBDIR) \
- tests
+ doc
+
+
+if WITH_PYTHON
+ SUBDIRS += python
+endif
+
+SUBDIRS += tests
DIST_SUBDIRS = libxslt libexslt xsltproc python doc tests
@@ -52,7 +57,9 @@ tests: dummy
@echo '## Running the regression test suite'
@(cd tests ; $(MAKE) -s tests)
@(cd xsltproc ; $(MAKE) -s tests)
- @(if [ "$(PYTHON_SUBDIR)" != "" ] ; then cd python ; $(MAKE) -s tests ; fi)
+if WITH_PYTHON
+ @(cd python ; $(MAKE) -s tests)
+endif
valgrind:
@echo '## Running the regression tests under Valgrind'
diff --git a/configure.ac b/configure.ac
index 325a7be..ee1eabd 100644
--- a/configure.ac
+++ b/configure.ac
@@ -227,90 +227,37 @@ dnl
dnl check for python
dnl
-PYTHON_VERSION=
-PYTHON_INCLUDES=
-PYTHON_SITE_PACKAGES=
-pythondir=
-AC_ARG_WITH(python, [ --with-python[=DIR] Build Python bindings if found])
-if test "$with_python" != "no" ; then
- if test -x "$with_python/bin/python"
- then
- echo Found python in $with_python/bin/python
- PYTHON="$with_python/bin/python"
- else
- if test -x "$with_python"
- then
- echo Found python in $with_python
- PYTHON="$with_python"
- else
- if test -x "$PYTHON"
- then
- echo Found python in environment PYTHON=$PYTHON
- with_python=`$PYTHON -c "import sys; print sys.exec_prefix"`
- else
- AC_PATH_PROG(PYTHON, python python2.4 python2.3 python2.2 python2.1 python2.0 python1.6 python1.5)
- fi
- fi
- fi
- if test "$PYTHON" != ""
- then
- echo "PYTHON is pointing at $PYTHON"
- PYTHON_VERSION=`$PYTHON -c "import sys; print sys.version[[0:3]]"`
- echo Found Python version $PYTHON_VERSION
- LIBXML2_PYTHON=`$PYTHON -c "try : import libxml2 ; print 1
-except: print 0"`
- if test "$LIBXML2_PYTHON" = "1"
- then
- echo Found libxml2-python module
- else
- echo Warning: Missing libxml2-python
- fi
- fi
- if test "$PYTHON_VERSION" != ""
- then
- if test -r $with_python/include/python$PYTHON_VERSION/Python.h -a \
- -d $with_python/lib/python$PYTHON_VERSION/site-packages
- then
- PYTHON_INCLUDES=$with_python/include/python$PYTHON_VERSION
- PYTHON_SITE_PACKAGES='$(libdir)/python$(PYTHON_VERSION)/site-packages'
- else
- if test -r $prefix/include/python$PYTHON_VERSION/Python.h
- then
- PYTHON_INCLUDES=$prefix/include/python$PYTHON_VERSION
- PYTHON_SITE_PACKAGES='$(libdir)/python$(PYTHON_VERSION)/site-packages'
- else
- if test -r /usr/include/python$PYTHON_VERSION/Python.h
- then
- PYTHON_INCLUDES=/usr/include/python$PYTHON_VERSION
- PYTHON_SITE_PACKAGES='$(libdir)/python$(PYTHON_VERSION)/site-packages'
- else
- echo could not find python$PYTHON_VERSION/Python.h
- fi
- fi
- if test ! -d "$PYTHON_SITE_PACKAGES"
- then
- PYTHON_SITE_PACKAGES=`$PYTHON -c "from distutils import sysconfig; print sysconfig.get_python_lib()"`
- fi
- fi
- PYTHON_LIBS=`python$PYTHON_VERSION-config --libs`
- fi
- if test "$with_python" != ""
- then
- pythondir='$(PYTHON_SITE_PACKAGES)'
- else
- pythondir='$(libdir)/python$(PYTHON_VERSION)/site-packages'
- fi
-fi
-AM_CONDITIONAL(WITH_PYTHON, test "$PYTHON_INCLUDES" != "")
-if test "$PYTHON_INCLUDES" != ""
-then
- PYTHON_SUBDIR=python
-else
- PYTHON_SUBDIR=
-fi
-AC_SUBST(pythondir)
-AC_SUBST(PYTHON_SUBDIR)
-AC_SUBST(PYTHON_LIBS)
+AC_ARG_WITH([python],
+ AS_HELP_STRING([--with-python], [Build Python bindings if found])
+)
+
+AS_IF([test "$with_python" = "yes"],
+ [AM_PATH_PYTHON
+ AC_PATH_TOOL([PYTHON_CONFIG], [python$PYTHON_VERSION-config], [no])
+ AS_IF([test "$PYTHON_CONFIG" = "no"],
+ [AC_PATH_TOOL([PYTHON_CONFIG], [python-config], [no])])
+ AS_IF([test "$PYTHON_CONFIG" != "no"],
+ [PYTHON_CFLAGS=`$PYTHON_CONFIG --cflags`
+ PYTHON_LDFLAGS=`$PYTHON_CONFIG --ldflags`
+ PYTHON_LIBS=`$PYTHON_CONFIG --libs`],
+ [AC_MSG_ERROR([Missing python development files.])])
+ AC_MSG_CHECKING([libxml2 module in $PYTHON])
+ LIBXML2_PYTHON=`$PYTHON -c "import sys;
+try:
+ import libxml2
+ sys.stdout.write('1')
+except:
+ sys.stdout.write('0')"`
+ AS_IF([test "$LIBXML2_PYTHON" = "1"],
+ [AC_MSG_RESULT([yes])],
+ [AC_MSG_RESULT([no])
+ AC_MSG_WARN([libxml2 python module not found, expect runtime errors])])
+ ])
+
+AM_CONDITIONAL([WITH_PYTHON], [test "$with_python" = "yes"])
+AC_SUBST([PYTHON_CFLAGS])
+AC_SUBST([PYTHON_LDFLAGS])
+AC_SUBST([PYTHON_LIBS])
AC_ARG_WITH(crypto, [ --with-crypto Add crypto support to exslt (on)])
WITH_CRYPTO=0
@@ -634,10 +581,6 @@ AC_SUBST(PYTHONSODV)
AC_SUBST(XML_CONFIG)
AC_SUBST(LIBXML_LIBS)
AC_SUBST(LIBXML_CFLAGS)
-AC_SUBST(PYTHON)
-AC_SUBST(PYTHON_VERSION)
-AC_SUBST(PYTHON_INCLUDES)
-AC_SUBST(PYTHON_SITE_PACKAGES)
XSLT_LIBDIR='-L${libdir}'
XSLT_INCLUDEDIR='-I${includedir}'
diff --git a/python/Makefile.am b/python/Makefile.am
index 17a0d17..1c57a63 100644
--- a/python/Makefile.am
+++ b/python/Makefile.am
@@ -5,7 +5,7 @@ SUBDIRS= . tests
AM_CFLAGS = $(LIBXML_CFLAGS)
-DOCS_DIR = $(datadir)/doc/libxslt-python-$(LIBXSLT_VERSION)
+docsdir = $(datadir)/doc/libxslt-python-$(LIBXSLT_VERSION)
# libxsltclass.txt is generated
DOCS=
@@ -16,10 +16,7 @@ EXTRA_DIST = \
libxml_wrap.h \
libxslt_wrap.h \
libxsl.py \
- libxslt-python-api.xml \
- $(DOCS)
-
-libxsltmod_la_LDFLAGS = -module -avoid-version
+ libxslt-python-api.xml
if WITH_PYTHON
mylibs = \
@@ -28,31 +25,22 @@ mylibs = \
all-local: libxslt.py
-python_LTLIBRARIES = libxsltmod.la
+python_PYTHON = libxslt.py
+pyexec_LTLIBRARIES = libxsltmod.la
libxsltmod_la_CPPFLAGS = \
- -I$(PYTHON_INCLUDES) \
-I$(top_srcdir)/libxslt \
-I$(top_srcdir) \
- -I../libexslt
+ -I$(top_srcdir)/libexslt \
+ $(PYTHON_CFLAGS)
libxsltmod_la_SOURCES = libxslt.c types.c
nodist_libxsltmod_la_SOURCES = libxslt-py.c
libxsltmod_la_LIBADD = $(mylibs) $(PYTHON_LIBS)
+libxsltmod_la_LDFLAGS = $(WIN32_EXTRA_LDFLAGS) $(PYTHON_LDFLAGS) -module -avoid-version
libxslt.py: $(srcdir)/libxsl.py libxsltclass.py
cat $(srcdir)/libxsl.py libxsltclass.py > $@
-install-data-local:
- $(MKDIR_P) $(DESTDIR)$(pythondir)
- $(INSTALL) -m 0644 libxslt.py $(DESTDIR)$(pythondir)
- $(MKDIR_P) $(DESTDIR)$(DOCS_DIR)
- @(for doc in $(DOCS) ; \
- do $(INSTALL) -m 0644 $(srcdir)/$$doc $(DESTDIR)$(DOCS_DIR) ; done)
-
-uninstall-local:
- rm -f $(DESTDIR)$(pythondir)/libxslt.py
- rm -rf $(DESTDIR)$(DOCS_DIR)
-
GENERATE = generator.py
API_DESC = $(top_srcdir)/doc/libxslt-api.xml $(srcdir)/libxslt-python-api.xml
GENERATED= libxsltclass.py \

@ -43,9 +43,9 @@ src_prepare() {
# Simplify python setup
# https://bugzilla.gnome.org/show_bug.cgi?id=758095
eapply "${FILESDIR}"/1.1.32-simplify-python.patch
eapply "${FILESDIR}"/${PN}-1.1.32-simplify-python.patch
eapply "${FILESDIR}"/${PN}-1.1.28-disable-static-modules.patch
eapply "${DISTDIR}"/libxslt-1.1.33-CVE-2019-11068.patch
eapply "${DISTDIR}"/${PN}-1.1.33-CVE-2019-11068.patch
eautoreconf
# If eautoreconf'd with new autoconf, then epunt_cxx is not necessary

@ -0,0 +1,125 @@
# Copyright 1999-2020 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=6
PYTHON_COMPAT=( python2_7 )
PYTHON_REQ_USE="xml"
inherit autotools multilib-minimal python-r1 toolchain-funcs
DESCRIPTION="XSLT libraries and tools"
HOMEPAGE="http://www.xmlsoft.org/"
SRC_URI="ftp://xmlsoft.org/${PN}/${P}.tar.gz"
LICENSE="MIT"
SLOT="0"
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="crypt debug examples python static-libs elibc_Darwin"
REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )"
RDEPEND="
>=dev-libs/libxml2-2.9.10:2[${MULTILIB_USEDEP}]
crypt? ( >=dev-libs/libgcrypt-1.5.3:0=[${MULTILIB_USEDEP}] )
python? (
${PYTHON_DEPS}
dev-libs/libxml2:2[python,${PYTHON_USEDEP}]
)
"
DEPEND="${RDEPEND}"
MULTILIB_CHOST_TOOLS=(
/usr/bin/xslt-config
)
MULTILIB_WRAPPED_HEADERS=(
/usr/include/libxslt/xsltconfig.h
)
src_prepare() {
default
DOCS=( AUTHORS ChangeLog FEATURES NEWS README TODO )
# Simplify python setup
# https://bugzilla.gnome.org/show_bug.cgi?id=758095
eapply "${FILESDIR}"/${PN}-1.1.34-simplify-python.patch
eapply "${FILESDIR}"/${PN}-1.1.28-disable-static-modules.patch
eautoreconf
# If eautoreconf'd with new autoconf, then epunt_cxx is not necessary
# and it is propably otherwise too if upstream generated with new
# autoconf
# epunt_cxx
# But Prefix always needs elibtoolize if not eautoreconf'd.
# elibtoolize
}
multilib_src_configure() {
libxslt_configure() {
ECONF_SOURCE="${S}" econf \
--with-html-dir="${EPREFIX}"/usr/share/doc/${PF} \
--with-html-subdir=html \
$(use_with crypt crypto) \
$(use_with debug) \
$(use_with debug mem-debug) \
$(use_enable static-libs static) \
"$@"
}
libxslt_py_configure() {
mkdir -p "${BUILD_DIR}" || die # ensure python build dirs exist
run_in_build_dir libxslt_configure --with-python
}
libxslt_configure --without-python # build python bindings separately
if multilib_is_native_abi && use python; then
python_foreach_impl libxslt_py_configure
fi
}
multilib_src_compile() {
default
multilib_is_native_abi && use python && libxslt_foreach_py_emake all
}
multilib_src_test() {
default
multilib_is_native_abi && use python && libxslt_foreach_py_emake test
}
multilib_src_install() {
# "default" does not work here - docs are installed by multilib_src_install_all
emake DESTDIR="${D}" install
if multilib_is_native_abi && use python; then
libxslt_foreach_py_emake \
DESTDIR="${D}" \
docsdir="${EPREFIX}"/usr/share/doc/${PF}/python \
EXAMPLE_DIR="${EPREFIX}"/usr/share/doc/${PF}/python/examples \
install
python_foreach_impl python_optimize
fi
}
multilib_src_install_all() {
einstalldocs
if ! use examples && use python; then
rm -r "${ED}"/usr/share/doc/${PF}/python/examples || die
fi
find "${ED}" -type f -name "*.la" -delete || die
}
libxslt_foreach_py_emake() {
libxslt_py_emake() {
pushd "${BUILD_DIR}/python" > /dev/null || die
emake "$@"
popd > /dev/null
}
local native_builddir=${BUILD_DIR}
python_foreach_impl libxslt_py_emake top_builddir="${native_builddir}" "$@"
}

@ -0,0 +1,23 @@
# Copyright 1999-2020 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
DIST_AUTHOR=LDS
DIST_VERSION=1.12
inherit perl-module
DESCRIPTION="Find memory cycles in objects"
SLOT="0"
KEYWORDS="~alpha ~amd64 ~arm ~ppc ~ppc64 ~x86 ~ppc-aix ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~m68k-mint ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
IUSE="test"
RESTRICT="!test? ( test )"
RDEPEND="
virtual/perl-Scalar-List-Utils
"
BDEPEND="${RDEPEND}
virtual/perl-ExtUtils-MakeMaker
test? ( virtual/perl-Test-Simple )
"

@ -0,0 +1,35 @@
# Copyright 1999-2020 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
DIST_AUTHOR=ETHER
DIST_VERSION=0.006022
inherit perl-module
DESCRIPTION="(DEPRECATED) Adding keywords to perl, in perl"
SLOT="0"
KEYWORDS="~amd64 ~x86"
IUSE="test"
RESTRICT="!test? ( test )"
RDEPEND="
>=dev-perl/B-Hooks-EndOfScope-0.50.0
>=dev-perl/B-Hooks-OP-Check-0.190.0
>=virtual/perl-Scalar-List-Utils-1.110.0
dev-perl/Sub-Name
"
BDEPEND="${RDEPEND}
>=dev-perl/ExtUtils-Depends-0.302.0
test? (
dev-perl/Test-Requires
>=virtual/perl-Test-Simple-0.88
)
"
src_compile() {
mymake=(
"OPTIMIZE=${CFLAGS}"
)
perl-module_src_compile
}

@ -1 +1,2 @@
DIST Devel-Declare-0.006019.tar.gz 45174 BLAKE2B be5cfe04b778af0be7acd8139f82d7abff64f838d857a8227c3ebdf5422803ed25b0c9b8533a3911b07ad10923d5d60f05810480c9f743cbf905b023e35b0193 SHA512 1f3073597c5b27160a9ccd8019c35563982479a8c6303e138d1260706499732aa6c402e835d8b5f06a02ee55294889735500d8a24c2f6f5df9d5ed3111d08fb0
DIST Devel-Declare-0.006022.tar.gz 126698 BLAKE2B 4cf20819a93a862ac8c70561e43f78aa70b73fe791084204f881b527957cafdc272462747abab2dc0a047baf244963ef3a8c51f9a8a831aa0edea38425b2c48b SHA512 05b226fdc18a69e0590087d1daeca111af86c3a6865477cb203701e1c8f4a5a03e919f4c6661252ef0ee4204a71667b36caf061374d67a8508dafe4dce155a1e

@ -0,0 +1,35 @@
# Copyright 1999-2020 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
DIST_AUTHOR=ADAMK
DIST_VERSION=1.06
inherit perl-module
DESCRIPTION="Pure-OO reimplementation of dumpvar.pl"
SLOT="0"
KEYWORDS="~amd64 ~x86"
IUSE="test"
RESTRICT="!test? ( test )"
RDEPEND="
>=virtual/perl-Scalar-List-Utils-1.180.0
"
BDEPEND="${RDEPEND}
>=virtual/perl-ExtUtils-MakeMaker-6.420.0
test? (
>=virtual/perl-File-Spec-0.800.0
>=virtual/perl-Test-Simple-0.420.0
)
"
PATCHES=(
"${FILESDIR}/${PN}-1.06-no-dot-inc.patch"
)
PERL_RM_FILES=(
t/97_meta.t
t/98_pod.t
t/99_pmv.t
)

@ -0,0 +1,21 @@
From b74c1c9cb2f8cffcb486580a13a24efcd86a984f Mon Sep 17 00:00:00 2001
From: Kent Fredric <kentnl@gentoo.org>
Date: Thu, 30 Jul 2020 15:30:11 +1200
Subject: Include '.' in @INC for perl 5.26+
---
Makefile.PL | 1 +
1 file changed, 1 insertion(+)
diff --git a/Makefile.PL b/Makefile.PL
index 0c4ca77..3b377c9 100644
--- a/Makefile.PL
+++ b/Makefile.PL
@@ -1,3 +1,4 @@
+use lib '.';
use inc::Module::Install::DSL 0.91;
all_from lib/Devel/Dumpvar.pm
--
2.27.0

@ -0,0 +1,35 @@
# Copyright 1999-2020 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
DIST_AUTHOR=LEONT
DIST_VERSION=0.015
inherit perl-module
DESCRIPTION="Find the path to your perl"
SLOT="0"
KEYWORDS="~amd64 ~x86"
IUSE="test minimal"
RESTRICT="!test? ( test )"
# r: Cwd -> File-Spec
# r: File::Basename -> perl
# r: File::Spec::Functions -> perl
# r: IPC::Open2 -> perl
# r: Scalar::Util -> Scalar-List-Utils
# r: strict, warnings -> perl
RDEPEND="
!minimal? (
>=dev-perl/ExtUtils-Config-0.7.0
)
virtual/perl-Carp
>=virtual/perl-Exporter-5.570.0
virtual/perl-File-Spec
virtual/perl-Scalar-List-Utils
"
# t: Test::More -> Test-Simple
BDEPEND="${RDEPEND}
virtual/perl-ExtUtils-MakeMaker
test? (
virtual/perl-Test-Simple
)
"

@ -1 +1,2 @@
DIST Devel-FindPerl-0.014.tar.gz 13815 BLAKE2B 6e9562955153416900ea5b1a0a8cc50583297c5a22dd64c69a5e3872d1fdc89fb4287e5244ba6f4f641c404f6c6ab56a1ffb00709c9720fe2cc1563b63da2b46 SHA512 958044c628ce1d004031f753673ec7cd066bb70387b2ecef6e91dcdb050a1aac0b036b7a78c38f731ec22d8fcf109f9421f640b4e008a44ff9de382cff944cea
DIST Devel-FindPerl-0.015.tar.gz 13882 BLAKE2B 46f2de2abbb68fa91ed059ada1edf2416cf7970f378cd8d1c8ab1eb3dd75488660e74675662efd477039d305bb16bee77abb841ad95c8c3d09374043855f64ba SHA512 e6165e9db47eaf966a542822d84a14c4de0a7f6f60630f31873cd96eb71bbe2d9e2a52f52726d2ea98349d36fc1772ce850ba2a375c343eee7af5dd9cec74253

Binary file not shown.

Binary file not shown.

@ -11,7 +11,7 @@ HOMEPAGE="https://github.com/git-pull/alagitpull"
SRC_URI="https://github.com/git-pull/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
LICENSE="MIT"
KEYWORDS="amd64 ~arm x86"
KEYWORDS="amd64 ~arm ~ppc64 x86"
SLOT="0"
RDEPEND="dev-python/setuptools[${PYTHON_USEDEP}]

@ -19,7 +19,7 @@ S=${WORKDIR}/${MY_P}
LICENSE="CC0-1.0"
SLOT="0"
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"
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"
RDEPEND="app-misc/ca-certificates"

@ -13,7 +13,7 @@ SRC_URI="mirror://pypi/C/${PN/c/C}/${P}.tar.gz"
LICENSE="BSD"
SLOT="0"
KEYWORDS="amd64 arm arm64 ~ia64 ~ppc ~ppc64 ~x86"
KEYWORDS="amd64 arm arm64 ~ia64 ~ppc ~ppc64 x86"
RDEPEND="
>=dev-python/six-1.11.0[${PYTHON_USEDEP}]

@ -14,7 +14,7 @@ SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
LICENSE="Apache-2.0"
SLOT="0"
KEYWORDS="~alpha ~amd64 arm64 ~hppa ~ia64 ~mips ~ppc64 ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux"
KEYWORDS="~alpha amd64 arm64 hppa ~ia64 ~mips ~ppc64 s390 sparc x86 ~amd64-linux ~x86-linux"
RDEPEND="
>=dev-python/cmd2-0.8.0[${PYTHON_USEDEP}]

@ -13,7 +13,7 @@ SRC_URI="mirror://pypi/${PN::1}/${PN}/${P}.tar.gz"
LICENSE="MIT"
SLOT="0"
KEYWORDS="~alpha ~amd64 ~arm arm64 ~hppa ~ia64 ~ppc ~ppc64 ~s390 ~sparc ~x86"
KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ppc ppc64 ~s390 sparc x86"
IUSE="test"
RESTRICT="!test? ( test )"

@ -17,6 +17,6 @@ S=${WORKDIR}/${MY_P}
LICENSE="MIT"
SLOT="0"
KEYWORDS="~amd64 ~arm ~arm64 ~x86 ~amd64-linux ~x86-linux"
KEYWORDS="amd64 ~arm arm64 x86 ~amd64-linux ~x86-linux"
distutils_enable_tests nose

@ -12,7 +12,7 @@ SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
LICENSE="kaptan"
SLOT="0"
KEYWORDS="amd64 ~arm x86"
KEYWORDS="amd64 ~arm ~ppc64 x86"
BDEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
RDEPEND="${BDEPEND}

@ -16,7 +16,7 @@ SRC_URI="mirror://pypi/${P:0:1}/${PN}/${P}.tar.gz"
LICENSE="BSD"
SLOT="0"
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~ia64 ~ppc ~ppc64 ~sparc ~x86 ~amd64-linux ~x86-linux ~x64-macos ~x86-macos"
KEYWORDS="~alpha amd64 arm arm64 ~ia64 ppc ppc64 sparc x86 ~amd64-linux ~x86-linux ~x64-macos ~x86-macos"
BDEPEND="
dev-python/setuptools_scm[${PYTHON_USEDEP}]

@ -13,7 +13,7 @@ SRC_URI="https://github.com/tmux-python/${PN}/archive/v${PV}.tar.gz -> ${PN}-v${
LICENSE="MIT"
SLOT="0"
KEYWORDS="~amd64 ~arm ~x86"
KEYWORDS="~amd64 ~arm ~ppc64 ~x86"
RDEPEND=">=app-misc/tmux-3.0a"

@ -15,7 +15,7 @@ SRC_URI="mirror://pypi/${MY_PN:0:1}/${MY_PN}/${MY_PN}-${PV}.tar.gz"
LICENSE="MIT"
SLOT="0"
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~x64-macos ~x86-macos"
KEYWORDS="~alpha ~amd64 arm arm64 ~hppa ~ia64 ~mips ppc ~ppc64 ~s390 ~sparc x86 ~amd64-linux ~x86-linux ~x64-macos ~x86-macos"
IUSE="libressl"
RDEPEND="

@ -17,7 +17,7 @@ S="${WORKDIR}/${P/-/_}"
LICENSE="BSD"
SLOT="0"
KEYWORDS="~alpha amd64 arm arm64 ~ia64 ppc ppc64 ~s390 ~sparc x86"
KEYWORDS="~alpha amd64 arm arm64 ~ia64 ppc ppc64 s390 sparc x86"
RDEPEND="
dev-python/pyaes[${PYTHON_USEDEP}]

@ -14,7 +14,7 @@ SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
LICENSE="MIT"
SLOT="0"
KEYWORDS="~alpha amd64 arm arm64 ~ia64 ppc ppc64 ~s390 ~sparc x86"
KEYWORDS="~alpha amd64 arm arm64 ~ia64 ppc ppc64 s390 sparc x86"
IUSE="test"
RESTRICT="!test? ( test )"

@ -13,7 +13,7 @@ SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
SLOT="0"
LICENSE="MPL-2.0"
KEYWORDS="amd64 ~arm ~arm64 x86 ~amd64-linux ~x86-linux"
KEYWORDS="amd64 ~arm ~arm64 ~ppc64 x86 ~amd64-linux ~x86-linux"
IUSE=""
RDEPEND="dev-python/setuptools[${PYTHON_USEDEP}]

@ -12,7 +12,7 @@ SRC_URI="mirror://pypi/${PN::1}/${PN}/${P}.tar.gz"
LICENSE="Apache-2.0"
SLOT="0"
KEYWORDS="amd64 arm arm64 ~ia64 ~ppc ~ppc64 ~x86"
KEYWORDS="amd64 arm arm64 ~ia64 ~ppc ~ppc64 x86"
RDEPEND="
dev-python/requests[${PYTHON_USEDEP}]

@ -18,7 +18,7 @@ S=${WORKDIR}/${MY_P}
LICENSE="Apache-2.0"
SLOT="0"
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~ppc ~ppc64 ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux"
KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ppc ppc64 ~s390 sparc x86 ~amd64-linux ~x86-linux"
distutils_enable_tests pytest

@ -12,7 +12,7 @@ SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
LICENSE="BSD-2"
SLOT="0"
KEYWORDS="~amd64 ~arm arm64 ~x86 ~amd64-linux ~x86-linux"
KEYWORDS="amd64 arm arm64 x86 ~amd64-linux ~x86-linux"
RDEPEND="
dev-python/pbr[${PYTHON_USEDEP}]

@ -13,7 +13,7 @@ if [[ ${PV} == 9999 ]]; then
EGIT_REPO_URI="https://github.com/tqdm/tqdm"
else
SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~ppc ~ppc64 ~sparc ~x86"
KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ppc ppc64 sparc x86"
fi
DESCRIPTION="Add a progress meter to your loops in a second"

@ -13,7 +13,7 @@ SRC_URI="mirror://pypi/${PN::1}/${PN}/${P}.tar.gz"
LICENSE="MIT"
SLOT="0"
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~ppc ~ppc64 ~s390 ~sparc ~x86"
KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ppc ppc64 ~s390 sparc x86"
IUSE="test"
RESTRICT="!test? ( test )"

Binary file not shown.

@ -1 +1,2 @@
DIST ament_cmake-0.9.6.tar.gz 60800 BLAKE2B 71c4e71c50b7715bb8f1b5b737ce23e30f79459a14a5866801bcb810b8fe82d807b6a4eae11de427f52c618e14ef22b7693905f1a0200cc38f0ffab1d70e80cd SHA512 c923260bbd0142ea57bf3e868e94e76020939e8ec49cbf23f14221d0048f21efed00dcdae9978e00f246725ba216c151f5d53b1cd94297b8731f53dc0e45b554
DIST ament_cmake-1.0.0.tar.gz 63304 BLAKE2B dd0c4bc5b72d9143cfb8ee9caae236a3608981ee8523e879ea9c168d64fd1d0cb84e54679cfc0cfc58ffff34519bb1032afc956c3130c1da8b4f98d60a9191be SHA512 69236015368df29a128eceeb64dd1c683eb32a44188b52120592238f999be8c8c7c5892a36ddcef48b6686bf97eba77e820ca3b8896c64ec1522661fa3ed4fc7

@ -0,0 +1,46 @@
# Copyright 2019-2020 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
PYTHON_COMPAT=( python{3_6,3_7,3_8} )
inherit cmake python-any-r1
ROS_PN="ament_cmake"
if [ "${PV#9999}" != "${PV}" ] ; then
inherit git-r3
EGIT_REPO_URI="https://github.com/ament/ament_cmake"
SRC_URI=""
S=${WORKDIR}/${P}/${PN}
else
SRC_URI="https://github.com/ament/ament_cmake/archive/${PV}.tar.gz -> ${ROS_PN}-${PV}.tar.gz"
S="${WORKDIR}/${ROS_PN}-${PV}/${PN}"
fi
DESCRIPTION="The core of the ament buildsystem in CMake"
HOMEPAGE="https://github.com/ament/ament_cmake"
LICENSE="Apache-2.0"
SLOT="0"
if [ "${PV#9999}" != "${PV}" ] ; then
KEYWORDS=""
else
KEYWORDS="~amd64"
fi
IUSE=""
RDEPEND="
dev-python/ament_package
dev-python/catkin_pkg
"
DEPEND="${RDEPEND}"
BDEPEND="
$(python_gen_any_dep 'dev-python/ament_package[${PYTHON_USEDEP}] dev-python/catkin_pkg[${PYTHON_USEDEP}]')
${PYTHON_DEPS}
"
python_check_deps() {
has_version "dev-python/ament_package[${PYTHON_USEDEP}]" && \
has_version "dev-python/catkin_pkg[${PYTHON_USEDEP}]"
}

@ -1 +1,2 @@
DIST ament_cmake-0.9.6.tar.gz 60800 BLAKE2B 71c4e71c50b7715bb8f1b5b737ce23e30f79459a14a5866801bcb810b8fe82d807b6a4eae11de427f52c618e14ef22b7693905f1a0200cc38f0ffab1d70e80cd SHA512 c923260bbd0142ea57bf3e868e94e76020939e8ec49cbf23f14221d0048f21efed00dcdae9978e00f246725ba216c151f5d53b1cd94297b8731f53dc0e45b554
DIST ament_cmake-1.0.0.tar.gz 63304 BLAKE2B dd0c4bc5b72d9143cfb8ee9caae236a3608981ee8523e879ea9c168d64fd1d0cb84e54679cfc0cfc58ffff34519bb1032afc956c3130c1da8b4f98d60a9191be SHA512 69236015368df29a128eceeb64dd1c683eb32a44188b52120592238f999be8c8c7c5892a36ddcef48b6686bf97eba77e820ca3b8896c64ec1522661fa3ed4fc7

@ -0,0 +1,46 @@
# Copyright 2019-2020 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
PYTHON_COMPAT=( python{3_6,3_7,3_8} )
inherit cmake python-any-r1
ROS_PN="ament_cmake"
if [ "${PV#9999}" != "${PV}" ] ; then
inherit git-r3
EGIT_REPO_URI="https://github.com/ament/ament_cmake"
SRC_URI=""
S=${WORKDIR}/${P}/${PN}
else
SRC_URI="https://github.com/ament/ament_cmake/archive/${PV}.tar.gz -> ${ROS_PN}-${PV}.tar.gz"
S="${WORKDIR}/${ROS_PN}-${PV}/${PN}"
fi
DESCRIPTION="Export definitions to downstream packages in the ament buildsystem"
HOMEPAGE="https://github.com/ament/ament_cmake"
LICENSE="Apache-2.0"
SLOT="0"
if [ "${PV#9999}" != "${PV}" ] ; then
KEYWORDS=""
else
KEYWORDS="~amd64"
fi
IUSE=""
RDEPEND="
dev-ros/ament_cmake_core
"
DEPEND="${RDEPEND}"
# Deps here are transitive from ament_cmake_core to have matching python support
BDEPEND="
$(python_gen_any_dep 'dev-python/ament_package[${PYTHON_USEDEP}] dev-python/catkin_pkg[${PYTHON_USEDEP}]')
${PYTHON_DEPS}
"
python_check_deps() {
has_version "dev-python/ament_package[${PYTHON_USEDEP}]" && \
has_version "dev-python/catkin_pkg[${PYTHON_USEDEP}]"
}

@ -1 +1,2 @@
DIST ament_cmake-0.9.6.tar.gz 60800 BLAKE2B 71c4e71c50b7715bb8f1b5b737ce23e30f79459a14a5866801bcb810b8fe82d807b6a4eae11de427f52c618e14ef22b7693905f1a0200cc38f0ffab1d70e80cd SHA512 c923260bbd0142ea57bf3e868e94e76020939e8ec49cbf23f14221d0048f21efed00dcdae9978e00f246725ba216c151f5d53b1cd94297b8731f53dc0e45b554
DIST ament_cmake-1.0.0.tar.gz 63304 BLAKE2B dd0c4bc5b72d9143cfb8ee9caae236a3608981ee8523e879ea9c168d64fd1d0cb84e54679cfc0cfc58ffff34519bb1032afc956c3130c1da8b4f98d60a9191be SHA512 69236015368df29a128eceeb64dd1c683eb32a44188b52120592238f999be8c8c7c5892a36ddcef48b6686bf97eba77e820ca3b8896c64ec1522661fa3ed4fc7

@ -0,0 +1,47 @@
# Copyright 2019-2020 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
PYTHON_COMPAT=( python{3_6,3_7,3_8} )
inherit cmake python-any-r1
ROS_PN="ament_cmake"
if [ "${PV#9999}" != "${PV}" ] ; then
inherit git-r3
EGIT_REPO_URI="https://github.com/ament/ament_cmake"
SRC_URI=""
S=${WORKDIR}/${P}/${PN}
else
SRC_URI="https://github.com/ament/ament_cmake/archive/${PV}.tar.gz -> ${ROS_PN}-${PV}.tar.gz"
S="${WORKDIR}/${ROS_PN}-${PV}/${PN}"
fi
DESCRIPTION="Export dependencies to downstream packages in the ament buildsystem in CMake"
HOMEPAGE="https://github.com/ament/ament_cmake"
LICENSE="Apache-2.0"
SLOT="0"
if [ "${PV#9999}" != "${PV}" ] ; then
KEYWORDS=""
else
KEYWORDS="~amd64"
fi
IUSE=""
RDEPEND="
dev-ros/ament_cmake_core
dev-ros/ament_cmake_libraries
"
DEPEND="${RDEPEND}"
# Deps here are transitive from ament_cmake_core to have matching python support
BDEPEND="
$(python_gen_any_dep 'dev-python/ament_package[${PYTHON_USEDEP}] dev-python/catkin_pkg[${PYTHON_USEDEP}]')
${PYTHON_DEPS}
"
python_check_deps() {
has_version "dev-python/ament_package[${PYTHON_USEDEP}]" && \
has_version "dev-python/catkin_pkg[${PYTHON_USEDEP}]"
}

@ -1 +1,2 @@
DIST ament_cmake-0.9.6.tar.gz 60800 BLAKE2B 71c4e71c50b7715bb8f1b5b737ce23e30f79459a14a5866801bcb810b8fe82d807b6a4eae11de427f52c618e14ef22b7693905f1a0200cc38f0ffab1d70e80cd SHA512 c923260bbd0142ea57bf3e868e94e76020939e8ec49cbf23f14221d0048f21efed00dcdae9978e00f246725ba216c151f5d53b1cd94297b8731f53dc0e45b554
DIST ament_cmake-1.0.0.tar.gz 63304 BLAKE2B dd0c4bc5b72d9143cfb8ee9caae236a3608981ee8523e879ea9c168d64fd1d0cb84e54679cfc0cfc58ffff34519bb1032afc956c3130c1da8b4f98d60a9191be SHA512 69236015368df29a128eceeb64dd1c683eb32a44188b52120592238f999be8c8c7c5892a36ddcef48b6686bf97eba77e820ca3b8896c64ec1522661fa3ed4fc7

@ -0,0 +1,46 @@
# Copyright 2019-2020 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
PYTHON_COMPAT=( python{3_6,3_7,3_8} )
inherit cmake python-any-r1
ROS_PN="ament_cmake"
if [ "${PV#9999}" != "${PV}" ] ; then
inherit git-r3
EGIT_REPO_URI="https://github.com/ament/ament_cmake"
SRC_URI=""
S=${WORKDIR}/${P}/${PN}
else
SRC_URI="https://github.com/ament/ament_cmake/archive/${PV}.tar.gz -> ${ROS_PN}-${PV}.tar.gz"
S="${WORKDIR}/${ROS_PN}-${PV}/${PN}"
fi
DESCRIPTION="Export include directories to downstream packages in the ament buildsystem"
HOMEPAGE="https://github.com/ament/ament_cmake"
LICENSE="Apache-2.0"
SLOT="0"
if [ "${PV#9999}" != "${PV}" ] ; then
KEYWORDS=""
else
KEYWORDS="~amd64"
fi
IUSE=""
RDEPEND="
dev-ros/ament_cmake_core
"
DEPEND="${RDEPEND}"
# Deps here are transitive from ament_cmake_core to have matching python support
BDEPEND="
$(python_gen_any_dep 'dev-python/ament_package[${PYTHON_USEDEP}] dev-python/catkin_pkg[${PYTHON_USEDEP}]')
${PYTHON_DEPS}
"
python_check_deps() {
has_version "dev-python/ament_package[${PYTHON_USEDEP}]" && \
has_version "dev-python/catkin_pkg[${PYTHON_USEDEP}]"
}

@ -1 +1,2 @@
DIST ament_cmake-0.9.6.tar.gz 60800 BLAKE2B 71c4e71c50b7715bb8f1b5b737ce23e30f79459a14a5866801bcb810b8fe82d807b6a4eae11de427f52c618e14ef22b7693905f1a0200cc38f0ffab1d70e80cd SHA512 c923260bbd0142ea57bf3e868e94e76020939e8ec49cbf23f14221d0048f21efed00dcdae9978e00f246725ba216c151f5d53b1cd94297b8731f53dc0e45b554
DIST ament_cmake-1.0.0.tar.gz 63304 BLAKE2B dd0c4bc5b72d9143cfb8ee9caae236a3608981ee8523e879ea9c168d64fd1d0cb84e54679cfc0cfc58ffff34519bb1032afc956c3130c1da8b4f98d60a9191be SHA512 69236015368df29a128eceeb64dd1c683eb32a44188b52120592238f999be8c8c7c5892a36ddcef48b6686bf97eba77e820ca3b8896c64ec1522661fa3ed4fc7

@ -0,0 +1,47 @@
# Copyright 2019-2020 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
PYTHON_COMPAT=( python{3_6,3_7,3_8} )
inherit cmake python-any-r1
ROS_PN="ament_cmake"
if [ "${PV#9999}" != "${PV}" ] ; then
inherit git-r3
EGIT_REPO_URI="https://github.com/ament/ament_cmake"
SRC_URI=""
S=${WORKDIR}/${P}/${PN}
else
SRC_URI="https://github.com/ament/ament_cmake/archive/${PV}.tar.gz -> ${ROS_PN}-${PV}.tar.gz"
S="${WORKDIR}/${ROS_PN}-${PV}/${PN}"
fi
DESCRIPTION="Export interfaces to downstream packages in the ament buildsystem"
HOMEPAGE="https://github.com/ament/ament_cmake"
LICENSE="Apache-2.0"
SLOT="0"
if [ "${PV#9999}" != "${PV}" ] ; then
KEYWORDS=""
else
KEYWORDS="~amd64"
fi
IUSE=""
RDEPEND="
dev-ros/ament_cmake_core
dev-ros/ament_cmake_export_libraries
"
DEPEND="${RDEPEND}"
# Deps here are transitive from ament_cmake_core to have matching python support
BDEPEND="
$(python_gen_any_dep 'dev-python/ament_package[${PYTHON_USEDEP}] dev-python/catkin_pkg[${PYTHON_USEDEP}]')
${PYTHON_DEPS}
"
python_check_deps() {
has_version "dev-python/ament_package[${PYTHON_USEDEP}]" && \
has_version "dev-python/catkin_pkg[${PYTHON_USEDEP}]"
}

@ -1 +1,2 @@
DIST ament_cmake-0.9.6.tar.gz 60800 BLAKE2B 71c4e71c50b7715bb8f1b5b737ce23e30f79459a14a5866801bcb810b8fe82d807b6a4eae11de427f52c618e14ef22b7693905f1a0200cc38f0ffab1d70e80cd SHA512 c923260bbd0142ea57bf3e868e94e76020939e8ec49cbf23f14221d0048f21efed00dcdae9978e00f246725ba216c151f5d53b1cd94297b8731f53dc0e45b554
DIST ament_cmake-1.0.0.tar.gz 63304 BLAKE2B dd0c4bc5b72d9143cfb8ee9caae236a3608981ee8523e879ea9c168d64fd1d0cb84e54679cfc0cfc58ffff34519bb1032afc956c3130c1da8b4f98d60a9191be SHA512 69236015368df29a128eceeb64dd1c683eb32a44188b52120592238f999be8c8c7c5892a36ddcef48b6686bf97eba77e820ca3b8896c64ec1522661fa3ed4fc7

@ -0,0 +1,46 @@
# Copyright 2019-2020 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
PYTHON_COMPAT=( python{3_6,3_7,3_8} )
inherit cmake python-any-r1
ROS_PN="ament_cmake"
if [ "${PV#9999}" != "${PV}" ] ; then
inherit git-r3
EGIT_REPO_URI="https://github.com/ament/ament_cmake"
SRC_URI=""
S=${WORKDIR}/${P}/${PN}
else
SRC_URI="https://github.com/ament/ament_cmake/archive/${PV}.tar.gz -> ${ROS_PN}-${PV}.tar.gz"
S="${WORKDIR}/${ROS_PN}-${PV}/${PN}"
fi
DESCRIPTION="Export libraries to downstream packages in the ament buildsystem"
HOMEPAGE="https://github.com/ament/ament_cmake"
LICENSE="Apache-2.0"
SLOT="0"
if [ "${PV#9999}" != "${PV}" ] ; then
KEYWORDS=""
else
KEYWORDS="~amd64"
fi
IUSE=""
RDEPEND="
dev-ros/ament_cmake_core
"
DEPEND="${RDEPEND}"
# Deps here are transitive from ament_cmake_core to have matching python support
BDEPEND="
$(python_gen_any_dep 'dev-python/ament_package[${PYTHON_USEDEP}] dev-python/catkin_pkg[${PYTHON_USEDEP}]')
${PYTHON_DEPS}
"
python_check_deps() {
has_version "dev-python/ament_package[${PYTHON_USEDEP}]" && \
has_version "dev-python/catkin_pkg[${PYTHON_USEDEP}]"
}

@ -1 +1,2 @@
DIST ament_cmake-0.9.6.tar.gz 60800 BLAKE2B 71c4e71c50b7715bb8f1b5b737ce23e30f79459a14a5866801bcb810b8fe82d807b6a4eae11de427f52c618e14ef22b7693905f1a0200cc38f0ffab1d70e80cd SHA512 c923260bbd0142ea57bf3e868e94e76020939e8ec49cbf23f14221d0048f21efed00dcdae9978e00f246725ba216c151f5d53b1cd94297b8731f53dc0e45b554
DIST ament_cmake-1.0.0.tar.gz 63304 BLAKE2B dd0c4bc5b72d9143cfb8ee9caae236a3608981ee8523e879ea9c168d64fd1d0cb84e54679cfc0cfc58ffff34519bb1032afc956c3130c1da8b4f98d60a9191be SHA512 69236015368df29a128eceeb64dd1c683eb32a44188b52120592238f999be8c8c7c5892a36ddcef48b6686bf97eba77e820ca3b8896c64ec1522661fa3ed4fc7

@ -0,0 +1,46 @@
# Copyright 2019-2020 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
PYTHON_COMPAT=( python{3_6,3_7,3_8} )
inherit cmake python-any-r1
ROS_PN="ament_cmake"
if [ "${PV#9999}" != "${PV}" ] ; then
inherit git-r3
EGIT_REPO_URI="https://github.com/ament/ament_cmake"
SRC_URI=""
S=${WORKDIR}/${P}/${PN}
else
SRC_URI="https://github.com/ament/ament_cmake/archive/${PV}.tar.gz -> ${ROS_PN}-${PV}.tar.gz"
S="${WORKDIR}/${ROS_PN}-${PV}/${PN}"
fi
DESCRIPTION="Export link flags to downstream packages in the ament buildsystem"
HOMEPAGE="https://github.com/ament/ament_cmake"
LICENSE="Apache-2.0"
SLOT="0"
if [ "${PV#9999}" != "${PV}" ] ; then
KEYWORDS=""
else
KEYWORDS="~amd64"
fi
IUSE=""
RDEPEND="
dev-ros/ament_cmake_core
"
DEPEND="${RDEPEND}"
# Deps here are transitive from ament_cmake_core to have matching python support
BDEPEND="
$(python_gen_any_dep 'dev-python/ament_package[${PYTHON_USEDEP}] dev-python/catkin_pkg[${PYTHON_USEDEP}]')
${PYTHON_DEPS}
"
python_check_deps() {
has_version "dev-python/ament_package[${PYTHON_USEDEP}]" && \
has_version "dev-python/catkin_pkg[${PYTHON_USEDEP}]"
}

@ -1 +1,2 @@
DIST ament_cmake-0.9.6.tar.gz 60800 BLAKE2B 71c4e71c50b7715bb8f1b5b737ce23e30f79459a14a5866801bcb810b8fe82d807b6a4eae11de427f52c618e14ef22b7693905f1a0200cc38f0ffab1d70e80cd SHA512 c923260bbd0142ea57bf3e868e94e76020939e8ec49cbf23f14221d0048f21efed00dcdae9978e00f246725ba216c151f5d53b1cd94297b8731f53dc0e45b554
DIST ament_cmake-1.0.0.tar.gz 63304 BLAKE2B dd0c4bc5b72d9143cfb8ee9caae236a3608981ee8523e879ea9c168d64fd1d0cb84e54679cfc0cfc58ffff34519bb1032afc956c3130c1da8b4f98d60a9191be SHA512 69236015368df29a128eceeb64dd1c683eb32a44188b52120592238f999be8c8c7c5892a36ddcef48b6686bf97eba77e820ca3b8896c64ec1522661fa3ed4fc7

@ -0,0 +1,47 @@
# Copyright 2019-2020 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
PYTHON_COMPAT=( python{3_6,3_7,3_8} )
inherit cmake python-any-r1
ROS_PN="ament_cmake"
if [ "${PV#9999}" != "${PV}" ] ; then
inherit git-r3
EGIT_REPO_URI="https://github.com/ament/ament_cmake"
SRC_URI=""
S=${WORKDIR}/${P}/${PN}
else
SRC_URI="https://github.com/ament/ament_cmake/archive/${PV}.tar.gz -> ${ROS_PN}-${PV}.tar.gz"
S="${WORKDIR}/${ROS_PN}-${PV}/${PN}"
fi
DESCRIPTION="Export targets to downstream packages in the ament buildsystem"
HOMEPAGE="https://github.com/ament/ament_cmake"
LICENSE="Apache-2.0"
SLOT="0"
if [ "${PV#9999}" != "${PV}" ] ; then
KEYWORDS=""
else
KEYWORDS="~amd64"
fi
IUSE=""
RDEPEND="
dev-ros/ament_cmake_core
dev-ros/ament_cmake_export_libraries
"
DEPEND="${RDEPEND}"
# Deps here are transitive from ament_cmake_core to have matching python support
BDEPEND="
$(python_gen_any_dep 'dev-python/ament_package[${PYTHON_USEDEP}] dev-python/catkin_pkg[${PYTHON_USEDEP}]')
${PYTHON_DEPS}
"
python_check_deps() {
has_version "dev-python/ament_package[${PYTHON_USEDEP}]" && \
has_version "dev-python/catkin_pkg[${PYTHON_USEDEP}]"
}

@ -1 +1,2 @@
DIST ament_cmake-0.9.6.tar.gz 60800 BLAKE2B 71c4e71c50b7715bb8f1b5b737ce23e30f79459a14a5866801bcb810b8fe82d807b6a4eae11de427f52c618e14ef22b7693905f1a0200cc38f0ffab1d70e80cd SHA512 c923260bbd0142ea57bf3e868e94e76020939e8ec49cbf23f14221d0048f21efed00dcdae9978e00f246725ba216c151f5d53b1cd94297b8731f53dc0e45b554
DIST ament_cmake-1.0.0.tar.gz 63304 BLAKE2B dd0c4bc5b72d9143cfb8ee9caae236a3608981ee8523e879ea9c168d64fd1d0cb84e54679cfc0cfc58ffff34519bb1032afc956c3130c1da8b4f98d60a9191be SHA512 69236015368df29a128eceeb64dd1c683eb32a44188b52120592238f999be8c8c7c5892a36ddcef48b6686bf97eba77e820ca3b8896c64ec1522661fa3ed4fc7

@ -0,0 +1,46 @@
# Copyright 2019-2020 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
PYTHON_COMPAT=( python{3_6,3_7,3_8} )
inherit cmake python-any-r1
ROS_PN="ament_cmake"
if [ "${PV#9999}" != "${PV}" ] ; then
inherit git-r3
EGIT_REPO_URI="https://github.com/ament/ament_cmake"
SRC_URI=""
S=${WORKDIR}/${P}/${PN}
else
SRC_URI="https://github.com/ament/ament_cmake/archive/${PV}.tar.gz -> ${ROS_PN}-${PV}.tar.gz"
S="${WORKDIR}/${ROS_PN}-${PV}/${PN}"
fi
DESCRIPTION="The ability to add gtest-based tests in the ament buildsystem"
HOMEPAGE="https://github.com/ament/ament_cmake"
LICENSE="Apache-2.0"
SLOT="0"
if [ "${PV#9999}" != "${PV}" ] ; then
KEYWORDS=""
else
KEYWORDS="~amd64"
fi
IUSE=""
RDEPEND="
dev-ros/ament_cmake_core
"
DEPEND="${RDEPEND}"
# Deps here are transitive from ament_cmake_core to have matching python support
BDEPEND="
$(python_gen_any_dep 'dev-python/ament_package[${PYTHON_USEDEP}] dev-python/catkin_pkg[${PYTHON_USEDEP}]')
${PYTHON_DEPS}
"
python_check_deps() {
has_version "dev-python/ament_package[${PYTHON_USEDEP}]" && \
has_version "dev-python/catkin_pkg[${PYTHON_USEDEP}]"
}

@ -1 +1,2 @@
DIST ament_cmake-0.9.6.tar.gz 60800 BLAKE2B 71c4e71c50b7715bb8f1b5b737ce23e30f79459a14a5866801bcb810b8fe82d807b6a4eae11de427f52c618e14ef22b7693905f1a0200cc38f0ffab1d70e80cd SHA512 c923260bbd0142ea57bf3e868e94e76020939e8ec49cbf23f14221d0048f21efed00dcdae9978e00f246725ba216c151f5d53b1cd94297b8731f53dc0e45b554
DIST ament_cmake-1.0.0.tar.gz 63304 BLAKE2B dd0c4bc5b72d9143cfb8ee9caae236a3608981ee8523e879ea9c168d64fd1d0cb84e54679cfc0cfc58ffff34519bb1032afc956c3130c1da8b4f98d60a9191be SHA512 69236015368df29a128eceeb64dd1c683eb32a44188b52120592238f999be8c8c7c5892a36ddcef48b6686bf97eba77e820ca3b8896c64ec1522661fa3ed4fc7

@ -0,0 +1,46 @@
# Copyright 2019-2020 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
PYTHON_COMPAT=( python{3_6,3_7,3_8} )
inherit cmake python-any-r1
ROS_PN="ament_cmake"
if [ "${PV#9999}" != "${PV}" ] ; then
inherit git-r3
EGIT_REPO_URI="https://github.com/ament/ament_cmake"
SRC_URI=""
S=${WORKDIR}/${P}/${PN}
else
SRC_URI="https://github.com/ament/ament_cmake/archive/${PV}.tar.gz -> ${ROS_PN}-${PV}.tar.gz"
S="${WORKDIR}/${ROS_PN}-${PV}/${PN}"
fi
DESCRIPTION="Export include directories to downstream packages in the ament buildsystem"
HOMEPAGE="https://github.com/ament/ament_cmake"
LICENSE="Apache-2.0"
SLOT="0"
if [ "${PV#9999}" != "${PV}" ] ; then
KEYWORDS=""
else
KEYWORDS="~amd64"
fi
IUSE=""
RDEPEND="
dev-ros/ament_cmake_core
"
DEPEND="${RDEPEND}"
# Deps here are transitive from ament_cmake_core to have matching python support
BDEPEND="
$(python_gen_any_dep 'dev-python/ament_package[${PYTHON_USEDEP}] dev-python/catkin_pkg[${PYTHON_USEDEP}]')
${PYTHON_DEPS}
"
python_check_deps() {
has_version "dev-python/ament_package[${PYTHON_USEDEP}]" && \
has_version "dev-python/catkin_pkg[${PYTHON_USEDEP}]"
}

@ -1 +1,2 @@
DIST ament_cmake-0.9.6.tar.gz 60800 BLAKE2B 71c4e71c50b7715bb8f1b5b737ce23e30f79459a14a5866801bcb810b8fe82d807b6a4eae11de427f52c618e14ef22b7693905f1a0200cc38f0ffab1d70e80cd SHA512 c923260bbd0142ea57bf3e868e94e76020939e8ec49cbf23f14221d0048f21efed00dcdae9978e00f246725ba216c151f5d53b1cd94297b8731f53dc0e45b554
DIST ament_cmake-1.0.0.tar.gz 63304 BLAKE2B dd0c4bc5b72d9143cfb8ee9caae236a3608981ee8523e879ea9c168d64fd1d0cb84e54679cfc0cfc58ffff34519bb1032afc956c3130c1da8b4f98d60a9191be SHA512 69236015368df29a128eceeb64dd1c683eb32a44188b52120592238f999be8c8c7c5892a36ddcef48b6686bf97eba77e820ca3b8896c64ec1522661fa3ed4fc7

@ -0,0 +1,46 @@
# Copyright 2019-2020 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
PYTHON_COMPAT=( python{3_6,3_7,3_8} )
inherit cmake python-any-r1
ROS_PN="ament_cmake"
if [ "${PV#9999}" != "${PV}" ] ; then
inherit git-r3
EGIT_REPO_URI="https://github.com/ament/ament_cmake"
SRC_URI=""
S=${WORKDIR}/${P}/${PN}
else
SRC_URI="https://github.com/ament/ament_cmake/archive/${PV}.tar.gz -> ${ROS_PN}-${PV}.tar.gz"
S="${WORKDIR}/${ROS_PN}-${PV}/${PN}"
fi
DESCRIPTION="The functionality to deduplicate libraries in the ament buildsystem"
HOMEPAGE="https://github.com/ament/ament_cmake"
LICENSE="Apache-2.0"
SLOT="0"
if [ "${PV#9999}" != "${PV}" ] ; then
KEYWORDS=""
else
KEYWORDS="~amd64"
fi
IUSE=""
RDEPEND="
dev-ros/ament_cmake_core
"
DEPEND="${RDEPEND}"
# Deps here are transitive from ament_cmake_core to have matching python support
BDEPEND="
$(python_gen_any_dep 'dev-python/ament_package[${PYTHON_USEDEP}] dev-python/catkin_pkg[${PYTHON_USEDEP}]')
${PYTHON_DEPS}
"
python_check_deps() {
has_version "dev-python/ament_package[${PYTHON_USEDEP}]" && \
has_version "dev-python/catkin_pkg[${PYTHON_USEDEP}]"
}

@ -1 +1,2 @@
DIST ament_cmake-0.9.6.tar.gz 60800 BLAKE2B 71c4e71c50b7715bb8f1b5b737ce23e30f79459a14a5866801bcb810b8fe82d807b6a4eae11de427f52c618e14ef22b7693905f1a0200cc38f0ffab1d70e80cd SHA512 c923260bbd0142ea57bf3e868e94e76020939e8ec49cbf23f14221d0048f21efed00dcdae9978e00f246725ba216c151f5d53b1cd94297b8731f53dc0e45b554
DIST ament_cmake-1.0.0.tar.gz 63304 BLAKE2B dd0c4bc5b72d9143cfb8ee9caae236a3608981ee8523e879ea9c168d64fd1d0cb84e54679cfc0cfc58ffff34519bb1032afc956c3130c1da8b4f98d60a9191be SHA512 69236015368df29a128eceeb64dd1c683eb32a44188b52120592238f999be8c8c7c5892a36ddcef48b6686bf97eba77e820ca3b8896c64ec1522661fa3ed4fc7

@ -0,0 +1,47 @@
# Copyright 2019-2020 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
PYTHON_COMPAT=( python{3_6,3_7,3_8} )
inherit cmake python-any-r1
ROS_PN="ament_cmake"
if [ "${PV#9999}" != "${PV}" ] ; then
inherit git-r3
EGIT_REPO_URI="https://github.com/ament/ament_cmake"
SRC_URI=""
S=${WORKDIR}/${P}/${PN}
else
SRC_URI="https://github.com/ament/ament_cmake/archive/${PV}.tar.gz -> ${ROS_PN}-${PV}.tar.gz"
S="${WORKDIR}/${ROS_PN}-${PV}/${PN}"
fi
DESCRIPTION="The ability to use Python in the ament buildsystem"
HOMEPAGE="https://github.com/ament/ament_cmake"
LICENSE="Apache-2.0"
SLOT="0"
if [ "${PV#9999}" != "${PV}" ] ; then
KEYWORDS=""
else
KEYWORDS="~amd64"
fi
IUSE=""
RDEPEND="
dev-ros/ament_cmake_core
"
DEPEND="${RDEPEND}"
# Deps here are transitive from ament_cmake_core to have matching python support
BDEPEND="
$(python_gen_any_dep 'dev-python/ament_package[${PYTHON_USEDEP}] dev-python/catkin_pkg[${PYTHON_USEDEP}]')
${PYTHON_DEPS}
"
PATCHES=( "${FILESDIR}/destdir.patch" )
python_check_deps() {
has_version "dev-python/ament_package[${PYTHON_USEDEP}]" && \
has_version "dev-python/catkin_pkg[${PYTHON_USEDEP}]"
}

@ -1 +1,2 @@
DIST ament_cmake-0.9.6.tar.gz 60800 BLAKE2B 71c4e71c50b7715bb8f1b5b737ce23e30f79459a14a5866801bcb810b8fe82d807b6a4eae11de427f52c618e14ef22b7693905f1a0200cc38f0ffab1d70e80cd SHA512 c923260bbd0142ea57bf3e868e94e76020939e8ec49cbf23f14221d0048f21efed00dcdae9978e00f246725ba216c151f5d53b1cd94297b8731f53dc0e45b554
DIST ament_cmake-1.0.0.tar.gz 63304 BLAKE2B dd0c4bc5b72d9143cfb8ee9caae236a3608981ee8523e879ea9c168d64fd1d0cb84e54679cfc0cfc58ffff34519bb1032afc956c3130c1da8b4f98d60a9191be SHA512 69236015368df29a128eceeb64dd1c683eb32a44188b52120592238f999be8c8c7c5892a36ddcef48b6686bf97eba77e820ca3b8896c64ec1522661fa3ed4fc7

@ -0,0 +1,48 @@
# Copyright 2019-2020 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
PYTHON_COMPAT=( python{3_6,3_7,3_8} )
inherit cmake python-any-r1
ROS_PN="ament_cmake"
if [ "${PV#9999}" != "${PV}" ] ; then
inherit git-r3
EGIT_REPO_URI="https://github.com/ament/ament_cmake"
SRC_URI=""
S=${WORKDIR}/${P}/${PN}
else
SRC_URI="https://github.com/ament/ament_cmake/archive/${PV}.tar.gz -> ${ROS_PN}-${PV}.tar.gz"
S="${WORKDIR}/${ROS_PN}-${PV}/${PN}"
fi
DESCRIPTION="Add defs, include dirs and libs to a target in the ament buildsystem"
HOMEPAGE="https://github.com/ament/ament_cmake"
LICENSE="Apache-2.0"
SLOT="0"
if [ "${PV#9999}" != "${PV}" ] ; then
KEYWORDS=""
else
KEYWORDS="~amd64"
fi
IUSE=""
RDEPEND="
dev-ros/ament_cmake_core
dev-ros/ament_cmake_include_directories
dev-ros/ament_cmake_libraries
"
DEPEND="${RDEPEND}"
# Deps here are transitive from ament_cmake_core to have matching python support
BDEPEND="
$(python_gen_any_dep 'dev-python/ament_package[${PYTHON_USEDEP}] dev-python/catkin_pkg[${PYTHON_USEDEP}]')
${PYTHON_DEPS}
"
python_check_deps() {
has_version "dev-python/ament_package[${PYTHON_USEDEP}]" && \
has_version "dev-python/catkin_pkg[${PYTHON_USEDEP}]"
}

@ -1 +1,2 @@
DIST ament_cmake-0.9.6.tar.gz 60800 BLAKE2B 71c4e71c50b7715bb8f1b5b737ce23e30f79459a14a5866801bcb810b8fe82d807b6a4eae11de427f52c618e14ef22b7693905f1a0200cc38f0ffab1d70e80cd SHA512 c923260bbd0142ea57bf3e868e94e76020939e8ec49cbf23f14221d0048f21efed00dcdae9978e00f246725ba216c151f5d53b1cd94297b8731f53dc0e45b554
DIST ament_cmake-1.0.0.tar.gz 63304 BLAKE2B dd0c4bc5b72d9143cfb8ee9caae236a3608981ee8523e879ea9c168d64fd1d0cb84e54679cfc0cfc58ffff34519bb1032afc956c3130c1da8b4f98d60a9191be SHA512 69236015368df29a128eceeb64dd1c683eb32a44188b52120592238f999be8c8c7c5892a36ddcef48b6686bf97eba77e820ca3b8896c64ec1522661fa3ed4fc7

Some files were not shown because too many files have changed in this diff Show More

Loading…
Cancel
Save