[haiku-development] Re: About Package management

  • From: Oliver Tappe <zooey@xxxxxxxxxxxxxxx>
  • To: haiku-development@xxxxxxxxxxxxx
  • Date: Wed, 06 Apr 2011 16:29:32 +0200

Hi Prode,

On 2011-04-06 at 01:22:41 [+0200], Corneliu-Claudiu Prodescu 
<cprodescu@xxxxxxxxxxxxxx> wrote:
> 
> I have some questions regarding the development of the package
> management system.
> 
> I've noticed there is a newly hatched package-management branch [1].

Ah, cool - for your convenience, I have just cleaned up the branch a bit, such 
that all the 
package-related tools are now part of the resulting image automatically (they 
had to be added via 
UserBuildConfig before). Those tools are:

packagefs
    a filesystem that mounts a folder of *.hpkg files to a target folder (in 
which the package 
    contents will appear)
bindfs
    a filesystem for mounting a folder to some additional position in the file 
tree (required for 
    instance in order to make /dev available in a chroot-ed build environment)
package
    a command for creating, exploring and unpacking of packages (*.hpkg files)
package_repo
    a command for creating and exploring package repositories (*.hpkr files)
pkgman
    a command for managing packages (searching, installing, updating, ...)
libpackage.so
    the library containing the package kit, which is required by the commands 
mentioned above

> I've read the articles about package management on the Haiku Blog:
> 
> * Package Management for Haiku [2]
> * Package Management, First Draft [3]
> * Package Management - Present and (hopefully near) Future [4]
> 
> but the latest one is dated February 1st.

That's just because I haven't been able to work on it as steadily as I wished. 
Some progress has 
been made since then, though.

> Is there a more up to date source where I can learn about the current
> state of the system?
> I'm interested in what is done, what is planned and, of course, which
> tasks are open for development?

From the list of open tasks in [4], the first two have been tackled by now, i. 
e. the package 
attributes parsed from a .PackageInfo file are now being written to the 
hpkg-file (when using the 
'package' command to create a hpkg file) and the repository format (*.hpkr) has 
been implemented 
(and documented in [5]).

I have spent a lot of time trying to figure out how to build ports in such a 
way that the resulting 
packages can be used independent of their location. Intermediate results live 
in the 
'package-management'-branch of the haikuports tree and the work is still 
continuing.

All the other tasks mentioned in [4] are basically still open. The 
infrastructural tasks (related 
to building of packages, repositories and uploading to package server) can be 
implemented in a 
scripting language (python preferred, shell-scripts acceptable), the others 
require C++. 

Please have a look at the open tasks and tell me which parts you're interested 
in and I can tell 
you more details about what exactly those task involve.

cheers,
        Oliver

Other related posts: