GDK Install Fails on M1 Macs due to OpenSSL crypto library dependency
Overview
Make/autoconf currently generates errors for systems missing the crypto
OpenSSL library. At the moment, neither the product documentation nor the dependency listing in the install guide provides guidance as to which crypto
library is required for the install process.
Steps to replicate (optional)
Clone the gitlab-development-kit
repository into your preferred location, if you haven't previously:
git clone https://gitlab.com/gitlab-org/gitlab-development-kit.git
Change into the GDK project directory:
cd gitlab-development-kit
Install all dependencies using asdf
:
make bootstrap
INFO: Performing common preflight checks..
INFO:
INFO: GDK currently runs on Apple Silicon hardware using Rosetta 2.
INFO:
INFO: To see the latest on running the GDK natively on Apple Silicon, visit:
INFO: https://gitlab.com/gitlab-org/gitlab-development-kit/-/issues/1159
INFO:
INFO: To learn more about Rosetta 2, visit:
INFO: https://en.wikipedia.org/wiki/Rosetta_(software)#Rosetta_2
INFO:
INFO: Resuming in 3 seconds..
INFO: Setting up platform..
INFO: This GDK has already had platform packages installed.
INFO: Remove '/Users/gregalfaro/git-files/gitlab-development-kit/.cache/.gdk_platform_setup' to force execution.
INFO: Installing asdf..
INFO: Installing/updating asdf plugins..
Updating golang to master
Already on 'master'
Your branch is up to date with 'origin/master'.
Updating minio to master
Already on 'master'
Your branch is up to date with 'origin/master'.
Updating nodejs to master
Already on 'master'
Your branch is up to date with 'origin/master'.
Updating postgres to master
Already on 'master'
Your branch is up to date with 'origin/master'.
Updating redis to master
Already on 'master'
Your branch is up to date with 'origin/master'.
Updating ruby to master
Already on 'master'
Your branch is up to date with 'origin/master'.
Updating yarn to main
Already on 'main'
Your branch is up to date with 'origin/main'.
INFO: Installing asdf tools..
golang 1.17.2 is already installed
golang 1.16.12 is already installed
golang 1.16.10 is already installed
minio 2021-04-06T23-11-00Z is already installed
nodejs 14.17.5 is already installed
** Resuming transfer from byte position 27362173
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 190 100 190 0 0 217 0 --:--:-- --:--:-- --:--:-- 219
/Users/gregalfaro/.asdf/plugins/postgres/bin/install: line 45: uconv: command not found
ls: /opt/openssl@*: No such file or directory
Building with options: --prefix=/Users/gregalfaro/.asdf/installs/postgres/12.9 --with-uuid=e2fs --with-openssl --with-zlib --with-libraries='/opt/local/lib:/sw/lib:/usr/local/opt/openssl/lib:/opt/openssl/lib:/lib:/openssl/lib:/libressl/lib:/lib:/usr/local/lib:/usr/lib' --with-includes='/opt/local/lib:/sw/lib:/usr/local/opt/openssl/include:/opt/openssl/include:/opt/homebrew/include:/include:/openssl/include:/libressl/include:/include:/usr/local/include:/usr/local/lib:/usr/lib'
checking build system type... x86_64-apple-darwin21.1.0
checking host system type... x86_64-apple-darwin21.1.0
checking which template to use... darwin
checking whether NLS is wanted... no
checking for default port number... 5432
checking for block size... 8kB
checking for segment size... 1GB
checking for WAL block size... 8kB
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 for gcc option to accept ISO C99... none needed
checking for g++... g++
checking whether we are using the GNU C++ compiler... yes
checking whether g++ accepts -g... yes
checking for gawk... no
checking for mawk... no
checking for nawk... no
checking for awk... awk
checking whether gcc supports -Wdeclaration-after-statement, for CFLAGS... yes
checking whether gcc supports -Werror=vla, for CFLAGS... yes
checking whether gcc supports -Wendif-labels, for CFLAGS... yes
checking whether g++ supports -Wendif-labels, for CXXFLAGS... yes
checking whether gcc supports -Wmissing-format-attribute, for CFLAGS... yes
checking whether g++ supports -Wmissing-format-attribute, for CXXFLAGS... yes
checking whether gcc supports -Wformat-security, for CFLAGS... yes
checking whether g++ supports -Wformat-security, for CXXFLAGS... yes
checking whether gcc supports -fno-strict-aliasing, for CFLAGS... yes
checking whether g++ supports -fno-strict-aliasing, for CXXFLAGS... yes
checking whether gcc supports -fwrapv, for CFLAGS... yes
checking whether g++ supports -fwrapv, for CXXFLAGS... yes
checking whether gcc supports -fexcess-precision=standard, for CFLAGS... no
checking whether g++ supports -fexcess-precision=standard, for CXXFLAGS... no
checking whether gcc supports -funroll-loops, for CFLAGS_VECTOR... yes
checking whether gcc supports -ftree-vectorize, for CFLAGS_VECTOR... yes
checking whether gcc supports -Wunused-command-line-argument, for NOT_THE_CFLAGS... yes
checking whether gcc supports -Wformat-truncation, for NOT_THE_CFLAGS... no
checking whether gcc supports -Wstringop-truncation, for NOT_THE_CFLAGS... no
checking whether the C compiler still works... yes
checking how to run the C preprocessor... gcc -E
checking for pkg-config... /opt/homebrew/bin/pkg-config
checking pkg-config is at least version 0.9.0... yes
configure: WARNING: *** Include directory '/opt/local/lib does not exist.
configure: WARNING: *** Include directory /sw/lib does not exist.
configure: WARNING: *** Include directory /usr/local/opt/openssl/include does not exist.
configure: WARNING: *** Include directory /opt/openssl/include does not exist.
configure: WARNING: *** Include directory /include does not exist.
configure: WARNING: *** Include directory /openssl/include does not exist.
configure: WARNING: *** Include directory /libressl/include does not exist.
configure: WARNING: *** Include directory /include does not exist.
configure: WARNING: *** Include directory /usr/local/include does not exist.
configure: WARNING: *** Include directory /usr/lib' does not exist.
configure: WARNING: *** Library directory '/opt/local/lib does not exist.
configure: WARNING: *** Library directory /sw/lib does not exist.
configure: WARNING: *** Library directory /usr/local/opt/openssl/lib does not exist.
configure: WARNING: *** Library directory /opt/openssl/lib does not exist.
configure: WARNING: *** Library directory /lib does not exist.
configure: WARNING: *** Library directory /openssl/lib does not exist.
configure: WARNING: *** Library directory /libressl/lib does not exist.
configure: WARNING: *** Library directory /lib does not exist.
configure: WARNING: *** Library directory /usr/lib' does not exist.
checking allow thread-safe client libraries... yes
checking whether to build with ICU support... no
checking whether to build with Tcl... no
checking whether to build Perl modules... no
checking whether to build Python modules... no
checking whether to build with GSSAPI support... no
checking whether to build with PAM support... no
checking whether to build with BSD Authentication support... no
checking whether to build with LDAP support... no
checking whether to build with Bonjour support... no
checking whether to build with OpenSSL support... yes
checking whether to build with SELinux support... no
checking whether to build with systemd support... no
checking whether to build with XML support... no
checking for grep that handles long lines and -e... /usr/bin/grep
checking for egrep... /usr/bin/grep -E
checking for ld used by GCC... /Library/Developer/CommandLineTools/usr/bin/ld
checking if the linker (/Library/Developer/CommandLineTools/usr/bin/ld) is GNU ld... no
checking for ranlib... ranlib
checking for strip... strip
checking whether it is possible to strip libraries... yes
checking for ar... ar
checking for a BSD-compatible install... /usr/bin/install -c
checking for tar... /usr/bin/tar
checking whether ln -s works... yes
checking for a thread-safe mkdir -p... /opt/homebrew/bin/gmkdir -p
checking for bison... /usr/bin/bison
configure: using bison (GNU Bison) 2.3
checking for flex... /usr/bin/flex
configure: using flex 2.6.4 Apple(flex-34)
checking for perl... /usr/bin/perl
configure: using perl 5.30.3
checking for a sed that does not truncate output... /opt/homebrew/bin/gsed
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 whether gcc is Clang... yes
checking whether Clang needs flag to prevent "argument unused" warning when linking with -pthread... no
checking for joinable pthread attribute... PTHREAD_CREATE_JOINABLE
checking whether more special flags are required for pthreads... no
checking for PTHREAD_PRIO_INHERIT... yes
checking pthread.h usability... yes
checking pthread.h presence... yes
checking for pthread.h... yes
checking for strerror_r... yes
checking for getpwuid_r... yes
checking for gethostbyname_r... no
checking whether strerror_r returns int... yes
checking for main in -lm... yes
checking for library containing setproctitle... no
checking for library containing dlopen... none required
checking for library containing socket... none required
checking for library containing shl_load... no
checking for library containing getopt_long... none required
checking for library containing crypt... none required
checking for library containing shm_open... none required
checking for library containing shm_unlink... none required
checking for library containing clock_gettime... none required
checking for library containing fdatasync... none required
checking for library containing sched_yield... none required
checking for library containing gethostbyname_r... no
checking for library containing shmget... none required
checking for library containing readline... -lreadline
checking for inflate in -lz... yes
checking for CRYPTO_new_ex_data in -lcrypto... no
configure: error: library 'crypto' is required for OpenSSL
ERROR: Failed to install some asdf tools.
make: *** [bootstrap] Error 1
──── ─ make bootstrap ~/git-files/gitlab-development-kit [main]
INFO: Performing common preflight checks..
INFO:
INFO: GDK currently runs on Apple Silicon hardware using Rosetta 2.
INFO:
INFO: To see the latest on running the GDK natively on Apple Silicon, visit:
INFO: https://gitlab.com/gitlab-org/gitlab-development-kit/-/issues/1159
INFO:
INFO: To learn more about Rosetta 2, visit:
INFO: https://en.wikipedia.org/wiki/Rosetta_(software)#Rosetta_2
INFO:
INFO: Resuming in 3 seconds..
INFO: Setting up platform..
INFO: This GDK has already had platform packages installed.
INFO: Remove '/Users/gregalfaro/git-files/gitlab-development-kit/.cache/.gdk_platform_setup' to force execution.
INFO: Installing asdf..
INFO: Installing/updating asdf plugins..
Updating golang to master
Already on 'master'
Your branch is up to date with 'origin/master'.
Updating minio to master
Already on 'master'
Your branch is up to date with 'origin/master'.
Updating nodejs to master
Already on 'master'
Your branch is up to date with 'origin/master'.
Updating postgres to master
Already on 'master'
Your branch is up to date with 'origin/master'.
Updating redis to master
Already on 'master'
Your branch is up to date with 'origin/master'.
Updating ruby to master
Already on 'master'
Your branch is up to date with 'origin/master'.
Updating yarn to main
Already on 'main'
Your branch is up to date with 'origin/main'.
INFO: Installing asdf tools..
golang 1.17.2 is already installed
golang 1.16.12 is already installed
golang 1.16.10 is already installed
minio 2021-04-06T23-11-00Z is already installed
nodejs 14.17.5 is already installed
** Resuming transfer from byte position 27362173
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 190 100 190 0 0 23 0 0:00:08 0:00:08 --:--:-- 44
/Users/gregalfaro/.asdf/plugins/postgres/bin/install: line 45: uconv: command not found
ls: /opt/openssl@*: No such file or directory
Building with options: --prefix=/Users/gregalfaro/.asdf/installs/postgres/12.9 --with-uuid=e2fs --with-openssl --with-zlib --with-libraries='/opt/local/lib:/sw/lib:/usr/local/opt/openssl/lib:/opt/openssl/lib:/lib:/openssl/lib:/libressl/lib:/lib:/usr/local/lib:/usr/lib' --with-includes='/opt/local/lib:/sw/lib:/usr/local/opt/openssl/include:/opt/openssl/include:/opt/homebrew/include:/include:/openssl/include:/libressl/include:/include:/usr/local/include:/usr/local/lib:/usr/lib'
checking build system type... x86_64-apple-darwin21.1.0
checking host system type... x86_64-apple-darwin21.1.0
checking which template to use... darwin
checking whether NLS is wanted... no
checking for default port number... 5432
checking for block size... 8kB
checking for segment size... 1GB
checking for WAL block size... 8kB
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 for gcc option to accept ISO C99... none needed
checking for g++... g++
checking whether we are using the GNU C++ compiler... yes
checking whether g++ accepts -g... yes
checking for gawk... no
checking for mawk... no
checking for nawk... no
checking for awk... awk
checking whether gcc supports -Wdeclaration-after-statement, for CFLAGS... yes
checking whether gcc supports -Werror=vla, for CFLAGS... yes
checking whether gcc supports -Wendif-labels, for CFLAGS... yes
checking whether g++ supports -Wendif-labels, for CXXFLAGS... yes
checking whether gcc supports -Wmissing-format-attribute, for CFLAGS... yes
checking whether g++ supports -Wmissing-format-attribute, for CXXFLAGS... yes
checking whether gcc supports -Wformat-security, for CFLAGS... yes
checking whether g++ supports -Wformat-security, for CXXFLAGS... yes
checking whether gcc supports -fno-strict-aliasing, for CFLAGS... yes
checking whether g++ supports -fno-strict-aliasing, for CXXFLAGS... yes
checking whether gcc supports -fwrapv, for CFLAGS... yes
checking whether g++ supports -fwrapv, for CXXFLAGS... yes
checking whether gcc supports -fexcess-precision=standard, for CFLAGS... no
checking whether g++ supports -fexcess-precision=standard, for CXXFLAGS... no
checking whether gcc supports -funroll-loops, for CFLAGS_VECTOR... yes
checking whether gcc supports -ftree-vectorize, for CFLAGS_VECTOR... yes
checking whether gcc supports -Wunused-command-line-argument, for NOT_THE_CFLAGS... yes
checking whether gcc supports -Wformat-truncation, for NOT_THE_CFLAGS... no
checking whether gcc supports -Wstringop-truncation, for NOT_THE_CFLAGS... no
checking whether the C compiler still works... yes
checking how to run the C preprocessor... gcc -E
checking for pkg-config... /opt/homebrew/bin/pkg-config
checking pkg-config is at least version 0.9.0... yes
configure: WARNING: *** Include directory '/opt/local/lib does not exist.
configure: WARNING: *** Include directory /sw/lib does not exist.
configure: WARNING: *** Include directory /usr/local/opt/openssl/include does not exist.
configure: WARNING: *** Include directory /opt/openssl/include does not exist.
configure: WARNING: *** Include directory /include does not exist.
configure: WARNING: *** Include directory /openssl/include does not exist.
configure: WARNING: *** Include directory /libressl/include does not exist.
configure: WARNING: *** Include directory /include does not exist.
configure: WARNING: *** Include directory /usr/local/include does not exist.
configure: WARNING: *** Include directory /usr/lib' does not exist.
configure: WARNING: *** Library directory '/opt/local/lib does not exist.
configure: WARNING: *** Library directory /sw/lib does not exist.
configure: WARNING: *** Library directory /usr/local/opt/openssl/lib does not exist.
configure: WARNING: *** Library directory /opt/openssl/lib does not exist.
configure: WARNING: *** Library directory /lib does not exist.
configure: WARNING: *** Library directory /openssl/lib does not exist.
configure: WARNING: *** Library directory /libressl/lib does not exist.
configure: WARNING: *** Library directory /lib does not exist.
configure: WARNING: *** Library directory /usr/lib' does not exist.
checking allow thread-safe client libraries... yes
checking whether to build with ICU support... no
checking whether to build with Tcl... no
checking whether to build Perl modules... no
checking whether to build Python modules... no
checking whether to build with GSSAPI support... no
checking whether to build with PAM support... no
checking whether to build with BSD Authentication support... no
checking whether to build with LDAP support... no
checking whether to build with Bonjour support... no
checking whether to build with OpenSSL support... yes
checking whether to build with SELinux support... no
checking whether to build with systemd support... no
checking whether to build with XML support... no
checking for grep that handles long lines and -e... /usr/bin/grep
checking for egrep... /usr/bin/grep -E
checking for ld used by GCC... /Library/Developer/CommandLineTools/usr/bin/ld
checking if the linker (/Library/Developer/CommandLineTools/usr/bin/ld) is GNU ld... no
checking for ranlib... ranlib
checking for strip... strip
checking whether it is possible to strip libraries... yes
checking for ar... ar
checking for a BSD-compatible install... /usr/bin/install -c
checking for tar... /usr/bin/tar
checking whether ln -s works... yes
checking for a thread-safe mkdir -p... /opt/homebrew/bin/gmkdir -p
checking for bison... /usr/bin/bison
configure: using bison (GNU Bison) 2.3
checking for flex... /usr/bin/flex
configure: using flex 2.6.4 Apple(flex-34)
checking for perl... /usr/bin/perl
configure: using perl 5.30.3
checking for a sed that does not truncate output... /opt/homebrew/bin/gsed
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 whether gcc is Clang... yes
checking whether Clang needs flag to prevent "argument unused" warning when linking with -pthread... no
checking for joinable pthread attribute... PTHREAD_CREATE_JOINABLE
checking whether more special flags are required for pthreads... no
checking for PTHREAD_PRIO_INHERIT... yes
checking pthread.h usability... yes
checking pthread.h presence... yes
checking for pthread.h... yes
checking for strerror_r... yes
checking for getpwuid_r... yes
checking for gethostbyname_r... no
checking whether strerror_r returns int... yes
checking for main in -lm... yes
checking for library containing setproctitle... no
checking for library containing dlopen... none required
checking for library containing socket... none required
checking for library containing shl_load... no
checking for library containing getopt_long... none required
checking for library containing crypt... none required
checking for library containing shm_open... none required
checking for library containing shm_unlink... none required
checking for library containing clock_gettime... none required
checking for library containing fdatasync... none required
checking for library containing sched_yield... none required
checking for library containing gethostbyname_r... no
checking for library containing shmget... none required
checking for library containing readline... -lreadline
checking for inflate in -lz... yes
checking for CRYPTO_new_ex_data in -lcrypto... no
configure: error: library 'crypto' is required for OpenSSL
ERROR: Failed to install some asdf tools.
make: *** [bootstrap] Error 1
Proposal (optional)
Consider specifying first and second order dependencies for the product somewhere in the documentation. Consider also if older versions of openssl need to be linked and/or virtual environments need to be created in order to use older dependencies.
Environment (optional)
- Operating system name:
──── ─ uname -a ~/git-files/gitlab-development-kit [main]
Darwin Gregs-MBP.lan 21.1.0 Darwin Kernel Version 21.1.0: Wed Oct 13 17:33:01 PDT 2021; root:xnu-8019.41.5~1/RELEASE_ARM64_T6000 arm64
- Architecture:
arm64
- The contents of your
gdk.yml
: none - Ruby version:
──── ─ ruby --version ~/git-files/gitlab-development-kit [main]
No preset version installed for command ruby
Please install a version by running one of the following:
asdf install ruby 2.7.5
asdf install ruby 3.0.2
asdf install ruby 2.7.4
or add one of the following versions in your config file at /Users/gregalfaro/git-files/gitlab-development-kit/.tool-versions
ruby 2.7.2
ruby 3.0.0
- GDK version:
──── ─ git rev-parse --short HEAD ~/git-files/gitlab-development-kit [main]
a5948144