File:  [NetBSD Developer Wiki] / wikisrc / projects / project / pkgin_improve.mdwn
Revision 1.7: download - view: text, annotated - select for diffs
Sun Mar 6 18:35:30 2016 UTC (3 years, 8 months ago) by wiki
Branches: MAIN
CVS tags: HEAD
web commit by youri: Really show the second mentor.

[[!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