]> granicus.if.org Git - php/commitdiff
This commit was manufactured by cvs2svn to create branch 'PHP_4_2_0'.
authorSVN Migration <svn@php.net>
Tue, 9 Apr 2002 17:15:18 +0000 (17:15 +0000)
committerSVN Migration <svn@php.net>
Tue, 9 Apr 2002 17:15:18 +0000 (17:15 +0000)
pear/Makefile.frag [new file with mode: 0644]
pear/PEAR/Command/Package.php [new file with mode: 0644]
pear/package-db.xml [new file with mode: 0644]

diff --git a/pear/Makefile.frag b/pear/Makefile.frag
new file mode 100644 (file)
index 0000000..1395913
--- /dev/null
@@ -0,0 +1,191 @@
+# -*- makefile -*-
+
+pear_install_targets = \
+       install-pear \
+       install-headers \
+       install-build \
+       install-programs
+
+peardir=$(PEAR_INSTALLDIR)
+
+PEAR_SUBDIRS = \
+       Archive \
+       Console \
+       PEAR \
+       PEAR/Command \
+       PEAR/Frontend \
+       XML 
+
+# These are moving to /pear (in cvs):
+#      Crypt \
+#      File \
+#      Date \
+#      DB \
+#      HTML \
+#      HTTP \
+#      Image \
+#      Mail \
+#      Net \
+#      Schedule \
+
+PEAR_FILES = \
+       Archive/Tar.php \
+       Console/Getopt.php \
+       PEAR.php \
+       PEAR/Autoloader.php \
+       PEAR/Command.php \
+       PEAR/Command/Auth.php \
+       PEAR/Command/Common.php \
+       PEAR/Command/Config.php \
+       PEAR/Command/Install.php \
+       PEAR/Command/Package.php \
+       PEAR/Command/Registry.php \
+       PEAR/Command/Remote.php \
+       PEAR/Frontend/CLI.php \
+       PEAR/Common.php \
+       PEAR/Config.php \
+       PEAR/Dependency.php \
+       PEAR/Installer.php \
+       PEAR/Packager.php \
+       PEAR/Registry.php \
+       PEAR/Remote.php \
+       System.php \
+       XML/Parser.php 
+
+# These are moving to /pear (in cvs):
+#      Crypt/CBC.php \
+#      Crypt/HCEMD5.php \
+#      DB.php \
+#      DB/common.php \
+#      DB/fbsql.php \
+#      DB/ibase.php \
+#      DB/ifx.php \
+#      DB/msql.php \
+#      DB/mssql.php \
+#      DB/mysql.php \
+#      DB/oci8.php \
+#      DB/odbc.php \
+#      DB/pgsql.php \
+#      DB/storage.php \
+#      DB/sybase.php \
+#      Date/Calc.php \
+#      Date/Human.php \
+#      File/Find.php \
+#      File/Passwd.php \
+#      File/SearchReplace.php \
+#      HTML/Common.php \
+#      HTML/Form.php \
+#      HTML/IT.php \
+#      HTML/ITX.php \
+#      HTML/IT_Error.php \
+#      HTML/Page.php \
+#      HTML/Processor.php \
+#      HTML/Select.php \
+#      HTML/Table.php \
+#      HTTP.php \
+#      HTTP/Compress.php \
+#      Mail.php \
+#      Mail/RFC822.php \
+#      Mail/sendmail.php \
+#      Mail/smtp.php \
+#      Net/Curl.php \
+#      Net/Dig.php \
+#      Net/SMTP.php \
+#      Net/Socket.php \
+#      Schedule/At.php \
+
+PEAR_PACKAGES=\
+       Net_Socket-1.0.tgz
+
+
+install-pear:
+       @if $(mkinstalldirs) $(INSTALL_ROOT)$(peardir); then \
+               for i in $(PEAR_SUBDIRS); do \
+                       $(mkinstalldirs) $(INSTALL_ROOT)$(peardir)/$$i; \
+               done; \
+               for dir in PEAR/CommandUI; do \
+                       test -d $(INSTALL_ROOT)$(peardir)/$$dir && rm -rf $(INSTALL_ROOT)$(peardir)/$$dir; \
+               done; \
+               for i in $(PEAR_FILES); do \
+                       echo "Installing $$i"; \
+                       dir=`echo $$i|sed 's%[^/][^/]*$$%%'`; \
+                       $(INSTALL_DATA) $(srcdir)/$$i $(INSTALL_ROOT)$(peardir)/$$dir; \
+               done; \
+               rm -f $(INSTALL_ROOT)$(peardir)/PEAR/Command/Login.php; \
+               rm -f $(INSTALL_ROOT)$(peardir)/PEAR/CommandUI/CLI.php; \
+               rm -f $(INSTALL_ROOT)$(peardir)/PEAR/CommandResponse.php; \
+               rm -f $(INSTALL_ROOT)$(peardir)/PEAR/Uploader.php; \
+       else \
+               cat $(srcdir)/install-pear.txt; \
+               exit 5; \
+       fi
+
+phpincludedir = $(includedir)/php
+phpbuilddir = $(prefix)/lib/php/build
+
+BUILD_FILES = \
+       pear/pear.m4 \
+       build/mkdep.awk \
+       build/shtool \
+       Makefile.global \
+       scan_makefile_in.awk \
+       acinclude.m4
+
+bin_SCRIPTS = phpize php-config pear pearize phptar
+
+install-build:
+       @echo "Installing build environment"
+       @$(mkinstalldirs) $(INSTALL_ROOT)$(phpbuilddir) $(INSTALL_ROOT)$(bindir) && \
+       (cd $(top_srcdir) && cp $(BUILD_FILES) $(INSTALL_ROOT)$(phpbuilddir))
+
+install-programs:
+       @for prog in $(bin_SCRIPTS); do \
+               echo "Installing program: $$prog"; \
+               $(INSTALL) -m 755 $(builddir)/scripts/$$prog $(INSTALL_ROOT)$(bindir)/$$prog; \
+       done; \
+       for file in $(INSTALL_ROOT)$(bindir)/pearcmd-*.php; do \
+               rm -f $$file; \
+       done; \
+       for prog in phpextdist; do \
+               echo "Installing program: $$prog"; \
+               $(INSTALL) -m 755 $(srcdir)/scripts/$$prog $(INSTALL_ROOT)$(bindir)/$$prog; \
+       done
+
+HEADER_DIRS = \
+       / \
+       Zend \
+       TSRM \
+       ext/standard \
+       ext/session \
+       ext/xml \
+       ext/xml/expat \
+       main \
+       ext/mbstring \
+       ext/pgsql \
+       regex
+
+install-headers:
+       -@for i in $(HEADER_DIRS); do \
+               paths="$$paths $(INSTALL_ROOT)$(phpincludedir)/$$i"; \
+       done; \
+       $(mkinstalldirs) $$paths && \
+       echo "Installing header files" && \
+       for i in $(HEADER_DIRS); do \
+               (cd $(top_srcdir)/$$i && cp -p *.h $(INSTALL_ROOT)$(phpincludedir)/$$i; \
+               cd $(top_builddir)/$$i && cp -p *.h $(INSTALL_ROOT)$(phpincludedir)/$$i) 2>/dev/null || true; \
+       done
+
+$(builddir)/scripts/pear: $(srcdir)/scripts/pear.in $(top_builddir)/config.status
+       (CONFIG_FILES=$@ CONFIG_HEADERS= $(top_builddir)/config.status)
+
+$(builddir)/scripts/phpize: $(srcdir)/scripts/phpize.in $(top_builddir)/config.status
+       (CONFIG_FILES=$@ CONFIG_HEADERS= $(top_builddir)/config.status)
+
+$(builddir)/scripts/phptar: $(srcdir)/scripts/phptar.in $(top_builddir)/config.status
+       (CONFIG_FILES=$@ CONFIG_HEADERS= $(top_builddir)/config.status)
+
+$(builddir)/scripts/pearize: $(srcdir)/scripts/pearize.in $(top_builddir)/config.status
+       (CONFIG_FILES=$@ CONFIG_HEADERS= $(top_builddir)/config.status)
+
+$(builddir)/scripts/php-config: $(srcdir)/scripts/php-config.in $(top_builddir)/config.status
+       (CONFIG_FILES=$@ CONFIG_HEADERS= $(top_builddir)/config.status)
diff --git a/pear/PEAR/Command/Package.php b/pear/PEAR/Command/Package.php
new file mode 100644 (file)
index 0000000..eb2d977
--- /dev/null
@@ -0,0 +1,389 @@
+<?php
+//
+// +----------------------------------------------------------------------+
+// | PHP Version 4                                                        |
+// +----------------------------------------------------------------------+
+// | Copyright (c) 1997-2002 The PHP Group                                |
+// +----------------------------------------------------------------------+
+// | This source file is subject to version 2.02 of the PHP license,      |
+// | that is bundled with this package in the file LICENSE, and is        |
+// | available at through the world-wide-web at                           |
+// | http://www.php.net/license/2_02.txt.                                 |
+// | If you did not receive a copy of the PHP license and are unable to   |
+// | obtain it through the world-wide-web, please send a note to          |
+// | license@php.net so we can mail you a copy immediately.               |
+// +----------------------------------------------------------------------+
+// | Author: Stig Bakken <ssb@fast.no>                                    |
+// +----------------------------------------------------------------------+
+//
+// $Id$
+
+require_once 'PEAR/Command/Common.php';
+require_once 'PEAR/Packager.php';
+require_once 'PEAR/Common.php';
+
+class PEAR_Command_Package extends PEAR_Command_Common
+{
+    // {{{ constructor
+
+    /**
+     * PEAR_Command_Package constructor.
+     *
+     * @access public
+     */
+    function PEAR_Command_Package(&$ui, &$config)
+    {
+        parent::PEAR_Command_Common($ui, $config);
+    }
+
+    // }}}
+
+    // {{{ _displayValidationResults()
+
+    function _displayValidationResults($err, $warn, $strict = false)
+    {
+        foreach ($err as $e) {
+            $this->ui->displayLine("Error: $e");
+        }
+        foreach ($warn as $w) {
+            $this->ui->displayLine("Warning: $w");
+        }
+        $this->ui->displayLine(sprintf('Validation: %d error(s), %d warning(s)',
+                                       sizeof($err), sizeof($warn)));
+        if ($strict && sizeof($err) > 0) {
+            $this->ui->displayLine("Fix these errors and try again.");
+            return false;
+        }
+        return true;
+    }
+
+    // }}}
+    // {{{ getCommands()
+
+    /**
+     * Return a list of all the commands defined by this class.
+     * @return array list of commands
+     * @access public
+     */
+    function getCommands()
+    {
+        return array('package',
+                     'package-info',
+                     'package-list',
+                     'package-validate',
+                     'cvstag');
+    }
+
+    // }}}
+    // {{{ getOptions()
+
+    function getOptions()
+    {
+        return array('Z', 'n' /*, 'f', 'd', 'q', 'Q'*/);
+    }
+
+    // }}}
+    // {{{ getHelp()
+
+    function getHelp($command)
+    {
+        switch ($command) {
+            case 'package':
+                return array('[<package.xml>]',
+                             'Creates a PEAR package from its description file (usually '.
+                             'named as package.xml)');
+            case 'package-list':
+                return array('<pear package>',
+                             'List the contents of a PEAR package');
+            case 'packge-info':
+                return array('<pear package>',
+                             'Shows information about a PEAR package');
+            case 'package-validate':
+                return array('<package.(tgz|tar|xml)>',
+                             'Verifies a package or description file');
+            case 'cvstag':
+                return array('<package.xml>',
+                             'Runs "cvs tag" on files contained in a release');
+        }
+    }
+
+    // }}}
+    // {{{ run()
+
+    /**
+     * Execute the command.
+     *
+     * @param string command name
+     *
+     * @param array option_name => value
+     *
+     * @param array list of additional parameters
+     *
+     * @return bool TRUE on success, FALSE for unknown commands, or
+     * a PEAR error on failure
+     *
+     * @access public
+     */
+    function run($command, $options, $params)
+    {
+        $failmsg = '';
+        switch ($command) {
+            // {{{ package
+
+            case 'package': {
+                $pkginfofile = isset($params[0]) ? $params[0] : 'package.xml';
+                ob_start();
+                $packager =& new PEAR_Packager($this->config->get('php_dir'),
+                                               $this->config->get('ext_dir'),
+                                               $this->config->get('doc_dir'));
+                $packager->debug = $this->config->get('verbose');
+                $err = $warn = array();
+                $packager->validatePackageInfo($pkginfofile, $err, $warn);
+                if (!$this->_displayValidationResults($err, $warn, true)) {
+                    break;
+                }
+                $compress = empty($options['Z']) ? true : false;
+                $result = $packager->Package($pkginfofile, $compress);
+                $output = ob_get_contents();
+                ob_end_clean();
+                $lines = explode("\n", $output);
+                foreach ($lines as $line) {
+                    $this->ui->displayLine($line);
+                }
+                if (PEAR::isError($result)) {
+                    $this->ui->displayLine("Package failed: ".$result->getMessage());
+                }
+                break;
+            }
+
+            // }}}
+            // {{{ package-list
+
+            case 'package-list': {
+                // $params[0] -> the PEAR package to list its contents
+                if (sizeof($params) != 1) {
+                    $failmsg = "Command package-list requires a valid PEAR package filename ".
+                               " as the first argument. Try the command \"help package-list\"";
+                    break;
+                }
+                $obj = new PEAR_Common();
+
+                if (PEAR::isError($info = $obj->infoFromTgzFile($params[0]))) {
+                    return $info;
+                }
+                $list =$info['filelist'];
+                $caption = 'Contents of ' . basename($params[0]);
+                $this->ui->startTable(array('caption' => $caption,
+                                            'border' => true));
+                $this->ui->tableRow(array('Package Files', 'Install Destination'),
+                                    array('bold' => true));
+                foreach ($list as $file => $att) {
+                    if (isset($att['baseinstalldir'])) {
+                        $dest = $att['baseinstalldir'] . DIRECTORY_SEPARATOR .
+                                $file;
+                    } else {
+                        $dest = $file;
+                    }
+                    switch ($att['role']) {
+                        case 'test':
+                            $dest = '-- will not be installed --'; break;
+                        case 'doc':
+                            $dest = $this->config->get('doc_dir') . DIRECTORY_SEPARATOR .
+                                    $dest;
+                            break;
+                        case 'php':
+                        default:
+                            $dest = $this->config->get('php_dir') . DIRECTORY_SEPARATOR .
+                                    $dest;
+                    }
+                    $dest = preg_replace('!/+!', '/', $dest);
+                    $file = preg_replace('!/+!', '/', $file);
+                    $opts = array(0 => array('wrap' => 23),
+                                  1 => array('wrap' => 45)
+                                 );
+                    $this->ui->tableRow(array($file, $dest), null, $opts);
+                }
+                $this->ui->endTable();
+                break;
+            }
+
+            // }}}
+            // {{{ package-info
+
+            case 'package-info': {
+                $obj = new PEAR_Common();
+                if (PEAR::isError($info = $obj->infoFromTgzFile($params[0]))) {
+                    return $info;
+                }
+                unset($info['filelist']);
+                unset($info['changelog']);
+                $keys = array_keys($info);
+                $longtext = array('description', 'summary');
+                foreach ($keys as $key) {
+                    if (is_array($info[$key])) {
+                        switch ($key) {
+                            case 'maintainers': {
+                                $i = 0;
+                                $mstr = '';
+                                foreach ($info[$key] as $m) {
+                                    if ($i++ > 0) {
+                                        $mstr .= "\n";
+                                    }
+                                    $mstr .= $m['name'] . " <";
+                                    if (isset($m['email'])) {
+                                        $mstr .= $m['email'];
+                                    } else {
+                                        $mstr .= $m['handle'] . '@php.net';
+                                    }
+                                    $mstr .= "> ($m[role])";
+                                }
+                                $info[$key] = $mstr;
+                                break;
+                            }
+                            case 'release_deps': {
+                                static $rel_trans = array(
+                                    'lt' => '<',
+                                    'le' => '<=',
+                                    'eq' => '=',
+                                    'ne' => '!=',
+                                    'gt' => '>',
+                                    'ge' => '>=',
+                                    );
+                                $i = 0;
+                                $dstr = '';
+                                foreach ($info[$key] as $d) {
+                                    if ($i++ > 0) {
+                                        $dstr .= ", ";
+                                    }
+                                    if (isset($rel_trans[$d['rel']])) {
+                                        $d['rel'] = $rel_trans[$d['rel']];
+                                    }
+                                    $dstr .= "$d[type] $d[rel]";
+                                    if (isset($d['version'])) {
+                                        $dstr .= " $d[version]";
+                                    }
+                                }
+                                $info[$key] = $dstr;
+                                break;
+                            }
+                            default: {
+                                $info[$key] = implode(", ", $info[$key]);
+                                break;
+                            }
+                        }
+                    }
+                    $info[$key] = trim($info[$key]);
+                    if (in_array($key, $longtext)) {
+                        $info[$key] = preg_replace('/  +/', ' ', $info[$key]);
+                    }
+                }
+                $caption = 'About ' . basename($params[0]);
+                $this->ui->startTable(array('caption' => $caption,
+                                            'border' => true));
+                foreach ($info as $key => $value) {
+                    $key = ucwords(str_replace('_', ' ', $key));
+                    $this->ui->tableRow(array($key, $value), null, array(1 => array('wrap' => 55)));
+                }
+                $this->ui->endTable();
+                break;
+            }
+
+            // }}}
+            // {{{ package-validate
+
+            case 'package-validate': {
+                if (sizeof($params) < 1) {
+                    $params[0] = "package.xml";
+                }
+                $obj = new PEAR_Common;
+                $info = null;
+                if (file_exists($params[0])) {
+                    $fp = fopen($params[0], "r");
+                    $test = fread($fp, 5);
+                    fclose($fp);
+                    if ($test == "<?xml") {
+                        $info = $obj->infoFromDescriptionFile($params[0]);
+                    }
+                }
+                if (empty($info)) {
+                    $info = $obj->infoFromTgzFile($params[0]);
+                }
+                if (PEAR::isError($info)) {
+                    return $this->raiseError($info);
+                }
+                $obj->validatePackageInfo($info, $err, $warn);
+                $this->_displayValidationResults($err, $warn);
+                break;
+            }
+
+            // }}}
+            // {{{ cvstag
+
+            case 'cvstag': {
+                if (sizeof($params) < 1) {
+                    $help = $this->getHelp($command);
+                    return $this->raiseError("$command: missing parameter: $help[0]");
+                }
+                $obj = new PEAR_Common;
+                $info = $obj->infoFromDescriptionFile($params[0]);
+                if (PEAR::isError($info)) {
+                    return $this->raiseError($info);
+                }
+                $err = $warn = array();
+                $obj->validatePackageInfo($info, $err, $warn);
+                if (!$this->_displayValidationResults($err, $warn, true)) {
+                    break;
+                }
+                $version = $info['version'];
+                $cvsversion = preg_replace('/[^a-z0-9]/i', '_', $version);
+                $cvstag = "RELEASE_$cvsversion";
+                $files = array_keys($info['filelist']);
+                $command = "cvs";
+                /* until the getopt bug is fixed, these won't work:
+                if (isset($options['q'])) {
+                    $command .= ' -q';
+                }
+                if (isset($options['Q'])) {
+                    $command .= ' -Q';
+                }
+                */
+                $command .= ' tag';
+                if (isset($options['f'])) {
+                    $command .= ' -f';
+                }
+                /* neither will this one:
+                if (isset($options['d'])) {
+                    $command .= ' -d';
+                }
+                */
+                $command .= ' ' . $cvstag . ' ' . escapeshellarg($params[0]);
+                foreach ($files as $file) {
+                    $command .= ' ' . escapeshellarg($file);
+                }
+                $this->ui->displayLine("+ $command");
+                if (empty($options['n'])) {
+                    $fp = popen($command, "r");
+                    while ($line = fgets($fp, 1024)) {
+                        $this->ui->displayLine(rtrim($line));
+                    }
+                    pclose($fp);
+                }
+                break;
+            }
+
+            // }}}
+            default: {
+                return false;
+            }
+        }
+        if ($failmsg) {
+            return $this->raiseError($failmsg);
+        }
+        return true;
+    }
+
+    // }}}
+
+}
+
+?>
\ No newline at end of file
diff --git a/pear/package-db.xml b/pear/package-db.xml
new file mode 100644 (file)
index 0000000..61be3f4
--- /dev/null
@@ -0,0 +1,152 @@
+<?xml version="1.0" encoding="ISO-8859-1" ?>
+<!DOCTYPE package SYSTEM "package.dtd">
+<package version="1.0">
+  <name>DB</name>
+  <summary>Database Abstraction Layer</summary>
+  <description>
+DB is a database abstraction layer providing:
+* an OO-style query API
+* a DSN (data source name) format for specifying database servers
+* prepare/execute (bind) emulation for databases that don't support it natively
+* a result object for each query response
+* portable error codes
+* sequence emulation
+* sequential and non sequential row fetching as well as bulk fetching
+* ordered array, associative array and object formats supported for the fetched rows
+* row limit support
+* transactions support
+* table information interface
+* DocBook and PHPDoc API documentation
+
+DB layers itself on top of PHP's existing database extensions.  The
+currently supported extensions are: dbase, fbsql, interbase, informix,
+msql, mssql, mysql, oci8, odbc, pgsql and sybase (a DB style interface
+to LDAP servers is also avaible from a separate package).
+</description>
+  <license>PHP License</license>
+  <maintainers>
+    <maintainer>
+      <user>ssb</user>
+      <role>lead</role>
+      <name>Stig Sæther Bakken</name>
+      <email>stig@php.net</email>
+    </maintainer>
+    <maintainer>
+      <user>cox</user>
+      <role>developer</role>
+      <name>Tomas V.V.Cox</name>
+      <email>cox@idecnet.com</email>
+    </maintainer>
+  </maintainers>
+  <release>
+    <version>2.0</version>
+    <state>stable</state>
+    <date>2002-04-07</date>
+    <notes>First packaged release.</notes>
+    <filelist>
+      <file role="php" baseinstalldir="/">DB.php</file>
+      <dir name="DB">
+       <file role="php">common.php</file>
+       <file role="php">dbase.php</file>
+       <file role="php">fbsql.php</file>
+       <file role="php">ibase.php</file>
+       <file role="php">ifx.php</file>
+       <file role="php">msql.php</file>
+       <file role="php">mssql.php</file>
+       <file role="php">mysql.php</file>
+       <file role="php">oci8.php</file>
+       <file role="php">odbc.php</file>
+       <file role="php">pgsql.php</file>
+       <file role="php">sybase.php</file>
+       <file role="php">storage.php</file>
+       <file role="data">IDEAS</file>
+       <file role="data">MAINTAINERS</file>
+       <file role="data">STATUS</file>
+       <file role="data">TESTERS</file>
+       <dir name="tests">
+         <file role="test">db_error.phpt</file>
+         <file role="test">db_parsedsn.phpt</file>
+         <file role="test">db_factory.phpt</file>
+         <file role="test">db_ismanip.phpt</file>
+         <file role="test">db_error2.phpt</file>
+         <dir name="oci8">
+           <file role="test">06prepexec.phpt</file>
+           <file role="test">08affectedrows.phpt</file>
+           <file role="test">09numrows.phpt</file>
+           <file role="test">13limit.phpt</file>
+           <file role="test">05sequences.phpt</file>
+           <file role="test">07errornative.phpt</file>
+           <file role="test">01connect.phpt</file>
+           <file role="test">10errormap.phpt</file>
+           <file role="test">04numcols.phpt</file>
+           <file role="test">03simplequery.phpt</file>
+           <file role="test">02fetch.phpt</file>
+         </dir>
+         <dir name="odbc">
+           <file role="test">06prepexec.phpt</file>
+           <file role="test">09numrows.phpt</file>
+           <file role="test">07errornative.phpt</file>
+           <file role="test">01connect.phpt</file>
+           <file role="test">10errormap.phpt</file>
+           <file role="test">04numcols.phpt</file>
+           <file role="test">03simplequery.phpt</file>
+           <file role="test">02fetch.phpt</file>
+         </dir>
+         <dir name="ibase">
+           <file role="test">06prepexec.phpt</file>
+           <file role="test">05sequences.phpt</file>
+           <file role="test">01connect.phpt</file>
+           <file role="test">10errormap.phpt</file>
+           <file role="test">04numcols.phpt</file>
+           <file role="test">03simplequery.phpt</file>
+           <file role="test">02fetch.phpt</file>
+         </dir>
+         <dir name="mysql">
+           <file role="test">06prepexec.phpt</file>
+           <file role="test">08affectedrows.phpt</file>
+           <file role="test">09numrows.phpt</file>
+           <file role="test">13limit.phpt</file>
+           <file role="test">05sequences.phpt</file>
+           <file role="test">07errornative.phpt</file>
+           <file role="test">12tableinfo.phpt</file>
+           <file role="test">01connect.phpt</file>
+           <file role="test">10errormap.phpt</file>
+           <file role="test">04numcols.phpt</file>
+           <file role="test">03simplequery.phpt</file>
+           <file role="test">14fetchmode_object.phpt</file>
+           <file role="test">02fetch.phpt</file>
+         </dir>
+         <dir name="pgsql">
+           <file role="test">06prepexec.phpt</file>
+           <file role="test">11transact.phpt</file>
+           <file role="test">08affectedrows.phpt</file>
+           <file role="test">09numrows.phpt</file>
+           <file role="test">13limit.phpt</file>
+           <file role="test">05sequences.phpt</file>
+           <file role="test">07errornative.phpt</file>
+           <file role="test">01connect.phpt</file>
+           <file role="test">10errormap.phpt</file>
+           <file role="test">04numcols.phpt</file>
+           <file role="test">03simplequery.phpt</file>
+           <file role="test">14fetchmode_object.phpt</file>
+           <file role="test">02fetch.phpt</file>
+         </dir>
+         <dir name="driver">
+           <file role="test">06prepexec.phpt</file>
+           <file role="test">08affectedrows.phpt</file>
+           <file role="test">09numrows.phpt</file>
+           <file role="test">13limit.phpt</file>
+           <file role="test">05sequences.phpt</file>
+           <file role="test">15quote.phpt</file>
+           <file role="test">01connect.phpt</file>
+           <file role="test">10errormap.phpt</file>
+           <file role="test">04numcols.phpt</file>
+           <file role="test">03simplequery.phpt</file>
+           <file role="test">14fetchmode_object.phpt</file>
+           <file role="test">02fetch.phpt</file>
+         </dir>
+       </dir>
+      </dir>
+    </filelist>
+  </release>
+</package>