From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp0 ([2001:41d0:2:4a6f::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms11 with LMTPS id V50QL48UyF8PGQAA0tVLHw (envelope-from ) for ; Wed, 02 Dec 2020 22:26:23 +0000 Received: from aspmx1.migadu.com ([2001:41d0:2:4a6f::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp0 with LMTPS id IHydKo8UyF/oVAAA1q6Kng (envelope-from ) for ; Wed, 02 Dec 2020 22:26:23 +0000 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by aspmx1.migadu.com (Postfix) with ESMTPS id 168C99403A8 for ; Wed, 2 Dec 2020 22:26:23 +0000 (UTC) Received: from localhost ([::1]:35952 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kkaZq-0002av-1q for larch@yhetil.org; Wed, 02 Dec 2020 17:26:22 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:50998) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kkaZY-0002ae-Ig for bug-guix@gnu.org; Wed, 02 Dec 2020 17:26:05 -0500 Received: from debbugs.gnu.org ([209.51.188.43]:54285) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1kkaZV-00060v-T4 for bug-guix@gnu.org; Wed, 02 Dec 2020 17:26:03 -0500 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1kkaZV-0005wg-Q2 for bug-guix@gnu.org; Wed, 02 Dec 2020 17:26:01 -0500 X-Loop: help-debbugs@gnu.org Subject: bug#23874: [PATCH 1/2] profiles: Remove duplicates in manifest transactions. Resent-From: Leo Prikler Original-Sender: "Debbugs-submit" Resent-CC: bug-guix@gnu.org Resent-Date: Wed, 02 Dec 2020 22:26:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 23874 X-GNU-PR-Package: guix X-GNU-PR-Keywords: To: Mark H Weaver , 23874@debbugs.gnu.org Received: via spool by 23874-submit@debbugs.gnu.org id=B23874.160694790922795 (code B ref 23874); Wed, 02 Dec 2020 22:26:01 +0000 Received: (at 23874) by debbugs.gnu.org; 2 Dec 2020 22:25:09 +0000 Received: from localhost ([127.0.0.1]:37598 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kkaYf-0005vb-7J for submit@debbugs.gnu.org; Wed, 02 Dec 2020 17:25:09 -0500 Received: from mailrelay.tugraz.at ([129.27.2.202]:64819) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kkaYc-0005vP-OE for 23874@debbugs.gnu.org; Wed, 02 Dec 2020 17:25:08 -0500 Received: from nijino.local (217-149-166-73.nat.highway.telekom.at [217.149.166.73]) by mailrelay.tugraz.at (Postfix) with ESMTPSA id 4CmYSG3KhPz3wDL; Wed, 2 Dec 2020 23:25:02 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=tugraz.at; s=mailrelay; t=1606947902; bh=Y+MTU5rKnZz5sN+/La0pdgz1GE4IROiGycVVuJKdoIQ=; h=Subject:From:To:Date:In-Reply-To:References; b=RW0jWUD9kgNhFsWoAxkPo7d+WPx6TpSDH1XYoib/QpRFzxHkLa3vEbQyn7YlSgQdz g643DdB6DMe4A5O6q0HL1TW5B45N9thUAFnEsm4n0707JEQbqMEWnRS7PJz29X0qzd HTVAzV56zC68/cs9A+czhv50avUHEx3utaA1GtTM= Message-ID: From: Leo Prikler Date: Wed, 02 Dec 2020 23:25:01 +0100 In-Reply-To: <87ft4oeyyl.fsf@netris.org> References: <20201202132244.30694-1-leo.prikler@student.tugraz.at> <87ft4oeyyl.fsf@netris.org> Content-Type: multipart/mixed; boundary="=-eEpMD90aUOgi4BceGRUw" User-Agent: Evolution 3.34.2 MIME-Version: 1.0 X-TUG-Backscatter-control: bt4lQm5Tva3SBgCuw0EnZw X-Spam-Scanner: SpamAssassin 3.003001 X-Spam-Score-relay: -1.9 X-Scanned-By: MIMEDefang 2.74 on 129.27.10.117 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: bug-guix@gnu.org List-Id: Bug reports for GNU Guix List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-guix-bounces+larch=yhetil.org@gnu.org Sender: "bug-Guix" X-Migadu-Flow: FLOW_IN X-Migadu-Spam-Score: -0.08 Authentication-Results: aspmx1.migadu.com; dkim=fail (headers rsa verify failed) header.d=tugraz.at header.s=mailrelay header.b=RW0jWUD9; dmarc=fail reason="SPF not aligned (relaxed)" header.from=student.tugraz.at (policy=none); spf=pass (aspmx1.migadu.com: domain of bug-guix-bounces@gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=bug-guix-bounces@gnu.org X-Migadu-Queue-Id: 168C99403A8 X-Spam-Score: -0.08 X-Migadu-Scanner: ns3122888.ip-94-23-21.eu X-TUID: Rmri5250w63H --=-eEpMD90aUOgi4BceGRUw Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 7bit Hi Mark, Am Mittwoch, den 02.12.2020, 15:26 -0500 schrieb Mark H Weaver: > Hi, > > Leo Prikler writes: > > > * guix/profiles.scm (manifest-transaction-effects): Delete > > duplicates in > > install and remove. Let multiple upgrades and downgrades shadow > > previous > > transactions of the same kind. > > --- > > guix/profiles.scm | 11 +++++++---- > > 1 file changed, 7 insertions(+), 4 deletions(-) > > > > diff --git a/guix/profiles.scm b/guix/profiles.scm > > index 1b15257210..99b7dbf299 100644 > > --- a/guix/profiles.scm > > +++ b/guix/profiles.scm > [...] > > @@ -740,10 +743,10 @@ replace it." > > (loop rest > > (if previous install (cons entry install)) > > (if (and previous newer?) > > - (alist-cons previous entry upgrade) > > + (assoc-set! upgrade previous entry) > > upgrade) > > (if (and previous (not newer?)) > > - (alist-cons previous entry downgrade) > > + (assoc-set! downgrade previous entry) > > downgrade))))))) > > We should avoid mutating existing list structure, as done above with > 'assoc-set!'. In this case the bug is not with mutating existing structures (as those are allocated only for this loop), but in not checking, whether the entries are the same. Either way, I've now implemented a version, that should fix both wrong-doings (see attachment). Regards, Leo --=-eEpMD90aUOgi4BceGRUw Content-Disposition: attachment; filename*0=0001-profiles-Remove-duplicates-in-manifest-transactions.patc; filename*1=h Content-Transfer-Encoding: base64 Content-Type: text/x-patch; name="0001-profiles-Remove-duplicates-in-manifest-transactions.patch"; charset="UTF-8" RnJvbSA2N2FlMDY4OTViMGQ2ZjJmMzE0MTBjYzMyZDczM2JmYTA5ODEwMmQ2IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBMZW8gUHJpa2xlciA8bGVvLnByaWtsZXJAc3R1ZGVudC50dWdy YXouYXQ+CkRhdGU6IFdlZCwgMiBEZWMgMjAyMCAxNDowNjo1MiArMDEwMApTdWJqZWN0OiBbUEFU Q0ggMS8yXSBwcm9maWxlczogUmVtb3ZlIGR1cGxpY2F0ZXMgaW4gbWFuaWZlc3QgdHJhbnNhY3Rp b25zLgoKKiBndWl4L3Byb2ZpbGVzLnNjbSAobWFuaWZlc3QtdHJhbnNhY3Rpb24tZWZmZWN0cyk6 IERlbGV0ZSBkdXBsaWNhdGVzIGluCmluc3RhbGwgYW5kIHJlbW92ZS4gIExldCBtdWx0aXBsZSB1 cGdyYWRlcyBhbmQgZG93bmdyYWRlcyBzaGFkb3cgcHJldmlvdXMKdHJhbnNhY3Rpb25zIG9mIHRo ZSBzYW1lIGtpbmQuCi0tLQogZ3VpeC9wcm9maWxlcy5zY20gfCAxOCArKysrKysrKysrKysrKysr LS0KIDEgZmlsZSBjaGFuZ2VkLCAxNiBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQoKZGlm ZiAtLWdpdCBhL2d1aXgvcHJvZmlsZXMuc2NtIGIvZ3VpeC9wcm9maWxlcy5zY20KaW5kZXggMWIx NTI1NzIxMC4uMDM0NTkxZWI3OSAxMDA2NDQKLS0tIGEvZ3VpeC9wcm9maWxlcy5zY20KKysrIGIv Z3VpeC9wcm9maWxlcy5zY20KQEAgLTcxNiw2ICs3MTYsMTIgQEAgcmVwbGFjZSBpdC4iCiAgICAg KG1hbmlmZXN0LXBhdHRlcm4KICAgICAgIChuYW1lICAgKG1hbmlmZXN0LWVudHJ5LW5hbWUgZW50 cnkpKQogICAgICAgKG91dHB1dCAobWFuaWZlc3QtZW50cnktb3V0cHV0IGVudHJ5KSkpKQorICAo ZGVmaW5lIG1hbmlmZXN0LWVudHJ5LXBhaXI9PworICAgIChtYXRjaC1sYW1iZGEqCisgICAgICAo KChtMWEgLiBtMmEpIChtMWIgLiBtMmIpKQorICAgICAgIChhbmQgKG1hbmlmZXN0LWVudHJ5PT8g bTFhIG0xYikKKyAgICAgICAgICAgIChtYW5pZmVzdC1lbnRyeT0/IG0yYSBtMmIpKSkKKyAgICAg IChfICNmKSkpCiAKICAgKGxldCBsb29wICgoaW5wdXQgICAgIChtYW5pZmVzdC10cmFuc2FjdGlv bi1pbnN0YWxsIHRyYW5zYWN0aW9uKSkKICAgICAgICAgICAgICAoaW5zdGFsbCAgICcoKSkKQEAg LTcyNCw4ICs3MzAsMTYgQEAgcmVwbGFjZSBpdC4iCiAgICAgKG1hdGNoIGlucHV0CiAgICAgICAo KCkKICAgICAgICAobGV0ICgocmVtb3ZlIChtYW5pZmVzdC10cmFuc2FjdGlvbi1yZW1vdmUgdHJh bnNhY3Rpb24pKSkKLSAgICAgICAgICh2YWx1ZXMgKG1hbmlmZXN0LW1hdGNoaW5nLWVudHJpZXMg bWFuaWZlc3QgcmVtb3ZlKQotICAgICAgICAgICAgICAgICAocmV2ZXJzZSBpbnN0YWxsKSAocmV2 ZXJzZSB1cGdyYWRlKSAocmV2ZXJzZSBkb3duZ3JhZGUpKSkpCisgICAgICAgICAodmFsdWVzIChk ZWxldGUtZHVwbGljYXRlcworICAgICAgICAgICAgICAgICAgKG1hbmlmZXN0LW1hdGNoaW5nLWVu dHJpZXMgbWFuaWZlc3QgcmVtb3ZlKQorICAgICAgICAgICAgICAgICAgbWFuaWZlc3QtZW50cnk9 PykKKyAgICAgICAgICAgICAgICAgKGRlbGV0ZS1kdXBsaWNhdGVzIChyZXZlcnNlIGluc3RhbGwp IG1hbmlmZXN0LWVudHJ5PT8pCisgICAgICAgICAgICAgICAgIChkZWxldGUtZHVwbGljYXRlcwor ICAgICAgICAgICAgICAgICAgKHJldmVyc2UgdXBncmFkZSkKKyAgICAgICAgICAgICAgICAgIG1h bmlmZXN0LWVudHJ5LXBhaXI9PykKKyAgICAgICAgICAgICAgICAgKGRlbGV0ZS1kdXBsaWNhdGVz CisgICAgICAgICAgICAgICAgICAocmV2ZXJzZSBkb3duZ3JhZGUpCisgICAgICAgICAgICAgICAg ICBtYW5pZmVzdC1lbnRyeS1wYWlyPT8pKSkpCiAgICAgICAoKGVudHJ5IHJlc3QgLi4uKQogICAg ICAgIDs7IENoZWNrIHdoZXRoZXIgaW5zdGFsbGluZyBFTlRSWSBjb3JyZXNwb25kcyB0byB0aGUg aW5zdGFsbGF0aW9uIG9mIGEKICAgICAgICA7OyBuZXcgcGFja2FnZSBvciB0byBhbiB1cGdyYWRl LgotLSAKMi4yOS4yCgo= --=-eEpMD90aUOgi4BceGRUw--