nixpkgs/pkgs/development/interpreters/php/default.nix

342 lines
9.6 KiB
Nix
Raw Normal View History

2015-08-11 13:13:28 +02:00
{ lib, stdenv, fetchurl, composableDerivation, autoconf, automake, flex, bison
, mysql, libxml2, readline, zlib, curl, postgresql, gettext
, openssl, pkgconfig, sqlite, config, libjpeg, libpng, freetype
, libxslt, libmcrypt, bzip2, icu, openldap, cyrus_sasl, libmhash, freetds
, uwimap, pam, gmp, apacheHttpd, libiconv, systemd }:
2015-08-11 13:13:28 +02:00
let
generic =
2015-12-02 13:52:17 +01:00
{ version, sha256 }:
2015-08-11 13:13:28 +02:00
let php7 = lib.versionAtLeast version "7.0";
mysqlHeaders = mysql.lib.dev or mysql;
2015-08-11 13:13:28 +02:00
in composableDerivation.composableDerivation {} (fixed: {
2015-08-11 13:13:28 +02:00
inherit version;
name = "php-${version}";
enableParallelBuilding = true;
2016-10-18 18:01:49 +02:00
buildInputs = [ flex bison pkgconfig ]
2016-10-19 09:35:06 +02:00
++ lib.optional stdenv.isLinux systemd;
2015-08-11 13:13:28 +02:00
flags = {
# much left to do here...
# SAPI modules:
apxs2 = {
configureFlags = ["--with-apxs2=${apacheHttpd.dev}/bin/apxs"];
2015-08-11 13:13:28 +02:00
buildInputs = [apacheHttpd];
};
2016-10-01 21:16:55 +02:00
embed = {
configureFlags = ["--enable-embed"];
};
2015-08-11 13:13:28 +02:00
# Extensions
imap = {
configureFlags = [
"--with-imap=${uwimap}"
"--with-imap-ssl"
];
buildInputs = [ uwimap openssl pam ];
};
ldap = {
configureFlags = [
"--with-ldap"
"LDAP_DIR=${openldap.dev}"
"LDAP_INCDIR=${openldap.dev}/include"
"LDAP_LIBDIR=${openldap.out}/lib"
2016-06-08 22:37:06 +02:00
(lib.optional stdenv.isLinux "--with-ldap-sasl=${cyrus_sasl.dev}")
];
2016-06-08 22:37:06 +02:00
buildInputs = [openldap openssl] ++ lib.optional stdenv.isLinux cyrus_sasl;
2015-08-11 13:13:28 +02:00
};
mhash = {
configureFlags = ["--with-mhash"];
buildInputs = [libmhash];
};
curl = {
configureFlags = ["--with-curl=${curl.dev}"];
2015-08-11 13:13:28 +02:00
buildInputs = [curl openssl];
};
curlWrappers = {
configureFlags = ["--with-curlwrappers"];
};
zlib = {
configureFlags = ["--with-zlib=${zlib.dev}"];
2015-08-11 13:13:28 +02:00
buildInputs = [zlib];
};
libxml2 = {
configureFlags = [
"--with-libxml-dir=${libxml2.dev}"
2015-08-11 13:13:28 +02:00
];
buildInputs = [ libxml2 ];
};
pcntl = {
configureFlags = [ "--enable-pcntl" ];
};
readline = {
configureFlags = ["--with-readline=${readline.dev}"];
2015-08-11 13:13:28 +02:00
buildInputs = [ readline ];
};
sqlite = {
configureFlags = ["--with-pdo-sqlite=${sqlite.dev}"];
2015-08-11 13:13:28 +02:00
buildInputs = [ sqlite ];
};
postgresql = {
Revert "postgresql: Add dev output" Firstly this creates a cycle in 9.6 .out <-> .dev after fixing the PGXS path. Secondly this breaks extension handling and the pg_config as it resolves a lot of paths relatively resulting in the following bogus output: BINDIR = /nix/store/csiq6zkn2c994kkdjln461jvgbka4yb1-postgresql-9.5.9-dev/bin DOCDIR = /nix/store/csiq6zkn2c994kkdjln461jvgbka4yb1-postgresql-9.5.9-dev/share/doc HTMLDIR = /nix/store/csiq6zkn2c994kkdjln461jvgbka4yb1-postgresql-9.5.9-dev/share/doc INCLUDEDIR = /nix/store/csiq6zkn2c994kkdjln461jvgbka4yb1-postgresql-9.5.9-dev/include PKGINCLUDEDIR = /nix/store/csiq6zkn2c994kkdjln461jvgbka4yb1-postgresql-9.5.9-dev/include INCLUDEDIR-SERVER = /nix/store/csiq6zkn2c994kkdjln461jvgbka4yb1-postgresql-9.5.9-dev/include/server LIBDIR = /nix/store/85s9m7hpfzsl93wcb5gr6ii2km9mpx3z-postgresql-9.5.9-lib/lib PKGLIBDIR = /nix/store/85s9m7hpfzsl93wcb5gr6ii2km9mpx3z-postgresql-9.5.9-lib/lib LOCALEDIR = /nix/store/csiq6zkn2c994kkdjln461jvgbka4yb1-postgresql-9.5.9-dev/share/locale MANDIR = /nix/store/csiq6zkn2c994kkdjln461jvgbka4yb1-postgresql-9.5.9-dev/share/man SHAREDIR = /nix/store/csiq6zkn2c994kkdjln461jvgbka4yb1-postgresql-9.5.9-dev/share SYSCONFDIR = /etc/postgresql PGXS = /nix/store/csiq6zkn2c994kkdjln461jvgbka4yb1-postgresql-9.5.9-dev/lib/pgxs/src/makefiles/pgxs.mk CONFIGURE = '--prefix=/nix/store/irqqq4g173g9xrk1mh12kxv0s1d8dbyh-postgresql-9.5.9' '--with-openssl' '--with-libxml' '--sysconfdir=/etc' '--libdir=/nix/store/85s9m7hpfzsl93wcb5gr6ii2km9mpx3z-postgresql-9.5.9-lib/lib' '--with-ossp-uuid' 'CC=gcc' CC = gcc CPPFLAGS = -D_GNU_SOURCE -I/nix/store/z6r0j2b4bcdfw3pck2x6ay0vvx0qzb92-libxml2-2.9.5-dev/include/libxml2 CFLAGS = -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement -Wendif-labels -Wmissing-format-attribute -Wformat-security -fno-strict-aliasing -fwrapv -fexcess-precision=standard -O2 CFLAGS_SL = -fPIC LDFLAGS = -L../../../src/common -L/nix/store/ighspl5sa3qi1zy7nkih0c9p73xjfqa6-libxml2-2.9.5/lib -Wl,--as-needed -Wl,-rpath,'/nix/store/85s9m7hpfzsl93wcb5gr6ii2km9mpx3z-postgresql-9.5.9-lib/lib',--enable-new-dtags LDFLAGS_EX = LDFLAGS_SL = LIBS = -lpgcommon -lpgport -lxml2 -lssl -lcrypto -lz -lreadline -lrt -lcrypt -ldl -lm VERSION = PostgreSQL 9.5.9 This can probably only be properly fixed by rewriting pg_config in large parts as it does not in any way respect splitting the postgres tree and assumes it can simply resolve paths relative to its location. This does not even handle symlinks: $ result-dev/bin/pg_config BINDIR = /home/robin/dev/nixpkgs-upstream/result-dev/bin DOCDIR = /home/robin/dev/nixpkgs-upstream/result-dev/share/doc HTMLDIR = /home/robin/dev/nixpkgs-upstream/result-dev/share/doc INCLUDEDIR = /home/robin/dev/nixpkgs-upstream/result-dev/include PKGINCLUDEDIR = /home/robin/dev/nixpkgs-upstream/result-dev/include INCLUDEDIR-SERVER = /home/robin/dev/nixpkgs-upstream/result-dev/include/server LIBDIR = /nix/store/85s9m7hpfzsl93wcb5gr6ii2km9mpx3z-postgresql-9.5.9-lib/lib PKGLIBDIR = /nix/store/85s9m7hpfzsl93wcb5gr6ii2km9mpx3z-postgresql-9.5.9-lib/lib LOCALEDIR = /home/robin/dev/nixpkgs-upstream/result-dev/share/locale MANDIR = /home/robin/dev/nixpkgs-upstream/result-dev/share/man SHAREDIR = /home/robin/dev/nixpkgs-upstream/result-dev/share SYSCONFDIR = /etc/postgresql PGXS = /nix/store/csiq6zkn2c994kkdjln461jvgbka4yb1-postgresql-9.5.9-dev/lib/pgxs/src/makefiles/pgxs.mk CONFIGURE = '--prefix=/nix/store/irqqq4g173g9xrk1mh12kxv0s1d8dbyh-postgresql-9.5.9' '--with-openssl' '--with-libxml' '--sysconfdir=/etc' '--libdir=/nix/store/85s9m7hpfzsl93wcb5gr6ii2km9mpx3z-postgresql-9.5.9-lib/lib' '--with-ossp-uuid' 'CC=gcc' CC = gcc CPPFLAGS = -D_GNU_SOURCE -I/nix/store/z6r0j2b4bcdfw3pck2x6ay0vvx0qzb92-libxml2-2.9.5-dev/include/libxml2 CFLAGS = -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement -Wendif-labels -Wmissing-format-attribute -Wformat-security -fno-strict-aliasing -fwrapv -fexcess-precision=standard -O2 CFLAGS_SL = -fPIC LDFLAGS = -L../../../src/common -L/nix/store/ighspl5sa3qi1zy7nkih0c9p73xjfqa6-libxml2-2.9.5/lib -Wl,--as-needed -Wl,-rpath,'/nix/store/85s9m7hpfzsl93wcb5gr6ii2km9mpx3z-postgresql-9.5.9-lib/lib',--enable-new-dtags LDFLAGS_EX = LDFLAGS_SL = LIBS = -lpgcommon -lpgport -lxml2 -lssl -lcrypto -lz -lreadline -lrt -lcrypt -ldl -lm VERSION = PostgreSQL 9.5.9 cc @edolstra Revert "bacula: fix after postgresql output splitting" This reverts commit 13c9cbacdded00558084fda7037ca80849208e99. Revert "postgresql: fix pgxs dir in pg_config" This reverts commit 21998d597bd257c1a769e2be4b7a52b5b7e482a6. Revert "rubyGems.pg: fix postgresql path" This reverts commit e253ae7d3a4ab992d2432c87514e3333a3cf744d. Revert "kea: fix path to pg_config" This reverts commit 086c636eb7f894a55f752b6164dac4a87d8bcee9. Revert "php: fix build wrt. new postgres.dev build output" This reverts commit 2f23a83920107678ca1792a11d19e1cb37df3ace. Revert "gdal: fix path to pg_config" This reverts commit 032c50d45b3fd1ebb4af592b83e776ed7004b4c0. Revert "postgresql: Add dev output" This reverts commit b0280f598e4b3f6ebf33ad2115734e4735df443a.
2017-09-27 21:48:39 +02:00
configureFlags = ["--with-pgsql=${postgresql}"];
2015-08-11 13:13:28 +02:00
buildInputs = [ postgresql ];
};
pdo_pgsql = {
Revert "postgresql: Add dev output" Firstly this creates a cycle in 9.6 .out <-> .dev after fixing the PGXS path. Secondly this breaks extension handling and the pg_config as it resolves a lot of paths relatively resulting in the following bogus output: BINDIR = /nix/store/csiq6zkn2c994kkdjln461jvgbka4yb1-postgresql-9.5.9-dev/bin DOCDIR = /nix/store/csiq6zkn2c994kkdjln461jvgbka4yb1-postgresql-9.5.9-dev/share/doc HTMLDIR = /nix/store/csiq6zkn2c994kkdjln461jvgbka4yb1-postgresql-9.5.9-dev/share/doc INCLUDEDIR = /nix/store/csiq6zkn2c994kkdjln461jvgbka4yb1-postgresql-9.5.9-dev/include PKGINCLUDEDIR = /nix/store/csiq6zkn2c994kkdjln461jvgbka4yb1-postgresql-9.5.9-dev/include INCLUDEDIR-SERVER = /nix/store/csiq6zkn2c994kkdjln461jvgbka4yb1-postgresql-9.5.9-dev/include/server LIBDIR = /nix/store/85s9m7hpfzsl93wcb5gr6ii2km9mpx3z-postgresql-9.5.9-lib/lib PKGLIBDIR = /nix/store/85s9m7hpfzsl93wcb5gr6ii2km9mpx3z-postgresql-9.5.9-lib/lib LOCALEDIR = /nix/store/csiq6zkn2c994kkdjln461jvgbka4yb1-postgresql-9.5.9-dev/share/locale MANDIR = /nix/store/csiq6zkn2c994kkdjln461jvgbka4yb1-postgresql-9.5.9-dev/share/man SHAREDIR = /nix/store/csiq6zkn2c994kkdjln461jvgbka4yb1-postgresql-9.5.9-dev/share SYSCONFDIR = /etc/postgresql PGXS = /nix/store/csiq6zkn2c994kkdjln461jvgbka4yb1-postgresql-9.5.9-dev/lib/pgxs/src/makefiles/pgxs.mk CONFIGURE = '--prefix=/nix/store/irqqq4g173g9xrk1mh12kxv0s1d8dbyh-postgresql-9.5.9' '--with-openssl' '--with-libxml' '--sysconfdir=/etc' '--libdir=/nix/store/85s9m7hpfzsl93wcb5gr6ii2km9mpx3z-postgresql-9.5.9-lib/lib' '--with-ossp-uuid' 'CC=gcc' CC = gcc CPPFLAGS = -D_GNU_SOURCE -I/nix/store/z6r0j2b4bcdfw3pck2x6ay0vvx0qzb92-libxml2-2.9.5-dev/include/libxml2 CFLAGS = -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement -Wendif-labels -Wmissing-format-attribute -Wformat-security -fno-strict-aliasing -fwrapv -fexcess-precision=standard -O2 CFLAGS_SL = -fPIC LDFLAGS = -L../../../src/common -L/nix/store/ighspl5sa3qi1zy7nkih0c9p73xjfqa6-libxml2-2.9.5/lib -Wl,--as-needed -Wl,-rpath,'/nix/store/85s9m7hpfzsl93wcb5gr6ii2km9mpx3z-postgresql-9.5.9-lib/lib',--enable-new-dtags LDFLAGS_EX = LDFLAGS_SL = LIBS = -lpgcommon -lpgport -lxml2 -lssl -lcrypto -lz -lreadline -lrt -lcrypt -ldl -lm VERSION = PostgreSQL 9.5.9 This can probably only be properly fixed by rewriting pg_config in large parts as it does not in any way respect splitting the postgres tree and assumes it can simply resolve paths relative to its location. This does not even handle symlinks: $ result-dev/bin/pg_config BINDIR = /home/robin/dev/nixpkgs-upstream/result-dev/bin DOCDIR = /home/robin/dev/nixpkgs-upstream/result-dev/share/doc HTMLDIR = /home/robin/dev/nixpkgs-upstream/result-dev/share/doc INCLUDEDIR = /home/robin/dev/nixpkgs-upstream/result-dev/include PKGINCLUDEDIR = /home/robin/dev/nixpkgs-upstream/result-dev/include INCLUDEDIR-SERVER = /home/robin/dev/nixpkgs-upstream/result-dev/include/server LIBDIR = /nix/store/85s9m7hpfzsl93wcb5gr6ii2km9mpx3z-postgresql-9.5.9-lib/lib PKGLIBDIR = /nix/store/85s9m7hpfzsl93wcb5gr6ii2km9mpx3z-postgresql-9.5.9-lib/lib LOCALEDIR = /home/robin/dev/nixpkgs-upstream/result-dev/share/locale MANDIR = /home/robin/dev/nixpkgs-upstream/result-dev/share/man SHAREDIR = /home/robin/dev/nixpkgs-upstream/result-dev/share SYSCONFDIR = /etc/postgresql PGXS = /nix/store/csiq6zkn2c994kkdjln461jvgbka4yb1-postgresql-9.5.9-dev/lib/pgxs/src/makefiles/pgxs.mk CONFIGURE = '--prefix=/nix/store/irqqq4g173g9xrk1mh12kxv0s1d8dbyh-postgresql-9.5.9' '--with-openssl' '--with-libxml' '--sysconfdir=/etc' '--libdir=/nix/store/85s9m7hpfzsl93wcb5gr6ii2km9mpx3z-postgresql-9.5.9-lib/lib' '--with-ossp-uuid' 'CC=gcc' CC = gcc CPPFLAGS = -D_GNU_SOURCE -I/nix/store/z6r0j2b4bcdfw3pck2x6ay0vvx0qzb92-libxml2-2.9.5-dev/include/libxml2 CFLAGS = -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement -Wendif-labels -Wmissing-format-attribute -Wformat-security -fno-strict-aliasing -fwrapv -fexcess-precision=standard -O2 CFLAGS_SL = -fPIC LDFLAGS = -L../../../src/common -L/nix/store/ighspl5sa3qi1zy7nkih0c9p73xjfqa6-libxml2-2.9.5/lib -Wl,--as-needed -Wl,-rpath,'/nix/store/85s9m7hpfzsl93wcb5gr6ii2km9mpx3z-postgresql-9.5.9-lib/lib',--enable-new-dtags LDFLAGS_EX = LDFLAGS_SL = LIBS = -lpgcommon -lpgport -lxml2 -lssl -lcrypto -lz -lreadline -lrt -lcrypt -ldl -lm VERSION = PostgreSQL 9.5.9 cc @edolstra Revert "bacula: fix after postgresql output splitting" This reverts commit 13c9cbacdded00558084fda7037ca80849208e99. Revert "postgresql: fix pgxs dir in pg_config" This reverts commit 21998d597bd257c1a769e2be4b7a52b5b7e482a6. Revert "rubyGems.pg: fix postgresql path" This reverts commit e253ae7d3a4ab992d2432c87514e3333a3cf744d. Revert "kea: fix path to pg_config" This reverts commit 086c636eb7f894a55f752b6164dac4a87d8bcee9. Revert "php: fix build wrt. new postgres.dev build output" This reverts commit 2f23a83920107678ca1792a11d19e1cb37df3ace. Revert "gdal: fix path to pg_config" This reverts commit 032c50d45b3fd1ebb4af592b83e776ed7004b4c0. Revert "postgresql: Add dev output" This reverts commit b0280f598e4b3f6ebf33ad2115734e4735df443a.
2017-09-27 21:48:39 +02:00
configureFlags = ["--with-pdo-pgsql=${postgresql}"];
2015-08-11 13:13:28 +02:00
buildInputs = [ postgresql ];
};
mysql = {
configureFlags = ["--with-mysql"];
buildInputs = [ mysqlHeaders ];
2015-08-11 13:13:28 +02:00
};
mysqli = {
configureFlags = ["--with-mysqli=${mysqlHeaders}/bin/mysql_config"];
buildInputs = [ mysqlHeaders ];
2015-08-11 13:13:28 +02:00
};
mysqli_embedded = {
configureFlags = ["--enable-embedded-mysqli"];
depends = "mysqli";
assertion = fixed.mysqliSupport;
};
pdo_mysql = {
configureFlags = ["--with-pdo-mysql=${mysqlHeaders}"];
buildInputs = [ mysqlHeaders ];
2015-08-11 13:13:28 +02:00
};
bcmath = {
configureFlags = ["--enable-bcmath"];
};
gd = {
# FIXME: Our own gd package doesn't work, see https://bugs.php.net/bug.php?id=60108.
configureFlags = [
"--with-gd"
"--with-freetype-dir=${freetype.dev}"
"--with-png-dir=${libpng.dev}"
"--with-jpeg-dir=${libjpeg.dev}"
2015-08-11 13:13:28 +02:00
];
buildInputs = [ libpng libjpeg freetype ];
};
gmp = {
configureFlags = ["--with-gmp=${gmp.dev}"];
2015-08-11 13:13:28 +02:00
buildInputs = [ gmp ];
};
soap = {
configureFlags = ["--enable-soap"];
};
sockets = {
configureFlags = ["--enable-sockets"];
};
openssl = {
2016-05-01 14:41:52 +02:00
configureFlags = ["--with-openssl"];
buildInputs = [openssl openssl.dev];
2015-08-11 13:13:28 +02:00
};
mbstring = {
configureFlags = ["--enable-mbstring"];
};
gettext = {
configureFlags = ["--with-gettext=${gettext}"];
buildInputs = [gettext];
};
intl = {
configureFlags = ["--enable-intl"];
buildInputs = [icu];
};
exif = {
configureFlags = ["--enable-exif"];
};
xsl = {
configureFlags = ["--with-xsl=${libxslt.dev}"];
2015-08-11 13:13:28 +02:00
buildInputs = [libxslt];
};
mcrypt = let libmcrypt' = libmcrypt.override { disablePosixThreads = true; }; in {
configureFlags = ["--with-mcrypt=${libmcrypt'}"];
buildInputs = [libmcrypt'];
};
bz2 = {
configureFlags = ["--with-bz2=${bzip2.dev}"];
2015-08-11 13:13:28 +02:00
buildInputs = [bzip2];
};
zip = {
configureFlags = ["--enable-zip"];
};
ftp = {
configureFlags = ["--enable-ftp"];
};
fpm = {
configureFlags = ["--enable-fpm"];
};
mssql = stdenv.lib.optionalAttrs (!stdenv.isDarwin) {
configureFlags = ["--with-mssql=${freetds}"];
buildInputs = [freetds];
};
zts = {
configureFlags = ["--enable-maintainer-zts"];
};
calendar = {
configureFlags = ["--enable-calendar"];
};
};
cfg = {
2016-06-08 22:37:06 +02:00
imapSupport = config.php.imap or (!stdenv.isDarwin);
2015-08-11 13:13:28 +02:00
ldapSupport = config.php.ldap or true;
mhashSupport = config.php.mhash or true;
mysqlSupport = (!php7) && (config.php.mysql or true);
mysqliSupport = config.php.mysqli or true;
pdo_mysqlSupport = config.php.pdo_mysql or true;
libxml2Support = config.php.libxml2 or true;
2016-06-08 22:37:06 +02:00
apxs2Support = config.php.apxs2 or (!stdenv.isDarwin);
2016-10-01 21:16:55 +02:00
embedSupport = config.php.embed or false;
2015-08-11 13:13:28 +02:00
bcmathSupport = config.php.bcmath or true;
socketsSupport = config.php.sockets or true;
curlSupport = config.php.curl or true;
curlWrappersSupport = (!php7) && (config.php.curlWrappers or true);
gettextSupport = config.php.gettext or true;
pcntlSupport = config.php.pcntl or true;
postgresqlSupport = config.php.postgresql or true;
pdo_pgsqlSupport = config.php.pdo_pgsql or true;
readlineSupport = config.php.readline or true;
sqliteSupport = config.php.sqlite or true;
soapSupport = config.php.soap or true;
zlibSupport = config.php.zlib or true;
opensslSupport = config.php.openssl or true;
mbstringSupport = config.php.mbstring or true;
gdSupport = config.php.gd or true;
intlSupport = config.php.intl or true;
exifSupport = config.php.exif or true;
xslSupport = config.php.xsl or false;
mcryptSupport = config.php.mcrypt or true;
bz2Support = config.php.bz2 or false;
zipSupport = config.php.zip or true;
ftpSupport = config.php.ftp or true;
fpmSupport = config.php.fpm or true;
gmpSupport = config.php.gmp or true;
mssqlSupport = (!php7) && (config.php.mssql or (!stdenv.isDarwin));
ztsSupport = config.php.zts or false;
calendarSupport = config.php.calendar or true;
};
hardeningDisable = [ "bindnow" ];
2016-03-06 00:15:18 +01:00
preConfigure = ''
2015-08-11 13:13:28 +02:00
# Don't record the configure flags since this causes unnecessary
# runtime dependencies
2015-08-11 13:13:28 +02:00
for i in main/build-defs.h.in scripts/php-config.in; do
substituteInPlace $i \
--replace '@CONFIGURE_COMMAND@' '(omitted)' \
--replace '@CONFIGURE_OPTIONS@' "" \
--replace '@PHP_LDFLAGS@' ""
done
#[[ -z "$libxml2" ]] || addToSearchPath PATH $libxml2/bin
export EXTENSION_DIR=$out/lib/php/extensions
configureFlags+=(--with-config-file-path=$out/etc \
--includedir=$dev/include)
2015-08-11 13:13:28 +02:00
'';
configureFlags = [
"--with-config-file-scan-dir=/etc/php.d"
] ++ lib.optional stdenv.isDarwin "--with-iconv=${libiconv}"
++ lib.optional stdenv.isLinux "--with-fpm-systemd";
2016-04-29 08:26:20 +02:00
postInstall = ''
cp php.ini-production $out/etc/php.ini
2015-08-11 13:13:28 +02:00
'';
postFixup = ''
mkdir -p $dev/bin $dev/share/man/man1
mv $out/bin/phpize $out/bin/php-config $dev/bin/
mv $out/share/man/man1/phpize.1.gz \
$out/share/man/man1/php-config.1.gz \
$dev/share/man/man1/
'';
2015-08-11 13:13:28 +02:00
src = fetchurl {
2015-12-02 13:52:17 +01:00
url = "http://www.php.net/distributions/php-${version}.tar.bz2";
inherit sha256;
2015-08-11 13:13:28 +02:00
};
meta = with stdenv.lib; {
description = "An HTML-embedded scripting language";
homepage = http://www.php.net/;
2016-06-22 10:45:52 +02:00
license = licenses.php301;
2015-08-11 13:13:28 +02:00
maintainers = with maintainers; [ globin ];
2016-06-22 10:45:52 +02:00
platforms = platforms.all;
outputsToInstall = [ "out" "dev" ];
2015-08-11 13:13:28 +02:00
};
patches = if !php7 then [ ./fix-paths.patch ] else [ ./fix-paths-php7.patch ];
2016-06-08 22:37:06 +02:00
postPatch = lib.optional stdenv.isDarwin ''
substituteInPlace configure --replace "-lstdc++" "-lc++"
'';
stripDebugList = "bin sbin lib modules";
outputs = [ "out" "dev" ];
2015-08-11 13:13:28 +02:00
});
in {
php56 = generic {
version = "5.6.31";
sha256 = "03xixkvfp64bqp97p8vlj3hp63bpjw7hc16b7fgm7w35rdlp2fcg";
2015-08-11 13:13:28 +02:00
};
2015-12-02 13:52:17 +01:00
php70 = generic {
2017-08-12 17:16:53 +02:00
version = "7.0.22";
sha256 = "1ppxdlyb9vapcmzylml447vrlizam72h1w41vvn15pdbd5zv5q48";
2015-12-02 13:52:17 +01:00
};
2016-12-13 21:55:05 +01:00
php71 = generic {
2017-08-12 17:17:32 +02:00
version = "7.1.8";
sha256 = "1y527hs9yh9lmr38q3rf7gkhnvk49vh4nyhci6852mjhjh5a0r3h";
2016-12-13 21:55:05 +01:00
};
2015-08-11 13:13:28 +02:00
}