- Contact: tech-pkg
- Mentors: Emile 'iMil' Heitor, Jonathan Perkin
- Duration estimate: 350h
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