2016-01-08 12:30:27 +00:00
|
|
|
{ pkgs, fetchgit, php }:
|
2014-03-24 12:37:36 +00:00
|
|
|
|
2016-01-08 12:30:27 +00:00
|
|
|
let
|
|
|
|
self = with self; {
|
|
|
|
buildPecl = import ../build-support/build-pecl.nix {
|
|
|
|
inherit php;
|
|
|
|
inherit (pkgs) stdenv autoreconfHook fetchurl;
|
|
|
|
};
|
|
|
|
isPhpOlder55 = pkgs.lib.versionOlder php.version "5.5";
|
|
|
|
isPhp7 = pkgs.lib.versionAtLeast php.version "7.0";
|
2014-03-24 12:37:36 +00:00
|
|
|
|
2016-01-08 12:30:27 +00:00
|
|
|
apcu = if isPhp7 then apcu51 else apcu40;
|
|
|
|
|
|
|
|
apcu40 = assert !isPhp7; buildPecl {
|
2015-08-09 14:13:25 +00:00
|
|
|
name = "apcu-4.0.7";
|
|
|
|
|
|
|
|
sha256 = "1mhbz56mbnq7dryf2d64l84lj3fpr5ilmg2424glans3wcg772hp";
|
|
|
|
};
|
|
|
|
|
2016-01-08 12:30:27 +00:00
|
|
|
apcu51 = assert isPhp7; buildPecl {
|
|
|
|
name = "apcu-5.1.2";
|
|
|
|
|
|
|
|
sha256 = "0r5pfbjbmdj46h20jm3iqmy969qd27ajyf0phjhgykv6j0cqjlgd";
|
|
|
|
};
|
|
|
|
|
2017-08-25 17:26:58 +00:00
|
|
|
ast = assert isPhp7; buildPecl {
|
|
|
|
name = "ast-0.1.5";
|
|
|
|
|
|
|
|
sha256 = "0vv2w5fkkw9n7qdmi5aq50416zxmvyzjym8kb6j1v8kd4xcsjjgw";
|
|
|
|
};
|
|
|
|
|
2016-10-13 20:27:52 +00:00
|
|
|
imagick = buildPecl {
|
|
|
|
name = "imagick-3.4.3RC1";
|
|
|
|
sha256 = "0siyxpszjz6s095s2g2854bhprjq49rf22v6syjiwvndg1pc9fsh";
|
2016-08-23 00:33:47 +00:00
|
|
|
configureFlags = "--with-imagick=${pkgs.imagemagick.dev}";
|
2016-10-13 20:27:52 +00:00
|
|
|
nativeBuildInputs = [ pkgs.pkgconfig ];
|
2016-01-08 12:30:27 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
# No support for PHP 7 yet
|
|
|
|
memcache = assert !isPhp7; buildPecl {
|
2014-03-24 12:37:36 +00:00
|
|
|
name = "memcache-3.0.8";
|
|
|
|
|
2014-07-03 14:52:02 +00:00
|
|
|
sha256 = "04c35rj0cvq5ygn2jgmyvqcb0k8d03v4k642b6i37zgv7x15pbic";
|
2014-03-24 12:37:36 +00:00
|
|
|
|
2016-04-16 17:50:01 +00:00
|
|
|
configureFlags = "--with-zlib-dir=${pkgs.zlib.dev}";
|
2017-08-25 20:52:43 +00:00
|
|
|
|
|
|
|
makeFlags = [ "CFLAGS=-fgnu89-inline" ];
|
2014-03-24 12:37:36 +00:00
|
|
|
};
|
2014-03-24 13:23:10 +00:00
|
|
|
|
2016-01-08 12:30:27 +00:00
|
|
|
memcached = if isPhp7 then memcachedPhp7 else memcached22;
|
|
|
|
|
|
|
|
memcached22 = assert !isPhp7; buildPecl {
|
2015-07-01 11:47:53 +00:00
|
|
|
name = "memcached-2.2.0";
|
2014-03-24 13:23:10 +00:00
|
|
|
|
2015-07-01 11:47:53 +00:00
|
|
|
sha256 = "0n4z2mp4rvrbmxq079zdsrhjxjkmhz6mzi7mlcipz02cdl7n1f8p";
|
2014-03-24 13:23:10 +00:00
|
|
|
|
|
|
|
configureFlags = [
|
2016-04-16 17:50:01 +00:00
|
|
|
"--with-zlib-dir=${pkgs.zlib.dev}"
|
2014-03-24 13:23:10 +00:00
|
|
|
"--with-libmemcached-dir=${pkgs.libmemcached}"
|
|
|
|
];
|
|
|
|
|
2017-02-16 17:54:32 +00:00
|
|
|
buildInputs = with pkgs; [ pkgconfig cyrus_sasl zlib ];
|
2014-03-24 13:23:10 +00:00
|
|
|
};
|
2014-05-07 11:17:30 +00:00
|
|
|
|
2016-01-08 12:30:27 +00:00
|
|
|
# Not released yet
|
|
|
|
memcachedPhp7 = assert isPhp7; buildPecl rec {
|
|
|
|
name = "memcached-php7";
|
|
|
|
|
|
|
|
src = fetchgit {
|
|
|
|
url = "https://github.com/php-memcached-dev/php-memcached";
|
|
|
|
rev = "e573a6e8fc815f12153d2afd561fc84f74811e2f";
|
2016-06-02 11:26:44 +00:00
|
|
|
sha256 = "0asfi6rsspbwbxhwmkxxnapd8w01xvfmwr1n9qsr2pryfk0w6y07";
|
2016-01-08 12:30:27 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
configureFlags = [
|
2016-04-16 17:50:01 +00:00
|
|
|
"--with-zlib-dir=${pkgs.zlib.dev}"
|
2016-01-08 12:30:27 +00:00
|
|
|
"--with-libmemcached-dir=${pkgs.libmemcached}"
|
|
|
|
];
|
|
|
|
|
2017-02-16 17:54:32 +00:00
|
|
|
buildInputs = with pkgs; [ pkgconfig cyrus_sasl zlib ];
|
2016-01-08 12:30:27 +00:00
|
|
|
};
|
|
|
|
|
2017-08-25 20:51:23 +00:00
|
|
|
pcs = buildPecl rec {
|
|
|
|
name = "pcs-1.3.3";
|
|
|
|
|
|
|
|
sha256 = "0d4p1gpl8gkzdiv860qzxfz250ryf0wmjgyc8qcaaqgkdyh5jy5p";
|
|
|
|
};
|
|
|
|
|
2016-09-04 17:24:11 +00:00
|
|
|
# No support for PHP 7 yet (and probably never will be)
|
|
|
|
spidermonkey = assert !isPhp7; buildPecl rec {
|
|
|
|
name = "spidermonkey-1.0.0";
|
|
|
|
|
|
|
|
sha256 = "1ywrsp90w6rlgq3v2vmvp2zvvykkgqqasab7h9bf3vgvgv3qasbg";
|
|
|
|
|
|
|
|
configureFlags = [
|
2016-11-10 22:26:11 +00:00
|
|
|
"--with-spidermonkey=${pkgs.spidermonkey_1_8_5}"
|
2016-09-04 17:24:11 +00:00
|
|
|
];
|
|
|
|
|
2016-11-10 22:26:11 +00:00
|
|
|
buildInputs = [ pkgs.spidermonkey_1_8_5 ];
|
2016-09-04 17:24:11 +00:00
|
|
|
};
|
|
|
|
|
2017-02-23 17:49:49 +00:00
|
|
|
xdebug = if isPhp7 then xdebug25 else xdebug23;
|
2016-01-08 12:30:27 +00:00
|
|
|
|
|
|
|
xdebug23 = assert !isPhp7; buildPecl {
|
2015-07-01 11:57:56 +00:00
|
|
|
name = "xdebug-2.3.1";
|
2014-07-03 14:52:02 +00:00
|
|
|
|
2015-07-01 11:57:56 +00:00
|
|
|
sha256 = "0k567i6w7cw14m13s7ip0946pvy5ii16cjwjcinnviw9c24na0xm";
|
|
|
|
|
|
|
|
doCheck = true;
|
|
|
|
checkTarget = "test";
|
2014-05-07 11:17:30 +00:00
|
|
|
};
|
2014-06-06 13:06:53 +00:00
|
|
|
|
2017-02-23 17:49:49 +00:00
|
|
|
xdebug25 = buildPecl {
|
|
|
|
name = "xdebug-2.5.0";
|
2016-01-08 12:30:27 +00:00
|
|
|
|
2017-02-23 17:49:49 +00:00
|
|
|
sha256 = "03c9y25a3gc3kpav0cdgmhjixcaly6974hx7wgihi0wlchgavmlb";
|
2016-01-08 12:30:27 +00:00
|
|
|
|
|
|
|
doCheck = true;
|
|
|
|
checkTarget = "test";
|
|
|
|
};
|
|
|
|
|
2017-08-25 17:29:58 +00:00
|
|
|
yaml = if isPhp7 then yaml20 else yaml13;
|
|
|
|
|
|
|
|
yaml13 = assert !isPhp7; buildPecl {
|
|
|
|
name = "yaml-1.3.1";
|
|
|
|
|
|
|
|
sha256 = "1fbmgsgnd6l0d4vbjaca0x9mrfgl99yix5yf0q0pfcqzfdg4bj8q";
|
|
|
|
|
|
|
|
configureFlags = [
|
|
|
|
"--with-yaml=${pkgs.libyaml}"
|
|
|
|
];
|
|
|
|
|
|
|
|
buildInputs = [
|
|
|
|
pkgs.pkgconfig
|
|
|
|
];
|
|
|
|
};
|
|
|
|
|
|
|
|
yaml20 = assert isPhp7; buildPecl {
|
|
|
|
name = "yaml-2.0.2";
|
|
|
|
|
|
|
|
sha256 = "0f80zy79kyy4hn6iigpgfkwppwldjfj5g7s4gddklv3vskdb1by3";
|
|
|
|
|
|
|
|
configureFlags = [
|
|
|
|
"--with-yaml=${pkgs.libyaml}"
|
|
|
|
];
|
|
|
|
|
|
|
|
buildInputs = [
|
|
|
|
pkgs.pkgconfig
|
|
|
|
];
|
|
|
|
};
|
|
|
|
|
2016-01-08 12:30:27 +00:00
|
|
|
# Since PHP 5.5 OPcache is integrated in the core and has to be enabled via --enable-opcache during compilation.
|
|
|
|
zendopcache = assert isPhpOlder55; buildPecl {
|
2014-08-27 07:21:03 +00:00
|
|
|
name = "zendopcache-7.0.3";
|
|
|
|
|
|
|
|
sha256 = "0qpfbkfy4wlnsfq4vc4q5wvaia83l89ky33s08gqrcfp3p1adn88";
|
|
|
|
};
|
|
|
|
|
2016-11-09 23:29:28 +00:00
|
|
|
zmq = buildPecl {
|
|
|
|
name = "zmq-1.1.3";
|
2016-01-08 12:30:27 +00:00
|
|
|
|
2016-11-09 23:29:28 +00:00
|
|
|
sha256 = "1kj487vllqj9720vlhfsmv32hs2dy2agp6176mav6ldx31c3g4n4";
|
2016-01-08 12:30:27 +00:00
|
|
|
|
|
|
|
configureFlags = [
|
2016-11-09 23:29:28 +00:00
|
|
|
"--with-zmq=${pkgs.zeromq}"
|
2016-01-08 12:30:27 +00:00
|
|
|
];
|
|
|
|
|
|
|
|
buildInputs = [ pkgs.pkgconfig ];
|
|
|
|
};
|
|
|
|
|
|
|
|
# No support for PHP 7 and probably never will be
|
|
|
|
xcache = assert !isPhp7; buildPecl rec {
|
2014-07-03 15:01:13 +00:00
|
|
|
name = "xcache-${version}";
|
|
|
|
|
2015-07-01 11:53:47 +00:00
|
|
|
version = "3.2.0";
|
2014-07-03 15:01:13 +00:00
|
|
|
|
|
|
|
src = pkgs.fetchurl {
|
|
|
|
url = "http://xcache.lighttpd.net/pub/Releases/${version}/${name}.tar.bz2";
|
2015-07-01 11:53:47 +00:00
|
|
|
sha256 = "1gbcpw64da9ynjxv70jybwf9y88idm01kb16j87vfagpsp5s64kx";
|
2014-07-03 15:01:13 +00:00
|
|
|
};
|
|
|
|
|
2015-07-01 11:53:47 +00:00
|
|
|
doCheck = true;
|
|
|
|
checkTarget = "test";
|
|
|
|
|
2014-07-03 15:01:13 +00:00
|
|
|
configureFlags = [
|
|
|
|
"--enable-xcache"
|
|
|
|
"--enable-xcache-coverager"
|
|
|
|
"--enable-xcache-optimizer"
|
|
|
|
"--enable-xcache-assembler"
|
|
|
|
"--enable-xcache-encoder"
|
|
|
|
"--enable-xcache-decoder"
|
|
|
|
];
|
|
|
|
|
|
|
|
buildInputs = [ pkgs.m4 ];
|
|
|
|
};
|
2015-01-06 12:08:47 +00:00
|
|
|
|
2016-01-08 12:30:27 +00:00
|
|
|
#pthreads requires a build of PHP with ZTS (Zend Thread Safety) enabled
|
|
|
|
#--enable-maintainer-zts or --enable-zts on Windows
|
|
|
|
pthreads = if isPhp7 then pthreads31 else pthreads20;
|
|
|
|
|
|
|
|
pthreads20 = assert (pkgs.config.php.zts or false) && (!isPhp7); buildPecl {
|
2015-01-06 12:08:47 +00:00
|
|
|
name = "pthreads-2.0.10";
|
|
|
|
sha256 = "1xlcb1b1g10jd0xhm3c01a06yqpb5qln47pd1k522138324qvpwb";
|
|
|
|
};
|
|
|
|
|
2016-01-08 12:30:27 +00:00
|
|
|
pthreads31 = assert (pkgs.config.php.zts or false) && isPhp7; buildPecl {
|
|
|
|
name = "pthreads-3.1.5";
|
|
|
|
sha256 = "1ziap0py3zrc7qj9lw4nzq6wx1viyj8v9y1babchizzan014x6p5";
|
|
|
|
};
|
|
|
|
|
|
|
|
# No support for PHP 7 yet
|
|
|
|
geoip = assert !isPhp7; buildPecl {
|
2015-01-09 13:55:08 +00:00
|
|
|
name = "geoip-1.1.0";
|
|
|
|
sha256 = "1fcqpsvwba84gqqmwyb5x5xhkazprwkpsnn4sv2gfbsd4svxxil2";
|
|
|
|
|
|
|
|
configureFlags = [ "--with-geoip=${pkgs.geoip}" ];
|
|
|
|
|
|
|
|
buildInputs = [ pkgs.geoip ];
|
|
|
|
};
|
|
|
|
|
2016-01-08 12:30:27 +00:00
|
|
|
redis = if isPhp7 then redisPhp7 else redis22;
|
|
|
|
|
2017-02-28 15:11:33 +00:00
|
|
|
redis22 = assert !isPhp7; buildPecl {
|
2015-05-20 16:53:06 +00:00
|
|
|
name = "redis-2.2.7";
|
|
|
|
sha256 = "00n9dpk9ak0bl35sbcd3msr78sijrxdlb727nhg7f2g7swf37rcm";
|
2015-01-24 22:13:19 +00:00
|
|
|
};
|
|
|
|
|
2016-01-08 12:30:27 +00:00
|
|
|
# Not released yet
|
|
|
|
redisPhp7 = assert isPhp7; buildPecl rec {
|
|
|
|
name = "redis-php7";
|
|
|
|
|
|
|
|
src = fetchgit {
|
|
|
|
url = "https://github.com/phpredis/phpredis";
|
|
|
|
rev = "4a37e47d0256581ce2f7a3b15b5bb932add09f36";
|
2016-06-02 11:26:44 +00:00
|
|
|
sha256 = "1qm2ifa0zf95l1g967iiabmja17srpwz73lfci7z13ffdw1ayhfd";
|
2016-01-08 12:30:27 +00:00
|
|
|
};
|
|
|
|
};
|
|
|
|
|
2016-09-04 17:42:39 +00:00
|
|
|
v8 = assert isPhp7; buildPecl rec {
|
|
|
|
version = "0.1.0";
|
|
|
|
name = "v8-${version}";
|
|
|
|
|
|
|
|
src = pkgs.fetchurl {
|
|
|
|
url = "https://github.com/pinepain/php-v8/archive/v${version}.tar.gz";
|
|
|
|
sha256 = "18smnxd34b486f5n8j0wk9z7r5x1w84v89mgf76z0bn7gxdxl0xj";
|
|
|
|
};
|
|
|
|
|
|
|
|
buildInputs = [ pkgs.v8 ];
|
|
|
|
configureFlags = [ "--with-v8=${pkgs.v8}" ];
|
|
|
|
|
|
|
|
patches = [
|
|
|
|
(builtins.toFile "link-libv8_libbase.patch" ''
|
|
|
|
Index: php-v8/config.m4
|
|
|
|
===================================================================
|
|
|
|
--- php-v8.orig/config.m4
|
|
|
|
+++ php-v8/config.m4
|
|
|
|
@@ -69,7 +69,7 @@ if test "$PHP_V8" != "no"; then
|
|
|
|
#static_link_extra="libv8_base.a libv8_libbase.a libv8_libplatform.a libv8_snapshot.a"
|
|
|
|
;;
|
|
|
|
* )
|
|
|
|
- static_link_extra="libv8_libplatform.a"
|
|
|
|
+ static_link_extra="libv8_libplatform.a libv8_libbase.a"
|
|
|
|
#static_link_extra="libv8_base.a libv8_libbase.a libv8_libplatform.a libv8_snapshot.a"
|
|
|
|
;;
|
|
|
|
esac
|
|
|
|
''
|
|
|
|
)];
|
|
|
|
};
|
|
|
|
|
2016-09-04 17:23:51 +00:00
|
|
|
v8js = assert isPhp7; buildPecl rec {
|
|
|
|
version = "1.3.2";
|
|
|
|
name = "v8js-${version}";
|
|
|
|
|
|
|
|
sha256 = "1x7gxi70zgj3vaxs89nfbnwlqcxrps1inlyfzz66pbzdbfwvc8z8";
|
|
|
|
|
|
|
|
buildInputs = [ pkgs.v8 ];
|
|
|
|
configureFlags = [ "--with-v8js=${pkgs.v8}" ];
|
|
|
|
};
|
|
|
|
|
2015-01-24 22:13:19 +00:00
|
|
|
composer = pkgs.stdenv.mkDerivation rec {
|
|
|
|
name = "composer-${version}";
|
2017-08-12 14:54:11 +00:00
|
|
|
version = "1.5.1";
|
2015-01-24 22:13:19 +00:00
|
|
|
|
|
|
|
src = pkgs.fetchurl {
|
2015-08-02 12:21:10 +00:00
|
|
|
url = "https://getcomposer.org/download/${version}/composer.phar";
|
2017-08-12 14:54:11 +00:00
|
|
|
sha256 = "107v8hdgmi2s15zsd9ffrr3jyw01qkwv174y9gw9fbpdrjwffi97";
|
2015-01-24 22:13:19 +00:00
|
|
|
};
|
2017-08-12 14:54:11 +00:00
|
|
|
unpackPhase = ":";
|
2015-01-24 22:13:19 +00:00
|
|
|
|
|
|
|
buildInputs = [ pkgs.makeWrapper ];
|
|
|
|
|
|
|
|
installPhase = ''
|
|
|
|
mkdir -p $out/bin
|
|
|
|
install -D $src $out/libexec/composer/composer.phar
|
|
|
|
makeWrapper ${php}/bin/php $out/bin/composer \
|
|
|
|
--add-flags "$out/libexec/composer/composer.phar"
|
|
|
|
'';
|
|
|
|
|
|
|
|
meta = with pkgs.lib; {
|
|
|
|
description = "Dependency Manager for PHP";
|
|
|
|
license = licenses.mit;
|
|
|
|
homepage = https://getcomposer.org/;
|
2015-08-02 12:21:10 +00:00
|
|
|
maintainers = with maintainers; [ globin offline ];
|
2015-01-24 22:13:19 +00:00
|
|
|
};
|
|
|
|
};
|
2015-10-12 09:44:48 +00:00
|
|
|
|
|
|
|
phpcs = pkgs.stdenv.mkDerivation rec {
|
|
|
|
name = "phpcs-${version}";
|
2016-07-27 16:13:52 +00:00
|
|
|
version = "2.6.0";
|
2015-10-12 09:44:48 +00:00
|
|
|
|
|
|
|
src = pkgs.fetchurl {
|
|
|
|
url = "https://github.com/squizlabs/PHP_CodeSniffer/releases/download/${version}/phpcs.phar";
|
2016-07-27 16:13:52 +00:00
|
|
|
sha256 = "02mlv44x508rnkzkwiyh7lg2ah7aqyxcq65q9ycj06czm0xdzs41";
|
2015-10-12 09:44:48 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
phases = [ "installPhase" ];
|
|
|
|
buildInputs = [ pkgs.makeWrapper ];
|
|
|
|
|
|
|
|
installPhase = ''
|
|
|
|
mkdir -p $out/bin
|
|
|
|
install -D $src $out/libexec/phpcs/phpcs.phar
|
|
|
|
makeWrapper ${php}/bin/php $out/bin/phpcs \
|
|
|
|
--add-flags "$out/libexec/phpcs/phpcs.phar"
|
|
|
|
'';
|
|
|
|
|
|
|
|
meta = with pkgs.lib; {
|
|
|
|
description = "PHP coding standard tool";
|
|
|
|
license = licenses.bsd3;
|
|
|
|
homepage = https://squizlabs.github.io/PHP_CodeSniffer/;
|
|
|
|
maintainers = with maintainers; [ javaguirre ];
|
|
|
|
};
|
|
|
|
};
|
2017-07-11 13:56:52 +00:00
|
|
|
|
|
|
|
phpcbf = pkgs.stdenv.mkDerivation rec {
|
|
|
|
name = "phpcbf-${version}";
|
|
|
|
version = "2.6.0";
|
|
|
|
|
|
|
|
src = pkgs.fetchurl {
|
|
|
|
url = "https://github.com/squizlabs/PHP_CodeSniffer/releases/download/${version}/phpcbf.phar";
|
|
|
|
sha256 = "1ijf52cgd85ypvw431nnmzij6156ryhfvmajpkr7plfw0iccqc5j";
|
|
|
|
};
|
|
|
|
|
|
|
|
phases = [ "installPhase" ];
|
|
|
|
nativeBuildInputs = [ pkgs.makeWrapper ];
|
|
|
|
|
|
|
|
installPhase = ''
|
|
|
|
mkdir -p $out/bin
|
|
|
|
install -D $src $out/libexec/phpcbf/phpcbf.phar
|
|
|
|
makeWrapper ${php}/bin/php $out/bin/phpcbf \
|
|
|
|
--add-flags "$out/libexec/phpcbf/phpcbf.phar"
|
|
|
|
'';
|
|
|
|
|
|
|
|
meta = with pkgs.lib; {
|
|
|
|
description = "PHP coding standard beautifier and fixer";
|
|
|
|
license = licenses.bsd3;
|
|
|
|
homepage = https://squizlabs.github.io/PHP_CodeSniffer/;
|
|
|
|
maintainers = with maintainers; [ cmcdragonkai ];
|
|
|
|
};
|
|
|
|
};
|
2014-03-24 12:37:36 +00:00
|
|
|
}; in self
|