On Tuesday 16 May 2006 02:22 am, Florian Kretzer wrote:
> Hello!
>
> I tried to install php5 with OpenPKG, but I can't find the right option.
> I want OpenPKG to install php with the option "--with-mysql
> --with-apxs=/www/bin/apxs" from ./configure in the normal installation
> without OpenPKG.
> For installation I used "openpkg rpm -Uvh php5.x.y.z.rpm. How have I to
> change my command?
>
> Thx for help!
> Florian

OpenPKG doesn't support building the php 4 or 5 package as a shared module 
for apache.

That said I have been using php 4 and 5 for quite some time as shared 
modules with the openpkg apache. I have just created a separate php5.spec 
file. I had also added a fix for pear because it conflicted with php4's 
pear. So it is customized and not supported by OpenPKG. 

I have attached my rpm specfile for php5 with my modifications, so use it at 
your own risk.

You will also need to build from the source rpms. So minimally you would 
need to build apache and php like the following.

openpkg rpm --rebuild --define "with_shared_core yes" apache-1.3.x.x.src.rpm

# Install the php source RPM to your build area
openpkg rpm -Uvh php5-5.x.x.src.rpm

# change to your build area directory
cd /your/path/RPM/SRC/php5

# Copy the attached specfile over the top of the distributed one, then build
openpkg rpm -ba --define "with_apxs yes" --define "with_mysql yes" php5.spec

These are only a reference and your installation may vary. If you aren't 
very experienced building openpkg software then it might be difficult.

I created the specfile a few months ago, so I am not sure if it will work 
with the latest "current" revision of the openpkg php5 package. If you are 
using apache2 the use "with_apxs2 yes" instead. I have not tested it yet 
with apache2.

Mark Keller
##
##  php5.spec -- OpenPKG RPM Package Specification
##  Copyright (c) 2000-2006 OpenPKG Foundation e.V. <http://openpkg.net/>
##  Copyright (c) 2000-2006 Ralf S. Engelschall <http://engelschall.com/>
##
##  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 versions
%define       V_php              5.1.2
%define       V_php_hardened     5.1.2-0.4.8

#   package information
Name:         php5
Summary:      Personal HomePage (PHP)
URL:          http://www.php.net/
Vendor:       The PHP Project
Packager:     OpenPKG
Distribution: OpenPKG
Class:        PLUS
Group:        Language
License:      PHP
Version:      %{V_php}
Release:      20060303

#   package options
%option       with_calendar      no
%option       with_sqlite        no
%option       with_mysql         no
%option       with_pgsql         no
%option       with_gd            no
%option       with_bdb           no
%option       with_zlib          no
%option       with_bzip2         no
%option       with_ssl           no
%option       with_openldap      no
%option       with_openldapsasl  no
%option       with_mm            no
%option       with_pcre          no
%option       with_ftp           no
%option       with_oci8          no
%option       with_fastcgi       no
%option       with_freetype      no
%option       with_gettext       no
%option       with_hardened      no
%option       with_imap          no
%option       with_xml           no
%option       with_xslt          no
%option       with_dom           no
%option       with_bc            no
%option       with_curl          no
%option       with_mhash         no
%option       with_mcrypt        no
%option       with_wddx          no
%option       with_gdbm          no
%option       with_versioning    no
%option       with_snmp          no
%option       with_odbc          no
%option       with_mbregex       no
%option       with_mbstring      no
%option       with_exif          no
%option       with_iconv         no
%option       with_sendmail      no
%option       with_pear          no
%option       with_apxs          no
%option       with_apxs2         no

#   fixing implicit extension dependencies and correlations
%if "%{with_pear}" == "yes"
%undefine     with_xml
%define       with_xml           yes
%undefine     with_pcre
%define       with_pcre          yes
%endif
%if "%{with_freetype}" == "yes"
%undefine     with_gd
%define       with_gd            yes
%endif
%if "%{with_mysql}" == "yes" || "%{with_gd}" == "yes" || "%{with_dom}" == "yes"
%undefine     with_zlib
%define       with_zlib          yes
%endif
%if "%{with_pgsql}" == "yes"
%undefine     with_ssl
%define       with_ssl           yes
%endif

