From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp2 ([2001:41d0:2:4a6f::]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) by ms0.migadu.com with LMTPS id cDYyHdz9cmASYwEAgWs5BA (envelope-from ) for ; Sun, 11 Apr 2021 15:47:08 +0200 Received: from aspmx1.migadu.com ([2001:41d0:2:4a6f::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp2 with LMTPS id kCw7F9z9cmBMPgAAB5/wlQ (envelope-from ) for ; Sun, 11 Apr 2021 13:47:08 +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 CC5552799F for ; Sun, 11 Apr 2021 15:47:07 +0200 (CEST) Received: from localhost ([::1]:34468 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lVaQd-00054x-0i for larch@yhetil.org; Sun, 11 Apr 2021 09:47:07 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:38146) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lVaQX-00053r-Un for guix-patches@gnu.org; Sun, 11 Apr 2021 09:47:02 -0400 Received: from debbugs.gnu.org ([209.51.188.43]:42650) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1lVaQX-0007XQ-Ns for guix-patches@gnu.org; Sun, 11 Apr 2021 09:47:01 -0400 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1lVaQX-0004re-L8 for guix-patches@gnu.org; Sun, 11 Apr 2021 09:47:01 -0400 X-Loop: help-debbugs@gnu.org Subject: [bug#47709] [PATCH 1/2] doc: Move list of build phases to "Build Phases". References: <20210411133747.26175-1-ludo@gnu.org> In-Reply-To: <20210411133747.26175-1-ludo@gnu.org> 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:01 +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.161814878418638 (code B ref 47709); Sun, 11 Apr 2021 13:47:01 +0000 Received: (at 47709) by debbugs.gnu.org; 11 Apr 2021 13:46:24 +0000 Received: from localhost ([127.0.0.1]:54194 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lVaPv-0004qY-IC for submit@debbugs.gnu.org; Sun, 11 Apr 2021 09:46:23 -0400 Received: from eggs.gnu.org ([209.51.188.92]:53670) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lVaPu-0004qE-7J for 47709@debbugs.gnu.org; Sun, 11 Apr 2021 09:46:22 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]:33992) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lVaPo-0006zc-8m; Sun, 11 Apr 2021 09:46:16 -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 1lVaPm-0001kb-Bm; Sun, 11 Apr 2021 09:46:16 -0400 From: Ludovic =?UTF-8?Q?Court=C3=A8s?= Date: Sun, 11 Apr 2021 15:46:05 +0200 Message-Id: <20210411134606.26449-1-ludo@gnu.org> X-Mailer: git-send-email 2.31.1 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=N9ef0Y7uljqPlejVnkRA78Nwn0rpyTH4kDhQz5FdFaM=; b=nMyfN/vHueQhAY/45SskoJnuJKCC3h4XL3hZLQ050w30aMpN2glXewWdOpX9aChIBLjeBZ HrGdmEfTafsv9+59wIA51dSq0m90JN1Q4r3NopDglSEgWZFDDskRSICdzYEk5R/S86jwTI gzFcXbGX3bz3BZAue3BdUXpHtj4Oi42b4Ra/geSsOKvrmbB60tVcaMAAyeXoWQbiW8xuYy Ju37fD2U1GcItNG8VCksM5zqniwkDR5+ehB9GNp6AHE0oIPbvwwv3IAOydrBFNCDgkE4Km 8z2+2z0lTmg3hW6eGDjJH0YH8KK1iUMdnuCUJYFjK0eTOr8/2ZRelLqu2z9Zsw== ARC-Seal: i=1; s=key1; d=yhetil.org; t=1618148827; a=rsa-sha256; cv=none; b=AH+8uYmYCV/lNIKeY9+psO2NUPISPBLalW9gEvS3VTWO3P9szk6v0RigrjG7uloZ1U/MjE OqHIUJxJfJ9LIqlvH4NX3Pm6nsAVL/ZBxtzoa/AUd/mykwj9FWucGWCE5D7Qn+otVyOdbC I7XwVvTuH6EEUUpCvgVF2lSG4leKNKHZPYxZlYEOXa9p/TRD1tT8/RBaMMk+Pl/+zdFkfs nLDwpzZhDLVW9nLZW5MyLYO2MKkxhi0f0WE7ga9SLO/CM6wrRslKTQn9zXlvPxuoqV80ct esG8HHTgkHFrLUIPycgYPKve/j7lU7/+qQpqR1LA/3m9oYpvUuCa477SZOjDrg== 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: CC5552799F X-Spam-Score: 3.56 X-Migadu-Scanner: scn0.migadu.com X-TUID: I/+6FYEX94co Before this change, the 'gnu-build-system' phases were listed in the "Build Systems" section, and then summarized in the "Build Phases" section. This moves everything to "Build Phases". * doc/guix.texi (Build Systems): Move phase table to... (Build Phases): ... here. Rearrange surrounding text. --- doc/guix.texi | 108 +++++++++++++++++++++++--------------------------- 1 file changed, 49 insertions(+), 59 deletions(-) diff --git a/doc/guix.texi b/doc/guix.texi index 218ff35ce9..c8d3422189 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -7297,55 +7297,7 @@ standards, GNU Coding Standards}). In a nutshell, packages using it are configured, built, and installed with the usual @code{./configure && make && make check && make install} command sequence. In practice, a few additional steps are often needed. -All these steps are split up in separate @dfn{phases}, -notably@footnote{Please see the @code{(guix build gnu-build-system)} -modules for more details about the build phases.}: - -@table @code -@item unpack -Unpack the source tarball, and change the current directory to the -extracted source tree. If the source is actually a directory, copy it -to the build tree, and enter that directory. - -@item patch-source-shebangs -Patch shebangs encountered in source files so they refer to the right -store file names. For instance, this changes @code{#!/bin/sh} to -@code{#!/gnu/store/@dots{}-bash-4.3/bin/sh}. - -@item configure -Run the @file{configure} script with a number of default options, such -as @option{--prefix=/gnu/store/@dots{}}, as well as the options specified -by the @code{#:configure-flags} argument. - -@item build -Run @code{make} with the list of flags specified with -@code{#:make-flags}. If the @code{#:parallel-build?} argument is true -(the default), build with @code{make -j}. - -@item check -Run @code{make check}, or some other target specified with -@code{#:test-target}, unless @code{#:tests? #f} is passed. If the -@code{#:parallel-tests?} argument is true (the default), run @code{make -check -j}. - -@item install -Run @code{make install} with the flags listed in @code{#:make-flags}. - -@item patch-shebangs -Patch shebangs on the installed executable files. - -@item strip -Strip debugging symbols from ELF files (unless @code{#:strip-binaries?} -is false), copying them to the @code{debug} output when available -(@pxref{Installing Debugging Files}). -@end table - -@vindex %standard-phases -The build-side module @code{(guix build gnu-build-system)} defines -@code{%standard-phases} as the default list of build phases. -@code{%standard-phases} is a list of symbol/procedure pairs, where the -procedure implements the actual phase. - +All these steps are split up in separate @dfn{phases}. @xref{Build Phases}, for more info on build phases and ways to customize them. @@ -8249,16 +8201,53 @@ exception is the ``bare-bones'' @code{trivial-build-system} (@pxref{Build Systems}). As discussed in the previous section, those build systems provide a -standard list of phases. For @code{gnu-build-system}, the standard -phases include an @code{unpack} phase to unpack the source code tarball, -a @command{configure} phase to run @code{./configure}, a @code{build} -phase to run @command{make}, and (among others) an @code{install} phase -to run @command{make install}; @pxref{Build Systems}, for a more -detailed view of these phases. Likewise, @code{cmake-build-system} -inherits these phases, but its @code{configure} phase runs -@command{cmake} instead of @command{./configure}. Other build systems, -such as @code{python-build-system}, have a wholly different list of -standard phases. All this code runs on the @dfn{build side}: it is +standard list of phases. For @code{gnu-build-system}, the main build +phases are the following: + +@table @code +@item unpack +Unpack the source tarball, and change the current directory to the +extracted source tree. If the source is actually a directory, copy it +to the build tree, and enter that directory. + +@item patch-source-shebangs +Patch shebangs encountered in source files so they refer to the right +store file names. For instance, this changes @code{#!/bin/sh} to +@code{#!/gnu/store/@dots{}-bash-4.3/bin/sh}. + +@item configure +Run the @file{configure} script with a number of default options, such +as @option{--prefix=/gnu/store/@dots{}}, as well as the options specified +by the @code{#:configure-flags} argument. + +@item build +Run @code{make} with the list of flags specified with +@code{#:make-flags}. If the @code{#:parallel-build?} argument is true +(the default), build with @code{make -j}. + +@item check +Run @code{make check}, or some other target specified with +@code{#:test-target}, unless @code{#:tests? #f} is passed. If the +@code{#:parallel-tests?} argument is true (the default), run @code{make +check -j}. + +@item install +Run @code{make install} with the flags listed in @code{#:make-flags}. + +@item patch-shebangs +Patch shebangs on the installed executable files. + +@item strip +Strip debugging symbols from ELF files (unless @code{#:strip-binaries?} +is false), copying them to the @code{debug} output when available +(@pxref{Installing Debugging Files}). +@end table + +Other build systems have similar phases, with some variations. For +example, @code{cmake-build-system} has same-named phases but its +@code{configure} phases runs @code{cmake} instead of @code{./configure}. +Others, such as @code{python-build-system}, have a wholly different list +of standard phases. All this code runs on the @dfn{build side}: it is evaluated when you actually build the package, in a dedicated build process spawned by the build daemon (@pxref{Invoking guix-daemon}). @@ -8269,6 +8258,7 @@ is a procedure that accepts an arbitrary number of arguments. By convention, those procedures receive information about the build in the form of @dfn{keyword parameters}, which they can use or ignore. +@vindex %standard-phases For example, here is how @code{(guix build gnu-build-system)} defines @code{%standard-phases}, the variable holding its alist of build phases@footnote{We present a simplified view of those build phases, but -- 2.31.1