This is an old revision of the document!


Linux packages for pkg(8)

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.

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

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.

Writing a (basic) backend for Debian packages. Start by defining test cases.

Resolving dependencies using the pkg-SAT-solver

Extra week to extend and improve the .deb-backend, and deal with eventual problems

pkg-audit-interface

extra time

scrubbing the code, write documentation and additional tests.

extra time until firm end

  • You can see my commits-history on Github.
  • Where applicable there will be ATF-based tests.
  • summerofcode2015/linuxpackagesforpkg.1432602409.txt.gz
  • Last modified: 2015/05/26 01:06
  • by ManuelWiesinger