[php-maint] Incoming changes in PHP packaging

Ondřej Surý ondrej at sury.org
Thu Jul 9 14:00:29 UTC 2015


Hi all,

as you might (or might not) have noticed we have a GSoC student
(Murukesh in Cc) working on PHP co-installability as this is one the
things often requested by Debian PHP users.

This will not only mean a changes in PHP SAPI packaging, but also all
PECL modules will have to adapt and we will probably need some changes
in PEAR as well.

More volunteers to keep this running are always welcome. And everything
I am writing down is WIP and still can be changed.

So, what happened so far:

Murukesh has prepared two new branches in php.git: gsoc15-5.5 and
gsoc15-5.5. Those branches have preliminary changes to rename everything
to PHP_MAJOR.PHP_MINOR.

Well, and I had a very productive evening watching Marvel's Agent of
Shield yesterday and I packaged php-7.0 :) + pulled some changes from
Murukesh + redid most of debian/rules, so it gets the X.Y from
dpkg-parsechangelog and dynamically create everything under debian/.
It's not perfect, but I think it's a good start.

So to describe the changes in the packaging, everything is now versioned
- if it was named *php5* it's now named phpX.Y (files) or php/X.Y
(directories).

I will use examples from 7.0 packaging

So, few examples:
php-config5 is now php-config7.0
/etc/php5/cli is now /etc/php/7.0/cli
/var/lib/php5/sessions is now /var/lib/php/7.0/sessions

This is the easy part in my eyes.

The next steps will be crucial and it will require a lot of work (but
there's no easy way how to do that). We want to create a system similar
to python-<module> or ruby-<module>

1. The binary modules will have to be renamed from php5-<module> to
php-<module>
2. Each binary package will include versions of the module built for all
available PHP versions
3. src:phpX.Y will stop building all modules (except the compiled-in)
4. src:php-modules (probably with same source as phpLATEST, but each
module will be individually built for every available PHP version)
5. (optional)I think we should have a system in place that would allow
us to have sources for each PHP version. I am thinking about modules
that couldn't be compiled for older PHP versions, but we still want to
provide. The second option would be to patch the sources to detect the
PHP version at compile time.

As for PEAR:

As previously discussed - I have dropped building php-pear from
src:php7.0, so it will have to be packaged individually. Any volunteers
(or at least people who care)?

Cheers,
-- 
Ondřej Surý <ondrej at sury.org>
Knot DNS (https://www.knot-dns.cz/) – a high-performance DNS server



More information about the pkg-php-maint mailing list