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 QLuWNmJmj1/pGwAA0tVLHw (envelope-from ) for ; Tue, 20 Oct 2020 22:36:18 +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 MMx7MmJmj19ZYgAA1q6Kng (envelope-from ) for ; Tue, 20 Oct 2020 22:36:18 +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 5FC4A940876 for ; Tue, 20 Oct 2020 22:36:18 +0000 (UTC) Received: from localhost ([::1]:54886 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kV0Eq-0004io-2z for larch@yhetil.org; Tue, 20 Oct 2020 18:36:16 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:49668) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kV0Eg-0004iR-2t for bug-guix@gnu.org; Tue, 20 Oct 2020 18:36:06 -0400 Received: from debbugs.gnu.org ([209.51.188.43]:35573) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1kV0Ec-0005Qh-JP for bug-guix@gnu.org; Tue, 20 Oct 2020 18:36:04 -0400 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1kV0Ec-0000u3-GS for bug-guix@gnu.org; Tue, 20 Oct 2020 18:36:02 -0400 X-Loop: help-debbugs@gnu.org Subject: bug#43984: `--with-graft=...` doesn't work with packages of different length name/version Resent-From: Mark H Weaver Original-Sender: "Debbugs-submit" Resent-CC: bug-guix@gnu.org Resent-Date: Tue, 20 Oct 2020 22:36:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 43984 X-GNU-PR-Package: guix X-GNU-PR-Keywords: To: Ludovic =?UTF-8?Q?Court=C3=A8s?= , pkill9 Received: via spool by 43984-submit@debbugs.gnu.org id=B43984.16032333563457 (code B ref 43984); Tue, 20 Oct 2020 22:36:02 +0000 Received: (at 43984) by debbugs.gnu.org; 20 Oct 2020 22:35:56 +0000 Received: from localhost ([127.0.0.1]:47119 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kV0EW-0000th-DL for submit@debbugs.gnu.org; Tue, 20 Oct 2020 18:35:56 -0400 Received: from world.peace.net ([64.112.178.59]:57350) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kV0EU-0000tT-0i for 43984@debbugs.gnu.org; Tue, 20 Oct 2020 18:35:54 -0400 Received: from mhw by world.peace.net with esmtpsa (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1kV0EO-0003ja-8H; Tue, 20 Oct 2020 18:35:48 -0400 From: Mark H Weaver In-Reply-To: <87h7qobn6y.fsf@gnu.org> References: <20201014015558.09d6702a@runbox.com> <87wnzsapwh.fsf@gnu.org> <20201015195013.335eaefd@runbox.com> <87sgae8qlh.fsf@gnu.org> <20201017020311.0c68f3d5@runbox.com> <87h7qobn6y.fsf@gnu.org> Date: Tue, 20 Oct 2020 18:34:00 -0400 Message-ID: <87d01c8r2k.fsf@netris.org> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: 0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-Spam-Score: -1.0 (-) X-BeenThere: bug-guix@gnu.org List-Id: Bug reports for GNU Guix List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: 43984@debbugs.gnu.org Errors-To: bug-guix-bounces+larch=yhetil.org@gnu.org Sender: "bug-Guix" X-Scanner: scn0 Authentication-Results: aspmx1.migadu.com; dkim=none; dmarc=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-Spam-Score: -1.01 X-TUID: NDwAO8rFMamH Hi Ludovic, Ludovic Court=C3=A8s writes: > pkill9 skribis: > >>> All I=E2=80=99m saying is that nothing can be done when the new name is= longer >>> than the old one: we just cannot graft. >> >> If a symlink is used though, it wouldn't matter if the new name is >> longer, the symlink would point to the new package, and the name of the >> symlink would match the length of the old package. > > But who would refer to that symlink? The thing on which the graft is > applied can only refer to the store item that has the right length. If I understand correctly, pkill9's idea is that intermediate symlink(s) (presumably one for each output of the replacement package) would have the same length as the original store item, but could point to a replacement store item of greater length. For example, whereas now we must *build* our replacement libx11 with munged version number "1.6.A", under pkill9's approach we could instead build it with normal version number "1.6.10", and only the intermediate symlink(s) would have their names munged to fit within the original length limit. The grafting process would then rewrite the original store references to point to the symlink(s). An advantage to this approach is that the replacement packages would no longer need to have their version numbers munged, which would be more aesthetically pleasing and perhaps less confusing for users. The lack of munging might also make the replacement package more attractive for _direct_ usage as a package input by non-core packages that need the newer version of the replaced package for other reasons. Disadvantages include potentially slower file system lookups in the replaced packages, and added complexity in Guix. I don't have an opinion on this, but I wanted to at least try to clarify the idea that pkill9 is proposing. Regards, Mark