# [PATCH 0/3] configure.ac: misc configure fixes

5 messages from 2023-07-19 to 2023-07-19. Participants: Andreas Herrmann, Junio C Hamano.
Thread: https://gitlist.dev/t/60013

## Andreas Herrmann, 2023-07-19 14:29

Subject: [PATCH 0/3] configure.ac: misc configure fixes
Message-ID: <20230719145211.17854-2-aherrmann@suse.de>
URL: https://gitlist.dev/e/20230719145211.17854-2-aherrmann%40suse.de

```
Some of the configure options are not working as expected.
I first encountered this when using '--with-expat=no'.
Following patches address this.

I've also checked configure options for 'libpcre', 'openssl' (together
with 'make OPENSSL_SHA1=yes ...'), and 'tcltk'. These are working
correctly.

As a test I've run 'make test' when disabling support of a package.
I always had to use 'export GIT_SKIP_TESTS="t5801.1[4-7] t5801.31"' to
skip some failing tests. Those failed also with default build.

When disabling iconv ('configure --without-iconv') further tests are
failing. In this case I've used
'export GIT_SKIP_TESTS="t5801.1[4-7] t5801.31 \
t0028* t2082.2 t3434* t390[01]* \
t4041* t4059* t4060.8 t4201.12 t4205* t4210* t4254.[34] \
t5100* t6006* t7102.2 t8005* t9300.193 t9350*"'
to ensure that 'make test' completed without exiting early.

Andreas Herrmann (3):
  configure.ac: don't overwrite NO_EXPAT option
  configure.ac: don't overwrite NO_CURL option
  configure.ac: always save NO_ICONV to config.status

 configure.ac | 11 ++++++++++-
 1 file changed, 10 insertions(+), 1 deletion(-)

-- 
2.41.0


```

## Andreas Herrmann, 2023-07-19 14:29

Subject: [PATCH 1/3] configure.ac: don't overwrite NO_EXPAT option
Message-ID: <20230719145211.17854-4-aherrmann@suse.de>
URL: https://gitlist.dev/e/20230719145211.17854-4-aherrmann%40suse.de
In-Reply-To: <20230719145211.17854-2-aherrmann@suse.de>

```
Even if 'configure --with-expat=no' was run, expat support is used,
because library detection overwrites it. Avoid this overwrite.
Configure should obey what the user has specified.

Signed-off-by: Andreas Herrmann <aherrmann@suse.de>
---
 configure.ac | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/configure.ac b/configure.ac
index 38ff86678a..62cc8197f8 100644
--- a/configure.ac
+++ b/configure.ac
@@ -581,6 +581,8 @@ fi
 # Define NO_EXPAT if you do not have expat installed.  git-http-push is
 # not built, and you cannot push using http:// and https:// transports.
 
+if test -z "$NO_EXPAT"; then
+
 GIT_STASH_FLAGS($EXPATDIR)
 
 AC_CHECK_LIB([expat], [XML_ParserCreate],
@@ -589,6 +591,8 @@ AC_CHECK_LIB([expat], [XML_ParserCreate],
 
 GIT_UNSTASH_FLAGS($EXPATDIR)
 
+fi
+
 GIT_CONF_SUBST([NO_EXPAT])
 
 #
-- 
2.41.0


```

## Andreas Herrmann, 2023-07-19 14:29

Subject: [PATCH 2/3] configure.ac: don't overwrite NO_CURL option
Message-ID: <20230719145211.17854-6-aherrmann@suse.de>
URL: https://gitlist.dev/e/20230719145211.17854-6-aherrmann%40suse.de
In-Reply-To: <20230719145211.17854-2-aherrmann@suse.de>

```
Even if 'configure --with-curl=no' was run, curl support is used,
because library detection overwrites it. Avoid this overwrite.
Configure should obey what the user has specified.

Signed-off-by: Andreas Herrmann <aherrmann@suse.de>
---
 configure.ac | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/configure.ac b/configure.ac
index 62cc8197f8..e85e215f14 100644
--- a/configure.ac
+++ b/configure.ac
@@ -546,6 +546,8 @@ fi
 # git-http-push are not built, and you cannot use http:// and https://
 # transports.
 
+if test -z "$NO_CURL"; then
+
 GIT_STASH_FLAGS($CURLDIR)
 
 AC_CHECK_LIB([curl], [curl_global_init],
@@ -554,6 +556,8 @@ AC_CHECK_LIB([curl], [curl_global_init],
 
 GIT_UNSTASH_FLAGS($CURLDIR)
 
+fi
+
 GIT_CONF_SUBST([NO_CURL])
 
 if test -z "$NO_CURL"; then
-- 
2.41.0


```

## Andreas Herrmann, 2023-07-19 14:29

Subject: [PATCH 3/3] configure.ac: always save NO_ICONV to config.status
Message-ID: <20230719145211.17854-8-aherrmann@suse.de>
URL: https://gitlist.dev/e/20230719145211.17854-8-aherrmann%40suse.de
In-Reply-To: <20230719145211.17854-2-aherrmann@suse.de>

```
In case 'configure --with-iconv=no' is used, NO_ICONV is not saved to
config.status and thus git is built with iconv support.

Always save NO_ICONV to config.status to honor what user selected
during configure step.

Signed-off-by: Andreas Herrmann <aherrmann@suse.de>
---
 configure.ac | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/configure.ac b/configure.ac
index e85e215f14..276593cd9d 100644
--- a/configure.ac
+++ b/configure.ac
@@ -644,7 +644,6 @@ LIBS="$old_LIBS"
 GIT_UNSTASH_FLAGS($ICONVDIR)
 
 GIT_CONF_SUBST([NEEDS_LIBICONV])
-GIT_CONF_SUBST([NO_ICONV])
 
 if test -n "$NO_ICONV"; then
     NEEDS_LIBICONV=
@@ -652,6 +651,8 @@ fi
 
 fi
 
+GIT_CONF_SUBST([NO_ICONV])
+
 #
 # Define NO_DEFLATE_BOUND if deflateBound is missing from zlib.
 
-- 
2.41.0


```

## Junio C Hamano, 2023-07-19 21:35

Subject: Re: [PATCH 0/3] configure.ac: misc configure fixes
Message-ID: <xmqqy1jb8u0n.fsf@gitster.g>
URL: https://gitlist.dev/e/xmqqy1jb8u0n.fsf%40gitster.g
In-Reply-To: <20230719145211.17854-2-aherrmann@suse.de>

```
Andreas Herrmann <aherrmann@suse.de> writes:

> Andreas Herrmann (3):
>   configure.ac: don't overwrite NO_EXPAT option
>   configure.ac: don't overwrite NO_CURL option
>   configure.ac: always save NO_ICONV to config.status

All patches look good.

Thanks, will queue.

```
