X-Git-Url: http://git.pld-linux.org/?a=blobdiff_plain;f=sqlite3.spec;h=686ccd9a7fd017a6a14c515872b7940aeaf4dea7;hb=15c2a20c4160540e905b3fcad91f3473e5d7d0e1;hp=fd74a5ab3d11c2e1c1091f1e7b145dd75872e965;hpb=6b235ffabd70d750f7a1ce39135fde6bb1b5c0fb;p=packages%2Fsqlite3.git diff --git a/sqlite3.spec b/sqlite3.spec index fd74a5a..686ccd9 100644 --- a/sqlite3.spec +++ b/sqlite3.spec @@ -1,16 +1,19 @@ # TODO: # - some tests fail with tcl8.5, it's tcl fault, # if someone REALLY cares (s)he can look into it +# - sqlite binary is linked statically with sqlite library # # Conditional build: %bcond_with tests # run tests +%bcond_with readline # readline (GPL) instead of libedit %bcond_without tcl # Tcl extension %bcond_without doc # disable documentation building %bcond_without unlock_notify # disable unlock notify API %bcond_without load_extension # enable load extension API %bcond_with icu # ICU tokenizer support +%bcond_without wal_replication # WAL replication support -%ifarch alpha sparc %{x8664} +%ifarch %{x8664} %undefine with_tests %endif @@ -21,33 +24,43 @@ %endif # sqlite3 version with zero padded without any dots (3 08 10 01 is 3.8.10.1) -%define vnum 3081101 -%define ver %{lua:vn=rpm.expand("%vnum");v="";for i in string.gmatch(string.format("%08d", vn), "..") do; v=v.."."..i:gsub("^0", "");end;v=v:gsub("^.","");print(v)} +# but trailing 00 means no 4rd part (3 11 01 00 is 3.11.1) +%define vnum 3300000 +%define ver %{lua:vn=rpm.expand("%vnum");v="";for i in string.gmatch(string.format("%08d", vn), "..") do v=v.."."..i:gsub("^0", "");end;v=v:gsub("^.",""):gsub("\.0$","");print(v)} + +# wal replication version +%define walver 3.29.0 %define tclver 8.6 -Summary: SQLite library -Summary(pl.UTF-8): Biblioteka SQLite +Summary: SQLite3 library +Summary(pl.UTF-8): Biblioteka SQLite3 Name: sqlite3 Version: %{ver} Release: 1 License: Public Domain Group: Libraries # Source0Download: http://www.sqlite.org/download.html -Source0: http://www.sqlite.org/2015/sqlite-src-%{vnum}.zip -# Source0-md5: 4550012d85ffdc607d0c86aef2d47974 +Source0: https://www.sqlite.org/2019/sqlite-src-%{vnum}.zip +# Source0-md5: d6f8f11b12ea3e1bdf3332bcc0b97117 Patch0: %{name}-sign-function.patch -URL: http://www.sqlite.org/ -%{?with_load_extension:Provides: %{name}(load_extension)} -%{?with_unlock_notify:Provides: %{name}(unlock_notify)} -%{?with_icu:Provides: %{name}(icu)} +# https://github.com/CanonicalLtd/dqlite/issues/91 +Patch1: https://github.com/CanonicalLtd/sqlite/releases/download/version-%{walver}+replication3/sqlite-%{walver}.diff +# Patch1-md5: 6707a179ad80076f290a54e424c488c8 +URL: https://www.sqlite.org/ BuildRequires: autoconf >= 2.50 BuildRequires: automake +%{!?with_readline:BuildRequires: libedit-devel} BuildRequires: libtool -BuildRequires: readline-devel +%{?with_readline:BuildRequires: readline-devel} %{?with_load_extension:BuildRequires: sed >= 4.0} BuildRequires: tcl %{?with_tcl:BuildRequires: tcl-devel >= %{tclver}} BuildRequires: unzip +Requires: %{name}-libs = %{version}-%{release} +%{?with_icu:Provides: %{name}(icu) = %{version}} +%{?with_load_extension:Provides: %{name}(load_extension) = %{version}} +%{?with_unlock_notify:Provides: %{name}(unlock_notify) = %{version}} +%{?with_wal_replication:Provides: %{name}(wal_replication) = %{version}} BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n) %define _ulibdir /usr/lib @@ -77,20 +90,37 @@ bazodanowych przy większości operacji na bazie danych. Dodatkowo oprócz biblioteki języka C, dostarczany jest program do zarządzania bazami danych. +%package libs +Summary: Shared library for the sqlite3 embeddable SQL database engine +Summary(pl.UTF-8): Biblioteka współdzielona osadzalnego silnika baz danych SQL sqlite3 +Group: Libraries +%{?with_icu:Provides: %{name}-libs(icu) = %{version}} +%{?with_load_extension:Provides: %{name}-libs(load_extension) = %{version}} +%{?with_unlock_notify:Provides: %{name}-libs(unlock_notify) = %{version}} +%{?with_wal_replication:Provides: %{name}-libs(wal_replication) = %{version}} +Conflicts: sqlite3 < 3.23.1-2 + +%description libs +This package contains the SQLite 3 shared library. + +%description libs -l pl.UTF-8 +Ten pakiet zawiera bibliotekę współdzieloną SQLite 3. + %package devel Summary: Header files for SQLite development Summary(pl.UTF-8): Pliki nagłówkowe SQLite Group: Development/Libraries -Requires: %{name} = %{version}-%{release} +Requires: %{name}-libs = %{version}-%{release} %if %{with unlock_notify} -Provides: %{name}-devel(unlock_notify) +Provides: %{name}-devel(unlock_notify) = %{version} %endif %if %{with load_extension} -Provides: %{name}-devel(load_extension) +Provides: %{name}-devel(load_extension) = %{version} %endif %if %{with icu} -Provides: %{name}-devel(icu) +Provides: %{name}-devel(icu) = %{version} %endif +%{?with_wal_replication:Provides: %{name}-devel(wal_replication) = %{version}} %description devel SQLite is a C library that implements an SQL database engine. A large @@ -134,6 +164,7 @@ Provides: %{name}-static(unlock_notify) %if %{with load_extension} Provides: %{name}-static(load_extension) %endif +%{?with_wal_replication:Provides: %{name}-static(wal_replication)} %description static SQLite is a C library that implements an SQL database engine. A large @@ -178,6 +209,7 @@ Rozszerzenie sqlite3 dla Tcl. %prep %setup -q -n sqlite-src-%{vnum} %patch0 -p1 +%{?with_wal_replication:%patch1 -p1} %{__sed} -i 's/mkdir doc/#mkdir doc/' Makefile.in @@ -190,7 +222,7 @@ fi %{__libtoolize} cp -f /usr/share/automake/config.sub . %{__aclocal} -%{__autoconf} +%{__autoconf} --force append-cppflags() { CPPFLAGS="$CPPFLAGS $*" } @@ -205,6 +237,9 @@ export TCLLIBDIR="%{tcl_sitearch}/sqlite3" append-cppflags -DSQLITE_DISABLE_DIRSYNC=1 -DSQLITE_SECURE_DELETE +# Support for optional ORDER BY and LIMIT clause on UPDATE and DELETE statements +append-cppflags -DSQLITE_ENABLE_UPDATE_DELETE_LIMIT + # Support column metadata functions. # http://sqlite.org/c3ref/column_database_name.html # http://sqlite.org/c3ref/table_column_metadata.html @@ -213,16 +248,29 @@ append-cppflags -DSQLITE_ENABLE_COLUMN_METADATA # Support Full-Text Search versions 3 and 4. # http://sqlite.org/fts3.html #append-cppflags -DSQLITE_ENABLE_FTS3 -DSQLITE_ENABLE_FTS3_PARENTHESIS -DSQLITE_ENABLE_FTS4 -DSQLITE_ENABLE_FTS4_UNICODE61 -append-cppflags -DSQLITE_ENABLE_FTS3 +append-cppflags -DSQLITE_ENABLE_FTS3 -DSQLITE_ENABLE_FTS3_PARENTHESIS +append-cppflags -DSQLITE_ENABLE_FTS3_TOKENIZER # Support R*Trees. # http://sqlite.org/rtree.html append-cppflags -DSQLITE_ENABLE_RTREE +# Support Geopoly module (new as of 3.25.0) +# https://www.sqlite.org/geopoly.html +append-cppflags -DSQLITE_ENABLE_GEOPOLY + # Support soundex() function. # http://sqlite.org/lang_corefunc.html#soundex #append-cppflags -DSQLITE_SOUNDEX +# Support dbstat virtual table. +# https://www.sqlite.org/dbstat.html +append-cppflags -DSQLITE_ENABLE_DBSTAT_VTAB + +# Support for session extension (record changes to a changeset). +# https://www.sqlite.org/sessionintro.html +append-cppflags -DSQLITE_ENABLE_SESSION -DSQLITE_ENABLE_PREUPDATE_HOOK + %if %{with unlock_notify} # Support unlock notification. # http://sqlite.org/unlock_notify.html @@ -238,10 +286,17 @@ append-libs "-licui18n -licuuc" append-libs "-ldl" %endif +%if %{with wal_replication} +# A patched version of SQLite with support for WAL-based replication +append-cppflags -DSQLITE_ENABLE_WAL_REPLICATION +%endif + %configure \ + %{?with_readline:--disable-editline} \ %{!?with_tcl:--disable-tcl}%{?with_tcl:--with-tcl=%{_ulibdir}} \ %{__enable_disable load_extension load-extension} \ - --enable-threadsafe + --enable-threadsafe \ + --enable-fts5 %{__make} @@ -254,10 +309,11 @@ append-libs "-ldl" %install rm -rf $RPM_BUILD_ROOT install -d $RPM_BUILD_ROOT{/%{_lib},%{_bindir},%{_includedir},%{_libdir},%{_mandir}/man1} + %{__make} install \ DESTDIR=$RPM_BUILD_ROOT -mv -f $RPM_BUILD_ROOT%{_libdir}/lib*.so.* $RPM_BUILD_ROOT/%{_lib} +%{__mv} $RPM_BUILD_ROOT%{_libdir}/lib*.so.* $RPM_BUILD_ROOT/%{_lib} %{__rm} $RPM_BUILD_ROOT%{_libdir}/lib*.so ln -sf /%{_lib}/$(cd $RPM_BUILD_ROOT/%{_lib}; echo lib*.so.*.*) \ $RPM_BUILD_ROOT%{_libdir}/libsqlite3.so @@ -267,15 +323,18 @@ cp -p sqlite3.1 $RPM_BUILD_ROOT%{_mandir}/man1 %clean rm -rf $RPM_BUILD_ROOT -%post -p /sbin/ldconfig -%postun -p /sbin/ldconfig +%post libs -p /sbin/ldconfig +%postun libs -p /sbin/ldconfig + +%files libs +%defattr(644,root,root,755) +%attr(755,root,root) /%{_lib}/libsqlite3.so.*.*.* +%attr(755,root,root) %ghost /%{_lib}/libsqlite3.so.0 %files %defattr(644,root,root,755) %doc README.md %attr(755,root,root) %{_bindir}/sqlite3 -%attr(755,root,root) /%{_lib}/libsqlite3.so.*.*.* -%attr(755,root,root) %ghost /%{_lib}/libsqlite3.so.0 %{_mandir}/man1/sqlite3.1* %files devel