diff options
Diffstat (limited to 'dev-lang')
-rw-r--r-- | dev-lang/php/ChangeLog | 9 | ||||
-rw-r--r-- | dev-lang/php/Manifest | 24 | ||||
-rw-r--r-- | dev-lang/php/files/eblits/src_install-v2.eblit | 8 | ||||
-rw-r--r-- | dev-lang/php/files/php-fpm-r0.conf | 310 | ||||
-rw-r--r-- | dev-lang/php/files/php-fpm-r1.conf | 311 | ||||
-rwxr-xr-x | dev-lang/php/files/php-fpm-r4.init | 41 | ||||
-rw-r--r-- | dev-lang/php/php-5.3.7_rc3.ebuild | 354 |
7 files changed, 1037 insertions, 20 deletions
diff --git a/dev-lang/php/ChangeLog b/dev-lang/php/ChangeLog index 0389db7e0a10..85c29f3342a7 100644 --- a/dev-lang/php/ChangeLog +++ b/dev-lang/php/ChangeLog @@ -1,6 +1,13 @@ # ChangeLog for dev-lang/php # Copyright 1999-2011 Gentoo Foundation; Distributed under the GPL v2 -# $Header: /var/cvsroot/gentoo-x86/dev-lang/php/ChangeLog,v 1.496 2011/07/20 12:41:38 olemarkus Exp $ +# $Header: /var/cvsroot/gentoo-x86/dev-lang/php/ChangeLog,v 1.497 2011/07/23 10:14:46 olemarkus Exp $ + +*php-5.3.7_rc3 (23 Jul 2011) + + 23 Jul 2011; Ole Markus With <olemarkus@gentoo.org> +files/php-fpm-r0.conf, + +files/php-fpm-r1.conf, +files/php-fpm-r4.init, + files/eblits/src_install-v2.eblit, +php-5.3.7_rc3.ebuild: + New rc. Includes new init script with better pid handling 20 Jul 2011; <olemarkus@gentoo.org> files/eblits/src_install-v3.eblit: Removed some 'security' fixes for php.ini. diff --git a/dev-lang/php/Manifest b/dev-lang/php/Manifest index 2c3352b1778f..09903d0339fa 100644 --- a/dev-lang/php/Manifest +++ b/dev-lang/php/Manifest @@ -1,6 +1,3 @@ ------BEGIN PGP SIGNED MESSAGE----- -Hash: SHA1 - AUX 20php5-envd 145 RMD160 8c81fb7dc1d1ddf16fd956d748514db3bcb27603 SHA1 f1cef57c0def8e2c5422aaf136f40b4ff47801d2 SHA256 efaae9e6ae5f7010e073c2ab6d8a9dda009f0707c7d7b0c027e142c94f7041a4 AUX 70_mod_php5.conf-apache2 348 RMD160 9f3f49a52ebf92c2650501c5ceb6f95ce4bb2e76 SHA1 62992e793446b4a9a64900d1ecba7bae06873382 SHA256 5bb8a45570582b4389a7d3feea0398e1c13ed4ced96e559b9406ed8c965dea8c AUX 70_mod_php5.conf-apache2-r1 374 RMD160 ca06cdc9d1a3dc4129a60c938ee3a1b542497fbb SHA1 4733066b6324c5870e716485484c44c7c26a9ff1 SHA256 815c1ca23c9afe8479568ceaac4057eb91ea5444fbd863866b29adb4eea2c82b @@ -21,7 +18,7 @@ AUX eblits/src_configure-v3.eblit 9393 RMD160 a2ed939df5ac9051dc3dcccd7c43732fb2 AUX eblits/src_configure-v52.eblit 11017 RMD160 4a804e4b021d2454c81c33644a744b72eec1e65d SHA1 f30392f1727592ad5de79934042d9d0b09c4ba41 SHA256 784ec5482362cc8f0725ca30a186e08958d7e8e752a238af043cfa8c7a68ed85 AUX eblits/src_configure-v521.eblit 10844 RMD160 90513f59b5f17d680004d3e74581d9eedc8af490 SHA1 a369e2cf7816799f7e2bead8b6eccc2115d0ecdc SHA256 ad875ca45e9ad975c0d7a3cbedc27c5035aa048d7aa935221a15e47cbca63c3d AUX eblits/src_install-v1.eblit 5146 RMD160 24127823735939101dcb00585a5ed69adedffed2 SHA1 36ab2648abaae12d1a86c97db82cd2ea86497b2d SHA256 3bddd375764b0ed00cb30e65036c67f96c56ea0ebfd70bcdc61b7465d1500d36 -AUX eblits/src_install-v2.eblit 5131 RMD160 1f562ddf01215ef2300e43871a46d61a840603cb SHA1 b733d1b80cb5d0ee3941d89105d8e726557cc71b SHA256 766aa95ba763adad7dcf9a5bb3ac172e40e3cfdb08f6ef30b9243eec1d25198a +AUX eblits/src_install-v2.eblit 5302 RMD160 a6e89565235f6baf14ee38326f94a0ed39f54183 SHA1 83b461036b1fd7170e3966399f4110a2e9363f41 SHA256 466e7350126a2c27814c693c7c7fcc45ee53eb4d267846d5b27a02c377b5407d AUX eblits/src_install-v3.eblit 4264 RMD160 42860228c8b3bd46593d3ece4346137fa5e00757 SHA1 83b8544b75b18a0a9c780019ebdb11299605959f SHA256 41a044474b486196502182257273d50b278e91588186802186555b86fe9b8d61 AUX eblits/src_prepare-snapshots.eblit 2238 RMD160 d82ee01ee6cc6bae7b7199296e32bcac093f2fae SHA1 deebebf641b935e4fdcda63f3f9ce9df01bdb037 SHA256 411ce9d56008461da4592dcf623fcff40c33aac479d13544f84cc974c5c232ea AUX eblits/src_prepare-v1.eblit 2616 RMD160 ccff64d09cc90ada1ea5d1311457cf9a05f12f8e SHA1 7db40d0ca7ef01e5b61962f261511803f768f1bc SHA256 915b9755a37f7670f6e436fe5072dae8f5e6b437ccdfbff835e26bb2f9d22b1e @@ -33,7 +30,10 @@ AUX php-5.2.10-pdo_dblib.patch 559 RMD160 062604e291113b2bb86044b5eeffb72fad210f AUX php-5.2.12-libpng14.patch 222 RMD160 d63bd712d077d9606a02d6620c7084bca7197c01 SHA1 a25a47386d625a47698094fc4825208c6ec8f2a4 SHA256 af94a9c2a104dcb037aa059dd46b6f534adb939ea44ad4cb9e3a0a7c49b64fab AUX php-fpm-gentooified-5.3.4.patch 1374 RMD160 ca156267f45b4d554052671afaffefc5911003a6 SHA1 b5a2eda1df3b4501d24d2313cd165d4bdff91904 SHA256 6b2a69daa161a46e7f6ec7ca3e3bf1e5af2b682cdf3ef25e61aaf8560634a391 AUX php-fpm-gentooified.patch 1846 RMD160 60b07cfcf41d41f453aba9a2747dc3d0a26fa016 SHA1 997e4e15057e497a8513a51225cdb9bd29fedd0a SHA256 262c02ad320408314e7635d403bd89b711374fcee09ecb37375e3406a0cc944a +AUX php-fpm-r0.conf 12898 RMD160 392a60348e233e725232749091f8e93f91ee88e6 SHA1 dff03446838753fcff75f625ccdd9b4cffde8d93 SHA256 8ebd676e058e5b64fbb8b5ed0be693e4da8f6fcedd5e427757afccc13504c48d +AUX php-fpm-r1.conf 12966 RMD160 2710840ccbd847f74af0486929b6b9af87bf2c51 SHA1 4f0cca8cf24936012c9ee5cb2eaa1a0b391e77b3 SHA256 c4308a92ade93812c6579b74a72cd1f3e1a35f7e63289722f461771d5702448c AUX php-fpm-r3.init 920 RMD160 98023ad9109443b1fb03b036b3996b6801797312 SHA1 44b915048f91fbfef1a3b1ec4df4fe82f30ae03d SHA256 1e4c1c932f1e60040383f7d38bd212ce8fbe8ca3ac387bbf3b6e660a7870ba84 +AUX php-fpm-r4.init 954 RMD160 19a097406bd82fec0a75175fa000c1f6c7757b0d SHA1 cfa42214e35e9abe8bfe099b5aec35ca2230b6ad SHA256 aba14f04126f474d5809b9a7976aca65c6ec895896de736b606c798c4aa04366 AUX php-fpm.conf 12898 RMD160 392a60348e233e725232749091f8e93f91ee88e6 SHA1 dff03446838753fcff75f625ccdd9b4cffde8d93 SHA256 8ebd676e058e5b64fbb8b5ed0be693e4da8f6fcedd5e427757afccc13504c48d AUX php-fpm.init 385 RMD160 0e266738ceb3853ce335db6375b5438bdea597db SHA1 bce556ebbd17e5192250f70ead99e8c70d9529c1 SHA256 baba8dab2cadc8bdf107e6fe5cede2f5faaabff1281781a0a30b3be79964c94e AUX php5-ldvs 22 RMD160 5846dab2745b68a88175dd4e72d0b8cf4756dd46 SHA1 592398c92575adb14ec972847ce2aca28a7b9c2c SHA256 b79d0e52b1b3b4543b31ad45525ae1c2814a27ea8e676772ab10bf6fb12dfe79 @@ -42,12 +42,14 @@ DIST php-5.2.17.tar.bz2 9092312 RMD160 567fa8d718b93fb83a89494c83a8bec224ac99e9 DIST php-5.3.3.tar.bz2 10662227 RMD160 9edb51663feac9b787f8382012893f1ac98fec6a SHA1 9f66716b341119e4e4f8fe3d81b7d0a5daf3cbc8 SHA256 f2876750f3c54854a20e26a03ca229f2fbf89b8ee6176b9c0586cb9b2f0b3f9a DIST php-5.3.6.tar.bz2 10952171 RMD160 619bf96cf24bf6aa0988494186f8914fde94d44d SHA1 0e0b9b4d9117f22080e2204afa9383469eb0dbbd SHA256 30ae880f22e3ee93eccc9b80e3c58b0d6364d139bb4366dcc27f2fab658d3198 DIST php-5.3.7RC2.tar.bz2 11135548 RMD160 446f53e0af86dfaaab025869996fff5b82493904 SHA1 c333becfba3da5d5ee45419d8f66bcdc644154f3 SHA256 556fd00b84858ee46e7c19e3d9fdf17fbb03725211dc39d6cbd44e8060dda017 +DIST php-5.3.7RC3.tar.bz2 11135642 RMD160 81945143b1ccfa20139c685e1341ed9a8853d7fe SHA1 6c1ddd5ace11cebb4cdce1979780c4413cae3371 SHA256 19d543aba7b6e88390050ce68df99bcfeb10daa6150c8b46347873595abb6f9f DIST php-5.4.0alpha1.tar.bz2 11015848 RMD160 2f0d10fa22465d984fa584cc62924717e5deb1fc SHA1 40ba6c57ad4e364667170dc0ea448e38e2695ccf SHA256 d06d1b2b598d4a7773b6f90bda64c82ef3028f12cf1bc838f4c4de8bb24c1169 DIST php-patchset-5.2.14-r1.tar.bz2 8381 RMD160 7f562ac7df8f918f6d73f61c4e2096a88759889d SHA1 0453926bccfd5bd8089c311f6e16f1e4a8c08993 SHA256 f49aacef203cee8e7ad038492ed43e7677ed2d22e0fef07dc840195cacc95d34 DIST php-patchset-5.2.17-r0.tar.bz2 8369 RMD160 544af4eb2de8e4478e675810f18a5b494b59709b SHA1 7b3c56437b435f60f72f7af08112e77c01e2f827 SHA256 fb159a02faf5120dd9bc620bd3f3094735f181aa6893273bb7dd29771b8b23b2 DIST php-patchset-5.3.3-r2.tar.bz2 9796 RMD160 6620cae9768e6a2c415ad6ed1fe9d5665867d216 SHA1 6f582a41c3f8b9c73677124a631cee3c4390e3f1 SHA256 aa331a07d00eb92a6a4d1ba937377e17ec4e3fa099c4295f4ccb5602ee583ae7 DIST php-patchset-5.3.6-r0.tar.bz2 10033 RMD160 352290d674cfc3bb76c4ee44b90e3ef7a231c405 SHA1 cd9e5ae79595adf7ca42d6e2fe81dd275a8b7575 SHA256 544aae373fcff288bf22706a30f06da6bcc29695d0014dc7768585197c80aaeb DIST php-patchset-5.3.7_rc2-r0.tar.bz2 9258 RMD160 97c5be732f3b1d0cdd9f6af3e586e273a9941e9a SHA1 d03b80319fac25aaedf2de7f758bff94f7ec018b SHA256 318ccba899b3af78ba10b74da4dcdde7ca5556650bc5d1ea0a7d68957b4b3811 +DIST php-patchset-5.3.7_rc3-r0.tar.bz2 7528 RMD160 7f0389d957fa9048aed4d8787650d3162df742fa SHA1 e1c3354a5cd62b0b00f294bf412ae82fabb76610 SHA256 685fd20a301f42493e5c9f490642402e9da291a1a39d440567f4a9775195aed8 DIST php-patchset-5.4.0_alpha1-r0.tar.bz2 6001 RMD160 0200e6ada41e471a30bfddeeb166d3254a9e2856 SHA1 3b1f71255db1c003f452c2fe41f93284a50967c4 SHA256 06834d624ce6269aa8005a28ccc0e55b2e8d500af57e4392e641978d5993a3ea DIST php-patchset-5.5.0_pre201105211430-r0.tar.bz2 9532 RMD160 8ef9cafc7652db45aef4421bafd51928f07dabff SHA1 44d7720208895b00a713e0f9ee777ea40a8fcf8a SHA256 3c348d8e09545beb33971c018ff948f4534766349821a477bd28c1b088b09b65 DIST php-trunk-201105211430.tar.bz2 11158099 RMD160 9df5f2a1336367618a53f49123b6b11660c8bbd6 SHA1 2f986aca0094bd6950867d10c84c1df790c7a6b2 SHA256 77e808a91ea1046f9dd47830d029a5c5a416b741d0955d7097e11e4d795062f1 @@ -60,18 +62,8 @@ EBUILD php-5.3.3-r1.ebuild 9305 RMD160 34b77045625873db23cd957d180e9d41b4e14d88 EBUILD php-5.3.6-r1.ebuild 9538 RMD160 e7365ce71f94f06b5732d497b9fc94b93f12945d SHA1 ccdd5c0fdcd169b4819d924ff0f5f5a6caaf934b SHA256 97ffbe697c6d607b748b89044baed1b4a91fc7a09790d0abfce6acc47ca45703 EBUILD php-5.3.6.ebuild 9794 RMD160 9be2d19b4cfc93aa0f6920958f7868198b254427 SHA1 ab4f7dfd77ce61441901e4ae6834c6563a1bf96c SHA256 f97847b13e3f5a09f686006401f816ba823850541da4d2ab58a9c7289651809e EBUILD php-5.3.7_rc2.ebuild 9543 RMD160 88a46bcac38f3ebc873f48406cb124f23f402126 SHA1 2100316c2586e434a97c8a508b1d985b02c74a03 SHA256 659d078fa2399ae800734f701357c9a64fbc787693c04d1908470602797fcf75 +EBUILD php-5.3.7_rc3.ebuild 9586 RMD160 59388df6b23c096945bc9a44e570949477c9da0a SHA1 24fe50e43390e12dada7fd87a76b159678bfe63d SHA256 11fff86b394f532fe87be99f2424e0a9f92f990cbee7b924ba63c604f69c9045 EBUILD php-5.4.0_alpha1.ebuild 8538 RMD160 194abead36de3e3c7cba14ee4d0191de1fc6003d SHA1 665b74f0b909bac24a331cecc047c6baf58490fe SHA256 5a6c9526d65968cdc50a866ce0a02a1d0e24c826641f6b66e251cfa61c5f67b3 EBUILD php-5.5.0_pre201105211430.ebuild 9523 RMD160 ed8fb75cb33d9ac955897bbeffd559e8e91dff3b SHA1 7557061d6f4e0dd38710af7b417f3fa37a8f2214 SHA256 187d2434b926db70e7a2c1f89141a09cc869c431ebb6e0d857913eaa50da7ce2 -MISC ChangeLog 84506 RMD160 5676e0bfecb3db53bdf383bed56c130b1830d657 SHA1 6367cbba4b2e93ec7e0110b94adc29360bd3febb SHA256 124bcf7c8a42e9cece45153d5d1bdc2687defd03e2e48646a6ddc3b349781bb2 +MISC ChangeLog 84785 RMD160 dec00ec176f71d86cd127f97bc68cac20f2aa9de SHA1 81fce9cadadf9efc039c76a55794bdb8087e0127 SHA256 944350829f59b782364dff3b4da29a0ac6575cf0ca8e3e069ca07fda697b4435 MISC metadata.xml 2212 RMD160 e26ea7f6831acb23854f018fe6d00c213bf62e5a SHA1 25500969d6ef6c1918a8e6abbb04e0553806dee2 SHA256 6fdbba214ce15fae4a1e2eb086586008377fff85e67e38b1e2232a9745432674 ------BEGIN PGP SIGNATURE----- -Version: GnuPG v2.0.17 (GNU/Linux) - -iQEcBAEBAgAGBQJOJxGFAAoJEGurSuXEqSv1Qy4H/3OrR4sBxp8vNNw19EvZLPY1 -nptPzrFprliN/900i/64OLupMXGOljk7pDlsnAwIc/ssixsD+Yo/+cFLP5jEeML0 -B3twNAJ0Ikw/RDHJ/4BHQN1XMmc6UWvLViVA3FofK8k8ekFgZQA7WB8M1EYLgMTE -YumMQ2wKraHgeV9XbZhrclP+uenqoaNjlRIliX6KBFMBpqoH0KVqxLPFL+zk0uPx -rRFaNbmLtn3XLv/qrao5aRi8LWA44+GZMYakq6CjItkoqSAv8wDUqvInIrfuDGgM -KAxhtUSBAmehW5rM2NMcaCohkKIrOSGat6IGW2tAlCsYqYn9FjPnZ5ruRQwihUg= -=WjWf ------END PGP SIGNATURE----- diff --git a/dev-lang/php/files/eblits/src_install-v2.eblit b/dev-lang/php/files/eblits/src_install-v2.eblit index 5d58e02056d4..0b8b78101a1c 100644 --- a/dev-lang/php/files/eblits/src_install-v2.eblit +++ b/dev-lang/php/files/eblits/src_install-v2.eblit @@ -1,6 +1,6 @@ # Copyright 1999-2011 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 -# $Header: /var/cvsroot/gentoo-x86/dev-lang/php/files/eblits/src_install-v2.eblit,v 1.12 2011/06/17 10:03:02 olemarkus Exp $ +# $Header: /var/cvsroot/gentoo-x86/dev-lang/php/files/eblits/src_install-v2.eblit,v 1.13 2011/07/23 10:14:46 olemarkus Exp $ eblit-php-src_install() { # see bug #324739 for what happens when we don't have that @@ -140,12 +140,14 @@ php_install_ini() { fi if [[ "${sapi}" == "fpm" ]] ; then + [[ -z ${PHP_FPM_INIT_VER} ]] && PHP_FPM_INIT_VER=3 + [[ -z ${PHP_FPM_CONF_VER} ]] && PHP_FPM_CONF_VER=0 einfo "Installing FPM CGI config file php-fpm.conf" insinto ${PHP_INI_DIR} - doins "${FILESDIR}/php-fpm.conf" + newins "${FILESDIR}/php-fpm-r${PHP_FPM_CONF_VER}.conf" php-fpm.conf dodir "/etc/init.d" insinto "/etc/init.d" - newinitd "${FILESDIR}/php-fpm-r3.init" "php-fpm" + newinitd "${FILESDIR}/php-fpm-r${PHP_FPM_INIT_VER}.init" "php-fpm" #dosym "${PHP_DESTDIR}/bin/php-fpm" "/usr/bin/php-fpm" # Remove bogus /etc/php-fpm.conf.default (bug 359906) diff --git a/dev-lang/php/files/php-fpm-r0.conf b/dev-lang/php/files/php-fpm-r0.conf new file mode 100644 index 000000000000..ddef717a606d --- /dev/null +++ b/dev-lang/php/files/php-fpm-r0.conf @@ -0,0 +1,310 @@ +;;;;;;;;;;;;;;;;;;;;; +; 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 +; Note: The Gentoo init script expects the pid path +; to be set to /var/run/php-fpm.pid +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 diff --git a/dev-lang/php/files/php-fpm-r1.conf b/dev-lang/php/files/php-fpm-r1.conf new file mode 100644 index 000000000000..0b0a7f8baddf --- /dev/null +++ b/dev-lang/php/files/php-fpm-r1.conf @@ -0,0 +1,311 @@ +;;;;;;;;;;;;;;;;;;;;; +; 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 diff --git a/dev-lang/php/files/php-fpm-r4.init b/dev-lang/php/files/php-fpm-r4.init new file mode 100755 index 000000000000..249df0f880a4 --- /dev/null +++ b/dev-lang/php/files/php-fpm-r4.init @@ -0,0 +1,41 @@ +#!/sbin/runscript + +PHPSLOT="php5.3" + +PHP_FPM_CONF="/etc/php/fpm-${PHPSLOT}/php-fpm.conf" + +PHP_FPM_PID="/var/run/php-fpm.pid" + +opts="depend start stop reload" + +depend() { + need net + use apache2 lighttpd nginx +} + +start() { + ebegin "Starting PHP FastCGI Process Manager" + start-stop-daemon --start --pidfile ${PHP_FPM_PID} --exec \ + /usr/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" + start-stop-daemon --signal QUIT --stop --exec /usr/bin/php-fpm --pidfile ${PHP_FPM_PID} + eend $? +} + +reload() { + ebegin "Reloading PHP FastCGI Process Manager" + [ -f ${PHP_FPM_PID} ] && kill -USR2 $(cat ${PHP_FPM_PID}) + eend $? +} diff --git a/dev-lang/php/php-5.3.7_rc3.ebuild b/dev-lang/php/php-5.3.7_rc3.ebuild new file mode 100644 index 000000000000..4e536ff91853 --- /dev/null +++ b/dev-lang/php/php-5.3.7_rc3.ebuild @@ -0,0 +1,354 @@ +# Copyright 1999-2011 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/dev-lang/php/php-5.3.7_rc3.ebuild,v 1.1 2011/07/23 10:14:46 olemarkus Exp $ + +EAPI=4 + +PHPCONFUTILS_MISSING_DEPS="adabas birdstep db2 dbmaker empress empress-bcs esoob interbase oci8 sapdb solid" + +inherit eutils autotools flag-o-matic versionator depend.apache apache-module db-use phpconfutils php-common-r1 libtool + +SUHOSIN_VERSION="" +FPM_VERSION="builtin" +EXPECTED_TEST_FAILURES="" + +KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86" + +function php_get_uri () +{ + case "${1}" in + "php-pre") + echo "http://downloads.php.net/ilia/${2}" + ;; + "php") + echo "http://www.php.net/distributions/${2}" + ;; + "suhosin") + echo "http://download.suhosin.org/${2}" + ;; + "olemarkus") + echo "http://olemarkus.org/~olemarkus/gentoo/${2}" + ;; + "gentoo") + echo "mirror://gentoo/${2}" + ;; + *) + die "unhandled case in php_get_uri" + ;; + esac +} + +PHP_MV="$(get_major_version)" + +# 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_RELEASE="php-pre" +PHP_P="${PN}-${PHP_PV}" + +PHP_PATCHSET_LOC="olemarkus" + +PHP_SRC_URI="$(php_get_uri "${PHP_RELEASE}" "${PHP_P}.tar.bz2")" + +PHP_PATCHSET="0" +PHP_PATCHSET_URI=" + $(php_get_uri "${PHP_PATCHSET_LOC}" "php-patchset-${PV}-r${PHP_PATCHSET}.tar.bz2")" + +PHP_FPM_INIT_VER="4" +PHP_FPM_CONF_VER="1" + +if [[ ${SUHOSIN_VERSION} == *-gentoo ]]; then + # in some cases we use our own suhosin patch (very recent version, + # patch conflicts, etc.) + SUHOSIN_TYPE="gentoo" +else + SUHOSIN_TYPE="suhosin" +fi + +if [[ -n ${SUHOSIN_VERSION} ]]; then + SUHOSIN_PATCH="suhosin-patch-${SUHOSIN_VERSION}.patch"; + SUHOSIN_URI="$(php_get_uri ${SUHOSIN_TYPE} ${SUHOSIN_PATCH}.gz )" +fi + +SRC_URI=" + ${PHP_SRC_URI} + ${PHP_PATCHSET_URI}" + +if [[ -n ${SUHOSIN_VERSION} ]]; then + SRC_URI="${SRC_URI} + suhosin? ( ${SUHOSIN_URI} )" +fi + +DESCRIPTION="The PHP language runtime engine: CLI, CGI, FPM/FastCGI, Apache2 and embed SAPIs." +HOMEPAGE="http://php.net/" +LICENSE="PHP-3" + +SLOT="$(get_version_component_range 1-2)" +S="${WORKDIR}/${PHP_P}" + +# We can build the following SAPIs in the given order +SAPIS="embed cli cgi fpm apache2" + +# Gentoo-specific, common features +IUSE="kolab" + +# SAPIs and SAPI-specific USE flags (cli SAPI is default on): +IUSE="${IUSE} + ${SAPIS/cli/+cli} + threads" + +IUSE="${IUSE} adabas bcmath berkdb birdstep bzip2 calendar cdb cjk + crypt +ctype curl curlwrappers db2 dbmaker debug doc empress + empress-bcs enchant esoob exif frontbase +fileinfo +filter firebird + flatfile ftp gd gd-external gdbm gmp +hash +iconv imap inifile + interbase intl iodbc ipv6 +json kerberos ldap ldap-sasl libedit mhash + mssql mysql mysqlnd mysqli nls oci8 + oci8-instant-client odbc pcntl pdo +phar pic +posix postgres qdbm + readline recode sapdb +session sharedext sharedmem + +simplexml snmp soap sockets solid spell sqlite sqlite3 ssl + sybase-ct sysvipc tidy +tokenizer truetype unicode wddx + xml xmlreader xmlwriter xmlrpc xpm xsl zip zlib" + +# Enable suhosin if available +[[ -n $SUHOSIN_VERSION ]] && IUSE="${IUSE} suhosin" + +DEPEND="!dev-lang/php:5 + >=app-admin/eselect-php-0.6.2 + >=dev-libs/libpcre-8.12[unicode] + adabas? ( >=dev-db/unixODBC-1.8.13 ) + apache2? ( www-servers/apache[threads=] ) + berkdb? ( =sys-libs/db-4* ) + birdstep? ( >=dev-db/unixODBC-1.8.13 ) + bzip2? ( app-arch/bzip2 ) + cdb? ( || ( dev-db/cdb dev-db/tinycdb ) ) + cjk? ( !gd? ( !gd-external? ( + virtual/jpeg + media-libs/libpng + sys-libs/zlib + ) ) ) + crypt? ( >=dev-libs/libmcrypt-2.4 ) + curl? ( >=net-misc/curl-7.10.5 ) + db2? ( >=dev-db/unixODBC-1.8.13 ) + dbmaker? ( >=dev-db/unixODBC-1.8.13 ) + empress? ( >=dev-db/unixODBC-1.8.13 ) + empress-bcs? ( >=dev-db/unixODBC-1.8.13 ) + enchant? ( app-text/enchant ) + esoob? ( >=dev-db/unixODBC-1.8.13 ) + exif? ( !gd? ( !gd-external? ( + virtual/jpeg + media-libs/libpng + sys-libs/zlib + ) ) ) + firebird? ( dev-db/firebird ) + gd? ( virtual/jpeg media-libs/libpng sys-libs/zlib ) + gd-external? ( media-libs/gd ) + 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 ) + kolab? ( >=net-libs/c-client-2004g-r1 ) + ldap? ( !oci8? ( >=net-nds/openldap-1.2.11 ) ) + ldap-sasl? ( !oci8? ( dev-libs/cyrus-sasl >=net-nds/openldap-1.2.11 ) ) + libedit? ( || ( sys-freebsd/freebsd-lib dev-libs/libedit ) ) + mssql? ( dev-db/freetds[mssql] ) + !mysqlnd? ( + 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 ) + sapdb? ( >=dev-db/unixODBC-1.8.13 ) + 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 ) + solid? ( >=dev-db/unixODBC-1.8.13 ) + spell? ( >=app-text/aspell-0.50 ) + sqlite? ( =dev-db/sqlite-2* pdo? ( >=dev-db/sqlite-3.7.6.3 ) ) + sqlite3? ( >=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? ( !gd-external? ( + virtual/jpeg media-libs/libpng 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 + media-libs/libpng sys-libs/zlib + ) + xsl? ( 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 gd-external ) ) + cjk? ( || ( gd gd-external ) ) + exif? ( || ( gd gd-external ) ) + + xpm? ( gd ) + gd? ( zlib !gd-external ) + gd-external? ( !gd ) + simplexml? ( xml ) + soap? ( xml ) + wddx? ( xml ) + xmlrpc? ( || ( xml iconv ) ) + xmlreader? ( xml ) + xsl? ( xml ) + ldap-sasl? ( ldap !oci8 ) + adabas? ( odbc ) + birdstep? ( odbc ) + dbmaker? ( odbc ) + empress-bcs? ( empress ) + empress? ( odbc ) + esoob? ( odbc ) + db2? ( odbc ) + sapdb? ( odbc ) + solid? ( odbc ) + kolab? ( imap ) + mhash? ( hash ) + phar? ( hash ) + mysqlnd? ( || ( + mysql + mysqli + pdo + ) ) + + oci8? ( !oci8-instant-client !ldap-sasl ) + oci8-instant-client? ( !oci8 ) + + qdbm? ( !gdbm ) + readline? ( !libedit ) + recode? ( !imap !mysql !mysqli ) + firebird? ( !interbase ) + sharedmem? ( !threads ) + + !cli? ( !cgi? ( !fpm? ( !apache2? ( !embed? ( cli ) ) ) ) )" + +DEPEND="${DEPEND} + enchant? ( !dev-php5/pecl-enchant ) + fileinfo? ( !<dev-php5/pecl-fileinfo-1.0.4-r2 ) + filter? ( !dev-php5/pecl-filter ) + json? ( !dev-php5/pecl-json ) + phar? ( !dev-php5/pecl-phar ) + zip? ( !dev-php5/pecl-zip )" + +[[ -n $SUHOSIN_VERSION ]] && RDEPEND="${RDEPEND} suhosin? ( +=${CATEGORY}/${PN}-${SLOT}*[unicode] )" + +DEPEND="${DEPEND} + sys-devel/flex + >=sys-devel/m4-1.4.3 + >=sys-devel/libtool-1.5.18" + +# They are in PDEPEND because we need PHP installed first! +PDEPEND="doc? ( app-doc/php-docs )" + +# No longer depend on the extension. The suhosin USE flag only installs the +# patch +#[[ -n $SUHOSIN_VERSION ]] && PDEPEND="${PDEPEND} suhosin? ( dev-php${PHP_MV}/suhosin )" + +# 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 + +# eblit-core +# Usage: <function> [version] [eval] +# Main eblit engine +eblit-core() { + [[ -z $FILESDIR ]] && FILESDIR="$(dirname $EBUILD)/files" + local e v func=$1 ver=$2 eval_=$3 + for v in ${ver:+-}${ver} -${PVR} -${PV} "" ; do + e="${FILESDIR}/eblits/${func}${v}.eblit" + if [[ -e ${e} ]] ; then + . "${e}" + [[ ${eval_} == 1 ]] && eval "${func}() { eblit-run ${func} ${ver} ; }" + return 0 + fi + done + return 1 +} + +# eblit-include +# Usage: [--skip] <function> [version] +# Includes an "eblit" -- a chunk of common code among ebuilds in a given +# package so that its functions can be sourced and utilized within the +# ebuild. +eblit-include() { + local skipable=false r=0 + [[ $1 == "--skip" ]] && skipable=true && shift + [[ $1 == pkg_* ]] && skipable=true + + [[ -z $1 ]] && die "Usage: eblit-include <function> [version]" + eblit-core $1 $2 + r="$?" + ${skipable} && return 0 + [[ "$r" -gt "0" ]] && die "Could not locate requested eblit '$1' in ${FILESDIR}/eblits/" +} + +# eblit-run-maybe +# Usage: <function> +# Runs a function if it is defined in an eblit +eblit-run-maybe() { + [[ $(type -t "$@") == "function" ]] && "$@" +} + +# eblit-run +# Usage: <function> [version] +# Runs a function defined in an eblit +eblit-run() { + eblit-include --skip common "${*:2}" + eblit-include "$@" + eblit-run-maybe eblit-$1-pre + eblit-${PN}-$1 + eblit-run-maybe eblit-$1-post +} + +# eblit-pkg +# Usage: <phase> [version] +# Includes the given functions AND evals them so they're included in the binpkgs +eblit-pkg() { + [[ -z $1 ]] && die "Usage: eblit-pkg <phase> [version]" + eblit-core $1 $2 1 +} + +eblit-pkg pkg_setup v2 + +src_prepare() { eblit-run src_prepare v3 ; } +src_configure() { eblit-run src_configure v2 ; } +src_compile() { eblit-run src_compile v1 ; } +src_install() { eblit-run src_install v2 ; } +src_test() { eblit-run src_test v1 ; } +pkg_postinst() { eblit-run pkg_postinst v2 ; } |