#   list of sources
Source0:      
http://static.php.net/www.php.net/distributions/php-%{V_php}.tar.gz
Source1:      php.ini
Patch0:       
http://www.hardened-php.net/hardening-patch-%{V_php_hardened}.patch.gz

#   build information
Prefix:       %{l_prefix}
BuildRoot:    %{l_buildroot}
BuildPreReq:  OpenPKG, openpkg >= 2.3.0, gcc, flex, bison
PreReq:       OpenPKG, openpkg >= 2.3.0, MTA
%if "%{with_sqlite}" == "yes"
BuildPreReq:  sqlite
PreReq:       sqlite
%endif
%if "%{with_mysql}" == "yes"
BuildPreReq:  mysql
PreReq:       mysql
%endif
%if "%{with_pgsql}" == "yes"
BuildPreReq:  postgresql
PreReq:       postgresql
%endif
%if "%{with_gd}" == "yes"
BuildPreReq:  gd >= 2.0.20, jpeg, png
PreReq:       gd >= 2.0.20, jpeg, png
%endif
%if "%{with_bdb}" == "yes"
BuildPreReq:  db
PreReq:       db
%endif
%if "%{with_zlib}" == "yes"
BuildPreReq:  zlib
PreReq:       zlib
%endif
%if "%{with_bzip2}" == "yes"
BuildPreReq:  bzip2
PreReq:       bzip2
%endif
%if "%{with_ssl}" == "yes"
BuildPreReq:  openssl
PreReq:       openssl
%endif
%if "%{with_openldap}" == "yes"
BuildPreReq:  openldap
PreReq:       openldap
%if "%{with_openldapsasl}" == "yes"
BuildPreReq:  openldap::with_sasl = yes
PreReq:       openldap::with_sasl = yes
%else
BuildPreReq:  openldap::with_sasl = no
PreReq:       openldap::with_sasl = no
%endif
%endif
%if "%{with_mm}" == "yes"
BuildPreReq:  mm
PreReq:       mm
%endif
%if "%{with_pcre}" == "yes"
BuildPreReq:  pcre
PreReq:       pcre
%endif
%if "%{with_freetype}" == "yes"
BuildPreReq:  freetype
PreReq:       freetype
%endif
%if "%{with_gettext}" == "yes"
BuildPreReq:  gettext, libiconv
PreReq:       gettext, libiconv
%endif
%if "%{with_iconv}" == "yes"
BuildPreReq:  libiconv
PreReq:       libiconv
%endif
%if "%{with_imap}" == "yes"
BuildPreReq:  imap, openssl
PreReq:       imap, openssl
%endif
%if "%{with_xml}" == "yes"
BuildPreReq:  libxml
PreReq:       libxml
%endif
%if "%{with_xslt}" == "yes"
BuildPreReq:  libxslt
PreReq:       libxslt
%endif
%if "%{with_dom}" == "yes"
BuildPreReq:  libxml, libxslt
PreReq:       libxml, libxslt
%endif
%if "%{with_curl}" == "yes"
BuildPreReq:  curl
PreReq:       curl
%endif
%if "%{with_mhash}" == "yes"
BuildPreReq:  mhash
PreReq:       mhash
%endif
%if "%{with_mcrypt}" == "yes"
BuildPreReq:  libmcrypt
PreReq:       libmcrypt
%endif
%if "%{with_gdbm}" == "yes"
BuildPreReq:  gdbm, gdbm::with_ndbm = yes
PreReq:       gdbm, gdbm::with_ndbm = yes
%endif
%if "%{with_oci8}" == "yes"
BuildPreReq:  ORACLE
PreReq:       ORACLE
%endif
%if "%{with_snmp}" == "yes"
BuildPreReq:  snmp
PreReq:       snmp
%endif
%if "%{with_odbc}" == "yes"
BuildPreReq:  unixodbc
PreReq:       unixodbc
%endif
%if "%{with_sendmail}" == "yes"
BuildPreReq:  MTA
PreReq:       MTA
%endif
AutoReq:      no
AutoReqProv:  no
%if "%{with_apxs}" == "yes"
BuildPreReq:  apache,apache::with_shared_core
PreReq:       apache,apache::with_shared_core
%endif
%if "%{with_apxs2}" == "yes"
BuildPreReq:  apache2,apache2::with_shared_core
PreReq:       apache2,apache2::with_shared_core
%endif

