]> git.pld-linux.org Git - packages/sqlite3.git/blobdiff - sqlite3.spec
up to 3.23.0
[packages/sqlite3.git] / sqlite3.spec
index 9b392345713b442b64c2f049bc467546197de7d4..cfb2ea42168f4ea2ec61723729d8500390061d17 100644 (file)
@@ -1,25 +1,61 @@
+# TODO:
+# - some tests fail with tcl8.5, it's tcl fault,
+#      if someone REALLY cares (s)he can look into it
+# - configure.ac present, but doesn't support all -DEFINES, also it uses bash syntax (var+=value)
 #
 # Conditional build:
-%bcond_without tests # don't run tests
-#
-Summary:       SQLite library
-Summary(pl):   Biblioteka SQLite
+%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
+%endif
+
+# disabling tcl currently breaks making test target,
+# some hack in Makefile needs to be done
+%if %{without tcl}
+%undefine      with_tests
+%endif
+
+# 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)}
+
+%define                tclver          8.6
+Summary:       SQLite3 library
+Summary(pl.UTF-8):     Biblioteka SQLite3
 Name:          sqlite3
-Version:       3.0.8
-Release:       2
-License:       LGPL
+Version:       %{ver}
+Release:       1
+License:       Public Domain
 Group:         Libraries
-# Source0Download: http://sqlite.org/download.html
-Source0:       http://sqlite.org/sqlite-%{version}.tar.gz
-# Source0-md5: b7dff1ec9bf4d08928c039b278630ba7
-URL:           http://sqlite.org/
-BuildRequires: autoconf
+# Source0Download: http://www.sqlite.org/download.html
+Source0:       http://www.sqlite.org/2018/sqlite-src-%{vnum}.zip
+# Source0-md5: 72ef3398e710f81a0da037c0e128e02d
+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)}
+BuildRequires: autoconf >= 2.50
 BuildRequires: automake
+%{!?with_readline:BuildRequires:       libedit-devel}
 BuildRequires: libtool
