Colin Smith - Extending BSDPAN
Title: Extending BSDPAN
Name: Colin Smith
Grant Manager: Jeff Horwitz
Duration: about three months
Started: October, 2008
Refactor the BSDPAN module into a generic and extensible solution for bridging CPAN with UNIX packaging systems.
Benefits to the Perl Community:
The wealth of freely available code CPAN represents is one of the Perl language's greatest strengths. Tighter integration of this resource with a given operating system's native packaging system would give Perl a unique advantage over Ruby, Python, etc. while making it more accessible (and maintainable) to users.
- refactored and fully-documented version of the BSDPAN module
- dependency tracking across all operating systems
- Module::Build support
- OpenBSD support
- more robust FreeBSD support (esp. rewrite of Packlist.pm)
- time permitting, support for pkgsrc and at least one Linux package system
- time permitting, explore options for BSDPAN integration without a customized Perl build (for existing systems)
BSDPAN was conceived (and written) as a glue module for interfacing CPAN module installation with the FreeBSD operating system's native package database. Blurring the distinction between CPAN and the FreeBSD `ports tree' in this fashion offers several advantages: modules honor environment variables such as $PREFIX automatically, and the user can query and manipulate them as they would any other software package.
I propose to expand BSDPAN into a more generic solution for bridging the gap between CPAN and the myriad of packaging systems in use today. This would include fleshing out BSDPAN's nearly nonexistent body of documentation, factoring out FreeBSD-specific code to a submodule accessed through a consistent interface, and adding support for Module::Build.
Expected timeline: Approximately three months, or the duration of my summer holiday, whichever comes first. Work will begin the week of May 26th (firm date to be decided upon receipt of finals schedule).
I've worked with Perl in some capacity for a little over eight months, and have dabbled in projects such as Catalyst and POE. I have significant prior experience in this problem domain, having the pfSense project's package system virtually from scratch several years ago. This system, written in PHP, ``wrapped'' FreeBSD package files for integration with a pfSense firewall's online administration interface, logging, remote administration tools, etc.
My work as funded by this grant would constitute at least some part of my summer employment, and as such I feel proposing an hourly wage rather than set milestones would be most prudent. Assuming an average of 15 hours of work per week at $15 per hour, two months of work could be funded for $1800.
Anton Berezin, BSDPAN's maintainer, was contacted over IRC and gave his consent for the project.