Subject: Re: bug#31210: Perl graft breakage

From: Mark H Weaver <[email-masked]>
Date: Thu, 19 Apr 2018 03:05:15 -0400

Leo Famulari <[email-masked]> writes:

> On Wed, Apr 18, 2018 at 03:14:45PM -0400, Mark H Weaver wrote:
>> I suggest that we add a phase to the replacement 'perl' to install a
>> symlink from $out/lib/perl5/5.26.1 pointing to "5.26.2".
>> 
>> Would you like to try this, Leo, and push it if it solves the problem
>> for you?
>
> Thanks for your advice. The attached patch fixes the issue for me.
>
> I would have pushed it but there is one thing I don't understand. Before
> I set (replacement #f), the build would fail because the new phase was
> run twice, and symlinking fails because it is not "forced" (as in `ln
> -sf`). Is this expected behaviour?

The problem is that you should never use 'package/inherit' to create a
graft.  That leads to an infinite tower of grafts.  I'm surprised it
works at all, but it's definitely not right.  Use (package (inherit ...)
...) instead, and leave out the (replacement #f).

     Thanks!
       Mark