%description
    PHP is an HTML-embedded scripting language. Much of its syntax is
    borrowed from C, Java and Perl with a couple of unique PHP-specific
    features thrown in. The goal of the language is to allow web
    developers to write dynamically generated pages quickly.

    This is the Command Line Interface (CLI) and Common Gateway
    Interface (CGI) version of PHP, intended for use in the "shebang"
    line ("#!%{l_prefix}/bin/php") of stand-alone PHP based programs
    and for use in the "shebang" line ("#!%{l_prefix}/cgi/php") of
    stand-alone webserver-independent CGI scripts.

%track
    prog php5 = {
        version   = %{V_php}
        url       = http://www.php.net/downloads.php
        regex     = php-(5.\d+\.\d+)\.tar\.gz
    }
    prog php5:hardened = {
        version   = %{V_php_hardened}
        url       = http://www.hardened-php.net/downloads.13.html
        regex     = hardening-patch-(5\.\d+\.\d+-\d+(\.\d+)+)\.patch\.gz
    }

%prep
    %setup -q -n php-%{version}
%if "%{with_hardened}" == "yes"
    %patch -p1
%endif
    %{l_shtool} subst \
        -e 's;\(/include\)/freetype2;\1;' \
        configure \
        ext/gd/config.m4

%build
    #   configure package
    cflags="%{l_cflags -O}"
    cppflags="%{l_cppflags}"
    ldflags="%{l_ldflags}"
    libs=""
%if "%{with_gdbm}" == "yes"
    libs="$libs -lndbm -lgdbm"
%endif
%if "%{with_gd}" == "yes"
    libs="$libs -lpng -lz"
%endif
%if "%{with_gettext}" == "yes"
    libs="$libs -liconv"
%endif
%if "%{with_openldap}" == "yes" && "%{with_openldapsasl}" == "yes"
    libs="$libs -lsasl2"
%endif
%if "%{with_imap}" == "yes"
    libs="$libs -lssl -lcrypto"
%endif
%if "%{with_bdb}" == "yes"
    libs="$libs -ldb"
    case "%{l_platform -t}" in
        sun4*-sunos5.9* ) libs="$libs -lrt" ;;
    esac
%endif
%if "%{with_oci8}" == "yes"
    ORACLE_HOME="`%{l_rc} --query oracle_home`"
    export ORACLE_HOME
%endif
    CC="%{l_cc}" \
    CFLAGS="$cflags" \
    CPPFLAGS="$cppflags" \
    LDFLAGS="$ldflags" \
    LIBS="$libs" \
%if "%{with_sendmail}" == "yes"
    PROG_SENDMAIL="%{l_prefix}/sbin/sendmail" \
%else
    PROG_SENDMAIL="`%{l_shtool} path false`" \
%endif
    ./configure \
        --prefix=%{l_prefix} \
        --sysconfdir=%{l_prefix}/etc/php5 \
        --with-config-file-path=%{l_prefix}/etc/php5 \
        --libdir=%{l_prefix}/lib/php5 \
        --disable-all \
        --enable-pdo \
%if "%{with_calendar}" == "yes"
        --enable-calendar \
%endif
%if "%{with_sqlite}" == "yes"
        --with-sqlite=%{l_prefix} \
        --with-pdo-sqlite=%{l_prefix} \
%else
        --without-sqlite \
