%{!?phpname: %{expand: %%global phpname php}} # ART %define _aslhome /var/asl %define debug_package %{nil} # ART %global contentdir /var/asl/www # API/ABI check %global apiver 20100412 %global zendver 20100525 %global pdover 20080721 # Extension version %global fileinfover 1.0.5 %global pharver 2.0.1 %global zipver 1.9.1 %global jsonver 1.2.1 %global oci8ver 1.4.7 %global httpd_mmn %(cat %{_includedir}/httpd/.mmn || echo missing-httpd-devel) %global mysql_sock %(mysql_config --socket || echo /var/lib/mysql/mysql.sock) %ifarch ppc ppc64 %global oraclever 10.2.0.2 %else %global oraclever 11.2 %endif # Regression tests take a long time, you can skip 'em with this %{!?runselftest: %{expand: %%global runselftest 0}} # Use the arch-specific mysql_config binary to avoid mismatch with the # arch detection heuristic used by bindir/mysql_config. %global mysql_config %{_libdir}/mysql/mysql_config #global snapdate 201201041830 #global rcver RC8 # Optional components; pass "--with mssql" etc to rpmbuild. %global with_oci8 %{?_with_oci8:1}%{!?_with_oci8:0} %global with_ibase %{?_with_ibase:1}%{!?_with_ibase:0} %global with_libzip %{?_with_libzip:1}%{!?_with_libzip:0} %if 0%{?rhel} >= 5 || 0%{?fedora} >= 12 %ifarch %{ix86} x86_64 %global with_fpm 1 %else %global with_fpm 0 %endif %else %global with_fpm 0 %endif %if 0%{?__isa:1} %global isasuffix -%{__isa} %else %global isasuffix %nil %endif Summary: PHP scripting language for creating dynamic web sites # ART Name: asl-%{phpname} Version: 5.4.3 Release: 3 License: PHP Group: Development/Languages URL: http://www.php.net/ %if 0%{?snapdate} Source0: http://www.php.net/distributions/php5.4-%{snapdate}.tar.bz2 %else Source0: http://www.php.net/distributions/php-%{version}%{?rcver}.tar.bz2 %endif Source1: php.conf Source2: php.ini # ART %if %{phpname} == php Source3: macros.php %else Source3: macros.phpname %endif Source4: php-fpm.conf Source5: php-fpm-www.conf Source6: php-fpm.service Source7: php-fpm.logrotate Source8: php-fpm.sysconfig Source9: php-fpm.init # Build fixes Patch5: php-5.2.0-includedir.patch Patch6: php-5.2.4-embed.patch Patch7: php-5.3.0-recode.patch # Fixes for extension modules # Functional changes Patch40: php-5.4.0-dlopen.patch Patch41: php-5.4.0-easter.patch Patch42: php-5.3.1-systzdata-v7.patch # See http://bugs.php.net/53436 Patch43: php-5.4.0-phpize.patch Patch44: php-5.4.0RC6-system-libzip.patch # Fixes for tests # RC Patch Patch91: php-5.3.7-oci8conf.patch BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) BuildRequires: bzip2-devel, curl-devel >= 7.9, db4-devel, gmp-devel # ART BuildRequires: tortixd-devel >= 2.0.46-1, pam-devel BuildRequires: libstdc++-devel, openssl-devel %if 0%{?fedora} >= 11 || 0%{?rhel} >= 6 # For Sqlite3 extension BuildRequires: sqlite-devel >= 3.6.0 %else BuildRequires: sqlite-devel >= 3.0.0 %endif BuildRequires: zlib-devel, smtpdaemon, readline-devel %if 0%{?fedora} >= 10 || 0%{?rhel} >= 6 BuildRequires: pcre-devel >= 7.8 %endif BuildRequires: bzip2, perl, libtool >= 1.4.3, gcc-c++ %if %{with_libzip} BuildRequires: libzip-devel >= 0.10 %endif BuildRequires: libtool-ltdl-devel BuildRequires: bison # ART Obsoletes: asl-%{phpname}-dbg, asl-%{phpname}-zts Provides: asl-%{phpname}-zts = %{version}-%{release} Provides: asl-%{phpname}-zts%{?_isa} = %{version}-%{release} # ART Requires: tortixd-mmn Requires: asl-%{phpname}-common%{?_isa} = %{version}-%{release} # For backwards-compatibility, require php-cli for the time being: Requires: asl-%{phpname}-cli%{?_isa} = %{version}-%{release} # To ensure correct /var/lib/php/session ownership: Requires(pre): tortixd %{expand: %%define _origbindir %{_bindir}} %{expand: %%define _originitdir %{_initrddir}} %{expand: %%define _origincludedir %{_includedir}} %{expand: %%define _origsysconfdir %{_sysconfdir}} %{expand: %%define _origlocalstatedir %{_localstatedir}} # ART %if %{phpname} == php %global peardir %{_datadir}/pear %else %global _bindir /usr/bin/asl-%{phpname} %global _includedir /usr/include/asl-%{phpname} %global _sysconfdir /etc/asl-%{phpname} %global peardir %{_datadir}/asl-%{phpname}/pear %endif # Don't provides extensions, which are not shared library, as .so # RPM 4.8 %{?filter_provides_in: %filter_provides_in %{_libdir}/php/modules/.*\.so$} %{?filter_provides_in: %filter_provides_in %{_libdir}/php-zts/modules/.*\.so$} %{?filter_setup} # RPM 4.9 %global __provides_exclude_from %{?__provides_exclude_from:%__provides_exclude_from|}%{_libdir}/php/modules/.*\\.so$ %global __provides_exclude_from %{__provides_exclude_from}|%{_libdir}/php-zts/modules/.*\\.so$ %description PHP is an HTML-embedded scripting language. PHP attempts to make it easy for developers to write dynamically generated web pages. PHP also offers built-in database integration for several commercial and non-commercial database management systems, so writing a database-enabled webpage with PHP is fairly simple. The most common use of PHP coding is probably as a replacement for CGI scripts. The php package contains the module which adds support for the PHP language to Apache HTTP Server. %package cli Group: Development/Languages Summary: Command-line interface for PHP Requires: asl-%{phpname}-common%{?_isa} = %{version}-%{release} Provides: asl-%{phpname}-cgi = %{version}-%{release}, asl-%{phpname}-cgi%{?_isa} = %{version}-%{release} Provides: asl-%{phpname}-pcntl, asl-%{phpname}-pcntl%{?_isa} Provides: asl-%{phpname}-readline, asl-%{phpname}-readline%{?_isa} AutoReq: no %description cli The asl-%{phpname}-cli package contains the command-line interface executing PHP scripts, /usr/bin/php, and the CGI interface. %if %{with_fpm} %package fpm Group: Development/Languages Summary: PHP FastCGI Process Manager Requires: asl-%{phpname}-common%{?_isa} = %{version}-%{release} BuildRequires: libevent-devel >= 1.4.11 %if 0%{?fedora} >= 15 BuildRequires: systemd-units Requires: systemd-units Requires(post): systemd-units Requires(preun): systemd-units Requires(postun): systemd-units # This is actually needed for the %%triggerun script but Requires(triggerun) # is not valid. We can use %%post because this particular %%triggerun script # should fire just after this package is installed. Requires(post): systemd-sysv %else # This is for /sbin/service Requires(preun): initscripts Requires(postun): initscripts %endif %description fpm PHP-FPM (FastCGI Process Manager) is an alternative PHP FastCGI implementation with some additional features useful for sites of any size, especially busier sites. %endif %package common Group: Development/Languages Summary: Common files for PHP # ABI/API check - Arch specific Provides: asl-%{phpname}-api = %{apiver}%{isasuffix}, asl-%{phpname}-zend-abi = %{zendver}%{isasuffix} Provides: asl-%{phpname}(api) = %{apiver}%{isasuffix}, asl-%{phpname}(zend-abi) = %{zendver}%{isasuffix} # Provides for all builtin/shared modules: Provides: asl-%{phpname}-bz2, asl-%{phpname}-bz2%{?_isa} Provides: asl-%{phpname}-calendar, asl-%{phpname}-calendar%{?_isa} Provides: asl-%{phpname}-ctype, asl-%{phpname}-ctype%{?_isa} Provides: asl-%{phpname}-curl, asl-%{phpname}-curl%{?_isa} Provides: asl-%{phpname}-date, asl-%{phpname}-date%{?_isa} Provides: asl-%{phpname}-exif, asl-%{phpname}-exif%{?_isa} Provides: asl-%{phpname}-fileinfo, asl-%{phpname}-fileinfo%{?_isa} Provides: asl-%{phpname}-pecl-Fileinfo = %{fileinfover}, asl-%{phpname}-pecl-Fileinfo%{?_isa} = %{fileinfover} Provides: asl-%{phpname}-pecl(Fileinfo) = %{fileinfover}, asl-%{phpname}-pecl(Fileinfo)%{?_isa} = %{fileinfover} Provides: asl-%{phpname}-ftp, asl-%{phpname}-ftp%{?_isa} Provides: asl-%{phpname}-gettext, asl-%{phpname}-gettext%{?_isa} Provides: asl-%{phpname}-gmp, asl-%{phpname}-gmp%{?_isa} Provides: asl-%{phpname}-hash, asl-%{phpname}-hash%{?_isa} Provides: asl-%{phpname}-mhash = %{version}, asl-%{phpname}-mhash%{?_isa} = %{version} Provides: asl-%{phpname}-iconv, asl-%{phpname}-iconv%{?_isa} Provides: asl-%{phpname}-json, asl-%{phpname}-json%{?_isa} Provides: asl-%{phpname}-pecl-json = %{jsonver}, asl-%{phpname}-pecl-json%{?_isa} = %{jsonver} Provides: asl-%{phpname}-pecl(json) = %{jsonver}, asl-%{phpname}-pecl(json)%{?_isa} = %{jsonver} Provides: asl-%{phpname}-libxml, asl-%{phpname}-libxml%{?_isa} Provides: asl-%{phpname}-openssl, asl-%{phpname}-openssl%{?_isa} Provides: asl-%{phpname}-pecl-phar = %{pharver}, asl-%{phpname}-pecl-phar%{?_isa} = %{pharver} Provides: asl-%{phpname}-pecl(phar) = %{pharver}, asl-%{phpname}-pecl(phar)%{?_isa} = %{pharver} Provides: asl-%{phpname}-pcre, asl-%{phpname}-pcre%{?_isa} Provides: asl-%{phpname}-reflection, asl-%{phpname}-reflection%{?_isa} Provides: asl-%{phpname}-session, asl-%{phpname}-session%{?_isa} Provides: asl-%{phpname}-shmop, asl-%{phpname}-shmop%{?_isa} Provides: asl-%{phpname}-simplexml, asl-%{phpname}-simplexml%{?_isa} Provides: asl-%{phpname}-sockets, asl-%{phpname}-sockets%{?_isa} Provides: asl-%{phpname}-spl, asl-%{phpname}-spl%{?_isa} Provides: asl-%{phpname}-tokenizer, asl-%{phpname}-tokenizer%{?_isa} Provides: asl-%{phpname}-zip, asl-%{phpname}-zip%{?_isa} Provides: asl-%{phpname}-pecl-zip = %{zipver}, asl-%{phpname}-pecl-zip%{?_isa} = %{zipver} Provides: asl-%{phpname}-pecl(zip) = %{zipver}, asl-%{phpname}-pecl(zip)%{?_isa} = %{zipver} Obsoletes: asl-%{phpname}-pecl-zip Provides: asl-%{phpname}-zlib, asl-%{phpname}-zlib%{?_isa} Obsoletes: asl-%{phpname}-openssl, asl-%{phpname}-pecl-json, asl-%{phpname}-json, asl-%{phpname}-pecl-phar, asl-%{phpname}-pecl-Fileinfo Obsoletes: asl-%{phpname}-mhash < 5.3.0 %description common The asl-%{phpname}-common package contains files used by both the php package and the asl-%{phpname}-cli package. %package devel Group: Development/Libraries Summary: Files needed for building PHP extensions Requires: asl-%{phpname}%{?_isa} = %{version}-%{release}, autoconf, automake Obsoletes: asl-%{phpname}-pecl-pdo-devel Provides: asl-php-zts-devel = %{version}-%{release} Provides: asl-php-zts-devel%{?_isa} = %{version}-%{release} %description devel The asl-%{phpname}-devel package contains the files needed for building PHP extensions. If you need to compile your own PHP extensions, you will need to install this package. %package imap Summary: A module for PHP applications that use IMAP Group: Development/Languages Requires: asl-%{phpname}-common%{?_isa} = %{version}-%{release} # ART #Obsoletes: mod_php3-imap, stronghold-php-imap BuildRequires: krb5-devel, openssl-devel, libc-client-devel %description imap The asl-%{phpname}-imap package contains a dynamic shared object (DSO) for the Apache Web server. When compiled into Apache, the asl-%{phpname}-imap module will add IMAP (Internet Message Access Protocol) support to PHP. IMAP is a protocol for retrieving and uploading e-mail messages on mail servers. PHP is an HTML-embedded scripting language. If you need IMAP support for PHP applications, you will need to install this package and the php package. %package ldap Summary: A module for PHP applications that use LDAP Group: Development/Languages Requires: asl-%{phpname}-common%{?_isa} = %{version}-%{release} # ART #Obsoletes: mod_php3-ldap, stronghold-php-ldap BuildRequires: cyrus-sasl-devel, openldap-devel, openssl-devel %description ldap The asl-%{phpname}-ldap package is a dynamic shared object (DSO) for the Apache Web server that adds Lightweight Directory Access Protocol (LDAP) support to PHP. LDAP is a set of protocols for accessing directory services over the Internet. PHP is an HTML-embedded scripting language. If you need LDAP support for PHP applications, you will need to install this package in addition to the php package. %package pdo Summary: A database access abstraction module for PHP applications Group: Development/Languages Requires: asl-%{phpname}-common%{?_isa} = %{version}-%{release} Obsoletes: asl-%{phpname}-pecl-pdo-sqlite, asl-%{phpname}-pecl-pdo # ABI/API check - Arch specific Provides: asl-%{phpname}-pdo-abi = %{pdover}%{isasuffix} Provides: asl-%{phpname}-sqlite3, asl-%{phpname}-sqlite3%{?_isa} Provides: asl-%{phpname}-pdo_sqlite, asl-%{phpname}-pdo_sqlite%{?_isa} %description pdo The asl-%{phpname}-pdo package contains a dynamic shared object that will add a database access abstraction layer to PHP. This module provides a common interface for accessing MySQL, PostgreSQL or other databases. %package mysql Summary: A module for PHP applications that use MySQL databases Group: Development/Languages Requires: asl-%{phpname}-pdo%{?_isa} = %{version}-%{release} Provides: asl-%{phpname}_database Provides: asl-%{phpname}-mysqli = %{version}-%{release} Provides: asl-%{phpname}-mysqli%{?_isa} = %{version}-%{release} Provides: asl-%{phpname}-pdo_mysql, asl-%{phpname}-pdo_mysql%{?_isa} # ART #Obsoletes: mod_php3-mysql, stronghold-php-mysql BuildRequires: mysql-devel >= 4.1.0 Conflicts: asl-%{phpname}-mysqlnd %description mysql The asl-%{phpname}-mysql package contains a dynamic shared object that will add MySQL database support to PHP. MySQL is an object-relational database management system. PHP is an HTML-embeddable scripting language. If you need MySQL support for PHP applications, you will need to install this package and the php package. %package mysqlnd Summary: A module for PHP applications that use MySQL databases Group: Development/Languages Requires: asl-%{phpname}-pdo%{?_isa} = %{version}-%{release} Provides: asl-%{phpname}_database Provides: asl-%{phpname}-mysql = %{version}-%{release} Provides: asl-%{phpname}-mysql%{?_isa} = %{version}-%{release} Provides: asl-%{phpname}-mysqli = %{version}-%{release} Provides: asl-%{phpname}-mysqli%{?_isa} = %{version}-%{release} Provides: asl-%{phpname}-pdo_mysql, asl-%{phpname}-pdo_mysql%{?_isa} %description mysqlnd The asl-%{phpname}-mysqlnd package contains a dynamic shared object that will add MySQL database support to PHP. MySQL is an object-relational database management system. PHP is an HTML-embeddable scripting language. If you need MySQL support for PHP applications, you will need to install this package and the php package. This package use the MySQL Native Driver %package pgsql Summary: A PostgreSQL database module for PHP Group: Development/Languages Requires: asl-%{phpname}-pdo%{?_isa} = %{version}-%{release} Provides: asl-%{phpname}_database Provides: asl-%{phpname}-pdo_pgsql, asl-%{phpname}-pdo_pgsql%{?_isa} # ART #Obsoletes: mod_php3-pgsql, stronghold-php-pgsql BuildRequires: krb5-devel, openssl-devel, postgresql-devel %description pgsql The asl-%{phpname}-pgsql package includes a dynamic shared object (DSO) that can be compiled in to the Apache Web server to add PostgreSQL database support to PHP. PostgreSQL is an object-relational database management system that supports almost all SQL constructs. PHP is an HTML-embedded scripting language. If you need back-end support for PostgreSQL, you should install this package in addition to the main php package. %package process Summary: Modules for PHP script using system process interfaces Group: Development/Languages Requires: asl-%{phpname}-common%{?_isa} = %{version}-%{release} Provides: asl-%{phpname}-posix, asl-%{phpname}-posix%{?_isa} Provides: asl-%{phpname}-sysvsem, asl-%{phpname}-sysvsem%{?_isa} Provides: asl-%{phpname}-sysvshm, asl-%{phpname}-sysvshm%{?_isa} Provides: asl-%{phpname}-sysvmsg, asl-%{phpname}-sysvmsg%{?_isa} %description process The asl-%{phpname}-process package contains dynamic shared objects which add support to PHP using system interfaces for inter-process communication. %package odbc Group: Development/Languages Requires: asl-%{phpname}-pdo%{?_isa} = %{version}-%{release} Summary: A module for PHP applications that use ODBC databases Provides: asl-%{phpname}_database Provides: asl-%{phpname}-pdo_odbc, asl-%{phpname}-pdo_odbc%{?_isa} # ART #Obsoletes: stronghold-php-odbc BuildRequires: unixODBC-devel %description odbc The asl-%{phpname}-odbc package contains a dynamic shared object that will add database support through ODBC to PHP. ODBC is an open specification which provides a consistent API for developers to use for accessing data sources (which are often, but not always, databases). PHP is an HTML-embeddable scripting language. If you need ODBC support for PHP applications, you will need to install this package and the php package. %package soap Group: Development/Languages Requires: asl-%{phpname}-common%{?_isa} = %{version}-%{release} Summary: A module for PHP applications that use the SOAP protocol BuildRequires: libxml2-devel %description soap The asl-%{phpname}-soap package contains a dynamic shared object that will add support to PHP for using the SOAP web services protocol. %if %{with_ibase} %package interbase Summary: A module for PHP applications that use Interbase/Firebird databases Group: Development/Languages BuildRequires: firebird-devel Requires: asl-%{phpname}-pdo%{?_isa} = %{version}-%{release} Provides: asl-%{phpname}_database Provides: asl-%{phpname}-firebird, asl-%{phpname}-firebird%{?_isa} Provides: asl-%{phpname}-pdo_firebird, asl-%{phpname}-pdo_firebird%{?_isa} %description interbase The asl-%{phpname}-interbase package contains a dynamic shared object that will add database support through Interbase/Firebird to PHP. InterBase is the name of the closed-source variant of this RDBMS that was developed by Borland/Inprise. Firebird is a commercially independent project of C and C++ programmers, technical advisors and supporters developing and enhancing a multi-platform relational database management system based on the source code released by Inprise Corp (now known as Borland Software Corp) under the InterBase Public License. %endif %if %{with_oci8} %package oci8 Summary: A module for PHP applications that use OCI8 databases Group: Development/Languages BuildRequires: oracle-instantclient-devel >= %{oraclever} Requires: asl-%{phpname}-pdo%{?_isa} = %{version}-%{release} Provides: asl-%{phpname}_database Provides: asl-%{phpname}-pdo_oci = %{oci8ver}, asl-%{phpname}-pdo_oci%{?_isa} = %{oci8ver} Provides: asl-%{phpname}-pecl-oci8 = %{oci8ver}, asl-%{phpname}-pecl-oci8%{?_isa} = %{oci8ver} Provides: asl-%{phpname}-pecl(oci8) = %{oci8ver}, asl-%{phpname}-pecl(oci8)%{?_isa} = %{oci8ver} # Should requires libclntsh.so.11.1, but it's not provided by Oracle RPM. AutoReq: 0 %description oci8 The asl-%{phpname}-oci8 package contains a dynamic shared object that will add support for accessing OCI8 databases to PHP. %endif %package snmp Summary: A module for PHP applications that query SNMP-managed devices Group: Development/Languages Requires: asl-%{phpname}-common%{?_isa} = %{version}-%{release}, net-snmp BuildRequires: net-snmp-devel %description snmp The asl-%{phpname}-snmp package contains a dynamic shared object that will add support for querying SNMP devices to PHP. PHP is an HTML-embeddable scripting language. If you need SNMP support for PHP applications, you will need to install this package and the php package. %package xml Summary: A module for PHP applications which use XML Group: Development/Languages Requires: asl-%{phpname}-common%{?_isa} = %{version}-%{release} Obsoletes: asl-%{phpname}-domxml, asl-%{phpname}-dom Provides: asl-%{phpname}-dom, asl-%{phpname}-dom%{?_isa} Provides: asl-%{phpname}-xsl, asl-%{phpname}-xsl%{?_isa} Provides: asl-%{phpname}-domxml, asl-%{phpname}-domxml%{?_isa} Provides: asl-%{phpname}-wddx, asl-%{phpname}-wddx%{?_isa} BuildRequires: libxslt-devel >= 1.0.18-1, libxml2-devel >= 2.4.14-1 %description xml The asl-%{phpname}-xml package contains dynamic shared objects which add support to PHP for manipulating XML documents using the DOM tree, and performing XSL transformations on XML documents. %package xmlrpc Summary: A module for PHP applications which use the XML-RPC protocol Group: Development/Languages Requires: asl-%{phpname}-common%{?_isa} = %{version}-%{release} %description xmlrpc The asl-%{phpname}-xmlrpc package contains a dynamic shared object that will add support for the XML-RPC protocol to PHP. %package mbstring Summary: A module for PHP applications which need multi-byte string handling Group: Development/Languages Requires: asl-%{phpname}-common%{?_isa} = %{version}-%{release} %description mbstring The asl-%{phpname}-mbstring package contains a dynamic shared object that will add support for multi-byte string handling to PHP. %package gd Summary: A module for PHP applications for using the gd graphics library Group: Development/Languages Requires: asl-%{phpname}-common%{?_isa} = %{version}-%{release} # Required to build the bundled GD library BuildRequires: libjpeg-devel, libpng-devel, freetype-devel BuildRequires: libXpm-devel, t1lib-devel %description gd The asl-%{phpname}-gd package contains a dynamic shared object that will add support for using the gd graphics library to PHP. %package bcmath Summary: A module for PHP applications for using the bcmath library Group: Development/Languages Requires: asl-%{phpname}-common%{?_isa} = %{version}-%{release} %description bcmath The asl-%{phpname}-bcmath package contains a dynamic shared object that will add support for using the bcmath library to PHP. %package dba Summary: A database abstraction layer module for PHP applications Group: Development/Languages Requires: asl-%{phpname}-common%{?_isa} = %{version}-%{release} %description dba The asl-%{phpname}-dba package contains a dynamic shared object that will add support for using the DBA database abstraction layer to PHP. %package mcrypt Summary: Standard PHP module provides mcrypt library support Group: Development/Languages Requires: asl-%{phpname}-common%{?_isa} = %{version}-%{release} BuildRequires: libmcrypt-devel %description mcrypt The asl-%{phpname}-mcrypt package contains a dynamic shared object that will add support for using the mcrypt library to PHP. %package tidy Summary: Standard PHP module provides tidy library support Group: Development/Languages Requires: asl-%{phpname}-common%{?_isa} = %{version}-%{release} BuildRequires: libtidy-devel %description tidy The asl-%{phpname}-tidy package contains a dynamic shared object that will add support for using the tidy library to PHP. %package mssql Summary: MSSQL database module for PHP Group: Development/Languages Requires: asl-%{phpname}-pdo%{?_isa} = %{version}-%{release} BuildRequires: freetds-devel Provides: asl-%{phpname}-pdo_dblib, asl-%{phpname}-pdo_dblib%{?_isa} %description mssql The asl-%{phpname}-mssql package contains a dynamic shared object that will add MSSQL database support to PHP. It uses the TDS (Tabular DataStream) protocol through the freetds library, hence any database server which supports TDS can be accessed. %package embedded Summary: PHP library for embedding in applications Group: System Environment/Libraries Requires: asl-%{phpname}-common%{?_isa} = %{version}-%{release} # doing a real -devel package for just the .so symlink is a bit overkill Provides: asl-%{phpname}-embedded-devel = %{version}-%{release} Provides: asl-%{phpname}-embedded-devel%{?_isa} = %{version}-%{release} %description embedded The asl-%{phpname}-embedded package contains a library which can be embedded into applications to provide PHP scripting language support. %package pspell Summary: A module for PHP applications for using pspell interfaces Group: System Environment/Libraries Requires: asl-%{phpname}-common%{?_isa} = %{version}-%{release} BuildRequires: aspell-devel >= 0.50.0 %description pspell The asl-%{phpname}-pspell package contains a dynamic shared object that will add support for using the pspell library to PHP. %package recode Summary: A module for PHP applications for using the recode library Group: System Environment/Libraries Requires: asl-%{phpname}-common%{?_isa} = %{version}-%{release} BuildRequires: recode-devel %description recode The asl-%{phpname}-recode package contains a dynamic shared object that will add support for using the recode library to PHP. %package intl Summary: Internationalization extension for PHP applications Group: System Environment/Libraries Requires: asl-%{phpname}-common%{?_isa} = %{version}-%{release} BuildRequires: libicu-devel >= 3.6 %description intl The asl-%{phpname}-intl package contains a dynamic shared object that will add support for using the ICU library to PHP. %package enchant Summary: Human Language and Character Encoding Support Group: System Environment/Libraries Requires: asl-%{phpname}-common%{?_isa} = %{version}-%{release} BuildRequires: enchant-devel >= 1.2.4 %description enchant The asl-%{phpname}-intl package contains a dynamic shared object that will add support for using the enchant library to PHP. %prep echo CIBLE = %{name}-%{version}-%{release} oci8=%{with_oci8} ibase=%{with_ibase} fpm=%{with_fpm} libzip=%{with_libzip} %if 0%{?snapdate} %setup -q -n php5.4-%{snapdate} %else %setup -q -n php-%{version}%{?rcver} %endif %patch5 -p1 -b .includedir %patch6 -p1 -b .embed %patch7 -p1 -b .recode %patch40 -p1 -b .dlopen %patch41 -p1 -b .easter %if %{?fedora}%{?rhel:99} >= 15 %patch42 -p1 -b .systzdata %endif %patch43 -p1 -b .headers %if %{with_libzip} %patch44 -p1 -b .systzip %endif %patch91 -p1 -b .remi-oci8 # Prevent %%doc confusion over LICENSE files cp Zend/LICENSE Zend/ZEND_LICENSE cp TSRM/LICENSE TSRM_LICENSE cp ext/ereg/regex/COPYRIGHT regex_COPYRIGHT cp ext/gd/libgd/README gd_README # Multiple builds for multiple SAPIs mkdir build-cgi build-apache build-embedded build-zts build-ztscli \ %if %{with_fpm} build-fpm %endif # Remove bogus test; position of read position after fopen(, "a+") # is not defined by C standard, so don't presume anything. rm -f ext/standard/tests/file/bug21131.phpt # php_egg_logo_guid() removed by patch41 rm -f tests/basic/php_egg_logo_guid.phpt # Tests that fail. rm -f ext/standard/tests/file/bug22414.phpt \ ext/iconv/tests/bug16069.phpt # Safety check for API version change. pver=$(sed -n '/#define PHP_VERSION /{s/.* "//;s/".*$//;p}' main/php_version.h) if test "x${pver}" != "x%{version}%{?rcver}"; then : Error: Upstream PHP version is now ${pver}, expecting %{version}%{?rcver}. : Update the version/rcver macros and rebuild. exit 1 fi 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 # Safety check for PDO ABI version change vpdo=`sed -n '/#define PDO_DRIVER_API/{s/.*[ ]//;p}' ext/pdo/php_pdo_driver.h` if test "x${vpdo}" != "x%{pdover}"; then : Error: Upstream PDO ABI version is now ${vpdo}, expecting %{pdover}. : Update the pdover macro and rebuild. exit 1 fi # Check for some extension version ver=$(sed -n '/#define PHP_FILEINFO_VERSION /{s/.* "//;s/".*$//;p}' ext/fileinfo/php_fileinfo.h) if test "$ver" != "%{fileinfover}"; then : Error: Upstream FILEINFO version is now ${ver}, expecting %{fileinfover}. : Update the fileinfover macro and rebuild. exit 1 fi ver=$(sed -n '/#define PHP_PHAR_VERSION /{s/.* "//;s/".*$//;p}' ext/phar/php_phar.h) if test "$ver" != "%{pharver}"; then : Error: Upstream PHAR version is now ${ver}, expecting %{pharver}. : Update the pharver macro and rebuild. exit 1 fi ver=$(sed -n '/#define PHP_ZIP_VERSION_STRING /{s/.* "//;s/".*$//;p}' ext/zip/php_zip.h) if test "$ver" != "%{zipver}"; then : Error: Upstream ZIP version is now ${ver}, expecting %{zipver}. : Update the zipver macro and rebuild. exit 1 fi ver=$(sed -n '/#define PHP_OCI8_VERSION /{s/.* "//;s/".*$//;p}' ext/oci8/php_oci8.h) if test "$ver" != "%{oci8ver}"; then : Error: Upstream OCI8 version is now ${ver}, expecting %{oci8ver}. : Update the oci8ver macro and rebuild. exit 1 fi ver=$(sed -n '/#define PHP_JSON_VERSION /{s/.* "//;s/".*$//;p}' ext/json/php_json.h) if test "$ver" != "%{jsonver}"; then : Error: Upstream JSON version is now ${ver}, expecting %{jsonver}. : Update the jsonver macro and rebuild. exit 1 fi # Fix some bogus permissions find . -name \*.[ch] -exec chmod 644 {} \; chmod 644 README.* # php-fpm configuration files for tmpfiles.d echo "d %{_localstatedir}/run/php-fpm 755 root root" >php-fpm.tmpfiles : Build for oci8=%{with_oci8} ibase=%{with_ibase} %build %if 0%{?fedora} >= 11 || 0%{?rhel} >= 6 # aclocal workaround - to be improved cat `aclocal --print-ac-dir`/{libtool,ltoptions,ltsugar,ltversion,lt~obsolete}.m4 >>aclocal.m4 %endif # Force use of system libtool: libtoolize --force --copy %if 0%{?fedora} >= 11 || 0%{?rhel} >= 6 cat `aclocal --print-ac-dir`/{libtool,ltoptions,ltsugar,ltversion,lt~obsolete}.m4 >build/libtool.m4 %else cat `aclocal --print-ac-dir`/libtool.m4 > build/libtool.m4 %endif # Regenerate configure scripts (patches change config.m4's) touch configure.in ./buildconf --force CFLAGS="$RPM_OPT_FLAGS -fno-strict-aliasing -Wno-pointer-sign" export CFLAGS # Install extension modules in %{_libdir}/php/modules. EXTENSION_DIR=%{_libdir}/%{phpname}/modules; export EXTENSION_DIR # Set PEAR_INSTALLDIR to ensure that the hard-coded include_path # includes the PEAR directory even though pear is packaged # separately. PEAR_INSTALLDIR=%{peardir}; export PEAR_INSTALLDIR # Shell function to configure and build a PHP tree. build() { ln -sf ../configure %configure \ --cache-file=../config.cache \ --with-libdir=%{_lib} \ --with-config-file-path=%{_aslhome}%{_sysconfdir} \ --with-config-file-scan-dir=%{_aslhome}%{_sysconfdir}/php.d \ --disable-debug \ --with-pic \ --disable-rpath \ --without-pear \ --with-bz2 \ --with-exec-dir=%{_bindir} \ --with-freetype-dir=%{_prefix} \ --with-png-dir=%{_prefix} \ --with-xpm-dir=%{_prefix} \ --enable-gd-native-ttf \ --with-t1lib=%{_prefix} \ --without-gdbm \ --with-gettext \ --with-gmp \ --with-iconv \ --with-jpeg-dir=%{_prefix} \ --with-openssl \ %if 0%{?fedora} >= 10 || 0%{?rhel} >= 6 --with-pcre-regex \ %endif --with-zlib \ --with-layout=GNU \ --enable-exif \ --enable-ftp \ --enable-magic-quotes \ --enable-sockets \ --with-kerberos \ --enable-ucd-snmp-hack \ --enable-shmop \ --enable-calendar \ --with-libxml-dir=%{_prefix} \ --enable-xml \ %if %{?fedora}%{?rhel:99} >= 10 --with-system-tzdata \ %endif --with-mhash \ $* if test $? != 0; then tail -500 config.log : configure failed exit 1 fi make %{?_smp_mflags} } # Build /usr/bin/php-cgi with the CGI SAPI, and all the shared extensions pushd build-cgi # ART build --enable-force-cgi-redirect \ --prefix=%{_aslhome} \ --libdir=%{_libdir}/%{phpname} \ --enable-pcntl \ --with-imap=shared --with-imap-ssl \ --enable-mbstring=shared \ --enable-mbregex \ --with-gd=shared \ --enable-bcmath=shared \ --enable-dba=shared --with-db4=%{_prefix} \ --with-xmlrpc=shared \ --with-ldap=shared --with-ldap-sasl \ --enable-mysqlnd=shared \ --with-mysql=shared,mysqlnd \ --with-mysqli=shared,mysqlnd \ --with-mysql-sock=%{mysql_sock} \ %ifarch x86_64 %{?_with_oci8:--with-oci8=shared,instantclient,%{_libdir}/oracle/%{oraclever}/client64/lib,%{oraclever}} \ %else %{?_with_oci8:--with-oci8=shared,instantclient,%{_libdir}/oracle/%{oraclever}/client/lib,%{oraclever}} \ %endif %{?_with_oci8:--with-pdo-oci=shared,instantclient,/usr,%{oraclever}} \ %{?_with_ibase:--with-interbase=shared,%{_libdir}/firebird} \ %{?_with_ibase:--with-pdo-firebird=shared,%{_libdir}/firebird} \ --enable-dom=shared \ --with-pgsql=shared \ --enable-wddx=shared \ --with-snmp=shared,%{_prefix} \ --enable-soap=shared \ --with-xsl=shared,%{_prefix} \ --enable-xmlreader=shared --enable-xmlwriter=shared \ --with-curl=shared,%{_prefix} \ --enable-fastcgi \ --enable-pdo=shared \ --with-pdo-odbc=shared,unixODBC,%{_prefix} \ --with-pdo-mysql=shared,mysqlnd \ --with-pdo-pgsql=shared,%{_prefix} \ --with-pdo-sqlite=shared,%{_prefix} \ --with-pdo-dblib=shared,%{_prefix} \ %if 0%{?fedora} >= 11 || 0%{?rhel} >= 6 --with-sqlite3=shared,%{_prefix} \ %else --without-sqlite3 \ %endif --enable-json=shared \ --enable-zip=shared \ %if %{with_libzip} --with-libzip \ %endif --with-readline \ --with-pspell=shared \ --enable-phar=shared \ --with-mcrypt=shared,%{_prefix} \ --with-tidy=shared,%{_prefix} \ --with-mssql=shared,%{_prefix} \ --enable-sysvmsg=shared --enable-sysvshm=shared --enable-sysvsem=shared \ --enable-posix=shared \ --with-unixODBC=shared,%{_prefix} \ --enable-fileinfo=shared \ --enable-intl=shared \ --with-icu-dir=%{_prefix} \ --with-enchant=shared,%{_prefix} \ --with-recode=shared,%{_prefix} popd without_shared="--without-gd \ --disable-dom --disable-dba --without-unixODBC \ --disable-xmlreader --disable-xmlwriter \ --without-sqlite3 --disable-phar --disable-fileinfo \ --disable-json --without-pspell --disable-wddx \ --without-curl --disable-posix \ --disable-sysvmsg --disable-sysvshm --disable-sysvsem" # ART # Build Apache module, and the CLI SAPI, /usr/bin/php pushd build-apache build --with-apxs2=%{_aslhome}%{_sbindir}/apxs \ --prefix=%{_aslhome} \ --libdir=%{_libdir}/%{phpname} \ --enable-pdo=shared \ --with-mysql=shared,%{_prefix} \ --with-mysqli=shared,%{mysql_config} \ --with-pdo-mysql=shared,%{mysql_config} \ --with-pdo-sqlite=shared,%{_prefix} \ ${without_shared} popd %if %{with_fpm} # Build php-fpm # ART pushd build-fpm build --enable-fpm \ --prefix=%{_aslhome} \ --libdir=%{_libdir}/%{phpname} \ --without-mysql --disable-pdo \ ${without_shared} popd %endif # Build for inclusion as embedded script language into applications, # /usr/lib[64]/libphp5.so pushd build-embedded build --enable-embed \ --prefix=%{_aslhome} \ --without-mysql --disable-pdo \ ${without_shared} popd # Build a special thread-safe (mainly for modules) pushd build-ztscli # ART EXTENSION_DIR=%{_libdir}/%{phpname}-zts/modules build --enable-force-cgi-redirect \ --prefix=%{_aslhome} \ --includedir=%{_includedir}/%{phpname}-zts \ --libdir=%{_libdir}/%{phpname}-zts \ --enable-maintainer-zts \ --with-config-file-scan-dir=%{_aslhome}%{_sysconfdir}/php-zts.d \ --enable-pcntl \ --with-imap=shared --with-imap-ssl \ --enable-mbstring=shared \ --enable-mbregex \ --with-gd=shared \ --enable-bcmath=shared \ --enable-dba=shared --with-db4=%{_prefix} \ --with-xmlrpc=shared \ --with-ldap=shared --with-ldap-sasl \ --enable-mysqlnd=shared \ --with-mysql=shared,mysqlnd \ --with-mysqli=shared,mysqlnd \ --with-mysql-sock=%{mysql_sock} \ --enable-mysqlnd-threading \ %ifarch x86_64 %{?_with_oci8:--with-oci8=shared,instantclient,%{_libdir}/oracle/%{oraclever}/client64/lib,%{oraclever}} \ %else %{?_with_oci8:--with-oci8=shared,instantclient,%{_libdir}/oracle/%{oraclever}/client/lib,%{oraclever}} \ %endif %{?_with_oci8:--with-pdo-oci=shared,instantclient,/usr,%{oraclever}} \ %{?_with_ibase:--with-interbase=shared,%{_libdir}/firebird} \ %{?_with_ibase:--with-pdo-firebird=shared,%{_libdir}/firebird} \ --enable-dom=shared \ --with-pgsql=shared \ --enable-wddx=shared \ --with-snmp=shared,%{_prefix} \ --enable-soap=shared \ --with-xsl=shared,%{_prefix} \ --enable-xmlreader=shared --enable-xmlwriter=shared \ --with-curl=shared,%{_prefix} \ --enable-fastcgi \ --enable-pdo=shared \ --with-pdo-odbc=shared,unixODBC,%{_prefix} \ --with-pdo-mysql=shared,mysqlnd \ --with-pdo-pgsql=shared,%{_prefix} \ --with-pdo-sqlite=shared,%{_prefix} \ --with-pdo-dblib=shared,%{_prefix} \ %if 0%{?fedora} >= 11 || 0%{?rhel} >= 6 --with-sqlite3=shared,%{_prefix} \ %else --without-sqlite3 \ %endif --enable-json=shared \ --enable-zip=shared \ %if %{with_libzip} --with-libzip \ %endif --with-readline \ --with-pspell=shared \ --enable-phar=shared \ --with-mcrypt=shared,%{_prefix} \ --with-tidy=shared,%{_prefix} \ --with-mssql=shared,%{_prefix} \ --enable-sysvmsg=shared --enable-sysvshm=shared --enable-sysvsem=shared \ --enable-posix=shared \ --with-unixODBC=shared,%{_prefix} \ --enable-fileinfo=shared \ --enable-intl=shared \ --with-icu-dir=%{_prefix} \ --with-enchant=shared,%{_prefix} \ --with-recode=shared,%{_prefix} popd # Build a special thread-safe Apache SAPI # ART pushd build-zts build --with-apxs2=%{_aslhome}%{_sbindir}/apxs \ --prefix=%{_aslhome} \ --includedir=%{_origincludedir}/%{phpname}-zts \ --libdir=%{_libdir}/%{phpname}-zts \ --enable-maintainer-zts \ --with-config-file-scan-dir=%{_aslhome}%{_sysconfdir}/php-zts.d \ --enable-pdo=shared \ --with-mysql=shared,%{_prefix} \ --with-mysqli=shared,%{mysql_config} \ --with-pdo-mysql=shared,%{mysql_config} \ --with-pdo-sqlite=shared,%{_prefix} \ ${without_shared} popd ### NOTE!!! EXTENSION_DIR was changed for the -zts build, so it must remain ### the last SAPI to be built. %check %if %runselftest cd build-apache # Run tests, using the CLI SAPI export NO_INTERACTION=1 REPORT_EXIT_STATUS=1 MALLOC_CHECK_=2 unset TZ LANG LC_ALL if ! make test; then 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 #exit 1 fi unset NO_INTERACTION REPORT_EXIT_STATUS MALLOC_CHECK_ %endif # ART - needs to go here. It messes up dependencies on configure %define _sysconfdir /var/asl/etc/ %define _prefix /var/asl/usr/ %define _bindir /var/asl/usr/bin/ %define _sbindir /var/asl/usr/sbin/ %define _includedir /var/asl/usr/include/ %define _mandir /var/asl/usr/share/man/ %define _libdir /var/asl/usr/lib/ %ifarch x86_64 %define _libdir /var/asl/usr/lib64/ %endif %install [ "$RPM_BUILD_ROOT" != "/" ] && rm -rf $RPM_BUILD_ROOT # ART # Install the extensions for the ZTS version make -C build-ztscli install \ INSTALL_ROOT=$RPM_BUILD_ROOT/%{_aslhome} # rename extensions build with mysqlnd # ART mv $RPM_BUILD_ROOT%{_libdir}/%{phpname}-zts/modules/mysql.so \ $RPM_BUILD_ROOT%{_libdir}/%{phpname}-zts/modules/mysqlnd_mysql.so mv $RPM_BUILD_ROOT%{_libdir}/%{phpname}-zts/modules/mysqli.so \ $RPM_BUILD_ROOT%{_libdir}/%{phpname}-zts/modules/mysqlnd_mysqli.so mv $RPM_BUILD_ROOT%{_libdir}/%{phpname}-zts/modules/pdo_mysql.so \ $RPM_BUILD_ROOT%{_libdir}/%{phpname}-zts/modules/pdo_mysqlnd.so # Install the extensions for the ZTS version modules for libmysql make -C build-zts install-modules \ INSTALL_ROOT=$RPM_BUILD_ROOT/%{_aslhome} # rename binary mv $RPM_BUILD_ROOT%{_bindir}/php $RPM_BUILD_ROOT%{_bindir}/zts-php mv $RPM_BUILD_ROOT%{_bindir}/phpize $RPM_BUILD_ROOT%{_bindir}/zts-phpize mv $RPM_BUILD_ROOT%{_bindir}/php-config $RPM_BUILD_ROOT%{_bindir}/zts-php-config # Install the version for embedded script language in applications + php_embed.h make -C build-embedded install-sapi install-headers \ INSTALL_ROOT=$RPM_BUILD_ROOT/%{_aslhome} %if %{with_fpm} # Install the php-fpm binary make -C build-fpm install-fpm \ INSTALL_ROOT=$RPM_BUILD_ROOT/%{_aslhome} %endif # Install everything from the CGI SAPI build make -C build-cgi install \ INSTALL_ROOT=$RPM_BUILD_ROOT/%{_aslhome} # rename extensions build with mysqlnd # ART mv $RPM_BUILD_ROOT%{_libdir}/%{phpname}/modules/mysql.so \ $RPM_BUILD_ROOT%{_libdir}/%{phpname}/modules/mysqlnd_mysql.so mv $RPM_BUILD_ROOT%{_libdir}/%{phpname}/modules/mysqli.so \ $RPM_BUILD_ROOT%{_libdir}/%{phpname}/modules/mysqlnd_mysqli.so mv $RPM_BUILD_ROOT%{_libdir}/%{phpname}/modules/pdo_mysql.so \ $RPM_BUILD_ROOT%{_libdir}/%{phpname}/modules/pdo_mysqlnd.so # Install the mysql extension build with libmysql make -C build-apache install-modules \ INSTALL_ROOT=$RPM_BUILD_ROOT/%{_aslhome} # Install the default configuration file and icons install -m 755 -d $RPM_BUILD_ROOT%{_sysconfdir}/ install -m 644 %{SOURCE2} $RPM_BUILD_ROOT%{_sysconfdir}/php.ini # ART #%{__perl} -p -i -e 's[^session.save_path.*][session.save_path = /var/asl/session]g' $RPM_BUILD_ROOT%{_sysconfdir}/php.ini echo extension_dir=%{_libdir}/php/modules/ >> $RPM_BUILD_ROOT%{_sysconfdir}/php.ini #ART #install -m 755 -d $RPM_BUILD_ROOT%{contentdir}/icons #install -m 644 php.gif $RPM_BUILD_ROOT%{contentdir}/icons/asl-%{phpname}.gif # For third-party packaging: # ART install -m 755 -d $RPM_BUILD_ROOT%{_datadir}/%{phpname} # install the DSO install -m 755 -d $RPM_BUILD_ROOT%{_libdir}/httpd/modules # ART %if %{phpname} == php install -m 755 build-apache/libs/libphp5.so $RPM_BUILD_ROOT%{_libdir}/httpd/modules %else install -m 755 build-apache/libs/libphp5.so $RPM_BUILD_ROOT%{_libdir}/httpd/modules/lib-%{phpname}.so %endif # install the ZTS DSO # ART %if %{phpname} == php install -m 755 build-zts/libs/libphp5.so $RPM_BUILD_ROOT%{_libdir}/httpd/modules/libphp5-zts.so %else install -m 755 build-zts/libs/libphp5.so $RPM_BUILD_ROOT%{_libdir}/httpd/modules/lib%{phpname}-zts.so %endif # Apache config fragment install -m 755 -d $RPM_BUILD_ROOT%{_sysconfdir}/httpd/conf.d # ART %if %{phpname} == php install -m 644 %{SOURCE1} $RPM_BUILD_ROOT%{_sysconfdir}/httpd/conf.d %else %{__sed} -e s'/libphp5/lib%{phpname}/' %{SOURCE1} \ >$RPM_BUILD_ROOT/%{_sysconfdir}/httpd/conf.d/%{phpname}.conf %endif install -m 755 -d $RPM_BUILD_ROOT%{_sysconfdir}/php.d install -m 755 -d $RPM_BUILD_ROOT%{_sysconfdir}/php-zts.d install -m 755 -d $RPM_BUILD_ROOT%{_origlocalstatedir}/lib/asl-php # ART install -m 700 -d $RPM_BUILD_ROOT%{_aslhome}/session # fixups rm -rf $RPM_BUILD_ROOT%{_aslhome}/var %if %{with_fpm} # PHP-FPM stuff # Log install -m 755 -d $RPM_BUILD_ROOT%{_origlocalstatedir}/log/asl-php-fpm install -m 755 -d $RPM_BUILD_ROOT%{_origlocalstatedir}/run/asl-php-fpm # Config # ART install -m 755 -d $RPM_BUILD_ROOT%{_sysconfdir}/php-fpm.d install -m 644 %{SOURCE4} $RPM_BUILD_ROOT%{_sysconfdir}/php-fpm.conf install -m 644 %{SOURCE5} $RPM_BUILD_ROOT%{_sysconfdir}/php-fpm.d/www.conf mv $RPM_BUILD_ROOT%{_sysconfdir}/php-fpm.conf.default . %if 0%{?fedora} >= 15 # tmpfiles.d install -m 755 -d $RPM_BUILD_ROOT%{_sysconfdir}/tmpfiles.d install -m 644 php-fpm.tmpfiles $RPM_BUILD_ROOT%{_sysconfdir}/tmpfiles.d/asl-php-fpm.conf # install systemd unit files and scripts for handling server startup install -m 755 -d $RPM_BUILD_ROOT%{_unitdir} install -m 644 %{SOURCE6} $RPM_BUILD_ROOT%{_unitdir}/ %else # Service install -m 755 -d $RPM_BUILD_ROOT%{_originitdir} install -m 755 %{SOURCE9} $RPM_BUILD_ROOT%{_originitdir}/asl-php-fpm %endif # LogRotate install -m 755 -d $RPM_BUILD_ROOT%{_origsysconfdir}/logrotate.d install -m 644 %{SOURCE7} $RPM_BUILD_ROOT%{_origsysconfdir}/logrotate.d/asl-php-fpm %endif # Environment file install -m 755 -d $RPM_BUILD_ROOT%{_origsysconfdir}/sysconfig install -m 644 %{SOURCE8} $RPM_BUILD_ROOT%{_origsysconfdir}/sysconfig/asl-php-fpm # Fix the link (cd $RPM_BUILD_ROOT%{_bindir}; ln -sfn phar.phar phar) # Generate files lists and stub .ini files for each subpackage for mod in pgsql mysql mysqli odbc ldap snmp xmlrpc imap \ mysqlnd mysqlnd_mysql mysqlnd_mysqli pdo_mysqlnd \ mbstring gd dom xsl soap bcmath dba xmlreader xmlwriter \ pdo pdo_mysql pdo_pgsql pdo_odbc pdo_sqlite json zip \ %{?_with_oci8:oci8} %{?_with_oci8:pdo_oci} %{?_with_ibase:interbase} %{?_with_ibase:pdo_firebird} \ %if 0%{?fedora} >= 11 || 0%{?rhel} >= 6 sqlite3 \ %endif enchant phar fileinfo intl \ mcrypt tidy pdo_dblib mssql pspell curl wddx \ posix sysvshm sysvsem sysvmsg recode; do cat > $RPM_BUILD_ROOT%{_sysconfdir}/php.d/${mod}.ini < files.${mod} < $RPM_BUILD_ROOT%{_sysconfdir}/php-zts.d/${mod}.ini <> files.${mod} < files.xml # The mysql and mysqli modules are both packaged in php-mysql cat files.mysqli >> files.mysql # mysqlnd cat files.mysqlnd_mysql \ files.mysqlnd_mysqli \ files.pdo_mysqlnd \ >> files.mysqlnd # Split out the PDO modules cat files.pdo_dblib >> files.mssql cat files.pdo_mysql >> files.mysql cat files.pdo_pgsql >> files.pgsql cat files.pdo_odbc >> files.odbc %if %{with_oci8} cat files.pdo_oci >> files.oci8 %endif %if %{with_ibase} cat files.pdo_firebird >> files.interbase %endif # sysv* and posix in packaged in php-process cat files.sysv* files.posix > files.process # Package sqlite3 and pdo_sqlite with pdo; isolating the sqlite dependency # isn't useful at this time since rpm itself requires sqlite. cat files.pdo_sqlite >> files.pdo %if 0%{?fedora} >= 11 || 0%{?rhel} >= 6 cat files.sqlite3 >> files.pdo %endif # Package json, zip, curl, phar and fileinfo in -common. cat files.json files.curl files.phar files.fileinfo > files.common cat files.zip >> files.common # Install the macros file: install -d $RPM_BUILD_ROOT%{_sysconfdir}/rpm sed -e "s/@PHP_APIVER@/%{apiver}%{isasuffix}/" \ -e "s/@PHP_ZENDVER@/%{zendver}%{isasuffix}/" \ -e "s/@PHP_PDOVER@/%{pdover}%{isasuffix}/" \ -e "s/@PHPNAME@/%{phpname}/" \ < %{SOURCE3} > macros.php install -m 644 -c macros.php \ $RPM_BUILD_ROOT%{_sysconfdir}/rpm/macros.%{phpname} # Remove unpackaged files rm -rf $RPM_BUILD_ROOT%{_libdir}/%{phpname}/modules/*.a \ $RPM_BUILD_ROOT%{_libdir}/%{phpname}-zts/modules/*.a \ $RPM_BUILD_ROOT%{_bindir}/{phptar} \ $RPM_BUILD_ROOT%{peardir} \ $RPM_BUILD_ROOT%{_libdir}/libphp5.la # Remove irrelevant docs rm -f README.{Zeus,QNX,CVS-RULES} %clean [ "$RPM_BUILD_ROOT" != "/" ] && rm -rf $RPM_BUILD_ROOT rm files.* macros.php # ART #%pre common #echo -e "\nWARNING : These %{name}-* RPM are not official Fedora/Redhat build and" #echo -e "overrides the official ones. Don't file bugs on Fedora Project nor Redhat.\n" #echo -e "Use dedicated forums http://forums.famillecollet.com/\n" # #%if %{?fedora}%{!?fedora:99} <= 12 #echo -e "WARNING : Fedora %{fedora} is now EOL :" #echo -e "You should consider upgrading to a supported release.\n" #%endif %if %{with_fpm} %post fpm if [ $1 = 1 ]; then # Initial installation %if 0%{?fedora} >= 15 /bin/systemctl daemon-reload >/dev/null 2>&1 || : %else /sbin/chkconfig --add asl-php-fpm %endif fi %preun fpm if [ $1 = 0 ]; then # Package removal, not upgrade %if 0%{?fedora} >= 15 /bin/systemctl --no-reload disable asl-php-fpm.service >/dev/null 2>&1 || : /bin/systemctl stop asl-php-fpm.service >/dev/null 2>&1 || : %else /sbin/service asl-php-fpm stop >/dev/null 2>&1 /sbin/chkconfig --del asl-php-fpm %endif fi %postun fpm %if 0%{?fedora} >= 15 /bin/systemctl daemon-reload >/dev/null 2>&1 || : if [ $1 -ge 1 ]; then # Package upgrade, not uninstall /bin/systemctl try-restart asl-php-fpm.service >/dev/null 2>&1 || : fi %else if [ $1 -ge 1 ]; then /sbin/service asl-php-fpm condrestart >/dev/null 2>&1 || : fi %endif # Handle upgrading from SysV initscript to native systemd unit. # We can tell if a SysV version of php-fpm was previously installed by # checking to see if the initscript is present. %triggerun fpm -- asl-php-fpm %if 0%{?fedora} >= 15 if [ -f /etc/rc.d/init.d/asl-php-fpm ]; then # Save the current service runlevel info # User must manually run systemd-sysv-convert --apply php-fpm # to migrate them to systemd targets /usr/bin/systemd-sysv-convert --save asl-php-fpm >/dev/null 2>&1 || : # Run these because the SysV package being removed won't do them /sbin/chkconfig --del asl-php-fpm >/dev/null 2>&1 || : /bin/systemctl try-restart asl-php-fpm.service >/dev/null 2>&1 || : fi %endif %endif %post embedded -p /sbin/ldconfig %postun embedded -p /sbin/ldconfig %files %defattr(-,root,root) # ART %if %{phpname} == php %{_libdir}/httpd/modules/libphp5.so %{_libdir}/httpd/modules/libphp5-zts.so %else %{_libdir}/httpd/modules/lib%{phpname}.so %{_libdir}/httpd/modules/lib%{phpname}-zts.so %endif %attr(0770,root,apache) %dir /var/asl/session %config(noreplace) %{_sysconfdir}/httpd/conf.d/%{phpname}.conf #%{contentdir}/icons/asl-%{phpname}.gif %files common -f files.common %defattr(-,root,root) %doc CODING_STANDARDS CREDITS EXTENSIONS LICENSE NEWS README* %doc Zend/ZEND_* TSRM_LICENSE regex_COPYRIGHT %doc php.ini-* %config(noreplace) %{_sysconfdir}/php.ini %dir %{_sysconfdir}/php.d %dir %{_sysconfdir}/php-zts.d %dir %{_libdir}/%{phpname} %dir %{_libdir}/%{phpname}/modules %dir %{_libdir}/%{phpname}-zts %dir %{_libdir}/%{phpname}-zts/modules %dir %{_localstatedir}/lib/asl-php %dir %{_datadir}/%{phpname} %files cli %defattr(-,root,root) %{_bindir}/php %{_bindir}/php-cgi %{_bindir}/phar.phar %{_bindir}/phar # provides phpize here (not in -devel) for pecl command %{_bindir}/phpize # ART %if %{phpname} == php %{_mandir}/man1/php.1* %{_mandir}/man1/phpize.1* %else %exclude %{_mandir}/man1/php.1* %exclude %{_mandir}/man1/phpize.1* %endif %doc sapi/cgi/README* sapi/cli/README %if %{with_fpm} %files fpm %defattr(-,root,root) %doc php-fpm.conf.default %config(noreplace) %{_sysconfdir}/php-fpm.conf %config(noreplace) %{_sysconfdir}/php-fpm.d/www.conf %config(noreplace) %{_origsysconfdir}/logrotate.d/asl-php-fpm %config(noreplace) %{_origsysconfdir}/sysconfig/asl-php-fpm %if 0%{?fedora} >= 15 %config(noreplace) %{_sysconfdir}/tmpfiles.d/php-fpm.conf %{_unitdir}/php-fpm.service %else %{_originitdir}/asl-php-fpm %endif %{_sbindir}/php-fpm %dir %{_sysconfdir}/php-fpm.d # log owned by apache for log %attr(770,apache,root) %dir %{_localstatedir}/log/asl-php-fpm %dir %{_localstatedir}/run/asl-php-fpm %{_mandir}/man8/php-fpm.8* %{_datadir}/fpm/status.html %endif %files devel %defattr(-,root,root) %{_bindir}/php-config %{_bindir}/zts-php-config %{_bindir}/zts-phpize # usefull only to test other module during build %{_bindir}/zts-php %dir %{_includedir}/%{phpname} %{_includedir}/php %{_includedir}/%{phpname}-zts %{_libdir}/%{phpname}/build %{_libdir}/%{phpname}-zts/build # ART %if %{phpname} == php %{_mandir}/man1/php-config.1* %else %exclude %{_mandir}/man1/php-config.1* %endif %config %{_sysconfdir}/rpm/macros.%{phpname} %files embedded %defattr(-,root,root,-) %{_libdir}/libphp5.so %{_libdir}/libphp5-%{version}%{?rcver}.so %files pgsql -f files.pgsql %files mysql -f files.mysql %files odbc -f files.odbc %files imap -f files.imap %files ldap -f files.ldap %files snmp -f files.snmp %files xml -f files.xml %files xmlrpc -f files.xmlrpc %files mbstring -f files.mbstring %files gd -f files.gd %defattr(-,root,root,-) #%doc gd_README %files soap -f files.soap %files bcmath -f files.bcmath %files dba -f files.dba %files pdo -f files.pdo %files mcrypt -f files.mcrypt %files tidy -f files.tidy %files mssql -f files.mssql %files pspell -f files.pspell %files intl -f files.intl %files process -f files.process %files recode -f files.recode %files enchant -f files.enchant %files mysqlnd -f files.mysqlnd %if %{with_oci8} %files oci8 -f files.oci8 %endif %if %{with_ibase} %files interbase -f files.interbase %endif %changelog * Wed May 9 2014 Support - 5.4.3-3 - Update to 5.4.3 * Fri May 4 2014 Support - 5.4.2-2 - Update to 5.4.2 * Wed Mar 28 2012 Support - 5.4.0-0.7 - Update to 5.4.0 - Change from using libedit,to readline for el5 compatibility * Fri Jan 7 2011 Support - 5.2.17-1 - Update to 5.2.17 * Tue Dec 21 2010 Support - 5.2.16-1 - Update to 5.2.16 * Mon Dec 13 2010 Support - 5.2.15-1 - Update to 5.2.15 - Bugfix #53516 * Fri Nov 26 2010 Support - 5.2.14-1 - Update to 5.2.14 * Wed Mar 3 2010 Support - 5.2.13-2 - Update to 5.2.13 - Changed to internal pcre library * Fri Dec 18 2009 Michael T. Shinn - 5.2.12-1 - Update to 5.2.12 * Wed Sep 30 2009 Scott R. Shinn - 5.2.11-1 - Update to 5.2.11 * Thu Aug 27 2009 Scott R. Shinn - 5.2.10-6 - Bugfix #220, for el4 to remove the /var/www/icons dir and files - Deprecated odbc patch, and modified to --without-unixODBC * Fri Jul 03 2009 Scott R. Shinn - 5.2.10-0.1 - Update to 5.2.10 - Ported this to the new asl-httpd environment. A support package for ASL Web * Tue Mar 10 2009 Scott R. Shinn - 5.2.9-2 - Added mail-header, this adds a header indicating what script sent a specific email message. Useful for tracking spam * Fri Feb 27 2009 Scott R. Shinn - 5.2.9-1 - Update to 5.2.9 * Wed Dec 24 2008 Scott R. Shinn - 5.2.8-3 - Bugfix #46889