From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp1 ([2001:41d0:8:6d80::]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) by ms0.migadu.com with LMTPS id sGNfI9v9cmCDYwEAgWs5BA (envelope-from ) for ; Sun, 11 Apr 2021 15:47:07 +0200 Received: from aspmx1.migadu.com ([2001:41d0:8:6d80::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp1 with LMTPS id KNcuHdv9cmAkagAAbx9fmQ (envelope-from ) for ; Sun, 11 Apr 2021 13:47:07 +0000 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by aspmx1.migadu.com (Postfix) with ESMTPS id 1994B35C35 for ; Sun, 11 Apr 2021 15:47:06 +0200 (CEST) Received: from localhost ([::1]:34444 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lVaQc-000546-5e for larch@yhetil.org; Sun, 11 Apr 2021 09:47:06 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:38148) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lVaQY-00053x-BX for guix-patches@gnu.org; Sun, 11 Apr 2021 09:47:02 -0400 Received: from debbugs.gnu.org ([209.51.188.43]:42651) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1lVaQY-0007Xn-4X for guix-patches@gnu.org; Sun, 11 Apr 2021 09:47:02 -0400 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1lVaQY-0004rl-31 for guix-patches@gnu.org; Sun, 11 Apr 2021 09:47:02 -0400 X-Loop: help-debbugs@gnu.org Subject: [bug#47709] [PATCH 2/2] doc: Document 'gnu-build-system' keyword parameters. Resent-From: Ludovic =?UTF-8?Q?Court=C3=A8s?= Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Sun, 11 Apr 2021 13:47:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 47709 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 47709@debbugs.gnu.org Cc: Ludovic =?UTF-8?Q?Court=C3=A8s?= Received: via spool by 47709-submit@debbugs.gnu.org id=B47709.161814878618649 (code B ref 47709); Sun, 11 Apr 2021 13:47:02 +0000 Received: (at 47709) by debbugs.gnu.org; 11 Apr 2021 13:46:26 +0000 Received: from localhost ([127.0.0.1]:54196 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lVaPy-0004qj-1T for submit@debbugs.gnu.org; Sun, 11 Apr 2021 09:46:26 -0400 Received: from eggs.gnu.org ([209.51.188.92]:53674) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lVaPu-0004qG-RD for 47709@debbugs.gnu.org; Sun, 11 Apr 2021 09:46:23 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]:33993) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lVaPp-0006zl-BX; Sun, 11 Apr 2021 09:46:17 -0400 Received: from [2a01:e0a:1d:7270:af76:b9b:ca24:c465] (port=43326 helo=gnu.org) by fencepost.gnu.org with esmtpsa (TLS1.2:DHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1lVaPo-0001kb-SM; Sun, 11 Apr 2021 09:46:17 -0400 From: Ludovic =?UTF-8?Q?Court=C3=A8s?= Date: Sun, 11 Apr 2021 15:46:06 +0200 Message-Id: <20210411134606.26449-2-ludo@gnu.org> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210411134606.26449-1-ludo@gnu.org> References: <20210411134606.26449-1-ludo@gnu.org> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: guix-patches@gnu.org List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-patches-bounces+larch=yhetil.org@gnu.org Sender: "Guix-patches" X-Migadu-Flow: FLOW_IN ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=yhetil.org; s=key1; t=1618148827; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding:resent-cc: resent-from:resent-sender:resent-message-id:in-reply-to:in-reply-to: references:references:list-id:list-help:list-unsubscribe: list-subscribe:list-post; bh=wLKavyQkMhx5qufT7BWOZcvB4Y8L/NXkzyk6TlnH/Vs=; b=IJ/RxTRY7hqLW2LZGPintvpUb5T+a+pXKZpqZDW0jaO9Ybb2qMGrHxAc3IeiogXCfl99je ADq9wtYyHDMl83v3CoYh/2pgbOjgBs9L+T3a51G8hQ/6vuqNBnGpoCeaxfBTiBhKRp9mIm Y1aK662iXAI3oWPCBPIDDNX7CFOTC/0EsTPeb3mlvl4NSQzL3drppwR2luAKMZq2bJ1ZkP LSJBVEwQ+Pq93vJqV0GmZfZ03RqsKHpmUP+xohUc5vtVULSpW/3D8UsU4AYjicTMYii+c7 IuE2gbbJ6V0XMwXAV6DGQ7D90c+TUre8piv+jkNjGOmP6u2zBB341ojO91EPuQ== ARC-Seal: i=1; s=key1; d=yhetil.org; t=1618148827; a=rsa-sha256; cv=none; b=VwUXz187/O5p9LP35BXaAb9H0Jic8Y0m0BNds1IUCO7S5d9RrPtcySxUWEkHOURiJ4CV2T oetZHjPPqLjk13vsk8PRp87NTWI7yG1fn8p8oCxm5hPY6GcZhyECRNHjuEAl8ym5Zf/CEG nBScs4aiIWd2RpBbEHM5jc4NL+f9xkNYvptFX4jQ3unLNlL80rwOO/bFiLBXo+VsYy6HQd U0R26h/61sAkL/OYAdrGoEjk4FnKuxRCUq5TGk5vQUX8ytgIXMC0CboiJPfdj8LyZDzo7F l5VVcPm2Y7cz3dqpU+J/A8UzZ/dK2p/uk6PulQlF4UW03POR27RCE2IYfReYBg== ARC-Authentication-Results: i=1; aspmx1.migadu.com; dkim=none; dmarc=pass (policy=none) header.from=gnu.org; spf=pass (aspmx1.migadu.com: domain of guix-patches-bounces@gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=guix-patches-bounces@gnu.org X-Migadu-Spam-Score: 3.56 Authentication-Results: aspmx1.migadu.com; dkim=none; dmarc=pass (policy=none) header.from=gnu.org; spf=pass (aspmx1.migadu.com: domain of guix-patches-bounces@gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=guix-patches-bounces@gnu.org X-Migadu-Queue-Id: 1994B35C35 X-Spam-Score: 3.56 X-Migadu-Scanner: scn0.migadu.com X-TUID: gan3ZV0T4fGv * doc/guix.texi (Build Systems): Document keyword parameters of 'gnu-build-system'. --- doc/guix.texi | 78 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 78 insertions(+) diff --git a/doc/guix.texi b/doc/guix.texi index c8d3422189..12245003d4 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -7307,6 +7307,84 @@ Coreutils, Bash, Make, Diffutils, grep, and sed (see the @code{(guix build-system gnu)} module for a complete list). We call these the @dfn{implicit inputs} of a package, because package definitions do not have to mention them. + +This build system supports a number of keyword arguments, which can be +passed @i{via} the @code{arguments} field of a package. Here are some +of the main parameters: + +@table @code +@item #:phases +This argument specifies build-side code that evaluates to an alist of +build phases. @xref{Build Phases}, for more information. + +@item #:configure-flags +This is a list of flags (strings) passed to the @command{configure} +script. @xref{Defining Packages}, for an example. + +@item #:make-flags +This list of strings contains flags passed as arguments to +@command{make} invocations in the @code{build}, @code{check}, and +@code{install} phases. + +@item #:out-of-source? +This Boolean, @code{#f} by default, indicates whether to run builds in a +build directory separate from the source tree. + +When it is true, the @code{configure} phase creates a separate build +directory, changes to that directory, and runs the @code{configure} +script from there. This is useful for packages that require it, such as +@code{glibc}. + +@item #:tests? +This Boolean, @code{#t} by default, indicates whether the @code{check} +phase should run the package's test suite. + +@item #:test-target +This string, @code{"check"} by default, gives the name of the makefile +target used by the @code{check} phase. + +@item #:parallel-build? +@itemx #:parallel-tests? +These Boolean values specify whether to build, respectively run the test +suite, in parallel, with the @code{-j} flag of @command{make}. When +they are true, @code{make} is passed @code{-j@var{n}}, where @var{n} is +the number specified as the @option{--cores} option of +@command{guix-daemon} or that of the @command{guix} client command +(@pxref{Common Build Options, @option{--cores}}). + +@cindex RUNPATH, validation +@item #:validate-runpath? +This Boolean, @code{#t} by default, determines whether to ``validate'' +the @code{RUNPATH} of ELF binaries (@code{.so} shared libraries as well +as executables) previously installed by the @code{install} phase. + +This validation step consists in making sure that all the shared +libraries needed by an ELF binaries, which are listed as +@code{DT_NEEDED} entries in its @code{PT_DYNAMIC} segment, appear in the +@code{DT_RUNPATH} entry of that binary. In other words, it ensures that +running or using those binaries will not result in a ``file not found'' +error at run time. @xref{Options, @option{-rpath},, ld, The GNU +Linker}, for more information on @code{RUNPATH}. + +@item #:substitutable? +This Boolean, @code{#t} by default, tells whether the package outputs +should be substitutable---i.e., whether users should be able to obtain +substitutes for them instead of building locally (@pxref{Substitutes}). + +@item #:allowed-references +@itemx #:disallowed-references +When true, these arguments must be a list of dependencies that must not +appear among the references of the build results. If, upon build +completion, some of these references are retained, the build process +fails. + +This is useful to ensure that a package does not erroneously keep a +reference to some of it build-time inputs, in cases where doing so +would, for example, unnecessarily increase its size (@pxref{Invoking +guix size}). +@end table + +Most other build systems support these keyword arguments. @end defvr Other @code{} objects are defined to support other -- 2.31.1