From mboxrd@z Thu Jan 1 00:00:00 1970 From: Federico Beffa Subject: Re: Question about Haskell packages Date: Thu, 15 Oct 2015 13:22:38 +0200 Message-ID: Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:33865) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZmgcP-0004EQ-Sl for guix-devel@gnu.org; Thu, 15 Oct 2015 07:22:46 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ZmgcJ-0002xD-Jl for guix-devel@gnu.org; Thu, 15 Oct 2015 07:22:40 -0400 Received: from mail-vk0-x235.google.com ([2607:f8b0:400c:c05::235]:35495) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZmgcJ-0002x9-Et for guix-devel@gnu.org; Thu, 15 Oct 2015 07:22:39 -0400 Received: by vkha6 with SMTP id a6so46880896vkh.2 for ; Thu, 15 Oct 2015 04:22:39 -0700 (PDT) List-Id: "Development of GNU Guix and the GNU System distribution." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-devel-bounces+gcggd-guix-devel=m.gmane.org@gnu.org Sender: guix-devel-bounces+gcggd-guix-devel=m.gmane.org@gnu.org To: Paul van der Walt Cc: Guix-devel Paul van der Walt writes: > Hello Guix, > > Yesterday i thought to myself that it would be cool to mess around with > Idris , on of the dependently-typed > languages. Turns out it depends on quite a lot of Hackage packages! I > steamed ahead, and now i have packaged all the dependencies. > > One weird thing i ran into though, is that frequently, a library L1 will > build fine, but when you use it as an input to some other library L2, > the configure phase will fail, saying that L1 is broken, since > it is missing its dependencies D1..Dn. Iyzsong suggested on IRC that i > do like nixpkgs does [0] and simply add all dependencies as > propagated-inputs. That should solve that issue, but since i don't 100% > understand what's going on, i thought it wise to ask you, wise and > attractive users of Guix, for advice. The reason is likely that L1 needs one of its input at run time. If another package declares L1 as its input, but not the library needed by L1 at run-time, the latter will not be visible in the build environment (only the declared packages plus some implicit inputs are visible) and L1 will not be functional. In such a case the library needed at run-time has to be declared as a propagated-input. Regards, Fede