[haiku-development] Re: alpha release window ?

  • From: "Axel Dörfler" <axeld@xxxxxxxxxxxxxxxx>
  • To: haiku-development@xxxxxxxxxxxxx
  • Date: Tue, 11 Aug 2009 12:18:33 +0200 CEST

Hi Brecht,

Brecht Machiels <brecht@xxxxxxxxxxx> wrote:
> > I wouldn't like to join this into a single directory (for the 
> > user), 
> > and have different views for each user - that would just be like 
> > calling for trouble (as the root user should see them all).
> But then you would lose the possibility for users to install software 
> locally that depend on absolute paths. I know this should be avoided, 
> but some ports will require that.

If a port requires that, it's broken, as simple as that.

> I see no major problems in mounting user bundles also under 
> /boot/common. It shouldn't be hard to provide a mechanism for root to 
> show all users' bundle mounts.

That's just ugly IMO, and not where this stuff belongs - it's called 
"common" for a reason. It's also not nice to hide the fact that 
software is installed locally only.
"root" would need to see all packages, which also means they would all 
be installed for root. That doesn't sound like the way to go, either.
I could see some uses for an assignfs, but IMO it's not the right 
solution for this particular case.

> On a related note. How do you see Haiku handling multiple versions of 
> a 
> library? If all bundles are mounted under /boot/common, they would 
> need 
> to have a unique namme (libfoo-1.2.3.so). For an application to use a 
> particular version, we would need to virtually link a library into 
> the 
> app's lib search path, as libfoo.so. I hope you agree we don't want 
> to 
> have apps looking for a specific version of a library (libfoo-
> 1.2.3.so)?

I think that depends on the library in question. Mostly I would think 
it's cleaner to have a version number per ABI change (which does not 
necessarily reflect the actual version number).
OpenBSD, for example, gives each foreign library their own number per 
ABI change which usually differs from what the project itself does. I'm 
afraid this is something we might need to do as well, since many 
projects do not understand (or care about) binary compatibility.

> For a non-union-FS approach, each lib would be mounted under it's own 
> directory (/boot/bundles/libfoo-1.2.3 or similar) and it's lib 
> directory 
> (/boot/bundles/libfoo-1.2.3/lib) would simply be added to the app's 
> lib 
> search path (based on the bundle's dependency information and which 
> library bundles are installed).

That would work as well, but will need some interaction between the 
runtime_loader and the package manager, which I find a bit clumsy 
(someone has to set those search paths when the app is launched).

Bye,
   Axel.


Other related posts: