summary refs log tree commit diff
path: root/pkgs/development
diff options
context:
space:
mode:
authorMarc Weber <marco-oweber@gmx.de>2010-01-06 17:04:38 +0000
committerMarc Weber <marco-oweber@gmx.de>2010-01-06 17:04:38 +0000
commit900a1c22a4f528a3702e74b24b1c31a654ce9924 (patch)
tree59aaa9da30d758e3438ab838b4c1a2484e9719f3 /pkgs/development
parent4220742818c6fd789c0bd4835b95342bba554211 (diff)
downloadnixlib-900a1c22a4f528a3702e74b24b1c31a654ce9924.tar
nixlib-900a1c22a4f528a3702e74b24b1c31a654ce9924.tar.gz
nixlib-900a1c22a4f528a3702e74b24b1c31a654ce9924.tar.bz2
nixlib-900a1c22a4f528a3702e74b24b1c31a654ce9924.tar.lz
nixlib-900a1c22a4f528a3702e74b24b1c31a654ce9924.tar.xz
nixlib-900a1c22a4f528a3702e74b24b1c31a654ce9924.tar.zst
nixlib-900a1c22a4f528a3702e74b24b1c31a654ce9924.zip
moving xdebug into its own package. This means you have to specify an additional php.ini file to make php debugger work for command line php.
svn path=/nixpkgs/trunk/; revision=19266
Diffstat (limited to 'pkgs/development')
-rw-r--r--pkgs/development/interpreters/php-xdebug/default.nix34
-rw-r--r--pkgs/development/interpreters/php/ini-bulider.nix43
-rw-r--r--pkgs/development/interpreters/php_configurable/default.nix36
3 files changed, 78 insertions, 35 deletions
diff --git a/pkgs/development/interpreters/php-xdebug/default.nix b/pkgs/development/interpreters/php-xdebug/default.nix
new file mode 100644
index 000000000000..d400b3e0a393
--- /dev/null
+++ b/pkgs/development/interpreters/php-xdebug/default.nix
@@ -0,0 +1,34 @@
+args: with args;
+stdenv.mkDerivation {
+  name = "php-xdebug";
+
+  src = args.fetchurl {
+    url = "http://xdebug.org/files/xdebug-2.0.5.tgz";
+    sha256 = "1cmq7c36gj8n41mfq1wba5rij8j77yqhydpcsbcysk1zchg68f26";
+  };
+
+  buildInputs = [php autoconf automake];
+
+  configurePhase = ''
+    phpize
+    ./configure --prefix=$out
+  '';
+
+  buildPhase = ''
+    make && make test
+  '';
+
+  installPhase = ''
+    ensureDir $out/lib/xdebug
+    cp modules/xdebug.so $out/lib
+    cp LICENSE $out/lib/xdebug
+  '';
+
+  meta = {
+    description = "php debugger and profiler extension";
+    homepage = http://xdebug.org/;
+    license = "xdebug"; # based on PHP-3
+    maintainers = [args.lib.maintainers.marcweber];
+    platforms = args.lib.platforms.linux;
+  };
+}
diff --git a/pkgs/development/interpreters/php/ini-bulider.nix b/pkgs/development/interpreters/php/ini-bulider.nix
new file mode 100644
index 000000000000..72179fd068bd
--- /dev/null
+++ b/pkgs/development/interpreters/php/ini-bulider.nix
@@ -0,0 +1,43 @@
+{runCommand, php, appendLines ? "", prefixPhpRecommended ? true} :
+
+
+/*
+
+NixOS: see apache-httpd/default.nix's phpIni option
+
+to enable Xdebug append these lines:
+  ''
+      zend_extension="${pkgs.phpXdebug}/lib/xdebug.so"
+      zend_extension_ts="${pkgs.phpXdebug}/lib/xdebug.so"
+      zend_extension_debug="${pkgs.phpXdebug}/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
+  ''
+
+to make php's mail() function work add
+  ''
+   ; Needed for PHP's mail() function.
+   sendmail_path = sendmail -t -i
+  ''
+*/
+
+
+runCommand "php.ini"
+  {
+    inherit php appendLines prefixPhpRecommended;
+  }
+  ''
+    [ -z "$prefixPhpRecommended" ] || {
+      {
+      echo "# PHP RECOMMENDED INI START"
+      cat $php/etc/php-recommended.ini
+      echo "# PHP RECOMMENDED INI END"
+      } >> $out
+    }
+    echo "$appendLines" >> $out
+  ''
diff --git a/pkgs/development/interpreters/php_configurable/default.nix b/pkgs/development/interpreters/php_configurable/default.nix
index 07ac6f90a1b3..eb4a29dd720d 100644
--- a/pkgs/development/interpreters/php_configurable/default.nix
+++ b/pkgs/development/interpreters/php_configurable/default.nix
@@ -106,13 +106,6 @@ composableDerivation {} ( fixed : {
                 license = "based on the PHP license - as is";
                 };
       */
-      xdebug = {
-        buildInputs = [ automake autoconf ];
-        xdebug_src = args.fetchurl {
-          url = "http://xdebug.org/files/xdebug-2.0.5.tgz";
-          sha256 = "1cmq7c36gj8n41mfq1wba5rij8j77yqhydpcsbcysk1zchg68f26";
-        };
-      };
     };
 
   cfg = {
@@ -130,14 +123,13 @@ composableDerivation {} ( fixed : {
     soapSupport = getConfig ["php" "soap"] true;
     zlibSupport = getConfig ["php" "zlib"] true;
     opensslSupport = getConfig ["php" "openssl"] true;
-    xdebugSupport = getConfig ["php" "xdebug"] false;
     mbstringSupport = getConfig ["php" "mbstring"] true;
     gdSupport = getConfig ["php" "gd"] true;
   };
 
   # only -O1
   configurePhase = ''
-    iniFile=$out/etc/$name.ini
+    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
@@ -147,32 +139,6 @@ composableDerivation {} ( fixed : {
   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 "$xdebug_src" ]; 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 {