macosinstallationpackagehomebrewconfigure

Cannot install John the Ripper Jumbo on macOS Ventura 13.2.1


I'm currently running macOS Ventura 13.2.1, and I can't install John the Ripper Jumbo on my device. The installation process always fails at ./configure with the error below. I've tried running git clone git clone https://github.com/magnumripper/JohnTheRipper, and downloading and extracting the tar.gz and tar.xz files from https://www.openwall.com/john/. All of these methods fail in the same place, when I run ./configure from the src directory. This is the error message:

configure: error: in `/usr/local/Homebrew/Cellar/john/src':
configure: error: JtR requires libssl being installed
See `config.log' for more details

I have openssl installed, and I have /usr/local/Homebrew/lib/libssl.dylib. I don't understand this error message. How do I install the latest version of John the Ripper Jumbo, and all its dependencies? I can't find any good help online.

I've also tried installing with MacPorts, which fails with:

--->  Computing dependencies for john-jumbo
--->  Fetching archive for john-jumbo
--->  Attempting to fetch john-jumbo-1.9.0_2.darwin_22.arm64.tbz2 from https://packages.macports.org/john-jumbo
--->  Attempting to fetch john-jumbo-1.9.0_2.darwin_22.arm64.tbz2 from https://ywg.ca.packages.macports.org/mirror/macports/packages/john-jumbo
--->  Attempting to fetch john-jumbo-1.9.0_2.darwin_22.arm64.tbz2 from http://mirror.fcix.net/macports/packages/john-jumbo
--->  Fetching distfiles for john-jumbo
--->  Attempting to fetch john-1.9.0-jumbo-1.tar.xz from https://distfiles.macports.org/john
--->  Verifying checksums for john-jumbo                                         
--->  Extracting john-jumbo
--->  Applying patches to john-jumbo
--->  Configuring john-jumbo
--->  Building john-jumbo                                
Error: Failed to build john-jumbo: command execution failed
Error: See /opt/local/var/macports/logs/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_sysutils_john/john-jumbo/main.log for details.
Error: Follow https://guide.macports.org/#project.tickets if you believe there
is a bug.
Error: Processing of port john-jumbo failed

