[haiku-development] Re: Haiku package management system implementation (was: Haiku package manager)

  • From: David Flemström <david.flemstrom@xxxxxxxxx>
  • To: haiku-development@xxxxxxxxxxxxx
  • Date: Sat, 6 Feb 2010 23:36:05 +0100

First off, as I've mentioned in the other thread, this is a proposal only,
meant to be discussed. I therefore thank you for your constructive input;
the goal here isn't for me to "push my ideas" forward but to see how well
they fit into the infrastructure of Haiku

On Sat, Feb 6, 2010 at 10:31 PM, Rene Gollent <anevilyak@xxxxxxxxx> wrote:
>
> First off, while distributions are technically possible,
> they're one of the very things we're trying to avoid like the plague,
> and as such we're not going to go out of our way to try and make it as
> easy to create them as possible.

I understand this (even though TiltOS arguably could be seen as the
beginning of a distribution of sorts, and distributions in general will be
unavoidable once the community grows), yet this was only an example. Forcing
a developer to install a virtual machine for every OS s/he wants to target
is asking for too much in most situations, and Haiku is not in a position to
force developers to do anything if the alternative is to just remove Haiku
from their "supported platforms" list. Package management should not only be
easy for an user to use.

The fragmentation and other
> associated issues of the many different linux distros is precisely one
> of the things most of us dislike about the whole linux desktop
> experience.

I agree, I haven't said anything to indicate the contrary.


> Furthermore, crippling the package manager to easily allow
> cross compiling is imo misguided at best since that would only result
> in making it easier to build half-assed *nix ports that don't properly
> integrate with the system at all.

I don't see that any functionality is missing, especially not for the reason
of facilitating the porting of *nix applications. Also, you have to be
pragmatic here; Haiku won't be overtaking Linux in the desktop market
anytime soon, so making it difficult to even do something as basic as *porting
an application* to the platform won't make it any more attractive to
potential developers. And let's face it: without applications, Haiku is
nothing. (Heck, I think that even ReactOS has more users by now, just
because Windows executables are compatible with it)

I might also note you really need to
> look at the system in a bit more depth, many things in your proposal
> are completely unnecessary (i.e. rescanning kernel drivers, as the
> kernel already node monitors the driver directories and implicitly
> knows when a new driver has been added as a consequence).

Yes, just yet another example that I should not have chosen. I've never
actually needed to install a driver live in Haiku (which is a good thing, I
guess) so I've never noticed that such modules are loaded instantly.
Apologies. You can't expect every application in existence to do the same
thing that the kernel does, though.


> Overall the
> currently proposed design just seems to be way way overengineered for
> all the wrong reasons.
>
Why over engineered? The proposed system gets rid of almost all dependency
solving problems that the current system would have by the inherit structure
of its design, and actually *simplifies* both the structure of packages and
the installation procedure of packages. Apart from the package metadata
parsing code (which has largely been written already via packagefs), this
system could be implemented in simple shell scripts if it would be deemed
acceptable. Instead of only supporting the installation of statically linked
applications and shared libraries, this system adds support for installing *
anything*, *anywhere*, completely eliminating the need for applications
adding their own "add-on installation system" or similar. Also, I don't see
in which ways the current package management system proposal solves the
problems I mentioned in any better way; it rather seems (to me) that the
current system was created to solve the problem of "we gotta get these good
ol' apps we have out there" instead of "we have to get a sustainable system
up and running to enable developers to easily distribute applications so
that Haiku can grow".

Cheers,
David Flemström

Other related posts: