# configure: is NEEDS_SSL_WITH_CRYPTO test correct?

4 messages from 2009-07-21 to 2009-07-22. Participants: Brandon Casey, Junio C Hamano.
Thread: https://gitlist.dev/t/20177

## Brandon Casey, 2009-07-21 15:29

Subject: configure: is NEEDS_SSL_WITH_CRYPTO test correct?
Message-ID: <TV3HaUyeB7DH8euAZskzz1ryGof9Nj4sfUP9TBnI8xKT3cuwWrFLpQ@cipher.nrlssc.navy.mil>
URL: https://gitlist.dev/e/TV3HaUyeB7DH8euAZskzz1ryGof9Nj4sfUP9TBnI8xKT3cuwWrFLpQ%40cipher.nrlssc.navy.mil

```

>From configure.ac, but re-nested:

AC_CHECK_LIB([crypto], [SHA1_Init],
   [NEEDS_SSL_WITH_CRYPTO=],
   [AC_CHECK_LIB([ssl], [SHA1_Init],
      [NEEDS_SSL_WITH_CRYPTO=YesPlease NEEDS_SSL_WITH_CRYPTO=],
      [NO_OPENSSL=YesPlease])])

should it rather be:

AC_CHECK_LIB([crypto], [SHA1_Init],
   [NEEDS_SSL_WITH_CRYPTO=],
   [AC_CHECK_LIB([ssl], [SHA1_Init],
      [NEEDS_SSL_WITH_CRYPTO=YesPlease],
      [NEEDS_SSL_WITH_CRYPTO= NO_OPENSSL=YesPlease])])

Notice the pairing of "action" parameters to the inner AC_CHECK_LIB().
The first one seems to set, and then unset NEEDS_SSL_WITH_CRYPTO.  Not
sure what is going on there.  Was the unsetting of NEEDS_SSL_WITH_CRYPTO
supposed to go into the action-if-not-found section?

-brandon

```

## Junio C Hamano, 2009-07-21 18:49

Subject: Re: configure: is NEEDS_SSL_WITH_CRYPTO test correct?
Message-ID: <7vk521g9c6.fsf@alter.siamese.dyndns.org>
URL: https://gitlist.dev/e/7vk521g9c6.fsf%40alter.siamese.dyndns.org
In-Reply-To: <TV3HaUyeB7DH8euAZskzz1ryGof9Nj4sfUP9TBnI8xKT3cuwWrFLpQ@cipher.nrlssc.navy.mil>

```
Brandon Casey <brandon.casey.ctr@nrlssc.navy.mil> writes:

> From configure.ac, but re-nested:
>
> AC_CHECK_LIB([crypto], [SHA1_Init],
>    [NEEDS_SSL_WITH_CRYPTO=],
>    [AC_CHECK_LIB([ssl], [SHA1_Init],
>       [NEEDS_SSL_WITH_CRYPTO=YesPlease NEEDS_SSL_WITH_CRYPTO=],
>       [NO_OPENSSL=YesPlease])])

Yuck.

> should it rather be:
>
> AC_CHECK_LIB([crypto], [SHA1_Init],
>    [NEEDS_SSL_WITH_CRYPTO=],
>    [AC_CHECK_LIB([ssl], [SHA1_Init],
>       [NEEDS_SSL_WITH_CRYPTO=YesPlease],
>       [NEEDS_SSL_WITH_CRYPTO= NO_OPENSSL=YesPlease])])

We expect to find SHA1_Init in -lcrypto, and if we find it there we do not
do anything funky.  If we do not find it in -lcrypto, we try -lssl and if
we find it then we know we do need -lssl when saying -lcrypto.  Otherwise
we do not seem to have OpenSSL.

That is how I read your version, and it makes perfect sense to me.

> Notice the pairing of "action" parameters to the inner AC_CHECK_LIB().
> The first one seems to set, and then unset NEEDS_SSL_WITH_CRYPTO.  Not
> sure what is going on there.  Was the unsetting of NEEDS_SSL_WITH_CRYPTO
> supposed to go into the action-if-not-found section?

Thanks.

```

## Brandon Casey, 2009-07-22 22:20

Subject: [PATCH] configure.ac: properly unset NEEDS_SSL_WITH_CRYPTO when sha1 func is missing
Message-ID: <fXvtyZqTXuIladfxuwXdIfda7yrkxDlOZjc2eF5mi-ghnq1WUYZyXUmYBktl6Gq67H5ttK6JmaQ@cipher.nrlssc.navy.mil>
URL: https://gitlist.dev/e/fXvtyZqTXuIladfxuwXdIfda7yrkxDlOZjc2eF5mi-ghnq1WUYZyXUmYBktl6Gq67H5ttK6JmaQ%40cipher.nrlssc.navy.mil
In-Reply-To: <7vk521g9c6.fsf@alter.siamese.dyndns.org>

```
From: Brandon Casey <drafnel@gmail.com>

The empty assignment NEEDS_SSL_WITH_CRYPTO= was mistakenly paired with the
assignment NEEDS_SSL_WITH_CRYPTO=YesPlease in the "action-if-found"
parameter of the AC_CHECK_LIB macro.  The empty assignment was intended for
the "action-if-not-found" section, since in that case, the necessary sha1
hash function was not found and the internal sha1 implementation will be
used instead.

Signed-off-by: Brandon Casey <drafnel@gmail.com>
---


If you haven't already fixed this, here's a patch to do so.

-brandon


 configure.ac |    5 ++---
 1 files changed, 2 insertions(+), 3 deletions(-)

diff --git a/configure.ac b/configure.ac
index ba44cf2..3f1922d 100644
--- a/configure.ac
+++ b/configure.ac
@@ -342,9 +342,8 @@ GIT_STASH_FLAGS($OPENSSLDIR)
 AC_CHECK_LIB([crypto], [SHA1_Init],
 [NEEDS_SSL_WITH_CRYPTO=],
 [AC_CHECK_LIB([ssl], [SHA1_Init],
- [NEEDS_SSL_WITH_CRYPTO=YesPlease
-  NEEDS_SSL_WITH_CRYPTO=],
- [NO_OPENSSL=YesPlease])])
+ [NEEDS_SSL_WITH_CRYPTO=YesPlease],
+ [NEEDS_SSL_WITH_CRYPTO= NO_OPENSSL=YesPlease])])
 
 GIT_UNSTASH_FLAGS($OPENSSLDIR)
 
-- 
1.6.3.1.24.g152f4

```

## Brandon Casey, 2009-07-22 22:20

Subject: [PATCH] configure.ac: properly unset NEEDS_SSL_WITH_CRYPTO when sha1 func is missing
Message-ID: <fXvtyZqTXuItyftUWemaP4LOisK2cjVlw5rvtjWxiqExiulCpErwC7p2lHUbi-9P3e0-yUSP3O0@cipher.nrlssc.navy.mil>
URL: https://gitlist.dev/e/fXvtyZqTXuItyftUWemaP4LOisK2cjVlw5rvtjWxiqExiulCpErwC7p2lHUbi-9P3e0-yUSP3O0%40cipher.nrlssc.navy.mil
In-Reply-To: <7vk521g9c6.fsf@alter.siamese.dyndns.org>

```
From: Brandon Casey <drafnel@gmail.com>

The empty assignment NEEDS_SSL_WITH_CRYPTO= was mistakenly paired with the
assignment NEEDS_SSL_WITH_CRYPTO=YesPlease in the "action-if-found"
parameter of the AC_CHECK_LIB macro.  The empty assignment was intended for
the "action-if-not-found" section, since in that case, the necessary sha1
hash function was not found and the internal sha1 implementation will be
used instead.

Signed-off-by: Brandon Casey <drafnel@gmail.com>
---


If you haven't already fixed this, here's a patch to do so.

-brandon


 configure.ac |    5 ++---
 1 files changed, 2 insertions(+), 3 deletions(-)

diff --git a/configure.ac b/configure.ac
index ba44cf2..3f1922d 100644
--- a/configure.ac
+++ b/configure.ac
@@ -342,9 +342,8 @@ GIT_STASH_FLAGS($OPENSSLDIR)
 AC_CHECK_LIB([crypto], [SHA1_Init],
 [NEEDS_SSL_WITH_CRYPTO=],
 [AC_CHECK_LIB([ssl], [SHA1_Init],
- [NEEDS_SSL_WITH_CRYPTO=YesPlease
-  NEEDS_SSL_WITH_CRYPTO=],
- [NO_OPENSSL=YesPlease])])
+ [NEEDS_SSL_WITH_CRYPTO=YesPlease],
+ [NEEDS_SSL_WITH_CRYPTO= NO_OPENSSL=YesPlease])])
 
 GIT_UNSTASH_FLAGS($OPENSSLDIR)
 
-- 
1.6.3.1.24.g152f4

```
