This is an old revision of the document!
Linux packages for pkg(8)
- Student: Manuel Wiesinger (mw@)
- Mentor: Baptiste Daroussin (bapt@)
Project description
The idea is to make pkg(8) able to install foreign packages (i.e. .deb/.rpm), from foreign repositories, for use with linux(4). This is done by, first extending libpkg, so that it can deal with foreign package sources and then feeding the SAT-solver of pkg(8) to resolve the dependencies and fetch/install whatever is necessary. I will start this project with Debian packages. If time allows I will start to implement .rpms-support as well. The biggest challenge is to use the SAT-solver of pkg(8) for foreign dependencies.
The recommended way (that is used by most major Linux-distros, including Debian) to verify packages, is using gpgv. I think verifying Debian-packages with openssl can easily become very cumbersome and error prone. The simplest approach seems to be using an exec-function. Unfortunately this means to depend on GPLv3 code. In my eyes a reasonable compromise is to ask the user to install it manually, if it is not.
Deliverables
a forked git repository including:
- my adaptions, extensions and bugfixes, style according to style(9)
- Suitable sections in the manpages
- Configuration examples
- Where useful ATF based tests
You can find the repo here: https://github.com/manufactory/pkg
Milestones
May, 25 (official start of coding)
Getting the code flexible enough to allow several repository types. Fix eventually bugs. It's not funny, but it makes life a lot easier: write tests to avoid regressions. Four weeks seem long, but being to fast is better then being to slow.
June, 26 (begin of mid-term evaluations)
Writing a (basic) backend for Debian packages. Start by defining test cases.
July, 10
Resolving dependencies using the pkg-SAT-solver
July, 24
Extra week to extend and improve the .deb-backend, and deal with eventual problems
July, 31
pkg-audit-interface
August, 7
extra time
August, 17
scrubbing the code, write documentation and additional tests.
August, 21
extra time until firm end
August, 28 (official end)
Test Plan
- You can see my commits-history on Github.
- Where applicable there will be ATF-based tests.