[csw-users] Why has php been split into a bazillion packages?
Mark Round
mark at markround.com
Thu Dec 8 08:57:24 CET 2005
It's been done for several reasons, mainly due to the size of the
original package. PHP was originally built as a monolithic package,
with a single .so file to be loaded into Apache. This one .so file
contained all the extensions, bloating it's size and meaning that the
average user, who may only use a fraction of those extensions was
paying the price by running a very large sized Apache process. The
footprint really started to hurt on high-traffic sites with lots of
Apache processes running. Then there was the issue that it was
impossible to upgrade an extension (for instance, relinking the
postgresql extension to a new version when one is released) or add a
new one without updating the entire package.
For a first time user running "pkg-get -i php", it was a time-
consuming experience, as it would download every dependency for all
the extensions in addition to PHP itself. You'd end up with what
seemed like half the Blastwave distribution installed just so you
could run PHP - PostgreSQl and MySQL libraries, OpenLDAP, OpenSSL,
XML libraries, etc.
The decision was taken to split as many extensions as possible out
into separate PHP loadable modules, which gives the end user the
flexibility to install only what they want (this is also the way
pretty much every other Unix or Unix-like distribution handles PHP).
They've also then got the ability to add new extensions or upgrade
existing ones without re-doing the whole lot.
For compatibilities sake, the old PHP package was turned into a
"dummy" package that emulated the old behaviour - if you install
CSWphp (mod_php), you'll also download and install all the extensions
(the 18 other packages you mentioned), and also any dependencies for
those packages. So this will still download and upgrade everything
which will still be time-consuming. This is also what happened when
anyone upgraded from the old monolithic package - because there is no
way to tell in advance what extensions a user may be using, in order
to avoid random breakages by not having modules available, an upgrade
to the modular system would still have downloaded everything -
although now, the user can remove what they don't need and tailor the
system going forward.
If you remove the dummy CSWphp package, you can then just upgrade
only what you need next time. Is this a problem for you because you
have every one of the 18 extensions installed ?
On 8 Dec 2005, at 5:59 am, Robert Stampfli wrote:
> I've just finished updating php 4.4.0 -> 4.4.1 on one of my
> machines, and am in the process of updating another one now,
> and believe me, it is painful. Starting with the last
> release, php seems to have been split into 18 separate
> packages, and I'm not sure why this was done. It sure makes
> updating to a new point release a time-consuming activity,
> and it would seem each module will have to be reissued for
> each release forevermore.
>
> Can anyone shed some light on why this split was done, and
> what benefits are derived from it? My vote would be to see
> php go back to the way it was packaged before.
>
> Rob
> _______________________________________________
> users mailing list
> users at lists.blastwave.org
> https://lists.blastwave.org/mailman/listinfo/users
>
--
Mark Round
mark at markround.com
:wq
More information about the users
mailing list