mpb wrote:
> How does Compile not already work for both root and non-root users?
>   
  It works fine, but it's not completely "safe".  One of the problems
Recipes and Packages face is the dependency list.  ChrootCompile is
designed to use an isolated environment so that we can be sure that the
recipe & package we create is "perfect" and would work for anyone.  The
ideal of GoboLinux is that Programs are self-contained entities.  It
should be possible to bzip2 a program you have installed and send it to
someone, and it'll work on their computer too (assuming the
architectures are the same).  I'll just add while I'm on the subject
that it's in this sort of situation where it would be nice not to have
to do a whole InstallPackage thing to try the program, then remember to
RemoveProgram afterwards...

Here's an article about ChrootCompile if you're interested:
http://www.gobolinux.org/?page=chrootcompile

Lucas C. Villa Real wrote:
> On 7/29/07, mpb <[EMAIL PROTECTED]> wrote:
>   
>> "UseProgram GCC 4.1.2" versus "MountProgram GCC 4.1.2".
>>
>> Both are just as easy to remember and use.  "UseProgram" saves you the
>> bother of having to mess with chroots.
>>     
>
> Also, that should involve the evaluation Resources/Environment, as
> well as LD_LIBRARY_PATH. The interesting thing about MountProgram,
> though, is that one could specify a wide range of programs so that a
> completely isolated environment could be created, composed *only* by
> the desired applications -- that's not possible with an approach based
> on UseProgram.
>   
   Thanks Lucas, that's exactly the sort of thing I'm getting at.  We
may want to mount in a few programs that depend on each other.  I do
think there would be a place for a UseProgram or RunProgram-type script,
because we would need a nice way to automatically mount all of a
program's dependencies and run the Program's default binary.  For
example, the following could invoke the Firefox browser that is stored
in the Firefox-2.0 Program Directory in the current directory, because
the /bin/firefox binary is stored as the "default binary" for the Program:

RunProgram Firefox-2.0

  Also, would I be right in thinking that the line between Compile and
ChrootCompile would become blurred at this point?  Compile could simply
MountProgram all of the Programs listed in the Dependencies, instead of
having ChrootCompile unpacking a new set of packages every time.  Of
course then we have the problem of Programs on the system maybe having
been modified and introducing quirks, but I don't think that's the main
thrust of ChrootCompile is it?

  I realise that in these suggestions I'm actually also assuming my idea
of removing version subdirectories from programs, so I might as well
outline it properly.  If instead of having Firefox/1.5/bin and
Firefox/2.0/bin we allow the user to rename the Program directories, we
would have something more like Firefox-1.5/bin and Firefox/bin.  This
means that the complexity of installing and running a program is greatly
reduced, because it doesn't have to be merged into an existing
hierarchy, which is a process that alienates the user from the system. 
(It's "magical".)  Instead, the user can just unzip the package and be
ready to go (with RunProgram ./MyProg).  The price is that it becomes
much more difficult to find which Program our dependencies are in. 
Maybe we just look in the most obvious places (/Applications/... and
/System/Programs/...) for the default Program name and ask the user if
we can't find it?  If he's moved it or renamed it, he'll almost
certainly know where it is.  A user who would forget wouldn't bother
renaming it in the first place...  The latter problem has no one
beautiful solution, but for me it's worth the difficulty if it means I
get more control over my system.  As a desktop user, I want to tell my
system what to do, not vice-versa, and I want to be able to do it
easily.  I'm aware that this idea introduces chaos, which makes a
programmer wince, but we must work *with* a user's unpredictability and
not fight the user :)

(Sorry to ramble again!)
Paul
_______________________________________________
gobolinux-devel mailing list
gobolinux-devel@lists.gobolinux.org
http://lists.gobolinux.org/mailman/listinfo/gobolinux-devel

Reply via email to