From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ludovic =?UTF-8?Q?Court=C3=A8s?= Subject: bug#38100: =?UTF-8?Q?=E2=80=98--with-input=E2=80=99?= causes unintended rebuilds Date: Thu, 07 Nov 2019 13:35:15 +0100 Message-ID: <87eeyjsw3g.fsf@inria.fr> 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]:58499) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iSh1A-0002tS-0d for bug-guix@gnu.org; Thu, 07 Nov 2019 07:36:05 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1iSh18-0008GB-TD for bug-guix@gnu.org; Thu, 07 Nov 2019 07:36:03 -0500 Received: from debbugs.gnu.org ([209.51.188.43]:32934) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1iSh18-0008Fy-Pm for bug-guix@gnu.org; Thu, 07 Nov 2019 07:36:02 -0500 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1iSh18-0008EF-JX for bug-guix@gnu.org; Thu, 07 Nov 2019 07:36:02 -0500 Sender: "Debbugs-submit" Resent-Message-ID: Received: from eggs.gnu.org ([2001:470:142:3::10]:58439) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iSh0S-0002de-Mn for bug-Guix@gnu.org; Thu, 07 Nov 2019 07:35:21 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1iSh0R-0007cO-65 for bug-Guix@gnu.org; Thu, 07 Nov 2019 07:35:20 -0500 Received: from mail2-relais-roc.national.inria.fr ([192.134.164.83]:40976) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1iSh0Q-0007aR-Ti for bug-Guix@gnu.org; Thu, 07 Nov 2019 07:35:19 -0500 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.org@gnu.org Sender: "bug-Guix" To: bug-Guix@gnu.org Hello, Consider this example: --8<---------------cut here---------------start------------->8--- $ guix build glib -nd /gnu/store/9zz9hvzaz06f40a4cbvhskb183x676w4-glib-2.60.6.drv $ guix build glib --with-input=3Dinkscape=3Dlibreoffice -nd /gnu/store/15f9jkpakmsaz8i2a0gy4kir1zyk29vi-glib-2.60.6.drv $ guix describe Generacio 114 Nov 02 2019 11:32:51 (nuna) guix ab1c063 repository URL: https://git.savannah.gnu.org/git/guix.git branch: master commit: ab1c063ab08e069fbe62919828fa634a2e222bbf --8<---------------cut here---------------end--------------->8--- Since GLib does not depend on Inkscape, the =E2=80=98--with-input=E2=80=99 = flag should have no effect: we should get the same glib derivation. However, we=E2=80= =99re not. If we diff the =E2=80=98glibc-2.60.6-guile-builder=E2=80=99 files of each d= erivation, we see that the second one has a duplicate entry: (define %build-inputs `(=E2=80=A6 ("python" . "/gnu/store/78w7y0lxar70j512iqw8x3nimzj10yga-python-3.7.4= ") ("python" . "/gnu/store/78w7y0lxar70j512iqw8x3nimzj10yga-python-3.7.4= ") =E2=80=A6)) whereas the first one doesn=E2=80=99t have this duplicate entry. IOW, the = two derivations are functionally equivalent but are not bit-identical. Indeed, evaluating: (bag-transitive-inputs (package->bag ((package-input-rewriting '()) glib))) shows that we have two =E2=80=9Cpython=E2=80=9D packages there that are not= =E2=80=98eq?=E2=80=99. To be continued=E2=80=A6 Ludo=E2=80=99.