[haiku-development] Re: Path-relocatable software and assigns?

  • From: Adrien <pulkomandy@xxxxxxxxx>
  • To: haiku-development@xxxxxxxxxxxxx
  • Date: Sun, 12 Apr 2009 23:41:25 +0200

> I see a problem with ports however. Due to the way *nix software is 
> typically organized, absolute paths are often compiled into the 
> application. The prefix that is currently used when building this 
> software is /boot/common. This requires the software to be actually 
> installed to this location. While this might not be a major problem
> at the moment, but once Haiku is multi-user capable, users will not
> be able to run these applications without having the administrator
> install them to /boot/common.
> 
> I don't think this can be solved by means of links, as users can not 
> create these if they do not have the necessary permissions. Plus
> links are not user local, but system wide.
> 
> In 
> //www.freelists.org/post/haiku-development/software-management-proposal 
> I proposed to implement assigns (yes, again from AmigaOS :). A port's 
> prefix could then be set to "/portname-portversion-portrevision". The 
> assign is simply a virtual directory that points to a real directory
> on the filesystem. There would be both system wide assigns and user
> local assigns.
> 
> As for the handling of dependencies and the search PATH, assigns
> could be useful too as I described in that same thread. This would
> require an equivalent to AmigaOS' assign ADD capability.
> 
> Perhaps there are other possibilities?

I found the RISCos approach to be quite interesting: each program is
contained in a folder, and is lauched when you click that folder. These
folders name start with ! to mark them (like . for hidden files).
This allows for easy install/copy/uninstall of the program. But i'm not
sure how that can be applied to Haiku.

Anyways, assigns are a really nice and useful feature, and I would
enjoy having it in haiku. Note that amigaos assigns PROGDIR: to the
direcory where the executable is. This is a special program-wide assign
that will point to a different directory for each running program. This
way it does not cripple the user-wide assigns list with an entry for
each running program.

Other related posts: