From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 78367 invoked by alias); 24 Oct 2017 20:09:54 -0000 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 Received: (qmail 78355 invoked by uid 89); 24 Oct 2017 20:09:54 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-3.2 required=5.0 tests=AWL,BAYES_00,RCVD_IN_DNSWL_LOW autolearn=ham version=3.3.2 spammy=Hx-spam-relays-external:ESMTPA, HContent-Transfer-Encoding:8bit X-HELO: out4-smtp.messagingengine.com Received: from out4-smtp.messagingengine.com (HELO out4-smtp.messagingengine.com) (66.111.4.28) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Tue, 24 Oct 2017 20:09:52 +0000 Received: from compute6.internal (compute6.nyi.internal [10.202.2.46]) by mailout.nyi.internal (Postfix) with ESMTP id 0CA6B2074D for ; Tue, 24 Oct 2017 16:09:51 -0400 (EDT) Received: from frontend2 ([10.202.2.161]) by compute6.internal (MEProxy); Tue, 24 Oct 2017 16:09:51 -0400 X-ME-Sender: Received: from [192.168.1.102] (host86-179-113-201.range86-179.btcentralplus.com [86.179.113.201]) by mail.messagingengine.com (Postfix) with ESMTPA id A4D93246D8 for ; Tue, 24 Oct 2017 16:09:50 -0400 (EDT) Subject: Re: [setup topic/libsolv] Does "obsoletes:" work? To: cygwin-apps@cygwin.com References: <8344e55f-2036-187b-7cb9-819d2cdb0e99@cornell.edu> <2ec4937d-5932-a47a-964d-b3fc8c030da3@cornell.edu> From: Jon Turney Message-ID: Date: Tue, 24 Oct 2017 20:09:00 -0000 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:52.0) Gecko/20100101 Thunderbird/52.4.0 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 8bit X-SW-Source: 2017-10/txt/msg00114.txt.bz2 On 23/10/2017 18:43, Ken Brown wrote: > On 10/23/2017 7:38 AM, Jon Turney wrote: >> On 21/10/2017 21:18, Ken Brown wrote: >>> On 10/20/2017 6:24 PM, Ken Brown wrote: >>>> Have you ever tested the "obsoletes:" feature of setup/libsolv?  I >>>> tried adding an "obsoletes:" line to setup.ini, and it didn't seem >>>> to have any effect. >> >> It seems I tested it back in May, so it might well have broken since :) >> >> Here's a very small test repo I've been using for some tests: >> http://www.dronecode.org.uk/cygwin/test/x86_64/ >> >> But yes, your patch looks like it's needed for it to work correctly... >> >>> It turns out that it *is* working (after a minor fix, attached), but >>> not always as I expect.  Suppose A requires B and C obsoletes B. >>> Then the "obsoletes" statement appears to have no effect.  If I >>> remove the dependence of A on B, then setup does propose uninstalling >>> B and installing C. >>> >>> I guess the issue is that libsolv interprets "C obsoletes B" as >>> "uninstall B and install C", and it won't uninstall B while something >>> requires it. >> >> The 'targeted' vs. 'untargeted' distinction is relevant here? Perhaps >> we are doing the wrong one? > > Maybe.  I've read and re-read the discussion of this in > libsolv-bindings.txt, and I'm still not sure I understand it. Yeah, the documentation is a bit impenetrable. > But here's a simpler case where "obsoletes" isn't working as I expect. > Using your test repo, in which A requires C and obsoletes B, I start > with none of the packages installed.  I choose B for installation > (either interactively or on the command line), and B gets installed.  If > I now run setup a second time, A and C get installed and B gets > uninstalled. > > I expected A and C to be installed on the first run.  I don't think this > has anything to do with targeted vs. untargeted, because that > distinction is only relevant for updating installed packages. I guess I had the opposite expectation (if I ask for A to be installed, that's what should happen, because if it insists on upgrading it behind my back there's no way to do that...) The actual behaviour you mention fits what's described there pretty well.