File php5.spec of Package php5.openSUSE_Leap_42.1_Update

#
# spec file for package php5
#
# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.

# Please submit bugfixes or comments via http://bugs.opensuse.org/
#


# _without_ make_test by default
# use build-test.sh for testing!
%bcond_with make_test

Name:           php5
%global apiver      20121113
%global zendver     20121212
%define suhosin_version 0.9.38
%define pkg_name php5
%define with_spell 1

BuildRequires:  apache2-devel
BuildRequires:  autoconf
BuildRequires:  bison
BuildRequires:  curl-devel
BuildRequires:  cyrus-sasl-devel
BuildRequires:  db-devel
BuildRequires:  enchant-devel
%if 0%{suse_version} > 1110
# firebird first added in 11.2; libfbclient2-devel pkg split in 12.2
%define with_firebird 1
BuildRequires:  firebird-devel
%if 0%{suse_version} > 1210
BuildRequires:  libfbclient2-devel
%endif
%else
# <= 11.1 or SLES 11
%define with_firebird 0
%endif
BuildRequires:  freetype2-devel
BuildRequires:  gcc-c++
BuildRequires:  gmp-devel
BuildRequires:  imap-devel
BuildRequires:  krb5-devel
BuildRequires:  libbz2-devel
BuildRequires:  libevent-devel
BuildRequires:  libicu-devel
BuildRequires:  libmcrypt-devel
BuildRequires:  libopenssl-devel
BuildRequires:  libpng-devel
BuildRequires:  libtidy-devel
BuildRequires:  libtiff-devel
BuildRequires:  libtool
BuildRequires:  libxslt-devel
BuildRequires:  ncurses-devel
BuildRequires:  net-snmp-devel
BuildRequires:  openldap2-devel
BuildRequires:  pam-devel
BuildRequires:  pkgconfig
BuildRequires:  postfix
BuildRequires:  postgresql-devel
BuildRequires:  tcpd-devel
BuildRequires:  unixODBC-devel
BuildRequires:  update-alternatives
BuildRequires:  xorg-x11-devel
%if 0%{suse_version} > 1110
BuildRequires:  freetds-devel
%endif
%if %{with_spell}
BuildRequires:  aspell-devel
%endif
# I would like this to become a hard dependency, as PHP is
# documented to have this modules by default (no addtional libs are needed)
Recommends:     php-ctype php-dom php-iconv php-sqlite php-tokenizer
Recommends:     php-xmlreader php-xmlwriter php-json
# other highly reccommended extensions
Suggests:       php-mbstring php-gd php-pear php-gettext php-mysql php-suhosin
BuildRequires:  libedit-devel
BuildRequires:  libjpeg-devel
BuildRequires:  pcre-devel
BuildRequires:  re2c
BuildRequires:  sqlite3-devel
#10.3 does not install sendmail binary with the minimal system
Requires:       smtp_daemon
%define extension_dir     %{_libdir}/%{pkg_name}/extensions
%define peardir           %{_datadir}/%{pkg_name}/PEAR
%define php_sysconf       %{_sysconfdir}/%{pkg_name}
%define _x11prefix %(pkg-config --variable=prefix xft)
########################################
# apache macros
########################################
%define apxs2              %{_sbindir}/apxs2
%define apache2_mmn        %(MMN=$(%{apxs2} -q LIBEXECDIR)_MMN; test -x $MMN && $MMN)
%define apache2_libexecdir %(%{apxs2} -q LIBEXECDIR)
%define apache2_sysconfdir %(%{apxs2} -q SYSCONFDIR)
%define apache2_includedir %(%{apxs2} -q INCLUDEDIR)
%define apache2_serverroot %(%{apxs2} -q PREFIX)
%define need_libxml2_hack  %(if [ -e %{_includedir}/libxml/parser.h ]; then if grep -q XML_PARSE_OLDSAX %{_includedir}/libxml/parser.h;then echo 1; else echo 0; fi; else echo 0; fi)
Version:        5.5.14
Release:        0
Provides:       php
Provides:       php-api = %{apiver}
Provides:       php-date
Provides:       php-filter
Provides:       php-hash
Provides:       php-pcre
Provides:       php-reflection
Provides:       php-session
Provides:       php-simplexml
Provides:       php-spl
Provides:       php-xml
Provides:       php-zend-abi = %{zendver}
Provides:       zend
Provides:       php(api) = %{apiver}
Provides:       php(zend-abi) = %{zendver}
#extensions that are no longer here
Obsoletes:      php5-dbase
Obsoletes:      php5-dbx
Obsoletes:      php5-dio
Obsoletes:      php5-fam
Obsoletes:      php5-filepro
Obsoletes:      php5-ncurses
Obsoletes:      php5-yp
#builtin,nowdays required for everything that uses sha2
Obsoletes:      php5-hash < %{version}
Provides:       php5-hash = %{version}
#Old extension, nowdays provided as a "wrapper" in in the hash extension for backward compat.
Obsoletes:      php5-mhash
#Don't mix these packages with php53-* from SLES 11 SP2
Conflicts:      php53
Source0:        http://www.php.net/distributions/php-%{version}.tar.bz2
Source1:        php-suse-addons.tar.bz2
Source2:        https://download.suhosin.org/suhosin-%{suhosin_version}.tar.gz
Source4:        README.SUSE-pear
Source5:        README.macros
Source6:        macros.php
Source7:        install-pear-nozlib.phar
Source8:        php-fpm.init
Source9:        README.default_socket_timeout
Source100:      build-test.sh
#SUSE specific stuff
Patch0:         php5-phpize.patch
Patch1:         php5-apache_sapi_install.patch
Patch2:         php5-php-config.patch
Patch3:         php5-ini.patch
Patch4:         php5-no-build-date.patch
Patch5:         php5-pts.patch
Patch6:         php5-openssl.patch
Patch7:         php5-systzdata-v7.patch
Patch8:         php5-systemd-unit.patch
#bugs
# this is from https://raw.github.com/NewEraCracker/suhosin-patches/, check for official
# one from suhosin git
Patch11:        php5-mbstring-missing-return.patch
Patch12:        php5-BNC-457056.patch
Patch13:        php5-cloexec.patch
Patch14:        php5-missing-extdeps.patch
# following patch is to fix configure tests for crypt; the aim is to have php
# built against glibc's crypt; problem is, that our glibc doesn't support extended
# DES, so as soon as upstream fixes this, don't forgot to remove extended DES
# from their checking as I indicated in crypt-tests.patch yet, or php will
# silently use his own implementation again
Patch16:        php5-crypt-tests.patch
# related to previous patch; !(defined(_REENTRANT) || defined(_THREAD_SAFE))
Patch17:        php5-no-reentrant-crypt.patch
Patch18:        php5-format-string-issues.patch
# following patch connected fixes or workarounds https://bugs.php.net/bug.php?id=44522
Patch19:        php5-big-file-upload.patch
Patch20:        php5-per-mod-log.patch
Patch21:        php5-apache24-updates.patch
Patch22:        php-CVE-2014-2497.patch
Patch23:        php-CVE-2014-4670.patch
Patch24:        php-CVE-2014-4698.patch
Patch25:        php5-finally-exception-crash.patch
Patch26:        php-CVE-2014-3597.patch
Patch27:        php-CVE-2014-5120.patch
Patch28:        php-CVE-2014-3670.patch
Patch29:        php-CVE-2014-3669.patch
Patch30:        php-CVE-2014-3668.patch
Patch31:        php-unserialize-null-ptr-deref.patch
Patch32:        php-CVE-2014-9427.patch
Patch33:        php-CVE-2014-8142.patch
Patch34:        php-CVE-2015-0231.patch
Patch35:        php-CVE-2015-0232.patch
Patch36:        php-CVE-2015-0273.patch
Patch37:        php-CVE-2014-9652.patch
Patch38:        php-CVE-2014-9709.patch
Patch39:        php-CVE-2015-2305.patch
Patch40:        php-CVE-2014-9705.patch
Patch41:        php-CVE-2015-2301.patch
Patch42:        php-CVE-2015-2787.patch
Patch43:        php-unserialize-soap-type-confusion.patch
Patch44:        php-CVE-2015-2348.patch
Patch45:        php-CVE-2015-3330.patch
Patch46:        php-CVE-2015-3329.patch
Patch47:        php-CVE-2015-2783.patch
Patch48:        php-CVE-2015-4024.patch
Patch49:        php-CVE-2015-4026.patch
Patch50:        php5-CVE-2015-4022.patch
Patch51:        php-CVE-2015-4021.patch
Patch52:        php-timezonemap.patch
Patch53:        php-CVE-2015-4148.patch
Patch54:        php-CVE-2015-4602.patch
Patch55:        php-CVE-2015-4599,4600,4601.patch
Patch56:        php-CVE-2015-4603.patch
Patch57:        php-CVE-2015-4644.patch
Patch58:        php-CVE-2015-4643.patch
Patch59:        php-CVE-2015-3411,3412,4598.patch
Patch60:        php-CVE-2015-5590.patch
Patch61:        php-CVE-2015-5589.patch
Patch62:        php-CVE-2015-6831.patch
Patch63:        php-CVE-2015-6832.patch
Patch64:        php-CVE-2015-6833.patch
Patch65:        php-CVE-2015-6834.patch
Patch66:        php-fix_net-snmp_disable_MD5.patch
Patch67:        php-CVE-2015-6835.patch
Patch68:        php-CVE-2015-6836.patch
Patch69:        php-CVE-2015-6837,6838.patch
Patch70:        php-odbc-cmp-int-cast.patch
Patch71:        php-suhosin.ini.patch
Patch72:        php-CVE-2015-7803.patch
Patch73:        php-CVE-2016-1903.patch
Url:            http://www.php.net
BuildRoot:      %{_tmppath}/%{name}-%{version}-build
Summary:        PHP5 Core Files
License:        PHP-3.01
Group:          Development/Languages/Other
Requires:       timezone

%description
This package contains the PHP5 core files, including PHP binary (CLI)
and PHP configuration (php.ini). This package must be installed in
order to use PHP. Additionally, extension modules and server modules
(e.g. for Apache) may be installed.

Additional documentation is available in package php-doc.



Authors:
--------
    The PHP Group
    See http://www.php.net/credits.php for more details

%package devel
Provides:       pecl
Provides:       php-devel
Summary:        Include files of PHP5
Group:          Development/Languages/C and C++
#this is required by the installed  development headers
Requires:       %{name} = %{version}
Requires:       glibc-devel
Requires:       libxml2-devel
#this is needed for "pecl" functionality
Requires:       autoconf
Requires:       automake
Requires:       libtool
Requires:       pcre-devel
Conflicts:      php4-devel
Provides:       php-macros = 2.0
Obsoletes:      php-macros < 2.0

%description devel
PHP is a server-side, cross-platform, HTML embedded scripting language.
If you are completely new to PHP and want to get some idea of how it
works, have a look at the Introductory Tutorial.  Once you get beyond
that have a look at the example archive sites and some of the other
resources available in the Links section. PHP5 is the latest version.



Authors:
--------
    The PHP Group
    See http://www.php.net/credits.php for more details

%package pear
Provides:       php-pear
Summary:        PHP Extension and Application Repository
Group:          Development/Libraries/PHP
Requires:       %{name}-zlib = %{version}
# php5-pear-Archive_Tar provides Tar.php, which is provided
# by pear package itself; php5-pear-Archive_Tar was dropped
# on version 1.3.10, install-pear-nozlib.phar
# provides 1.3.11 currently
Provides:       php5-pear-Archive_Tar = 1.3.11
Obsoletes:      php5-pear-Archive_Tar < 1.3.11
%if 0%{?suse_version} > 1110
BuildArch:      noarch
%endif

%description pear
PEAR is a code repository for PHP extensions and PHP library code
similar to TeX's CTAN and Perl's CPAN. This package provides an access
to the repository.

See http://pear.php.net/manual/ for more details.



Authors:
--------
    The PHP Group
    See http://www.php.net/credits.php for more details

%package -n apache2-mod_php5
Summary:        PHP5 Module for Apache 2.0
Group:          Productivity/Networking/Web/Servers
Requires:       %{apache2_mmn}
Requires:       %{name} = %{version}
Requires:       apache2-prefork
PreReq:         apache2
Conflicts:      apache2-mod_php4
Provides:       mod_php_any
Provides:       php-date
Provides:       php-filter
Provides:       php-pcre
Provides:       php-reflection
Provides:       php-session
Provides:       php-simplexml
Provides:       php-spl
Provides:       php-xml

%description -n apache2-mod_php5
PHP is a server-side, cross-platform HTML embedded scripting language.
If you are completely new to PHP and want to get some idea of how it
works, have a look at the Introductory tutorial. Once you get beyond
that, have a look at the example archive sites and some of the other
resources available in the links section.

Please refer to /usr/share/doc/packages/php5/README.SUSE for
information on how to load the module into the Apache webserver.



Authors:
--------
    The PHP Group
    See http://www.php.net/credits.php for more details

%package fastcgi
Summary:        FastCGI PHP5 Module
Group:          Development/Libraries/PHP
Requires:       %{name} = %{version}
Provides:       php-cgi
Provides:       php-date
Provides:       php-fastcgi
Provides:       php-filter
Provides:       php-pcre
Provides:       php-reflection
Provides:       php-session
Provides:       php-simplexml
Provides:       php-spl
Provides:       php-xml

%description fastcgi
PHP is a server-side, cross-platform HTML embedded scripting language.
If you are completely new to PHP and want to get some idea of how it
works, have a look at the Introductory tutorial. Once you get beyond
that have a look at the example archive sites and some of the other
resources available in the links section.

Please refer to /usr/share/doc/packages/php5/README.FastCGI for
information on how to use this module.



Authors:
--------
    The PHP Group
    See http://www.php.net/credits.php for more details

%package fpm
Summary:        FastCGI Process Manager PHP5 Module
Group:          Development/Libraries/PHP
Requires:       %{name} = %{version}
PreReq:         %insserv_prereq
Provides:       php-date
Provides:       php-filter
Provides:       php-fpm
Provides:       php-pcre
Provides:       php-reflection
Provides:       php-session
Provides:       php-simplexml
Provides:       php-spl
Provides:       php-xml
%if 0%{suse_version} > 1130
%define with_systemd 1
%{systemd_requires}
BuildRequires:  pkgconfig(libsystemd-daemon)
%else
# <= 11.3 or SLES 11
%define with_systemd 0
%endif

%description fpm
  PHP is a server-side, cross-platform HTML embedded scripting language.
  If you are completely new to PHP and want to get some idea of how it
  works, have a look at the Introductory tutorial. Once you get beyond
  that have a look at the example archive sites and some of the other
  resources available in the links section.

  Please refer to /usr/share/doc/packages/php5/README.FastCGI for
  information on how to use this module.


