2 # - some tests fail with tcl8.5, it's tcl fault,
3 # if someone REALLY cares (s)he can look into it
4 # - sqlite binary is linked statically with sqlite library
7 %bcond_with tests # run tests
8 %bcond_with readline # readline (GPL) instead of libedit
9 %bcond_without tcl # Tcl extension
10 %bcond_without doc # disable documentation building
11 %bcond_without unlock_notify # disable unlock notify API
12 %bcond_without load_extension # enable load extension API
13 %bcond_with icu # ICU tokenizer support
14 %bcond_without json # json functions
20 # disabling tcl currently breaks making test target,
21 # some hack in Makefile needs to be done
26 # sqlite3 version with zero padded without any dots (3 08 10 01 is 3.8.10.1)
27 # but trailing 00 means no 4rd part (3 11 01 00 is 3.11.1)
29 %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)}
32 Summary: SQLite3 library
33 Summary(pl.UTF-8): Biblioteka SQLite3
37 License: Public Domain
39 # Source0Download: http://www.sqlite.org/download.html
40 Source0: https://www.sqlite.org/2023/sqlite-src-%{vnum}.zip
41 # Source0-md5: 91c173604c259af9cec07090540c8b08
42 Patch0: %{name}-amalgamation_configure.patch
43 URL: https://www.sqlite.org/
44 BuildRequires: autoconf >= 2.50
45 BuildRequires: automake
46 %{!?with_readline:BuildRequires: libedit-devel}
47 BuildRequires: libtool
48 %{?with_readline:BuildRequires: readline-devel}
49 BuildRequires: rpmbuild(macros) >= 1.527
50 %{?with_load_extension:BuildRequires: sed >= 4.0}
52 %{?with_tcl:BuildRequires: tcl-devel >= %{tclver}}
54 Requires: %{name}-libs = %{version}-%{release}
55 %{?with_icu:Provides: %{name}(icu) = %{version}}
56 %{?with_load_extension:Provides: %{name}(load_extension) = %{version}}
57 %{?with_unlock_notify:Provides: %{name}(unlock_notify) = %{version}}
58 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
60 %define _ulibdir /usr/lib
63 SQLite is a C library that implements an SQL database engine. A large
64 subset of SQL92 is supported. A complete database is stored in a
65 single disk file. The API is designed for convenience and ease of use.
66 Applications that link against SQLite can enjoy the power and
67 flexiblity of an SQL database without the administrative hassles of
68 supporting a separate database server. Because it omits the
69 client-server interaction overhead and writes directly to disk, SQLite
70 is also faster than the big database servers for most operations. In
71 addition to the C library, the SQLite distribution includes a
72 command-line tool for interacting with SQLite databases and SQLite
75 %description -l pl.UTF-8
76 SQLite jest biblioteką języka C, która implementuje silnik baz danych
77 SQL (obsługiwana jest większość standardu SQL92). Cała baza danych
78 przechowywana jest w jednym pliku. Aplikacje wykorzystujące tę
79 bibliotekę charakteryzują się siłą i elastycznością SQLowych baz
80 danych bez konieczności utrzymywania osobnego serwera baz danych.
81 Ponieważ pomijana jest komunikacja klient-serwer i dane są zapisywane
82 bezpośrednio na dysku, SQLite jest szybsza od dużych serwerów
83 bazodanowych przy większości operacji na bazie danych. Dodatkowo
84 oprócz biblioteki języka C, dostarczany jest program do zarządzania
88 Summary: Shared library for the sqlite3 embeddable SQL database engine
89 Summary(pl.UTF-8): Biblioteka współdzielona osadzalnego silnika baz danych SQL sqlite3
91 %{?with_icu:Provides: %{name}-libs(icu) = %{version}}
92 %{?with_load_extension:Provides: %{name}-libs(load_extension) = %{version}}
93 %{?with_unlock_notify:Provides: %{name}-libs(unlock_notify) = %{version}}
94 Conflicts: sqlite3 < 3.23.1-2
97 This package contains the SQLite 3 shared library.
99 %description libs -l pl.UTF-8
100 Ten pakiet zawiera bibliotekę współdzieloną SQLite 3.
103 Summary: Header files for SQLite development
104 Summary(pl.UTF-8): Pliki nagłówkowe SQLite
105 Group: Development/Libraries
106 Requires: %{name}-libs = %{version}-%{release}
107 %if %{with unlock_notify}
108 Provides: %{name}-devel(unlock_notify) = %{version}
110 %if %{with load_extension}
111 Provides: %{name}-devel(load_extension) = %{version}
114 Provides: %{name}-devel(icu) = %{version}
118 SQLite is a C library that implements an SQL database engine. A large
119 subset of SQL92 is supported. A complete database is stored in a
120 single disk file. The API is designed for convenience and ease of use.
121 Applications that link against SQLite can enjoy the power and
122 flexiblity of an SQL database without the administrative hassles of
123 supporting a separate database server. Because it omits the
124 client-server interaction overhead and writes directly to disk, SQLite
125 is also faster than the big database servers for most operations. In
126 addition to the C library, the SQLite distribution includes a
127 command-line tool for interacting with SQLite databases and SQLite
130 This package contains the header files needed to develop programs that
133 %description devel -l pl.UTF-8
134 SQLite jest biblioteką języka C, która implementuje silnik baz danych
135 SQL (obsługiwana jest większość standardu SQL92). Cała baza danych
136 przechowywana jest w jednym pliku. Aplikacje wykorzystujące tę
137 bibliotekę charakteryzują się siłą i elastycznością SQLowych baz
138 danych bez konieczności utrzymywania osobnego serwera baz danych.
139 Ponieważ pomijana jest komunikacja klient-serwer i dane są zapisywane
140 bezpośrednio na dysku, SQLite jest szybsza od dużych serwerów
141 bazodanowych przy większości operacji na bazie danych. Dodatkowo
142 oprócz biblioteki języka C, dostarczany jest program do zarządzania
145 Pakiet zawiera pliki nagówkowe niezbedne do kompilowania programów
146 używających biblioteki SQLite.
149 Summary: Static libraries for SQLite development
150 Summary(pl.UTF-8): Statyczne biblioteki SQLite
151 Group: Development/Libraries
152 Requires: %{name}-devel = %{version}-%{release}
153 %if %{with unclock_notify}
154 Provides: %{name}-static(unlock_notify)
156 %if %{with load_extension}
157 Provides: %{name}-static(load_extension)
161 SQLite is a C library that implements an SQL database engine. A large
162 subset of SQL92 is supported. A complete database is stored in a
163 single disk file. The API is designed for convenience and ease of use.
164 Applications that link against SQLite can enjoy the power and
165 flexiblity of an SQL database without the administrative hassles of
166 supporting a separate database server. Because it omits the
167 client-server interaction overhead and writes directly to disk, SQLite
168 is also faster than the big database servers for most operations. In
169 addition to the C library, the SQLite distribution includes a
170 command-line tool for interacting with SQLite databases and SQLite
173 This package contains the static SQLite libraries.
175 %description static -l pl.UTF-8
176 SQLite jest biblioteką języka C, która implementuje silnik baz danych
177 SQL (obsługiwana jest większość standardu SQL92). Cała baza danych
178 przechowywana jest w jednym pliku. Aplikacje wykorzystujące tę
179 bibliotekę charakteryzują się siłą i elastycznością SQLowych baz
180 danych bez konieczności utrzymywania osobnego serwera baz danych.
181 Ponieważ pomijana jest komunikacja klient-serwer i dane są zapisywane
182 bezpośrednio na dysku, SQLite jest szybsza od dużych serwerów
183 bazodanowych przy większości operacji na bazie danych. Dodatkowo
184 oprócz biblioteki języka C, dostarczany jest program do zarządzania
187 Pakiet zawiera statyczne biblioteki SQLite.
189 %package -n tcl-%{name}
190 Summary: sqlite3 tcl extension
191 Summary(pl.UTF-8): Rozszerzenie sqlite3 dla Tcl
192 Group: Development/Languages/Tcl
194 %description -n tcl-%{name}
195 sqlite3 tcl extension.
197 %description -n tcl-%{name} -l pl.UTF-8
198 Rozszerzenie sqlite3 dla Tcl.
201 %setup -q -n sqlite-src-%{vnum}
204 %{__sed} -i 's/mkdir doc/#mkdir doc/' Makefile.in
206 if [ "$(cat VERSION)" != "%{version}" ]; then
207 echo "Tarball content doesn't match version %{version}." >&2
214 %{__autoconf} --force
216 CPPFLAGS="$CPPFLAGS $*"
221 export CPPFLAGS="%{rpmcflags}"
224 export TCLLIBDIR="%{tcl_sitearch}/sqlite3"
227 append-cppflags -DSQLITE_DISABLE_DIRSYNC=1 -DSQLITE_SECURE_DELETE
229 # Support for optional ORDER BY and LIMIT clause on UPDATE and DELETE statements
230 append-cppflags -DSQLITE_ENABLE_UPDATE_DELETE_LIMIT
232 # Support column metadata functions.
233 # http://sqlite.org/c3ref/column_database_name.html
234 # http://sqlite.org/c3ref/table_column_metadata.html
235 append-cppflags -DSQLITE_ENABLE_COLUMN_METADATA
237 # Support Full-Text Search versions 3 and 4.
238 # http://sqlite.org/fts3.html
239 #append-cppflags -DSQLITE_ENABLE_FTS3 -DSQLITE_ENABLE_FTS3_PARENTHESIS -DSQLITE_ENABLE_FTS4 -DSQLITE_ENABLE_FTS4_UNICODE61
240 append-cppflags -DSQLITE_ENABLE_FTS3 -DSQLITE_ENABLE_FTS3_PARENTHESIS
241 append-cppflags -DSQLITE_ENABLE_FTS3_TOKENIZER
244 # http://sqlite.org/rtree.html
245 append-cppflags -DSQLITE_ENABLE_RTREE
247 # Support Geopoly module (new as of 3.25.0)
248 # https://www.sqlite.org/geopoly.html
249 append-cppflags -DSQLITE_ENABLE_GEOPOLY
251 # Support soundex() function.
252 # http://sqlite.org/lang_corefunc.html#soundex
253 #append-cppflags -DSQLITE_SOUNDEX
255 # Support dbstat virtual table.
256 # https://www.sqlite.org/dbstat.html
257 append-cppflags -DSQLITE_ENABLE_DBSTAT_VTAB
259 # Support for session extension (record changes to a changeset).
260 # https://www.sqlite.org/sessionintro.html
261 append-cppflags -DSQLITE_ENABLE_SESSION -DSQLITE_ENABLE_PREUPDATE_HOOK
263 %if %{with unlock_notify}
264 # Support unlock notification.
265 # http://sqlite.org/unlock_notify.html
266 append-cppflags -DSQLITE_ENABLE_UNLOCK_NOTIFY
270 append-cppflags -DSQLITE_ENABLE_ICU
271 append-libs "-licui18n -licuuc"
274 %if %{with load_extension}
279 %{?with_readline:--disable-editline} \
280 %{!?with_tcl:--disable-tcl}%{?with_tcl:--with-tcl=%{_ulibdir}} \
281 %{__enable_disable load_extension load-extension} \
282 %{__enable_disable json} \
283 --enable-threadsafe \
292 %{?with_tests:LC_ALL=C %{__make} test}
295 rm -rf $RPM_BUILD_ROOT
296 install -d $RPM_BUILD_ROOT{/%{_lib},%{_bindir},%{_includedir},%{_libdir},%{_mandir}/man1}
299 DESTDIR=$RPM_BUILD_ROOT
301 %{__mv} $RPM_BUILD_ROOT%{_libdir}/lib*.so.* $RPM_BUILD_ROOT/%{_lib}
302 %{__rm} $RPM_BUILD_ROOT%{_libdir}/lib*.so
303 ln -sf /%{_lib}/$(cd $RPM_BUILD_ROOT/%{_lib}; echo lib*.so.*.*) \
304 $RPM_BUILD_ROOT%{_libdir}/libsqlite3.so
306 cp -p sqlite3.1 $RPM_BUILD_ROOT%{_mandir}/man1
309 rm -rf $RPM_BUILD_ROOT
311 %post libs -p /sbin/ldconfig
312 %postun libs -p /sbin/ldconfig
315 %defattr(644,root,root,755)
316 %attr(755,root,root) /%{_lib}/libsqlite3.so.*.*.*
317 %attr(755,root,root) %ghost /%{_lib}/libsqlite3.so.0
320 %defattr(644,root,root,755)
322 %attr(755,root,root) %{_bindir}/sqlite3
323 %{_mandir}/man1/sqlite3.1*
326 %defattr(644,root,root,755)
327 %attr(755,root,root) %{_libdir}/libsqlite3.so
328 %{_libdir}/libsqlite3.la
329 %{_includedir}/sqlite3.h
330 %{_includedir}/sqlite3ext.h
331 %{_pkgconfigdir}/sqlite3.pc
334 %defattr(644,root,root,755)
335 %{_libdir}/libsqlite3.a
338 %files -n tcl-%{name}
339 %defattr(644,root,root,755)
340 %dir %{_libdir}/tcl*/sqlite3
341 %attr(755,root,root) %{_libdir}/tcl%{tclver}/sqlite3/libtclsqlite3.so
342 %{_libdir}/tcl%{tclver}/sqlite3/pkgIndex.tcl