[RFC] 1.7 Packaging: Obsolete packages
Mon Aug 25 10:27:00 GMT 2008
On Aug 22 03:53, Brian Dessent wrote:
> Corinna Vinschen wrote:
> > Something's obviously missing...
> Yes, I led you astray, sorry. That is going to purge absolutely
> everything that setup knows about packages. In order to get that back
> it would be necessary to re-parse setup.ini and re-scan the local
> package directory for its contents to see what's available.
That's what I had expected, actually. If the user goes back to the
root dir dialog, I don't quite care if the user's selections are
not remembered. I know, it's not overly good GUI design, but it
would have been at least better than what we have today.
> What's needed is rather than nuking the database, to undo the
> information about what versions are currently installed. This is rather
> dicey because each packagemeta contains a std::set of packageversions,
> each of which could have come from setup.ini, or from the parsing of the
> filename in installed.db. So we can't just remove everything from that
> set. But if you don't remove anything you'd leak (or end up with
> duplicates, or end up with nonsense versions) because the code in the
> installed.db reader (below) creates a new packageversion
> unconditionally. Really what we want to do is undo this:
> packageversion binary =
> cygpackage::createInstance (pkgname, inst, instsz, f.ver,
> pkg->add_version (binary);
> pkg->set_installed (binary);
> pkg->desired = pkg->installed;
> I think what might be required is to add another field to packageversion
> to denote whether it came from reading setup.ini or from reading
> installed.db. (Remember that it's possible that the installed version
> is not Curr nor Prev nor Exp, it could be anything.)
> [and lots of stuff]
Baeh. I'm not sure I can manage to implement that before my vacation.
Brian, do you have any spare cycles in the next couple of weeks?
Corinna Vinschen Please, send mails regarding Cygwin to
Cygwin Project Co-Leader cygwin AT cygwin DOT com
More information about the Cygwin-apps