From 77771036f0970083c146b709d792d128f4235125 Mon Sep 17 00:00:00 2001 From: Maxim Cournoyer Date: Fri, 17 May 2024 15:06:02 -0400 Subject: [PATCH] configure.ac: Set default value for the 'prefix' variable. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The Guix standard configuration uses a localstatedir of /var and a sysconfdir of /etc. To ease things for everyone, make the default values match that standard expected configuration. See for a related discussion. * configure.ac: Default $prefix to '' unless already set. * doc/contributing.texi (Building from Git): Streamline doc. * doc/guix-cookbook.texi (Guix environment via direnv): Likewise. Reviewed-by: Ludovic Courtès Change-Id: I23cd12b58a842d246fbc9fdc740311c573eb0212 --- configure.ac | 8 +++++--- doc/contributing.texi | 15 +-------------- doc/guix-cookbook.texi | 2 +- 3 files changed, 7 insertions(+), 18 deletions(-) diff --git a/configure.ac b/configure.ac index 8c3a06da37..c7b61d56a7 100644 --- a/configure.ac +++ b/configure.ac @@ -73,9 +73,11 @@ AC_ARG_ENABLE([daemon], [guix_build_daemon="$enableval"], [guix_build_daemon="yes"]) -# Prepare a version of $localstatedir & co. that does not contain references -# to shell variables. -guix_prefix="`eval echo $prefix | sed -e"s|NONE|/usr/local|g"`" +dnl Prepare a version of $localstatedir & co. that does not contain references +dnl to shell variables. Also set some sane default directory variables for +dnl use with the Guix. This also causes localstatedir to be /var and +dnl sysconfdir to be /etc. +test "$prefix" = NONE && prefix= guix_localstatedir="`eval echo $localstatedir | sed -e "s|NONE|$guix_prefix|g"`" guix_sysconfdir="`eval echo $sysconfdir | sed -e "s|NONE|$guix_prefix|g"`" guix_sbindir="`eval echo $sbindir | sed -e "s|NONE|$guix_prefix|g"`" diff --git a/doc/contributing.texi b/doc/contributing.texi index a0d6b5304a..b8adc169d8 100644 --- a/doc/contributing.texi +++ b/doc/contributing.texi @@ -235,7 +235,7 @@ more information. Then, run: @example -./configure --localstatedir=/var --sysconfdir=/etc +./configure @end example @noindent @@ -246,19 +246,6 @@ normal @code{sysconfdir} value. Note that you will probably not run important to pass the right @code{localstatedir} and @code{sysconfdir} values, which get recorded in the @code{(guix config)} Guile module. -When configuring Guix on a system that already has a Guix installation, -be sure to specify the same state directory as the existing installation -using the @option{--localstatedir} option of the @command{configure} -script (@pxref{Directory Variables, @code{localstatedir},, standards, -GNU Coding Standards}). Usually, this @var{localstatedir} option is set -to the value @file{/var}. The @command{configure} script protects -against unintended misconfiguration of @var{localstatedir} so you do not -inadvertently corrupt your store (@pxref{The Store}). The configuration -directory should also be configured by setting the @option{--sysconfdir} -option to the @file{/etc} value, which is the location used by Guix to -store for example the access control list of authorized machines and the -definition of offload machines. - Finally, you can build Guix and, if you feel so inclined, run the tests (@pxref{Running the Test Suite}): diff --git a/doc/guix-cookbook.texi b/doc/guix-cookbook.texi index 6b6f5460c3..93874489c2 100644 --- a/doc/guix-cookbook.texi +++ b/doc/guix-cookbook.texi @@ -5093,7 +5093,7 @@ use_guix() # Predefine configure flags. configure() @{ - ./configure --localstatedir=/var --prefix= + ./configure @} export_function configure