Name Murukesh Mohanan
Background: I am an MTech CS student at IIT Bombay, India. Aside from my academic career, I work as a part-time sysadmin for my department. I deal with quite a few Ubuntu and Debian servers and lab/office PCs. The little experience I have with packaging comes from the configuration package that I use to set up these systems on first install (which uses config-package-dev to divert configuration files for apt and puppet (handing over the rest to puppet), and install some in-house utilities along with their manpages).
Project title: Coinstallable PHP Versions
Project details: Currently, every minor release of PHP5 is packages as php5. However, changes between PHP5.x versions are significant enough that one php5 package cannot be used in place of another. Therefore packaging needs to be more fine-grained, allowing one to pick a particular minor version, and also making sure one version doesn't stomp all over another. This will involve deciding on a directory structure and naming scheme that keeps each package's files to itself. We would also need to modify PHP module packages. A way to handle the burgeoning combinations of PHP version x modules x PHP SAPIs will have to be designed.
Synopsis: The aim is to make multiple PHP versions easily usable on a Debian system, similar to Python.
Benefits to Debian: It is a common enough occurrence with in-house webapps that they depend on a particular version of PHP, and neither time nor desire is available to port them to newer versions. This forces them to continue using older versions of the distro. By allowing multiple coexisting versions, we make it easy for such users to switch to or upgrade Debian, thus enhancing the appeal of Debian.
Deliverables: Multiple versions (5.5, 5.6, 7) of PHP packaged (compare with python or ruby). Support tools and infrastructure for PECL (and PEAR) modules, and transition of the (PECL) modules to the new infrastructure. Packaging guide for module packagers. Technical documentation for tools (man pages).
- Now - May 3: Explore current packaging files, both those of PHP and the PEAR extensions. Get to know others involved in packaging PHP. Study Ruby, Python packaging.
- May 3 + 2 weeks: Vacation
- May 18 - June 8:
- Determine possible ways to go forward. Discuss and decide upon most extensible + Debian-policy compliant way.
- In parallel, tweak packaging to minimize collisions as a possible simple alternative. Rinse + repeat.
- Write tests to determine package safety wrt co-installability.
- June 8 - 29:
- Implement the selected method.
- Write/modify tools for module packaging
- June 30 - July 30:
- Test modules, get in touch with current module packagers, get feedback.
- Tidy up packaging code, clean up code smells
- July 31 - August 28:
- Document tools added, decisions and changes made.
- Write packaging guides.
Exams and other commitments: Only a single exam in late April. I have finished my required course list, but I would be committing to an in-house project as well next semester (July-November) (minor, unpaid role, not more than 5-10 hrs per week).
Other summer plans: A week or two of holidays in mid-May.
Why Debian?: I believe Debian has the greatest influence in Linux distro community. It has led to the development of excellent projects like Ubuntu and Mint - and I have used all three at some point or the other. I wish to contribute back. Secondly, I hope to put the experience gained in packaging from this project in particular to fulfilling a couple of wishlist items in Debian (such as Vim with support for python3). Thirdly, multiple PHP versions would be of great use in my sysadmin job as well.
Are you applying for other projects in SoC? No.