Troubleshooting
I ran into a few problems when I was working on the start of an implementation for a channel server.
The first issue is that I built the package.xml file by hand. That isn't an issue in itself, but when the pear package command is used to build the package, the package file is reformatted. My implementation of the getDownloadURL function pulled the contents from the old file and returned it as a result of the XML RPC call. This caused an error because the package.xml downloaded didn't match that returned by the xml-rpc call. I suggest using the PEAR_PackageFile class to build your package file so you don't have issues. If you'd rather build the file by hand, make sure the file is the same (including indenting) as the version put into the .tgz file created by the pear package command. I found it useful more than once to pull the generated package.xml file out of the .tgz file and inspect it.
If you get unexpected results from the XML-RPC commands after putting new versions of the xmlrpc.php file in place, make sure your Web server isn't caching anything. Caching can cause unexpected results because you make changes but don't see them reflected.