{>
(>Authors:
  --------
      The PHP Group
      See http://www.php.net/credits.php for more details

%package bcmath
Provides:       php-bcmath
Summary:        PHP5 Extension Module
Group:          Development/Libraries/PHP
Requires:       %{name} = %{version}

%description bcmath
Binary Calculator which supports numbers of any size and precision,
represented as strings.



Authors:
--------
    The PHP Group
    See http://www.php.net/credits.php for more details

%package bz2
Provides:       php-bz2
Summary:        PHP5 Extension Module
Group:          Development/Libraries/PHP
Requires:       %{name} = %{version}

%description bz2
PHP functions to read and write bzip2 (.bz2) compressed files.



Authors:
--------
    The PHP Group
    See http://www.php.net/credits.php for more details

%package calendar
Provides:       php-calendar
Summary:        PHP5 Extension Module
Group:          Development/Libraries/PHP
Requires:       %{name} = %{version}

%description calendar
PHP functions for converting between different calendar formats.



Authors:
--------
    The PHP Group
    See http://www.php.net/credits.php for more details

%package ctype
Provides:       php-ctype
Summary:        PHP5 Extension Module
Group:          Development/Libraries/PHP
Requires:       %{name} = %{version}

%description ctype
PHP functions for checking whether a character or string falls into a
certain character class according to the current locale.



Authors:
--------
    The PHP Group
    See http://www.php.net/credits.php for more details

%package curl
Provides:       php-curl
Summary:        PHP5 Extension Module
Group:          Development/Libraries/PHP
Requires:       %{name} = %{version}

%description curl
PHP interface to libcurl that allows you to connect to and communicate
with servers of many different types, using protocols of many different
types.



Authors:
--------
    The PHP Group
    See http://www.php.net/credits.php for more details

%package dba
Provides:       php-dba
Summary:        PHP5 Extension Module
Group:          Development/Libraries/PHP
Requires:       %{name} = %{version}

%description dba
This is a general abstraction layer for several file-based databases.
As such, functionality is limited to a common subset of features
supported by modern databases such as Sleepycat Software's DB2. (This
is not to be confused with IBM's DB2 software, which is supported
through the ODBC functions.)



Authors:
--------
    The PHP Group
    See http://www.php.net/credits.php for more details

%package dom
Provides:       php-dom
Summary:        PHP5 Extension Module
Group:          Development/Libraries/PHP
Requires:       %{name} = %{version}

%description dom
This module adds DOM support.



Authors:
--------
    The PHP Group
    See http://www.php.net/credits.php for more details

%package enchant
Provides:       php-enchant
Summary:        PHP5 Extension Module
Group:          Development/Libraries/PHP
Requires:       %{name} = %{version}

%description enchant
Enchant is the PHP binding for the Enchant library. Enchant steps in to provide uniformity and conformity on top of all spelling libraries, and implements certain features that may be lacking in any individual provider library. Everything should "just work" for any and every definition of "just working."


Authors:
--------
    The PHP Group
    See http://www.php.net/credits.php for more details

%package exif
Provides:       php-exif
Summary:        PHP5 Extension Module
Group:          Development/Libraries/PHP
Requires:       %{name} = %{version}
Requires:       %{name}-mbstring = %{version}

%description exif
PHP functions for extracting EXIF (metadata from images) information
stored in headers of JPEG and TIFF images.



Authors:
--------
    The PHP Group
    See http://www.php.net/credits.php for more details

%package fileinfo
Provides:       php-fileinfo
Summary:        PHP5 Extension Module
Group:          Development/Libraries/PHP
Requires:       %{name} = %{version}

%description fileinfo
The functions in this module try to guess the content type and encoding of a file by looking for certain magic byte sequences at specific positions within the file. While this is not a bullet proof approach the heuristics used do a very good job.


Authors:
--------
    The PHP Group
    See http://www.php.net/credits.php for more details

%package ftp
Provides:       php-ftp
Summary:        PHP5 Extension Module
Group:          Development/Libraries/PHP
Requires:       %{name} = %{version}
Requires:       %{name}-openssl = %{version}

%description ftp
PHP functions for access to file servers speaking the File Transfer
Protocol (FTP) as defined in rfc959.



Authors:
--------
    The PHP Group
    See http://www.php.net/credits.php for more details

%package gd
Provides:       php-gd
Summary:        PHP5 Extension Module
Group:          Development/Libraries/PHP
Requires:       %{name} = %{version}

%description gd
PHP functions to create and manipulate image files in a variety of
different image formats, including GIF, PNG, JPEG, WBMP, and XPM. Even
more convenient: PHP can output image streams directly to a browser.



Authors:
--------
    The PHP Group
    See http://www.php.net/credits.php for more details

%package gettext
Provides:       php-gettext
Summary:        PHP5 Extension Module
Group:          Development/Libraries/PHP
Requires:       %{name} = %{version}

%description gettext
PHP functions that implement an NLS (Native Language Support) API which
can be used to internationalize your PHP applications.



Authors:
--------
    The PHP Group
    See http://www.php.net/credits.php for more details

%package gmp
Provides:       php-gmp
Summary:        PHP5 Extension Module
Group:          Development/Libraries/PHP
Requires:       %{name} = %{version}

%description gmp
PHP functions for work with arbitrary-length integers using the GNU MP
library.



Authors:
--------
    The PHP Group
    See http://www.php.net/credits.php for more details


%package iconv
Provides:       php-iconv
Summary:        PHP5 Extension Module
Group:          Development/Libraries/PHP
Requires:       %{name} = %{version}

%description iconv
PHP interface to iconv character set conversion facility.



Authors:
--------
    The PHP Group
    See http://www.php.net/credits.php for more details

%package imap
Provides:       php-imap
Summary:        PHP5 Extension Module
Group:          Development/Libraries/PHP
Requires:       %{name} = %{version}

%description imap
PHP functions in this extension are not limited to the IMAP protocol,
despite their name. The underlying c-client library also supports NNTP,
POP3 and local mailbox access methods.



Authors:
--------
    The PHP Group
    See http://www.php.net/credits.php for more details


%package intl
Provides:       php-intl
Summary:        PHP5 Extension Module
Group:          Development/Libraries/PHP
Requires:       %{name} = %{version}

%description intl
Internationalization extension (further is referred as Intl) is a wrapper for ICU library, enabling PHP programmers to perform UCA-conformant collation and date/time/number/currency formatting in their scripts.


Authors:
--------
    The PHP Group
    See http://www.php.net/credits.php for more details



%package json
Provides:       php-json
Summary:        PHP5 Extension Module
Group:          Development/Libraries/PHP
Requires:       %{name} = %{version}

%description json
Support for JSON (JavaScript Object Notation) serialization.



Authors:
--------
    The PHP Group
    See http://www.php.net/credits.php for more details

%package ldap
Provides:       php-ldap
Summary:        PHP5 Extension Module
Group:          Development/Libraries/PHP
Requires:       %{name} = %{version}
Requires:       %{name}-openssl = %{version}

%description ldap
PHP interface to Lightweight Directory Access Protocol (LDAP).



Authors:
--------
    The PHP Group
    See http://www.php.net/credits.php for more details

%package mbstring
Provides:       php-mbstring
Summary:        PHP5 Extension Module
Group:          Development/Libraries/PHP
Requires:       %{name} = %{version}

%description mbstring
This extension provides multi-byte character safe string functions and
other utility functions such as conversion functions.



Authors:
--------
    The PHP Group
    See http://www.php.net/credits.php for more details

%package mcrypt
Provides:       php-mcrypt
Summary:        PHP5 Extension Module
Group:          Development/Libraries/PHP
Requires:       %{name} = %{version}

%description mcrypt
PHP interface to the mcrypt library, which supports a wide variety of
block algorithms.



Authors:
--------
    The PHP Group
    See http://www.php.net/credits.php for more details



%package mssql
Provides:       php-mssql
Provides:       php_any_db
Summary:        PHP5 Extension Module
Group:          Development/Libraries/PHP

%description mssql
PHP functions for access to MSSQL database servers.


%package mysql
Provides:       php-mysql
Provides:       php5-mysqli = %{version}
Provides:       php5-pdo_mysql = %{version}
Provides:       php_any_db
Summary:        PHP5 Extension Module
Group:          Development/Libraries/PHP
Requires:       %{name} = %{version}
Requires:       %{name}-pdo = %{version}
Obsoletes:      php5-mysqli < %{version}
Obsoletes:      php5-pdo_mysql < %{version}

%description mysql
PHP functions for access to MySQL database servers.



Authors:
--------
    The PHP Group
    See http://www.php.net/credits.php for more details

%if %{with_firebird}
%package firebird
Provides:       php5-interbase
Provides:       php5-pdo_firebird = %{version}
Provides:       php_any_db
Summary:        PHP5 Extension Module
Group:          Development/Libraries/PHP
Requires:       %{name} = %{version}
Requires:       %{name}-pdo = %{version}
Obsoletes:      php5-pdo_firebird < %{version}

%description firebird
PHP functions for access to firebird database servers.



Authors:
--------
    The PHP Group
    See http://www.php.net/credits.php for more details
%endif

%package odbc
Provides:       php-odbc
Provides:       php-pdo_odbc
Summary:        PHP5 Extension Module
Group:          Development/Libraries/PHP
Requires:       %{name} = %{version}
Requires:       %{name}-pdo = %{version}

%description odbc
This module adds ODBC support.



Authors:
--------
    The PHP Group
    See http://www.php.net/credits.php for more details

%package opcache
Provides:       php-opcache
Summary:        PHP5 Extension Module
Group:          Development/Libraries/PHP
Requires:       %{name} = %{version}

%description opcache
The Zend OPcache provides faster PHP execution through
opcode caching and optimization.


Authors:
--------
    The PHP Group
    See http://www.php.net/credits.php for more details

%package openssl
Provides:       php-openssl
Summary:        PHP5 Extension Module
Group:          Development/Libraries/PHP
Requires:       %{name} = %{version}

%description openssl
This module adds OpenSSL support.



Authors:
--------
    The PHP Group
    See http://www.php.net/credits.php for more details

%package pcntl
Provides:       php-pcntl
Summary:        PHP5 Extension Module
Group:          Development/Libraries/PHP
Requires:       %{name} = %{version}

%description pcntl
This module will attempt to implement all features related to process
spawning and control (fork(), waitpid(), signal(), WIF's, etc). This is
extremley experimental, with hope to become stable on most UNIX's. I
greatly appreciate any feedback, fixes, and or suggestions on how to
improve/better implement this functionality.



Authors:
--------
    The PHP Group
    See http://www.php.net/credits.php for more details

%package phar
Provides:       php-phar
Summary:        PHP5 Extension Module
Group:          Development/Libraries/PHP
Requires:       %{name} = %{version}

%description phar
The phar extension provides a way to put entire PHP applications into a
single file called a "phar" (PHP Archive) for easy distribution and installation.

Authors:
--------
    The PHP Group
    See http://www.php.net/credits.php for more details

%package pdo
Provides:       php-pdo
Summary:        PHP5 Extension Module
Group:          Development/Libraries/PHP
Requires:       %{name} = %{version}

%description pdo
PHP Data Objects - Data Access Abstraction

- light-weight

- provides common API for common database operations

- keeps majority of PHP specific stuff in the PDO core (such as
persistent resource management); drivers should only have to worry
about getting the data and not about PHP internals.



Authors:
--------
    The PHP Group
    See http://www.php.net/credits.php for more details

%package pgsql
Provides:       php-pgsql
Provides:       php5-pdo_pgsql = %{version}
Provides:       php_any_db
Summary:        PHP5 Extension Module
Group:          Development/Libraries/PHP
Requires:       %{name} = %{version}
Requires:       %{name}-pdo = %{version}
Obsoletes:      php5-pdo_pgsql < %{version}

%description pgsql
PHP functions for access to PostgreSQL database servers. It includes
both traditional pgsql and pdo_pgsql drivers.



Authors:
--------
    The PHP Group
    See http://www.php.net/credits.php for more details

%package posix
Provides:       php-posix
Summary:        PHP5 Extension Module
Group:          Development/Libraries/PHP
Requires:       %{name} = %{version}

%description posix
This module allows to use POSIX-like functions in PHP.



Authors:
--------
    The PHP Group
    See http://www.php.net/credits.php for more details

%if %{with_spell}

%package pspell
Provides:       php-pspell
Summary:        PHP5 pspell extension
Group:          Development/Libraries/PHP
Requires:       %{name} = %{version}
Requires:       aspell-en

%description pspell
PHP interface to the aspell, which provides spell checking
functionality.



Authors:
--------
    The PHP Group
    See http://www.php.net/credits.php for more details

%endif

%package readline
Provides:       php-readline
Summary:        PHP5 readline extension
Group:          Development/Libraries/PHP
Requires:       %{name} = %{version}

%description readline
PHP interface to libedit, which provides editable command line as well
as PHP interactive mode (php -a)



Authors:
--------
    The PHP Group
    See http://www.php.net/credits.php for more details

%package shmop
Provides:       php-shmop
Summary:        PHP5 Extension Module
Group:          Development/Libraries/PHP
Requires:       %{name} = %{version}

%description shmop
PHP functions to read, write, create and delete UNIX shared memory
segments.



Authors:
--------
    The PHP Group
    See http://www.php.net/credits.php for more details

%package snmp
Provides:       php-snmp
Summary:        PHP5 Extension Module
Group:          Development/Libraries/PHP
Requires:       %{name} = %{version}

%description snmp
PHP functions for SNMP.



Authors:
--------
    The PHP Group
    See http://www.php.net/credits.php for more details

%package soap
Provides:       php-soap
Summary:        PHP5 Extension Module
Group:          Development/Libraries/PHP
Requires:       %{name} = %{version}

%description soap
This module provides SOAP support.

SOAP extension can be used to write SOAP Servers and Clients. It
supports subsets of SOAP 1.1, SOAP 1.2 and WSDL 1.1 specifications.



Authors:
--------
    The PHP Group
    See http://www.php.net/credits.php for more details

%package sockets
Provides:       php-sockets
Summary:        PHP5 Extension Module
Group:          Development/Libraries/PHP
Requires:       %{name} = %{version}

%description sockets
A low-level interface to the socket communication functions based on
the popular BSD sockets, providing the possibility to act as a socket
server as well as a client. This extension is experimental!



Authors:
--------
    The PHP Group
    See http://www.php.net/credits.php for more details

%package sqlite
Provides:       php-sqlite
Provides:       php-sqlite3 = %{version}
Provides:       php5-pdo_sqlite = %{version}
Provides:       php5-sqlite3 = %{version}
Summary:        PHP5 Extension Module
Group:          Development/Libraries/PHP
Requires:       %{name} = %{version}
Requires:       %{name}-pdo = %{version}

%description sqlite
This is an extension for the SQLite Embeddable SQL Database Engine.
http://www.sqlite.org/

SQLite is a C library that implements an embeddable SQL database
engine. Programs that link with the SQLite library can have SQL
database access without running a separate RDBMS process.

SQLite is not a client library used to connect to a big database
server. SQLite is the server. The SQLite library reads and writes
directly to and from the database files on disk.

This package includes sqlite and pdo_sqlite modules for sqlite version
2 and 3 respectively.



Authors:
--------
    The PHP Group
    See http://www.php.net/credits.php for more details


%package suhosin
Provides:       php-suhosin
Summary:        PHP5 Extension Module
Group:          Development/Libraries/PHP
Requires:       %{name} = %{version}

%description suhosin
Suhosin is an advanced protection system for PHP installations. It was
designed to protect servers and users from known and unknown flaws in
PHP applications and the PHP core.

Suhosin is binary compatible to normal PHP installation, which means it
is compatible to 3rd party binary extension like ZendOptimizer.



Authors:
--------
    Stefan Esser <stefan.esser@hardened-php.net>
    Peter Prochaska <peter.prochaska@hardened-php.net>
    Christopher Kunz <christopher.kunz@hardened-php.net>

%package sysvmsg
Provides:       php-sysvmsg
Summary:        PHP5 Extension Module
Group:          Development/Libraries/PHP
Requires:       %{name} = %{version}

%description sysvmsg
This module provides System V IPC support.



Authors:
--------
    The PHP Group
    See http://www.php.net/credits.php for more details

%package sysvsem
Provides:       php-sysvsem
Summary:        PHP5 Extension Module
Group:          Development/Libraries/PHP
Requires:       %{name} = %{version}

%description sysvsem
PHP interface for System V semaphores.



Authors:
--------
    The PHP Group
    See http://www.php.net/credits.php for more details

%package sysvshm
Provides:       php-sysvshm
Summary:        PHP5 Extension Module
Group:          Development/Libraries/PHP
Requires:       %{name} = %{version}

%description sysvshm
PHP interface for System V shared memory.



Authors:
--------
    The PHP Group
    See http://www.php.net/credits.php for more details

%package tidy
Provides:       php-tidy
Summary:        PHP5 Extension Module
Group:          Development/Libraries/PHP
Requires:       %{name} = %{version}

%description tidy
Tidy is an extension based on Libtidy (http://tidy.sf.net/) and allows
a PHP developer to clean, repair, and traverse HTML, XHTML, and XML
documents -- including ones with embedded scripting languages such as
PHP or ASP within them using OO constructs.



Authors:
--------
    The PHP Group
    See http://www.php.net/credits.php for more details

%package tokenizer
Provides:       php-tokenizer
Summary:        PHP5 Extension Module
Group:          Development/Libraries/PHP
Requires:       %{name} = %{version}

%description tokenizer
The tokenizer functions provide an interface to the PHP tokenizer
embedded in the Zend Engine. Using these functions you may write your
own PHP source analyzing or modification tools without having to deal
with the language specification at the lexical level.



Authors:
--------
    The PHP Group
    See http://www.php.net/credits.php for more details

%package wddx
Provides:       php-wddx
Summary:        PHP5 Extension Module
Group:          Development/Libraries/PHP
Requires:       %{name} = %{version}

%description wddx
PHP functions for Web Distributed Data Exchange.



Authors:
--------
    The PHP Group
    See http://www.php.net/credits.php for more details

%package xmlrpc
Provides:       php-xmlrpc
Summary:        PHP5 Extension Module
Group:          Development/Libraries/PHP
Requires:       %{name} = %{version}

%description xmlrpc
This module adds XMLRPC-EPI support.



Authors:
--------
    The PHP Group
    See http://www.php.net/credits.php for more details

%package xsl
Provides:       php-xsl
Summary:        PHP5 Extension Module
Group:          Development/Libraries/PHP
Requires:       %{name} = %{version}
Requires:       %{name}-dom = %{version}

%description xsl
This module adds new XSL support to PHP.



Authors:
--------
    The PHP Group
    See http://www.php.net/credits.php for more details

%package xmlreader
Provides:       php-xmlreader
Summary:        PHP5 Extension Module
Group:          Development/Libraries/PHP
Requires:       %{name} = %{version}
Requires:       %{name}-dom = %{version}

%description xmlreader
XMLReader represents a reader that provides non-cached, forward-only
access to XML data. It is based upon the xmlTextReader API from libxml.



Authors:
--------
    The PHP Group
    See http://www.php.net/credits.php for more details

%package xmlwriter
Provides:       php-xmlwriter
Summary:        PHP5 Extension Module
Group:          Development/Libraries/PHP
Requires:       %{name} = %{version}

%description xmlwriter
XMLWriter wraps the libxml xmlWriter API. Represents a writer that
provides a non-cached, forward-only means of generating streams or
files containing XML data.



Authors:
--------
    The PHP Group
    See http://www.php.net/credits.php for more details

%package zip
Provides:       php-zip
Summary:        PHP5 Extension Module
Group:          Development/Libraries/PHP
Requires:       %{name} = %{version}

%description zip
Zip is an extension to create, modify and read zip files.



Authors:
--------
    The PHP Group
    See http://www.php.net/credits.php for more details

%package zlib
Provides:       php-zlib
Summary:        PHP5 Extension Module
Group:          Development/Libraries/PHP
Requires:       %{name} = %{version}

%description zlib
PHP functions to read and write gzip (.gz) compressed files.



Authors:
--------
    The PHP Group
    See http://www.php.net/credits.php for more details

%prep
echo %{apache2_mmn}
%setup -q -n php-%{version} -a 1
%{__tar} xf %{S:2} -C ext
%{__mv} ext/suhosin-%{suhosin_version} ext/suhosin
%{__cp} %{S:4} pear/README.SUSE
%{__cp} %{S:5} .
%{__cp} %{S:9} .
%{__cp} %{S:7} pear/
%patch0
%patch1
%patch2
%patch3
%patch4
%patch5
%patch6
%patch7
%patch8
%patch11
%if %{need_libxml2_hack}
echo "*** APPLY LIBXML2.7 FIX ***"
%patch12
%else
echo "*** SKIPPING LIBMXL2.7 FIX ***"
%endif
%patch13
%patch14
%patch16
%patch17
%patch18
%patch19 -p1
%patch20 -p1
%patch21 -p1
%patch22
%patch23
%patch24
%patch25
%patch26
%patch27
%patch28
%patch29
%patch30
%patch31
%patch32
%patch33
%patch34
%patch35
%patch36
%patch37
%patch38
%patch39
%patch40
%patch41
%patch42
%patch43
%patch44
%patch45
%patch46
%patch47
%patch48
%patch49
%patch50
%patch51
%patch52
%patch53
%patch54
%patch55
%patch56
%patch57
%patch58
%patch59
%patch60
%patch61
%patch62
%patch63
%patch64
%patch65
%patch66 -p1
%patch67
%patch68
%patch69
%patch70
%patch71
%patch72
%patch73
# Safety check for API version change.
vapi=`sed -n '/#define PHP_API_VERSION/{s/.* //;p}' main/php.h`
if test "x${vapi}" != "x%{apiver}"; then
   : Error: Upstream API version is now ${vapi}, expecting %{apiver}.
   : Update the apiver macro and rebuild.
   exit 1
fi
vzend=`sed -n '/#define ZEND_MODULE_API_NO/{s/^[^0-9]*//;p;}' Zend/zend_modules.h`
if test "x${vzend}" != "x%{zendver}"; then
   : Error: Upstream Zend ABI version is now ${vzend}, expecting %{zendver}.
   : Update the zendver macro and rebuild.
   exit 1
fi

%build
chmod 644 README.namespaces UPGRADING
# aclocal workaround - to be improved
cat `aclocal --print-ac-dir`/{libtool,ltoptions,ltsugar,ltversion,lt~obsolete}.m4 >>aclocal.m4

# Force use of system libtool:
libtoolize --force --copy
cat `aclocal --print-ac-dir`/{libtool,ltoptions,ltsugar,ltversion,lt~obsolete}.m4 >build/libtool.m4

# Regenerate configure scripts (patches change config.m4's)
touch configure.in
# we build three SAPI
%{__mkdir_p} build-apache2
%{__mkdir_p} build-fpm
%{__mkdir_p} build-fastcgi
%{__mkdir_p} build-cli

for parser in `find -name "*.re"`;do
    re2c --no-generation-date -gi "$parser" > ${parser%.*}.c
done

%{__rm} -r ext/pcre/pcrelib

# regenerate configure etc.
# workaround: suhosin-patch updates timestamp of configure, confusing buildconf
%{__rm} configure
./buildconf --force
# export flags
CFLAGS="$RPM_OPT_FLAGS -O3 -fPIE -fPIC -DPIC -D_GNU_SOURCE -fno-strict-aliasing"
CXXFLAGS="$RPM_OPT_FLAGS -O3 -fPIE -fPIC -DPIC -D_GNU_SOURCE -fno-strict-aliasing"
%if %{with_firebird}
CFLAGS="$CFLAGS -I/usr/include/firebird"
CXXFLAGS="$CXXFLAGS -I/usr/include/firebird"
%endif
export CFLAGS
export CXXFLAGS
export LDFLAGS="-pie"
export NO_INTERACTION=true
# where to install extensions
EXTENSION_DIR=%{extension_dir}
export EXTENSION_DIR
export PHP_MYSQLND_ENABLED=yes
export PHP_MYSQLND_COMPRESSION_SUPPORT=yes
# fix build-cli: libc-client.so needs -lssl
export IMAP_SHARED_LIBADD='-lssl'

# build function
Build()
{
    sapi=$1
    pushd build-$1
    shift
    ../configure \
        --prefix=%{_prefix} \
        --datadir=%{_datadir}/%{pkg_name} \
        --mandir=%{_mandir} \
        --bindir=%{_bindir} \
        --with-libdir=%{_lib} \
        --includedir=%{_includedir} \
        --sysconfdir=%{php_sysconf}/$sapi \
        --with-config-file-path=%{php_sysconf}/$sapi \
        --with-config-file-scan-dir=%{php_sysconf}/conf.d \
        --enable-libxml \
        --enable-session \
%if 0%{?suse_version} > 1010
        --with-pcre-regex=%{_usr} \
%else
        --with-pcre-regex \
%endif
        --enable-xml \
        --enable-simplexml \
        --enable-spl \
        --enable-filter \
        --disable-debug \
        --enable-inline-optimization \
        --disable-rpath \
		--disable-static \
		--enable-shared \
		--with-pic \
		--with-gnu-ld \
		--enable-re2c-cgoto \
		--with-system-tzdata=/usr/share/zoneinfo \
        --enable-hash \
        --with-mhash \
        "$@" || cat config.log
    # Some modules are builtin, reasons:
    #  - libxml can not be shared (and is needed by PEAR)
    #  - spl doesn't build shared
    #  - simplexml is needed by spl
    #  - session need to be builtin, otherwise sqlite and other session engines fail
    #  - pcre is needed for PEAR
    #  - filter is builtin due security reasons
    # We have still have harcoded RPATH in some modules
    %{__sed} -i 's|^hardcode_libdir_flag_spec=.*|hardcode_libdir_flag_spec=""|g' libtool
    %{__sed} -i 's|^runpath_var=LD_RUN_PATH|runpath_var=LIBTOOL_IS_BROKED|g' libtool
    %{__make} %{?jobs:-j%jobs PHP_PEAR_PHP_BIN=%{_bindir}/php}
    popd
}
# perform all builds
# apache2 sapi
Build apache2 \
    --with-apxs2=%{apxs2} \
    --disable-all \
    --disable-cli \
# fast-cgi sapi
Build fastcgi \
    --enable-force-cgi-redirect \
    --disable-discard-path \
    --enable-fastcgi \
    --bindir=%{_bindir} \
    --disable-cli \
    --disable-all \

Build fpm \
%if %{with_systemd}
        --with-fpm-systemd \
%endif
	--enable-fpm \
	--bindir=%{_bindir} \
	--disable-cli \
	--disable-all\
	--localstatedir=/var\

# cli sapi with all shared modules
# Hack the built configure to also link ncurses together with libedit.
# this is reported upstream bug http://bugs.php.net/bug.php?id=21153
sed -i "s/-ledit/-ledit -lncurses/g" configure
Build cli \
    --enable-cli \
    --with-pear=%{peardir} \
    --enable-bcmath=shared \
    --enable-calendar=shared \
    --enable-ctype=shared \
    --enable-dom=shared \
    --enable-exif=shared \
    --enable-ftp=shared \
    --enable-mbstring=shared \
    	--enable-mbregex \
    --enable-pcntl=shared \
    --enable-posix=shared \
    --enable-shmop=shared \
    --enable-soap=shared \
    --enable-sockets=shared \
    --enable-sysvmsg=shared \
    --enable-sysvsem=shared \
    --enable-sysvshm=shared \
    --enable-tokenizer=shared \
    --enable-wddx=shared \
	--enable-fileinfo=shared \
    --with-zlib=shared \
    --with-bz2=shared \
    --with-curl=shared \
    --with-gd=shared \
        --enable-gd-native-ttf \
        --with-xpm-dir=%{_x11prefix} \
        --with-freetype-dir=%{_usr} \
        --with-png-dir=%{_usr} \
        --with-jpeg-dir=%{_usr} \
        --with-zlib-dir=%{_usr} \
    --with-gettext=shared \
    --with-gmp=shared \
    --with-iconv=shared \
    --with-imap=shared \
        --with-kerberos \
        --with-imap-ssl \
    --enable-json=shared \
    --with-ldap=shared \
    	--with-ldap-sasl=%{_usr} \
	--with-libedit=shared,%{_usr} \
    --with-mcrypt=shared \
    --with-mysql=shared,mysqlnd \
%if %{with_firebird}
    --with-interbase=shared \
%endif
%if 0%{?suse_version} > 1110
	--with-mysql-sock=/var/run/mysql/mysql.sock \
%else
	 --with-mysql-sock=/var/lib/mysql/mysql.sock \
%endif
    --with-mysqli=shared,mysqlnd \
    --with-unixODBC=shared,%{_usr} \
    --with-openssl=shared \
    --with-pgsql=shared,%{_usr} \
    --enable-phar=shared \
%if %{with_spell}
    --with-pspell=shared \
    --with-enchant=shared,%{_usr} \
%endif
    --with-snmp=shared \
    --with-xmlrpc=shared \
    --enable-xmlreader=shared \
    --enable-xmlwriter=shared \
    --with-xsl=shared \
    --with-tidy=shared,%{_usr} \
    --enable-dba=shared \
    --with-db4=%{_usr} \
    --without-gdbm \
        --with-cdb \
        --with-inifile \
        --with-flatfile \
    --enable-pdo=shared \
    --with-pdo_sqlite=shared,%{_usr} \
        --with-sqlite3=shared,%{_usr} \
        --enable-sqlite-utf8 \
    --with-pdo-mysql=shared,mysqlnd \
%if %{with_firebird}
    --with-pdo-firebird=shared \
%endif
    --with-pdo-pgsql=shared,%{_usr} \
        --with-pdo-odbc=shared,unixODBC,%{_usr} \
    --enable-zip=shared \
    --enable-suhosin=shared \
    --enable-intl=shared,%{_usr} \
%if 0%{suse_version} > 1110
    --with-mssql=shared,%{_usr} \
%endif
    --disable-cgi
# things that currently do not compile:
# extensions:
#    --with-recode=shared \ error: recode extension can not be configured together with: imap mysql yaz
#disabled extensions
#    --enable-embedded-mysqli \

%check
cd build-cli
# check if we link against system libcrypt
if [ -z "$(ldd sapi/cli/php | grep libcrypt.so)" ]; then
  echo 'php do not link against system libcrypt.'
  exit 1
fi
# Run tests, using the CLI SAPI
%if %{with make_test}
export NO_INTERACTION=1 REPORT_EXIT_STATUS=1 LANG=POSIX LC_ALL=POSIX
unset TZ
%{__make} test || true
set +x
for f in `find .. -name "*.diff" -type f -print`; do
	echo "TEST FAILURE: $f --"
	cat "$f"
	echo "-- $f result ends."
done
set -x
unset NO_INTERACTION REPORT_EXIT_STATUS
%endif

%install
# install function
Install()
{
    pushd build-$1
    %{__make} install INSTALL_ROOT=%{buildroot} PHP_PEAR_PHP_BIN=%{_bindir}/php
    popd
}
# do the actual installation
Install apache2
#need it for yast module
%{__mv} %{buildroot}%{apache2_libexecdir}/libphp5.so %{buildroot}%{apache2_libexecdir}/mod_php5.so
Install fastcgi
Install cli
Install fpm
# generate php.ini from php.ini-production:
%{__install} -d -m 755 %{buildroot}/%{php_sysconf}/conf.d
%{__install} -d -m 755 %{buildroot}/%{php_sysconf}/apache2
%{__install} -d -m 755 %{buildroot}/%{php_sysconf}/cli
%{__install} -d -m 755 %{buildroot}/%{php_sysconf}/fastcgi
%{__install} -d -m 755 %{buildroot}/%{php_sysconf}/fpm
%{__sed} -e "s=@extdir@=%{extension_dir}=" -e "s:expose_php = On:expose_php = Off:" php.ini-production \
    > %{buildroot}/%{php_sysconf}/apache2/php.ini
%{__sed} "s=@extdir@=%{extension_dir}=" php.ini-production \
    | %{__sed} -r 's/^(html_errors|implicit_flush|max_execution_time|register_argc_argv)/;\1/' \
    > %{buildroot}/%{php_sysconf}/cli/php.ini
%{__sed} "s=@extdir@=%{extension_dir}=" php.ini-production \
    > %{buildroot}/%{php_sysconf}/fastcgi/php.ini
# prepare configuration files for each extension
extern_modules=""
for f in %{buildroot}%{extension_dir}/*; do
    if test ${f##*.} = a; then
        %{__rm} $f
        continue
    fi
    if test ${f##*.} = so; then
        f=${f%.so}
    fi
    ext=${f##*/}
    extern_modules="$extern_modules $ext"
    echo "; comment out next line to disable $ext extension in php" > %{buildroot}/%{php_sysconf}/conf.d/$ext.ini
    zend_=''
    if [ $ext == "opcache" ]; then
      # http://php.net/manual/en/opcache.installation.php
      zend_='zend_'
    fi
    echo "${zend_}extension=$ext.so" >> %{buildroot}/%{php_sysconf}/conf.d/$ext.ini
done
#suhosin configuration
%{__install} -m 644 ext/suhosin/suhosin.ini %{buildroot}/%{php_sysconf}/conf.d/suhosin.ini
# list of builtin modules
builtin_modules=`./build-cli/sapi/cli/php -m | egrep -v '^(\[.*)?$' | sort | tr '\n' ' '`
# update readme
%{__sed} "s=@EXTERN_MODULES@=$extern_modules=;s=@BUILTIN_MODULES@=$builtin_modules=" php-suse-addons/README.SUSE > README.SUSE
# apache configuration
%{__mkdir_p} %{buildroot}%{apache2_sysconfdir}/conf.d
%{__install} -m 644 php-suse-addons/sysconfig.apache2 %{buildroot}/%{apache2_sysconfdir}/conf.d/%{pkg_name}.conf
# directory for sessions
%{__install} -d %{buildroot}/var/lib/%{pkg_name}
# documentation
%{__mv} sapi/cli/README README.CLI
%{__mv} sapi/cgi/README.FastCGI README.FastCGI
%{__rm} -rf %{buildroot}/{.channels,.depdb*,.filemap,.lock,usr/bin/peardev}
%{__install} -d -m 0755 %{buildroot}/%{peardir}/test
# for pear XML files
%{__install} -d -m 0755 %{buildroot}/var/lib/pear
# provide compat symlink
%{__mkdir_p} %{buildroot}/srv/www/cgi-bin
%{__ln_s} /usr/bin/php-cgi %{buildroot}/srv/www/cgi-bin/php
#fix symlink
sed -i -e "s@$RPM_BUILD_DIR/php-%{version}/build-cli/sapi/cli/php@php@g" %{buildroot}%{_bindir}/phar.phar
rm %{buildroot}%{_bindir}/phar
%{__ln_s} -f %{_bindir}/phar.phar %{buildroot}%{_bindir}/phar
# CVE-2014-5459, bnc#893849; couldn't find a way to use PHP_PEAR_CACHE_DIR 
# (install-pear is checking if the directory is writable by current user?;
#  unfortunately ENOTIME to figure out)
%{__sed} -i 's@15:"/tmp/pear/cache"@19:"/var/cache/php-pear"@' %{buildroot}%{php_sysconf}/cli/pear.conf
grep -c '/var/cache/php-pear' %{buildroot}%{php_sysconf}/cli/pear.conf || exit 1 
# Install the macros file:
install -d $RPM_BUILD_ROOT%{_sysconfdir}/rpm
sed -e "s/@PHP_APIVER@/%{apiver}/;s/@PHP_ZENDVER@/%{zendver}/" \
    < $RPM_SOURCE_DIR/macros.php > macros.php
install -m 644 -c macros.php \
           $RPM_BUILD_ROOT%{_sysconfdir}/rpm/macros.php

#install fpm init script.
install -d %{buildroot}%{_sysconfdir}/init.d
install -m 755 -c %{S:8} %{buildroot}%{_sysconfdir}/init.d/php-fpm
%if %{with_systemd}
install -D -m 0644 ./build-fpm/sapi/fpm/php-fpm.service %{buildroot}%{_unitdir}/php-fpm.service
%if 0%{suse_version} > 1220
ln -s /usr/sbin/service %{buildroot}%{_sbindir}/rcphp-fpm
%else
ln -s /sbin/service %{buildroot}%{_sbindir}/rcphp-fpm
%endif
%else
ln -s %{_sysconfdir}/init.d/php-fpm %{buildroot}%{_sbindir}/rcphp-fpm
%endif

%post -n apache2-mod_php5
#some distro versions does not have this tool.
if [ -x /usr/sbin/a2enmod ]
then
	if a2enmod -q php4 && ! a2enmod -q php5; then
  		a2dismod php4
  		a2enmod php5
	fi
fi

%preun -n apache2-mod_php5
if [ "$1" = "0" ]
then
	if [ -x /usr/sbin/a2enmod ]
	then
    	if a2enmod -q php5; then
        	a2dismod php5
    	fi
	fi
fi

%if %{with_systemd}
%pre fpm
%service_add_pre php-fpm.service

%postun fpm
%service_del_postun php-fpm.service
%restart_on_update php-fpm
%insserv_cleanup

%preun fpm
%service_del_preun php-fpm.service
%stop_on_removal php-fpm

%post fpm
%service_add_post php-fpm.service
%{fillup_and_insserv -f php-fpm}
%else
%postun fpm
%restart_on_update php-fpm
%insserv_cleanup

%preun fpm
%stop_on_removal php-fpm

%post fpm
%{fillup_and_insserv -f php-fpm}
%endif

%files
%defattr(-, root, root)
%doc README* CODING_STANDARDS CREDITS EXTENSIONS LICENSE NEWS UPGRADING php-suse-addons/test.php5
%doc %{_mandir}/man1/*
%dir %{php_sysconf}
%dir %{php_sysconf}/conf.d
%dir %{php_sysconf}/cli
%config(noreplace) %{php_sysconf}/cli/php.ini
%{_bindir}/php
%dir %{_libdir}/%{pkg_name}
%dir %{extension_dir}
%dir %{_datadir}/%{pkg_name}
%attr(0755, wwwrun, root) %dir /var/lib/%{pkg_name}

%files devel
%defattr(-, root, root)
%doc README.macros
%{_includedir}/%{pkg_name}
%{_bindir}/phpize
%{_bindir}/php-config
%{_bindir}/pecl
%{_datadir}/%{pkg_name}/build
%config %{_sysconfdir}/rpm/macros.php

%files pear
%defattr(-, root, root)
%doc pear/README.SUSE
%{_bindir}/pear
%config(noreplace) %{php_sysconf}/cli/pear.conf
%{peardir}
%dir /var/lib/pear

%files fastcgi
%defattr(-, root, root)
%{_bindir}/php-cgi
/srv/www/cgi-bin/php
%dir %{php_sysconf}/fastcgi
%config(noreplace) %{php_sysconf}/fastcgi/php.ini

%files fpm
%defattr(-, root, root)
%{_sbindir}/php-fpm
%dir %{php_sysconf}/fpm
%config %{php_sysconf}/fpm/php-fpm.conf.default
%{_mandir}/man8/php-fpm.8.gz
%config /etc/init.d/php-fpm
%{_sbindir}/rcphp-fpm
%dir /usr/share/php5/fpm
/usr/share/php5/fpm/status.html
%if %{with_systemd}
%{_unitdir}/php-fpm.service
%endif

%files -n apache2-mod_php5
%defattr(644,root,root,755)
%{apache2_libexecdir}/mod_php5.so
%dir %{php_sysconf}/apache2
%config(noreplace) %{php_sysconf}/apache2/php.ini
%config(noreplace) %{apache2_sysconfdir}/conf.d/%{pkg_name}.conf

%files bcmath
%defattr(644,root,root,755)
%{extension_dir}/bcmath.so
%config(noreplace) %{php_sysconf}/conf.d/bcmath.ini

%files bz2
%defattr(644,root,root,755)
%{extension_dir}/bz2.so
%config(noreplace) %{php_sysconf}/conf.d/bz2.ini

%files calendar
%defattr(644,root,root,755)
%{extension_dir}/calendar.so
%config(noreplace) %{php_sysconf}/conf.d/calendar.ini

%files ctype
%defattr(644,root,root,755)
%{extension_dir}/ctype.so
%config(noreplace) %{php_sysconf}/conf.d/ctype.ini

%files curl
%defattr(644,root,root,755)
%{extension_dir}/curl.so
%config(noreplace) %{php_sysconf}/conf.d/curl.ini

%files dba
%defattr(644,root,root,755)
%{extension_dir}/dba.so
%config(noreplace) %{php_sysconf}/conf.d/dba.ini

%files dom
%defattr(644,root,root,755)
%{extension_dir}/dom.so
%config(noreplace) %{php_sysconf}/conf.d/dom.ini

%files enchant
%defattr(644,root,root,755)
%{extension_dir}/enchant.so
%config(noreplace) %{php_sysconf}/conf.d/enchant.ini

%files exif
%defattr(644,root,root,755)
%{extension_dir}/exif.so
%config(noreplace) %{php_sysconf}/conf.d/exif.ini

%files fileinfo
%defattr(644,root,root,755)
%{extension_dir}/fileinfo.so
%config(noreplace) %{php_sysconf}/conf.d/fileinfo.ini

%files ftp
%defattr(644,root,root,755)
%{extension_dir}/ftp.so
%config(noreplace) %{php_sysconf}/conf.d/ftp.ini

%files gd
%defattr(644,root,root,755)
%{extension_dir}/gd.so
%config(noreplace) %{php_sysconf}/conf.d/gd.ini

%files gettext
%defattr(644,root,root,755)
%{extension_dir}/gettext.so
%config(noreplace) %{php_sysconf}/conf.d/gettext.ini

%files gmp
%defattr(644,root,root,755)
%{extension_dir}/gmp.so
%config(noreplace) %{php_sysconf}/conf.d/gmp.ini

%files iconv
%defattr(644,root,root,755)
%{extension_dir}/iconv.so
%config(noreplace) %{php_sysconf}/conf.d/iconv.ini

%files imap
%defattr(644,root,root,755)
%{extension_dir}/imap.so
%config(noreplace) %{php_sysconf}/conf.d/imap.ini

%files intl
%defattr(644,root,root,755)
%{extension_dir}/intl.so
%config(noreplace) %{php_sysconf}/conf.d/intl.ini

%files json
%defattr(644,root,root,755)
%{extension_dir}/json.so
%config(noreplace) %{php_sysconf}/conf.d/json.ini

%files ldap
%defattr(644,root,root,755)
%{extension_dir}/ldap.so
%config(noreplace) %{php_sysconf}/conf.d/ldap.ini

%files mbstring
%defattr(644,root,root,755)
%{extension_dir}/mbstring.so
%config(noreplace) %{php_sysconf}/conf.d/mbstring.ini

%files mcrypt
%defattr(644,root,root,755)
%{extension_dir}/mcrypt.so
%config(noreplace) %{php_sysconf}/conf.d/mcrypt.ini

%if 0%{suse_version} > 1110

%files mssql
%defattr(644,root,root,755)
%{extension_dir}/mssql.so
%config(noreplace) %{php_sysconf}/conf.d/mssql.ini
%endif

%files mysql
%defattr(644,root,root,755)
%{extension_dir}/mysql.so
%config(noreplace) %{php_sysconf}/conf.d/mysql.ini
%{extension_dir}/mysqli.so
%config(noreplace) %{php_sysconf}/conf.d/mysqli.ini
%{extension_dir}/pdo_mysql.so
%config(noreplace) %{php_sysconf}/conf.d/pdo_mysql.ini

%if %{with_firebird}
%files firebird
%defattr(644,root,root,755)
%{extension_dir}/interbase.so
%config(noreplace) %{php_sysconf}/conf.d/interbase.ini
%{extension_dir}/pdo_firebird.so
%config(noreplace) %{php_sysconf}/conf.d/pdo_firebird.ini
%endif

%files odbc
%defattr(644,root,root,755)
%{extension_dir}/odbc.so
%config(noreplace) %{php_sysconf}/conf.d/odbc.ini
%{extension_dir}/pdo_odbc.so
%config(noreplace) %{php_sysconf}/conf.d/pdo_odbc.ini

%files opcache
%defattr(644,root,root,755)
%{extension_dir}/opcache.so
%config(noreplace) %{php_sysconf}/conf.d/opcache.ini

%files openssl
%defattr(644,root,root,755)
%{extension_dir}/openssl.so
%config(noreplace) %{php_sysconf}/conf.d/openssl.ini

%files phar
%defattr(644,root,root,755)
%{extension_dir}/phar.so
%config(noreplace) %{php_sysconf}/conf.d/phar.ini
%{_bindir}/phar
%{_bindir}/phar.phar

%files pcntl
%defattr(644,root,root,755)
%{extension_dir}/pcntl.so
%config(noreplace) %{php_sysconf}/conf.d/pcntl.ini

%files pdo
%defattr(644,root,root,755)
%{extension_dir}/pdo.so
%config(noreplace) %{php_sysconf}/conf.d/pdo.ini

%files pgsql
%defattr(644,root,root,755)
%{extension_dir}/pgsql.so
%config(noreplace) %{php_sysconf}/conf.d/pgsql.ini
%{extension_dir}/pdo_pgsql.so
%config(noreplace) %{php_sysconf}/conf.d/pdo_pgsql.ini

%files posix
%defattr(644,root,root,755)
%{extension_dir}/posix.so
%config(noreplace) %{php_sysconf}/conf.d/posix.ini
%if %{with_spell}

%files pspell
%defattr(644,root,root,755)
%{extension_dir}/pspell.so
%config(noreplace) %{php_sysconf}/conf.d/pspell.ini
%endif

%files readline
%defattr(644,root,root,755)
%{extension_dir}/readline.so
%config(noreplace) %{php_sysconf}/conf.d/readline.ini

%files shmop
%defattr(644,root,root,755)
%{extension_dir}/shmop.so
%config(noreplace) %{php_sysconf}/conf.d/shmop.ini

%files snmp
%defattr(644,root,root,755)
%{extension_dir}/snmp.so
%config(noreplace) %{php_sysconf}/conf.d/snmp.ini

%files soap
%defattr(644,root,root,755)
%{extension_dir}/soap.so
%config(noreplace) %{php_sysconf}/conf.d/soap.ini

%files sockets
%defattr(644,root,root,755)
%{extension_dir}/sockets.so
%config(noreplace) %{php_sysconf}/conf.d/sockets.ini

%files sqlite
%defattr(644,root,root,755)
%{extension_dir}/pdo_sqlite.so
%config(noreplace) %{php_sysconf}/conf.d/pdo_sqlite.ini
%{extension_dir}/sqlite3.so
%config(noreplace) %{php_sysconf}/conf.d/sqlite3.ini

%files suhosin
%defattr(644,root,root,755)
%{extension_dir}/suhosin.so
%config(noreplace) %{php_sysconf}/conf.d/suhosin.ini

%files sysvmsg
%defattr(644,root,root,755)
%{extension_dir}/sysvmsg.so
%config(noreplace) %{php_sysconf}/conf.d/sysvmsg.ini

%files sysvsem
%defattr(644,root,root,755)
%{extension_dir}/sysvsem.so
%config(noreplace) %{php_sysconf}/conf.d/sysvsem.ini

%files sysvshm
%defattr(644,root,root,755)
%{extension_dir}/sysvshm.so
%config(noreplace) %{php_sysconf}/conf.d/sysvshm.ini

%files tidy
%defattr(644,root,root,755)
%{extension_dir}/tidy.so
%config(noreplace) %{php_sysconf}/conf.d/tidy.ini

%files tokenizer
%defattr(644,root,root,755)
%{extension_dir}/tokenizer.so
%config(noreplace) %{php_sysconf}/conf.d/tokenizer.ini

%files wddx
%defattr(644,root,root,755)
%{extension_dir}/wddx.so
%config(noreplace) %{php_sysconf}/conf.d/wddx.ini

%files xmlrpc
%defattr(644,root,root,755)
%{extension_dir}/xmlrpc.so
%config(noreplace) %{php_sysconf}/conf.d/xmlrpc.ini

%files xmlreader
%defattr(644,root,root,755)
%{extension_dir}/xmlreader.so
%config(noreplace) %{php_sysconf}/conf.d/xmlreader.ini

%files xmlwriter
%defattr(644,root,root,755)
%{extension_dir}/xmlwriter.so
%config(noreplace) %{php_sysconf}/conf.d/xmlwriter.ini

%files xsl
%defattr(644,root,root,755)
%{extension_dir}/xsl.so
%config(noreplace) %{php_sysconf}/conf.d/xsl.ini

%files zip
%defattr(644,root,root,755)
%{extension_dir}/zip.so
%config(noreplace) %{php_sysconf}/conf.d/zip.ini

%files zlib
%defattr(644,root,root,755)
%{extension_dir}/zlib.so
%config(noreplace) %{php_sysconf}/conf.d/zlib.ini

%changelog
openSUSE Build Service is sponsored by