diff mbox series

[bug#71022,v2] configure.ac: Set default value for the 'prefix' variable.

Message ID 8e5c69aa6d108ce35c3124a969252227ce9ed178.1716382317.git.maxim.cournoyer@gmail.com
State New
Headers show
Series [bug#71022,v2] configure.ac: Set default value for the 'prefix' variable. | expand

Commit Message

Maxim Cournoyer May 22, 2024, 12:51 p.m. UTC
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
<https://lists.gnu.org/archive/html/guix-devel/2024-05/msg00003.html> 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.

Change-Id: I23cd12b58a842d246fbc9fdc740311c573eb0212
---

Changes in v2:
 - combine comments and default directory variables manipulation

 configure.ac           |  8 +++++---
 doc/contributing.texi  | 15 +--------------
 doc/guix-cookbook.texi |  2 +-
 3 files changed, 7 insertions(+), 18 deletions(-)


base-commit: 5a624adfd7b14c3717237d137bd0766c77f0f570

Comments

Ludovic Courtès May 23, 2024, 9:17 a.m. UTC | #1
Maxim Cournoyer <maxim.cournoyer@gmail.com> skribis:

> 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
> <https://lists.gnu.org/archive/html/guix-devel/2024-05/msg00003.html> 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.
>
> Change-Id: I23cd12b58a842d246fbc9fdc740311c573eb0212

LGTM! :-)
Maxim Cournoyer May 26, 2024, 3:38 a.m. UTC | #2
Hi,

Ludovic Courtès <ludo@gnu.org> writes:

> Maxim Cournoyer <maxim.cournoyer@gmail.com> skribis:
>
>> 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
>> <https://lists.gnu.org/archive/html/guix-devel/2024-05/msg00003.html> 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.
>>
>> Change-Id: I23cd12b58a842d246fbc9fdc740311c573eb0212
>
> LGTM! :-)

I ran 'make distcheck', which initially failed with a

--8<---------------cut here---------------start------------->8---
'dot' error: Format: "pdf" not recognized. Use one of: canon cmap cmapx cmapx_np
dot dot_json eps fig gd gd2 gif gv imap imap_np ismap jpe
jpeg jpg json json0 mp pic plain plain-ext png pov ps ps2
svg svgz tk vdx vml vmlz vrml wbmp xdot xdot1.2 xdot1.4 xdot_json
--8<---------------cut here---------------end--------------->8---

error.  I needed to use the full graphviz, not 'graphviz-minimal' as
used by the Guix package.

I also had to add imagemagick for the 'convert' command.  After that it
proceeded normally; it failed finding many missing substitutes but
otherwise 'make distcheck' went fine.

Pushed, at last.  Some related commits to the above will appear to
guix-patches soon.
diff mbox series

Patch

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 66f4e86d0a..539b4dd0d3 100644
--- a/doc/contributing.texi
+++ b/doc/contributing.texi
@@ -235,7 +235,7 @@  Building from Git
 Then, run:
 
 @example
-./configure --localstatedir=/var --sysconfdir=/etc
+./configure
 @end example
 
 @noindent
@@ -246,19 +246,6 @@  Building from Git
 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 3bc63cba7a..cbd088632a 100644
--- a/doc/guix-cookbook.texi
+++ b/doc/guix-cookbook.texi
@@ -5076,7 +5076,7 @@  Guix environment via direnv
     # Predefine configure flags.
     configure()
     @{
-        ./configure --localstatedir=/var --prefix=
+        ./configure
     @}
     export_function configure