%endif
%if "%{with_mysql}" == "yes"
        --with-mysql=%{l_prefix} \
        --with-pdo-mysql=%{l_prefix} \
%else
        --without-mysql \
%endif
%if "%{with_pgsql}" == "yes"
        --with-pgsql=%{l_prefix} \
        --with-pdo-pgsql=%{l_prefix} \
%else
        --without-pgsql \
%endif
%if "%{with_gd}" == "yes"
        --with-gd=%{l_prefix} \
        --with-jpeg-dir=%{l_prefix} \
        --with-png-dir=%{l_prefix} \
%endif
%if "%{with_fastcgi}" == "yes"
         --enable-fastcgi \
%else
         --disable-fastcgi \
%endif
%if "%{with_freetype}" == "yes"
        --enable-gd-native-ttf \
        --with-freetype-dir=%{l_prefix} \
%endif
%if "%{with_bdb}" == "yes"
        --with-db4=%{l_prefix} \
%endif
%if "%{with_zlib}" == "yes"
        --with-zlib=%{l_prefix} \
        --with-zlib-dir=%{l_prefix} \
%endif
%if "%{with_bzip2}" == "yes"
        --with-bz2=%{l_prefix} \
%endif
%if "%{with_ssl}" == "yes" || "%{with_openldap}" == "yes"
        --with-openssl=%{l_prefix} \
%endif
%if "%{with_openldap}" == "yes"
        --with-ldap=%{l_prefix} \
%endif
%if "%{with_mm}" == "yes"
        --with-mm=%{l_prefix} \
        --enable-session \
%endif
%if "%{with_pcre}" == "yes"
        --with-pcre-regex=%{l_prefix} \
%endif
%if "%{with_ftp}" == "yes"
        --enable-ftp \
%endif
%if "%{with_oci8}" == "yes"
        --with-oci8 \
%endif
%if "%{with_gettext}" == "yes"
        --with-gettext=%{l_prefix} \
%endif
%if "%{with_imap}" == "yes"
        --with-imap=%{l_prefix} \
        --with-imap-ssl=%{l_prefix} \
%endif
%if "%{with_xml}" == "yes"
        --enable-xml \
        --enable-libxml \
        --with-libxml-dir=%{l_prefix} \
%else
        --disable-xml \
%endif
%if "%{with_xslt}" == "yes"
        --with-xsl=%{l_prefix} \
%else
        --without-xsl \
%endif
%if "%{with_dom}" == "yes"
        --enable-dom \
        --with-libxml-dir=%{l_prefix} \
%else
        --disable-dom \
%endif
%if "%{with_wddx}" == "yes"
        --enable-wddx \
%endif
%if "%{with_bc}" == "yes"
        --enable-bcmath \
%endif
%if "%{with_mhash}" == "yes"
        --with-mhash=%{l_prefix} \
%endif
%if "%{with_mcrypt}" == "yes"
        --with-mcrypt=%{l_prefix} \
%endif
%if "%{with_curl}" == "yes"
        --with-curl=%{l_prefix} \
%endif
%if "%{with_gdbm}" == "yes"
        --with-gdbm=%{l_prefix} \
%endif
%if "%{with_versioning}" == "yes"
        --enable-versioning \
%endif
%if "%{with_pear}" == "yes"
        --with-pear=%{l_prefix}/lib/php5 \
%else
        --without-pear \
%endif
%if "%{with_snmp}" == "yes"
        --with-snmp=%{l_prefix} \
        --with-openssl-dir=%{l_prefix} \
%endif
%if "%{with_odbc}" == "yes"
        --with-unixODBC=%{l_prefix} \
        --with-pdo-odbc=unixODBC,%{l_prefix} \
%endif
%if "%{with_mbregex}" == "yes"
        --enable-mbregex \
%endif
%if "%{with_mbstring}" == "yes"
        --enable-mbstring \
%endif
%if "%{with_exif}" == "yes"
        --with-exif \
