From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 18050 invoked by alias); 21 Aug 2008 11:45:13 -0000 Received: (qmail 18038 invoked by uid 22791); 21 Aug 2008 11:45:13 -0000 X-Spam-Check-By: sourceware.org Received: from aquarius.hirmke.de (HELO calimero.vinschen.de) (217.91.18.234) by sourceware.org (qpsmtpd/0.31.1) with ESMTP; Thu, 21 Aug 2008 11:44:26 +0000 Received: by calimero.vinschen.de (Postfix, from userid 500) id F04656D434C; Thu, 21 Aug 2008 13:46:26 +0200 (CEST) Date: Thu, 21 Aug 2008 11:45:00 -0000 From: Corinna Vinschen To: cygwin-apps@cygwin.com Subject: Re: [RFC] 1.7 Packaging: Obsolete packages Message-ID: <20080821114626.GL29104@calimero.vinschen.de> Reply-To: cygwin-apps@cygwin.com Mail-Followup-To: cygwin-apps@cygwin.com References: <48880879.5050400@users.sourceforge.net> <20080724094313.GG5251@calimero.vinschen.de> <488913D9.8070809@users.sourceforge.net> <20080725094034.GR5251@calimero.vinschen.de> <20080730121815.GM29031@calimero.vinschen.de> <48ACED44.4060902@users.sourceforge.net> <20080821082602.GE29104@calimero.vinschen.de> <20080821103526.GJ29104@calimero.vinschen.de> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20080821103526.GJ29104@calimero.vinschen.de> User-Agent: Mutt/1.5.16 (2007-06-09) Mailing-List: contact cygwin-apps-help@cygwin.com; run by ezmlm Precedence: bulk Sender: cygwin-apps-owner@cygwin.com List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Mail-Followup-To: cygwin-apps@cygwin.com X-SW-Source: 2008-08/txt/msg00209.txt.bz2 On Aug 21 12:35, Corinna Vinschen wrote: > On Aug 21 10:26, Corinna Vinschen wrote: > > On Aug 20 23:21, Yaakov (Cygwin Ports) wrote: > > > Corinna Vinschen wrote: > > > > What if we add an "obsoletes:" line to setup.{ini,hint}? > > > > [...] > > > Any progress yet on this one? > > > > Unfortunately not. The package management in setup is written in some > > sort of martial-arts C++, which I have trouble to follow through. For > > this and for the problem I describe in > > > > http://cygwin.com/ml/cygwin-apps/2008-08/msg00162.html > > > > I would need help. > > Setup.exe apparently already understands package lists in setup.ini > which start with "Replaces:" (upper case R), collects the information > and stores it in an internal list, but then doesn't seem to use it > later on. Too bad. IIUC, the ConnectedLoopFinder::visit() function is the core function which creates the dependency order. What I don't get is this: The function starts with: if (!db.packages[nodeToVisit]->installed) /* Can't visit this node, and it is not less than any visted node */ return db.packages.size() + 1; So, it skips packages which are not installed? What about packages which are about to be installed the first time? Isn't their "installed" packageversion NULL and only "desired" is a vaild version? And then, assuming a package is about to be uninstalled. Doesn't that package have a "desired" of NULL? And shouldn't such a package be skipped in the dependency tracking? I don't see where "installed" is set to the "desired" packageversion before the dependency tracking is called. Can anybody help me to understand this? Corinna -- Corinna Vinschen Please, send mails regarding Cygwin to Cygwin Project Co-Leader cygwin AT cygwin DOT com Red Hat