On 7/18/07, Isaac Dupree <[EMAIL PROTECTED]> wrote:
> [EMAIL PROTECTED] wrote:
> > On 7/17/07, Michael Homer <[EMAIL PROTECTED]> wrote:
> >> On 7/17/07, [EMAIL PROTECTED] <[EMAIL PROTECTED]> wrote:
> >>> A very vague thought: maybe what we need is a way to "talk" to other
> >>> package managers, to have a bridge between our management/dependency
> >>> system, and theirs. Perhaps implemented as a plugin-like system.
> >>> Thinking out loud:
> >>>
> >>> If a dependency in the Dependencies file is named something like:
> >>> RubyGems-rubyqt then it means it will be handled by the RubyGems
> >>> plugin. The plugin script will respond to some minimal set of
> >>> operations such as "is_installed", "install", "remove". Plugins would
> >>> be written for those external managers. There wouldn't be recipes for
> >>> each gem, or for each rock. A dependency like "LuaRocks-luasocket >=
> >>> 2.0" would just call the LuaRocks plugin and the plugin would
> >>> query/install LuaSocket using LuaRocks. We would need standard
> >>> locations for these separate trees; I'm at a blank wrt this
> >>> (/Files/LuaRocks/ would be the cowardly escape). A directory for ROX
> >>> appdirs could fit into this scheme as well. Again, it is all still
> >>> very vague in my head.
> >> That works for me. I like it a lot, in fact. It's flexible and it's
> >
> > Yeah, I feel quite good about it too (and I loved Carlo's suggestion
> > of /System/Aliens/ :) ).
>
> I don't want to lose versioning for them totally. (inventing things)
> Suppose we have /System/Aliens/LuaRocks and I want to try out some new
> "LuaRocks 2.0" reimplementation.  Or suppose I want to maintain multiple
> sets of debian packages for different debian versions.  Hmm, these
> aren't very compelling examples - maybe it's not necessary.  I guess we
> would want to make each subsystem as a whole 'rm -rf'-able anyway,
> deleting all the packages it contained as well as any centralized
> database of them required by the system.
>
> The naming scheme... "RubyGems-rubyqt" would look like any other program
> name, should there be some more distinctive punctuation like
> "RubyGems:rubyqt" (... _is_ that more distinctive?)?  Also I think we
> will have to provide partial dependency files when a system package is
> required (e.g. I'm assuming rubyqt requires some version of Qt to be
> installed), since the ruby "gems" system can't know what we call our
> _packages_ even if it knows it requires a file like /usr/include/qt.h
> (or a .so file, etc.).
That's a very good question. How is that going to work? Catching it
for "gem install rubyqt" probably won't be possible, but something
depending on RubyGems:rubyqt (I like that syntax, too) shouldn't fail
to compile. We could just list Qt in the dependencies of everything
requiring the Ruby bindings, but that's a little messy and seems like
unnecessary duplication.

It would also introduce the need to order dependencies for non-meta
recipes which I don't like so much from the perspective of trying to
resolve a valid order amongst many programs. [Explanatory sidebar: I
don't want to have to make Freshen order things as they're listed in
the recipe Dependencies, because most of the time it doesn't matter
and is arbitrary (alphabetical). If order matters, resolving among
multiple programs becomes impossible when one orders Qt before another
package and another puts it after, creating a loop. There's no real
way to decide which one should be followed.]

Maybe a compatibility layer? A file of the format "RubyGems:rubyqt Qt
>=3.0, <=4.0" that will make Compile do the right thing? I don't
really like that solution, since we can't possibly keep up with every
package in every packaging system.

To Hisham's post, yes, I think Freshen (and Manager, and any others
that crop up) should concern itself with /Programs updates and leave
`gem update` to the individual package managers. If the plugins
provide a "has-updates" mode it could prompt "There are RubyGems
updates available. You may want to run `gem ...` to install them". But
that isn't really necessary and it might not be plausible. And I like
/System/Aliens.
-Michael
_______________________________________________
gobolinux-devel mailing list
gobolinux-devel@lists.gobolinux.org
http://lists.gobolinux.org/mailman/listinfo/gobolinux-devel

Reply via email to