-BuildRequires: readline-devel
-BuildRequires: tcl-devel
+%{?with_readline:BuildRequires:        readline-devel}
+%{?with_load_extension:BuildRequires:  sed >= 4.0}
+BuildRequires: tcl
+%{?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
@@ -33,23 +69,32 @@ addition to the C library, the SQLite distribution includes a
 command-line tool for interacting with SQLite databases and SQLite
 bindings for Tcl/Tk.
 
-%description -l pl
-SQLite jest bibliotek± jêzyka C, która implementuje silnik baz danych
-SQL (obs³ugiwana jest wiêkszo¶æ standardu SQL92). Ca³a baza danych
-przechowywana jest w jednym pliku. Aplikacje wykorzystuj±ce tê
-bibliotekê charakteryzuj± siê si³± i elastyczno¶ci± SQLowych baz
-danych bez koniecznoci utrzymywania osobnego serwera baz danych.
-Poniewa¿ pomijana jest komunikacja klient-serwer i dane s± zapisywane
-bezpo¶rednio na dysku, SQLite jest szybsza od du¿ych serwerów
-bazodanowych przy wiêkszo¶ci operacji na bazie danych. Dodatkowo
-oprócz biblioteki jêzyka C, dostarczany jest program do zarz±dzania
+%description -l pl.UTF-8
+SQLite jest biblioteką języka C, która implementuje silnik baz danych
+SQL (obsługiwana jest większość standardu SQL92). Cała baza danych
+przechowywana jest w jednym pliku. Aplikacje wykorzystujące tę
+bibliotekę charakteryzują się siłą i elastycznością SQLowych baz
+danych bez konieczności utrzymywania osobnego serwera baz danych.
+Ponieważ pomijana jest komunikacja klient-serwer i dane są zapisywane
+bezpośrednio na dysku, SQLite jest szybsza od dużych serwerów
+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 devel
 Summary:       Header files for SQLite development
-Summary(pl):   Pliki nag³ówkowe SQLite
+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
@@ -67,26 +112,32 @@ bindings for Tcl/Tk.
 This package contains the header files needed to develop programs that
 use these SQLite.
 
-%description devel -l pl
-SQLite jest bibliotek± jêzyka C, która implementuje silnik baz danych
-SQL (obs³ugiwana jest wiêkszo¶æ standardu SQL92). Ca³a baza danych
-przechowywana jest w jednym pliku. Aplikacje wykorzystuj±ce tê
-bibliotekê charakteryzuj± siê si³± i elastyczno¶ci± SQLowych baz
-danych bez koniecznoci utrzymywania osobnego serwera baz danych.
-Poniewa¿ pomijana jest komunikacja klient-serwer i dane s± zapisywane
-bezpo¶rednio na dysku, SQLite jest szybsza od du¿ych serwerów
-bazodanowych przy wiêkszo¶ci operacji na bazie danych. Dodatkowo
-oprócz biblioteki jêzyka C, dostarczany jest program do zarz±dzania
+%description devel -l pl.UTF-8
+SQLite jest biblioteką języka C, która implementuje silnik baz danych
+SQL (obsługiwana jest większość standardu SQL92). Cała baza danych
+przechowywana jest w jednym pliku. Aplikacje wykorzystujące tę
+bibliotekę charakteryzują się siłą i elastycznością SQLowych baz
+danych bez konieczności utrzymywania osobnego serwera baz danych.
+Ponieważ pomijana jest komunikacja klient-serwer i dane są zapisywane
+bezpośrednio na dysku, SQLite jest szybsza od dużych serwerów
+bazodanowych przy większości operacji na bazie danych. Dodatkowo
+oprócz biblioteki języka C, dostarczany jest program do zarządzania
 bazami danych.
 
-Pakiet zawiera pliki nagówkowe niezbedne do kompilowania programów
-u¿ywaj±cych biblioteki SQLite.
+Pakiet zawiera pliki nagówkowe niezbedne do kompilowania programów
+używających biblioteki SQLite.
 
 %package static
 Summary:       Static libraries for SQLite development
-Summary(pl):   Statyczne biblioteki SQLite
+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
@@ -103,44 +154,127 @@ bindings for Tcl/Tk.
 
 This package contains the static SQLite libraries.
 
-%description static -l pl
-SQLite jest bibliotek± jêzyka C, która implementuje silnik baz danych
-SQL (obs³ugiwana jest wiêkszo¶æ standardu SQL92). Ca³a baza danych
-przechowywana jest w jednym pliku. Aplikacje wykorzystuj±ce tê
-bibliotekê charakteryzuj± siê si³± i elastyczno¶ci± SQLowych baz
-danych bez koniecznoci utrzymywania osobnego serwera baz danych.
-Poniewa¿ pomijana jest komunikacja klient-serwer i dane s± zapisywane
-bezpo¶rednio na dysku, SQLite jest szybsza od du¿ych serwerów
-bazodanowych przy wiêkszo¶ci operacji na bazie danych. Dodatkowo
-oprócz biblioteki jêzyka C, dostarczany jest program do zarz±dzania
+%description static -l pl.UTF-8
+SQLite jest biblioteką języka C, która implementuje silnik baz danych
+SQL (obsługiwana jest większość standardu SQL92). Cała baza danych
+przechowywana jest w jednym pliku. Aplikacje wykorzystujące tę
+bibliotekę charakteryzują się siłą i elastycznością SQLowych baz
+danych bez konieczności utrzymywania osobnego serwera baz danych.
+Ponieważ pomijana jest komunikacja klient-serwer i dane są zapisywane
+bezpośrednio na dysku, SQLite jest szybsza od dużych serwerów
+bazodanowych przy większości operacji na bazie danych. Dodatkowo
+oprócz biblioteki języka C, dostarczany jest program do zarządzania
 bazami danych.
 
 Pakiet zawiera statyczne biblioteki SQLite.
 
+%package -n tcl-%{name}
+Summary:       sqlite3 tcl extension
+Summary(pl.UTF-8):     Rozszerzenie sqlite3 dla Tcl
+Group:         Development/Languages/Tcl
+
+%description -n tcl-%{name}
+sqlite3 tcl extension.
+
+%description -n tcl-%{name} -l pl.UTF-8
+Rozszerzenie sqlite3 dla Tcl.
+
 %prep
-%setup -q -n sqlite
-sed -i 's/mkdir doc/#mkdir doc/' Makefile*
+%setup -q -n sqlite-src-%{vnum}
+%patch0 -p1
+
+%{__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}
+%{__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 \
-       --enable-threadsafe
+       %{?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}
 %{__make} doc
+%endif
 
-%{?with_tests:%{__make} test}
+%{?with_tests:LC_ALL=C %{__make} test}
 
 %install
 rm -rf $RPM_BUILD_ROOT
-install -d $RPM_BUILD_ROOT{%{_bindir},%{_includedir},%{_libdir},%{_mandir}/man1}
+install -d $RPM_BUILD_ROOT{/%{_lib},%{_bindir},%{_includedir},%{_libdir},%{_mandir}/man1}
 
 %{__make} install \
        DESTDIR=$RPM_BUILD_ROOT
 
-install sqlite.1 $RPM_BUILD_ROOT%{_mandir}/man1
+%{__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 -p sqlite3.1 $RPM_BUILD_ROOT%{_mandir}/man1
 
 %clean
 rm -rf $RPM_BUILD_ROOT
@@ -150,19 +284,28 @@ 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) %{_libdir}/lib*.so.*.*
-%{_mandir}/man1/sqlite.1*
+%attr(755,root,root) /%{_lib}/libsqlite3.so.*.*.*
+%attr(755,root,root) %ghost /%{_lib}/libsqlite3.so.0
+%{_mandir}/man1/sqlite3.1*
 
 %files devel
 %defattr(644,root,root,755)
-%doc doc/*
-%attr(755,root,root) %{_libdir}/lib*.so
-%{_libdir}/lib*.la
+%attr(755,root,root) %{_libdir}/libsqlite3.so
+%{_libdir}/libsqlite3.la
 %{_includedir}/sqlite3.h
-%{_pkgconfigdir}/*.pc
+%{_includedir}/sqlite3ext.h
+%{_pkgconfigdir}/sqlite3.pc
 
 %files static
 %defattr(644,root,root,755)
-%{_libdir}/lib*.a
+%{_libdir}/libsqlite3.a
+
+%if %{with tcl}
+%files -n tcl-%{name}
+%defattr(644,root,root,755)
+%dir %{_libdir}/tcl*/sqlite3
+%attr(755,root,root) %{_libdir}/tcl%{tclver}/sqlite3/libtclsqlite3.so
+%{_libdir}/tcl%{tclver}/sqlite3/pkgIndex.tcl
+%endif
This page took 0.235812 seconds and 4 git commands to generate.