[[!template id=project
title="pkgin improvements"
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="3 months"
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]]
CVSweb for NetBSD wikisrc <wikimaster@NetBSD.org> software: FreeBSD-CVSweb