From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp11.migadu.com ([2001:41d0:8:6d80::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms0.migadu.com with LMTPS id MHIOHW3BMWLSpwAAgWs5BA (envelope-from ) for ; Wed, 16 Mar 2022 11:52:29 +0100 Received: from aspmx1.migadu.com ([2001:41d0:8:6d80::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp11.migadu.com with LMTPS id UPGAGm3BMWLhLAAA9RJhRA (envelope-from ) for ; Wed, 16 Mar 2022 11:52:29 +0100 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 B0F7728D34 for ; Wed, 16 Mar 2022 11:52:28 +0100 (CET) Received: from localhost ([::1]:44542 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1nURGV-0002fQ-M3 for larch@yhetil.org; Wed, 16 Mar 2022 06:52:27 -0400 Received: from eggs.gnu.org ([209.51.188.92]:49072) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nUQkA-0005hb-MI for bug-guix@gnu.org; Wed, 16 Mar 2022 06:19:02 -0400 Received: from debbugs.gnu.org ([209.51.188.43]:56384) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1nUQkA-000341-D2 for bug-guix@gnu.org; Wed, 16 Mar 2022 06:19:02 -0400 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1nUQkA-0001on-3E for bug-guix@gnu.org; Wed, 16 Mar 2022 06:19:02 -0400 X-Loop: help-debbugs@gnu.org Subject: bug#54350: Profile collisions are ignored, installing multiple versions of the same package is silently broken Resent-From: Ludovic =?UTF-8?Q?Court=C3=A8s?= Original-Sender: "Debbugs-submit" Resent-CC: bug-guix@gnu.org Resent-Date: Wed, 16 Mar 2022 10:19:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 54350 X-GNU-PR-Package: guix X-GNU-PR-Keywords: To: Maxime Devos Received: via spool by 54350-submit@debbugs.gnu.org id=B54350.16474259276966 (code B ref 54350); Wed, 16 Mar 2022 10:19:02 +0000 Received: (at 54350) by debbugs.gnu.org; 16 Mar 2022 10:18:47 +0000 Received: from localhost ([127.0.0.1]:50281 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nUQju-0001oI-Oc for submit@debbugs.gnu.org; Wed, 16 Mar 2022 06:18:47 -0400 Received: from eggs.gnu.org ([209.51.188.92]:43274) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nUQjs-0001o1-5C for 54350@debbugs.gnu.org; Wed, 16 Mar 2022 06:18:45 -0400 Received: from [2001:470:142:3::e] (port=56804 helo=fencepost.gnu.org) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nUQjl-0002yh-7m; Wed, 16 Mar 2022 06:18:37 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=MIME-Version:In-Reply-To:Date:References:Subject:To: From; bh=nI2JMkgjPoFvVjr0Lc171eu2Ztpa8MsGDpQEKH7L4nI=; b=CCHZNnDvj6OgfR2619uS Q3Mo47VphFaveRQpXEVnuLFk14E3+BRNP+bhE5PAx9wA7ZfkpJzztpIS2oaMJmmh8ZEJxZ+D1TuOi YGLrjO/1TEN4YxhFf+kcnaZtkiC19mGqgHAbZrJI7J8djT1JKjvjrsJBYDN/1vySXsMda8WPh0XH7 gmB/mNF6vA4W6oe40zjJ45yfZP3xDhhCueuRxecWYnrS6W4zOTHkSdMiT8IX1/p6ZIgqoRXKLAymy vEEceD++lLffNsj+aAsJHaRPIzO5cDHTbK7icd1Mp7jEKf7CHXOOs49C4zna6CLEzccCloBxDBHDd lUuI9dUaGkryag==; Received: from 91-160-117-201.subs.proxad.net ([91.160.117.201]:62970 helo=ribbon) by fencepost.gnu.org with esmtpsa (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nUQjk-0007ZS-Nb; Wed, 16 Mar 2022 06:18:36 -0400 From: Ludovic =?UTF-8?Q?Court=C3=A8s?= References: <87zglrjpef.fsf@gnu.org> X-URL: http://www.fdn.fr/~lcourtes/ X-Revolutionary-Date: 26 =?UTF-8?Q?Vent=C3=B4se?= an 230 de la =?UTF-8?Q?R=C3=A9volution?= X-PGP-Key-ID: 0x090B11993D9AEBB5 X-PGP-Key: http://www.fdn.fr/~lcourtes/ludovic.asc X-PGP-Fingerprint: 3CE4 6455 8A84 FDC6 9DB4 0CFB 090B 1199 3D9A EBB5 X-OS: x86_64-pc-linux-gnu Date: Wed, 16 Mar 2022 11:18:34 +0100 In-Reply-To: (Maxime Devos's message of "Tue, 15 Mar 2022 16:58:40 +0100") Message-ID: <87czimgpz9.fsf@gnu.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.2 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable 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: , Cc: 54350@debbugs.gnu.org Errors-To: bug-guix-bounces+larch=yhetil.org@gnu.org Sender: "bug-Guix" X-Migadu-Flow: FLOW_IN X-Migadu-To: larch@yhetil.org X-Migadu-Country: US ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=yhetil.org; s=key1; t=1647427948; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding:resent-cc: resent-from:resent-sender:resent-message-id:in-reply-to:in-reply-to: references:references:list-id:list-help:list-unsubscribe: list-subscribe:list-post:dkim-signature; bh=nI2JMkgjPoFvVjr0Lc171eu2Ztpa8MsGDpQEKH7L4nI=; b=ctl0/HmZu2KIV9JsnDmjKHH7wDHTgd2FNyA3ZIEajNrFz5UuQRhfpGNepjWOALY9QBB1Al 5q2AzXhOlxBj70ompKAnyYDcjggE+G2rOuDkTtkjPlFlaa0Kn2L+xgQoi+nDAeDj58b0q9 sI550IFe/vm4XdjzvEA0XNzEbG6cO4CEUywfqzEExWmw+hsFj63Xl2x5elF0HcU2/wrY+5 7zyFeP3I/ix8sxstgLZr2UCHtvtn6mZJo4lFqlYaUWHalwzhbqtBM5xVT+zhBOzb9OTOVx 1B4CiYexgMIqfOJjnX+UIMRvypECYjQsfGjQkrQFSm9uXpFtGbfxvMK8rullIA== ARC-Seal: i=1; s=key1; d=yhetil.org; t=1647427948; a=rsa-sha256; cv=none; b=XrZkJqcU43PFfNhdBYq92kb62WZggdQd2ITHGOpIXkk2/LMEBibWozP5QJ9rPANLXc9ZLl vomkVtPLMcA1f0gWkaTIDv4ybi2CsbNH5rXBjZsUjvgLu9YT9+uYEObhYEduEDfX0TvI51 gqAtr+CkMEFucWWABP8SuUnPIdAqYP6/26MSi0zzogUpXeC3lfveXsh4ViIKoIOePK6gHu ebSTN4PfYaO1jitaEYb/OlcVsjSVAvCMsdK5fYfb+FApR9WtbSFKIBCWLgU8G3vxRP5eoN kFzpxqz845yEjTyeKbXusSKjxEUlphp61KihTKjCwQItjyAOmNkF94gsOwt8oA== ARC-Authentication-Results: i=1; aspmx1.migadu.com; dkim=fail ("headers rsa verify failed") header.d=gnu.org header.s=fencepost-gnu-org header.b=CCHZNnDv; dmarc=pass (policy=none) header.from=gnu.org; spf=pass (aspmx1.migadu.com: domain of "bug-guix-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="bug-guix-bounces+larch=yhetil.org@gnu.org" X-Migadu-Spam-Score: -5.26 Authentication-Results: aspmx1.migadu.com; dkim=fail ("headers rsa verify failed") header.d=gnu.org header.s=fencepost-gnu-org header.b=CCHZNnDv; dmarc=pass (policy=none) header.from=gnu.org; spf=pass (aspmx1.migadu.com: domain of "bug-guix-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="bug-guix-bounces+larch=yhetil.org@gnu.org" X-Migadu-Queue-Id: B0F7728D34 X-Spam-Score: -5.26 X-Migadu-Scanner: scn0.migadu.com X-TUID: 4w/AbftH1Ire Hi, Maxime Devos skribis: > Ludovic Court=C3=A8s schreef op di 15-03-2022 om 14:50 [+0100]: >> $ ./pre-inst-env guix shell -D guile -n >> guix shell: error: profile contains conflicting entries for bash-minimal >> guix shell: error:=C2=A0=C2=A0 first entry: bash-minimal@5.1.8=C2=A0/gnu= /store/chfwin3a4qp1znnpsjbmydr2jbzk0d6y-bash-minimal-5.1.8 >> guix shell: error:=C2=A0=C2=A0 second entry: bash-minimal@5.1.8=C2=A0/gn= u/store/4y5m9lb8k3qkb1y9m02sw9w9a6hacd16-bash-minimal-5.1.8 >> hint: You cannot have two different versions or variants of `bash-minima= l' in the same profile. >> --8<---------------cut here---------------end--------------->8--- I wonder whether this is the exception rather than the rule. Here=E2=80=99= s an unscientific not-quite-random sample: --8<---------------cut here---------------start------------->8--- $ ./pre-inst-env guix shell -D guix guix shell: error: profile contains conflicting entries for bzip2 guix shell: error: first entry: bzip2@1.0.8 /gnu/store/gzmwrl6cb8nxmc68hp= gqzblng2kamkgc-bzip2-1.0.8 guix shell: error: second entry: bzip2@1.0.8 /gnu/store/s3hl12jxz9ybs7nsy= 7kq7ybzz7qnzmsg-bzip2-1.0.8 hint: You cannot have two different versions or variants of `bzip2' in the = same profile. $ ./pre-inst-env guix shell -D inkscape --no-grafts -n guix shell: error: profile contains conflicting entries for libsigc++ guix shell: error: first entry: libsigc++@3.0.6 /gnu/store/ng4k2yl94d758p= 5vnashd4nvyb1aw8s1-libsigc++-3.0.6 guix shell: error: ... propagated from cairomm@1.14.2 guix shell: error: ... propagated from gtkmm@3.24.5 guix shell: error: second entry: libsigc++@2.9.3 /gnu/store/iad8jg1fm7jsq= 0pqj547f3n5s2jn9rp0-libsigc++-2.9.3 hint: Try upgrading both `gtkmm' and `libsigc++', or remove one of them fro= m the profile. $ ./pre-inst-env guix shell -D gimp --no-grafts -n guix shell: error: profile contains conflicting entries for librsvg guix shell: error: first entry: librsvg@2.50.7 /gnu/store/wj3sigq6pwjc2z6= 8qgbpv8pxcv8haklf-librsvg-2.50.7 guix shell: error: second entry: librsvg@2.50.7 /gnu/store/q3vymxinnp6cxq= q1cpz1rdqmnwq5x1ni-librsvg-2.50.7 hint: You cannot have two different versions or variants of `librsvg' in th= e same profile. $ ./pre-inst-env guix shell -D openmpi --no-grafts -n The following derivation would be built: /gnu/store/fpj74z159bf6v7cxsxs5rxm3xm4w2amz-profile.drv $ ./pre-inst-env guix shell -D hwloc --no-grafts -n The following derivation would be built: /gnu/store/ikf40sfmk3y7r3frxm9fbkzmma4ym8ay-profile.drv $ ./pre-inst-env guix shell -D guile-gcrypt --no-grafts -n The following derivation would be built: /gnu/store/3ip5kq50b97bsm6zhygz0fjx54w0fqa0-profile.drv $ ./pre-inst-env guix shell -D libgit2 --no-grafts -n The following derivation would be built: /gnu/store/8f83l9p88g40mrnl5l4wrzqg5zwgn6cm-profile.drv $ ./pre-inst-env guix shell -D python-pytorch --no-grafts -n substitute: updating substitutes from 'https://ci.guix.gnu.org'... 100.0% substitute: updating substitutes from 'https://bordeaux.guix.gnu.org'... 10= 0.0% The following derivation would be built: /gnu/store/aly6xd3vi5j0qimjzj2hj0wry5zma376-profile.drv 37.2 MB would be downloaded $ ./pre-inst-env guix shell -D python-itsdangerous --no-grafts -n The following derivation would be built: /gnu/store/cgxgvj73wgx263lzd3f82vvjl39vn4pn-profile.drv --8<---------------cut here---------------end--------------->8--- We should check automatically the fraction of packages for which =E2=80=98package->development-manifest=E2=80=99 contains colliding entries. If it=E2=80=99s rather rare, we might as well have =E2=80=98guix shell=E2= =80=99 default to #:allow-collisions? #f. (The issue for GIMP comes from librsvg vs. librsvg-bootstrap. The one for inkscape is a genuine problem.) If we take that route, we could also add a linter that checks for collisions in package dependencies. >> These collisions are harmless but frequent in package development >> environments, which is why =E2=80=98guix environment=E2=80=99 had to tur= n off those >> checks (commit afd06f605bf88a796acefc7ed598b43879346a6b). >>=20 >> That=E2=80=99s a bit of a hack though. > > These collisions happen because=C2=A0the bag of a package contains of mul= tiple > variants of bash: the default canonical bash-minimal, from (gnu packages > commencement), not directly visible (i.e., with "guix show" and > 'specification->package'), which is overidden by the bash-minimal from > native-inputs, which is visible from specification->package and as a publ= ic > variable, and as I understand it, the bash-minimal supposed to end up > in the references of non-bootstrap packages. > > For these kind of collisions, I think the non-canonical package (that's > actually visible with "guix show FOO") is preferred here, so perhaps > the canonical variants can be filtered out whenever that would resolve > a collision? I=E2=80=99m not fond of filtering out, because that can make it hard to understand what the inputs of a package really are. However, we could tweak the collision detection code to ignore collisions with hidden packages or something along these lines. Thoughts? Ludo=E2=80=99.