binary packages

From: Date: Wed, 08 Jun 2005 04:49:38 +0000
Subject: binary packages
Groups: php.pecl.dev 
Request: Send a blank email to pecl-dev+get-2438@lists.php.net to get a copy of this message
Hello all, If you would be so kind, I would like to ask for a review of the binary package feature in PEAR 1.4.0. We are nearing feature-freezeability, and now is the time to pipe up with objections/suggestions. http://pear.php.net/dtd/package-2.0.xsd http://pear.php.net/manual/en/guide.developers.package2.pecl.php http://pear.php.net/manual/en/guide.developers.package2.release.php#guide.developers.package2.release.extsrcrelease Here's how it works currently. extension foo, a pecl source package, distributes its source in the package "Foo" and distributes a windows .dll in the package "Foo_win" the package.xml for Foo specifies the binary packages to search for with this tag sequence: <extsrcrelease> <binarypackage>Foo_win</binarypackage> </extsrcrelease> Both packages have a <providesextension>foo</providesextension> tag. The binary package Foo_win has this tag sequence in it: <srcpackage>Foo</srcpackage> <extbinrelease/> That's all that is needed in order for the installer to automatically install binary packages. If an extension developer wants to distribute binary packages for more than one OS in a single package, that is also possible. <srcpackage>Foo</srcpackage> <extbinrelease> <installconditions> <os> <name>windows</name> </os> </installconditions> <install name="foo_windows.dll" as "foo.dll"/> </extbinrelease> <extbinrelease> <installconditions> <arch> <pattern>linux-i386</pattern> </arch> </installconditions> <install name="foo_linux_i386.so" as "foo.so"/> </extbinrelease> <extbinrelease> <installconditions> <os> <name>darwin</name> </os> </installconditions> <install name="foo_darwin.so" as "foo.so"/> </extbinrelease> The only thing needed at pecl.php.net is to create the binary package and to sync version numbers/state with the source package. I have three main goals: 1) make it easy for maintainers to maintain the package.xml for an extension binary/source release of an extension package 2) allow separate maintainers for source/binary packages 3) make installation of the binary package automatic if compiling the extension fails and one is available for the user's OS. Note that packages for windows like Winbinder would also be distributing the source and .dll in separate packages - package.xml 2.0 enforces this separation to make installation of binary packages possible. This will obviously benefit Windows users more than others, but it will also generate tons more interest in PECL, as evidenced by what happened to PEAR when it became accessible to windows folks. Greg

« previous php.pecl.dev (#2438) next »