parent
b1aa1d68aa
commit
df377d4567
@ -1 +0,0 @@ |
||||
DIST php-5.6.0RC4.tar.bz2 13404463 SHA256 e8075f221abf195b3efa5beb005eb552b50a6008a1786ef1b88176b83ed4d708 SHA512 2aa1ed786ba17e34a036922d3f2822d8a5f36455c8b17c61de7acc2615b95786d8f7393b1fe0e69d6da68a48d1975ed214966ecb1608cab232d115f446f00152 WHIRLPOOL e3509c7e48b1d6b5bf85b7774d130b94c5ce62f72f41798b577f7a4011f0fa85d1274b21056ce2ec870123a44577de9d5d39c46ec3c523aaac10c9d5d269a135 |
@ -1,2 +0,0 @@ |
||||
MANPATH="/usr/lib/php5/man/" |
||||
CONFIG_PROTECT_MASK="/etc/php/cli-php5/ext-active/ /etc/php/cgi-php5/ext-active/ /etc/php/apache2-php5/ext-active/" |
@ -1,14 +0,0 @@ |
||||
<IfDefine PHP5> |
||||
# Load the module first |
||||
<IfModule !mod_php5.c> |
||||
LoadModule php5_module modules/libphp5.so |
||||
</IfModule> |
||||
|
||||
# Set it to handle the files |
||||
<IfModule mod_mime.c> |
||||
AddHandler application/x-httpd-php .php .php5 .phtml |
||||
AddHandler application/x-httpd-php-source .phps |
||||
</IfModule> |
||||
|
||||
DirectoryIndex index.php index.phtml |
||||
</IfDefine> |
@ -1,311 +0,0 @@ |
||||
;;;;;;;;;;;;;;;;;;;;; |
||||
; FPM Configuration ; |
||||
;;;;;;;;;;;;;;;;;;;;; |
||||
|
||||
; All relative paths in this configuration file are relative to PHP's install |
||||
; prefix (/usr/lib/php5.3). This prefix can be dynamicaly changed by using the |
||||
; '-p' argument from the command line. |
||||
|
||||
; Include one or more files. If glob(3) exists, it is used to include a bunch of |
||||
; files from a glob(3) pattern. This directive can be used everywhere in the |
||||
; file. |
||||
; Relative path can also be used. They will be prefixed by: |
||||
; - the global prefix if it's been set (-p arguement) |
||||
; - /usr/lib/php5.3 otherwise |
||||
;include=/etc/php/fpm-php5.3/fpm.d/*.conf |
||||
|
||||
;;;;;;;;;;;;;;;;;; |
||||
; Global Options ; |
||||
;;;;;;;;;;;;;;;;;; |
||||
|
||||
[global] |
||||
; Pid file |
||||
; Note: the default prefix is /var/lib |
||||
; Default Value: none |
||||
; Warning: pid file is overriden by the Gentoo init script. |
||||
; FPM will refuse to start if you uncomment this settingi and make use of the |
||||
; init script. |
||||
; pid = /var/run/php-fpm.pid |
||||
|
||||
; Error log file |
||||
; Note: the default prefix is /var/lib |
||||
; Default Value: log/php-fpm.log |
||||
error_log = /var/log/php-fpm.log |
||||
|
||||
; Log level |
||||
; Possible Values: alert, error, warning, notice, debug |
||||
; Default Value: notice |
||||
;log_level = notice |
||||
|
||||
; If this number of child processes exit with SIGSEGV or SIGBUS within the time |
||||
; interval set by emergency_restart_interval then FPM will restart. A value |
||||
; of '0' means 'Off'. |
||||
; Default Value: 0 |
||||
;emergency_restart_threshold = 0 |
||||
|
||||
; Interval of time used by emergency_restart_interval to determine when |
||||
; a graceful restart will be initiated. This can be useful to work around |
||||
; accidental corruptions in an accelerator's shared memory. |
||||
; Available Units: s(econds), m(inutes), h(ours), or d(ays) |
||||
; Default Unit: seconds |
||||
; Default Value: 0 |
||||
;emergency_restart_interval = 0 |
||||
|
||||
; Time limit for child processes to wait for a reaction on signals from master. |
||||
; Available units: s(econds), m(inutes), h(ours), or d(ays) |
||||
; Default Unit: seconds |
||||
; Default Value: 0 |
||||
;process_control_timeout = 0 |
||||
|
||||
; Send FPM to background. Set to 'no' to keep FPM in foreground for debugging. |
||||
; Default Value: yes |
||||
;daemonize = yes |
||||
|
||||
;;;;;;;;;;;;;;;;;;;; |
||||
; Pool Definitions ; |
||||
;;;;;;;;;;;;;;;;;;;; |
||||
|
||||
; Multiple pools of child processes may be started with different listening |
||||
; ports and different management options. The name of the pool will be |
||||
; used in logs and stats. There is no limitation on the number of pools which |
||||
; FPM can handle. Your system will tell you anyway :) |
||||
|
||||
; Start a new pool named 'www'. |
||||
; the variable $pool can we used in any directive and will be replaced by the |
||||
; pool name ('www' here) |
||||
[www] |
||||
|
||||
; Per pool prefix |
||||
; It only applies on the following directives: |
||||
; - 'slowlog' |
||||
; - 'listen' (unixsocket) |
||||
; - 'chroot' |
||||
; - 'chdir' |
||||
; - 'php_values' |
||||
; - 'php_admin_values' |
||||
; When not set, the global prefix (or /usr/lib/php5.3) applies instead. |
||||
; Note: This directive can also be relative to the global prefix. |
||||
; Default Value: none |
||||
;prefix = /path/to/pools/$pool |
||||
|
||||
; The address on which to accept FastCGI requests. |
||||
; Valid syntaxes are: |
||||
; 'ip.add.re.ss:port' - to listen on a TCP socket to a specific address on |
||||
; a specific port; |
||||
; 'port' - to listen on a TCP socket to all addresses on a |
||||
; specific port; |
||||
; '/path/to/unix/socket' - to listen on a unix socket. |
||||
; Note: This value is mandatory. |
||||
listen = 127.0.0.1:9000 |
||||
|
||||
; Set listen(2) backlog. A value of '-1' means unlimited. |
||||
; Default Value: 128 (-1 on FreeBSD and OpenBSD) |
||||
;listen.backlog = -1 |
||||
|
||||
; List of ipv4 addresses of FastCGI clients which are allowed to connect. |
||||
; Equivalent to the FCGI_WEB_SERVER_ADDRS environment variable in the original |
||||
; PHP FCGI (5.2.2+). Makes sense only with a tcp listening socket. Each address |
||||
; must be separated by a comma. If this value is left blank, connections will be |
||||
; accepted from any ip address. |
||||
; Default Value: any |
||||
;listen.allowed_clients = 127.0.0.1 |
||||
|
||||
; Set permissions for unix socket, if one is used. In Linux, read/write |
||||
; permissions must be set in order to allow connections from a web server. Many |
||||
; BSD-derived systems allow connections regardless of permissions. |
||||
; Default Values: user and group are set as the running user |
||||
; mode is set to 0666 |
||||
;listen.owner = nobody |
||||
;listen.group = nobody |
||||
;listen.mode = 0666 |
||||
|
||||
; Unix user/group of processes |
||||
; Note: The user is mandatory. If the group is not set, the default user's group |
||||
; will be used. |
||||
user = nobody |
||||
group = nobody |
||||
|
||||
; Choose how the process manager will control the number of child processes. |
||||
; Possible Values: |
||||
; static - a fixed number (pm.max_children) of child processes; |
||||
; dynamic - the number of child processes are set dynamically based on the |
||||
; following directives: |
||||
; pm.max_children - the maximum number of children that can |
||||
; be alive at the same time. |
||||
; pm.start_servers - the number of children created on startup. |
||||
; pm.min_spare_servers - the minimum number of children in 'idle' |
||||
; state (waiting to process). If the number |
||||
; of 'idle' processes is less than this |
||||
; number then some children will be created. |
||||
; pm.max_spare_servers - the maximum number of children in 'idle' |
||||
; state (waiting to process). If the number |
||||
; of 'idle' processes is greater than this |
||||
; number then some children will be killed. |
||||
; Note: This value is mandatory. |
||||
pm = dynamic |
||||
|
||||
; The number of child processes to be created when pm is set to 'static' and the |
||||
; maximum number of child processes to be created when pm is set to 'dynamic'. |
||||
; This value sets the limit on the number of simultaneous requests that will be |
||||
; served. Equivalent to the ApacheMaxClients directive with mpm_prefork. |
||||
; Equivalent to the PHP_FCGI_CHILDREN environment variable in the original PHP |
||||
; CGI. |
||||
; Note: Used when pm is set to either 'static' or 'dynamic' |
||||
; Note: This value is mandatory. |
||||
pm.max_children = 50 |
||||
|
||||
; The number of child processes created on startup. |
||||
; Note: Used only when pm is set to 'dynamic' |
||||
; Default Value: min_spare_servers + (max_spare_servers - min_spare_servers) / 2 |
||||
;pm.start_servers = 20 |
||||
|
||||
; The desired minimum number of idle server processes. |
||||
; Note: Used only when pm is set to 'dynamic' |
||||
; Note: Mandatory when pm is set to 'dynamic' |
||||
pm.min_spare_servers = 5 |
||||
|
||||
; The desired maximum number of idle server processes. |
||||
; Note: Used only when pm is set to 'dynamic' |
||||
; Note: Mandatory when pm is set to 'dynamic' |
||||
pm.max_spare_servers = 35 |
||||
|
||||
; The number of requests each child process should execute before respawning. |
||||
; This can be useful to work around memory leaks in 3rd party libraries. For |
||||
; endless request processing specify '0'. Equivalent to PHP_FCGI_MAX_REQUESTS. |
||||
; Default Value: 0 |
||||
;pm.max_requests = 500 |
||||
|
||||
; The URI to view the FPM status page. If this value is not set, no URI will be |
||||
; recognized as a status page. By default, the status page shows the following |
||||
; information: |
||||
; accepted conn - the number of request accepted by the pool; |
||||
; pool - the name of the pool; |
||||
; process manager - static or dynamic; |
||||
; idle processes - the number of idle processes; |
||||
; active processes - the number of active processes; |
||||
; total processes - the number of idle + active processes. |
||||
; max children reached - number of times, the process limit has been reached, |
||||
; when pm tries to start more children (works only for |
||||
; pm 'dynamic') |
||||
; The values of 'idle processes', 'active processes' and 'total processes' are |
||||
; updated each second. The value of 'accepted conn' is updated in real time. |
||||
; Example output: |
||||
; accepted conn: 12073 |
||||
; pool: www |
||||
; process manager: static |
||||
; idle processes: 35 |
||||
; active processes: 65 |
||||
; total processes: 100 |
||||
; max children reached: 1 |
||||
; By default the status page output is formatted as text/plain. Passing either |
||||
; 'html' or 'json' as a query string will return the corresponding output |
||||
; syntax. Example: |
||||
; http://www.foo.bar/status |
||||
; http://www.foo.bar/status?json |
||||
; http://www.foo.bar/status?html |
||||
; Note: The value must start with a leading slash (/). The value can be |
||||
; anything, but it may not be a good idea to use the .php extension or it |
||||
; may conflict with a real PHP file. |
||||
; Default Value: not set |
||||
;pm.status_path = /status |
||||
|
||||
; The ping URI to call the monitoring page of FPM. If this value is not set, no |
||||
; URI will be recognized as a ping page. This could be used to test from outside |
||||
; that FPM is alive and responding, or to |
||||
; - create a graph of FPM availability (rrd or such); |
||||
; - remove a server from a group if it is not responding (load balancing); |
||||
; - trigger alerts for the operating team (24/7). |
||||
; Note: The value must start with a leading slash (/). The value can be |
||||
; anything, but it may not be a good idea to use the .php extension or it |
||||
; may conflict with a real PHP file. |
||||
; Default Value: not set |
||||
;ping.path = /ping |
||||
|
||||
; This directive may be used to customize the response of a ping request. The |
||||
; response is formatted as text/plain with a 200 response code. |
||||
; Default Value: pong |
||||
;ping.response = pong |
||||
|
||||
; The timeout for serving a single request after which the worker process will |
||||
; be killed. This option should be used when the 'max_execution_time' ini option |
||||
; does not stop script execution for some reason. A value of '0' means 'off'. |
||||
; Available units: s(econds)(default), m(inutes), h(ours), or d(ays) |
||||
; Default Value: 0 |
||||
;request_terminate_timeout = 0 |
||||
|
||||
; The timeout for serving a single request after which a PHP backtrace will be |
||||
; dumped to the 'slowlog' file. A value of '0s' means 'off'. |
||||
; Available units: s(econds)(default), m(inutes), h(ours), or d(ays) |
||||
; Default Value: 0 |
||||
;request_slowlog_timeout = 0 |
||||
|
||||
; The log file for slow requests |
||||
; Default Value: not set |
||||
; Note: slowlog is mandatory if request_slowlog_timeout is set |
||||
;slowlog = /var/log/php-fpm-$pool.log.slow |
||||
|
||||
; Set open file descriptor rlimit. |
||||
; Default Value: system defined value |
||||
;rlimit_files = 1024 |
||||
|
||||
; Set max core size rlimit. |
||||
; Possible Values: 'unlimited' or an integer greater or equal to 0 |
||||
; Default Value: system defined value |
||||
;rlimit_core = 0 |
||||
|
||||
; Chroot to this directory at the start. This value must be defined as an |
||||
; absolute path. When this value is not set, chroot is not used. |
||||
; Note: you can prefix with '$prefix' to chroot to the pool prefix or one |
||||
; of its subdirectories. If the pool prefix is not set, the global prefix |
||||
; will be used instead. |
||||
; Note: chrooting is a great security feature and should be used whenever |
||||
; possible. However, all PHP paths will be relative to the chroot |
||||
; (error_log, sessions.save_path, ...). |
||||
; Default Value: not set |
||||
;chroot = |
||||
|
||||
; Chdir to this directory at the start. |
||||
; Note: relative path can be used. |
||||
; Default Value: current directory or / when chroot |
||||
;chdir = /var/www |
||||
|
||||
; Redirect worker stdout and stderr into main error log. If not set, stdout and |
||||
; stderr will be redirected to /dev/null according to FastCGI specs. |
||||
; Note: on highloaded environement, this can cause some delay in the page |
||||
; process time (several ms). |
||||
; Default Value: no |
||||
;catch_workers_output = yes |
||||
|
||||
; Pass environment variables like LD_LIBRARY_PATH. All $VARIABLEs are taken from |
||||
; the current environment. |
||||
; Default Value: clean env |
||||
;env[HOSTNAME] = $HOSTNAME |
||||
;env[PATH] = /usr/local/bin:/usr/bin:/bin |
||||
;env[TMP] = /tmp |
||||
;env[TMPDIR] = /tmp |
||||
;env[TEMP] = /tmp |
||||
|
||||
; Additional php.ini defines, specific to this pool of workers. These settings |
||||
; overwrite the values previously defined in the php.ini. The directives are the |
||||
; same as the PHP SAPI: |
||||
; php_value/php_flag - you can set classic ini defines which can |
||||
; be overwritten from PHP call 'ini_set'. |
||||
; php_admin_value/php_admin_flag - these directives won't be overwritten by |
||||
; PHP call 'ini_set' |
||||
; For php_*flag, valid values are on, off, 1, 0, true, false, yes or no. |
||||
|
||||
; Defining 'extension' will load the corresponding shared extension from |
||||
; extension_dir. Defining 'disable_functions' or 'disable_classes' will not |
||||
; overwrite previously defined php.ini values, but will append the new value |
||||
; instead. |
||||
|
||||
; Note: path INI options can be relative and will be expanded with the prefix |
||||
; (pool, global or /usr/lib/php5.3) |
||||
|
||||
; Default Value: nothing is defined by default except the values in php.ini and |
||||
; specified at startup with the -d argument |
||||
;php_admin_value[sendmail_path] = /usr/sbin/sendmail -t -i -f www@my.domain.com |
||||
;php_flag[display_errors] = off |
||||
;php_admin_value[error_log] = /var/log/fpm-php.www.log |
||||
;php_admin_flag[log_errors] = on |
||||
;php_admin_value[memory_limit] = 32M |
@ -1,47 +0,0 @@ |
||||
#!/sbin/runscript |
||||
|
||||
set_phpvars() { |
||||
PHPSLOT=${SVCNAME#php-fpm-} |
||||
[ ${PHPSLOT} = 'php-fpm' ] && PHPSLOT="$(eselect php show fpm)" |
||||
|
||||
PHP_FPM_CONF="/etc/php/fpm-${PHPSLOT}/php-fpm.conf" |
||||
PHP_FPM_PID="/var/run/php-fpm-${PHPSLOT}.pid" |
||||
} |
||||
|
||||
extra_commands="depend" |
||||
extra_started_commands="reload" |
||||
|
||||
depend() { |
||||
need net |
||||
use apache2 lighttpd nginx |
||||
} |
||||
|
||||
start() { |
||||
ebegin "Starting PHP FastCGI Process Manager" |
||||
set_phpvars |
||||
start-stop-daemon --start --pidfile ${PHP_FPM_PID} --exec \ |
||||
/usr/lib/${PHPSLOT}/bin/php-fpm -- -y "${PHP_FPM_CONF}" -g "${PHP_FPM_PID}" |
||||
local i=0 |
||||
local timeout=5 |
||||
while [ ! -f ${PHP_FPM_PID} ] && [ $i -le $timeout ]; do |
||||
sleep 1 |
||||
i=$(($i + 1)) |
||||
done |
||||
|
||||
[ $timeout -gt $i ] |
||||
eend $? |
||||
} |
||||
|
||||
stop() { |
||||
ebegin "Stopping PHP FastCGI Process Manager" |
||||
set_phpvars |
||||
start-stop-daemon --signal QUIT --stop --exec /usr/lib/${PHPSLOT}/bin/php-fpm --pidfile ${PHP_FPM_PID} |
||||
eend $? |
||||
} |
||||
|
||||
reload() { |
||||
ebegin "Reloading PHP FastCGI Process Manager" |
||||
set_phpvars |
||||
[ -f ${PHP_FPM_PID} ] && kill -USR2 $(cat ${PHP_FPM_PID}) |
||||
eend $? |
||||
} |
@ -1,13 +0,0 @@ |
||||
[Unit] |
||||
Description=The PHP FastCGI Process Manager |
||||
After=network.target |
||||
|
||||
[Service] |
||||
Type=simple |
||||
PIDFile=/run/php-fpm/php-fpm-%I.pid |
||||
ExecStart=/usr/libexec/php-fpm-launcher php%I -y /etc/php/fpm-php%I/php-fpm.conf --nodaemonize |
||||
ExecReload=/bin/kill -USR2 $MAINPID |
||||
PrivateTmp=true |
||||
|
||||
[Install] |
||||
WantedBy=multi-user.target |
@ -1,14 +0,0 @@ |
||||
[Unit] |
||||
Description=The PHP FastCGI Process Manager |
||||
After=network.target |
||||
|
||||
[Service] |
||||
Type=notify |
||||
PIDFile=/run/php-fpm/php-fpm-%I.pid |
||||
ExecStart=/usr/libexec/php-fpm-launcher php%I -y /etc/php/fpm-php%I/php-fpm.conf --nodaemonize |
||||
ExecReload=/bin/kill -USR2 $MAINPID |
||||
PrivateTmp=true |
||||
|
||||
[Install] |
||||
WantedBy=multi-user.target |
||||
|
@ -1,28 +0,0 @@ |
||||
<?xml version="1.0" encoding="UTF-8"?> |
||||
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> |
||||
<pkgmetadata> |
||||
<herd>php</herd> |
||||
<use> |
||||
<flag name='cli'>Enable CLI SAPI</flag> |
||||
<flag name='embed'>Enable embed SAPI</flag> |
||||
<flag name='enchant'>Add supports Enchant spelling library.</flag> |
||||
<flag name='fileinfo'>Add fileinfo extension support</flag> |
||||
<flag name='filter'>Add filter extension support</flag> |
||||
<flag name='fpm'>Enable the FastCGI Process Manager SAPI</flag> |
||||
<flag name='gd'>Adds support for gd (bundled with PHP)</flag> |
||||
<flag name='hash'>Enable the hash extension</flag> |
||||
<flag name='json'>Enable JSON support</flag> |
||||
<flag name='ldap-sasl'>Add SASL support for the PHP LDAP extension</flag> |
||||
<flag name='mysqlnd'>Use native driver for mysql, mysqli, PDO_Mysql</flag> |
||||
<flag name='libmysqlclient'>Use libmyslclient driver for mysql, mysqli, PDO_Mysql (not recommended)</flag> |
||||
<flag name='intl'>Enables the intl extension for extended internalization support</flag> |
||||
<flag name='opcache'>Enables built-in opcode cache, replacing pecl-apc et.al</flag> |
||||
<flag name='pdo'>Enable the bundled PDO extensions</flag> |
||||
<flag name='phar'>Enables the phar extension to provide phar archive support</flag> |
||||
<flag name='sqlite2'>Add sqlite2 support. Will be removed</flag> |
||||
<flag name='xmlreader'>Enable XMLReader support</flag> |
||||
<flag name='xmlwriter'>Enable XMLWriter support</flag> |
||||
<flag name='xslt'>Enable the XSL extension</flag> |
||||
<flag name='zip'>Enable ZIP file support</flag> |
||||
</use> |
||||
</pkgmetadata> |
@ -1,780 +0,0 @@ |
||||
# Copyright 1999-2014 Gentoo Foundation |
||||
# Distributed under the terms of the GNU General Public License v2 |
||||
# $Header: $ |
||||
|
||||
EAPI=5 |
||||
|
||||
inherit eutils autotools flag-o-matic versionator depend.apache apache-module db-use libtool systemd |
||||
|
||||
KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~x86-fbsd ~x86-freebsd ~amd64-linux ~ia64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos" |
||||
|
||||
function php_get_uri () |
||||
{ |
||||
case "${1}" in |
||||
"php-pre") |
||||
echo "http://downloads.php.net/tyrael/${2}" |
||||
;; |
||||
"php") |
||||
echo "http://www.php.net/distributions/${2}" |
||||
;; |
||||
"olemarkus") |
||||
echo "http://dev.gentoo.org/~olemarkus/php/${2}" |
||||
;; |
||||
"gentoo") |
||||
echo "mirror://gentoo/${2}" |
||||
;; |
||||
*) |
||||
die "unhandled case in php_get_uri" |
||||
;; |
||||
esac |
||||
} |
||||
|
||||
PHP_MV="$(get_major_version)" |
||||
SLOT="$(get_version_component_range 1-2)" |
||||
|
||||
# alias, so we can handle different types of releases (finals, rcs, alphas, |
||||
# betas, ...) w/o changing the whole ebuild |
||||
PHP_PV="${PV/_rc/RC}" |
||||
PHP_PV="${PHP_PV/_alpha/alpha}" |
||||
PHP_PV="${PHP_PV/_beta/beta}" |
||||
PHP_RELEASE="php" |
||||
[[ ${PV} == ${PV/_alpha/} ]] || PHP_RELEASE="php-pre" |
||||
[[ ${PV} == ${PV/_beta/} ]] || PHP_RELEASE="php-pre" |
||||
[[ ${PV} == ${PV/_rc/} ]] || PHP_RELEASE="php-pre" |
||||
PHP_P="${PN}-${PHP_PV}" |
||||
|
||||
PHP_SRC_URI="$(php_get_uri "${PHP_RELEASE}" "${PHP_P}.tar.bz2")" |
||||
|
||||
PHP_FPM_CONF_VER="1" |
||||
|
||||
SRC_URI="${PHP_SRC_URI}" |
||||
|
||||
DESCRIPTION="The PHP language runtime engine: CLI, CGI, FPM/FastCGI, Apache2 and embed SAPIs." |
||||
HOMEPAGE="http://php.net/" |
||||
LICENSE="PHP-3" |
||||
|
||||
S="${WORKDIR}/${PHP_P}" |
||||
|
||||
# We can build the following SAPIs in the given order |
||||
SAPIS="embed cli cgi fpm apache2" |
||||
|
||||
# SAPIs and SAPI-specific USE flags (cli SAPI is default on): |
||||
IUSE="${IUSE} |
||||
${SAPIS/cli/+cli} |
||||
threads" |
||||
|
||||
IUSE="${IUSE} bcmath berkdb bzip2 calendar cdb cjk |
||||
crypt +ctype curl debug |
||||
enchant exif frontbase +fileinfo +filter firebird |
||||
flatfile ftp gd gdbm gmp +hash +iconv imap inifile |
||||
intl iodbc ipv6 +json kerberos ldap ldap-sasl libedit mhash |
||||
mssql mysql libmysqlclient mysqli nls |
||||
oci8-instant-client odbc +opcache pcntl pdo +phar +posix postgres qdbm |
||||
readline recode selinux +session sharedmem |
||||
+simplexml snmp soap sockets spell sqlite ssl |
||||
sybase-ct sysvipc systemd tidy +tokenizer truetype unicode wddx |
||||
+xml xmlreader xmlwriter xmlrpc xpm xslt zip zlib" |
||||
|
||||
DEPEND=" |
||||
>=app-admin/eselect-php-0.7.1-r3[apache2?,fpm?] |
||||
>=dev-libs/libpcre-8.32[unicode] |
||||
apache2? ( www-servers/apache[threads=] ) |
||||
berkdb? ( =sys-libs/db-4* ) |
||||
bzip2? ( app-arch/bzip2 ) |
||||
cdb? ( || ( dev-db/cdb dev-db/tinycdb ) ) |
||||
cjk? ( !gd? ( |
||||
virtual/jpeg:0 |
||||
media-libs/libpng:0= |
||||
sys-libs/zlib |
||||
) ) |
||||
crypt? ( >=dev-libs/libmcrypt-2.4 ) |
||||
curl? ( >=net-misc/curl-7.10.5 ) |
||||
enchant? ( app-text/enchant ) |
||||
exif? ( !gd? ( |
||||
virtual/jpeg:0 |
||||
media-libs/libpng:0= |
||||
sys-libs/zlib |
||||
) ) |
||||
firebird? ( dev-db/firebird ) |
||||
gd? ( virtual/jpeg:0 media-libs/libpng:0= sys-libs/zlib ) |
||||
gdbm? ( >=sys-libs/gdbm-1.8.0 ) |
||||
gmp? ( >=dev-libs/gmp-4.1.2 ) |
||||
iconv? ( virtual/libiconv ) |
||||
imap? ( virtual/imap-c-client[ssl=] ) |
||||
intl? ( dev-libs/icu:= ) |
||||
iodbc? ( dev-db/libiodbc ) |
||||
kerberos? ( virtual/krb5 ) |
||||
ldap? ( >=net-nds/openldap-1.2.11 ) |
||||
ldap-sasl? ( dev-libs/cyrus-sasl >=net-nds/openldap-1.2.11 ) |
||||
libedit? ( || ( sys-freebsd/freebsd-lib dev-libs/libedit ) ) |
||||
mssql? ( dev-db/freetds[mssql] ) |
||||
libmysqlclient? ( |
||||
mysql? ( virtual/mysql ) |
||||
mysqli? ( >=virtual/mysql-4.1 ) |
||||
) |
||||
nls? ( sys-devel/gettext ) |
||||
oci8-instant-client? ( dev-db/oracle-instantclient-basic ) |
||||
odbc? ( >=dev-db/unixODBC-1.8.13 ) |
||||
postgres? ( dev-db/postgresql-base ) |
||||
qdbm? ( dev-db/qdbm ) |
||||
readline? ( sys-libs/readline ) |
||||
recode? ( app-text/recode ) |
||||
sharedmem? ( dev-libs/mm ) |
||||
simplexml? ( >=dev-libs/libxml2-2.6.8 ) |
||||
snmp? ( >=net-analyzer/net-snmp-5.2 ) |
||||
soap? ( >=dev-libs/libxml2-2.6.8 ) |
||||
spell? ( >=app-text/aspell-0.50 ) |
||||
sqlite? ( >=dev-db/sqlite-3.7.6.3 ) |
||||
ssl? ( >=dev-libs/openssl-0.9.7 ) |
||||
sybase-ct? ( dev-db/freetds ) |
||||
tidy? ( app-text/htmltidy ) |
||||
truetype? ( |
||||
=media-libs/freetype-2* |
||||
>=media-libs/t1lib-5.0.0 |
||||
!gd? ( |
||||
virtual/jpeg:0 media-libs/libpng:0= sys-libs/zlib ) |
||||
) |
||||
unicode? ( dev-libs/oniguruma ) |
||||
wddx? ( >=dev-libs/libxml2-2.6.8 ) |
||||
xml? ( >=dev-libs/libxml2-2.6.8 ) |
||||
xmlrpc? ( >=dev-libs/libxml2-2.6.8 virtual/libiconv ) |
||||
xmlreader? ( >=dev-libs/libxml2-2.6.8 ) |
||||
xmlwriter? ( >=dev-libs/libxml2-2.6.8 ) |
||||
xpm? ( |
||||
x11-libs/libXpm |
||||
virtual/jpeg:0 |
||||
media-libs/libpng:0= sys-libs/zlib |
||||
) |
||||
xslt? ( dev-libs/libxslt >=dev-libs/libxml2-2.6.8 ) |
||||
zip? ( sys-libs/zlib ) |
||||
zlib? ( sys-libs/zlib ) |
||||
virtual/mta |
||||
" |
||||
|
||||
php="=${CATEGORY}/${PF}" |
||||
|
||||
REQUIRED_USE=" |
||||
truetype? ( gd ) |
||||
cjk? ( gd ) |
||||
exif? ( gd ) |
||||
|
||||
xpm? ( gd ) |
||||
gd? ( zlib ) |
||||
simplexml? ( xml ) |
||||
soap? ( xml ) |
||||
wddx? ( xml ) |
||||
xmlrpc? ( || ( xml iconv ) ) |
||||
xmlreader? ( xml ) |
||||
xslt? ( xml ) |
||||
ldap-sasl? ( ldap ) |
||||
mhash? ( hash ) |
||||
phar? ( hash ) |
||||
libmysqlclient? ( || ( |
||||
mysql |
||||
mysqli |
||||
pdo |
||||
) ) |
||||
|
||||
qdbm? ( !gdbm ) |
||||
readline? ( !libedit ) |
||||
recode? ( !imap !mysql !mysqli ) |
||||
sharedmem? ( !threads ) |
||||
|
||||
!cli? ( !cgi? ( !fpm? ( !apache2? ( !embed? ( cli ) ) ) ) )" |
||||
|
||||
RDEPEND="${DEPEND}" |
||||
|
||||
RDEPEND="${RDEPEND} |
||||
fpm? ( |
||||
selinux? ( sec-policy/selinux-phpfpm ) |
||||
systemd? ( sys-apps/systemd ) )" |
||||
|
||||
DEPEND="${DEPEND} |
||||
sys-devel/flex |
||||
>=sys-devel/m4-1.4.3 |
||||
>=sys-devel/libtool-1.5.18" |
||||
|
||||
# Allow users to install production version if they want to |
||||
|
||||
case "${PHP_INI_VERSION}" in |
||||
production|development) |
||||
;; |
||||
*) |
||||
PHP_INI_VERSION="development" |
||||
;; |
||||
esac |
||||
|
||||
PHP_INI_UPSTREAM="php.ini-${PHP_INI_VERSION}" |
||||
PHP_INI_FILE="php.ini" |
||||
|
||||
want_apache |
||||
|
||||
pkg_setup() { |
||||
depend.apache_pkg_setup |
||||
} |
||||
|
||||
php_install_ini() { |
||||
local phpsapi="${1}" |
||||
|
||||
# work out where we are installing the ini file |
||||
php_set_ini_dir "${phpsapi}" |
||||
|
||||
local phpinisrc="${PHP_INI_UPSTREAM}-${phpsapi}" |
||||
cp "${PHP_INI_UPSTREAM}" "${phpinisrc}" |
||||
|
||||
# default to /tmp for save_path, bug #282768 |
||||
sed -e 's|^;session.save_path .*$|session.save_path = "'"${EPREFIX}"'/tmp"|g' -i "${phpinisrc}" |
||||
|
||||
# Set the extension dir |
||||
sed -e "s|^extension_dir .*$|extension_dir = ${extension_dir}|g" -i "${phpinisrc}" |
||||
|
||||
# Set the include path to point to where we want to find PEAR packages |
||||
sed -e 's|^;include_path = ".:/php/includes".*|include_path = ".:'"${EPREFIX}"'/usr/share/php'${PHP_MV}':'"${EPREFIX}"'/usr/share/php"|' -i "${phpinisrc}" |
||||
|
||||
dodir "${PHP_INI_DIR#${EPREFIX}}" |
||||
insinto "${PHP_INI_DIR#${EPREFIX}}" |
||||
newins "${phpinisrc}" "${PHP_INI_FILE}" |
||||
|
||||
elog "Installing php.ini for ${phpsapi} into ${PHP_INI_DIR#${EPREFIX}}" |
||||
elog |
||||
|
||||
dodir "${PHP_EXT_INI_DIR#${EPREFIX}}" |
||||
dodir "${PHP_EXT_INI_DIR_ACTIVE#${EPREFIX}}" |
||||
|
||||
if use_if_iuse opcache; then |
||||
elog "Adding opcache to $PHP_EXT_INI_DIR" |
||||
echo "zend_extension=${PHP_DESTDIR}/$(get_libdir)/opcache.so" >> "${D}/${PHP_EXT_INI_DIR}"/opcache.ini |
||||
dosym "${PHP_EXT_INI_DIR#${EPREFIX}}/opcache.ini" "${PHP_EXT_INI_DIR_ACTIVE#${EPREFIX}}/opcache.ini" |
||||
fi |
||||
|
||||
# SAPI-specific handling |
||||
|
||||
if [[ "${sapi}" == "fpm" ]] ; then |
||||
[[ -z ${PHP_FPM_CONF_VER} ]] && PHP_FPM_CONF_VER=0 |
||||
einfo "Installing FPM CGI config file php-fpm.conf" |
||||
insinto "${PHP_INI_DIR#${EPREFIX}}" |
||||
newins "${FILESDIR}/php-fpm-r${PHP_FPM_CONF_VER}.conf" php-fpm.conf |
||||
|
||||
# Remove bogus /etc/php-fpm.conf.default (bug 359906) |
||||
[[ -f "${ED}/etc/php-fpm.conf.default" ]] && rm "${ED}/etc/php-fpm.conf.default" |
||||
fi |
||||
|
||||
# Install PHP ini files into /usr/share/php |
||||
|
||||
dodoc php.ini-development |
||||
dodoc php.ini-production |
||||
|
||||
} |
||||
|
||||
php_set_ini_dir() { |
||||
PHP_INI_DIR="${EPREFIX}/etc/php/${1}-php${SLOT}" |
||||
PHP_EXT_INI_DIR="${PHP_INI_DIR}/ext" |
||||
PHP_EXT_INI_DIR_ACTIVE="${PHP_INI_DIR}/ext-active" |
||||
} |
||||
|
||||
src_prepare() { |
||||
# USE=sharedmem (session/mod_mm to be exact) tries to mmap() this path |
||||
# ([empty session.save_path]/session_mm_[sapi][gid].sem) |
||||
# there is no easy way to circumvent that, all php calls during |
||||
# install use -n, so no php.ini file will be used. |
||||
# As such, this is the easiest way to get around |
||||
addpredict /session_mm_cli250.sem |
||||
addpredict /session_mm_cli0.sem |
||||
|
||||
# Change PHP branding |
||||
# Get the alpha/beta/rc version |
||||
sed -re "s|^(PHP_EXTRA_VERSION=\").*(\")|\1-pl${PR/r/}-gentoo\2|g" \ |
||||
-i configure.in || die "Unable to change PHP branding" |
||||
|
||||
# Patch PHP to show Gentoo as the server platform |
||||
sed -e 's/PHP_UNAME=`uname -a | xargs`/PHP_UNAME=`uname -s -n -r -v | xargs`/g' \ |
||||
-i configure.in || die "Failed to fix server platform name" |
||||
|
||||
# Prevent PHP from activating the Apache config, |
||||
# as we will do that ourselves |
||||
sed -i \ |
||||
-e "s,-i -a -n php${PHP_MV},-i -n php${PHP_MV},g" \ |
||||
-e "s,-i -A -n php${PHP_MV},-i -n php${PHP_MV},g" \ |
||||
configure sapi/apache2filter/config.m4 sapi/apache2handler/config.m4 |
||||
|
||||
# Patch PHP to support heimdal instead of mit-krb5 |
||||
if has_version "app-crypt/heimdal" ; then |
||||
sed -e 's|gssapi_krb5|gssapi|g' -i acinclude.m4 \ |
||||
|| die "Failed to fix heimdal libname" |
||||
sed -e 's|PHP_ADD_LIBRARY(k5crypto, 1, $1)||g' -i acinclude.m4 \ |
||||
|| die "Failed to fix heimdal crypt library reference" |
||||
fi |
||||
|
||||
#Add user patches #357637 |
||||
epatch_user |
||||
|
||||
#force rebuilding aclocal.m4 |
||||
rm aclocal.m4 |
||||
eautoreconf |
||||
|
||||
if [[ ${CHOST} == *-darwin* ]] ; then |
||||
# http://bugs.php.net/bug.php?id=48795, bug #343481 |
||||
sed -i -e '/BUILD_CGI="\\$(CC)/s/CC/CXX/' configure || die |
||||
fi |
||||
} |
||||
|
||||
src_configure() { |
||||
addpredict /usr/share/snmp/mibs/.index |
||||
addpredict /var/lib/net-snmp/mib_indexes |
||||
|
||||
PHP_DESTDIR="${EPREFIX}/usr/$(get_libdir)/php${SLOT}" |
||||
|
||||
# This is a global variable and should be in caps. It isn't because the |
||||
# phpconfutils eclass relies on exactly this name... |
||||
# for --with-libdir see bug #327025 |
||||
my_conf=" |
||||
--prefix="${PHP_DESTDIR}" |
||||
--mandir="${PHP_DESTDIR}"/man |
||||
--infodir="${PHP_DESTDIR}"/info |
||||
--libdir="${PHP_DESTDIR}"/lib |
||||
--with-libdir=$(get_libdir) |
||||
--without-pear |
||||
$(use_enable threads maintainer-zts)" |
||||
|
||||
# extension USE flag shared |
||||
my_conf+=" |
||||
$(use_enable bcmath bcmath ) |
||||
$(use_with bzip2 bz2 "${EPREFIX}"/usr) |
||||
$(use_enable calendar calendar ) |
||||
$(use_enable ctype ctype ) |
||||
$(use_with curl curl "${EPREFIX}"/usr) |
||||
$(use_enable xml dom ) |
||||
$(use_with enchant enchant "${EPREFIX}"/usr) |
||||
$(use_enable exif exif ) |
||||
$(use_enable fileinfo fileinfo ) |
||||
$(use_enable filter filter ) |
||||
$(use_enable ftp ftp ) |
||||
$(use_with nls gettext "${EPREFIX}"/usr) |
||||
$(use_with gmp gmp "${EPREFIX}"/usr) |
||||
$(use_enable hash hash ) |
||||
$(use_with mhash mhash "${EPREFIX}"/usr) |
||||
$(use_with iconv iconv $(use elibc_glibc || echo "${EPREFIX}"/usr)) |
||||
$(use_enable intl intl ) |
||||
$(use_enable ipv6 ipv6 ) |
||||
$(use_enable json json ) |
||||
$(use_with kerberos kerberos "${EPREFIX}"/usr) |
||||
$(use_enable xml libxml ) |
||||
$(use_with xml libxml-dir "${EPREFIX}"/usr) |
||||
$(use_enable unicode mbstring ) |
||||
$(use_with crypt mcrypt "${EPREFIX}"/usr) |
||||
$(use_with mssql mssql "${EPREFIX}"/usr) |
||||
$(use_with unicode onig "${EPREFIX}"/usr) |
||||
$(use_with ssl openssl "${EPREFIX}"/usr) |
||||
$(use_with ssl openssl-dir "${EPREFIX}"/usr) |
||||
$(use_enable pcntl pcntl ) |
||||
$(use_enable phar phar ) |
||||
$(use_enable pdo pdo ) |
||||
$(use_enable opcache opcache ) |
||||
$(use_with postgres pgsql "${EPREFIX}"/usr) |
||||
$(use_enable posix posix ) |
||||
$(use_with spell pspell "${EPREFIX}"/usr) |
||||
$(use_with recode recode "${EPREFIX}"/usr) |
||||
$(use_enable simplexml simplexml ) |
||||
$(use_enable sharedmem shmop ) |
||||
$(use_with snmp snmp "${EPREFIX}"/usr) |
||||
$(use_enable soap soap ) |
||||
$(use_enable sockets sockets ) |
||||
$(use_with sqlite sqlite3 "${EPREFIX}"/usr) |
||||
$(use_with sybase-ct sybase-ct "${EPREFIX}"/usr) |
||||
$(use_enable sysvipc sysvmsg ) |
||||
$(use_enable sysvipc sysvsem ) |
||||
$(use_enable sysvipc sysvshm ) |
||||
$(use_with systemd fpm-systemd) |
||||
$(use_with tidy tidy "${EPREFIX}"/usr) |
||||
$(use_enable tokenizer tokenizer ) |
||||
$(use_enable wddx wddx ) |
||||
$(use_enable xml xml ) |
||||
$(use_enable xmlreader xmlreader ) |
||||
$(use_enable xmlwriter xmlwriter ) |
||||
$(use_with xmlrpc xmlrpc) |
||||
$(use_with xslt xsl "${EPREFIX}"/usr) |
||||
$(use_enable zip zip ) |
||||
$(use_with zlib zlib "${EPREFIX}"/usr) |
||||
$(use_enable debug debug )" |
||||
|
||||
# DBA support |
||||
if use cdb || use berkdb || use flatfile || use gdbm || use inifile \ |
||||
|| use qdbm ; then |
||||
my_conf="${my_conf} --enable-dba${shared}" |
||||
fi |
||||
|
||||
# DBA drivers support |
||||
my_conf+=" |
||||
$(use_with cdb cdb) |
||||
$(use_with berkdb db4 ${EPREFIX}/usr) |
||||
$(use_enable flatfile flatfile ) |
||||
$(use_with gdbm gdbm ${EPREFIX}/usr) |
||||
$(use_enable inifile inifile ) |
||||
$(use_with qdbm qdbm ${EPREFIX}/usr)" |
||||
|
||||
# Support for the GD graphics library |
||||
my_conf+=" |
||||
$(use_with truetype freetype-dir ${EPREFIX}/usr) |
||||
$(use_with truetype t1lib ${EPREFIX}/usr) |
||||
$(use_enable cjk gd-jis-conv ) |
||||
$(use_with gd jpeg-dir ${EPREFIX}/usr) |
||||
$(use_with gd png-dir ${EPREFIX}/usr) |
||||
$(use_with xpm xpm-dir ${EPREFIX}/usr)" |
||||
# enable gd last, so configure can pick up the previous settings |
||||
my_conf+=" |
||||
$(use_with gd gd)" |
||||
|
||||
# IMAP support |
||||
if use imap ; then |
||||
my_conf+=" |
||||
$(use_with imap imap ${EPREFIX}/usr) |
||||
$(use_with ssl imap-ssl ${EPREFIX}/usr)" |
||||
fi |
||||
|
||||
# Interbase/firebird support |
||||
|
||||
if use firebird ; then |
||||
my_conf+=" |
||||
$(use_with firebird interbase ${EPREFIX}/usr)" |
||||
fi |
||||
|
||||
# LDAP support |
||||
if use ldap ; then |
||||
my_conf+=" |
||||
$(use_with ldap ldap ${EPREFIX}/usr) |
||||
$(use_with ldap-sasl ldap-sasl ${EPREFIX}/usr)" |
||||
fi |
||||
|
||||
# MySQL support |
||||
local mysqllib="mysqlnd" |
||||
local mysqlilib="mysqlnd" |
||||
use libmysqlclient && mysqllib="${EPREFIX}/usr" |
||||
use libmysqlclient && mysqlilib="${EPREFIX}/usr/bin/mysql_config" |
||||
|
||||
my_conf+=" $(use_with mysql mysql $mysqllib)" |
||||
my_conf+=" $(use_with mysqli mysqli $mysqlilib)" |
||||
|
||||
local mysqlsock=" $(use_with mysql mysql-sock ${EPREFIX}/var/run/mysqld/mysqld.sock)" |
||||
if use mysql ; then |
||||
my_conf+="${mysqlsock}" |
||||
elif use mysqli ; then |
||||
my_conf+="${mysqlsock}" |
||||
fi |
||||
|
||||
# ODBC support |
||||
if use odbc ; then |
||||
my_conf+=" |
||||
$(use_with odbc unixODBC ${EPREFIX}/usr)" |
||||
fi |
||||
|
||||
if use iodbc ; then |
||||
my_conf+=" |
||||
$(use_with iodbc iodbc ${EPREFIX}/usr)" |
||||
fi |
||||
|
||||
# Oracle support |
||||
if use oci8-instant-client ; then |
||||
my_conf+=" |
||||
$(use_with oci8-instant-client oci8)" |
||||
fi |
||||
|
||||
# PDO support |
||||
if use pdo ; then |
||||
my_conf+=" |
||||
$(use_with mssql pdo-dblib ) |
||||
$(use_with mysql pdo-mysql ${mysqllib}) |
||||
$(use_with postgres pdo-pgsql ) |
||||
$(use_with sqlite pdo-sqlite ${EPREFIX}/usr) |
||||
$(use_with odbc pdo-odbc unixODBC,${EPREFIX}/usr)" |
||||
if use oci8-instant-client ; then |
||||
my_conf+=" |
||||
$(use_with oci8-instant-client pdo-oci)" |
||||
fi |
||||
fi |
||||
|
||||
# readline/libedit support |
||||
my_conf+=" |
||||
$(use_with readline readline ${EPREFIX}/usr) |
||||
$(use_with libedit libedit ${EPREFIX}/usr)" |
||||
|
||||
# Session support |
||||
if use session ; then |
||||
my_conf+=" |
||||
$(use_with sharedmem mm ${EPREFIX}/usr)" |
||||
else |
||||
my_conf+=" |
||||
$(use_enable session session )" |
||||
fi |
||||
|
||||
# Use pic for shared modules such as apache2's mod_php |
||||
my_conf="${my_conf} --with-pic" |
||||
|
||||
# we use the system copy of pcre |
||||
# --with-pcre-regex affects ext/pcre |
||||
# --with-pcre-dir affects ext/filter and ext/zip |
||||
my_conf="${my_conf} --with-pcre-regex=${EPREFIX}/usr --with-pcre-dir=${EPREFIX}/usr" |
||||
|
||||
# Catch CFLAGS problems |
||||
# Fixes bug #14067. |
||||
# Changed order to run it in reverse for bug #32022 and #12021. |
||||
replace-cpu-flags "k6*" "i586" |
||||
|
||||
# Support user-passed configuration parameters |
||||
my_conf="${my_conf} ${EXTRA_ECONF:-}" |
||||
|
||||
# Support the Apache2 extras, they must be set globally for all |
||||
# SAPIs to work correctly, especially for external PHP extensions |
||||
|
||||
mkdir -p "${WORKDIR}/sapis-build" |
||||
for one_sapi in $SAPIS ; do |
||||
use "${one_sapi}" || continue |
||||
php_set_ini_dir "${one_sapi}" |
||||
|
||||
cp -r "${S}" "${WORKDIR}/sapis-build/${one_sapi}" |
||||
cd "${WORKDIR}/sapis-build/${one_sapi}" |
||||
|
||||
sapi_conf="${my_conf} --with-config-file-path=${PHP_INI_DIR} |
||||
--with-config-file-scan-dir=${PHP_EXT_INI_DIR_ACTIVE}" |
||||
|
||||
for sapi in $SAPIS ; do |
||||
case "$sapi" in |
||||
cli|cgi|embed|fpm) |
||||
if [[ "${one_sapi}" == "${sapi}" ]] ; then |
||||
sapi_conf="${sapi_conf} --enable-${sapi}" |
||||
else |
||||
sapi_conf="${sapi_conf} --disable-${sapi}" |
||||
fi |
||||
;; |
||||
|
||||
apache2) |
||||
if [[ "${one_sapi}" == "${sapi}" ]] ; then |
||||
sapi_conf="${sapi_conf} --with-apxs2=${EPREFIX}/usr/sbin/apxs" |
||||
else |
||||
sapi_conf="${sapi_conf} --without-apxs2" |
||||
fi |
||||
;; |
||||
esac |
||||
done |
||||
|
||||
econf ${sapi_conf} |
||||
done |
||||
} |
||||
|
||||
src_compile() { |
||||
# snmp seems to run during src_compile, too (bug #324739) |
||||
addpredict /usr/share/snmp/mibs/.index |
||||
addpredict /var/lib/net-snmp/mib_indexes |
||||
|
||||
for sapi in ${SAPIS} ; do |
||||
if use "${sapi}"; then |
||||
cd "${WORKDIR}/sapis-build/$sapi" || "Failed to change dir to ${WORKDIR}/sapis-build/$1" |
||||
emake || die "emake failed" |
||||
fi |
||||
done |
||||
} |
||||
|
||||
src_install() { |
||||
# see bug #324739 for what happens when we don't have that |
||||
addpredict /usr/share/snmp/mibs/.index |
||||
|
||||
# grab the first SAPI that got built and install common files from there |
||||
local first_sapi="" |
||||
for sapi in $SAPIS ; do |
||||
if use $sapi ; then |
||||
first_sapi=$sapi |
||||
break |
||||
fi |
||||
done |
||||
|
||||
# Makefile forgets to create this before trying to write to it... |
||||
dodir "${PHP_DESTDIR#${EPREFIX}}/bin" |
||||
|
||||
# Install php environment (without any sapis) |
||||
cd "${WORKDIR}/sapis-build/$first_sapi" |
||||
emake INSTALL_ROOT="${D}" \ |
||||
install-build install-headers install-programs \ |
||||
|| die "emake install failed" |
||||
|
||||
local extension_dir="$("${ED}/${PHP_DESTDIR#${EPREFIX}}/bin/php-config" --extension-dir)" |
||||
|
||||
# Create the directory where we'll put version-specific php scripts |
||||
keepdir /usr/share/php${PHP_MV} |
||||
|
||||
local sapi="", file="" |
||||
local sapi_list="" |
||||
|
||||
for sapi in ${SAPIS}; do |
||||
if use "${sapi}" ; then |
||||
einfo "Installing SAPI: ${sapi}" |
||||
cd "${WORKDIR}/sapis-build/${sapi}" |
||||
|
||||
if [[ "${sapi}" == "apache2" ]] ; then |
||||
# We're specifically not using emake install-sapi as libtool |
||||
# may cause unnecessary relink failures (see bug #351266) |
||||
insinto "${PHP_DESTDIR#${EPREFIX}}/apache2/" |
||||
newins ".libs/libphp5$(get_libname)" "libphp${PHP_MV}$(get_libname)" |
||||
keepdir "/usr/$(get_libdir)/apache2/modules" |
||||
else |
||||
# needed each time, php_install_ini would reset it |
||||
local dest="${PHP_DESTDIR#${EPREFIX}}" |
||||
into "${dest}" |
||||
case "$sapi" in |
||||
cli) |
||||
source="sapi/cli/php" |
||||
;; |
||||
cgi) |
||||
source="sapi/cgi/php-cgi" |
||||
;; |
||||
fpm) |
||||
source="sapi/fpm/php-fpm" |
||||
;; |
||||
embed) |
||||
source="libs/libphp${PHP_MV}$(get_libname)" |
||||
;; |
||||
*) |
||||
die "unhandled sapi in src_install" |
||||
;; |
||||
esac |
||||
|
||||
if [[ "${source}" == *"$(get_libname)" ]]; then |
||||
dolib.so "${source}" || die "Unable to install ${sapi} sapi" |
||||
else |
||||
dobin "${source}" || die "Unable to install ${sapi} sapi" |
||||
local name="$(basename ${source})" |
||||
dosym "${dest}/bin/${name}" "/usr/bin/${name}${SLOT}" |
||||
fi |
||||
fi |
||||
|
||||
php_install_ini "${sapi}" |
||||
|
||||
# construct correct SAPI string for php-config |
||||
# thanks to ferringb for the bash voodoo |
||||
if [[ "${sapi}" == "apache2" ]]; then |
||||
sapi_list="${sapi_list:+${sapi_list} }apache2handler" |
||||
else |
||||
sapi_list="${sapi_list:+${sapi_list} }${sapi}" |
||||
fi |
||||
fi |
||||
done |
||||
|
||||
# Installing opcache module |
||||
if use_if_iuse opcache ; then |
||||
dolib.so "modules/opcache$(get_libname)" || die "Unable to install opcache module" |
||||
fi |
||||
|
||||
# Install env.d files |
||||
newenvd "${FILESDIR}/20php5-envd" \ |
||||
"20php${SLOT}" |
||||
sed -e "s|/lib/|/$(get_libdir)/|g" -i \ |
||||
"${ED}/etc/env.d/20php${SLOT}" |
||||
sed -e "s|php5|php${SLOT}|g" -i \ |
||||
"${ED}/etc/env.d/20php${SLOT}" |
||||
|
||||
# set php-config variable correctly (bug #278439) |
||||
sed -e "s:^\(php_sapis=\)\".*\"$:\1\"${sapi_list}\":" -i \ |
||||
"${ED}/usr/$(get_libdir)/php${SLOT}/bin/php-config" |
||||
|
||||
if use fpm ; then |
||||
if use systemd; then |
||||
systemd_newunit "${FILESDIR}/php-fpm_at.service" "php-fpm@${SLOT}.service" |
||||
else |
||||
systemd_newunit "${FILESDIR}/php-fpm_at-simple.service" "php-fpm@${SLOT}.service" |
||||
fi |
||||
fi |
||||
} |
||||
|
||||
src_test() { |
||||
echo ">>> Test phase [test]: ${CATEGORY}/${PF}" |
||||
PHP_BIN="${WORKDIR}/sapis-build/cli/sapi/cli/php" |
||||
if [[ ! -x "${PHP_BIN}" ]] ; then |
||||
ewarn "Test phase requires USE=cli, skipping" |
||||
return |
||||
else |
||||
export TEST_PHP_EXECUTABLE="${PHP_BIN}" |
||||
fi |
||||
|
||||
if [[ -x "${WORKDIR}/sapis/cgi/php-cgi" ]] ; then |
||||
export TEST_PHP_CGI_EXECUTABLE="${WORKDIR}/sapis/cgi/php-cgi" |
||||
fi |
||||
|
||||
REPORT_EXIT_STATUS=1 "${TEST_PHP_EXECUTABLE}" -n -d "session.save_path=${T}" \ |
||||
"${WORKDIR}/sapis-build/cli/run-tests.php" -n -q -d "session.save_path=${T}" |
||||
|
||||
for name in ${EXPECTED_TEST_FAILURES}; do |
||||
mv "${name}.out" "${name}.out.orig" 2>/dev/null |
||||
done |
||||
|
||||
local failed="$(find -name '*.out')" |
||||
if [[ ${failed} != "" ]] ; then |
||||
ewarn "The following test cases failed unexpectedly:" |
||||
for name in ${failed}; do |
||||
ewarn " ${name/.out/}" |
||||
done |
||||
else |
||||
einfo "No unexpected test failures, all fine" |
||||
fi |
||||
|
||||
if [[ ${PHP_SHOW_UNEXPECTED_TEST_PASS} == "1" ]] ; then |
||||
local passed="" |
||||
for name in ${EXPECTED_TEST_FAILURES}; do |
||||
[[ -f "${name}.diff" ]] && continue |
||||
passed="${passed} ${name}" |
||||
done |
||||
if [[ ${passed} != "" ]] ; then |
||||
einfo "The following test cases passed unexpectedly:" |
||||
for name in ${passed}; do |
||||
ewarn " ${passed}" |
||||
done |
||||
else |
||||
einfo "None of the known-to-fail tests passed, all fine" |
||||
fi |
||||
fi |
||||
} |
||||
|
||||
pkg_postinst() { |
||||
# Output some general info to the user |
||||
if use apache2 ; then |
||||
APACHE2_MOD_DEFINE="PHP5" |
||||
APACHE2_MOD_CONF="70_mod_php5" |
||||
apache-module_pkg_postinst |
||||
fi |
||||
|
||||
# Create the symlinks for php |
||||
for m in ${SAPIS}; do |
||||
[[ ${m} == 'embed' ]] && continue; |
||||
if use $m ; then |
||||
local ci=$(eselect php show $m) |
||||
if [[ -z $ci ]]; then |
||||
eselect php set $m php${SLOT} |
||||
einfo "Switched ${m} to use php:${SLOT}" |
||||
einfo |
||||
elif [[ $ci != "php${SLOT}" ]] ; then |
||||
elog "To switch $m to use php:${SLOT}, run" |
||||
elog " eselect php set $m php${SLOT}" |
||||
elog |
||||
fi |
||||
fi |
||||
done |
||||
|
||||
elog "Make sure that PHP_TARGETS in ${EPREFIX}/etc/make.conf includes php${SLOT/./-} in order" |
||||
elog "to compile extensions for the ${SLOT} ABI" |
||||
elog |
||||
if ! use readline && use cli ; then |
||||
ewarn "Note that in order to use php interactivly, you need to enable" |
||||
ewarn "the readline USE flag or php -a will hang" |
||||
fi |
||||
elog |
||||
elog "This ebuild installed a version of php.ini based on php.ini-${PHP_INI_VERSION} version." |
||||
elog "You can chose which version of php.ini to install by default by setting PHP_INI_VERSION to either" |
||||
elog "'production' or 'development' in ${EPREFIX}/etc/make.conf" |
||||
elog "Both versions of php.ini can be found in ${EPREFIX}/usr/share/doc/${PF}" |
||||
|
||||
elog |
||||
elog "For more details on how minor version slotting works (PHP_TARGETS) please read the upgrade guide:" |
||||
elog "http://www.gentoo.org/proj/en/php/php-upgrading.xml" |
||||
elog |
||||
} |
||||
|
||||
pkg_prerm() { |
||||
eselect php cleanup |
||||
} |
Loading…
Reference in new issue