From mboxrd@z Thu Jan 1 00:00:00 1970 From: ludo@gnu.org (Ludovic =?utf-8?Q?Court=C3=A8s?=) Subject: Re: package dependencies Date: Sun, 13 Dec 2015 14:45:46 +0100 Message-ID: <87bn9uxy0l.fsf@gnu.org> References: <87zixjttsa.fsf@gmail.com> <20151209201329.20594c2e@weiserose.weiserose.de> <20151210045530.GA28215@thebird.nl> 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]:33659) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1a86yJ-0000RB-3f for guix-devel@gnu.org; Sun, 13 Dec 2015 08:45:55 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1a86yE-00082G-4G for guix-devel@gnu.org; Sun, 13 Dec 2015 08:45:55 -0500 In-Reply-To: <20151210045530.GA28215@thebird.nl> (Pjotr Prins's message of "Thu, 10 Dec 2015 05:55:30 +0100") 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: Pjotr Prins Cc: guix-devel@gnu.org Hello! I=E2=80=99ve rephrased the doc in =E2=80=9Cpackage Reference=E2=80=9D in a = way that is hopefully clearer: =E2=80=98inputs=E2=80=99 (default: =E2=80=98'()=E2=80=99) =E2=80=98native-inputs=E2=80=99 (default: =E2=80=98'()=E2=80=99) =E2=80=98propagated-inputs=E2=80=99 (default: =E2=80=98'()=E2=80=99) These fields list dependencies of the package. Each one is a list of tuples, where each tuple has a label for the input (a string) as its first element, a package, origin, or derivation as its second element, and optionally the name of the output thereof that should be used, which defaults to =E2=80=98"out"=E2= =80=99 (*note Packages with Multiple Outputs::, for more on package outputs). For example, the list below specifies 3 inputs: `(("libffi" ,libffi) ("libunistring" ,libunistring) ("glib:bin" ,glib "bin")) ;the "bin" output of Glib The distinction between =E2=80=98native-inputs=E2=80=99 and =E2= =80=98inputs=E2=80=99 is necessary when considering cross-compilation. When cross-compiling, dependencies listed in =E2=80=98inputs=E2=80=99 = are built for the _target_ architecture; conversely, dependencies listed in =E2=80=98native-inputs=E2=80=99 are built for the architecture of= the _build_ machine. =E2=80=98native-inputs=E2=80=99 is typically where you would list= tools needed at build time but not at run time, such as Autoconf, Automake, pkg-config, Gettext, or Bison. =E2=80=98guix lint=E2=80=99 can r= eport likely mistakes in this area (*note Invoking guix lint::). Lastly, =E2=80=98propagated-inputs=E2=80=99 is similar to =E2=80= =98inputs=E2=80=99, but the specified packages will be force-installed alongside the package they belong to (*note =E2=80=98guix package=E2=80=99: package-cmd-propagated-inputs, for information on how =E2=80=98gu= ix package=E2=80=99 deals with propagated inputs.) For example this is necessary when a library needs headers of another library to compile, or needs another shared library to be linked alongside itself when a program wants to link to it. HTH! Ludo=E2=80=99.