chiara::PEAR_Server 0.4.0 available
| From: | Greg Beaver | Date: | Fri, 13 Aug 2004 04:33:38 +0000 |
| Subject: | chiara::PEAR_Server 0.4.0 available | ||
| Groups: | php.pear.dev | ||
| Request: | Send a blank email to pear-dev+get-32607@lists.php.net to get a copy of this message | ||
Hi all,
PEAR_Server 0.4.0 (devel) is available FOR TESTING PURPOSES ONLY from the chiara channel as the first fully functioning non-PEAR channel. This is NOT a production release. OK enough disclaimers.
Issues fixed include major and minor bugs in the xml-rpc code for:
package.info
package.getDownloadURL
package.listAll
This means commands
$ pear install/upgrade
$ pear remote-info
$ pear remote-list
all work as expected in all cases now. In addition, a few more exceptions are thrown to help track down errors with configuration. More work needs to be done on this end, but once you get the channel server up and running in the first place, upgrading is pretty simple (right Davey? :).
Initial installation work includes:
- cvs checkout of the most current pear-core source.
$ pear upgrade package-PEAR.xml
from the pear-core directory
$ pear channel-add http://pear.chiaraquartet.net/channel.xml
$ pear install chiara::PEAR_Server
From here, you must set up the database (this is the hard part), and then create 2 files somewhere on the server, one for administering the backend through a web interface, and the other (xmlrpc.php) for the xml-rpc frontend.
You have to put the channel information and the administrator login/password into the database manually, and then create packages and add releasing maintainers as lead maintainers before uploading any releases.
The code for xmlrpc.php:
<?php
require_once 'PEAR/Server.php';
require_once 'PEAR/Server/Backend/DBDataObject.php';
require_once 'PEAR/Server/Frontend/Xmlrpc.php';
$backend = new PEAR_Server_Backend_DBDataObject('channelname');
$frontend = PEAR_Server_Frontend_Xmlrpc::singleton('channelname');
$server = new PEAR_Server('/path/to/saved/releases');
$server->setBackend($backend);
$server->setFrontend($frontend);
$server->run();
?>
The code for your maintenance frontend:
<?php
require_once 'PEAR/Server.php';
require_once 'PEAR/Server/Backend/DBDataObject.php';
require_once 'PEAR/Server/Frontend/HTMLQuickForm.php';
$backend = new PEAR_Server_Backend_DBDataObject('channelname');
$frontend = new PEAR_Server_Frontend_HTMLQuickForm('channelname', new HTML_QuickForm('channel'),
$_SERVER['PHP_SELF'], '/tempdir/for/uploads');$frontend->sessionStart(); $server = new PEAR_Server('/path/to/saved/releases'); $server->setBackend($backend); $server->setFrontend($frontend); $server->run(); ?> Greg