openldap/openldap.spec

Sat, 24 Mar 2012 21:40:49 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Sat, 24 Mar 2012 21:40:49 +0100
changeset 414
fd611cde817f
parent 195
8f6a78b621a9
child 586
e10b124b2f21
permissions
-rw-r--r--

Introduce many changes to the buildconf and source code including:
(01) clean up, update, and partially update default config files,
(02) seems that Melware is unable to perform release engineering so
update chan_capi to new daily snapshot to solve echo problems,
(03) correct Asterisk inadequate hard coded gmime version check,
(04) force postgresql pthreads linkage to solve build problem,
(05) remove buggy hard coded LibXML configure definitions,
(06) remove local architecture specification to allow GCC
internal logic to determine proper CPU type instead,
(07) remove vendor sound install target causing uncontrolled
downloads and non RPM managed file installation,
(08) solve long outstanding bug in tcptls causing Asterisk
to ignore any intermediate CA certificate signatures,
(09) back out Digium engineering team's bright idea of replacing the
very portable and pervasive POSIX rand(1) with ast_random(), and
then not even implementing it causing all references to fail in
platforms not providing the very new POSIX.1-2008 mkdtemp(3)
function only distributed by BSD and some Linux,
(10) withdraw advanced linker symbol manipulations from SVR5 builds
until either Binutils supports hybrid versioned and anonymous
linker scripts or GCC stops hard coding versioned linker scripts,
(11) correct missing library linkage, some tailored to a specific OS,
(12) remove outdated logic for the no longer distributed gmime-config(1),
(13) remove local gmime buildconf hacks now that Asterisk has corrected
their own build configuration to almost portably support gmime,
(14) solve build problems relating to undetected LibXML paths,
(15) correct erroneous out of tree include definitions,
(16) improve some variable and comment naming,
(17) simplify sound language path hierarchy creation,
and correct australian english installation logic.

     1 ##
     2 ##  openldap.spec -- OpenPKG RPM Package Specification
     3 ##  Copyright (c) 2000-2009 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 information
    25 Name:         openldap
    26 Summary:      Lightweight Directory Access Protocol (LDAP) Toolkit
    27 URL:          http://www.openldap.org/
    28 Vendor:       OpenLDAP Project
    29 Packager:     OpenPKG Foundation e.V.
    30 Distribution: OpenPKG Community
    31 Class:        BASE
    32 Group:        LDAP
    33 License:      GPL
    34 Version:      2.4.26
    35 Release:      20110914
    37 #   package options
    38 %option       with_server   yes
    39 %option       with_fsl      yes
    40 %option       with_crypt    yes
    41 %option       with_overlays yes
    42 %option       with_pthreads yes
    43 %option       with_pth      no
    44 %option       with_sasl     no
    45 %option       with_perl     no
    46 %option       with_odbc     no
    48 #   list of sources
    49 Source0:      ftp://ftp.openldap.org/pub/openldap/openldap-release/openldap-%{version}.tgz
    50 Source1:      rc.openldap
    51 Source2:      fsl.openldap
    52 Source3:      openldap.pc
    53 Patch0:       openldap.patch
    55 #   build information
    56 Prefix:       %{l_prefix}
    57 BuildRoot:    %{l_buildroot}
    58 BuildPreReq:  OpenPKG, openpkg >= 20060823, make, gcc
    59 PreReq:       OpenPKG, openpkg >= 20060823
    60 BuildPreReq:  openssl, db >= 4.5
    61 PreReq:       openssl, db >= 4.5
    62 %if "%{with_server}" == "yes" && "%{with_fsl}" == "yes"
    63 BuildPreReq:  fsl
    64 PreReq:       fsl
    65 %endif
    66 %if "%{with_server}" == "yes" && "%{with_pthreads}" == "yes"
    67 BuildPreReq:  db::with_pthreads = yes
    68 PreReq:       db::with_pthreads = yes
    69 %endif
    70 %if "%{with_server}" == "yes" && "%{with_pth}" == "yes"
    71 BuildPreReq:  pth
    72 PreReq:       pth
    73 %endif
    74 %if "%{with_sasl}" == "yes"
    75 BuildPreReq:  sasl
    76 PreReq:       sasl
    77 %endif
    78 %if "%{with_server}" == "yes" && "%{with_odbc}" == "yes"
    79 BuildPreReq:  ODBC
    80 PreReq:       ODBC
    81 %endif
    82 AutoReq:      no
    83 AutoReqProv:  no
    85 %description
    86     OpenLDAP is an open source implementation of the Lightweight
    87     Directory Access Protocol (LDAP). The suite includes libraries
    88     implementing the LDAP protocol plus a stand-alone LDAP server
    89     slapd(8).
    91 %track
    92     prog openldap = {
    93         version   = %{version}
    94         url       = ftp://ftp.openldap.org/pub/openldap/openldap-release/
    95         regex     = openldap-(__VER__)\.tgz
    96     }
    98 %prep
    99     %setup -q
   100     %patch -p0
   101     %{l_shtool} subst \
   102         -e 's;-ldb-4\.[1-9];-ldb;g' \
   103         -e 's;-ldb-4-[1-9];-ldb;g' \
   104         -e 's;-ldb-4[1-9];-ldb;g' \
   105         -e 's;-ldb-4;-ldb;g' \
   106         configure
   108 %build
   109     cp /dev/null config.cache
   111     #   configuration: standard build flags
   112     export CC="%{l_cc}"
   113     export CFLAGS="%{l_cflags -O}"
   114     export CPPFLAGS="%{l_cppflags}"
   115     export LDFLAGS="%{l_ldflags}"
   116     export LIBS=""
   117     export ARGS=""
   118     ARGS="$ARGS --prefix=%{l_prefix}"
   119     ARGS="$ARGS --mandir=%{l_prefix}/man"
   120     ARGS="$ARGS --infodir=%{l_prefix}/info"
   121     ARGS="$ARGS --libexecdir=%{l_prefix}/libexec/openldap"
   122     ARGS="$ARGS --localstatedir=%{l_prefix}/var/openldap"
   123     ARGS="$ARGS --enable-syslog"
   124     ARGS="$ARGS --with-tls"
   125     ARGS="$ARGS --without-fetch"
   126     ARGS="$ARGS --without-gssapi"
   127     ARGS="$ARGS --disable-dynamic"
   128     ARGS="$ARGS --disable-shared"
   129 %if "%{with_server}" == "yes"
   130     ARGS="$ARGS --enable-slapd"
   131     ARGS="$ARGS --disable-modules"
   132     ARGS="$ARGS --enable-local"
   133     ARGS="$ARGS --enable-bdb"
   134     ARGS="$ARGS --enable-hdb"
   135     ARGS="$ARGS --enable-rewrite"
   136     ARGS="$ARGS --enable-ldap"
   137     ARGS="$ARGS --enable-meta"
   138     ARGS="$ARGS --enable-monitor"
   139     ARGS="$ARGS --enable-dnssrv"
   140     ARGS="$ARGS --enable-null"
   141     ARGS="$ARGS --enable-shell"
   142     ARGS="$ARGS --with-proxycache"
   143 %else
   144     ARGS="$ARGS --disable-slapd"
   145     ARGS="$ARGS --disable-modules"
   146 %endif
   148     #   configuration: force to use OSSP fsl
   149 %if "%{with_server}" == "yes"
   150     LDFLAGS="$LDFLAGS %{l_fsl_ldflags}"
   151     LIBS="$LIBS %{l_fsl_libs}"
   152 %endif
   154     #   configuration: force to use GNU pth if enabled
   155 %if "%{with_server}" == "yes"
   156 %if "%{with_pth}" == "yes"
   157     CFLAGS="$CFLAGS `%{l_prefix}/bin/pth-config --cflags`"
   158     CPPFLAGS="$CPPFLAGS -I`%{l_prefix}/bin/pth-config --includedir`"
   159     LDFLAGS="$LDFLAGS `%{l_prefix}/bin/pth-config --ldflags`"
   160     LIBS="`%{l_prefix}/bin/pth-config --libs` $LIBS"
   161     ARGS="$ARGS --with-threads=pth"
   162     ( echo "ac_cv_header_sys_devpoll_h=no"
   163       echo "ac_cv_header_sys_epoll_h=no"
   164     ) >>config.cache
   165 %else
   166 %if "%{with_pthreads}" == "yes"
   167     ARGS="$ARGS --with-threads=posix"
   168 %else
   169     ARGS="$ARGS --with-threads=no"
   170 %endif
   171 %endif
   172 %endif
   174     #   configuration: optional overlay support
   175 %if "%{with_server}" == "yes" && "%{with_overlays}" == "yes"
   176     ARGS="$ARGS --enable-overlays=yes"
   177 %endif
   179     #   configuration: optional SASL support
   180 %if "%{with_sasl}" == "yes"
   181     ( echo "ac_cv_lib_sasl2_sasl_client_init=yes"
   182     ) >>config.cache
   183     CPPFLAGS="%{l_cppflags sasl} $CPPFLAGS"
   184     ARGS="$ARGS --with-cyrus-sasl --enable-spasswd"
   185 %else
   186     ARGS="$ARGS --without-cyrus-sasl --disable-spasswd"
   187 %endif
   189     #   configuration: optional crypt(3) support
   190 %if "%{with_crypt}" == "yes"
   191     ARGS="$ARGS --enable-crypt"
   192 %endif
   194     #   configuration: optional Perl support
   195 %if "%{with_server}" == "yes" && "%{with_perl}" == "yes"
   196     ARGS="$ARGS --enable-perl"
   197 %endif
   199     #   configuration: optional ODBC-based RDBMS support
   200 %if "%{with_server}" == "yes" && "%{with_odbc}" == "yes"
   201     ARGS="$ARGS --enable-sql"
   202 %endif
   204     #   configuration: special platform support
   205     case "%{l_platform -t}" in
   206         *-sunos* ) CFLAGS="$CFLAGS -D_AVL_H"; LIBS="$LIBS -lrt" ;;
   207     esac
   209     #   configuration: use hard-links and make sure our Berkeley-DB is picked up first
   210     %{l_shtool} subst \
   211         -e 's;ln -s;ln;g' \
   212         -e 's;-ldb4[1-9];%{l_prefix}/lib/libdb.a;g' \
   213         -e 's;<db\.h>;"db.h";g' \
   214         configure
   216     #   configuration
   217     ./configure --cache-file=./config.cache $ARGS
   219     #   build toolkit
   220     %{l_make} %{l_mflags} depend
   221     %{l_make} %{l_mflags}
   223 %install
   224     #   clean build cruft
   225     rm -rf $RPM_BUILD_ROOT
   227     #   install toolkit
   228     %{l_make} %{l_mflags} install DESTDIR=$RPM_BUILD_ROOT
   230     #   post adjustment: remove extra files
   231     rm -f $RPM_BUILD_ROOT%{l_prefix}/etc/openldap/*.default
   232     rm -f $RPM_BUILD_ROOT%{l_prefix}/etc/openldap/*/*.default
   234     #   post adjustment: move files
   235     rm -f $RPM_BUILD_ROOT%{l_prefix}/etc/openldap/DB_CONFIG.example
   236 %if "%{with_server}" == "yes"
   237     mv  $RPM_BUILD_ROOT%{l_prefix}/var/openldap/openldap-data/DB_CONFIG.example \
   238         $RPM_BUILD_ROOT%{l_prefix}/var/openldap/openldap-data/DB_CONFIG
   239 %endif
   241     #   post adjustment: enable and correct slapd.pid
   242 %if "%{with_server}" == "yes"
   243     %{l_shtool} subst \
   244         -e 's;^[ #]*\(pidfile\).*$;\1 %{l_prefix}/var/openldap/run/slapd.pid;' \
   245         -e 's;^\(argsfile\).*$;\1 %{l_prefix}/var/openldap/run/slapd.args;' \
   246         $RPM_BUILD_ROOT%{l_prefix}/etc/openldap/slapd.conf
   247 %endif
   249     #   post adjustment: remove OSSP fsl dependency from libtool files
   250 %if "%{with_server}" == "yes"
   251     %{l_shtool} subst \
   252         -e 's;-lfsl *;;' \
   253         $RPM_BUILD_ROOT%{l_prefix}/lib/*.la
   254 %endif
   256     #   install run-command script
   257 %if "%{with_server}" == "yes"
   258     %{l_shtool} mkdir -f -p -m 755 \
   259         $RPM_BUILD_ROOT%{l_prefix}/etc/rc.d
   260     %{l_shtool} install -c -m 755 %{l_value -s -a} \
   261         %{SOURCE rc.openldap} $RPM_BUILD_ROOT%{l_prefix}/etc/rc.d/
   262 %endif
   264     #   install OSSP fsl configuration
   265 %if "%{with_server}" == "yes"
   266     %{l_shtool} mkdir -f -p -m 755 \
   267         $RPM_BUILD_ROOT%{l_prefix}/etc/fsl
   268     %{l_shtool} install -c -m 644 %{l_value -s -a} \
   269         %{SOURCE fsl.openldap} \
   270         $RPM_BUILD_ROOT%{l_prefix}/etc/fsl/
   271 %endif
   273     #   install pkg-config configuration
   274     %{l_shtool} mkdir -f -p -m 755 \
   275         $RPM_BUILD_ROOT%{l_prefix}/lib/pkgconfig
   276     libs="-lldap -llber"
   277 %if "%{with_sasl}" == "yes"
   278     libs="$libs -lsasl2"
   279 %endif
   280     %{l_shtool} install -c -m 644 %{l_value -s -a} \
   281         -e "s;@version@;%{version};" \
   282         -e "s;@libs@;$libs;" \
   283         %{SOURCE openldap.pc} \
   284         $RPM_BUILD_ROOT%{l_prefix}/lib/pkgconfig/
   286     #   optionally remove server-components
   287 %if "%{with_server}" != "yes"
   288     rm -rf $RPM_BUILD_ROOT%{l_prefix}/etc/openldap/schema
   289     rm -f $RPM_BUILD_ROOT%{l_prefix}/etc/openldap/slapd.conf
   290     rm -rf $RPM_BUILD_ROOT%{l_prefix}/sbin
   291     rm -rf $RPM_BUILD_ROOT%{l_prefix}/libexec/openldap
   292     rm -f $RPM_BUILD_ROOT%{l_prefix}/include/slapi-plugin.h
   293     rm -f $RPM_BUILD_ROOT%{l_prefix}/man/man5/slap*
   294     rm -f $RPM_BUILD_ROOT%{l_prefix}/man/man8/slap*
   295 %endif
   297     #   determine installation files
   298     %{l_rpmtool} files -v -ofiles -r$RPM_BUILD_ROOT \
   299         %{l_files_std} \
   300 %if "%{with_server}" == "yes"
   301         '%config %{l_prefix}/etc/fsl/fsl.openldap' \
   302         '%config %{l_prefix}/etc/openldap/schema/*.schema' \
   303         '%config %{l_prefix}/etc/openldap/schema/*.ldif' \
   304 %endif
   305         '%config %{l_prefix}/etc/openldap/*.conf'
   307 %files -f files
   309 %clean
   310     rm -rf $RPM_BUILD_ROOT
   312 %pre
   313 %if "%{with_server}" == "yes"
   314     #   before upgrade, save status and stop service
   315     [ $1 -eq 2 ] || exit 0
   316     eval `%{l_rc} openldap status 2>/dev/null | tee %{l_tmpfile}`
   317     %{l_rc} openldap stop 2>/dev/null
   318     exit 0
   319 %endif
   321 %post
   322     #   after upgrade, restore status
   323 %if "%{with_server}" == "yes"
   324     [ $1 -eq 2 ] || exit 0
   325     { eval `cat %{l_tmpfile}`; rm -f %{l_tmpfile}; true; } >/dev/null 2>&1
   326     [ ".$openldap_active" = .yes ] && %{l_rc} openldap start
   327     exit 0
   328 %endif
   330 %preun
   331     #   before erase, stop service and remove log files
   332 %if "%{with_server}" == "yes"
   333     [ $1 -eq 0 ] || exit 0
   334     %{l_rc} openldap stop 2>/dev/null
   335     rm -f $RPM_INSTALL_PREFIX/var/openldap/openldap.log* >/dev/null 2>&1 || true
   336     exit 0
   337 %endif

mercurial