sqlite3/sqlite3.spec
Reinhard Max 0c4f7bcc97 - Update to release 3.45.2:
* Added the SQLITE_RESULT_SUBTYPE property for application-
    defined SQL functions.
  * Enhancements to the JSON SQL functions
  * Add the FTS5 tokendata option to the FTS5 virtual table.
  * The SQLITE_DIRECT_OVERFLOW_READ optimization is now enabled by
    default.
  * Query planner improvements
  * Increase the default value for SQLITE_MAX_PAGE_COUNT from
    1073741824 to 4294967294.
  * Enhancements to the CLI
  * Restore the JSON BLOB input bug, and promise to support the
    anomaly in subsequent releases, for backward compatibility.
  * Fix the PRAGMA integrity_check command so that it works on
    read-only databases that contain FTS3 and FTS5 tables.
  * Fix issues associated with processing corrupt JSONB inputs.
  * Fix a long-standing bug in which a read of a few bytes past the
    end of a memory-mapped segment might occur when accessing a
    craftily corrupted database using memory-mapped database.
  * Fix a long-standing bug in which a NULL pointer dereference
    might occur in the bytecode engine due to incorrect bytecode
    being generated for a class of SQL statements that are
    deliberately designed to stress the query planner but which
    are otherwise pointless.
  * Fix an error in UPSERT, introduced in version 3.35.0.
  * Reduce the scope of the NOT NULL strength reduction
    optimization that was added in version 3.35.0.

OBS-URL: https://build.opensuse.org/package/show/server:database/sqlite3?expand=0&rev=329
2024-03-12 14:59:03 +00:00

219 lines
6.6 KiB
RPMSpec

#
# spec file for package sqlite3
#
# Copyright (c) 2024 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via https://bugs.opensuse.org/
#
%define oname sqlite
%define tarversion 3450200
%define docversion 3450200
%bcond_with icu
%bcond_without check
Name: sqlite3
Version: 3.45.2
Release: 0
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-%{docversion}.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
# Version and %tarversion need to match, but %docversion might be different,
IFS=. read a b c d <<< "%version"
if [ "%tarversion" != $(printf "%1d%02d%02d%02d" $a $b $c $d) ]
then
echo "Version %version does not match tarversion %tarversion."
exit 1
fi
%autosetup -p1 -n sqlite-src-%{tarversion} -a2
rm -v sqlite-doc-%{docversion}/releaselog/current.html
ln -sv `echo %{docversion} | sed "s/\./_/g"`.html sqlite-doc-%{docversion}/releaselog/current.html
find -type f -name sqlite.css~ -delete
cmp sqlite-doc-%{docversion}/fileformat{,2}.html && ln -sf fileformat.html sqlite-doc-%{docversion}/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-%{docversion}/*
%changelog