On 7/2/07, Anshuman Aggarwal <[EMAIL PROTECTED]> wrote:
> Hisham,
>  Did you disagree with the alternate location for the Dependency files
> and Links as well as he has described?

My first impression was that his suggestions added to what you
proposed, combining the best aspects of your and Jan's proposal.

> In general, I'm pushing the links
> idea for dependencies for the simple reason(s) below:
>
> ...file system as package manager
> ...any decent package manager needs a way of tracking forward and
> reverse dependencies
> ...parsing through the text files which are distributed with the recipes
> is not *really* tracking dependencies...its calculating them everytime!
> ...not to mention that the elegance of broken links which currently show
> u what's wrong where...

>From what I understood in your proposal, one would see in a directory
a list of links pointing to programs that depended on a given lib.
This wouldn't show broken links for missing dependencies, or am I
missing something?

> although the Compile, Symlink, RemoveProgram scripts will need
> enhancement to support this...it'll essentially tell the user (and
> RemoveProgram) in a quick look, which library's old version is
> outdated....which is pretty hard to do right now
>
> --with the symbolic links its easy to view/browse the dependencies also
> using just the FS...
> however, the parsing scripts will make the solution more Gentoo like
> (magic script, working on files, dependencies inaccessible to user
> easily other than the script)... :(

I understand the conceptual motivations, but pragmatically I still
feel unconvinced. Perhaps you might want to try a prototype
implementation? Seeing things in practice can go a long way to get a
point across.

-- Hisham

> Hisham Muhammad wrote:
> > On 7/2/07, Andy Feldman <[EMAIL PROTECTED]> wrote:
> >
> >> I think this proposal is coming too close to "reimplementing a
> >> database in a filesystem." The point of using the filesystem should be
> >> to *avoid* having a special central construct just for tracking
> >> dependencies (or whatever). Ideally, there should just be one method
> >> of storing the dependencies for each program, and it should lend
> >> itself to whatever purpose we need it to serve.
> >>
> >> The /System/Links hierarchy is not a "central" database because it
> >> simply helps find the scattered files of the appropriate type
> >> efficiently. The structure itself doesn't add any additional
> >> semantics... all information is contained within the /Programs
> >> entries. In this proposal for dependencies, the information seems to
> >> be contained within the central structure. This means there are two
> >> pieces that need to be held in sync by the system scripts, rather than
> >> the folders in /S/L/* simply being collections of /Programs/*/*/*
> >> entries.
> >>
> >> >From a simplicity standpoint, I like Carlo's suggestion of a fancy
> >> grep over /Programs/*/*/Resources/Dependencies, with the possible
> >> optimization of linking the dependency files into /S/L/Dependencies
> >> and grepping that folder instead. However, the elegance and
> >> user-friendliness of checking what depends on each version of LibA by
> >> issuing `ls /System/Links/Dependecies/LibA/*` got me thinking about
> >> ways to get the advantages of that by leveraging existing concepts
> >> (and without adding significant complexity to the Scripts, which would
> >> make it harder to administer by hand).
> >>
> >> If each program's dependencies are stored as folders within its
> >> /Programs tree entry, they can be symlinked together in exactly the
> >> same way as the lib/ directories get symlinked together to form
> >> /S/L/L. Having zero-size files like this...
> >>
> >> /Programs/ProgramB/1.1/Resources/Dependencies/LibA/>=3.0/ProgramB--1.1
> >>
> >> ...and symlinking /P/*/*/Dependencies into /S/L/Dependenices generates
> >> the hierarchy Anshuman suggested without requiring any additional
> >> complexity in SymlinkProgram. This could potentially replace the
> >> Dependencies file, since it stores the same information in the same
> >> place but in a way that's much more convenient for reverse lookup and
> >> not much harder to create or change manually. (If the current
> >> Dependencies file is kept, the folder name would of course have to be
> >> different than 'Dependencies' to avoid the conflict.)
> >>
> >> Like Anshuman's original proposal, this avoids the "order of
> >> installation" problem by not putting files into other programs'
> >> /Programs entries, and it avoids the performance hit of system-wide
> >> dependency scan. In addition, assuming this is used instead of
> >> Dependency files, it avoid the unnecessary duplication of information
> >> that I didn't like about the earlier proposals. Even if the original
> >> flat dependency files are kept, duplicating that information within
> >> each /Programs/*/*/Resources directory seems cleaner and more
> >> maintainable than any standalone central information repository or
> >> putting it into other /Programs entries.
> >>
> >> I don't have a particular need to be performing reverse dependency
> >> lookups often enough to need anything faster than Carlo's grep, but if
> >> something is implemented for RemoveProgram's use, I'd like to see it
> >> look like the above.
> >>
> >
> > I was writing a reply to this thread while Andy's message arrived and
> > I think he summed it up quite well; I basically agree with everything
> > he said, with emphasis on the doubt that anything more that Carlo's
> > grep is really needed. Some tools to scan and report on Dependencies
> > files, like the script MJ posted, may be all we really need.
> >
> > -- Hisham
> > _______________________________________________
> > gobolinux-devel mailing list
> > gobolinux-devel@lists.gobolinux.org
> > http://lists.gobolinux.org/mailman/listinfo/gobolinux-devel
> >
> _______________________________________________
> gobolinux-devel mailing list
> gobolinux-devel@lists.gobolinux.org
> http://lists.gobolinux.org/mailman/listinfo/gobolinux-devel
>
_______________________________________________
gobolinux-devel mailing list
gobolinux-devel@lists.gobolinux.org
http://lists.gobolinux.org/mailman/listinfo/gobolinux-devel

Reply via email to