You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
183 lines
5.9 KiB
183 lines
5.9 KiB
## |
|
## db.spec -- OpenPKG RPM Package Specification |
|
## Copyright (c) 2000-2022 OpenPKG Project <http://openpkg.org/> |
|
## |
|
## Permission to use, copy, modify, and distribute this software for |
|
## any purpose with or without fee is hereby granted, provided that |
|
## the above copyright notice and this permission notice appear in all |
|
## copies. |
|
## |
|
## THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED |
|
## WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF |
|
## MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. |
|
## IN NO EVENT SHALL THE AUTHORS AND COPYRIGHT HOLDERS AND THEIR |
|
## CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, |
|
## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT |
|
## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF |
|
## USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND |
|
## ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, |
|
## OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT |
|
## OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF |
|
## SUCH DAMAGE. |
|
## |
|
|
|
# package version |
|
%define V_version 4.7.25 |
|
%define V_revision 4 |
|
|
|
# package information |
|
Name: db |
|
Summary: Berkeley-DB Library |
|
URL: http://www.oracle.com/database/berkeley-db.html |
|
Vendor: Keith Bostic |
|
Packager: OpenPKG Project |
|
Distribution: OpenPKG Community |
|
Class: BASE |
|
Group: Database |
|
License: BSD |
|
Version: %{V_version}.%{V_revision} |
|
Release: 20160305 |
|
|
|
# package options |
|
%option with_pthreads no |
|
%option with_compat no |
|
%option with_cxx no |
|
|
|
# package options sanity check |
|
%if "%{with_pthreads}" == "yes" |
|
%{warn: WARNING: enabling Pthreads will potentially let other packages fail to build! } |
|
%endif |
|
|
|
# list of sources |
|
Source0: http://download-uk.oracle.com/berkeley-db/db-%{V_version}.tar.gz |
|
Source1: db.pc |
|
Patch0: db.patch |
|
Patch1: http://www.oracle.com/technology/products/berkeley-db/db/update/%{V_version}/patch.%{V_version}.1 |
|
Patch2: http://www.oracle.com/technology/products/berkeley-db/db/update/%{V_version}/patch.%{V_version}.2 |
|
Patch3: http://www.oracle.com/technology/products/berkeley-db/db/update/%{V_version}/patch.%{V_version}.3 |
|
Patch4: http://www.oracle.com/technology/products/berkeley-db/db/update/%{V_version}/patch.%{V_version}.4 |
|
|
|
# build information |
|
BuildPreReq: OpenPKG, openpkg >= 20160101, gcc |
|
PreReq: OpenPKG, openpkg >= 20160101 |
|
%if "%{with_cxx}" == "yes" |
|
BuildPreReq: gcc::with_cxx = yes |
|
%endif |
|
|
|
%description |
|
Berkeley DB is a programmatic toolkit that provides high-performance |
|
built-in database support for desktop and server applications and |
|
for information appliances. The Berkeley DB access methods include |
|
B+tree, Extended Linear Hashing, Fixed and Variable-length records, |
|
and Queues. Berkeley DB provides full transactional support, |
|
database recovery, online backups, and separate access to locking, |
|
logging and shared memory caching subsystems. |
|
|
|
%track |
|
prog db = { |
|
disabled |
|
comment = "DB 4.8 seems to require Pthread unconditionally (not just for mutex)" |
|
version = %{V_version} |
|
url = http://www.oracle.com/technology/software/products/berkeley-db/index.html |
|
regex = Berkeley\s+DB\s+(__VER__)\s+\.tar\.gz |
|
} |
|
|
|
%prep |
|
%setup -q -n db-%{V_version} |
|
chmod -R u+rw . |
|
%patch -p0 -P 0 |
|
%patch -p0 -P 1 |
|
%patch -p0 -P 2 |
|
%patch -p0 -P 3 |
|
%patch -p0 -P 4 |
|
|
|
%{l_shtool} subst \ |
|
-e 's;\($(ar) cr .*\);\1 _udivdi3.o _muldi3.o _clz.o;' \ |
|
-e 's;install_utilities install_docs;install_utilities;' \ |
|
dist/Makefile.in |
|
|
|
%build |
|
# configure library |
|
%if "%{with_pthreads}" == "yes" |
|
mutex="POSIX/pthreads" |
|
%else |
|
mutex="no" |
|
case "%{l_platform -p}" in |
|
amd64-* ) mutex="x86_64/gcc-assembly";; |
|
ix86-* ) mutex="x86/gcc-assembly" ;; |
|
ia64-* ) mutex="ia64/gcc-assembly" ;; |
|
sparc*-* ) mutex="Sparc/gcc-assembly" ;; |
|
ppc*-* ) mutex="PPC/gcc-assembly" ;; |
|
alpha*-* ) mutex="ALPHA/gcc-assembly" ;; |
|
* ) mutex="UNIX/fcntl" ;; |
|
esac |
|
%endif |
|
cd build_unix |
|
CC="%{l_cc}" \ |
|
CFLAGS="%{l_cflags -O}" \ |
|
%if "%{with_cxx}" == "yes" |
|
CXX="%{l_cxx}" \ |
|
CXXFLAGS="%{l_cxxflags -O}" \ |
|
%endif |
|
GREP="grep" \ |
|
../dist/configure \ |
|
--prefix=%{l_prefix} \ |
|
%if "%{with_compat}" == "yes" |
|
--enable-compat185 \ |
|
%else |
|
--disable-compat185 \ |
|
%endif |
|
%if "%{with_cxx}" == "yes" |
|
--enable-cxx \ |
|
%else |
|
--disable-cxx \ |
|
%endif |
|
--disable-java \ |
|
--with-mutex="$mutex" \ |
|
%if "%{with_pthreads}" == "yes" |
|
--enable-pthread_api \ |
|
%endif |
|
--disable-shared |
|
|
|
# build library |
|
ar -vx `%{l_cc} -print-libgcc-file-name` _udivdi3.o _muldi3.o _clz.o |
|
%{l_make} %{l_mflags -O} |
|
|
|
%install |
|
# install library |
|
( cd build_unix |
|
%{l_make} %{l_mflags} install \ |
|
prefix=$RPM_BUILD_ROOT%{l_prefix} |
|
) || exit $? |
|
|
|
# strip down installation |
|
rm -f $RPM_BUILD_ROOT%{l_prefix}/lib/libdb-[0-9]*.a |
|
strip $RPM_BUILD_ROOT%{l_prefix}/bin/* >/dev/null 2>&1 || true |
|
%if "%{with_compat}" == "no" |
|
rm -f $RPM_BUILD_ROOT%{l_prefix}/include/db_185.h |
|
%endif |
|
%if "%{with_cxx}" == "no" |
|
rm -f $RPM_BUILD_ROOT%{l_prefix}/include/db_cxx.h |
|
rm -f $RPM_BUILD_ROOT%{l_prefix}/include/cxx_*.h |
|
%endif |
|
|
|
# install pkg-config configuration |
|
libs="-ldb" |
|
case "%{l_platform -t}" in |
|
*-sunos* ) libs="$libs -lrt -lsocket -lnsl" ;; |
|
esac |
|
%{l_shtool} mkdir -f -p -m 755 \ |
|
$RPM_BUILD_ROOT%{l_prefix}/lib/pkgconfig |
|
%{l_shtool} install -c -m 644 %{l_value -s -a} \ |
|
-e "s;@version@;%{version};" \ |
|
-e "s;@libs@;$libs;" \ |
|
%{SOURCE db.pc} \ |
|
$RPM_BUILD_ROOT%{l_prefix}/lib/pkgconfig/ |
|
|
|
# determine installation files |
|
%{l_rpmtool} files -v -ofiles -r$RPM_BUILD_ROOT %{l_files_std} |
|
|
|
%files -f files |
|
|
|
%clean |
|
|
|
|