My personal project and infrastructure archive
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
nomicon/pkgs/top-level/php-packages.nix

405 lines
12 KiB

{ pkgs, fetchgit, php }:
let
self = with self; {
buildPecl = import ../build-support/build-pecl.nix {
inherit php;
inherit (pkgs) stdenv autoreconfHook fetchurl;
};
apcu = buildPecl {
name = "apcu-5.1.11";
sha256 = "0nz9m3fbxgyc2ij63yqmxm06a1f51g8rkxk85f85ziqdin66q2f1";
buildInputs = [ pkgs.pcre ];
doCheck = true;
checkTarget = "test";
checkFlagsArray = ["REPORT_EXIT_STATUS=1" "NO_INTERACTION=1"];
makeFlags = [ "phpincludedir=$(dev)/include" ];
outputs = [ "out" "dev" ];
};
apcu_bc = buildPecl {
name = "apcu_bc-1.0.4";
sha256 = "1raww7alwayg9nk0akly1mdrjypxlwg8safnmaczl773cwpw5cbw";
buildInputs = [ apcu pkgs.pcre ];
};
ast = buildPecl {
name = "ast-0.1.5";
sha256 = "0vv2w5fkkw9n7qdmi5aq50416zxmvyzjym8kb6j1v8kd4xcsjjgw";
};
couchbase = buildPecl rec {
name = "couchbase-${version}";
version = "2.3.4";
buildInputs = [ pkgs.libcouchbase pkgs.zlib igbinary pcs ];
src = pkgs.fetchFromGitHub {
owner = "couchbase";
repo = "php-couchbase";
rev = "v${version}";
sha256 = "0rdlrl7vh4kbxxj9yxp54xpnnrxydpa9fab7dy4nas474j5vb2bp";
};
configureFlags = [ "--with-couchbase" ];
patches = [
(pkgs.writeText "php-couchbase.patch" ''
--- a/config.m4
+++ b/config.m4
@@ -9,7 +9,7 @@ if test "$PHP_COUCHBASE" != "no"; then
LIBCOUCHBASE_DIR=$PHP_COUCHBASE
else
AC_MSG_CHECKING(for libcouchbase in default path)
- for i in /usr/local /usr; do
+ for i in ${pkgs.libcouchbase}; do
if test -r $i/include/libcouchbase/couchbase.h; then
LIBCOUCHBASE_DIR=$i
AC_MSG_RESULT(found in $i)
@@ -154,6 +154,8 @@ COUCHBASE_FILES=" \
igbinary_inc_path="$phpincludedir"
elif test -f "$phpincludedir/ext/igbinary/igbinary.h"; then
igbinary_inc_path="$phpincludedir"
+ elif test -f "${igbinary.dev}/include/ext/igbinary/igbinary.h"; then
+ igbinary_inc_path="${igbinary.dev}/include"
fi
if test "$igbinary_inc_path" = ""; then
AC_MSG_WARN([Cannot find igbinary.h])
'')
];
};
php_excel = buildPecl rec {
name = "php_excel-${version}";
version = "1.0.2";
phpVersion = "php7";
buildInputs = [ pkgs.libxl ];
src = pkgs.fetchurl {
url = "https://github.com/iliaal/php_excel/releases/download/Excel-1.0.2-PHP7/excel-${version}-${phpVersion}.tgz";
sha256 = "0dpvih9gpiyh1ml22zi7hi6kslkilzby00z1p8x248idylldzs2n";
};
configureFlags = [ "--with-excel" "--with-libxl-incdir=${pkgs.libxl}/include_c" "--with-libxl-libdir=${pkgs.libxl}/lib" ];
};
igbinary = buildPecl {
name = "igbinary-2.0.4";
configureFlags = [ "--enable-igbinary" ];
makeFlags = [ "phpincludedir=$(dev)/include" ];
outputs = [ "out" "dev" ];
sha256 = "0a55l4f0bgbf3f6sh34njd14niwagg829gfkvb8n5fs69xqab67d";
};
mailparse = buildPecl {
name = "mailparse-3.0.2";
sha256 = "0fw447ralqihsjnn0fm2hkaj8343cvb90v0d1wfclgz49256y6nq";
};
imagick = buildPecl {
name = "imagick-3.4.3";
sha256 = "0z2nc92xfc5axa9f2dy95rmsd2c81q8cs1pm4anh0a50x9g5ng0z";
configureFlags = [ "--with-imagick=${pkgs.imagemagick.dev}" ];
nativeBuildInputs = [ pkgs.pkgconfig ];
buildInputs = [ pkgs.pcre ];
};
memcached = buildPecl rec {
name = "memcached-php7";
src = fetchgit {
url = "https://github.com/php-memcached-dev/php-memcached";
rev = "e573a6e8fc815f12153d2afd561fc84f74811e2f";
sha256 = "0asfi6rsspbwbxhwmkxxnapd8w01xvfmwr1n9qsr2pryfk0w6y07";
};
configureFlags = [
"--with-zlib-dir=${pkgs.zlib.dev}"
"--with-libmemcached-dir=${pkgs.libmemcached}"
];
nativeBuildInputs = [ pkgs.pkgconfig ];
buildInputs = with pkgs; [ cyrus_sasl zlib ];
};
oci8 = buildPecl rec {
name = "oci8-2.1.8";
sha256 = "1bp6fss2f2qmd5bdk7x22j8vx5qivrdhz4x7csf29vjgj6gvchxy";
buildInputs = [ pkgs.re2c pkgs.oracle-instantclient ];
configureFlags = [ "--with-oci8=shared,instantclient,${pkgs.oracle-instantclient}/lib" ];
};
pcs = buildPecl rec {
name = "pcs-1.3.3";
sha256 = "0d4p1gpl8gkzdiv860qzxfz250ryf0wmjgyc8qcaaqgkdyh5jy5p";
};
xdebug = buildPecl {
name = "xdebug-2.6.1";
sha256 = "0xxxy6n4lv7ghi9liqx133yskg07lw316vhcds43n1sjq3b93rns";
doCheck = true;
checkTarget = "test";
};
yaml = buildPecl {
name = "yaml-2.0.2";
sha256 = "0f80zy79kyy4hn6iigpgfkwppwldjfj5g7s4gddklv3vskdb1by3";
configureFlags = [
"--with-yaml=${pkgs.libyaml}"
];
nativeBuildInputs = [ pkgs.pkgconfig ];
};
zmq = buildPecl {
name = "zmq-1.1.3";
sha256 = "1kj487vllqj9720vlhfsmv32hs2dy2agp6176mav6ldx31c3g4n4";
configureFlags = [
"--with-zmq=${pkgs.zeromq}"
];
nativeBuildInputs = [ pkgs.pkgconfig ];
};
pthreads = assert (pkgs.config.php.zts or false); buildPecl {
name = "pthreads-3.1.5";
sha256 = "1ziap0py3zrc7qj9lw4nzq6wx1viyj8v9y1babchizzan014x6p5";
meta.broken = true;
};
redis = buildPecl {
name = "redis-3.1.4";
sha256 = "0rgjdrqfif8pfn3ipk1v4gyjkkdcdrdk479qbpda89w25vaxzsxd";
};
v8 = buildPecl rec {
version = "0.1.9";
name = "v8-${version}";
sha256 = "0bj77dfmld5wfwl4wgqnpa0i4f3mc1mpsp9dmrwqv050gs84m7h1";
buildInputs = [ pkgs.v8_6_x ];
configureFlags = [ "--with-v8=${pkgs.v8_6_x}" ];
};
v8js = buildPecl rec {
version = "1.4.1";
name = "v8js-${version}";
sha256 = "0k5dc395gzva4l6n9mzvkhkjq914460cwk1grfandcqy73j6m89q";
buildInputs = [ pkgs.v8_6_x ];
configureFlags = [ "--with-v8js=${pkgs.v8_6_x}" ];
};
composer = pkgs.stdenv.mkDerivation rec {
name = "composer-${version}";
version = "1.7.2";
src = pkgs.fetchurl {
url = "https://getcomposer.org/download/${version}/composer.phar";
sha256 = "03km8qw3nshj7qzk5pidziha2ldx1l2yxhh2s7vpg25f9782hd7c";
};
unpackPhase = ":";
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/;
maintainers = with maintainers; [ globin offline ];
};
};
box = pkgs.stdenv.mkDerivation rec {
name = "box-${version}";
version = "2.7.5";
src = pkgs.fetchurl {
url = "https://github.com/box-project/box2/releases/download/${version}/box-${version}.phar";
sha256 = "1zmxdadrv0i2l8cz7xb38gnfmfyljpsaz2nnkjzqzksdmncbgd18";
};
phases = [ "installPhase" ];
buildInputs = [ pkgs.makeWrapper ];
installPhase = ''
mkdir -p $out/bin
install -D $src $out/libexec/box/box.phar
makeWrapper ${php}/bin/php $out/bin/box \
--add-flags "-d phar.readonly=0 $out/libexec/box/box.phar"
'';
meta = with pkgs.lib; {
description = "An application for building and managing Phars";
license = licenses.mit;
homepage = https://box-project.github.io/box2/;
maintainers = with maintainers; [ jtojnar ];
};
};
php-cs-fixer = pkgs.stdenv.mkDerivation rec {
name = "php-cs-fixer-${version}";
version = "2.13.1";
src = pkgs.fetchurl {
url = "https://github.com/FriendsOfPHP/PHP-CS-Fixer/releases/download/v${version}/php-cs-fixer.phar";
sha256 = "0yy9q140jd63h9qz5jvplh7ls3j7y1hf25dkxk0h4mx9cbxdzkq4";
};
phases = [ "installPhase" ];
buildInputs = [ pkgs.makeWrapper ];
installPhase = ''
mkdir -p $out/bin
install -D $src $out/libexec/php-cs-fixer/php-cs-fixer.phar
makeWrapper ${php}/bin/php $out/bin/php-cs-fixer \
--add-flags "$out/libexec/php-cs-fixer/php-cs-fixer.phar"
'';
meta = with pkgs.lib; {
description = "A tool to automatically fix PHP coding standards issues";
license = licenses.mit;
homepage = http://cs.sensiolabs.org/;
maintainers = with maintainers; [ jtojnar ];
};
};
php-parallel-lint = pkgs.stdenv.mkDerivation rec {
name = "php-parallel-lint-${version}";
version = "1.0.0";
src = pkgs.fetchFromGitHub {
owner = "JakubOnderka";
repo = "PHP-Parallel-Lint";
rev = "v${version}";
sha256 = "16nv8yyk2z3l213dg067l6di4pigg5rd8yswr5xgd18jwbys2vnw";
};
buildInputs = [ pkgs.makeWrapper composer box ];
buildPhase = ''
composer dump-autoload
box build
'';
installPhase = ''
mkdir -p $out/bin
install -D parallel-lint.phar $out/libexec/php-parallel-lint/php-parallel-lint.phar
makeWrapper ${php}/bin/php $out/bin/php-parallel-lint \
--add-flags "$out/libexec/php-parallel-lint/php-parallel-lint.phar"
'';
meta = with pkgs.lib; {
description = "This tool check syntax of PHP files faster than serial check with fancier output";
license = licenses.bsd2;
homepage = https://github.com/JakubOnderka/PHP-Parallel-Lint;
maintainers = with maintainers; [ jtojnar ];
};
};
phpcs = pkgs.stdenv.mkDerivation rec {
name = "phpcs-${version}";
version = "3.3.2";
src = pkgs.fetchurl {
url = "https://github.com/squizlabs/PHP_CodeSniffer/releases/download/${version}/phpcs.phar";
sha256 = "0np3bsj32mwyrcccw5pgypz7wchd5l89bq951w9a7bxh80gjhak9";
};
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 etu ];
};
};
phpcbf = pkgs.stdenv.mkDerivation rec {
name = "phpcbf-${version}";
version = "3.3.2";
src = pkgs.fetchurl {
url = "https://github.com/squizlabs/PHP_CodeSniffer/releases/download/${version}/phpcbf.phar";
sha256 = "1qxcd7lkqrfjibkrqq1f5szrcjmd6682mwaxha7v93pj9f92wgn4";
};
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 etu ];
};
};
psysh = pkgs.stdenv.mkDerivation rec {
name = "psysh-${version}";
version = "0.9.8";
src = pkgs.fetchurl {
url = "https://github.com/bobthecow/psysh/releases/download/v${version}/psysh-v${version}.tar.gz";
sha256 = "0xs9bl0hplkm2hajmm4qca65bm2x7wnx4vbmk0d2jxpvwrgqgnzd";
};
phases = [ "installPhase" ];
nativeBuildInputs = [ pkgs.makeWrapper ];
installPhase = ''
mkdir -p $out/bin
tar -xzf $src -C $out/bin
wrapProgram $out/bin/psysh
'';
meta = with pkgs.lib; {
description = "PsySH is a runtime developer console, interactive debugger and REPL for PHP.";
license = licenses.mit;
homepage = https://psysh.org/;
maintainers = with maintainers; [ caugner ];
};
};
}; in self