From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ludovic =?UTF-8?Q?Court=C3=A8s?= Subject: bug#35872: messages that are redundant can be eliminated? Date: Tue, 31 Mar 2020 00:12:00 +0200 Message-ID: <87imilwkzz.fsf@gnu.org> References: <87zhnbrdvc.fsf@gnu.org> <87y2rpjtrr.fsf@gnu.org> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Return-path: Received: from eggs.gnu.org ([2001:470:142:3::10]:49204) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jJ2eW-000647-8F for bug-guix@gnu.org; Mon, 30 Mar 2020 18:13:05 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1jJ2eU-0002am-9V for bug-guix@gnu.org; Mon, 30 Mar 2020 18:13:03 -0400 Received: from debbugs.gnu.org ([209.51.188.43]:51902) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1jJ2eU-0002ag-6d for bug-guix@gnu.org; Mon, 30 Mar 2020 18:13:02 -0400 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1jJ2eU-0001k7-1b for bug-guix@gnu.org; Mon, 30 Mar 2020 18:13:02 -0400 Sender: "Debbugs-submit" Resent-To: bug-guix@gnu.org Resent-Message-ID: In-Reply-To: <87y2rpjtrr.fsf@gnu.org> ("Ludovic \=\?utf-8\?Q\?Court\=C3\=A8s\=22'\?\= \=\?utf-8\?Q\?s\?\= message of "Tue, 24 Mar 2020 23:02:48 +0100") List-Id: Bug reports for GNU Guix List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-guix-bounces+gcggb-bug-guix=m.gmane-mx.org@gnu.org Sender: "bug-Guix" To: Andy Tai Cc: 35872-done@debbugs.gnu.org Hi! Ludovic Court=C3=A8s skribis: > (+Cc: Efraim following our discussion on IRC.) > > Ludovic Court=C3=A8s skribis: > >> This is a bug where the presence of propagated inputs leads =E2=80=98guix >> upgrade=E2=80=99 to assume something would be upgraded, even when that= =E2=80=99s not the >> case. This can be reproduced with: >> >> guix install -p foo guile >> guix upgrade -p foo > > I came up with an actual fix for that (attached), nice and clean, which > would allow =E2=80=98guix upgrade=E2=80=99 to correctly determine whether= something is > going to be upgraded. > > But then I realized that this cannot work in the presence of grafts: > first because =E2=80=98-n=E2=80=99 currently implies =E2=80=98--no-grafts= =E2=80=99, so this is an apple > to orange comparison, and then because computing the output file name of > a grafted package can require building the package (grafts are =E2=80=9Cd= ynamic > dependencies=E2=80=9D.) I saw the light :-) and came up with a simple solution to this in commit a357849f5b1314c2a35efeee237645b9b08c39f5. Basically, we do the complete manifest entry comparison as in the patch I posted earlier, but we punt if doing so would require building things (for grafts). Anecdotal data: on my 288-item profile, =E2=80=9Cguix upgrade -n=E2=80=9D w= ould previously report that 124 things need to be upgraded, and now it reports 97 instead. Ludo=E2=80=99.