[haiku] Re: Core libraries / package management

  • From: Oliver Tappe <zooey@xxxxxxxxxxxxxxx>
  • To: haiku@xxxxxxxxxxxxx
  • Date: Mon, 28 Feb 2011 10:28:23 +0100

On 2011-02-28 at 06:46:31 [+0100], Zenja Solaja <solaja@xxxxxxxxx> wrote:
> Hi all.
> 
> Even though I'm not an active developer (with the exception of 3dmov and a
> handful of patches, I'm ashamed that I didn't do more), I'm just throwing an
> observation into the community before disappearing under my rock again.
>  Over on the development mailing list there is talk about the damages caused
> by an update of libcurl, and how a point release broke so many apps.  This
> is the sort of thing we used to mock Linux with - the never ending
> dependancy "whack-a-mole" game.  During the great package management debate
> of 2011, so many users (not developers) were very vocally against package
> management, for the very same reason libcurl demonstrated.  

This comment is just unfair: you can't blame a not-yet-existing package 
management system for the problems caused by inappropriate software building 
infrastructure. It's precisely those shortcomings of our current build 
infrastructure that we hope to solve by providing a decent package management 
system.

Anyone who believes that the situation would be better when there is no 
decent packaging infrastructure is basically just kidding himself. All 
software would have to published as some kind of bundle and, judging by the 
quality of the software that used to be available on BeBits, that's not an 
advantage.
Building software with dependencies is difficult, so it's not going to help 
to insist on not offering any support for that.

> The only time
> package management works is when the packages are strictly controlled by the
> core developers.  Any other package / library which is not a core component,
> doesn't belong on a Haiku distribution.  If Haiku adopts this policy (core
> component), they we have to rethink why we even need a package management
> system?  

I don't think so, no. It's very simple to say that everything that's not a 
core component doesn't belong on a Haiku distribution. If core components are 
the ones controlled by core devs, it's easy to see that these are just the 
components living in our repo (i.e. the kits). If we'd actually follow this, 
there wouldn't be any subversion available for Haiku, nor would WebPositive 
be part of a Haiku distribution (as the latter depends on libcurl and sqlite).

Now even if we'd come up with a full set of components that would allow it to 
put all "expected" software (WebPositive, Pe, ...) on a Haiku distribution, 
the whole concept would break down at the very point when a user wants to 
install another application that requires components that are not part of 
Haiku. At that moment, there's just the choice of leaving the user out in the 
rain or giving some support for installing software. On OS X, the missing 
support for external software has triggered MacPorts and Fink, both of which 
are just some form of package management.

> Core components ship with the base install of an OS, it's not
> optional.  Effectively, Haiku doesn't need a "officially supported" package
> management system.  What it does need is an update of core components
> mechanism.

Well, if our own package management system wouldn't be "officially 
supported", someone else would just come up with something like MacPorts/Fink.
To the user, that doesn't really matter, but what matters is the 
opportunities he/she/it has for installing external software. Internally, we 
(the core devs) need a system for managing all the packages that Haiku 
depends on anyway, both those that live in our repo and those that live 
outside. So, we implement a package management system and establish some 
rules for building packages. IMO, it only makes sense to extend this system 
for non-core components, too.

In order to keep core components separate from all the other stuff, we will 
most likely publish them in two different repositories (for instance 
'haiku-core' and 'haiku-extra').

cheers,
        Oliver

Other related posts: