From mboxrd@z Thu Jan 1 00:00:00 1970 From: Hartmut Goebel Subject: Re: inputs vs. native-inputs vs. propagated-inputs Date: Sun, 12 Jun 2016 17:50:29 +0200 Message-ID: <575D84C5.5090307@crazy-compilers.com> References: <575D2646.6030000@crazy-compilers.com> <877fdur38e.fsf@member.fsf.org> 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]:49148) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bC7en-0006lJ-NS for help-guix@gnu.org; Sun, 12 Jun 2016 11:50:40 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1bC7ek-00070e-J5 for help-guix@gnu.org; Sun, 12 Jun 2016 11:50:37 -0400 Received: from mail-out.m-online.net ([212.18.0.10]:39311) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bC7ej-00070K-Rg for help-guix@gnu.org; Sun, 12 Jun 2016 11:50:34 -0400 In-Reply-To: <877fdur38e.fsf@member.fsf.org> 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: =?UTF-8?B?5a6L5paH5q2m?= Cc: help-guix Hi, Thanks for your answer Am 12.06.2016 um 14:38 schrieb =E5=AE=8B=E6=96=87=E6=AD=A6: > Hartmut Goebel writes: >> For for I understand. But then the manual says: >> >> =E2=80=98native-inputs=E2=80=99 is typically used to list to= ols needed at >> build time, but not at run time, such as Autoconf, Automake,= >> pkg-config, Gettext, or Bison. >> >> The first sentence implies that "inputs" are treated as needed at run >> time. > No, as _native_ inputs usually are tools for building (and testing), > most time they=E2=80=99re not needed at run time. This paragraph is only talking about "native-inputs" and about "needed =E2= =80=A6 not at run time". While the paragraph just above this sentence is talking about both "inputs" and native-inputs", this "needed =E2=80=A6 no= t at run time" implies "inputs" are needed at run time. I suggest rephrasing this into something like: "Both inputs and native-inputs are used for stuff needed at build time, not at run time. 'inputs' are for ..., e.g. library headers, ..., while 'native-inputs' are for tools such as Autoconf, Automake, pkg-config, Gettext, or Bison."= > >> 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? > By looking the output of =E2=80=98guix gc =E2=80=93-references =E2=80=A6= =E2=80=99, the build time ones > are ones not there. =20 I'm the packager, so I'm the one who needs to *define* the dependencies. There is no =E2=80=98guix gc =E2=80=93-references =E2=80=A6=E2=80=99 I ca= n query. So *I* need a way to determine whether an input needs to be propagated or not. > >> Same for pkg-config: How to determine if this is only needed ar build >> time (as I would always expect)? The manual says: >> >> =E2=80=A6 propagated-inputs =E2=80=A6 >> For example this is necessary when a C/C++ library needs >> headers of another library to compile, or when a pkg-config >> file refers to another one via its =E2=80=98Requires=E2=80=99= field. >> >> For me this is confusing. > Many build systems use =E2=80=98pkg-config=E2=80=99 to check for librar= ies and get > flags, a pc file usually list some other packages in its =E2=80=98Requi= res=E2=80=99 > field, if one of these packages is missing (doesn=E2=80=99t have a .pc > file in PKG_CONFIG_PATH), this pc file will be treated as broken, and > the package will be reported as =E2=80=98not found=E2=80=99. So propag= eted these > packages make =E2=80=98pkg-config=E2=80=99 works, reduce the work for p= ackaging its > users (otherwise, those packages need to added as inputs even they=E2=80= =99re > not used directly). Thanks, I misunderstood the example. I though it was talking about "pkg-config", while it is talking about .pc files. --=20 Regards Hartmut Goebel | Hartmut Goebel | h.goebel@crazy-compilers.com | | www.crazy-compilers.com | compilers which you thought are impossible |