From mboxrd@z Thu Jan 1 00:00:00 1970 From: Hartmut Goebel Subject: Re: inputs vs. native-inputs vs. propagated-inputs Date: Fri, 17 Jun 2016 22:49:59 +0200 Message-ID: <57646277.4020400@crazy-compilers.com> References: <575D2646.6030000@crazy-compilers.com> <877fdur38e.fsf@member.fsf.org> <575D84C5.5090307@crazy-compilers.com> <20160612195328.GB1615@jasmine> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:34469) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bE0iP-0001By-5G for help-guix@gnu.org; Fri, 17 Jun 2016 16:50:10 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1bE0iK-0002Xa-0C for help-guix@gnu.org; Fri, 17 Jun 2016 16:50:08 -0400 Received: from mail-out.m-online.net ([212.18.0.10]:60646) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bE0iJ-0002XW-LA for help-guix@gnu.org; Fri, 17 Jun 2016 16:50:03 -0400 In-Reply-To: <20160612195328.GB1615@jasmine> List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: help-guix-bounces+gcggh-help-guix=m.gmane.org@gnu.org Sender: "Help-Guix" To: Leo Famulari Cc: help-guix Hallo Leo, thanks for you answer. Am 12.06.2016 um 21:53 schrieb Leo Famulari: > 'Inputs' do typically get used at run-time, as do propagated-inputs. > > I found it hard to understand the distinctions by reading. It was only > when I had been making packages for a while that I understood. > > I've tried to improve this text but I haven't come up with anything yet= =2E I'd try a text, but I did not really understand the difference yet. >>> If so, how can I as a packager find out if eg. libBBB is only used at= >>> build time and libCCC need to be a propagated input? > You will need at least a little knowledge about the programs you are > packaging and how they are supposed to build and run. I read a bit abou= t > each program to guess about how libAAA uses it. IC. I was hoping. I could just package some stuff without any knowledge. E.g to make basic libraries and programs available so others can add more programs. Obviously I was wrong here :-( > >> I'm the packager, so I'm the one who needs to *define* the dependencie= s. >> There is no =E2=80=98guix gc =E2=80=93-references =E2=80=A6=E2=80=99 I= can query. So *I* need a way to >> determine whether an input needs to be propagated or not. > Test the program in an isolated environment and see if it works without= > propagating the inputs. Thanks, this is a helpful tip. > Also, once you've built the package, using `guix gc --references` is a > good way to inspect it.=20 This is what I do not get: If I do not specify some dependency, how will it be listed with `gc --references` (except the case there is another dependency). And if `gc --references` would be able to find dependencies I missed, why at all should one list dependencies? > The type of input chosen by the packager does not dictate how libAAA > uses the dependency. The package could erroneously retain a reference t= o > a native-input like Automake, and `guix gc --references` will show you > this. > > So, if libCCC appears in `guix gc --references /gnu/store/...-libAAA`, > it's reasonable to guess that libCCC does not need to be propagated. > > Or, the package could lack a reference to something you *know* is neede= d > at run-time. So you can address that with propagated-inputs or setting > some build-time configuration. > > Is it making more sense? It opens a window in the dust of incomprehension :-) But I need to thing (and test) on this whole topic a lot more. --=20 Regards Hartmut Goebel | Hartmut Goebel | h.goebel@crazy-compilers.com | | www.crazy-compilers.com | compilers which you thought are impossible |