Hello devs!

I have been looking into the realities/implications of moving from
PHP5.6 to PHP7.0 in main for Xenial.

tl;dr: The biggest issue is probably lack of PHP7.0 SWIG bindings. As
far as I can tell, no packages in main itself actually require them, but
there are many in universe:
        php5-exactimage
        php5-gdcm
        php5-vtkgdcm
        php5-geos
        libgv-php5
        php-kolab
        php-kolabformat
        php5-mapscript
        php5-ming
        libow-php5
        libownet-php
        php5-librdf
All of these PHP bindings would break/be disabled, which in turn might
lead to some dependency breakage (e.g., debian-gis depends on
php5-mapscript).

What are people's thoughts on this?

 * Is removing SWIG bindings for PHP tenable, full-stop?

 * If we were to go down the road of moving to PHP7.0, what would be the
preferred way to break the packages that depend on PHP bindings (or
generate them with SWIG). With my proposed change to swig below, any
attempt to generate PHP bindings will error out, which would cause build
breakage (I think). So we could change some source packages to no try
and SWIG PHP bindings, in the hopes that we could turn them back on once
SWIG gets updated... but that might mean some packages are not
installable for some time (from universe)?

Now to the details:

As far as main is concerned, the following packages are/could be
affected/moved, along with my notes:

swig
        While not technically dependent on PHP, amongst the SWIG
        bindings are those for PHP. As of right now
        (https://github.com/swig/swig/issues/571), there is no traction
        yet on upstream SWIG gaining PHP7.0 support. So, in the
        short-term, our proposal is to disable the PHP bindings for
        SWIG. I will explain per-package where that will have an effect.
dh-php5
        This would be removed from main (it is replaced by dh-php in
        universe, as well, which would move to main).
dh-php
        Move to main, provides PHP dependencies in misc:Depends, e.g.
src:dpkg
        No changes needed (xenial+1 can remove Breaks entries).
src:jquery-goodies
        libjs-jquery-jfeed Recommends php5 (so would recommend php
        instead)
        Query: I noted that libjs-jquery-jush mentions providing syntax
        highlighting for PHP ("complete PHP syntax"). Should we, in this
        process, verify that jquery-goodies in Xenial will support all
        of the PHP7.0 syntax (theoretically there isn't a huge change in
        the language, but in practice...). That is, as part of the
        process, how far should I go down the hole(s) of verifying
        functional equivalence.
nagios3
        nagios3-cgi Depends on libapache2-mod-php5 | php5 | php5-cgi
        We would migrate these Depends to the generic php packages.
libapache2-mod-php5
php5
php5-cgi
php5-cli
php5-common
php5-curl
php5-dbg
php5-dev
php5-gd
php5-gmp
php5-json
php5-ldap
php5-mysql
php5-odbc
php5-pgsql
php5-pspell
php5-readline
php5-recode
php5-snmp
php5-sqlite
php5-tidy
php5-xmlrcp
php5-xsl
        These would be removed from main, and replaced by binaries from
        src:php7.0.
php7.0
libapache2-mode-php7.0
php7.0-cgi
php7.0-cli
php7.0-curl
php7.0-common
php7.0-dev
php7.0-fpm
php7.0-dbg
php7.0-phpdbg
php7.0-gd
php7.0-gmp
php7.0-json
php7.0-ldap
php7.0-mysql
php7.0-odbc
php7.0-pgsql
php7.0-pspell
php7.0-readline
php7.0-recode
php7.0-snmp
php7.0-sqlite
php7.0-tidy
php7.0-xmlrcp
php7.0-xsl
        Promote to main. We might also consider promoting the virtual
        php* packages that will facilitate dependencies going forward
        (and all of which currently depend on the php7.0-variants).
src:php-json
        Remove the src:php-json package and add a php-json to
        src:php7.0. src:php7.0 already generates php7.0-json.
pkg-php-tools
        Currently being updated for PHP7.0 by the Debian
        maintainer(s). Needed for dh_phppear (${phppear:Debian-Depends},
        e.g)
php-pear
        New package in Debian (php-pear used to be generated by
        src:php5, but is now independent). Needed for PEAR support.

I'm still working through the many packages in universe and multiverse
that would be affected, but they seem to be in the following categories:

a) written in PHP (so they'll hopefully successfully rebuild once they
depend on php* (which is satisified by php7.0 from universe currently)
rather than php5*

b) packaged PEAR modules, which should successfully no-op rebuild once
we have an updated php-pear and pkg-php-tools.

c) packaged SWIG bindings:
        php5-exactimage
        php5-gdcm
        php5-vtkgdcm
        php5-geos
        libgv-php5
        php-kolab
        php-kolabformat
        php5-mapscript
        php5-ming
        libow-php5
        libownet-php
        php5-librdf

Thanks,
Nish

-- 
Nishanth Aravamudan
Ubuntu Server
Canonical Ltd

-- 
ubuntu-devel mailing list
[email protected]
Modify settings or unsubscribe at: 
https://lists.ubuntu.com/mailman/listinfo/ubuntu-devel

Reply via email to