db/db.spec

Mon, 17 Sep 2012 19:10:10 +0200

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Mon, 17 Sep 2012 19:10:10 +0200
changeset 689
9fe04d4d4e5a
parent 122
d170463cc57b
permissions
-rw-r--r--

Update to new version of vendor software although Oracle fails to deliver.
More specifically, newer db(3) patch revisions exist but Oracle has
removed them from the canonical download server URI for Berkely DB.

     1 ##
     2 ##  db.spec -- OpenPKG RPM Package Specification
     3 ##  Copyright (c) 2000-2008 OpenPKG Foundation e.V. <http://openpkg.net/>
     4 ##
     5 ##  Permission to use, copy, modify, and distribute this software for
     6 ##  any purpose with or without fee is hereby granted, provided that
     7 ##  the above copyright notice and this permission notice appear in all
     8 ##  copies.
     9 ##
    10 ##  THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
    11 ##  WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
    12 ##  MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
    13 ##  IN NO EVENT SHALL THE AUTHORS AND COPYRIGHT HOLDERS AND THEIR
    14 ##  CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
    15 ##  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
    16 ##  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
    17 ##  USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
    18 ##  ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
    19 ##  OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
    20 ##  OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
    21 ##  SUCH DAMAGE.
    22 ##
    24 #   package version
    25 %define       V_version  4.7.25
    26 %define       V_revision 4
    28 #   package information
    29 Name:         db
    30 Summary:      Berkeley-DB Library
    31 URL:          http://www.oracle.com/database/berkeley-db.html
    32 Vendor:       Keith Bostic
    33 Packager:     OpenPKG Foundation e.V.
    34 Distribution: OpenPKG Community
    35 Class:        BASE
    36 Group:        Database
    37 License:      BSD
    38 Version:      %{V_version}.%{V_revision}
    39 Release:      20120800
    41 #   package options
    42 %option       with_pthreads no
    43 %option       with_compat   no
    44 %option       with_cxx      no
    46 #   package options sanity check
    47 %if "%{with_pthreads}" == "yes"
    48     %{warn: WARNING: enabling Pthreads will potentially let other packages fail to build! }
    49 %endif
    51 #   list of sources
    52 Source0:      http://download-uk.oracle.com/berkeley-db/db-%{V_version}.tar.gz
    53 Source1:      db.pc
    54 Patch0:       db.patch
    55 Patch1:       http://www.oracle.com/technology/products/berkeley-db/db/update/%{V_version}/patch.%{V_version}.1
    56 Patch2:       http://www.oracle.com/technology/products/berkeley-db/db/update/%{V_version}/patch.%{V_version}.2
    57 Patch3:       http://www.oracle.com/technology/products/berkeley-db/db/update/%{V_version}/patch.%{V_version}.3
    58 Patch4:       http://www.oracle.com/technology/products/berkeley-db/db/update/%{V_version}/patch.%{V_version}.4
    60 #   build information
    61 Prefix:       %{l_prefix}
    62 BuildRoot:    %{l_buildroot}
    63 BuildPreReq:  OpenPKG, openpkg >= 20040130, gcc
    64 PreReq:       OpenPKG, openpkg >= 20040130
    65 %if "%{with_cxx}" == "yes"
    66 BuildPreReq:  gcc::with_cxx = yes
    67 %endif
    68 AutoReq:      no
    69 AutoReqProv:  no
    71 %description
    72     Berkeley DB is a programmatic toolkit that provides high-performance
    73     built-in database support for desktop and server applications and
    74     for information appliances. The Berkeley DB access methods include
    75     B+tree, Extended Linear Hashing, Fixed and Variable-length records,
    76     and Queues. Berkeley DB provides full transactional support,
    77     database recovery, online backups, and separate access to locking,
    78     logging and shared memory caching subsystems.
    80 %track
    81     prog db = {
    82         version   = %{V_version}
    83         url       = http://www.oracle.com/technology/software/products/berkeley-db/index.html
    84         regex     = Berkeley\s+DB\s+(__VER__)\s+\.tar\.gz
    85     }
    87 %prep
    88     %setup -q -n db-%{V_version}
    89     %patch -p0 -P 0
    90     %patch -p0 -P 1
    91     %patch -p0 -P 2
    92     %patch -p0 -P 3
    93     %patch -p0 -P 4
    95     %{l_shtool} subst \
    96         -e 's;\($(ar) cr .*\);\1 _udivdi3.o _muldi3.o _clz.o;' \
    97         -e 's;install_utilities install_docs;install_utilities;' \
    98         dist/Makefile.in
    99     %{l_shtool} subst \
   100         -e 's;u_int\([0-9][0-9]*_t\);uint\1;g' \
   101         build_brew/db_int.h dist/aclocal/types.m4 \
   102         dist/configure dbinc_auto/* dbinc/* \
   103         btree/* common/* crypto/* db_archive/* db_checkpoint/* \
   104         db_codegen/* db_deadlock/* db_dump/* db_hotbackup/* \
   105         db_load/* db_printlog/* db_recover/* db_stat/* \
   106         db_upgrade/* db_verify/* db/* db185/* dbreg/* env/* \
   107         fileops/* hash/* hmac/* hsearch/* lock/* log/* \
   108         crypto/mersenne/* mp/* mutex/* os/* qam/* rep/* \
   109         repmgr/* crypto/rijndael/* sequence/* txn/* xa/*
   111 %build
   112     #   configure library
   113 %if "%{with_pthreads}" == "yes"
   114     mutex="POSIX/pthreads"
   115 %else
   116     mutex="no"
   117     case "%{l_platform -p}" in
   118         amd64-*  ) mutex="x86_64/gcc-assembly";;
   119         ix86-*   ) mutex="x86/gcc-assembly"   ;;
   120         ia64-*   ) mutex="ia64/gcc-assembly"  ;;
   121         sparc*-* ) mutex="Sparc/gcc-assembly" ;;
   122         ppc*-*   ) mutex="PPC/gcc-assembly"   ;;
   123         alpha*-* ) mutex="ALPHA/gcc-assembly" ;;
   124         *        ) mutex="UNIX/fcntl"         ;;
   125     esac
   126 %endif
   127     cd build_unix
   128     CC="%{l_cc}" \
   129     CFLAGS="%{l_cflags -O}" \
   130 %if "%{with_cxx}" == "yes"
   131     CXX="%{l_cxx}" \
   132     CXXFLAGS="%{l_cxxflags -O}" \
   133 %endif
   134     GREP="grep" \
   135     ../dist/configure \
   136         --prefix=%{l_prefix} \
   137 %if "%{with_compat}" == "yes"
   138         --enable-compat185 \
   139 %else
   140         --disable-compat185 \
   141 %endif
   142 %if "%{with_cxx}" == "yes"
   143         --enable-cxx \
   144 %else
   145         --disable-cxx \
   146 %endif
   147         --disable-java \
   148         --with-mutex="$mutex" \
   149 %if "%{with_pthreads}" == "yes"
   150         --enable-pthread_api \
   151 %endif
   152         --disable-shared
   154     #   build library
   155     ar -vx `%{l_cc} -print-libgcc-file-name` _udivdi3.o _muldi3.o _clz.o
   156     %{l_make} %{l_mflags -O}
   158 %install
   159     #   install library
   160     rm -rf $RPM_BUILD_ROOT
   161     ( cd build_unix
   162       %{l_make} %{l_mflags} install \
   163           prefix=$RPM_BUILD_ROOT%{l_prefix}
   164     ) || exit $?
   166     #   strip down installation
   167     rm -f $RPM_BUILD_ROOT%{l_prefix}/lib/libdb-[0-9]*.a
   168     strip $RPM_BUILD_ROOT%{l_prefix}/bin/* >/dev/null 2>&1 || true
   169 %if "%{with_compat}" == "no"
   170     rm -f $RPM_BUILD_ROOT%{l_prefix}/include/db_185.h
   171 %endif
   172 %if "%{with_cxx}" == "no"
   173     rm -f $RPM_BUILD_ROOT%{l_prefix}/include/db_cxx.h
   174     rm -f $RPM_BUILD_ROOT%{l_prefix}/include/cxx_*.h
   175 %endif
   177     #   install pkg-config configuration
   178     libs="-ldb"
   179     case "%{l_platform -t}" in
   180         *-sunos* ) libs="$libs -lrt -lsocket -lnsl" ;;
   181     esac
   182     %{l_shtool} mkdir -f -p -m 755 \
   183         $RPM_BUILD_ROOT%{l_prefix}/lib/pkgconfig
   184     %{l_shtool} install -c -m 644 %{l_value -s -a} \
   185         -e "s;@version@;%{version};" \
   186         -e "s;@libs@;$libs;" \
   187         %{SOURCE db.pc} \
   188         $RPM_BUILD_ROOT%{l_prefix}/lib/pkgconfig/
   190     #   determine installation files
   191     %{l_rpmtool} files -v -ofiles -r$RPM_BUILD_ROOT %{l_files_std}
   193 %files -f files
   195 %clean
   196     rm -rf $RPM_BUILD_ROOT

mercurial