[[!template id=project title="pkgin improvements (350h)" contact=""" [tech-pkg](mailto:tech-pkg@NetBSD.org) """ mentors=""" [Emile 'iMil' Heitor](mailto:imil@NetBSD.org), [Jonathan Perkin](mailto:jperkin@joyent.com) """ category="pkgsrc" difficulty="medium" duration="350h" description=""" pkgin is aimed at being an apt-/yum-like tool for managing pkgsrc binary packages. It relies on pkg_summary(5) for installation, removal and upgrade of packages and associated dependencies, using a remote repository. While pkgin is now widely used and seems to handle packages installation, upgrade and removal correctly, there's room for improvement. In particular: **Main quest** * Support for multi-repository * Speed-up installed packages database calculation * Speed-up local vs remote packages matching * Implement an automated-test system * Handle conflicting situations (MySQL conflicting with MySQL...) * Better logging for installed / removed / warnings / errors To be confirmed / discussed: * Make pkgin independent from pkg_install binaries, use pkg_install libraries or abstract them **Bonus I** In order to ease pkgin's integration with third party tools, it would be useful to split it into a library (libpkgin) providing all methods needed to manipulate packages, i.e., all pkgin's runtime capabilities and flags. **Bonus II** (operation "burn the troll") It would be a very nice addition to abstract SQLite backend so pkgin could be plugged to any database system. A proof of concept using bdb or cdb would fulfill the task. Useful steps: * Understand pkgsrc * Understand pkg_summary(5)'s logic * Understand SQLite integration * Understand pkgin's `impact.c' logic """ ]] [[!tag gsoc]] [[!tag gsoc350h]]