From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 80736 invoked by alias); 24 Dec 2017 15:00:36 -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 80564 invoked by uid 89); 24 Dec 2017 15:00:23 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-25.7 required=5.0 tests=AWL,BAYES_00,GIT_PATCH_0,GIT_PATCH_1,GIT_PATCH_2,GIT_PATCH_3,SPF_HELO_PASS,SPF_PASS,T_RP_MATCHES_RCVD autolearn=ham version=3.3.2 spammy=transactions, Achim, achim, Gratz X-HELO: limerock02.mail.cornell.edu Received: from limerock02.mail.cornell.edu (HELO limerock02.mail.cornell.edu) (128.84.13.242) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Sun, 24 Dec 2017 15:00:22 +0000 X-CornellRouted: This message has been Routed already. Received: from authusersmtp.mail.cornell.edu (granite4.serverfarm.cornell.edu [10.16.197.9]) by limerock02.mail.cornell.edu (8.14.4/8.14.4_cu) with ESMTP id vBOF0I2j006558 for ; Sun, 24 Dec 2017 10:00:18 -0500 Received: from [192.168.0.15] (mta-68-175-129-7.twcny.rr.com [68.175.129.7] (may be forged)) (authenticated bits=0) by authusersmtp.mail.cornell.edu (8.14.4/8.12.10) with ESMTP id vBOF0Gns010682 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES128-SHA bits=128 verify=NOT) for ; Sun, 24 Dec 2017 10:00:17 -0500 Subject: Re: [PATCH setup 00/14] Use libsolv, solve all our problems... (WIP) To: cygwin-apps@cygwin.com References: <20170531105015.162228-1-jon.turney@dronecode.org.uk> <488ba627-de58-ddc7-7f69-696adae76b8a@cornell.edu> <7a173f99-a2e1-a07c-a9df-5bebcf377957@cornell.edu> <87poau9znx.fsf@Rainer.invalid> <050204e5-0ed3-8e47-3825-58ec6a10f44f@cornell.edu> <87ingltcn0.fsf@Rainer.invalid> <4ed6c549-dddd-fc45-3ed8-f7339548d7cd@cornell.edu> <1ec0f4de-380f-c6d1-59e7-03570f36b80b@cornell.edu> <87609alczj.fsf@Rainer.invalid> <31df6cf0-1abd-9cb0-a5c3-3c2b0a7d069c@cornell.edu> From: Ken Brown Message-ID: Date: Sun, 24 Dec 2017 15:00:00 -0000 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:52.0) Gecko/20100101 Thunderbird/52.5.0 MIME-Version: 1.0 In-Reply-To: <31df6cf0-1abd-9cb0-a5c3-3c2b0a7d069c@cornell.edu> Content-Type: multipart/mixed; boundary="------------8C2F4F81FBA5A26CF3B23AC0" X-PMX-Cornell-Gauge: Gauge=XXXXX X-PMX-CORNELL-AUTH-RESULTS: dkim-out=none; X-IsSubscribed: yes X-SW-Source: 2017-12/txt/msg00086.txt.bz2 This is a multi-part message in MIME format. --------------8C2F4F81FBA5A26CF3B23AC0 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 8bit Content-length: 1847 On 12/13/2017 5:31 PM, Ken Brown wrote: > On 12/13/2017 1:05 PM, Achim Gratz wrote: >> Ken Brown writes: >>> 1. Uninstall A. >>> 2. Don't uninstall B. >>> >>> On the surface, it would seem that libsolv chose 2 by default, because >>> it returned an empty transaction list.  This was reflected in the log >>> and was also clear when I selected 'Back'. >> >> I don't think there is a default in this case.  I also see in zypper >> that the order of the proposed solutions (there can be way more than two >> if the dependencies are more complicated) is not always the same, so >> there is no preference implied by the order as well. >> >>> Maybe we have to deal with this situation ourselves.  Whenever a >>> problem involves a missing dependency, we could choose as default >>> solution the one that installs/keeps the dependent package, as is >>> currently done. >> >> That solution unfortunately isn't always the one that causes the least >> amount of transactions or even the least amount of breakage. > > That may be true, but I still think it's a reasonable default.  The user > doesn't have to accept it.  Also, it's consistent with what setup > currently does, so it won't surprise anyone. > > The attached patch attempts to implement my suggestion. > > Ken > > > 0001-Implement-a-default-solution-for-SOLVER_RULE_PKG_REQ.patch > > + if (type == SOLVER_RULE_PKG_REQUIRES) > + { > + packagemeta *pkg = db.findBinary(PackageSpecification(pool_dep2str(pool.pool, dep))); > + if (!pkg->desired && pkg->installed < pkg->default_version) > + // User chose to uninstall or skip a required package. > + trans.push_back(SolverTransaction(pkg->default_version, > + SolverTransaction::transInstall)); This isn't quite right. We also need a transErase if the package is installed. Revised patch attached. Ken --------------8C2F4F81FBA5A26CF3B23AC0 Content-Type: text/plain; charset=UTF-8; name="0001-Implement-a-default-solution-for-SOLVER_RULE_PKG_REQ.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename*0="0001-Implement-a-default-solution-for-SOLVER_RULE_PKG_REQ.pa"; filename*1="tch" Content-length: 3945 RnJvbSAxOTMwNDYwYzlmNWM4YTRjMWFlYTA4Mzc3NzhkNzZkODMyMjY0MmZh IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBLZW4gQnJvd24gPGti cm93bkBjb3JuZWxsLmVkdT4KRGF0ZTogV2VkLCAxMyBEZWMgMjAxNyAxNzoy MDoyNiAtMDUwMApTdWJqZWN0OiBbUEFUQ0ggc2V0dXAgbGlic29sdiB2Ml0g SW1wbGVtZW50IGEgZGVmYXVsdCBzb2x1dGlvbiBmb3IKIFNPTFZFUl9SVUxF X1BLR19SRVFVSVJFUwoKSWYgbGlic29sdiByZXBvcnRzIGEgU09MVkVSX1JV TEVfUEtHX1JFUVVJUkVTIHByb2JsZW0sIGl0IG1lYW5zIHRoYXQKdGhlIHVz ZXIgY2hvc2UgdG8gdW5pbnN0YWxsIG9yIHNraXAgYSByZXF1aXJlZCBwYWNr YWdlLiAgQWRkCmFwcHJvcHJpYXRlIHRyYW5zYWN0aW9ucywgaWYgbmVjZXNz YXJ5LCB0byBvdmVycmlkZSB0aGlzIGNob2ljZS4gIFRoZQp1c2VyIHdpbGwg aGF2ZSB0byB1bmNoZWNrIHRoZSAiQWNjZXB0IGRlZmF1bHQgcHJvYmxlbSBz b2x1dGlvbnMiIGJveAp0byBpbnNpc3Qgb24gdGhlIG9yaWdpbmFsIGNob2lj ZS4KLS0tCiBsaWJzb2x2LmNjIHwgMjYgKysrKysrKysrKysrKysrKysrKysr KystLS0KIGxpYnNvbHYuaCAgfCAgMiArLQogMiBmaWxlcyBjaGFuZ2VkLCAy NCBpbnNlcnRpb25zKCspLCA0IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBh L2xpYnNvbHYuY2MgYi9saWJzb2x2LmNjCmluZGV4IDBmYjM5YzcuLjQ4YzI0 YzQgMTAwNjQ0Ci0tLSBhL2xpYnNvbHYuY2MKKysrIGIvbGlic29sdi5jYwpA QCAtODY4LDcgKzg2OCw3IEBAIFNvbHZlclNvbHV0aW9uOjp0cmFuc2FjdGlv bnMoKSBjb25zdAogCiAvLyBDb25zdHJ1Y3QgYSBzdHJpbmcgcmVwb3J0aW5n IHRoZSBwcm9ibGVtcyBhbmQgc29sdXRpb25zCiBzdGQ6OnN0cmluZwotU29s dmVyU29sdXRpb246OnJlcG9ydCgpIGNvbnN0CitTb2x2ZXJTb2x1dGlvbjo6 cmVwb3J0KCkKIHsKICAgcGFja2FnZWRiIGRiOwogICBzdGQ6OnN0cmluZyBy ID0gIiI7CkBAIC04ODEsOCArODgxLDI4IEBAIFNvbHZlclNvbHV0aW9uOjpy ZXBvcnQoKSBjb25zdAogICAgICAgSWQgcHJvYnIgPSBzb2x2ZXJfZmluZHBy b2JsZW1ydWxlKHNvbHYsIHByb2JsZW0pOwogICAgICAgSWQgZGVwLCBzb3Vy Y2UsIHRhcmdldDsKICAgICAgIFNvbHZlclJ1bGVpbmZvIHR5cGUgPSBzb2x2 ZXJfcnVsZWluZm8oc29sdiwgcHJvYnIsICZzb3VyY2UsICZ0YXJnZXQsICZk ZXApOwotICAgICAgaWYgKHNvdXJjZSA9PSBkYi5iYXNlcGtnLmlkKQotCXIg Kz0gInBhY2thZ2UgIiArIHN0ZDo6c3RyaW5nKHBvb2xfZGVwMnN0cihwb29s LnBvb2wsIGRlcCkpICsgIiBpcyBhIEJhc2UgcGFja2FnZSBhbmQgaXMgdGhl cmVmb3JlIHJlcXVpcmVkIjsKKyAgICAgIGlmICh0eXBlID09IFNPTFZFUl9S VUxFX1BLR19SRVFVSVJFUykKKwl7CisJICAvLyBUaGUgdXNlciBjaG9zZSB0 byB1bmluc3RhbGwgb3Igc2tpcCBhIHJlcXVpcmVkIHBhY2thZ2UuCisJICAv LyBsaWJzb2x2IHdpbGwgbm90IGNyZWF0ZSBhbiBlcmFzZSB0cmFuc2FjdGlv biwgYnV0IHdlCisJICAvLyBtaWdodCBuZWVkIHRvIGNyZWF0ZSBvdXIgb3du IHRyYW5zYWN0aW9ucyB0byBpbXBsZW1lbnQgYQorCSAgLy8gZGVmYXVsdCBz b2x1dGlvbiB0byB0aGUgcHJvYmxlbS4KKwkgIHBhY2thZ2VtZXRhICpwa2cg PSBkYi5maW5kQmluYXJ5KFBhY2thZ2VTcGVjaWZpY2F0aW9uKHBvb2xfZGVw MnN0cihwb29sLnBvb2wsIGRlcCkpKTsKKwkgIGlmICghcGtnLT5kZXNpcmVk ICYmIHBrZy0+aW5zdGFsbGVkIDwgcGtnLT5kZWZhdWx0X3ZlcnNpb24pCisJ ICAgIHsKKwkgICAgICB0cmFucy5wdXNoX2JhY2soU29sdmVyVHJhbnNhY3Rp b24ocGtnLT5kZWZhdWx0X3ZlcnNpb24sCisJCQkJCQlTb2x2ZXJUcmFuc2Fj dGlvbjo6dHJhbnNJbnN0YWxsKSk7CisJICAgICAgaWYgKHBrZy0+aW5zdGFs bGVkKQorCQl0cmFucy5wdXNoX2JhY2soU29sdmVyVHJhbnNhY3Rpb24ocGtn LT5pbnN0YWxsZWQsCisJCQkJCQkgIFNvbHZlclRyYW5zYWN0aW9uOjp0cmFu c0VyYXNlKSk7CisJICAgIH0KKwkgIGlmIChzb3VyY2UgPT0gZGIuYmFzZXBr Zy5pZCkKKwkgICAgciArPSAicGFja2FnZSAiICsgc3RkOjpzdHJpbmcocG9v bF9kZXAyc3RyKHBvb2wucG9vbCwgZGVwKSkKKwkgICAgICArICIgaXMgYSBC YXNlIHBhY2thZ2UgYW5kIGlzIHRoZXJlZm9yZSByZXF1aXJlZCI7CisJICBl bHNlCisJICAgIHIgKz0gInBhY2thZ2UgIiArIHN0ZDo6c3RyaW5nKHBvb2xf ZGVwMnN0cihwb29sLnBvb2wsIGRlcCkpICsKKwkgICAgICAiIGlzICByZXF1 aXJlZCBieSAiICsgc3RkOjpzdHJpbmcocG9vbF9zb2x2aWQyc3RyKHBvb2wu cG9vbCwgc291cmNlKSk7CisJfQogICAgICAgZWxzZQogCXIgKz0gc29sdmVy X3Byb2JsZW1ydWxlaW5mbzJzdHIoc29sdiwgdHlwZSwgc291cmNlLCB0YXJn ZXQsIGRlcCk7CiAgICAgICByICs9ICJcbiI7CmRpZmYgLS1naXQgYS9saWJz b2x2LmggYi9saWJzb2x2LmgKaW5kZXggY2RkZjc2Zi4uMzkxYTk2ZCAxMDA2 NDQKLS0tIGEvbGlic29sdi5oCisrKyBiL2xpYnNvbHYuaApAQCAtMjUzLDcg KzI1Myw3IEBAIGNsYXNzIFNvbHZlclNvbHV0aW9uCiAgICAgdXBkYXRlRm9y Y2UsIC8vIGRpc3R1cGRhdGU6IGRvd25ncmFkZSBpZiBuZWNlc3NhcnkgdG8g YmVzdCB2ZXJzaW9uIGluIHJlcG8KICAgfTsKICAgYm9vbCB1cGRhdGUoU29s dmVyVGFza3MgJnRhc2tzLCB1cGRhdGVNb2RlIHVwZGF0ZSwgYm9vbCB1c2Vf dGVzdF9wYWNrYWdlcywgYm9vbCBpbmNsdWRlX3NvdXJjZSk7Ci0gIHN0ZDo6 c3RyaW5nIHJlcG9ydCgpIGNvbnN0OworICBzdGQ6OnN0cmluZyByZXBvcnQo KTsKIAogICBjb25zdCBTb2x2ZXJUcmFuc2FjdGlvbkxpc3QgJnRyYW5zYWN0 aW9ucygpIGNvbnN0OwogCi0tIAoyLjE1LjEKCg== --------------8C2F4F81FBA5A26CF3B23AC0--