libdb/libdb.spec

230 lines
7.1 KiB
RPMSpec
Raw Normal View History

2019-12-03 17:22:00 +08:00
Name: libdb
Version: 5.3.28
2022-06-21 09:16:41 +08:00
Release: 38
2019-12-03 17:22:00 +08:00
Summary: The Berkeley DB database library for C
License: BSD and LGPLv2 and Sleepycat
URL: https://www.oracle.com/database/berkeley-db/
2020-09-08 20:48:56 +08:00
Source0: http://download.oracle.com/berkeley-db/db-%{version}.tar.gz
2019-12-03 17:22:00 +08:00
Source1: http://download.oracle.com/berkeley-db/db.1.85.tar.gz
Source2: http://www.gnu.org/licenses/lgpl-2.1.txt
Source3: libdb-5.3.28-manpages.tar.gz
Patch0: libdb-multiarch.patch
Patch10: http://www.oracle.com/technology/products/berkeley-db/db/update/1.85/patch.1.1
Patch11: http://www.oracle.com/technology/products/berkeley-db/db/update/1.85/patch.1.2
Patch12: http://www.oracle.com/technology/products/berkeley-db/db/update/1.85/patch.1.3
Patch13: http://www.oracle.com/technology/products/berkeley-db/db/update/1.85/patch.1.4
Patch20: db-1.85-errno.patch
Patch22: db-4.6.21-1.85-compat.patch
Patch24: db-4.5.20-jni-include-dir.patch
Patch25: 007-mt19937db.c_license.patch
Patch26: java8-fix.patch
Patch27: db-5.3.21-memp_stat-upstream-fix.patch
Patch28: db-5.3.21-mutex_leak.patch
Patch29: db-5.3.28-lemon_hash.patch
Patch30: db-5.3.28-condition_variable.patch
Patch31: db-5.3.28-condition-variable-ppc.patch
Patch32: db-5.3.28-rpm-lock-check.patch
# downstream patch to hotfix rhbz#1464033, sent upstream
Patch33: db-5.3.28-cwd-db_config.patch
Patch34: libdb-5.3.21-region-size-check.patch
# Patch sent upstream
Patch35: checkpoint-opd-deadlock.patch
Patch36: db-5.3.28-atomic_compare_exchange.patch
2021-04-19 10:14:13 +08:00
Patch37: backport-CVE-2019-2708-Resolved-data-store-execution-which-led-to-partial-DoS.patch
2019-12-03 17:22:00 +08:00
Patch9000: bugfix-fix-deadlock-on-mempool-file-locks.patch
Patch9001: libdb-limit-cpu.patch
patch9002: libdb-cbd-race.patch
2022-06-21 09:16:41 +08:00
Patch9003: fix-a-potential-infinite-loop.patch
2019-12-03 17:22:00 +08:00
BuildRequires: gcc gcc-c++ perl-interpreter libtool tcl-devel >= 8.5.2-3
BuildRequires: java-devel >= 1:1.6.0 chrpath zlib-devel
Conflicts: filesystem < 3
Provides: %{name}-utils = %{version}-%{release}
Obsoletes: %{name}-utils < %{version}-%{release}
Provides: %{name}-cxx = %{version}-%{release}
Obsoletes: %{name}-cxx < %{version}-%{release}
Provides: %{name}-tcl = %{version}-%{release}
Obsoletes: %{name}-tcl < %{version}-%{release}
Provides: %{name}-sql = %{version}-%{release}
Obsoletes: %{name}-sql < %{version}-%{release}
Provides: %{name}-java = %{version}-%{release}
Obsoletes: %{name}-java < %{version}-%{release}
2019-09-30 10:55:24 -04:00
%description
2019-12-03 17:22:00 +08:00
Oracle Berkeley DB provides the best open source embeddable databases
allowing developers the choice of SQL, Key/Value, XML/XQuery or Java
Object storage for their data model. At its core is a fast, scalable,
transactional database engine with proven reliability and availability.
Berkeley DB comes three versions: Berkeley DB, Berkeley DB Java
Edition, and Berkeley DB XML.
%package devel
Summary: Header files for libdb
Requires: %{name} = %{version}-%{release}
Provides: %{name}-devel-doc = %{version}-%{release}
Obsoletes: %{name}-devel-doc < %{version}-%{release}
Provides: %{name}-devel-static = %{version}-%{release}
Obsoletes: %{name}-devel-static < %{version}-%{release}
Provides: %{name}-cxx-devel = %{version}-%{release}
Obsoletes: %{name}-cxx-devel < %{version}-%{release}
Provides: %{name}-tcl-devel = %{version}-%{release}
Obsoletes: %{name}-tcl-devel < %{version}-%{release}
Provides: %{name}-sql-devel = %{version}-%{release}
Obsoletes: %{name}-sql-devel < %{version}-%{release}
Provides: %{name}-java-devel = %{version}-%{release}
Obsoletes: %{name}-java-devel < %{version}-%{release}
%description devel
Header files for libdb.
%package_help
2019-09-30 10:55:24 -04:00
%prep
%setup -q -n db-%{version} -a 1
2019-12-03 17:22:00 +08:00
cp %{SOURCE2} .
tar -xf %{SOURCE3}
2019-09-30 10:55:24 -04:00
2019-12-03 17:22:00 +08:00
%patch0 -p1
pushd db.1.85/PORT/linux
%patch10 -p0
popd
pushd db.1.85
%patch11 -p0
%patch12 -p0
%patch13 -p0
%patch20 -p1
popd
2019-09-30 10:55:24 -04:00
2019-12-03 17:22:00 +08:00
%patch22 -p1
%patch24 -p1
%patch25 -p1
%patch26 -p1
%patch27 -p1
%patch28 -p1
%patch29 -p1
%patch30 -p1
%patch31 -p1
%patch32 -p1
%patch33 -p1
%patch34 -p1
%patch35 -p1
%patch36 -p1
2021-04-19 10:14:13 +08:00
%patch37 -p1
2019-12-03 17:22:00 +08:00
%patch9000 -p1
%patch9001 -p1
%patch9002 -p1
2022-06-21 09:16:41 +08:00
%patch9003 -p1
2019-12-03 17:22:00 +08:00
pushd dist
./s_config
2019-09-30 10:55:24 -04:00
popd
2019-12-03 17:22:00 +08:00
%build
CFLAGS="$RPM_OPT_FLAGS -fno-strict-aliasing"
CFLAGS="$CFLAGS -DSHAREDSTATEDIR='\"%{_sharedstatedir}\"' -DSQLITE_ENABLE_COLUMN_METADATA=1 -DSQLITE_DISABLE_DIRSYNC=1 -DSQLITE_ENABLE_FTS3=3 -DSQLITE_ENABLE_RTREE=1 -DSQLITE_SECURE_DELETE=1 -DSQLITE_ENABLE_UNLOCK_NOTIFY=1 -I../../../lang/sql/sqlite/ext/fts3/"
export CFLAGS
2019-09-30 10:55:24 -04:00
2019-12-03 17:22:00 +08:00
make -C db.1.85/PORT/%{_os} OORG="$CFLAGS"
2019-09-30 10:55:24 -04:00
2019-12-03 17:22:00 +08:00
test -d dist/dist-tls || mkdir dist/dist-tls
2019-09-30 10:55:24 -04:00
2019-12-03 17:22:00 +08:00
/bin/sh libtool --tag=CC --mode=compile %{__cc} $RPM_OPT_FLAGS -Idb.1.85/PORT/%{_os}/include -D_REENTRANT -c util/db_dump185.c -o dist/dist-tls/db_dump185.lo
/bin/sh libtool --tag=LD --mode=link %{__cc} -o dist/dist-tls/db_dump185 dist/dist-tls/db_dump185.lo db.1.85/PORT/%{_os}/libdb.a
2019-09-30 10:55:24 -04:00
2019-12-03 17:22:00 +08:00
for dir in dist lang/sql/sqlite lang/sql/jdbc lang/sql/odbc; do
cp /usr/lib/rpm/%{?_vendor}/config.{guess,sub} "$dir"
done
2019-09-30 10:55:24 -04:00
2019-12-03 17:22:00 +08:00
pushd dist/dist-tls
%define _configure ../configure
%configure -C \
--enable-compat185 --enable-dump185 --enable-shared --enable-tcl --with-tcl=%{_libdir} \
--enable-cxx --enable-sql --enable-java --enable-test --disable-rpath --with-tcl=%{_libdir}/tcl8.6
2019-09-30 10:55:24 -04:00
2019-12-03 17:22:00 +08:00
%disable_rpath
2019-09-30 10:55:24 -04:00
2019-12-03 17:22:00 +08:00
%make_build
2019-09-30 10:55:24 -04:00
2019-12-03 17:22:00 +08:00
popd
2019-09-30 10:55:24 -04:00
2019-12-03 17:22:00 +08:00
%install
%make_install STRIP=/bin/true -C dist/dist-tls
2019-09-30 10:55:24 -04:00
2019-12-03 17:22:00 +08:00
%delete_la
2019-09-30 10:55:24 -04:00
2019-12-03 17:22:00 +08:00
chmod +x %{buildroot}%{_libdir}/*.so*
2019-09-30 10:55:24 -04:00
2019-12-03 17:22:00 +08:00
install -d -m 0755 %{buildroot}%{_includedir}/libdb
mv %{buildroot}%{_includedir}/*.h %{buildroot}%{_includedir}/libdb/
2019-09-30 10:55:24 -04:00
2019-12-03 17:22:00 +08:00
for i in db.h db_cxx.h db_185.h; do
ln -s %{name}/$i %{buildroot}%{_includedir}
done
2019-09-30 10:55:24 -04:00
2019-12-03 17:22:00 +08:00
install -d -m 0755 %{buildroot}%{_datadir}/java
mv %{buildroot}%{_libdir}/*.jar %{buildroot}%{_datadir}/java/
2019-09-30 10:55:24 -04:00
2019-12-03 17:22:00 +08:00
chmod u+w %{buildroot}%{_bindir} %{buildroot}%{_bindir}/*
chrpath -d ${RPM_BUILD_ROOT}%{_libdir}/*.so ${RPM_BUILD_ROOT}%{_bindir}/*
rm -rf docs/{csharp,installation}
rm -rf %{buildroot}%{_prefix}/docs
rm -rf example/csharp
mv examples docs
install -d -m 0755 %{buildroot}%{_mandir}/man1
mv man/* %{buildroot}%{_mandir}/man1/
2019-09-30 10:55:24 -04:00
2019-12-03 17:22:00 +08:00
%ldconfig_scriptlets
2019-09-30 10:55:24 -04:00
%files
2019-12-03 17:22:00 +08:00
%defattr(-,root,root)
%doc docs/license
2019-09-30 10:55:24 -04:00
%license LICENSE
2019-12-03 17:22:00 +08:00
%{_bindir}/*
%{_libdir}/*.so
%{_datadir}/java/*.jar
%exclude %{_libdir}/libdb.so
%exclude %{_libdir}/libdb_cxx.so
%exclude %{_libdir}/libdb_tcl.so
%exclude %{_libdir}/libdb_sql.so
%exclude %{_libdir}/libdb_java.so
%files devel
%defattr(-,root,root)
%doc docs/*
%{_libdir}/*.a
2019-09-30 10:55:24 -04:00
%{_libdir}/libdb.so
%{_libdir}/libdb_cxx.so
%{_libdir}/libdb_tcl.so
%{_libdir}/libdb_sql.so
%{_libdir}/libdb_java.so
2019-12-03 17:22:00 +08:00
%{_includedir}/*
%files help
%defattr(-,root,root)
%doc README
%{_mandir}/man1
2019-09-30 10:55:24 -04:00
%changelog
2022-06-21 09:16:41 +08:00
* Tue Jun 21 2022 Kou Wenqi <kouwenqi@kylinos.cn> - 5.3.28-38
- Fix a potential infinite loop
2021-04-19 10:14:13 +08:00
* Mon Apr 19 2021 wangchen <wangchen137@huawei.com> - 5.3.28-37
- Fix CVE-2019-2708
2020-09-08 20:48:56 +08:00
* Tue Sep 8 2020 wangchen <wangchen137@huawei.com> - 5.3.28-36
- Modify the URL of Source0
2019-12-03 17:22:00 +08:00
* Wed Nov 6 2019 openEuler Buildteam <buildteam@openeuler.org> - 5.3.28-35
- Add Package version
2019-11-06 19:37:39 +08:00
2019-12-03 17:22:00 +08:00
* Mon Nov 4 2019 openEuler Buildteam <buildteam@openeuler.org> - 5.3.28-34
2019-11-06 19:37:39 +08:00
- Package init