duosecurity/duo_unix

How to disable X509_TEA_set_state test?

Closed this issue · 1 comments

Summary

I'm trying to build login_duo for OpenWrt and it fails due to the X509_TEA_set_state check.
Disabling the check results in a successful build.

checking whether X509_TEA_set_state runs... configure: error: in `~/github/openwrt/build_dir/target-x86_64_musl/duo_unix-1.11.3':
configure: error: cannot run test program while cross compiling

Steps to reproduce

  1. Download OpenWRT SDK or build environment
  2. Try to compile login_duo without PAM with this example OpenWrt Makefile. I can get it to work stripping the test with sed with this Makefile.

OpenWrt's option to tell configure that we are cross-compiling is enabled, but it still runs the check.
If I comment out the check in configure.ac I can successfully build login_duo for x64-musl.

I'm wondering how I could disable configure running the check instead of resorting to sed/awk hacks to comment it out? I apologize if this is obvious, I am not a programmer.

Hi Strykar!

The X509_TEA_set_state is used by macOS but is not used in other operating systems such as OpenWRT.

You can remove the line all together if you'd like to and run bootstrap again once the change has been made. The line in general can be found below as you know:

AX_CHECK_X509(AC_DEFINE([HAVE_X509_TEA_SET_STATE],[1],[Define if X509_set_state exists]), [])

If you want to see more regarding the x509_TEA_set_state check, check out the below:

#ifdef HAVE_X509_TEA_SET_STATE

As this is open source and OpenWRT is not one of the supported distros by Duo, feel free to fork the repo for your OpenWRT needs!