I can't install with brew install john-jumbo (which does work fine) because brew's version of John the Ripper Jumbo is missing some important functionality, and the JtR developers said I need to install from source, not with brew. For more information on that, see the issue I opened on GitHub (https://github.com/openwall/john/issues/5256) and its replies from the developers.

Full ./configure output

checking build system type... arm-apple-darwin22.3.0
checking host system type... arm-apple-darwin22.3.0
checking whether to compile using MPI... no
checking for gcc... gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables... 
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking whether gcc understands -c and -o together... yes
checking whether we are using the GNU C compiler... (cached) yes
checking whether gcc accepts -g... (cached) yes
checking for gcc option to accept ISO C89... (cached) none needed
checking whether gcc understands -c and -o together... (cached) yes
checking additional paths...  -L/usr/local/lib -L/opt/local/lib -L/usr/local/opt/openssl/lib -I/usr/local/include -I/opt/local/include -I/usr/local/opt/openssl/include
checking arg check macro for -m with gcc... yes
checking arg check macro for -Q with gcc... yes
checking if gcc supports -funroll-loops... yes
checking if gcc supports -Os... yes
checking if gcc supports -finline-functions... yes
checking if gcc supports -Og... yes
checking if gcc supports -Wall... yes
checking if gcc supports -Wno-stringop-truncation... no
checking if gcc supports -Wno-format-overflow... no
checking if gcc supports -Wno-format-truncation... no
checking if gcc supports -Wno-tautological-constant-out-of-range-compare... yes
checking if gcc supports -fno-omit-frame-pointer... yes
checking if gcc supports --param allow-store-data-races=0... no
checking if gcc supports -Wno-deprecated-declarations... yes
checking if gcc supports -Wformat-extra-args... yes
checking if gcc supports -Wunused-but-set-variable... yes
checking if gcc supports -Qunused-arguments... yes
checking if gcc supports -std=gnu89... yes
checking if gcc supports -Wdate-time... yes
checking if gcc supports -m64... skipped
checking for 32/64 bit... 64-bit
checking additional paths (64 bit)... none
checking whether ln -s works... yes
checking for grep that handles long lines and -e... /usr/bin/grep
checking for a sed that does not truncate output... /usr/local/homebrew/bin/gsed
checking for GNU make... make
checking whether make sets $(MAKE)... yes
checking how to run the C preprocessor... gcc -E
checking for a thread-safe mkdir -p... ./install-sh -c -d
checking for sort... /usr/bin/sort
checking for find... /usr/bin/find
checking for perl... /usr/bin/perl
checking for ar... ar
checking for strip... strip
checking for strings... strings
checking for pkg-config... /usr/local/bin/pkg-config
checking pkg-config is at least version 0.9.0... yes
checking if pkg-config will be used... no
checking for egrep... /usr/bin/grep -E
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking size of short... 2
checking size of int... 4
checking size of long... 8
checking size of long long... 8
checking size of wchar_t... 4
checking size of int *... 8
checking size of void *... 8
checking special compiler flags... ARM
configure: Testing build host's native CPU features
checking for NEON... yes
checking for ASIMD... yes
checking if gcc supports -fno-strict-aliasing... yes
checking for extra ASFLAGS...  -DUNDERSCORES -DBSD -DALIGN_LOG
checking for arch.h alternative... arm64le.h
checking for byte ordering according to target triple... little
checking supplied paths for OpenSSL...  
checking additional paths for OpenSSL... none
checking openssl/opensslv.h usability... yes
checking openssl/opensslv.h presence... yes
checking for openssl/opensslv.h... yes
checking for SSL_CTX_new in -lssl... no
configure: error: in `/usr/local/Homebrew/Cellar/john/src':
configure: error: libssl not found, install it or use --without-openssl option
See `config.log' for more details

config.log file contents

This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.

It was created by john configure jumbo, which was
generated by GNU Autoconf 2.69.  Invocation command line was

  $ ./configure CC=/opt/homebrew/bin/gcc-10 LDFLAGS=-L/opt/homebrew/opt/openssl/lib CPPFLAGS=-I/opt/homebrew/opt/openssl/include

## --------- ##
## Platform. ##
## --------- ##

hostname = MacBook-Pro-2
uname -m = arm64
uname -r = 22.3.0
uname -s = Darwin
uname -v = Darwin Kernel Version 22.3.0: Mon Jan 30 20:39:35 PST 2023; root:xnu-8792.81.3~2/RELEASE_ARM64_T8103

/usr/bin/uname -p = arm
/bin/uname -X     = unknown

/bin/arch              = unknown
/usr/bin/arch -k       = unknown
/usr/convex/getsysinfo = unknown
/usr/bin/hostinfo      = Mach kernel version:
     Darwin Kernel Version 22.3.0: Mon Jan 30 20:39:35 PST 2023; root:xnu-8792.81.3~2/RELEASE_ARM64_T8103
Kernel configured for up to 8 processors.
8 processors are physically available.
8 processors are logically available.
Processor type: arm64e (ARM64E)
Processors active: 0 1 2 3 4 5 6 7
Primary memory available: 16.00 gigabytes
Default processor set: 583 tasks, 2857 threads, 8 processors
Load average: 4.00, Mach factor: 4.30
/bin/machine           = unknown
/usr/bin/oslevel       = unknown
/bin/universe          = unknown

PATH: /opt/local/bin
PATH: /opt/local/sbin
PATH: /Users/Nicholas/bin
PATH: /usr/local/bin
PATH: /System/Cryptexes/App/usr/bin
PATH: /usr/bin
PATH: /bin
PATH: /usr/sbin
PATH: /sbin
PATH: /usr/local/aria2/bin
PATH: /Library/Apple/usr/bin
PATH: /opt/metasploit-framework/bin
PATH: /opt/metasploit-framework/bin
PATH: /usr/local/sbin
PATH: /usr/local/homebrew/bin
PATH: /usr/local/Homebrew/Cellar/john-jumbo/1.9.0_1/share/john


## ----------- ##
## Core tests. ##
## ----------- ##

configure:3617: checking build system type
configure:3631: result: arm-apple-darwin22.3.0
configure:3651: checking host system type
configure:3664: result: arm-apple-darwin22.3.0
configure:3692: checking whether to compile using MPI
configure:3699: result: no
configure:3856: checking for gcc
configure:3883: result: /opt/homebrew/bin/gcc-10
configure:4112: checking for C compiler version
configure:4121: /opt/homebrew/bin/gcc-10 --version >&5
./configure: line 4123: /opt/homebrew/bin/gcc-10: No such file or directory
configure:4132: $? = 127
configure:4121: /opt/homebrew/bin/gcc-10 -v >&5
./configure: line 4123: /opt/homebrew/bin/gcc-10: No such file or directory
configure:4132: $? = 127
configure:4121: /opt/homebrew/bin/gcc-10 -V >&5
./configure: line 4123: /opt/homebrew/bin/gcc-10: No such file or directory
configure:4132: $? = 127
configure:4121: /opt/homebrew/bin/gcc-10 -qversion >&5
./configure: line 4123: /opt/homebrew/bin/gcc-10: No such file or directory
configure:4132: $? = 127
configure:4152: checking whether the C compiler works
configure:4174: /opt/homebrew/bin/gcc-10  -I/opt/homebrew/opt/openssl/include -L/opt/homebrew/opt/openssl/lib conftest.c  >&5
./configure: line 4176: /opt/homebrew/bin/gcc-10: No such file or directory
configure:4178: $? = 127
configure:4216: result: no
configure: failed program was:
| /* confdefs.h */
| #define PACKAGE_NAME "john"
| #define PACKAGE_TARNAME "john"
| #define PACKAGE_VERSION "jumbo"
| #define PACKAGE_STRING "john jumbo"
| #define PACKAGE_BUGREPORT "john-users mailing list at openwall.com"
| #define PACKAGE_URL ""
| /* end confdefs.h.  */
| 
| int
| main ()
| {
| 
|   ;
|   return 0;
| }
configure:4221: error: in `/usr/local/homebrew/cellar/john/src':
configure:4223: error: C compiler cannot create executables
See `config.log' for more details

## ---------------- ##
## Cache variables. ##
## ---------------- ##

ac_cv_build=arm-apple-darwin22.3.0
ac_cv_env_AR_set=
ac_cv_env_AR_value=
ac_cv_env_AS_set=
ac_cv_env_AS_value=
ac_cv_env_CC_set=set
ac_cv_env_CC_value=/opt/homebrew/bin/gcc-10
ac_cv_env_CFLAGS_EXTRA_set=
ac_cv_env_CFLAGS_EXTRA_value=
ac_cv_env_CFLAGS_set=
ac_cv_env_CFLAGS_value=
ac_cv_env_CPPFLAGS_set=set
ac_cv_env_CPPFLAGS_value=-I/opt/homebrew/opt/openssl/include
ac_cv_env_CPP_set=
ac_cv_env_CPP_value=
ac_cv_env_LDFLAGS_set=set
ac_cv_env_LDFLAGS_value=-L/opt/homebrew/opt/openssl/lib
ac_cv_env_LD_set=
ac_cv_env_LD_value=
ac_cv_env_LIBS_set=
ac_cv_env_LIBS_value=
ac_cv_env_MPICC_set=
ac_cv_env_MPICC_value=
ac_cv_env_OPENSSL_CFLAGS_set=
ac_cv_env_OPENSSL_CFLAGS_value=
ac_cv_env_OPENSSL_LIBS_set=
ac_cv_env_OPENSSL_LIBS_value=
ac_cv_env_PKG_CONFIG_LIBDIR_set=
ac_cv_env_PKG_CONFIG_LIBDIR_value=
ac_cv_env_PKG_CONFIG_PATH_set=
ac_cv_env_PKG_CONFIG_PATH_value=
ac_cv_env_PKG_CONFIG_set=
ac_cv_env_PKG_CONFIG_value=
ac_cv_env_YASM_set=
ac_cv_env_YASM_value=
ac_cv_env_build_alias_set=
ac_cv_env_build_alias_value=
ac_cv_env_host_alias_set=
ac_cv_env_host_alias_value=
ac_cv_env_target_alias_set=
ac_cv_env_target_alias_value=
ac_cv_host=arm-apple-darwin22.3.0
ac_cv_prog_ac_ct_CC=/opt/homebrew/bin/gcc-10

## ----------------- ##
## Output variables. ##
## ----------------- ##

AESNI_ARCH=''
AESNI_OS=''
AR=''
AS=''
ASFLAGS=''
BZ2_LIBS=''
CC='/opt/homebrew/bin/gcc-10'
CC_ASM_OBJS=''
CC_CPU=''
CC_MAIN_CPU=''
CFLAGS=''
CFLAGS_EXTRA=''
CL_CFLAGS=''
CL_LIBS=''
CPP=''
CPPFLAGS='-I/opt/homebrew/opt/openssl/include'
CPU_BITS=''
CPU_BIT_STR=''
CRYPT_LIBS=''
DEFS=''
DL_LIBS=''
ECHO_C='\c'
ECHO_N=''
ECHO_T=''
EGREP=''
EXEEXT=''
EXE_EXT=''
EXTRA_AS_FLAGS=''
FIND=''
GMP_LIBS=''
GREP=''
HAVE_FUZZ=''
HAVE_LIBFUZZER=''
HAVE_MPI=''
HAVE_PCAP=''
HOST_OS=''
JOHN_NO_SIMD=''
LD=''
LDFLAGS='-L/opt/homebrew/opt/openssl/lib'
LIBOBJS=''
LIBS=''
LN_S=''
LTLIBOBJS=''
M4_INCLUDES=''
MKDIR_P=''
MPICC=''
M_LIBS=''
OBJEXT=''
OPENCL_PLUGFORMATS_OBJS=''
OPENMP_CFLAGS=''
OPENSSL_CFLAGS=''
OPENSSL_LIBS=''
OPT_INLINE_FLAGS=''
OPT_NORMAL_FLAGS=''
O_DEBUG=''
PACKAGE_BUGREPORT='john-users mailing list at openwall.com'
PACKAGE_NAME='john'
PACKAGE_STRING='john jumbo'
PACKAGE_TARNAME='john'
PACKAGE_URL=''
PACKAGE_VERSION='jumbo'
PATH_SEPARATOR=':'
PCAP_LIBS=''
PERL=''
PKG_CONFIG=''
PKG_CONFIG_LIBDIR=''
PKG_CONFIG_PATH=''
PLUGFORMATS_DEPS=''
PLUGFORMATS_OBJS=''
PTHREAD_CC=''
PTHREAD_CFLAGS=''
PTHREAD_LIBS=''
REXGEN_LIBS=''
RT_LIBS=''
SED=''
SET_MAKE=''
SHELL='/bin/sh'
SKEY_LIBS=''
SORT=''
STRINGS=''
STRIP=''
UNIT_TESTS_DEPENDENCY=''
UNRAR_OBJS=''
YASM=''
YASM_OPTIONS=''
ZTEX_LIBS=''
ZTEX_SUBDIRS=''
Z_LIBS=''
ac_ct_CC='/opt/homebrew/bin/gcc-10'
ax_pthread_config=''
bindir='${exec_prefix}/bin'
build='arm-apple-darwin22.3.0'
build_alias=''
build_cpu='arm'
build_os='darwin22.3.0'
build_vendor='apple'
datadir='${datarootdir}'
datarootdir='${prefix}/share'
docdir='${datarootdir}/doc/${PACKAGE_TARNAME}'
dvidir='${docdir}'
exec_prefix='NONE'
host='arm-apple-darwin22.3.0'
host_alias=''
host_cpu='arm'
host_os='darwin22.3.0'
host_vendor='apple'
htmldir='${docdir}'
ifGNUmake=''
includedir='${prefix}/include'
infodir='${datarootdir}/info'
libdir='${exec_prefix}/lib'
libexecdir='${exec_prefix}/libexec'
localedir='${datarootdir}/locale'
localstatedir='${prefix}/var'
mandir='${datarootdir}/man'
oldincludedir='/usr/include'
pdfdir='${docdir}'
prefix='NONE'
program_transform_name='s,x,x,'
psdir='${docdir}'
sbindir='${exec_prefix}/sbin'
sharedstatedir='${prefix}/com'
sysconfdir='${prefix}/etc'
target_alias=''

## ----------- ##
## confdefs.h. ##
## ----------- ##

/* confdefs.h */
#define PACKAGE_NAME "john"
#define PACKAGE_TARNAME "john"
#define PACKAGE_VERSION "jumbo"
#define PACKAGE_STRING "john jumbo"
#define PACKAGE_BUGREPORT "john-users mailing list at openwall.com"
#define PACKAGE_URL ""

configure: exit 77

Something of not in this file is it looks for some packages in /opt/homebrew, but my Homebrew Cellar is /usr/local/Homebrew/Cellar. Also, this isn't a Homebrew install, so why is ./configure looking for Homebrew packages anyway?

Thanks in advance for your help!


Solution

  • I found a solution at this answer on Super User, I need to run these commands so ./configure knows where OpenSSL and its libraries are located. It was looking in the wrong place, per the log file.

    export LDFLAGS="-L/opt/local/lib"
    export CPPFLAGS="-I/opt/local/include/openssl"
    

    This is where libssl and other OpenSSL-related libraries are stored on my system. John the Ripper Jumbo now is fully complied and works on my system. If anyone is having similar troubles installing it, try these two commands. For future installations requiring OpenSSL (a lot of packages do), I added these two lines to ~/.bash_profile.