]> git.pld-linux.org Git - packages/sqlite3.git/blobdiff - sqlite3.spec
up to 3.23.0
[packages/sqlite3.git] / sqlite3.spec
index f9aa4252e4b3ae9ea0bb91a87542ed611114b4e6..cfb2ea42168f4ea2ec61723729d8500390061d17 100644 (file)
@@ -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
 %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
This page took 0.089955 seconds and 4 git commands to generate.