- IMHO better handling of without_static_libs
[packages/db4.4.git] / db4.4.spec
1 #
2 # Conditional build:
3 %bcond_with     java    # build db-java
4 %bcond_without  tcl     # don't build Tcl bindings
5 %bcond_with     pmutex  # use POSIX mutexes (only process-private with linuxthreads)
6 %bcond_without  nptl    # don't use process-shared POSIX mutexes (NPTL provides full interface)
7 %bcond_without  static_libs     # don't build static libraries
8 #
9 %{?with_nptl:%define    with_pmutex     1}
10 Summary:        Berkeley DB database library for C
11 Summary(pl):    Biblioteka C do obs³ugi baz Berkeley DB
12 Name:           db4.4
13 Version:        4.4.20
14 Release:        1
15 Epoch:          0
16 License:        Sleepycat public license (GPL-like, see LICENSE)
17 Group:          Libraries
18 # alternative site (sometimes working): http://www.berkeleydb.com/
19 #Source0Download: http://dev.sleepycat.com/downloads/releasehistorybdb.html
20 Source0:        http://downloads.sleepycat.com/db-%{version}.tar.gz
21 # Source0-md5:  d84dff288a19186b136b0daf7067ade3
22 Patch0:         http://www.sleepycat.com/update/4.4.20/patch.4.4.20.1
23 Patch1:         http://www.sleepycat.com/update/4.4.20/patch.4.4.20.2
24 URL:            http://www.sleepycat.com/
25 BuildRequires:  autoconf
26 BuildRequires:  automake
27 BuildRequires:  ed
28 %{?with_java:BuildRequires:     jdk}
29 BuildRequires:  libstdc++-devel
30 BuildRequires:  libtool
31 BuildRequires:  sed >= 4.0
32 %{?with_tcl:BuildRequires:      tcl-devel >= 8.4.0}
33 Provides:       db = %{version}-%{release}
34 Obsoletes:      db4
35 BuildRoot:      %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
36
37 %description
38 The Berkeley Database (Berkeley DB) is a programmatic toolkit that
39 provides embedded database support for both traditional and
40 client/server applications. Berkeley DB is used by many applications,
41 including Python and Perl, so this should be installed on all systems.
42
43 %description -l pl
44 Berkeley Database (Berkeley DB) to zestaw narzêdzi programistycznych
45 zapewniaj±cych obs³ugê baz danych w aplikacjach tradycyjnych jak i
46 klient-serwer. Berkeley db jest u¿ywana w wielu aplikacjach, w tym w
47 Pythonie i Perlu.
48
49 %package devel
50 Summary:        Header files for Berkeley database library
51 Summary(pl):    Pliki nag³ówkowe do biblioteki Berkeley Database
52 Group:          Development/Libraries
53 Requires:       %{name} = %{epoch}:%{version}-%{release}
54 Provides:       db-devel = %{version}-%{release}
55 Obsoletes:      db3-devel
56 Obsoletes:      db4-devel
57
58 %description devel
59 The Berkeley Database (Berkeley DB) is a programmatic toolkit that
60 provides embedded database support for both traditional and
61 client/server applications. Berkeley DB includes B+tree, Extended
62 Linear Hashing, Fixed and Variable-length record access methods,
63 transactions, locking, logging, shared memory caching and database
64 recovery. DB supports C, C++, Java and Perl APIs.
65
66 This package contains the header files, libraries, and documentation
67 for building programs which use Berkeley DB.
68
69 %description devel -l pl
70 Berkeley Database (Berkeley DB) to zestaw narzêdzi programistycznych
71 zapewniaj±cych obs³ugê baz danych w aplikacjach tradycyjnych jak i
72 klient-serwer. Berkeley DB obs³uguje dostêp do bazy przez B-drzewa i
73 funkcje mieszaj±ce ze sta³± lub zmienn± wielko¶ci± rekordu,
74 transakcje, kroniki, pamiêæ dzielon± i odtwarzanie baz. Ma wsparcie
75 dla C, C++, Javy i Perla.
76
77 Ten pakiet zawiera pliki nag³ówkowe i dokumentacjê do budowania
78 programów u¿ywaj±cych Berkeley DB.
79
80 %package static
81 Summary:        Static libraries for Berkeley database library
82 Summary(pl):    Statyczne biblioteki Berkeley Database
83 Group:          Development/Libraries
84 Requires:       %{name}-devel = %{epoch}:%{version}-%{release}
85 Provides:       db-static = %{version}-%{release}
86 Obsoletes:      db3-static
87 Obsoletes:      db4-static
88
89 %description static
90 The Berkeley Database (Berkeley DB) is a programmatic toolkit that
91 provides embedded database support for both traditional and
92 client/server applications. Berkeley DB includes B+tree, Extended
93 Linear Hashing, Fixed and Variable-length record access methods,
94 transactions, locking, logging, shared memory caching and database
95 recovery. DB supports C, C++, Java and Perl APIs.
96
97 This package contains the static libraries for building programs which
98 use Berkeley DB.
99
100 %description static -l pl
101 Berkeley Database (Berkeley DB) to zestaw narzêdzi programistycznych
102 zapewniaj±cych obs³ugê baz danych w aplikacjach tradycyjnych jak i
103 klient-serwer. Berkeley DB obs³uguje dostêp do bazy przez B-drzewa i
104 funkcje mieszaj±ce ze sta³± lub zmienn± wielko¶ci± rekordu,
105 transakcje, kroniki, pamiêæ dzielon± i odtwarzanie baz. Ma wsparcie
106 dla C, C++, Javy i Perla.
107
108 Ten pakiet zawiera statyczne biblioteki do budowania programów
109 u¿ywaj±cych Berkeley DB.
110
111 %package cxx
112 Summary:        Berkeley database library for C++
113 Summary(pl):    Biblioteka baz danych Berkeley dla C++
114 Group:          Libraries
115 Provides:       db-cxx = %{version}-%{release}
116 Obsoletes:      db4-cxx
117
118 %description cxx
119 Berkeley database library for C++.
120
121 %description cxx -l pl
122 Biblioteka baz danych Berkeley dla C++.
123
124 %package cxx-devel
125 Summary:        Header files for db-cxx library
126 Summary(pl):    Pliki nag³ówkowe biblioteki db-cxx
127 Group:          Development/Libraries
128 Requires:       %{name}-cxx = %{epoch}:%{version}-%{release}
129 Requires:       %{name}-devel = %{epoch}:%{version}-%{release}
130 Provides:       db-cxx-devel = %{version}-%{release}
131 Conflicts:      db-devel < 4.1.25-3
132
133 %description cxx-devel
134 Header files for db-cxx library.
135
136 %description cxx-devel -l pl
137 Pliki nag³ówkowe biblioteki db-cxx.
138
139 %package cxx-static
140 Summary:        Static version of db-cxx library
141 Summary(pl):    Statyczna wersja biblioteki db-cxx
142 Group:          Development/Libraries
143 Requires:       %{name}-cxx-devel = %{epoch}:%{version}-%{release}
144 Provides:       db-cxx-static = %{version}-%{release}
145 Conflicts:      db-static < 4.2.50-1
146
147 %description cxx-static
148 Static version of db-cxx library.
149
150 %description cxx-static -l pl
151 Statyczna wersja biblioteki db-cxx.
152
153 %package java
154 Summary:        Berkeley database library for Java
155 Summary(pl):    Biblioteka baz danych Berkeley dla Javy
156 Group:          Libraries
157 Requires:       jre
158 Provides:       db-java = %{version}-%{release}
159
160 %description java
161 Berkeley database library for Java.
162
163 %description java -l pl
164 Biblioteka baz danych Berkeley dla Javy.
165
166 %package java-devel
167 Summary:        Development files for db-java library
168 Summary(pl):    Pliki programistyczne biblioteki db-java
169 Group:          Development/Languages/Java
170 Requires:       %{name}-java = %{epoch}:%{version}-%{release}
171 Provides:       db-java-devel = %{version}-%{release}
172 Conflicts:      db-devel < 4.1.25-3
173
174 %description java-devel
175 Development files for db-java library.
176
177 %description java-devel -l pl
178 Pliki programistyczne biblioteki db-java.
179
180 %package tcl
181 Summary:        Berkeley database library for Tcl
182 Summary(pl):    Biblioteka baz danych Berkeley dla Tcl
183 Group:          Development/Languages/Tcl
184 Requires:       tcl
185 Provides:       db-tcl = %{version}-%{release}
186 Obsoletes:      db4-tcl
187
188 %description tcl
189 Berkeley database library for Tcl.
190
191 %description tcl -l pl
192 Biblioteka baz danych Berkeley dla Tcl.
193
194 %package tcl-devel
195 Summary:        Development files for db-tcl library
196 Summary(pl):    Pliki programistyczne biblioteki db-tcl
197 Group:          Development/Languages/Tcl
198 Requires:       %{name}-tcl = %{epoch}:%{version}-%{release}
199 Provides:       db-tcl-devel = %{version}-%{release}
200 Conflicts:      db-devel < 4.1.25-3
201
202 %description tcl-devel
203 Development files for db-tcl library.
204
205 %description tcl-devel -l pl
206 Pliki programistyczne biblioteki db-tcl.
207
208 %package utils
209 Summary:        Command line tools for managing Berkeley DB databases
210 Summary(pl):    Narzêdzia do obs³ugi baz Berkeley DB z linii poleceñ
211 Group:          Applications/Databases
212 Requires:       %{name} = %{epoch}:%{version}-%{release}
213 Provides:       db-utils = %{version}-%{release}
214 Obsoletes:      db4-utils
215 # obsolete Ra package
216 Obsoletes:      db3-utils
217
218 %description utils
219 The Berkeley Database (Berkeley DB) is a programmatic toolkit that
220 provides embedded database support for both traditional and
221 client/server applications. Berkeley DB includes B+tree, Extended
222 Linear Hashing, Fixed and Variable-length record access methods,
223 transactions, locking, logging, shared memory caching and database
224 recovery. DB supports C, C++, Java and Perl APIs.
225
226 This package contains command line tools for managing Berkeley DB
227 databases.
228
229 %description utils -l pl
230 Berkeley Database (Berkeley DB) to zestaw narzêdzi programistycznych
231 zapewniaj±cych obs³ugê baz danych w aplikacjach tradycyjnych jak i
232 klient-serwer. Berkeley DB obs³uguje dostêp do bazy przez B-drzewa i
233 funkcje mieszaj±ce ze sta³± lub zmienn± wielko¶ci± rekordu,
234 transakcje, kroniki, pamiêæ dzielon± i odtwarzanie baz. Ma wsparcie
235 dla C, C++, Javy i Perla.
236
237 Ten pakiet zawiera narzêdzia do obs³ugi baz Berkeley DB z linii
238 poleceñ.
239
240 %prep
241 %setup -q -n db-%{version}
242 %patch0 -p0
243 %patch1 -p0
244
245 %if %{without nptl}
246 sed -i -e 's,AM_PTHREADS_SHARED("POSIX/.*,:,' dist/aclocal/mutex.ac
247 %endif
248
249 %build
250 cd dist
251 cp -f /usr/share/aclocal/libtool.m4 aclocal/libtool.ac
252 cp -f /usr/share/automake/config.sub .
253 cp -f /usr/share/libtool/ltmain.sh .
254 sh s_config
255 cd ..
256
257 %if %{with static_libs}
258 cp -a build_unix build_unix.static
259
260 cd build_unix.static
261
262 CC="%{__cc}"
263 CXX="%{__cxx}"
264 CFLAGS="%{rpmcflags}"
265 CXXFLAGS="%{rpmcflags} -fno-implicit-templates"
266 LDFLAGS="%{rpmldflags}"
267 export CC CXX CFLAGS CXXFLAGS LDFLAGS
268
269 ../dist/%configure \
270         --enable-compat185 \
271         --disable-shared \
272         --enable-static \
273         --enable-rpc \
274         --%{?with_pmutex:en}%{!?with_pmutex:dis}able-posixmutexes \
275         --enable-cxx
276
277 # (temporarily?) disabled because of compilation errors:
278 #       --enable-dump185 \
279
280 %{__make} library_build
281 cd ..
282 %endif
283
284 cd build_unix
285
286 ../dist/%configure \
287         --prefix=%{_prefix} \
288         --libdir=%{_libdir} \
289         --enable-compat185 \
290         --enable-rpc \
291         --%{?with_pmutex:en}%{!?with_pmutex:dis}able-posixmutexes \
292         --enable-cxx \
293         %{?with_tcl:--enable-tcl} \
294         %{?with_tcl:--with-tcl=/usr/lib} \
295         %{?with_java:--enable-java} \
296         --disable-static \
297         --enable-shared
298
299 %{__make} library_build \
300         TCFLAGS='-I$(builddir) -I%{_includedir}' \
301         LIBSO_LIBS="\$(LIBS)" \
302         LIBTSO_LIBS="\$(LIBS) -ltcl"
303
304 %install
305 rm -rf $RPM_BUILD_ROOT
306 install -d $RPM_BUILD_ROOT{%{_includedir},%{_libdir},%{_bindir},/%{_lib}}
307 %if %{with java}
308 install -d $RPM_BUILD_ROOT%{_javadir}
309 %endif
310
311 %if %{with static_libs}
312 %{__make} -C build_unix.static library_install \
313         docdir=%{_docdir}/db-%{version}-docs \
314         DESTDIR=$RPM_BUILD_ROOT
315 %endif
316
317 %{__make} -C build_unix library_install \
318         docdir=%{_docdir}/db-%{version}-docs \
319         DESTDIR=$RPM_BUILD_ROOT \
320         LIB_INSTALL_FILE_LIST=""
321
322 mv $RPM_BUILD_ROOT%{_libdir}/libdb-4.4.so $RPM_BUILD_ROOT/%{_lib}
323
324 cd $RPM_BUILD_ROOT%{_libdir}
325 ln -sf /%{_lib}/libdb-4.4.so libdb.so
326 ln -sf /%{_lib}/libdb-4.4.so libdb4.so
327 ln -sf /%{_lib}/libdb-4.4.so libdb-4.4.so
328 ln -sf /%{_lib}/libdb-4.4.so libndbm.so
329 ln -sf libdb-4.4.la libdb.la
330 ln -sf libdb-4.4.la libdb4.la
331 ln -sf libdb-4.4.la libndbm.la
332 %if %{with java}
333 ln -sf libdb_java-4.4.la libdb_java.la
334 mv -f $RPM_BUILD_ROOT%{_libdir}/*.jar $RPM_BUILD_ROOT%{_javadir}
335 %endif
336 %if %{with tcl}
337 ln -sf libdb_tcl-4.4.so libdb_tcl.so
338 ln -sf libdb_tcl-4.4.la libdb_tcl.la
339 %endif
340 ln -sf libdb_cxx-4.4.la libdb_cxx.la
341 %if %{with static_libs}
342 mv -f libdb.a libdb-4.4.a
343 ln -sf libdb-4.4.a libdb.a
344 ln -sf libdb-4.4.a libdb4.a
345 ln -sf libdb-4.4.a libndbm.a
346 mv -f libdb_cxx.a libdb_cxx-4.4.a
347 ln -sf libdb_cxx-4.4.a libdb_cxx.a
348 %endif
349 ln -sf libdb_cxx-4.4.so libdb_cxx.so
350
351 sed -i "s/old_library=''/old_library='libdb-4.4.a'/" libdb-4.4.la
352 sed -i "s/old_library=''/old_library='libdb_cxx-4.4.a'/" libdb_cxx-4.4.la
353
354 cd -
355 rm -f examples_c*/tags
356 install -d $RPM_BUILD_ROOT%{_examplesdir}/db-%{version}
357 cp -rf examples_c/* $RPM_BUILD_ROOT%{_examplesdir}/db-%{version}
358
359 install -d $RPM_BUILD_ROOT%{_examplesdir}/db-cxx-%{version}
360 cp -rf examples_cxx/* $RPM_BUILD_ROOT%{_examplesdir}/db-cxx-%{version}
361
362 %if %{with java}
363 install -d $RPM_BUILD_ROOT%{_examplesdir}/db-java-%{version}
364 cp -rf examples_java/* $RPM_BUILD_ROOT%{_examplesdir}/db-java-%{version}
365 %endif
366
367 %clean
368 rm -rf $RPM_BUILD_ROOT
369
370 %post   -p /sbin/ldconfig
371 %postun -p /sbin/ldconfig
372
373 %post   tcl -p /sbin/ldconfig
374 %postun tcl -p /sbin/ldconfig
375
376 %post   cxx -p /sbin/ldconfig
377 %postun cxx -p /sbin/ldconfig
378
379 %files
380 %defattr(644,root,root,755)
381 %doc LICENSE README
382 %attr(755,root,root) /%{_lib}/libdb-4.4.so
383 %dir %{_docdir}/db-%{version}-docs
384 %{_docdir}/db-%{version}-docs/sleepycat
385 %{_docdir}/db-%{version}-docs/index.html
386
387 %files devel
388 %defattr(644,root,root,755)
389 %attr(755,root,root) %{_libdir}/libdb-4.4.so
390 %attr(755,root,root) %{_libdir}/libdb4.so
391 %attr(755,root,root) %{_libdir}/libdb.so
392 %attr(755,root,root) %{_libdir}/libndbm.so
393 %{_libdir}/libdb-4.4.la
394 %{_libdir}/libdb4.la
395 %{_libdir}/libdb.la
396 %{_libdir}/libndbm.la
397 %{_includedir}/db.h
398 %{_includedir}/db_185.h
399 %{_docdir}/db-%{version}-docs/api_c
400 %dir %{_docdir}/db-%{version}-docs/gsg
401 %{_docdir}/db-%{version}-docs/gsg/C
402 %dir %{_docdir}/db-%{version}-docs/gsg_txn
403 %{_docdir}/db-%{version}-docs/gsg_txn/C
404 %{_docdir}/db-%{version}-docs/images
405 %{_docdir}/db-%{version}-docs/ref
406 %{_examplesdir}/db-%{version}
407
408 %if %{with static_libs}
409 %files static
410 %defattr(644,root,root,755)
411 %{_libdir}/libdb-4.4.a
412 %{_libdir}/libdb4.a
413 %{_libdir}/libdb.a
414 %{_libdir}/libndbm.a
415 %endif
416
417 %files cxx
418 %defattr(644,root,root,755)
419 %attr(755,root,root) %{_libdir}/libdb_cxx-4.4.so
420
421 %files cxx-devel
422 %defattr(644,root,root,755)
423 %attr(755,root,root) %{_libdir}/libdb_cxx.so
424 %{_libdir}/libdb_cxx-4.4.la
425 %{_libdir}/libdb_cxx.la
426 %{_includedir}/db_cxx.h
427 %{_docdir}/db-%{version}-docs/api_cxx
428 %{_docdir}/db-%{version}-docs/gsg/CXX
429 %{_docdir}/db-%{version}-docs/gsg_txn/CXX
430 %{_examplesdir}/db-cxx-%{version}
431
432 %if %{with static_libs}
433 %files cxx-static
434 %defattr(644,root,root,755)
435 %{_libdir}/libdb_cxx-4.4.a
436 %{_libdir}/libdb_cxx.a
437 %endif
438
439 %if %{with java}
440 %files java
441 %defattr(644,root,root,755)
442 %attr(755,root,root) %{_libdir}/libdb_java-4.4.so
443 %{_javadir}/db.jar
444
445 %files java-devel
446 %defattr(644,root,root,755)
447 %attr(755,root,root) %{_libdir}/libdb_java.so
448 %{_libdir}/libdb_java-4.4.la
449 %{_libdir}/libdb_java.la
450 %{_docdir}/db-%{version}-docs/collections
451 %{_docdir}/db-%{version}-docs/gsg/JAVA
452 %{_docdir}/db-%{version}-docs/gsg_txn/JAVA
453 %{_docdir}/db-%{version}-docs/java
454 %{_examplesdir}/db-java-%{version}
455 %endif
456
457 %if %{with tcl}
458 %files tcl
459 %defattr(644,root,root,755)
460 %attr(755,root,root) %{_libdir}/libdb_tcl-4.4.so
461
462 %files tcl-devel
463 %defattr(644,root,root,755)
464 %attr(755,root,root) %{_libdir}/libdb_tcl.so
465 %{_libdir}/libdb_tcl-4.4.la
466 %{_libdir}/libdb_tcl.la
467 %{_docdir}/db-%{version}-docs/api_tcl
468 %endif
469
470 %files utils
471 %defattr(644,root,root,755)
472 %attr(755,root,root) %{_bindir}/berkeley_db_svc
473 %attr(755,root,root) %{_bindir}/db*_archive
474 %attr(755,root,root) %{_bindir}/db*_checkpoint
475 %attr(755,root,root) %{_bindir}/db*_deadlock
476 %attr(755,root,root) %{_bindir}/db*_dump
477 #%attr(755,root,root) %{_bindir}/db*_dump185
478 %attr(755,root,root) %{_bindir}/db*_hotbackup
479 %attr(755,root,root) %{_bindir}/db*_load
480 %attr(755,root,root) %{_bindir}/db*_printlog
481 %attr(755,root,root) %{_bindir}/db*_recover
482 %attr(755,root,root) %{_bindir}/db*_stat
483 %attr(755,root,root) %{_bindir}/db*_upgrade
484 %attr(755,root,root) %{_bindir}/db*_verify
485 %{_docdir}/db-%{version}-docs/utility
This page took 0.077062 seconds and 3 git commands to generate.