[haiku-development] Re: Package management - folder hierarchy
- From: "Axel Dörfler" <axeld@xxxxxxxxxxxxxxxx>
- To: haiku-development@xxxxxxxxxxxxx
- Date: Tue, 11 Jan 2011 18:24:18 +0100
Hi Oliver,
Oliver Tappe <zooey@xxxxxxxxxxxxxxx> wrote:
> We do not have a union-fs implementation currently (and during my
> research
> I've read educated comments about why those are surprisingly hard to
> get
> "right"), so I started looking into the restructuring approach.
While I wouldn't mind some restructuring, I think a union-fs is still a
worthwhile target.
Still, it would be nice to find an alternative approach for the time
being, and make it pretty much optional that way.
Also, I have no good idea on how to have drivers in packages else.
> 1. common contains both Haiku-specific software as well as ports [as
> is now]
I think there can only really be 1., as for some ports, it will be hard
to determine where they should be put. For example, ScummVM should
probably end up in /boot/apps/, but is a port, too. Or should only
properly ported ports end up there? :-)
> /boot
> |-apps -> [symlink to /boot/common/pkg-tree/apps]
> |-common
> |---cache
> |---packages [dropping a package here will activate it
> system-wide]
> |-----history [contains info required for rolling back in
> time, used
> | by package manager]
> |---pkg-tree [mountpoint of system package-fs, contents of
> the
> | packages in /boot/common/packages appear here,
> the
> | folders follow "Haiku filesystem hierarchy" (to
> be
> | defined, an example given below)]
I think this needs a better name, although, I struggle to find one
(besides the more verbose package-tree, that is).
> |-----data [+ what used to be in 'share']
Where is that actually coming from? Using symlinks from pkg-tree?
> |---settings [+ what used to be in 'etc']
Unfortunately, "etc" isn't just composed of settings, a large part is
actually "data" or even "bin".
> |-home
> |---config
> |---packages [dropping a package here will activate it for
> user]
> |-----history [contains info required for rolling back in
> time]
> |---pkg-tree [mountpoint of user package-fs, contents of the
I think both, packages, and pkg-tree should go under config/ as that's
the equivalent to /boot/common.
> |-system [unchanged, contents can be updated via package
> | manager by actual installing (unpacking) of
> either a
> | complete "system" package or sequential
> "system-fix"
> | packages]
Even this needs package descriptions, though, to be able to let 3rd
party depend on certain versions (for example, to be able to have the
GCC2 support optionally available via a package in the far future).
> |---develop [moved here from /boot/develop (except for the
> 'tools'
> | folder), as it depends on the current system -
> the
> | tools subfolder (gcc & binutils) will be spread
> out
> | over /boot/common/pkg-tree]
Makes sense, especially because there is not much interesting user
content there.
Also, we would still need /boot/common/develop/ to place the includes of
development packages.
> |---optional [moved here from /boot/optional, as the
> contents
> depend on the system]
Yup, even though I wouldn't mind to remove it completely, and have its
contents as separate packages.
Bye,
Axel.
Other related posts: