Initialize for sqlite3

This commit is contained in:
zyppe 2024-02-29 15:47:12 +08:00
commit 48a335ffcc
6 changed files with 2648 additions and 0 deletions

2
.gitignore vendored Normal file
View file

@ -0,0 +1,2 @@
sqlite-doc-3440000.zip
sqlite-src-3440000.zip

2
.sqlite3.metadata Normal file
View file

@ -0,0 +1,2 @@
a7caee290cdbca3400aaddb722b423926ae8655e5ae1c198f631fa0d1ce0c99c sqlite-doc-3440000.zip
47ce1a4ed519afbe232e14276629699c5241584c7418565d3c2526cef11bf6d9 sqlite-src-3440000.zip

3
baselibs.conf Normal file
View file

@ -0,0 +1,3 @@
libsqlite3-0
obsoletes "sqlite-<targettype> <= <version>"
provides "sqlite-<targettype> = <version>"

26
sqlite3-rtree-i686.patch Normal file
View file

@ -0,0 +1,26 @@
---
ext/rtree/rtree1.test | 4 ++++
1 file changed, 4 insertions(+)
Index: sqlite-src-3440000/ext/rtree/rtree1.test
===================================================================
--- sqlite-src-3440000.orig/ext/rtree/rtree1.test
+++ sqlite-src-3440000/ext/rtree/rtree1.test
@@ -760,6 +760,9 @@ do_execsql_test 20.4 {
# Do not omit constraints that involve equality comparisons of
# floating-point values.
#
+if {![string match i*86 $tcl_platform(machine)]} {
+# It seems the fix wasn't sufficient for i[56]86, so the tests still
+# fail there and we disable them to fix build for now.
reset_db
do_execsql_test 21.0 {
CREATE VIRTUAL TABLE t1 USING rtree(id, x0, x1);
@@ -785,6 +788,7 @@ if {$tcl_platform(machine)!="i686" || $t
SELECT id, x0 > 9223372036854775807 AS 'a0' FROM t1;
} {123 1}
}
+}
# 2023-10-14 dbsqlfuzz --sql-fuzz find. rtreecheck() should not call
# BEGIN/COMMIT because that causes problems with statement transactions,

2417
sqlite3.changes Normal file

File diff suppressed because it is too large Load diff

198
sqlite3.spec Normal file
View file

@ -0,0 +1,198 @@
#
# spec file for package sqlite3
#
# Copyright (c) 2022-2023 ZhuningOS
#
%define oname sqlite
%define tarversion 3440000
%bcond_with icu
%bcond_without check
Name: sqlite3
Version: 3.44.0
Release: 150000.3.23.1
Summary: Embeddable SQL Database Engine
License: SUSE-Public-Domain
Group: Productivity/Databases/Servers
URL: https://www.sqlite.org/
Source0: https://www.sqlite.org/2023/sqlite-src-%{tarversion}.zip
Source1: baselibs.conf
Source2: https://www.sqlite.org/2023/sqlite-doc-%{tarversion}.zip
Patch0: sqlite3-rtree-i686.patch
BuildRequires: automake
BuildRequires: libtool
BuildRequires: pkgconfig
BuildRequires: readline-devel
BuildRequires: tcl-devel
BuildRequires: unzip
%if 0%{suse_version} < 1500
# As of 2021 we still need to be able to compile this on SLE-12
BuildRoot: %{_tmppath}/%{name}-%{version}-build
BuildRequires: zlib-devel
%global make_build make
%else
BuildRequires: pkgconfig(zlib)
%endif
Provides: %{oname} = %{version}
Obsoletes: %{oname} < %{version}
%if %{with icu}
BuildRequires: libicu-devel
%endif
%{?suse_build_hwcaps_libs}
%description
SQLite is a C library that implements an embeddable SQL database
engine. Programs that link with the SQLite library can have SQL
database access without running a separate RDBMS process.
SQLite is not a client library used to connect to a big database
server. SQLite is a server and the SQLite library reads and writes
directly to and from the database files on disk.
SQLite can be used via the sqlite command line tool or via any
application that supports the Qt database plug-ins.
%package -n libsqlite3-0
Summary: Shared libraries for the Embeddable SQL Database Engine
Group: Development/Libraries/C and C++
%description -n libsqlite3-0
This package contains the shared libraries for the Embeddable SQL
Database Engine.
SQLite is a C library that implements an embeddable SQL database
engine. Programs that link with the SQLite library can have SQL
database access without running a separate RDBMS process.
SQLite is not a client library used to connect to a big database
server. SQLite is a server and the SQLite library reads and writes
directly to and from the database files on disk.
SQLite can be used via the sqlite command line tool or via any
application that supports the Qt database plug-ins.
%package devel
Summary: Embeddable SQL Database Engine
Group: Development/Libraries/C and C++
Requires: glibc-devel
Requires: libsqlite3-0 = %{version}
Suggests: %{name}-doc
Provides: %{oname}-devel = %{version}
Obsoletes: %{oname}-devel < %{version}
%description devel
SQLite is a C library that implements an embeddable SQL database
engine. Programs that link with the SQLite library can have SQL
database access without running a separate RDBMS process.
SQLite is not a client library used to connect to a big database
server; SQLite is the server. The SQLite library reads and writes
directly to and from the database files on disk.
SQLite can be used via the sqlite command-line tool or via any
application which supports the Qt database plug-ins.
%package tcl
Summary: Tcl binding for SQLite
Group: Development/Libraries/Tcl
%description tcl
This package contains laguage bindings from the Tcl programming
language SQLite.
SQLite is a C library that implements an embeddable SQL database
engine. Programs that link with the SQLite library can have SQL
database access without running a separate RDBMS process.
%package doc
Summary: Documentation for %{name}
Group: Documentation/Other
BuildArch: noarch
%description doc
Contains HTML documentation for SQLite: SQL Syntax, C/C++ API and
other documentation found on sqlite.org. The files can be found in
%{_docdir}/%{name}-doc.
%prep
%autosetup -p1 -n sqlite-src-%{tarversion} -a2
rm -v 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
cmp sqlite-doc-%{tarversion}/fileformat{,2}.html && ln -sf fileformat.html sqlite-doc-%{tarversion}/fileformat2.html
%build
export TCLLIBDIR=%tcl_archdir/sqlite%version
export LIBS="$LIBS -lm %{?with_icu:-licuuc -licui18n}"
export CFLAGS="%{optflags} \
-DSQLITE_ENABLE_API_ARMOR \
-DSQLITE_ENABLE_COLUMN_METADATA \
-DSQLITE_ENABLE_DBSTAT_VTAB \
-DSQLITE_ENABLE_HIDDEN_COLUMNS \
-DSQLITE_ENABLE_FTS3 \
-DSQLITE_ENABLE_FTS4 \
-DSQLITE_ENABLE_FTS5 \
%if %{with icu}
-DSQLITE_ENABLE_ICU \
%endif
-DSQLITE_ENABLE_JSON1 \
-DSQLITE_ENABLE_RBU \
-DSQLITE_ENABLE_RTREE \
-DSQLITE_ENABLE_UPDATE_DELETE_LIMIT \
-DSQLITE_SOUNDEX \
-DSQLITE_ENABLE_UNLOCK_NOTIFY \
-DSQLITE_SECURE_DELETE \
-DSQLITE_ENABLE_MATH_FUNCTIONS \
"
%configure \
--disable-static \
--enable-readline \
--enable-fts3 \
--enable-fts4 \
--enable-fts5 \
--enable-update-limit \
--enable-rtree
%make_build sqlite3.c
%make_build
%if %{with check}
%check
%make_build test
%endif
%install
%make_install
#mkdir -p %{buildroot}/%{_mandir}/man{1,n}/
install -Dp -m 0644 -t %{buildroot}/%{_mandir}/man1 sqlite3.1
install -Dp -m 0644 -t %{buildroot}/%{_mandir}/mann autoconf/tea/doc/sqlite3.n
# tcl bindings are provided by tcl itself
#rm -rf %{buildroot}%{_libdir}/tcl/tcl8.?/sqlite3*
find %{buildroot} -type f -name "*.la" -delete -print
%post -n libsqlite3-0 -p /sbin/ldconfig
%postun -n libsqlite3-0 -p /sbin/ldconfig
%files
%{_bindir}/sqlite3
%{_mandir}/man1/sqlite3.1%{?ext_man}
%files -n libsqlite3-0
%{_libdir}/libsqlite3.so.*
%files devel
%{_includedir}/sqlite3.h
%{_includedir}/sqlite3ext.h
%{_libdir}/libsqlite3.so
%{_libdir}/pkgconfig/sqlite3.pc
%files tcl
%tcl_archdir/*
%doc %_mandir/mann/*
%files doc
%doc sqlite-doc-%{tarversion}/*
%changelog