Accepting request 765315 from home:StefanBruens:branches:openSUSE:Factory:Staging:O
Fix failing Django/Django1 testsuites Fix some more errors OBS-URL: https://build.opensuse.org/request/show/765315 OBS-URL: https://build.opensuse.org/package/show/server:database/sqlite3?expand=0&rev=236
This commit is contained in:
parent
5ce7153b11
commit
e5d5862acb
23
548082dfab-Improvements-to-the-LEFT-JOIN.patch
Normal file
23
548082dfab-Improvements-to-the-LEFT-JOIN.patch
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
Index: src/expr.c
|
||||||
|
==================================================================
|
||||||
|
--- src/expr.c
|
||||||
|
+++ src/expr.c
|
||||||
|
@@ -5229,12 +5229,16 @@
|
||||||
|
** ordinary join.
|
||||||
|
*/
|
||||||
|
int sqlite3ExprImpliesNonNullRow(Expr *p, int iTab){
|
||||||
|
Walker w;
|
||||||
|
p = sqlite3ExprSkipCollateAndLikely(p);
|
||||||
|
- if( p && p->op==TK_NOTNULL ){
|
||||||
|
+ if( p==0 ) return 0;
|
||||||
|
+ if( p->op==TK_NOTNULL ){
|
||||||
|
p = p->pLeft;
|
||||||
|
+ }else if( p->op==TK_AND ){
|
||||||
|
+ if( sqlite3ExprImpliesNonNullRow(p->pLeft, iTab) ) return 1;
|
||||||
|
+ p = p->pRight;
|
||||||
|
}
|
||||||
|
w.xExprCallback = impliesNotNullRow;
|
||||||
|
w.xSelectCallback = 0;
|
||||||
|
w.xSelectCallback2 = 0;
|
||||||
|
w.eCode = 0;
|
||||||
|
|
91
7833feecfe-Prevent-SQLite-from-bad-NULL-assumption.patch
Normal file
91
7833feecfe-Prevent-SQLite-from-bad-NULL-assumption.patch
Normal file
@ -0,0 +1,91 @@
|
|||||||
|
Index: src/expr.c
|
||||||
|
==================================================================
|
||||||
|
--- src/expr.c
|
||||||
|
+++ src/expr.c
|
||||||
|
@@ -5166,14 +5166,15 @@
|
||||||
|
return WRC_Abort;
|
||||||
|
}
|
||||||
|
return WRC_Prune;
|
||||||
|
|
||||||
|
case TK_AND:
|
||||||
|
- if( sqlite3ExprImpliesNonNullRow(pExpr->pLeft, pWalker->u.iCur)
|
||||||
|
- && sqlite3ExprImpliesNonNullRow(pExpr->pRight, pWalker->u.iCur)
|
||||||
|
- ){
|
||||||
|
- pWalker->eCode = 1;
|
||||||
|
+ assert( pWalker->eCode==0 );
|
||||||
|
+ sqlite3WalkExpr(pWalker, pExpr->pLeft);
|
||||||
|
+ if( pWalker->eCode ){
|
||||||
|
+ pWalker->eCode = 0;
|
||||||
|
+ sqlite3WalkExpr(pWalker, pExpr->pRight);
|
||||||
|
}
|
||||||
|
return WRC_Prune;
|
||||||
|
|
||||||
|
case TK_BETWEEN:
|
||||||
|
sqlite3WalkExpr(pWalker, pExpr->pLeft);
|
||||||
|
@@ -5228,19 +5229,12 @@
|
||||||
|
** ordinary join.
|
||||||
|
*/
|
||||||
|
int sqlite3ExprImpliesNonNullRow(Expr *p, int iTab){
|
||||||
|
Walker w;
|
||||||
|
p = sqlite3ExprSkipCollateAndLikely(p);
|
||||||
|
- while( p ){
|
||||||
|
- if( p->op==TK_NOTNULL ){
|
||||||
|
- p = p->pLeft;
|
||||||
|
- }else if( p->op==TK_AND ){
|
||||||
|
- if( sqlite3ExprImpliesNonNullRow(p->pLeft, iTab) ) return 1;
|
||||||
|
- p = p->pRight;
|
||||||
|
- }else{
|
||||||
|
- break;
|
||||||
|
- }
|
||||||
|
+ if( p && p->op==TK_NOTNULL ){
|
||||||
|
+ p = p->pLeft;
|
||||||
|
}
|
||||||
|
w.xExprCallback = impliesNotNullRow;
|
||||||
|
w.xSelectCallback = 0;
|
||||||
|
w.xSelectCallback2 = 0;
|
||||||
|
w.eCode = 0;
|
||||||
|
|
||||||
|
Index: test/join.test
|
||||||
|
==================================================================
|
||||||
|
--- test/join.test
|
||||||
|
+++ test/join.test
|
||||||
|
@@ -902,8 +902,38 @@
|
||||||
|
} {1 {}}
|
||||||
|
|
||||||
|
do_execsql_test join-18.4 {
|
||||||
|
SELECT NOT(v0.a IS FALSE) FROM v0
|
||||||
|
} {1}
|
||||||
|
+
|
||||||
|
+#-------------------------------------------------------------------------
|
||||||
|
+reset_db
|
||||||
|
+do_execsql_test join-19.0 {
|
||||||
|
+ CREATE TABLE t1(a);
|
||||||
|
+ CREATE TABLE t2(b);
|
||||||
|
+ INSERT INTO t1(a) VALUES(0);
|
||||||
|
+ CREATE VIEW v0(c) AS SELECT t2.b FROM t1 LEFT JOIN t2;
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+do_execsql_test join-19.1 {
|
||||||
|
+ SELECT * FROM v0 WHERE v0.c NOTNULL NOTNULL;
|
||||||
|
+} {{}}
|
||||||
|
+
|
||||||
|
+do_execsql_test join-19.2 {
|
||||||
|
+ SELECT * FROM t1 LEFT JOIN t2
|
||||||
|
+} {0 {}}
|
||||||
|
+
|
||||||
|
+do_execsql_test join-19.3 {
|
||||||
|
+ SELECT * FROM t1 LEFT JOIN t2 WHERE (b IS NOT NULL) IS NOT NULL;
|
||||||
|
+} {0 {}}
|
||||||
|
+
|
||||||
|
+do_execsql_test join-19.4 {
|
||||||
|
+ SELECT (b IS NOT NULL) IS NOT NULL FROM t1 LEFT JOIN t2
|
||||||
|
+} {1}
|
||||||
|
+
|
||||||
|
+do_execsql_test join-19.5 {
|
||||||
|
+ SELECT * FROM t1 LEFT JOIN t2 WHERE
|
||||||
|
+ (b IS NOT NULL AND b IS NOT NULL) IS NOT NULL;
|
||||||
|
+} {0 {}}
|
||||||
|
|
||||||
|
finish_test
|
||||||
|
|
||||||
|
|
24
8a39167bd2-Further-improvements-to-LEFT-JOIN.patch
Normal file
24
8a39167bd2-Further-improvements-to-LEFT-JOIN.patch
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
Index: src/expr.c
|
||||||
|
==================================================================
|
||||||
|
--- src/expr.c
|
||||||
|
+++ src/expr.c
|
||||||
|
@@ -5232,13 +5232,15 @@
|
||||||
|
Walker w;
|
||||||
|
p = sqlite3ExprSkipCollateAndLikely(p);
|
||||||
|
if( p==0 ) return 0;
|
||||||
|
if( p->op==TK_NOTNULL ){
|
||||||
|
p = p->pLeft;
|
||||||
|
- }else if( p->op==TK_AND ){
|
||||||
|
- if( sqlite3ExprImpliesNonNullRow(p->pLeft, iTab) ) return 1;
|
||||||
|
- p = p->pRight;
|
||||||
|
+ }else{
|
||||||
|
+ while( p->op==TK_AND ){
|
||||||
|
+ if( sqlite3ExprImpliesNonNullRow(p->pLeft, iTab) ) return 1;
|
||||||
|
+ p = p->pRight;
|
||||||
|
+ }
|
||||||
|
}
|
||||||
|
w.xExprCallback = impliesNotNullRow;
|
||||||
|
w.xSelectCallback = 0;
|
||||||
|
w.xSelectCallback2 = 0;
|
||||||
|
w.eCode = 0;
|
||||||
|
|
12
fix_dir_exists_on_btrfs.patch
Normal file
12
fix_dir_exists_on_btrfs.patch
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
--- src/os_unix.c_orig 2019-12-26 00:56:55.810897741 +0100
|
||||||
|
+++ src/os_unix.c 2019-12-26 00:59:29.904449135 +0100
|
||||||
|
@@ -6259,7 +6259,8 @@
|
||||||
|
|
||||||
|
if( flags==SQLITE_ACCESS_EXISTS ){
|
||||||
|
struct stat buf;
|
||||||
|
- *pResOut = (0==osStat(zPath, &buf) && buf.st_size>0);
|
||||||
|
+ *pResOut = (0==osStat(zPath, &buf) &&
|
||||||
|
+ ((buf.st_size>0) || S_ISDIR(buf.st_mode)));
|
||||||
|
}else{
|
||||||
|
*pResOut = osAccess(zPath, W_OK|R_OK)==0;
|
||||||
|
}
|
18
sqlite3-avoid-truncation-error.patch
Normal file
18
sqlite3-avoid-truncation-error.patch
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
Index: src/date.c
|
||||||
|
==================================================================
|
||||||
|
--- src/date.c
|
||||||
|
+++ src/date.c
|
||||||
|
@@ -686,11 +686,11 @@
|
||||||
|
*/
|
||||||
|
if( sqlite3_stricmp(z, "unixepoch")==0 && p->rawS ){
|
||||||
|
r = p->s*1000.0 + 210866760000000.0;
|
||||||
|
if( r>=0.0 && r<464269060800000.0 ){
|
||||||
|
clearYMD_HMS_TZ(p);
|
||||||
|
- p->iJD = (sqlite3_int64)r;
|
||||||
|
+ p->iJD = (sqlite3_int64)(r + 0.5);
|
||||||
|
p->validJD = 1;
|
||||||
|
p->rawS = 0;
|
||||||
|
rc = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -1,147 +0,0 @@
|
|||||||
Index: sqlite-src-3300100/ext/fts5/test/fts5misc.test
|
|
||||||
===================================================================
|
|
||||||
--- sqlite-src-3300100.orig/ext/fts5/test/fts5misc.test
|
|
||||||
+++ sqlite-src-3300100/ext/fts5/test/fts5misc.test
|
|
||||||
@@ -106,6 +106,31 @@ do_execsql_test 2.2.5 {
|
|
||||||
INSERT INTO vt0(vt0) VALUES('integrity-check');
|
|
||||||
}
|
|
||||||
|
|
||||||
+#-------------------------------------------------------------------------
|
|
||||||
+#
|
|
||||||
+reset_db
|
|
||||||
+do_execsql_test 7.0 {
|
|
||||||
+ CREATE VIRTUAL TABLE t1 USING fts5(x);
|
|
||||||
+ INSERT INTO t1(rowid, x) VALUES(1, 'hello world');
|
|
||||||
+ INSERT INTO t1(rowid, x) VALUES(2, 'well said');
|
|
||||||
+ INSERT INTO t1(rowid, x) VALUES(3, 'hello said');
|
|
||||||
+ INSERT INTO t1(rowid, x) VALUES(4, 'well world');
|
|
||||||
+
|
|
||||||
+ CREATE TABLE t2 (a, b);
|
|
||||||
+ INSERT INTO t2 VALUES(1, 'hello');
|
|
||||||
+ INSERT INTO t2 VALUES(2, 'world');
|
|
||||||
+ INSERT INTO t2 VALUES(3, 'said');
|
|
||||||
+ INSERT INTO t2 VALUES(4, 'hello');
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+do_execsql_test 7.1 {
|
|
||||||
+ SELECT rowid FROM t1 WHERE (rowid, x) IN (SELECT a, b FROM t2);
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+do_execsql_test 7.2 {
|
|
||||||
+ SELECT rowid FROM t1 WHERE rowid=2 AND t1 = 'hello';
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
|
|
||||||
finish_test
|
|
||||||
|
|
||||||
Index: sqlite-src-3300100/src/wherecode.c
|
|
||||||
===================================================================
|
|
||||||
--- sqlite-src-3300100.orig/src/wherecode.c
|
|
||||||
+++ sqlite-src-3300100/src/wherecode.c
|
|
||||||
@@ -1307,7 +1307,9 @@ Bitmask sqlite3WhereCodeOneLoopStart(
|
|
||||||
pTerm = pLoop->aLTerm[j];
|
|
||||||
if( j<16 && (pLoop->u.vtab.omitMask>>j)&1 ){
|
|
||||||
disableTerm(pLevel, pTerm);
|
|
||||||
- }else if( (pTerm->eOperator & WO_IN)!=0 ){
|
|
||||||
+ }else if( (pTerm->eOperator & WO_IN)!=0 &&
|
|
||||||
+ sqlite3ExprVectorSize(pTerm->pExpr->pLeft)==1
|
|
||||||
+ ){
|
|
||||||
Expr *pCompare; /* The comparison operator */
|
|
||||||
Expr *pRight; /* RHS of the comparison */
|
|
||||||
VdbeOp *pOp; /* Opcode to access the value of the IN constraint */
|
|
||||||
Index: sqlite-src-3300100/test/rowvaluevtab.test
|
|
||||||
===================================================================
|
|
||||||
--- /dev/null
|
|
||||||
+++ sqlite-src-3300100/test/rowvaluevtab.test
|
|
||||||
@@ -0,0 +1,91 @@
|
|
||||||
+# 2018 October 14
|
|
||||||
+#
|
|
||||||
+# 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.
|
|
||||||
+#
|
|
||||||
+#***********************************************************************
|
|
||||||
+#
|
|
||||||
+
|
|
||||||
+
|
|
||||||
+set testdir [file dirname $argv0]
|
|
||||||
+source $testdir/tester.tcl
|
|
||||||
+set ::testprefix rowvaluevtab
|
|
||||||
+
|
|
||||||
+register_echo_module db
|
|
||||||
+
|
|
||||||
+do_execsql_test 1.0 {
|
|
||||||
+ CREATE TABLE t1(a, b, c);
|
|
||||||
+ CREATE INDEX t1b ON t1(b);
|
|
||||||
+ INSERT INTO t1 VALUES('one', 1, 1);
|
|
||||||
+ INSERT INTO t1 VALUES('two', 1, 2);
|
|
||||||
+ INSERT INTO t1 VALUES('three', 1, 3);
|
|
||||||
+ INSERT INTO t1 VALUES('four', 2, 1);
|
|
||||||
+ INSERT INTO t1 VALUES('five', 2, 2);
|
|
||||||
+ INSERT INTO t1 VALUES('six', 2, 3);
|
|
||||||
+ INSERT INTO t1 VALUES('seven', 3, 1);
|
|
||||||
+ INSERT INTO t1 VALUES('eight', 3, 2);
|
|
||||||
+ INSERT INTO t1 VALUES('nine', 3, 3);
|
|
||||||
+
|
|
||||||
+ WITH s(i) AS (
|
|
||||||
+ SELECT 1 UNION ALL SELECT i+1 FROM s WHERE i<10000
|
|
||||||
+ ) INSERT INTO t1 SELECT NULL, NULL, NULL FROM s;
|
|
||||||
+ CREATE VIRTUAL TABLE e1 USING echo(t1);
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+proc do_vfilter4_test {tn sql expected} {
|
|
||||||
+ set res [list]
|
|
||||||
+ db eval "explain $sql" {
|
|
||||||
+ if {$opcode=="VFilter"} {
|
|
||||||
+ lappend res $p4
|
|
||||||
+ }
|
|
||||||
+ }
|
|
||||||
+ uplevel [list do_test $tn [list set {} $res] [list {*}$expected]]
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+do_execsql_test 1.1 {
|
|
||||||
+ SELECT a FROM e1 WHERE (b, c) = (2, 2)
|
|
||||||
+} {five}
|
|
||||||
+do_vfilter4_test 1.1f {
|
|
||||||
+ SELECT a FROM e1 WHERE (b, c) = (?, ?)
|
|
||||||
+} {{SELECT rowid, a, b, c FROM 't1' WHERE b = ?}}
|
|
||||||
+
|
|
||||||
+do_execsql_test 1.2 {
|
|
||||||
+ SELECT a FROM e1 WHERE (b, c) > (2, 2)
|
|
||||||
+} {six seven eight nine}
|
|
||||||
+do_vfilter4_test 1.2f {
|
|
||||||
+ SELECT a FROM e1 WHERE (b, c) > (2, 2)
|
|
||||||
+} {
|
|
||||||
+ {SELECT rowid, a, b, c FROM 't1' WHERE b >= ?}
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+do_execsql_test 1.3 {
|
|
||||||
+ SELECT a FROM e1 WHERE (b, c) >= (2, 2)
|
|
||||||
+} {five six seven eight nine}
|
|
||||||
+do_vfilter4_test 1.3f {
|
|
||||||
+ SELECT a FROM e1 WHERE (b, c) >= (2, 2)
|
|
||||||
+} {
|
|
||||||
+ {SELECT rowid, a, b, c FROM 't1' WHERE b >= ?}
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+do_execsql_test 1.3 {
|
|
||||||
+ SELECT a FROM e1 WHERE (b, c) BETWEEN (1, 2) AND (2, 3)
|
|
||||||
+} {two three four five six}
|
|
||||||
+do_vfilter4_test 1.3f {
|
|
||||||
+ SELECT a FROM e1 WHERE (b, c) BETWEEN (1, 2) AND (2, 3)
|
|
||||||
+} {
|
|
||||||
+ {SELECT rowid, a, b, c FROM 't1' WHERE b >= ? AND b <= ?}
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+do_execsql_test 1.4 {
|
|
||||||
+ SELECT a FROM e1 WHERE (b, c) IN ( VALUES(2, 2) )
|
|
||||||
+} {five}
|
|
||||||
+do_vfilter4_test 1.4f {
|
|
||||||
+ SELECT a FROM e1 WHERE (b, c) IN ( VALUES(2, 2) )
|
|
||||||
+} {{SELECT rowid, a, b, c FROM 't1' WHERE b = ?}}
|
|
||||||
+
|
|
||||||
+finish_test
|
|
||||||
+
|
|
@ -1,7 +1,16 @@
|
|||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
Tue Dec 10 11:30:35 UTC 2019 - Martin Pluskal <mpluskal@suse.com>
|
Fri Jan 17 14:29:39 UTC 2020 - Stefan Brüns <stefan.bruens@rwth-aachen.de>
|
||||||
|
|
||||||
- Add sqlite3-django.patch to fix builds of django
|
- Fix regression found when running python-Django/Djano1 testsuite:
|
||||||
|
+ 7833feecfe-Prevent-SQLite-from-bad-NULL-assumption.patch
|
||||||
|
+ 548082dfab-Improvements-to-the-LEFT-JOIN.patch
|
||||||
|
+ 8a39167bd2-Further-improvements-to-LEFT-JOIN.patch
|
||||||
|
- Fix check for existing dirs, triggers when running the testsuite
|
||||||
|
on BTRFS or XFS:
|
||||||
|
+ fix_dir_exists_on_btrfs.patch
|
||||||
|
- Fix truncation/bad rounding of timestamps in SQLite strftime
|
||||||
|
function, exposed when running testsuite on i586:
|
||||||
|
+ sqlite3-avoid-truncation-error.patch
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
Fri Oct 11 15:05:00 UTC 2019 - Andreas Stieger <andreas.stieger@gmx.de>
|
Fri Oct 11 15:05:00 UTC 2019 - Andreas Stieger <andreas.stieger@gmx.de>
|
||||||
@ -27,7 +36,7 @@ Sun Oct 6 15:43:57 UTC 2019 - Andreas Stieger <andreas.stieger@gmx.de>
|
|||||||
the type, name, and tbl_name columns of the sqlite_master table
|
the type, name, and tbl_name columns of the sqlite_master table
|
||||||
have been corrupted and the database connection is not in
|
have been corrupted and the database connection is not in
|
||||||
writable_schema mode.
|
writable_schema mode.
|
||||||
* The PRAGMA function_list, PRAGMA module_list, and PRAGMA
|
* The PRAGMA function_list, PRAGMA module_list, and PRAGMA
|
||||||
pragma_list commands are now enabled in all builds by default
|
pragma_list commands are now enabled in all builds by default
|
||||||
* Add the SQLITE_DBCONFIG_ENABLE_VIEW option for sqlite3_db_config().
|
* Add the SQLITE_DBCONFIG_ENABLE_VIEW option for sqlite3_db_config().
|
||||||
* Added the TCL Interface config method in order to be able to
|
* Added the TCL Interface config method in order to be able to
|
||||||
@ -35,7 +44,7 @@ Sun Oct 6 15:43:57 UTC 2019 - Andreas Stieger <andreas.stieger@gmx.de>
|
|||||||
sqlite3_db_config() options from TCL.
|
sqlite3_db_config() options from TCL.
|
||||||
* Added the SQLITE_DIRECTONLY flag for application-defined SQL
|
* Added the SQLITE_DIRECTONLY flag for application-defined SQL
|
||||||
functions to prevent those functions from being used inside
|
functions to prevent those functions from being used inside
|
||||||
triggers and views
|
triggers and views
|
||||||
- drop sqlite3-CVE-2019-16168.patch, upstream
|
- drop sqlite3-CVE-2019-16168.patch, upstream
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
|
34
sqlite3.spec
34
sqlite3.spec
@ -1,7 +1,7 @@
|
|||||||
#
|
#
|
||||||
# spec file for package sqlite3
|
# spec file for package sqlite3
|
||||||
#
|
#
|
||||||
# Copyright (c) 2019 SUSE LLC
|
# Copyright (c) 2020 SUSE LLC
|
||||||
#
|
#
|
||||||
# All modifications and additions to the file contributed by third parties
|
# All modifications and additions to the file contributed by third parties
|
||||||
# remain the property of their copyright owners, unless otherwise agreed
|
# remain the property of their copyright owners, unless otherwise agreed
|
||||||
@ -16,6 +16,7 @@
|
|||||||
#
|
#
|
||||||
|
|
||||||
|
|
||||||
|
%bcond_with icu
|
||||||
%define oname sqlite
|
%define oname sqlite
|
||||||
%define tarversion 3300100
|
%define tarversion 3300100
|
||||||
Name: sqlite3
|
Name: sqlite3
|
||||||
@ -28,8 +29,20 @@ URL: http://www.sqlite.org/
|
|||||||
Source0: http://www.sqlite.org/2019/sqlite-src-%{tarversion}.zip
|
Source0: http://www.sqlite.org/2019/sqlite-src-%{tarversion}.zip
|
||||||
Source1: baselibs.conf
|
Source1: baselibs.conf
|
||||||
Source2: http://www.sqlite.org/2019/sqlite-doc-%{tarversion}.zip
|
Source2: http://www.sqlite.org/2019/sqlite-doc-%{tarversion}.zip
|
||||||
Patch0: sqlite3-django.patch
|
# PATCH-FIX-UPSTREAM -- Fix errors with NULL
|
||||||
|
Patch0: 7833feecfe-Prevent-SQLite-from-bad-NULL-assumption.patch
|
||||||
|
# PATCH-FIX-UPSTREAM -- Fix errors in LEFT JOIN
|
||||||
|
Patch1: 548082dfab-Improvements-to-the-LEFT-JOIN.patch
|
||||||
|
# PATCH-FIX-UPSTREAM -- Fix errors in LEFT JOIN
|
||||||
|
Patch2: 8a39167bd2-Further-improvements-to-LEFT-JOIN.patch
|
||||||
|
# PATCH-FIX-UPSTREAM -- Fix incorrect check of stat.size for directories
|
||||||
|
Patch3: fix_dir_exists_on_btrfs.patch
|
||||||
|
# PATCH-FIX-OPENSUSE -- Fix error introduced by rounding and truncation, mostly visible on x86 / 80 bit floats
|
||||||
|
Patch4: sqlite3-avoid-truncation-error.patch
|
||||||
BuildRequires: automake
|
BuildRequires: automake
|
||||||
|
%if %{with icu}
|
||||||
|
BuildRequires: libicu-devel
|
||||||
|
%endif
|
||||||
BuildRequires: libtool
|
BuildRequires: libtool
|
||||||
BuildRequires: pkgconfig
|
BuildRequires: pkgconfig
|
||||||
BuildRequires: readline-devel
|
BuildRequires: readline-devel
|
||||||
@ -104,13 +117,19 @@ other documentation found on sqlite.org. The files can be found in
|
|||||||
|
|
||||||
%prep
|
%prep
|
||||||
%setup -q -n sqlite-src-%{tarversion} -a2
|
%setup -q -n sqlite-src-%{tarversion} -a2
|
||||||
%patch0 -p1
|
%patch0 -p0
|
||||||
|
%patch1 -p0
|
||||||
|
%patch2 -p0
|
||||||
|
%patch3 -p0
|
||||||
|
%patch4 -p0
|
||||||
|
|
||||||
rm -v sqlite-doc-%{tarversion}/releaselog/current.html
|
rm -v sqlite-doc-%{tarversion}/releaselog/current.html
|
||||||
ln -sv `echo %{version} | sed "s/\./_/g"`.html sqlite-doc-%{tarversion}/releaselog/current.html
|
ln -sv `echo %{version} | sed "s/\./_/g"`.html sqlite-doc-%{tarversion}/releaselog/current.html
|
||||||
find -type f -name sqlite.css~ -delete
|
find -type f -name sqlite.css~ -delete
|
||||||
|
cmp sqlite-doc-%{tarversion}/fileformat{,2}.html && ln -sf fileformat.html sqlite-doc-%{tarversion}/fileformat2.html
|
||||||
|
|
||||||
%build
|
%build
|
||||||
export LIBS="$LIBS -lm "
|
export LIBS="$LIBS -lm %{?with_icu:-licuuc -licui18n}"
|
||||||
export CFLAGS="%{optflags} \
|
export CFLAGS="%{optflags} \
|
||||||
-DSQLITE_ENABLE_API_ARMOR \
|
-DSQLITE_ENABLE_API_ARMOR \
|
||||||
-DSQLITE_ENABLE_COLUMN_METADATA \
|
-DSQLITE_ENABLE_COLUMN_METADATA \
|
||||||
@ -119,6 +138,9 @@ export CFLAGS="%{optflags} \
|
|||||||
-DSQLITE_ENABLE_FTS3 \
|
-DSQLITE_ENABLE_FTS3 \
|
||||||
-DSQLITE_ENABLE_FTS4 \
|
-DSQLITE_ENABLE_FTS4 \
|
||||||
-DSQLITE_ENABLE_FTS5 \
|
-DSQLITE_ENABLE_FTS5 \
|
||||||
|
%if %{with icu}
|
||||||
|
-DSQLITE_ENABLE_ICU \
|
||||||
|
%endif
|
||||||
-DSQLITE_ENABLE_JSON1 \
|
-DSQLITE_ENABLE_JSON1 \
|
||||||
-DSQLITE_ENABLE_RBU \
|
-DSQLITE_ENABLE_RBU \
|
||||||
-DSQLITE_ENABLE_RTREE \
|
-DSQLITE_ENABLE_RTREE \
|
||||||
@ -140,12 +162,8 @@ export CFLAGS="%{optflags} \
|
|||||||
make %{?_smp_mflags} sqlite3.c
|
make %{?_smp_mflags} sqlite3.c
|
||||||
make %{?_smp_mflags}
|
make %{?_smp_mflags}
|
||||||
|
|
||||||
%ifnarch %{ix86}
|
|
||||||
# Tests fail due to slight precision variation caused by FPU being 80-bit internally.
|
|
||||||
# see https://bugs.gentoo.org/628242
|
|
||||||
%check
|
%check
|
||||||
make %{?_smp_mflags} test
|
make %{?_smp_mflags} test
|
||||||
%endif
|
|
||||||
|
|
||||||
%install
|
%install
|
||||||
%make_install
|
%make_install
|
||||||
|
Loading…
Reference in New Issue
Block a user