From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp1 ([2001:41d0:2:4a6f::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms11 with LMTPS id iCtIHYaVx19ZPgAA0tVLHw (envelope-from ) for ; Wed, 02 Dec 2020 13:24:22 +0000 Received: from aspmx1.migadu.com ([2001:41d0:2:4a6f::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp1 with LMTPS id 0KAMGYaVx1+FUQAAbx9fmQ (envelope-from ) for ; Wed, 02 Dec 2020 13:24:22 +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 0C19E940148 for ; Wed, 2 Dec 2020 13:24:21 +0000 (UTC) Received: from localhost ([::1]:41860 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kkS7H-0005qh-1F for larch@yhetil.org; Wed, 02 Dec 2020 08:24:19 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:48290) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kkS70-0005og-Dr for bug-guix@gnu.org; Wed, 02 Dec 2020 08:24:04 -0500 Received: from debbugs.gnu.org ([209.51.188.43]:51418) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1kkS70-0004MI-4z for bug-guix@gnu.org; Wed, 02 Dec 2020 08:24:02 -0500 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1kkS70-00068d-1N for bug-guix@gnu.org; Wed, 02 Dec 2020 08:24:02 -0500 X-Loop: help-debbugs@gnu.org Subject: bug#23874: [PATCH 1/2] profiles: Remove duplicates in manifest transactions. References: In-Reply-To: Resent-From: Leo Prikler Original-Sender: "Debbugs-submit" Resent-CC: bug-guix@gnu.org Resent-Date: Wed, 02 Dec 2020 13:24: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: 23874@debbugs.gnu.org Received: via spool by 23874-submit@debbugs.gnu.org id=B23874.160691540323538 (code B ref 23874); Wed, 02 Dec 2020 13:24:01 +0000 Received: (at 23874) by debbugs.gnu.org; 2 Dec 2020 13:23:23 +0000 Received: from localhost ([127.0.0.1]:34729 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kkS6N-00067Z-JY for submit@debbugs.gnu.org; Wed, 02 Dec 2020 08:23:23 -0500 Received: from mailrelay.tugraz.at ([129.27.2.202]:25160) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kkS6L-00067J-Bc for 23874@debbugs.gnu.org; Wed, 02 Dec 2020 08:23:22 -0500 Received: from localhost.localdomain (217-149-166-73.nat.highway.telekom.at [217.149.166.73]) by mailrelay.tugraz.at (Postfix) with ESMTPSA id 4CmKR92P8Zz3x7l for <23874@debbugs.gnu.org>; Wed, 2 Dec 2020 14:23:17 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=tugraz.at; s=mailrelay; t=1606915397; bh=ZAzttAtPYnQLWtAACy3e4GW7es7uqQCctNvAuQjSKSc=; h=From:To:Subject:Date; b=IrEk7RW4OPU4psTEaOfaGRoEIZRvGgk7DpUvNiitNTUXcNNZ1hPW7Svvs4KZGwdyA H+/6eGhR6eSPHkQsCIqbPrqSe2xp4kOcMeSlBMPV4wU0de4A5s1GJ+Gc5Q5qcw0bUt qVvmvZdSPZ8tYk8guToyhz5g6HVfp6zu0U6T+pFc= From: Leo Prikler Date: Wed, 2 Dec 2020 14:22:43 +0100 Message-Id: <20201202132244.30694-1-leo.prikler@student.tugraz.at> X-Mailer: git-send-email 2.29.2 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit 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: 3.38 Authentication-Results: aspmx1.migadu.com; dkim=fail (headers rsa verify failed) header.d=tugraz.at header.s=mailrelay header.b=IrEk7RW4; 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: 0C19E940148 X-Spam-Score: 3.38 X-Migadu-Scanner: ns3122888.ip-94-23-21.eu X-TUID: PhIRvflUvpjh * 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 @@ -724,8 +724,11 @@ replace it." (match input (() (let ((remove (manifest-transaction-remove transaction))) - (values (manifest-matching-entries manifest remove) - (reverse install) (reverse upgrade) (reverse downgrade)))) + (values (delete-duplicates + (manifest-matching-entries manifest remove) + manifest-entry=?) + (delete-duplicates (reverse install) manifest-entry=?) + (reverse upgrade) (reverse downgrade)))) ((entry rest ...) ;; Check whether installing ENTRY corresponds to the installation of a ;; new package or to an upgrade. @@ -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))))))) (define (manifest-perform-transaction manifest transaction) -- 2.29.2