Hisham Muhammad wrote:
> Yes, that's the plan. It's a unionfs-style solution, but not using
> unionfs directly because it doesn't scale too well for hundreds of
> layers (it's just not what it was designed for) and we have some other
> stuff in mind related to versioning beyond just merging layers.
>   
  That sounds really exciting Hisham.  Do you have any details yet, or
is it still in the planning stages?  By versioning, I assume you mean
program versions?  Does that mean you'll lose the subdirectories in the
program dirs?  I think this would be a good step.  Personally, I'd
prefer giving my program dirs different names for each version, or
having the option of moving them into subdirectories myself.
> Yes, ChrootCompile produces a package (Foo--1.0--i686.tar.bz2) which
> should then be installed into /Programs.
>   
  That's great.  I'd also really love it if it were possible to
ChrootCompile programs as an unprivileged user.  Is there any reason
that's not possible, given that we're building in a fake root anyway? 
That way we can build a package and either run it as an unprivileged
user, or install it as root for everyone to access...

  I would love for packages to be mounted/merged into the system from
anywhere.  That is, for there to be no need for InstallPackage, because
the program will run directly from a package once it's built.  It would
be great if unzipping were optional, but that's certainly not
essential.  What I mean is, you build the package, then run something
like MountProgram MyProg or MountProgram MyProg.tar.bz2 and it's on the
path straight away.

  I'll introduce one more concept into the mix here.  I may be going mad
here, but I find it a fascinating idea.  Now ChrootCompile compiles
programs in an environment where only the programs it depends on exist,
correct?  Well when you run a program, it needs access to only the
programs & libraries it depends on, plus data files.  Now I realise
there may be overheads here, but what do you think of the concept of
having a separate set of "mounted" programs for each program that is
run?  (That is, using the current system as an analogy, each program has
a different view of /Programs.)  That way, we could unclutter the PATH,
which is a problem that I still have with all Linux distros.  We can
then run, say, two versions of GCC, just by opening two consoles, doing
MountProgram for a different GCC in each, then entering gcc as normal. 
The two will not conflict with each other because they are in different
namespaces, so to speak.

  When a certain program becomes highly depended on, we could move it
to, say, /System/Programs, which would contain programs that are
automatically mounted into every program's environment.  Most useful
command-line programs would end up in /System/Programs, whereas
applications like GIMP or Firefox would stay in /Programs (which could
maybe be renamed /Applications in view of the change).  When you open a
console, all programs in /System/Programs would be on the path, but to
load an application, you would have to do:

  $ MountProgram /Applications/Firefox
  $ firefox

  This idea further promotes the concept of separate programs, hopefully
without creating a huge impact on command-line operations.
> Comparing ourselves to these alternatives, I think we have the
> concepts laid out pretty well; we just need to keep working on the
> implementation.
>   
  Without a doubt, GoboLinux is the closest thing to a user-friendly and
intuitive Linux desktop that I have ever found, because you have started
by changing the underlying system into something understandable and
maintainable, and have not resorted to just abstracting it with
countless utilities that limit the user's possibilities.  Thank you all
so much for the time and effort you have put in so far :)

Paul
_______________________________________________
gobolinux-devel mailing list
gobolinux-devel@lists.gobolinux.org
http://lists.gobolinux.org/mailman/listinfo/gobolinux-devel

Reply via email to