X-Git-Url: http://git.pld-linux.org/gitweb.cgi?a=blobdiff_plain;f=sqlite3.spec;h=cfb2ea42168f4ea2ec61723729d8500390061d17;hb=ff543ee854127c748e537b96d3b2f2e002ee6694;hp=f9aa4252e4b3ae9ea0bb91a87542ed611114b4e6;hpb=6ca4ac165123c8b896390b1064f517cdbd315b74;p=packages%2Fsqlite3.git diff --git a/sqlite3.spec b/sqlite3.spec index f9aa425..cfb2ea4 100644 --- a/sqlite3.spec +++ b/sqlite3.spec @@ -1,14 +1,16 @@ # TODO: # - some tests fail with tcl8.5, it's tcl fault, # if someone REALLY cares (s)he can look into it -# - enable --enable-load-extension? +# - configure.ac present, but doesn't support all -DEFINES, also it uses bash syntax (var+=value) # # Conditional build: -%bcond_with tests # run tests -%bcond_with tcl # enable tcl extension -%bcond_without doc # disable documentation building -%bcond_with unlock_notify # enable unlock notify api -%bcond_with load_extension # enable load extension api +%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 %ifarch alpha sparc %{x8664} %undefine with_tests @@ -20,30 +22,40 @@ %undefine with_tests %endif -%define _ulibdir /usr/lib -%define tclver 8.5 +# sqlite3 version with zero padded without any dots (3 08 10 01 is 3.8.10.1) +# but trailing 00 means no 4rd part (3 11 01 00 is 3.11.1) +%define vnum 3230000 +%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)} -Summary: SQLite library -Summary(pl.UTF-8): Biblioteka SQLite +%define tclver 8.6 +Summary: SQLite3 library +Summary(pl.UTF-8): Biblioteka SQLite3 Name: sqlite3 -Version: 3.7.2 -Release: 2 -License: LGPL +Version: %{ver} +Release: 1 +License: Public Domain Group: Libraries # Source0Download: http://www.sqlite.org/download.html -Source0: http://www.sqlite.org/sqlite-%{version}.tar.gz -# Source0-md5: 5f1853c4c1eba3330b6104f274918673 +Source0: http://www.sqlite.org/2018/sqlite-src-%{vnum}.zip +# Source0-md5: 72ef3398e710f81a0da037c0e128e02d Patch0: %{name}-sign-function.patch URL: http://www.sqlite.org/ -BuildRequires: autoconf +%{?with_load_extension:Provides: %{name}(load_extension)} +%{?with_unlock_notify:Provides: %{name}(unlock_notify)} +%{?with_icu:Provides: %{name}(icu)} +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} +%{?with_tcl:BuildRequires: tcl-devel >= %{tclver}} +BuildRequires: unzip BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n) +%define _ulibdir /usr/lib + %description SQLite is a C library that implements an SQL database engine. A large subset of SQL92 is supported. A complete database is stored in a @@ -74,6 +86,15 @@ Summary: Header files for SQLite development Summary(pl.UTF-8): Pliki nagłówkowe SQLite Group: Development/Libraries Requires: %{name} = %{version}-%{release} +%if %{with unlock_notify} +Provides: %{name}-devel(unlock_notify) +%endif +%if %{with load_extension} +Provides: %{name}-devel(load_extension) +%endif +%if %{with icu} +Provides: %{name}-devel(icu) +%endif %description devel SQLite is a C library that implements an SQL database engine. A large @@ -111,6 +132,12 @@ Summary: Static libraries for SQLite development Summary(pl.UTF-8): Statyczne biblioteki SQLite Group: Development/Libraries Requires: %{name}-devel = %{version}-%{release} +%if %{with unclock_notify} +Provides: %{name}-static(unlock_notify) +%endif +%if %{with load_extension} +Provides: %{name}-static(load_extension) +%endif %description static SQLite is a C library that implements an SQL database engine. A large @@ -153,27 +180,80 @@ sqlite3 tcl extension. Rozszerzenie sqlite3 dla Tcl. %prep -%setup -q -n sqlite-%{version} +%setup -q -n sqlite-src-%{vnum} %patch0 -p1 -%{__sed} -i 's/mkdir doc/#mkdir doc/' Makefile* +%{__sed} -i 's/mkdir doc/#mkdir doc/' Makefile.in + +if [ "$(cat VERSION)" != "%{version}" ]; then + echo "Tarball content doesn't match version %{version}." >&2 + exit 1 +fi %build %{__libtoolize} cp -f /usr/share/automake/config.sub . %{__aclocal} -%{__autoconf} -CFLAGS="%{rpmcflags} -DSQLITE_ENABLE_COLUMN_METADATA=1 -DSQLITE_DISABLE_DIRSYNC=1 -DSQLITE_ENABLE_FTS3=3 -DSQLITE_ENABLE_RTREE=1 -DSQLITE_SECURE_DELETE %{?with_unlock_notify:-DSQLITE_ENABLE_UNLOCK_NOTIFY}" -export CFLAGS -%if %{with load_extension} -LIBS=-ldl +%{__autoconf} --force +append-cppflags() { + CPPFLAGS="$CPPFLAGS $*" +} +append-libs() { + LIBS="$LIBS $*" +} +export CPPFLAGS="%{rpmcflags}" export LIBS +%if %{with tcl} +export TCLLIBDIR="%{tcl_sitearch}/sqlite3" %endif + +append-cppflags -DSQLITE_DISABLE_DIRSYNC=1 -DSQLITE_SECURE_DELETE + +# Support column metadata functions. +# http://sqlite.org/c3ref/column_database_name.html +# http://sqlite.org/c3ref/table_column_metadata.html +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 -DSQLITE_ENABLE_FTS3_PARENTHESIS +append-cppflags -DSQLITE_ENABLE_FTS3_TOKENIZER + +# Support R*Trees. +# http://sqlite.org/rtree.html +append-cppflags -DSQLITE_ENABLE_RTREE + +# 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 + +%if %{with unlock_notify} +# Support unlock notification. +# http://sqlite.org/unlock_notify.html +append-cppflags -DSQLITE_ENABLE_UNLOCK_NOTIFY +%endif + +%if %{with icu} +append-cppflags -DSQLITE_ENABLE_ICU +append-libs "-licui18n -licuuc" +%endif + +%if %{with load_extension} +append-libs "-ldl" +%endif + %configure \ - %{?with_tcl:--with-tcl=%{_ulibdir}} \ - %{!?with_tcl:--disable-tcl} \ - --enable-threadsafe -%{?with_load_extension:sed -i~ s/-DSQLITE_OMIT_LOAD_EXTENSION=1// Makefile} + %{?with_readline:--disable-editline} \ + %{!?with_tcl:--disable-tcl}%{?with_tcl:--with-tcl=%{_ulibdir}} \ + %{__enable_disable load_extension load-extension} \ + --enable-threadsafe \ + --enable-fts5 + %{__make} %if %{with doc} @@ -187,19 +267,14 @@ rm -rf $RPM_BUILD_ROOT install -d $RPM_BUILD_ROOT{/%{_lib},%{_bindir},%{_includedir},%{_libdir},%{_mandir}/man1} %{__make} install \ - DESTDIR=$RPM_BUILD_ROOT \ - TCLLIBDIR=%{_libdir}/tcl%{tclver} - -%if %{with tcl} -sed -i -e "s#$RPM_BUILD_ROOT##g" $RPM_BUILD_ROOT%{_libdir}/tcl%{tclver}/sqlite3/pkgIndex.tcl -%endif + DESTDIR=$RPM_BUILD_ROOT -mv -f $RPM_BUILD_ROOT%{_libdir}/lib*.so.* $RPM_BUILD_ROOT/%{_lib} -rm -f $RPM_BUILD_ROOT%{_libdir}/lib*.so +%{__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 -cp -a sqlite3.1 $RPM_BUILD_ROOT%{_mandir}/man1 +cp -p sqlite3.1 $RPM_BUILD_ROOT%{_mandir}/man1 %clean rm -rf $RPM_BUILD_ROOT @@ -209,7 +284,7 @@ rm -rf $RPM_BUILD_ROOT %files %defattr(644,root,root,755) -%doc README +%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