summary refs log tree commit diff
path: root/pkgs/development/interpreters/php/5.5.nix
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/development/interpreters/php/5.5.nix')
-rw-r--r--pkgs/development/interpreters/php/5.5.nix270
1 files changed, 270 insertions, 0 deletions
diff --git a/pkgs/development/interpreters/php/5.5.nix b/pkgs/development/interpreters/php/5.5.nix
new file mode 100644
index 00000000000..87aff4ff1a2
--- /dev/null
+++ b/pkgs/development/interpreters/php/5.5.nix
@@ -0,0 +1,270 @@
+{ stdenv, fetchurl, composableDerivation, autoconf, automake, flex, bison
+, apacheHttpd, 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 }:
+
+let
+  libmcryptOverride = libmcrypt.override { disablePosixThreads = true; };
+in
+
+composableDerivation.composableDerivation {} ( fixed : let inherit (fixed.fixed) version; in {
+
+  version = "5.5.21";
+
+  name = "php-${version}";
+
+  enableParallelBuilding = true;
+
+  buildInputs = ["flex" "bison" "pkgconfig"];
+
+  flags = {
+
+    # much left to do here...
+
+    # SAPI modules:
+
+      apxs2 = {
+        configureFlags = ["--with-apxs2=${apacheHttpd}/bin/apxs"];
+        buildInputs = [apacheHttpd];
+      };
+
+      # Extensions
+      imap = {
+        configureFlags = [
+          "--with-imap=${uwimap}"
+          "--with-imap-ssl"
+          ];
+        buildInputs = [ uwimap openssl pam ];
+      };
+
+      ldap = {
+        configureFlags = ["--with-ldap=${openldap}"];
+        buildInputs = [openldap cyrus_sasl openssl];
+      };
+
+      mhash = {
+        configureFlags = ["--with-mhash"];
+        buildInputs = [libmhash];
+      };
+
+      curl = {
+        configureFlags = ["--with-curl=${curl}"];
+        buildInputs = [curl openssl];
+      };
+
+      zlib = {
+        configureFlags = ["--with-zlib=${zlib}"];
+        buildInputs = [zlib];
+      };
+
+      libxml2 = {
+        configureFlags = [
+          "--with-libxml-dir=${libxml2}"
+          ];
+        buildInputs = [ libxml2 ];
+      };
+
+      pcntl = {
+        configureFlags = [ "--enable-pcntl" ];
+      };
+
+      readline = {
+        configureFlags = ["--with-readline=${readline}"];
+        buildInputs = [ readline ];
+      };
+
+      sqlite = {
+        configureFlags = ["--with-pdo-sqlite=${sqlite}"];
+        buildInputs = [ sqlite ];
+      };
+
+      postgresql = {
+        configureFlags = ["--with-pgsql=${postgresql}"];
+        buildInputs = [ postgresql ];
+      };
+
+      pdo_pgsql = {
+        configureFlags = ["--with-pdo-pgsql=${postgresql}"];
+        buildInputs = [ postgresql ];
+      };
+
+      mysql = {
+        configureFlags = ["--with-mysql=${mysql.lib}"];
+        buildInputs = [ mysql.lib ];
+      };
+
+      mysqli = {
+        configureFlags = ["--with-mysqli=${mysql.lib}/bin/mysql_config"];
+        buildInputs = [ mysql.lib ];
+      };
+
+      mysqli_embedded = {
+        configureFlags = ["--enable-embedded-mysqli"];
+        depends = "mysqli";
+        assertion = fixed.mysqliSupport;
+      };
+
+      pdo_mysql = {
+        configureFlags = ["--with-pdo-mysql=${mysql.lib}"];
+        buildInputs = [ mysql.lib ];
+      };
+
+      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}"
+          "--with-png-dir=${libpng}"
+          "--with-jpeg-dir=${libjpeg}"
+        ];
+        buildInputs = [ libpng libjpeg freetype ];
+      };
+
+      gmp = {
+        configureFlags = ["--with-gmp=${gmp}"];
+        buildInputs = [ gmp ];
+      };
+
+      soap = {
+        configureFlags = ["--enable-soap"];
+      };
+
+      sockets = {
+        configureFlags = ["--enable-sockets"];
+      };
+
+      openssl = {
+        configureFlags = ["--with-openssl=${openssl}"];
+        buildInputs = ["openssl"];
+      };
+
+      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}"];
+        buildInputs = [libxslt];
+      };
+
+      mcrypt = {
+        configureFlags = ["--with-mcrypt=${libmcryptOverride}"];
+        buildInputs = [libmcryptOverride];
+      };
+
+      bz2 = {
+        configureFlags = ["--with-bz2=${bzip2}"];
+        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];
+      };
+
+      calendar = {
+        configureFlags = ["--enable-calendar"];
+      };
+    };
+
+  cfg = {
+    imapSupport = config.php.imap or true;
+    ldapSupport = config.php.ldap or true;
+    mhashSupport = config.php.mhash or true;
+    mysqlSupport = 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;
+    apxs2Support = config.php.apxs2 or true;
+    bcmathSupport = config.php.bcmath or true;
+    socketsSupport = config.php.sockets or true;
+    curlSupport = config.php.curl or true;
+    gettextSupport = config.php.gettext or true;
+    pcntlSupport = config.php.pcntl or true;
+    postgresqlSupport = config.php.postgresql 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 = config.php.mssql or (!stdenv.isDarwin);
+    calendarSupport = config.php.calendar or true;
+  };
+
+  configurePhase = ''
+    # Don't record the configure flags since this causes unnecessary
+    # runtime dependencies.
+    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
+
+    iniFile=$out/etc/php-recommended.ini
+    [[ -z "$libxml2" ]] || export PATH=$PATH:$libxml2/bin
+    ./configure --with-config-file-scan-dir=/etc --with-config-file-path=$out/etc --prefix=$out $configureFlags
+  '';
+
+  installPhase = ''
+    unset installPhase; installPhase;
+    cp php.ini-production $iniFile
+  '';
+
+  src = fetchurl {
+    url = "http://www.php.net/distributions/php-${version}.tar.bz2";
+    sha256 = "1zl3valcak5hb4fmivpfa66arwpvi19js1d5cxq5vjn4fncl5sb2";
+  };
+
+  meta = with stdenv.lib; {
+    description = "An HTML-embedded scripting language";
+    homepage = http://www.php.net/;
+    license = stdenv.lib.licenses.php301;
+    maintainers = with maintainers; [ globin ];
+  };
+
+  patches = [ ./fix-paths.patch ];
+
+})