How to use PEAR in a contributed module is a question I've been looking at as well.
We try not to require any external code for Drupal, especially since many hosts might not have PEAR available.
It's easy enough to use PEAR packages without a PEAR install, but it requires manual configuration (i.e., extraction of packages into correct directory structure) something that goes beyond what should be expected for module installation...
... you aren't allowed to include non-GPL code with your module.
and few packages are GPL (the ones you cite being PHP and BSD, respectively). So, perhaps, the best approach is to provide a preconfigured PEAR directory as a separate download (e.g., on your server/website, linked in the module install text). Here's a quick idea of a module to facilitate PEAR use. I've put in help text, but it's really for module authors rather than users. You'll see it does nothing but set the include path! But I suppose it could also use directory uploading to put the needed PEAR files in place. <?php // $Id: /** * @file * Facilitates the use of PEAR packages in Drupal. */ // Add the PEAR/ directory to your include path. $path = $_SERVER['PATH_TRANSLATED']; $dir = substr($path, 0, strrpos($path, '/modules/') + 1); ini_set('include_path', $dir . 'PEAR/' . PATH_SEPARATOR . ini_get('include_path')); /** * Implementation of hook_help(). */ function pear_help($section) { switch ($section) { case 'admin/help#pear': $output = t(" <h3>Using PEAR</h3> <p>The PEAR module is designed to facilitate use of PEAR packages within Drupal in cases where the package are not available on the host server. In this case (since most PEAR packages are not GPl and therefore can't be included within Drupal.org module downloads), it's necessary to post packages for separate download and install. To use the module: <ul> <li>Install your desired PEAR package(s), and all of their dependencies, in a directory called PEAR. For example, for the packages HTTP_Request and XML_Serializer, the install might include: <pre>PEAR -HTTP -Request.php -Request -... -XML -Serializer.php -Serializer -...</pre> </li> <li>Create a tar.gz file of the PEAR directory and it contents, and post it for download (e.g., on your website/server).</li> <li>Instruct your users to download and uncompress the tar.gz file into their base Drupal directory.</li> <li>Enable the PEAR module.</li> </ul> "); return $output; case 'admin/modules#description': return t('Facilitates the use of PEAR packages in Drupal.'); } } ?> ________ Nedjo Rogers Learning Technologies Developer GroundWorks Learning Centre (250) 360-0799 nedjo@gworks.ca