gnu-system-discuss
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Package format/management ramblingss


From: Marco Gerards
Subject: Re: Package format/management ramblingss
Date: Fri, 06 Aug 2004 00:21:55 +0200
User-agent: Gnus/5.1006 (Gnus v5.10.6) Emacs/21.3 (gnu/linux)

Richard Stallman <address@hidden> writes:

>     But there is another problem: A *very* few programs consist of a single
>     file, so this file could not be just the file which would appear in
>     /bin.  Instead, it could be a directory which contains all the files
>     it ``exports'':  bin/emacs, (share/)doc/emacs, ...
>     When you request /bin/emacs, it therefore has to search
>     /packages/*/bin and /home/<me>/packages/*/bin -- excluding the
>     directories it does not prefer -- for the file `emacs', which is very
>     inefficient.
>
> The idea is to compute this in advance, and keep a table prepared.

Right.  Perhaps it would be a good idea to study how unionfs works,
perhaps there are some nice ideas we can use.

>     Yet another aspect is the handling of dependencies.  Therefore, every
>     package could have its own dependency file, which is syntactically
>     similar to the preferences file:
>
> This would all be processed in advance.  Recalculation would be needed
> only when the set of installed packages changes.
>
> The Hurd lets a program ask to be notified whenever a certain file or
> dir gets changed.  Using this feature the translator for /bin would
> always know when to recalculate something.

Please forgive me if this has been discussed before, I just know what
we have discussed at the LSM several years ago.  So I just continue
here with what I can remember.  If something was already discussed,
please ignore that part, I will try to catch up.  The main reason for
me to write this email is to prevent confusion.

What you are talking about sounds like /bin would get a translator.
And /sbin would get another, etc.  That is where is looks like Soeren
got confused.

AFAIK the idea is to have a translator set on "/", that is a union of
all subdirectories in /package/*.  So /bin will be a union of
/packages/emacs/bin, /packages/bash/bin, etc.

This part was just to make clear we are all talking about the same
thing.

How about /package/*?  The original idea was just to fill it with
symlinks to another directory where all packages can be found.  For
example:

/package/emacs -> /packages/emacs-21
/package/bash -> /packages/bash-3.0

If one would decide to change the version that is used you would just
change a symlink.  Installing a new package is just untarring it and
creating a symlink.

As you said, you can request file notifications.  But what you can do
as well is request directory notifications.  Every time you add or
remove a file, in our case a symlink, you know to update several
things.  For a single directory of symlinks this is a fast and clean
solution.  I don't think it is required to monitor changes within the
packages...

Now that I am thinking about it, how should the translator be set?  On
top of /?  Or would it be better to set it on top of something like
/usr or /local?

The problem is that if we set the translator on top of "/", that
translator should be unioned as well.  In that case the "/" filesystem
should be the one written to.

Thanks,
Marco





reply via email to

[Prev in Thread] Current Thread [Next in Thread]