diff --git a/pkgs/development/interpreters/php/5.2.nix b/pkgs/development/interpreters/php/5.2.nix new file mode 100644 index 000000000000..8063b1a55124 --- /dev/null +++ b/pkgs/development/interpreters/php/5.2.nix @@ -0,0 +1,166 @@ +args: with args; + +let + + inherit (args.composableDerivation) composableDerivation edf wwf; + +in + +composableDerivation {} ( fixed : let inherit (fixed.fixed) version; in { + + version = "5.2.14"; + + name = "php_configurable-${version}"; + + buildInputs = ["flex" "bison" "pkgconfig"]; + + flags = { + +# much left to do here... + + # SAPI modules: + + apxs2 = { + configureFlags = ["--with-apxs2=${apacheHttpd}/bin/apxs"]; + buildInputs = [apacheHttpd]; + }; + + # Extensions + + curl = { + configureFlags = ["--with-curl=${args.curl}" "--with-curlwrappers"]; + buildInputs = [curl openssl]; + }; + + zlib = { + configureFlags = ["--with-zlib=${args.zlib}"]; + buildInputs = [zlib]; + }; + + libxml2 = { + configureFlags = [ + "--with-libxml-dir=${libxml2}" + "--with-iconv-dir=${libiconv}" + ]; + buildInputs = [ libxml2 ]; + }; + + sqlite = { + configureFlags = ["--with-pdo-sqlite=${sqlite}"]; + buildInputs = [ sqlite ]; + }; + + postgresql = { + configureFlags = ["--with-pgsql=${postgresql}"]; + buildInputs = [ postgresql ]; + }; + + mysql = { + configureFlags = ["--with-mysql=${mysql}"]; + buildInputs = [ mysql ]; + }; + + mysqli = { + configureFlags = ["--with-mysqli=${mysql}/bin/mysql_config"]; + buildInputs = [ mysql]; + }; + + mysqli_embedded = { + configureFlags = ["--enable-embedded-mysqli"]; + depends = "mysqli"; + assertion = fixed.mysqliSupport; + }; + + pdo_mysql = { + configureFlags = ["--with-pdo-mysql=${mysql}"]; + buildInputs = [ mysql ]; + }; + + bcmath = { + configureFlags = ["--enable-bcmath"]; + }; + + gd = { + configureFlags = ["--with-gd=${args.gd}"]; + buildInputs = [gd libpng libjpeg ]; + }; + + soap = { + configureFlags = ["--enable-soap"]; + }; + + sockets = { + configureFlags = ["--enable-sockets"]; + }; + + openssl = { + configureFlags = ["--with-openssl=${args.openssl}"]; + buildInputs = ["openssl"]; + }; + + mbstring = { + configureFlags = ["--enable-mbstring"]; + }; + + /* + php is build within this derivation in order to add the xdebug lines to the php.ini. + So both Apache and command line php both use xdebug without having to configure anything. + Xdebug could be put in its own derivation. + * / + meta = { + description = "debugging support for PHP"; + homepage = http://xdebug.org; + license = "based on the PHP license - as is"; + }; + */ + }; + + cfg = { + mysqlSupport = getConfig ["php" "mysql"] true; + mysqliSupport = getConfig ["php" "mysqli"] true; + pdo_mysqlSupport = getConfig ["php" "pdo_mysql"] true; + libxml2Support = getConfig ["php" "libxml2"] true; + apxs2Support = getConfig ["php" "apxs2"] true; + bcmathSupport = getConfig ["php" "bcmath"] true; + socketsSupport = getConfig ["php" "sockets"] true; + curlSupport = getConfig ["php" "curl"] true; + gettextSupport = getConfig ["php" "gettext"] true; + postgresqlSupport = getConfig ["php" "postgresql"] true; + sqliteSupport = getConfig ["php" "sqlite"] true; + soapSupport = getConfig ["php" "soap"] true; + zlibSupport = getConfig ["php" "zlib"] true; + opensslSupport = getConfig ["php" "openssl"] true; + mbstringSupport = getConfig ["php" "mbstring"] true; + gdSupport = getConfig ["php" "gd"] true; + }; + + configurePhase = '' + 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 + echo configurePhase end + ''; + + installPhase = '' + unset installPhase; installPhase; + cp php.ini-${ if builtins.lessThan (builtins.compareVersions version "5.3") 0 + then "recommended" /* < PHP 5.3 */ + else "production" /* >= PHP 5.3 */ + } $iniFile + ''; + + src = args.fetchurl { + url = "http://nl.php.net/get/php-${version}.tar.bz2/from/this/mirror"; + sha256 = "1l9b7iv0f6ds9x2ayclcfgjh62xbabbv11ixp5cqsyaq2ba5ynsi"; + name = "php-${version}.tar.bz2"; + }; + + meta = { + description = "The PHP language runtime engine"; + homepage = http://www.php.net/; + license = "PHP-3"; + }; + + patches = [./fix.patch]; + +}) diff --git a/pkgs/development/interpreters/php/default.nix b/pkgs/development/interpreters/php/5.3.nix similarity index 100% rename from pkgs/development/interpreters/php/default.nix rename to pkgs/development/interpreters/php/5.3.nix diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 2a01ec25f37c..eaeed3a2104a 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -2109,7 +2109,16 @@ let perl = if system != "i686-cygwin" then perl510 else sysPerl; - php = makeOverridable (import ../development/interpreters/php) { + php = php5_3; + + php5_2 = makeOverridable (import ../development/interpreters/php/5.2.nix) { + inherit + stdenv fetchurl lib composableDerivation autoconf automake + flex bison apacheHttpd mysql libxml2 + zlib curl gd postgresql openssl pkgconfig sqlite getConfig libiconv libjpeg libpng; + }; + + php5_3 = makeOverridable (import ../development/interpreters/php/5.3.nix) { inherit stdenv fetchurl lib composableDerivation autoconf automake flex bison apacheHttpd mysql libxml2