%endif
%if "%{with_iconv}" == "yes"
        --with-iconv=%{l_prefix} \
%endif
%if "%{with_apxs}" == "yes"
        --with-apxs \
%endif
%if "%{with_apxs2}" == "yes"
        --with-apxs2 \
%endif
%if "%{with_apxs}" == "no" && "%{with_apxs2}" == "no"
        --enable-cgi \
        --enable-force-cgi-redirect \
%endif
        --enable-cli \
        --enable-discard-path \
        --enable-memory-limit

    #   build package
    %{l_make} %{l_mflags}

%install
    #   install package
    rm -rf $RPM_BUILD_ROOT
%if "%{with_apxs}" == "yes" || "%{with_apxs2}" == "yes"
    # Make sure apxs doesn't try to edit the httpd.conf durin
    %{l_shtool} subst \
         -e 's;\(^INSTALL_IT.*apxs.*\)-a\(.*-n.*\);\1 \2;' \
         Makefile
%endif

    %{l_make} %{l_mflags} install INSTALL_ROOT=$RPM_BUILD_ROOT

    #   install CLI version
    #   ("make install" incorrectly installs the CGI version into bin/php!)
    %{l_shtool} mkdir -f -p -m 755 \
        $RPM_BUILD_ROOT%{l_prefix}/bin \
        $RPM_BUILD_ROOT%{l_prefix}/man/man1
    %{l_shtool} install -c -s -m 755 \
        sapi/cli/php $RPM_BUILD_ROOT%{l_prefix}/bin/php5
    mv  $RPM_BUILD_ROOT%{l_prefix}/man/man1/php.1 \
        $RPM_BUILD_ROOT%{l_prefix}/man/man1/php5.1

%if "%{with_apxs}" == "no" && "%{with_apxs2}" == "no"
    #   (re)install CGI version
    %{l_shtool} mkdir -f -p -m 755 \
        $RPM_BUILD_ROOT%{l_prefix}/cgi
    %{l_shtool} install -c -s -m 755 \
        sapi/cgi/php $RPM_BUILD_ROOT%{l_prefix}/cgi/php5
%endif

    #   adjust paths
    mv  $RPM_BUILD_ROOT%{l_prefix}/include/php \
        $RPM_BUILD_ROOT%{l_prefix}/include/php5
    %{l_shtool} subst \
        -e 's;/include/php;/include/php5;g' \
        $RPM_BUILD_ROOT%{l_prefix}/bin/phpize \
        $RPM_BUILD_ROOT%{l_prefix}/bin/php-config
    for bin in php php-config phpize; do
        mv  $RPM_BUILD_ROOT%{l_prefix}/bin/$bin \
            $RPM_BUILD_ROOT%{l_prefix}/bin/`echo $bin | sed -e 's;^php;php5;'`
    done
%if "%{with_pear}" == "yes"
    for bin in pear peardev; do
        mv  $RPM_BUILD_ROOT%{l_prefix}/bin/$bin \
            $RPM_BUILD_ROOT%{l_prefix}/bin/`echo $bin | sed -e 's;^pear;pear5;'`
    done
%endif

    #   install default configuration file
    %{l_shtool} mkdir -f -p -m 755 \
        $RPM_BUILD_ROOT%{l_prefix}/etc/php5
    %{l_shtool} install -c -m 644 %{l_value -s -a} \
        %{SOURCE php.ini} $RPM_BUILD_ROOT%{l_prefix}/etc/php5/

    #   strip down installation
    rmdir $RPM_BUILD_ROOT%{l_prefix}/lib/php >/dev/null 2>&1 || true
    strip $RPM_BUILD_ROOT%{l_prefix}/bin/* >/dev/null 2>&1 || true

    #   determine installation files
    %{l_rpmtool} files -v -ofiles -r$RPM_BUILD_ROOT %{l_files_std} \
        '%config %{l_prefix}/etc/php5/*'

%files -f files

%clean
    rm -rf $RPM_BUILD_ROOT

Reply via email to