1{ pkgs, php }:
2
3let self = with self; {
4 buildPecl = import ../build-support/build-pecl.nix {
5 inherit php;
6 inherit (pkgs) stdenv autoreconfHook fetchurl;
7 };
8
9 apcu = buildPecl {
10 name = "apcu-4.0.7";
11
12 sha256 = "1mhbz56mbnq7dryf2d64l84lj3fpr5ilmg2424glans3wcg772hp";
13 };
14
15 memcache = buildPecl {
16 name = "memcache-3.0.8";
17
18 sha256 = "04c35rj0cvq5ygn2jgmyvqcb0k8d03v4k642b6i37zgv7x15pbic";
19
20 configureFlags = "--with-zlib-dir=${pkgs.zlib}";
21 };
22
23 memcached = buildPecl {
24 name = "memcached-2.2.0";
25
26 sha256 = "0n4z2mp4rvrbmxq079zdsrhjxjkmhz6mzi7mlcipz02cdl7n1f8p";
27
28 configureFlags = [
29 "--with-zlib-dir=${pkgs.zlib}"
30 "--with-libmemcached-dir=${pkgs.libmemcached}"
31 ];
32
33 buildInputs = with pkgs; [ pkgconfig cyrus_sasl ];
34 };
35
36 xdebug = buildPecl {
37 name = "xdebug-2.3.1";
38
39 sha256 = "0k567i6w7cw14m13s7ip0946pvy5ii16cjwjcinnviw9c24na0xm";
40
41 doCheck = true;
42 checkTarget = "test";
43 };
44
45 zendopcache = buildPecl {
46 name = "zendopcache-7.0.3";
47
48 sha256 = "0qpfbkfy4wlnsfq4vc4q5wvaia83l89ky33s08gqrcfp3p1adn88";
49 };
50
51 zmq = buildPecl {
52 name = "zmq-1.1.2";
53
54 sha256 = "0ccz73p8pkda3y9p9qbr3m19m0yrf7k2bvqgbaly3ibgh9bazc69";
55
56 configureFlags = [
57 "--with-zmq=${pkgs.zeromq2}"
58 ];
59
60 buildInputs = [ pkgs.pkgconfig ];
61 };
62
63 xcache = buildPecl rec {
64 name = "xcache-${version}";
65
66 version = "3.2.0";
67
68 src = pkgs.fetchurl {
69 url = "http://xcache.lighttpd.net/pub/Releases/${version}/${name}.tar.bz2";
70 sha256 = "1gbcpw64da9ynjxv70jybwf9y88idm01kb16j87vfagpsp5s64kx";
71 };
72
73 doCheck = true;
74 checkTarget = "test";
75
76 configureFlags = [
77 "--enable-xcache"
78 "--enable-xcache-coverager"
79 "--enable-xcache-optimizer"
80 "--enable-xcache-assembler"
81 "--enable-xcache-encoder"
82 "--enable-xcache-decoder"
83 ];
84
85 buildInputs = [ pkgs.m4 ];
86 };
87
88 pthreads = assert pkgs.config.php.zts or false; buildPecl {
89 #pthreads requires a build of PHP with ZTS (Zend Thread Safety) enabled
90 #--enable-maintainer-zts or --enable-zts on Windows
91 name = "pthreads-2.0.10";
92 sha256 = "1xlcb1b1g10jd0xhm3c01a06yqpb5qln47pd1k522138324qvpwb";
93 };
94
95 geoip = buildPecl {
96 name = "geoip-1.1.0";
97 sha256 = "1fcqpsvwba84gqqmwyb5x5xhkazprwkpsnn4sv2gfbsd4svxxil2";
98
99 configureFlags = [ "--with-geoip=${pkgs.geoip}" ];
100
101 buildInputs = [ pkgs.geoip ];
102 };
103
104 redis = buildPecl {
105 name = "redis-2.2.7";
106 sha256 = "00n9dpk9ak0bl35sbcd3msr78sijrxdlb727nhg7f2g7swf37rcm";
107 };
108
109 composer = pkgs.stdenv.mkDerivation rec {
110 name = "composer-${version}";
111 version = "1.0.0-alpha10";
112
113 src = pkgs.fetchurl {
114 url = "https://getcomposer.org/download/${version}/composer.phar";
115 sha256 = "0a26zlsr2jffcqlz8z6l8s6c6nlyfj2gxqfgx76knx5wch1psb4z";
116 };
117
118 phases = [ "installPhase" ];
119 buildInputs = [ pkgs.makeWrapper ];
120
121 installPhase = ''
122 mkdir -p $out/bin
123 install -D $src $out/libexec/composer/composer.phar
124 makeWrapper ${php}/bin/php $out/bin/composer \
125 --add-flags "$out/libexec/composer/composer.phar"
126 '';
127
128 meta = with pkgs.lib; {
129 description = "Dependency Manager for PHP";
130 license = licenses.mit;
131 homepage = https://getcomposer.org/;
132 maintainers = with maintainers; [ globin offline ];
133 };
134 };
135}; in self