diff options
author | Marc Weber <marco-oweber@gmx.de> | 2009-03-06 23:21:28 +0000 |
---|---|---|
committer | Marc Weber <marco-oweber@gmx.de> | 2009-03-06 23:21:28 +0000 |
commit | b56ed358510c2c2f44af2dd5bd278c24a0b77bcd (patch) | |
tree | 3209e32b4745e13d189faeb3b5f3b61c3f9b30ca /pkgs/development/interpreters/php_configurable/default.nix | |
parent | 51289a41b011209fdf5955f3a9e1d3e69d70c5be (diff) | |
download | nixpkgs-b56ed358510c2c2f44af2dd5bd278c24a0b77bcd.tar nixpkgs-b56ed358510c2c2f44af2dd5bd278c24a0b77bcd.tar.gz nixpkgs-b56ed358510c2c2f44af2dd5bd278c24a0b77bcd.tar.bz2 nixpkgs-b56ed358510c2c2f44af2dd5bd278c24a0b77bcd.tar.lz nixpkgs-b56ed358510c2c2f44af2dd5bd278c24a0b77bcd.tar.xz nixpkgs-b56ed358510c2c2f44af2dd5bd278c24a0b77bcd.tar.zst nixpkgs-b56ed358510c2c2f44af2dd5bd278c24a0b77bcd.zip |
replacing applyAndFun by lib.defaultOverridableDelayableArgs
applyAndFun has a bug resulting in the same arg beeing added more than once when using a concatenating merge function for the attr set. I've tried giving the function a name "overridableDelayableArgs" which resembles its usage much more. important refactoring: applyAndFun had .fun and .funMerge only when passing the merge function lib.mergeOrApply composableDerivation { initial = { ... }; } to overridableDelayableArgs has always .replace and .merge composableDerivation {} { ... } svn path=/nixpkgs/trunk/; revision=14428
Diffstat (limited to 'pkgs/development/interpreters/php_configurable/default.nix')
-rw-r--r-- | pkgs/development/interpreters/php_configurable/default.nix | 295 |
1 files changed, 146 insertions, 149 deletions
diff --git a/pkgs/development/interpreters/php_configurable/default.nix b/pkgs/development/interpreters/php_configurable/default.nix index 025e48a0a7b..954cea1a4d4 100644 --- a/pkgs/development/interpreters/php_configurable/default.nix +++ b/pkgs/development/interpreters/php_configurable/default.nix @@ -4,177 +4,174 @@ args: with args; let inherit (args.composableDerivation) composableDerivation edf wwf; in -composableDerivation { - initial = fixed : { +composableDerivation {} ( fixed : { - name = "php_configurable-${version}"; + name = "php_configurable-${version}"; - buildInputs = ["flex" "bison" "pkgconfig"]; + buildInputs = ["flex" "bison" "pkgconfig"]; - flags = { + flags = { # much left to do here... - # SAPI modules: - - apxs2 = { - configureFlags = ["--with-apxs2=${apacheHttpd}/bin/apxs"]; - buildInputs = [apacheHttpd]; - }; - - # Extensions + # SAPI modules: + + apxs2 = { + configureFlags = ["--with-apxs2=${apacheHttpd}/bin/apxs"]; + buildInputs = [apacheHttpd]; + }; - curl = { - configureFlags = ["--with-curl=${args.curl}" "--with-curlwrappers"]; - buildInputs = [curl]; - }; - - zlib = { - configureFlags = ["--with-zlib=${args.zlib}"]; - buildInputs = [zlib]; - }; + # Extensions - libxml2 = { - configureFlags = ["--with-libxml-dir=${libxml2}"]; - buildInputs = [ libxml2 ]; - }; - - postgresql = { - configureFlags = ["--with-pgsql=${postgresql}"]; - buildInputs = [ postgresql ]; - }; + curl = { + configureFlags = ["--with-curl=${args.curl}" "--with-curlwrappers"]; + buildInputs = [curl]; + }; - mysql = { - configureFlags = ["--with-mysql=${mysql}"]; - buildInputs = [ mysql ]; - }; - - mysqli = { - configureFlags = ["--with-mysqli=${mysql}/bin/mysql_config"]; - buildInputs = [ mysql]; - }; + zlib = { + configureFlags = ["--with-zlib=${args.zlib}"]; + buildInputs = [zlib]; + }; - mysqli_embedded = { - configureFlags = ["--enable-embedded-mysqli"]; - depends = "mysqli"; - assertion = fixed.mysqliSupport; - }; + libxml2 = { + configureFlags = ["--with-libxml-dir=${libxml2}"]; + buildInputs = [ libxml2 ]; + }; + + postgresql = { + configureFlags = ["--with-pgsql=${postgresql}"]; + buildInputs = [ postgresql ]; + }; + + mysql = { + configureFlags = ["--with-mysql=${mysql}"]; + buildInputs = [ mysql ]; + }; - pdo_mysql = { - configureFlags = ["--with-pdo-mysql=${mysql}"]; - buildInputs = [ mysql ]; - }; - - bcmath = { - configureFlags = ["--enable-bcmath"]; - }; + mysqli = { + configureFlags = ["--with-mysqli=${mysql}/bin/mysql_config"]; + buildInputs = [ mysql]; + }; - gd = { - configureFlags = ["--with-gd=${args.gd}"]; - buildInputs = [gd]; - }; + mysqli_embedded = { + configureFlags = ["--enable-embedded-mysqli"]; + depends = "mysqli"; + assertion = fixed.mysqliSupport; + }; - sockets = { - configureFlags = ["--enable-sockets"]; - }; + pdo_mysql = { + configureFlags = ["--with-pdo-mysql=${mysql}"]; + buildInputs = [ mysql ]; + }; + + bcmath = { + configureFlags = ["--enable-bcmath"]; + }; - openssl = { - configureFlags = ["--with-openssl=${args.openssl}"]; - buildInputs = ["openssl"]; - }; + gd = { + configureFlags = ["--with-gd=${args.gd}"]; + buildInputs = [gd]; + }; - mbstring = { - configureFlags = ["--enable-mbstring"]; - }; + sockets = { + configureFlags = ["--enable-sockets"]; + }; - /* - Building xdebug withing php to be able to add the parameters to the ini file.. Ther should be a better way - meta = { - description = "debugging support for PHP"; - homepage = http://xdebug.org; - license = "based on the PHP license - as is"; - }; - */ - xdebug = { - buildInputs = [ automake autoconf ]; - xdebug_src = args.fetchurl { - name = "xdebug-2.0.2.tar.gz"; - url = "http://xdebug.org/link.php?url=xdebug202"; - sha256 = "1h0bxvf8krr203fmk1k7izrrr81gz537xmd3pqh4vslwdlbhrvic"; - }; - }; + openssl = { + configureFlags = ["--with-openssl=${args.openssl}"]; + buildInputs = ["openssl"]; }; - cfg = { - mysqlSupport = true; - mysqliSupport = true; - pdo_mysqlSupport = true; - libxml2Support = true; - apxs2Support = true; - bcmathSupport = true; - socketsSupport = true; - curlSupport = true; - gettextSupport = true; - postgresqlSupport = true; - zlibSupport = true; - opnesslSupport = true; - xdebugSupport = true; - mbstringSupport = true; - gdSupport = true; - }; + mbstring = { + configureFlags = ["--enable-mbstring"]; + }; - configurePhase = '' - iniFile=$out/etc/$name.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-recommended $iniFile - - # Now Let's build xdebug if flag has been given - # TODO I think there are better paths than the given below - if [ -n $flag_set_xdebug ]; then - PATH=$PATH:$out/bin - tar xfz $xdebug_src; - cd xdebug* - phpize - ./configure --prefix=$out - make - ensureDir $out/lib; cp modules/xdebug.so $out/lib - cat >> $out/etc/php.ini << EOF - zend_extension="$out/lib/xdebug.so" - zend_extension_ts="$out/lib/xdebug.so" - zend_extension_debug="$out/lib/xdebug.so" - xdebug.remote_enable=true - xdebug.remote_host=127.0.0.1 - xdebug.remote_port=9000 - xdebug.remote_handler=dbgp - xdebug.profiler_enable=0 - xdebug.profiler_output_dir="/tmp/xdebug" - xdebug.remote_mode=req - max_execution_time = 300 - date.timezone = UTC - EOF - fi - ''; - - src = args.fetchurl { - url = "http://nl.php.net/get/php-${version}.tar.bz2/from/this/mirror"; - md5 = "7380ffecebd95c6edb317ef861229ebd"; - name = "php-${version}.tar.bz2"; + /* + Building xdebug withing php to be able to add the parameters to the ini file.. Ther should be a better way + meta = { + description = "debugging support for PHP"; + homepage = http://xdebug.org; + license = "based on the PHP license - as is"; + }; + */ + xdebug = { + buildInputs = [ automake autoconf ]; + xdebug_src = args.fetchurl { + name = "xdebug-2.0.2.tar.gz"; + url = "http://xdebug.org/link.php?url=xdebug202"; + sha256 = "1h0bxvf8krr203fmk1k7izrrr81gz537xmd3pqh4vslwdlbhrvic"; + }; + }; }; - meta = { - description = "The PHP language runtime engine"; - homepage = http://www.php.net/; - license = "PHP-3"; - }; + cfg = { + mysqlSupport = true; + mysqliSupport = true; + pdo_mysqlSupport = true; + libxml2Support = true; + apxs2Support = true; + bcmathSupport = true; + socketsSupport = true; + curlSupport = true; + gettextSupport = true; + postgresqlSupport = true; + zlibSupport = true; + opnesslSupport = true; + xdebugSupport = true; + mbstringSupport = true; + gdSupport = true; + }; - patches = [./fix.patch]; + configurePhase = '' + iniFile=$out/etc/$name.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-recommended $iniFile + + # Now Let's build xdebug if flag has been given + # TODO I think there are better paths than the given below + if [ -n $flag_set_xdebug ]; then + PATH=$PATH:$out/bin + tar xfz $xdebug_src; + cd xdebug* + phpize + ./configure --prefix=$out + make + ensureDir $out/lib; cp modules/xdebug.so $out/lib + cat >> $out/etc/php.ini << EOF + zend_extension="$out/lib/xdebug.so" + zend_extension_ts="$out/lib/xdebug.so" + zend_extension_debug="$out/lib/xdebug.so" + xdebug.remote_enable=true + xdebug.remote_host=127.0.0.1 + xdebug.remote_port=9000 + xdebug.remote_handler=dbgp + xdebug.profiler_enable=0 + xdebug.profiler_output_dir="/tmp/xdebug" + xdebug.remote_mode=req + max_execution_time = 300 + date.timezone = UTC + EOF + fi + ''; + + src = args.fetchurl { + url = "http://nl.php.net/get/php-${version}.tar.bz2/from/this/mirror"; + md5 = "7380ffecebd95c6edb317ef861229ebd"; + name = "php-${version}.tar.bz2"; + }; + meta = { + description = "The PHP language runtime engine"; + homepage = http://www.php.net/; + license = "PHP-3"; }; -} + patches = [./fix.patch]; + +}) |