# 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?
#
# Conditional build:
%bcond_with tests # run tests
-%bcond_with tcl # enable tcl extension
+%bcond_without tcl # Tcl extension
%bcond_without doc # disable documentation building
%bcond_without unlock_notify # disable unlock notify API
-%bcond_with load_extension # enable load extension API
+%bcond_without load_extension # enable load extension API
+%bcond_with icu # ICU tokenizer support
%ifarch alpha sparc %{x8664}
%undefine with_tests
%undefine with_tests
%endif
-%define realver 3070603
-%define srcver src
-%define rpmver %(echo %{realver}|sed -e "s/00//g" -e "s/0/./g")
+#define version_num %(echo %{version} | awk -F. '{printf("%d%02d%02d%02d", $1, $2, $3, $4)}')
+%define version_num 3080403
%define _ulibdir /usr/lib
-%define tclver 8.5
+%define tclver 8.6
Summary: SQLite library
Summary(pl.UTF-8): Biblioteka SQLite
Name: sqlite3
-Version: 3.7.6.3
+Version: 3.8.4.3
Release: 1
-License: LGPL
+License: Public Domain
Group: Libraries
# Source0Download: http://www.sqlite.org/download.html
-Source0: http://www.sqlite.org/sqlite-%{srcver}-%{realver}.zip
-# Source0-md5: f8e22ec0931c91f029d539fe3f5ef0f9
+Source0: http://www.sqlite.org/2014/sqlite-src-%{version_num}.zip
+# Source0-md5: 34cd453499e4b4564560accf24a9a70e
Patch0: %{name}-sign-function.patch
URL: http://www.sqlite.org/
%{?with_load_extension:Provides: %{name}(load_extension)}
%{?with_unlock_notify:Provides: %{name}(unlock_notify)}
-BuildRequires: autoconf
+%{?with_icu:Provides: %{name}(icu)}
+BuildRequires: autoconf >= 2.50
BuildRequires: automake
BuildRequires: libtool
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)
Group: Development/Libraries
Requires: %{name} = %{version}-%{release}
%if %{with unlock_notify}
-Requires: %{name}(unlock_notify)
Provides: %{name}-devel(unlock_notify)
%endif
%if %{with load_extension}
-Requires: %{name}(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
Group: Development/Libraries
Requires: %{name}-devel = %{version}-%{release}
%if %{with unclock_notify}
-Requires: %{name}-devel(unlock_notify)
Provides: %{name}-static(unlock_notify)
%endif
%if %{with load_extension}
-Requires: %{name}-devel(load_extension)
Provides: %{name}-static(load_extension)
%endif
Rozszerzenie sqlite3 dla Tcl.
%prep
-%setup -q -n sqlite-%{srcver}-%{realver}
+%setup -q -n sqlite-src-%{version_num}
%patch0 -p1
-%{__sed} -i 's/mkdir doc/#mkdir doc/' Makefile*
+%{__sed} -i 's/mkdir doc/#mkdir doc/' Makefile.in
%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
+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
+
+# 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
+
+%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} \
+ %{!?with_tcl:--disable-tcl}%{?with_tcl:--with-tcl=%{_ulibdir}} \
+ %{__enable_disable load_extension load-extension} \
--enable-threadsafe
-%{?with_load_extension:sed -i~ s/-DSQLITE_OMIT_LOAD_EXTENSION=1// Makefile}
+
%{__make}
%if %{with doc}
%install
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
+%{__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
%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