acassen / keepalived

Keepalived
https://www.keepalived.org
GNU General Public License v2.0
3.89k stars 732 forks source link

Local, non-default OpenSSL install #219

Closed dizzydis closed 8 years ago

dizzydis commented 8 years ago

Is there a way to configure/make/install keepalived using a custom location for openssl? Using keepalived-1.2.19, running on RedHat 6.

I don't have the ability to use root or to install rpms with yum. I've compiled my own openssl to a custom prefix directory and would like keepalived to be able to recognize it.

Running ./configure displays:

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 a BSD-compatible install... /usr/bin/install -c
checking for strip... strip
checking how to run the C preprocessor... gcc -E
checking for grep that handles long lines and -e... /bin/grep
checking for egrep... /bin/grep -E
checking for ANSI C header files... yes
checking for sys/wait.h that is POSIX.1 compatible... 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 fcntl.h usability... yes
checking fcntl.h presence... yes
checking for fcntl.h... yes
checking syslog.h usability... yes
checking syslog.h presence... yes
checking for syslog.h... yes
checking for unistd.h... (cached) yes
checking sys/ioctl.h usability... yes
checking sys/ioctl.h presence... yes
checking for sys/ioctl.h... yes
checking sys/time.h usability... yes
checking sys/time.h presence... yes
checking for sys/time.h... yes
checking openssl/ssl.h usability... no
checking openssl/ssl.h presence... no
checking for openssl/ssl.h... no
configure: error:
  !!! OpenSSL is not properly installed on your system. !!!
  !!! Can not include OpenSSL headers files.            !!!

So I tried editing configure to look in my own location for ssl stuff. I changed line 3741 (ish) to look like this:

3740 LOCAL_SSL=/custom/local/include/openssl
3741 for ac_header in ${LOCAL_SSL}/ssl.h ${LOCAL_SSL}/md5.h ${LOCAL_SSL}/err.h

I got this output:

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 a BSD-compatible install... /usr/bin/install -c
checking for strip... strip
checking how to run the C preprocessor... gcc -E
checking for grep that handles long lines and -e... /bin/grep
checking for egrep... /bin/grep -E
checking for ANSI C header files... yes
checking for sys/wait.h that is POSIX.1 compatible... 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 fcntl.h usability... yes
checking fcntl.h presence... yes
checking for fcntl.h... yes
checking syslog.h usability... yes
checking syslog.h presence... yes
checking for syslog.h... yes
checking for unistd.h... (cached) yes
checking sys/ioctl.h usability... yes
checking sys/ioctl.h presence... yes
checking for sys/ioctl.h... yes
checking sys/time.h usability... yes
checking sys/time.h presence... yes
checking for sys/time.h... yes
checking /custom/local/include/openssl/ssl.h usability... no
checking /custom/local/include/openssl/ssl.h presence... no
checking for /custom/local/include/openssl/ssl.h... no
configure: error:
  !!! OpenSSL is not properly installed on your system. !!!
  !!! Can not include OpenSSL headers files.            !!!

I would imagine at least the "Presence" check would pass as when I run:

(16:30:35)->ls -al /custom/local/include/openssl/ssl.h
-rw-r--r--. 1 ##### ##### 149176 Jan  8 16:14 /custom/local/include/openssl/ssl.h

It's obviously there.

Before I dug any further I figured I'd post here. Numerous google searches have turned up next to nothing so far.

pqarmitage commented 8 years ago

You really need to be editing configure.in or configure.ac (it has recently changed from the latter to the former), and then regenerating the configure file by running autoreconf.

Try adding in configure.in/configure.ac: LOCAL_SSL=/custom/local/include CFLAGS="$CFLAGS -I $LOCAL_SSL" before the AC_CHECK_HEADERS(openssl,...) line

You will also probably need to add LDFLAGS="$LDFLAGS -L/custom/local/lib" or wherever the libraries are installed.

neutrino1 commented 7 years ago

Hi,

FYI I faced the issue as @dayjavid on fedora 20

checking openssl/ssl.h usability... no checking openssl/ssl.h presence... no checking for openssl/ssl.h... no configure: error: !!! OpenSSL is not properly installed on your system. !!! !!! Can not include OpenSSL headers files. !!!

and by installing the package openssl-devel it was resolved "yum install openssl-devel".

pqarmitage commented 7 years ago

You said in your original post that you don't have access to root. If that is the case then you won't be able to run keepalived since it absolutely needs root privileges to work.

pqarmitage commented 7 years ago

I updated the INSTALL file about three months ago so that it now indicates what packages need to be installed for various flavours of Linux in order to build keepalived.

neutrino1 commented 7 years ago

I updated the INSTALL file about three months ago so that it now indicates what packages need to be installed for various flavours of Linux in order to build keepalived.

great, but sorry I was not aware of it

You said in your original post that you don't have access to root. If that is the case then you won't be able to run keepalived since it absolutely needs root privileges to work.

@dayjavid had root issue but I was having the problem even with root access and I was not aware that its due to a missing package, I mistakenly thought that I need to edit Makefile like @dayjavid , but now its solved by installing the missing package

cookie1106 commented 3 years ago

vi /data/keepalived-2.2.0/configure.ac LOCAL_SSL = /usr/local/openssl/include/ CFLAGS = "$ CFLAGS -I $ LOCAL_SSL"

before the AC_CHECK_HEADERS(openssl,...) line

./configure --prefix=/data/keepalived CFLAGS="-I/usr/local/openssl/include" LDFLAGS="-L/usr/local/openssl/lib"

coffeemug01 commented 1 year ago

Hi, I am trying to build keepalived from GIT source.

cat /etc/os-release

NAME="Ubuntu" VERSION="20.04.5 LTS (Focal Fossa)"

openssl version

OpenSSL 1.1.1f 31 Mar 2020

Got the following error while running ./configure

checking openssl/ssl.h presence... no checking for openssl/ssl.h... no configure: error: !!! OpenSSL is not properly installed on your system. !!! !!! Can not include OpenSSL headers files. !!!

Steps tried: Added LOCAL_SSL = /usr/include/openssl/ CFLAGS = "$ CFLAGS -I $ LOCAL_SSL"

in configure.ac

Then run
./configure --prefix=/data/keepalived CFLAGS="-I/usr/include/openssl/" LDFLAGS="-L/usr/include/openssl/"

Still same issue.

Kindly support

nser77 commented 1 year ago

@coffeemug01 seems you are missing ssl.h header files.

Please review the INSTALL file in Keepalived project root directory and based on you flavor install the required packages; then re run 'configure' command.

Regards

coffeemug01 commented 1 year ago

thank you for the input. but ssl.h is available.

..# ll /usr/include/openssl/ssl.h -rw-r--r-- 1 root root 111253 Jul 4 2022 /usr/include/openssl/ssl.h

nser77 commented 1 year ago

@coffeemug01 there is maybe a couple of things that we can try to check.

1

What version of keepalived are you trying to install?

You are using a very old version of openssl (1.1.1f): have you tried to upgrade it?

2

Finally, from source code I see the following section in configure.ac:

dnl ----[ Checks for openssl ]----
# check for openssl headers
NEED_EVP=no
NEED_SSL=no
if test "$enable_vrrp" != no -a \
    "$enable_vrrp_auth" != no; then
  NEED_EVP=yes
fi
if test "$enable_lvs" != no; then
  NEED_EVP=yes
  NEED_SSL=yes
fi
AC_CHECK_HEADERS([openssl/ssl.h openssl/err.h], [],
  [
    if test $NEED_SSL = yes; then
      AC_MSG_ERROR([
  !!! OpenSSL is not properly installed on your system. !!!
  !!! Can not include OpenSSL headers files.            !!!])
    fi
  ])
AC_CHECK_HEADERS([openssl/md5.h openssl/evp.h], [],
  [
    if test $NEED_EVP = yes; then
      AC_MSG_ERROR([
  !!! OpenSSL is not properly installed on your system. !!!
  !!! Can not include OpenSSL EVP headers files.        !!!])
    fi
  ])

In Keepalived 2.2.7, Seems there is a flag to manage openssl at configuration time.

If you don't need LVS module, try to configure keepalived as following:

./configure --disable-lvs

2.1

openssl/err.h must also exist (in my case /usr/include/openssl/err.h)

3

After updating configure.ac, run: autoreconf

pqarmitage commented 1 year ago

@coffeemug01

Then run
./configure --prefix=/data/keepalived CFLAGS="-I/usr/include/openssl/" LDFLAGS="-L/usr/include/openssl/"

--prefix is for specifying where files are installed after they have been built, and does not affect what configure does. LDFLAGS specifies where the library files used by the liker are, in the case of openssl libssl.so, and the default location will be /usr/lib64/libssl.so or /usr/lib/libssl.so. This shouldn't affect configure. CFLAGS should really be CPPFLAGS, since CPPFLAGS is passed to the preprocessor, which is what handles include statements. Since the include statements in keepalived source files are: #include <openssl/ssl.h>" etc., then if the file to be included is /usr/include/openssl/ssl.h the include path needs to be /usr/include, which is almost certainly in your default include path, so you shouldn't need to specify CPPFLAGS="-I /usr/include".

The tests that configure does not only includes checking for the existence of the file, but also that it can compile conftest.c which includes the header file. It could be that the compilation part of the test is failing (I seem to remember that there have been some issues with some versions of openssl in the past).

What I do when I have problems with working out why configure is failing is I run bash -x ./configure >/tmp/configure.log 2>1 and then look at /tmp/configure.log to see exactly what is failing (it will be towards the end).

If you cannot see what is wrong and configure is still failing, then you could post the relevant part of configure.log here and we can have a look at it.

coffeemug01 commented 1 year ago

Thank you for the inputs. I am trying to build the following version Keepalived v2.2.7 (03/06,2023)

I downloaded the latest code from GIT https://github.com/acassen/keepalived

I am using a custom linux Docker container to build keepalived as per the project requirement. The issue happens in that.

The same source code, i tried building in a Ubuntu machine and it built the keeapalived executable after the following steps. 1052 unzip keepalived-master.zip 1053 ls 1054 cd keepalived-master/ 1055 ./autogen.sh 1056 sudo ./autogen.sh 1057 apt-get install autotools-dev 1058 sudo apt-get install autotools-dev 1059 sudo ./autogen.sh 1060 apt-get install automake 1061 sudo apt-get install automake 1062 sudo ./autogen.sh 1063 ./configure 1064 sudo apt-get install build-essential 1065 ./configure 1066 apt-get install openssl libssl-dev 1067 sudo apt-get install openssl libssl-dev 1068 ./configure 1069 make install 1070 make 1071 sudo make install 1072 openssl version

Openssl version remain the same in both the Container and Ubuntu machine. I understand there is some env issue in my container blocking the build. I will debug as per the suggestions and come back on this. thank you.

coffeemug01 commented 1 year ago

Hi, I upgraded openssl version in the container. Code/keepalived-master# openssl version OpenSSL 3.1.0 14 Mar 2023 (Library: OpenSSL 3.1.0 14 Mar 2023)

Keepalived source version v2.2.7 Still the same issue with openssl while running ./configure.

Code/keepalived-master# bash -x ./configure --disable-lvs --prefix=/data/keepalived CPPFLAGS="-I/usr/include/openssl/" LDFLAGS="-L/usr/lib/x86_64-linux-gnu/" >/tmp/configure.log 2>1

Following is the log

checking for a BSD-compatible install... /usr/bin/install -c checking whether build environment is sane... yes checking for a thread-safe mkdir -p... /usr/bin/mkdir -p checking for gawk... gawk checking whether make sets $(MAKE)... yes checking whether make supports nested variables... yes checking whether make supports nested variables... (cached) yes checking for pkg-config... /usr/bin/pkg-config checking pkg-config is at least version 0.9.0... yes 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 /opt/toolchain/bin/x86_64-next-linux-gnu-gcc accepts -g... yes checking for /opt/toolchain/bin/x86_64-next-linux-gnu-gcc option to accept ISO C89... none needed checking whether /opt/toolchain/bin/x86_64-next-linux-gnu-gcc understands -c and -o together... yes checking whether make supports the include directive... yes (GNU style) checking dependency style of /opt/toolchain/bin/x86_64-next-linux-gnu-gcc... gcc3 checking whether make sets $(MAKE)... (cached) yes checking for ranlib... /opt/toolchain/bin/x86_64-next-linux-gnu-ranlib checking for grep that handles long lines and -e... /usr/bin/grep checking whether ln -s works... yes checking for a sed that does not truncate output... /usr/bin/sed checking for strip... /opt/toolchain/bin/x86_64-next-linux-gnu-strip checking for ldd... ldd checking the archiver (/opt/toolchain/bin/x86_64-next-linux-gnu-ar) interface... ar checking msghdr.msg_controllen is size_t... yes checking diagnostic pragmas in functions... yes checking diagnostic push/pop pragmas... yes checking for -Wall... yes checking for -Wextra... yes checking for -Wunused... yes checking for -Wstrict-prototypes... yes checking for -Wabi... no checking for -Wabsolute-value... no checking for -Waddress-of-packed-member... no checking for -Walloca... yes checking for -Walloc-larger-than=4096... no checking for -Walloc-zero... yes checking for -Warith-conversion... no checking for -Warray-bounds=2... yes checking for -Wattribute-alias=2... no checking for -Wbad-function-cast... yes checking for -Wc11-c2x-compat... no checking for -Wcast-align... yes checking for -Wcast-qual... yes checking for -Wchkp... yes checking for -Wdate-time... yes checking for -Wdisabled-optimization... yes checking for -Wdouble-promotion... yes checking for -Wduplicated-branches... yes checking for -Wduplicated-cond... yes checking for -Wfloat-conversion... yes checking for -Wfloat-equal... yes checking for -Wformat-overflow... yes checking for -Wformat-security... no checking for -Wformat-signedness... yes checking for -Wformat-truncation... yes checking for -Wframe-larger-than=5120... yes checking for -Wimplicit-fallthrough=3... yes checking for -Winit-self... yes checking for -Winline... yes checking for -Winvalid-pch... yes checking for -Wjump-misses-init... yes checking for -Wlogical-op... yes checking for -Wmissing-declarations... yes checking for -Wmissing-field-initializers... yes checking for -Wmissing-include-dirs... yes checking for -Wmissing-prototypes... yes checking for -Wnested-externs... yes checking for -Wnormalized... yes checking for -Wnull-dereference... yes checking for -Wold-style-definition... yes checking for -Woverlength-strings... yes checking for -Wpointer-arith... yes checking for -Wredundant-decls... yes checking for -Wshadow... yes checking for -Wshift-overflow=2... yes checking for -Wstack-protector... yes checking for -Wstrict-overflow=4... yes checking for -Wstringop-overflow=2... yes checking for -Wstringop-truncation... yes checking for -Wsuggest-attribute=cold... yes checking for -Wsuggest-attribute=const... no checking for -Wsuggest-attribute=format... yes checking for -Wsuggest-attribute=malloc... yes checking for -Wsuggest-attribute=noreturn... yes checking for -Wsuggest-attribute=pure... yes checking for -Wsync-nand... yes checking for -Wtrampolines... yes checking for -Wundef... yes checking for -Wuninitialized... yes checking for -Wunknown-pragmas... yes checking for -Wunsafe-loop-optimizations... yes checking for -Wunsuffixed-float-constants... yes checking for -Wunused-const-variable=2... yes checking for -Wunused-macros... no checking for -Wvariadic-macros... yes checking for -Wwrite-strings... yes checking for function attribute((error(msg))) support... no checking for function attribute((warn_unused_result)) support... yes checking for PIE support... yes checking for -Wformat -Werror=format-security support... yes checking for -Wp,-D_FORTIFY_SOURCE=2 support... yes checking for -fexceptions support... yes checking for -fstack-protector-strong support... yes checking for --param=ssp-buffer-size=4 support... yes checking for -grecord-gcc-switches support... yes checking for -Wl,-z,relro support... yes checking for -Wl,-z,now support... yes checking for -O2 support... yes CFLAGS=-g -g -O2 -Wall -Wextra -Wunused -Wstrict-prototypes -Walloca -Walloc-zero -Warray-bounds=2 -Wbad-function-cast -Wcast-align -Wcast-qual -Wchkp -Wdate-time -Wdisabled-optimization -Wdouble-promotion -Wduplicated-branches -Wduplicated-cond -Wfloat-conversion -Wfloat-equal -Wformat-overflow -Wformat-signedness -Wformat-truncation -Wframe-larger-than=5120 -Wimplicit-fallthrough=3 -Winit-self -Winline -Winvalid-pch -Wjump-misses-init -Wlogical-op -Wmissing-declarations -Wmissing-field-initializers -Wmissing-include-dirs -Wmissing-prototypes -Wnested-externs -Wnormalized -Wnull-dereference -Wold-style-definition -Woverlength-strings -Wpointer-arith -Wredundant-decls -Wshadow -Wshift-overflow=2 -Wstack-protector -Wstrict-overflow=4 -Wstringop-overflow=2 -Wstringop-truncation -Wsuggest-attribute=cold -Wsuggest-attribute=format -Wsuggest-attribute=malloc -Wsuggest-attribute=noreturn -Wsuggest-attribute=pure -Wsync-nand -Wtrampolines -Wundef -Wuninitialized -Wunknown-pragmas -Wunsafe-loop-optimizations -Wunsuffixed-float-constants -Wunused-const-variable=2 -Wvariadic-macros -Wwrite-strings -fno-strict-aliasing -fPIE -Wformat -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -O2 checking for unaligned memory access... yes checking for unaligned memory access causes warnings... no checking for clock_gettime() requires -lrt... no checking how to run the C preprocessor... /opt/toolchain/bin/x86_64-next-linux-gnu-gcc -E 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 arpa/inet.h usability... yes checking arpa/inet.h presence... yes checking for arpa/inet.h... yes checking fcntl.h usability... yes checking fcntl.h presence... yes checking for fcntl.h... yes checking limits.h usability... yes checking limits.h presence... yes checking for limits.h... yes checking netdb.h usability... yes checking netdb.h presence... yes checking for netdb.h... yes checking netinet/in.h usability... yes checking netinet/in.h presence... yes checking for netinet/in.h... yes checking for stdint.h... (cached) yes checking for stdlib.h... (cached) yes checking for string.h... (cached) yes checking sys/ioctl.h usability... yes checking sys/ioctl.h presence... yes checking for sys/ioctl.h... yes checking sys/param.h usability... yes checking sys/param.h presence... yes checking for sys/param.h... yes checking sys/prctl.h usability... yes checking sys/prctl.h presence... yes checking for sys/prctl.h... yes checking sys/socket.h usability... yes checking sys/socket.h presence... yes checking for sys/socket.h... yes checking sys/time.h usability... yes checking sys/time.h presence... yes checking for sys/time.h... yes checking syslog.h usability... yes checking syslog.h presence... yes checking for syslog.h... yes checking for unistd.h... (cached) yes checking linux/errqueue.h needs sys/time.h... no checking asm/types.h usability... yes checking asm/types.h presence... yes checking for asm/types.h... yes checking linux/ethtool.h usability... yes checking linux/ethtool.h presence... yes checking for linux/ethtool.h... yes checking linux/icmpv6.h usability... yes checking linux/icmpv6.h presence... yes checking for linux/icmpv6.h... yes checking linux/if_ether.h usability... yes checking linux/if_ether.h presence... yes checking for linux/if_ether.h... yes checking linux/if_packet.h usability... yes checking linux/if_packet.h presence... yes checking for linux/if_packet.h... yes checking linux/ip.h usability... yes checking linux/ip.h presence... yes checking for linux/ip.h... yes checking linux/sockios.h usability... yes checking linux/sockios.h presence... yes checking for linux/sockios.h... yes checking linux/types.h usability... yes checking linux/types.h presence... yes checking for linux/types.h... yes checking for linux/fib_rules.h... yes checking for linux/if_addr.h... yes checking for linux/if_link.h... yes checking for linux/if_arp.h... yes checking for stdbool.h that conforms to C99... yes checking for _Bool... yes checking for inline... inline checking for int64_t... yes checking for pid_t... yes checking for size_t... yes checking for uint16_t... yes checking for uint32_t... yes checking for uint64_t... yes checking for uint8_t... yes checking for an ANSI C-conforming const... yes checking vfork.h usability... no checking vfork.h presence... no checking for vfork.h... no checking for fork... yes checking for vfork... yes checking for working fork... yes checking for working vfork... (cached) yes checking for dup2... yes checking for dup3... yes checking for getcwd... yes checking for gettimeofday... yes checking for malloc... yes checking for memmove... yes checking for memset... yes checking for realloc... yes checking for select... yes checking for setenv... yes checking for socket... yes checking for strcasecmp... yes checking for strchr... yes checking for strdup... yes checking for strerror... yes checking for strpbrk... yes checking for strstr... yes checking for strtol... yes checking for strtoul... yes checking for uname... yes checking for vsyslog... yes checking for memfd_create... yes checking whether O_TMPFILE is declared... yes checking whether ETHERTYPE_IPV6 is declared... yes checking whether IPV6_MULTICAST_ALL is declared... no checking openssl/ssl.h usability... no checking openssl/ssl.h presence... no checking for openssl/ssl.h... no checking openssl/err.h usability... no checking openssl/err.h presence... no checking for openssl/err.h... no checking openssl/md5.h usability... no checking openssl/md5.h presence... no checking for openssl/md5.h... no root@9c524442e1d9:

Kindly provide your inputs. thanks.

pqarmitage commented 1 year ago

Apologies, there was an error in the command I asked you to execute. It should be: bash -x ./configure >/tmp/configure.log 2>&1

Please can you run the above and either diagnose the problem from the output or post the relevant output here.

coffeemug01 commented 1 year ago

Thank you. Please find the relevant log here.

coffeemug01 commented 1 year ago

Following are the last lines from the log

nser77 commented 1 year ago

@coffeemug01

Based on this input:

Hi, I upgraded openssl version in the container.

and on this previous comment:

cat /etc/os-release

NAME="Ubuntu" VERSION="20.04.5 LTS (Focal Fossa)"

Have you tried to use the "official" Keepalived Docker Image? Please, take a look to #665.

Anyway, seems you should run:

./configure --disable-dynamic-linking

PD: I don't know if #2052 update #665.

PD2: from #665:

My concern is that keepalived operates quite close to the kernel, significantly more so than most applications, and hence my questions to make sure that it really will work within a Docker environment.

coffeemug01 commented 1 year ago

Thank you for the information.

I downloaded container docker pull osixia/keepalived

Able to build keeoalived after installing necessary packages. Following is the docker container information bash-5.0# cat /etc/os-release NAME="Alpine Linux" ID=alpine VERSION_ID=3.10.3 PRETTY_NAME="Alpine Linux v3.10" HOME_URL="https://alpinelinux.org/" BUG_REPORT_URL="https://bugs.alpinelinux.org/" bash-5.0# openssl version OpenSSL 1.1.1k 25 Mar 2021 bash-5.0#

I tried ./configure --disable-dynamic-linking in my project container, but gave openssl error again. thank you

nser77 commented 1 year ago

Thank you for the information.

I downloaded container docker pull osixia/keepalived

Able to build keeoalived after installing necessary packages. Following is the docker container information bash-5.0# cat /etc/os-release NAME="Alpine Linux" ID=alpine VERSION_ID=3.10.3 PRETTY_NAME="Alpine Linux v3.10" HOME_URL="https://alpinelinux.org/" BUG_REPORT_URL="https://bugs.alpinelinux.org/" bash-5.0# openssl version OpenSSL 1.1.1k 25 Mar 2021 bash-5.0#

I tried ./configure --disable-dynamic-linking in my project container, but gave openssl error again. thank you

I think it's really off-topic now: remember that Keepalived Docker Image is a separate project.

Anyway, working fine for me:

docker run -ti --rm ubuntu /bin/bash

OS version:

PRETTY_NAME="Ubuntu 22.04.2 LTS"
NAME="Ubuntu"
VERSION_ID="22.04"
VERSION="22.04.2 LTS (Jammy Jellyfish)"
VERSION_CODENAME=jammy
ID=ubuntu
ID_LIKE=debian
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
UBUNTU_CODENAME=jammy

Default installed packages with some minimal Keepalived requirements:

Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name                       Version                                 Architecture Description
+++-==========================-=======================================-============-===============================================================================
ii  adduser                    3.118ubuntu5                            all          add and remove users and groups
ii  apt                        2.4.8                                   arm64        commandline package manager
ii  autoconf                   2.71-2                                  all          automatic configure script builder
ii  automake                   1:1.16.5-1.3                            all          Tool for generating GNU Standards-compliant Makefiles
ii  autotools-dev              20220109.1                              all          Update infrastructure for config.{guess,sub} files
ii  base-files                 12ubuntu4.3                             arm64        Debian base system miscellaneous files
ii  base-passwd                3.5.52build1                            arm64        Debian base system master password and group files
ii  bash                       5.1-6ubuntu1                            arm64        GNU Bourne Again SHell
ii  binutils                   2.38-4ubuntu2.1                         arm64        GNU assembler, linker and binary utilities
ii  binutils-aarch64-linux-gnu 2.38-4ubuntu2.1                         arm64        GNU binary utilities, for aarch64-linux-gnu target
ii  binutils-common:arm64      2.38-4ubuntu2.1                         arm64        Common files for the GNU assembler, linker and binary utilities
ii  bsdutils                   1:2.37.2-4ubuntu3                       arm64        basic utilities from 4.4BSD-Lite
ii  build-essential            12.9ubuntu3                             arm64        Informational list of build-essential packages
ii  bzip2                      1.0.8-5build1                           arm64        high-quality block-sorting file compressor - utilities
ii  ca-certificates            20211016ubuntu0.22.04.1                 all          Common CA certificates
ii  coreutils                  8.32-4.1ubuntu1                         arm64        GNU core utilities
ii  cpp                        4:11.2.0-1ubuntu1                       arm64        GNU C preprocessor (cpp)
ii  cpp-11                     11.3.0-1ubuntu1~22.04                   arm64        GNU C preprocessor
ii  dash                       0.5.11+git20210903+057cd650a4ed-3build1 arm64        POSIX-compliant shell
ii  debconf                    1.5.79ubuntu1                           all          Debian configuration management system
ii  debianutils                5.5-1ubuntu2                            arm64        Miscellaneous utilities specific to Debian
ii  diffutils                  1:3.8-0ubuntu2                          arm64        File comparison utilities
ii  dirmngr                    2.2.27-3ubuntu2.1                       arm64        GNU privacy guard - network certificate management service
ii  dpkg                       1.21.1ubuntu2.1                         arm64        Debian package management system
ii  dpkg-dev                   1.21.1ubuntu2.1                         all          Debian package development tools
ii  e2fsprogs                  1.46.5-2ubuntu1.1                       arm64        ext2/ext3/ext4 file system utilities
ii  fakeroot                   1.28-1ubuntu1                           arm64        tool for simulating superuser privileges
ii  findutils                  4.8.0-1ubuntu3                          arm64        utilities for finding files--find, xargs
ii  fontconfig-config          2.13.1-4.2ubuntu5                       all          generic font configuration library - configuration
ii  fonts-dejavu-core          2.37-2build1                            all          Vera font family derivate with additional characters
ii  g++                        4:11.2.0-1ubuntu1                       arm64        GNU C++ compiler
ii  g++-11                     11.3.0-1ubuntu1~22.04                   arm64        GNU C++ compiler
ii  gcc                        4:11.2.0-1ubuntu1                       arm64        GNU C compiler
ii  gcc-11                     11.3.0-1ubuntu1~22.04                   arm64        GNU C compiler
ii  gcc-11-base:arm64          11.3.0-1ubuntu1~22.04                   arm64        GCC, the GNU Compiler Collection (base package)
ii  gcc-12-base:arm64          12.1.0-2ubuntu1~22.04                   arm64        GCC, the GNU Compiler Collection (base package)
ii  git                        1:2.34.1-1ubuntu1.8                     arm64        fast, scalable, distributed revision control system
ii  git-man                    1:2.34.1-1ubuntu1.8                     all          fast, scalable, distributed revision control system (manual pages)
ii  gnupg                      2.2.27-3ubuntu2.1                       all          GNU privacy guard - a free PGP replacement
ii  gnupg-l10n                 2.2.27-3ubuntu2.1                       all          GNU privacy guard - localization files
ii  gnupg-utils                2.2.27-3ubuntu2.1                       arm64        GNU privacy guard - utility programs
ii  gpg                        2.2.27-3ubuntu2.1                       arm64        GNU Privacy Guard -- minimalist public key operations
ii  gpg-agent                  2.2.27-3ubuntu2.1                       arm64        GNU privacy guard - cryptographic agent
ii  gpg-wks-client             2.2.27-3ubuntu2.1                       arm64        GNU privacy guard - Web Key Service client
ii  gpg-wks-server             2.2.27-3ubuntu2.1                       arm64        GNU privacy guard - Web Key Service server
ii  gpgconf                    2.2.27-3ubuntu2.1                       arm64        GNU privacy guard - core configuration utilities
ii  gpgsm                      2.2.27-3ubuntu2.1                       arm64        GNU privacy guard - S/MIME version
ii  gpgv                       2.2.27-3ubuntu2.1                       arm64        GNU privacy guard - signature verification tool
ii  grep                       3.7-1build1                             arm64        GNU grep, egrep and fgrep
ii  gzip                       1.10-4ubuntu4.1                         arm64        GNU compression utilities
ii  hostname                   3.23ubuntu2                             arm64        utility to set/show the host name or domain name
ii  init-system-helpers        1.62                                    all          helper tools for all init systems
ii  less                       590-1ubuntu0.22.04.1                    arm64        pager program similar to more
ii  libacl1:arm64              2.3.1-1                                 arm64        access control list - shared library
ii  libalgorithm-diff-perl     1.201-1                                 all          module to find differences between files
ii  libalgorithm-diff-xs-perl  0.04-6build3                            arm64        module to find differences between files (XS accelerated)
ii  libalgorithm-merge-perl    0.08-3                                  all          Perl module for three-way merge of textual data
ii  libapt-pkg6.0:arm64        2.4.8                                   arm64        package management runtime library
ii  libasan6:arm64             11.3.0-1ubuntu1~22.04                   arm64        AddressSanitizer -- a fast memory error detector
ii  libassuan0:arm64           2.5.5-1build1                           arm64        IPC library for the GnuPG components
ii  libatomic1:arm64           12.1.0-2ubuntu1~22.04                   arm64        support library providing __atomic built-in functions
ii  libattr1:arm64             1:2.5.1-1build1                         arm64        extended attribute handling - shared library
ii  libaudit-common            1:3.0.7-1build1                         all          Dynamic library for security auditing - common files
ii  libaudit1:arm64            1:3.0.7-1build1                         arm64        Dynamic library for security auditing
ii  libbinutils:arm64          2.38-4ubuntu2.1                         arm64        GNU binary utilities (private shared library)
ii  libblkid1:arm64            2.37.2-4ubuntu3                         arm64        block device ID library
ii  libbrotli1:arm64           1.0.9-2build6                           arm64        library implementing brotli encoder and decoder (shared libraries)
ii  libbsd0:arm64              0.11.5-1                                arm64        utility functions from BSD systems - shared library
ii  libbz2-1.0:arm64           1.0.8-5build1                           arm64        high-quality block-sorting file compressor library - runtime
ii  libc-bin                   2.35-0ubuntu3.1                         arm64        GNU C Library: Binaries
ii  libc-dev-bin               2.35-0ubuntu3.1                         arm64        GNU C Library: Development binaries
ii  libc-devtools              2.35-0ubuntu3.1                         arm64        GNU C Library: Development tools
ii  libc6:arm64                2.35-0ubuntu3.1                         arm64        GNU C Library: Shared libraries
ii  libc6-dev:arm64            2.35-0ubuntu3.1                         arm64        GNU C Library: Development Libraries and Header Files
ii  libcap-ng0:arm64           0.7.9-2.2build3                         arm64        An alternate POSIX capabilities library
ii  libcap2:arm64              1:2.44-1build3                          arm64        POSIX 1003.1e capabilities (library)
ii  libcbor0.8:arm64           0.8.0-2ubuntu1                          arm64        library for parsing and generating CBOR (RFC 7049)
ii  libcc1-0:arm64             12.1.0-2ubuntu1~22.04                   arm64        GCC cc1 plugin for GDB
ii  libcom-err2:arm64          1.46.5-2ubuntu1.1                       arm64        common error description library
ii  libcrypt-dev:arm64         1:4.4.27-1                              arm64        libcrypt development files
ii  libcrypt1:arm64            1:4.4.27-1                              arm64        libcrypt shared library
ii  libctf-nobfd0:arm64        2.38-4ubuntu2.1                         arm64        Compact C Type Format library (runtime, no BFD dependency)
ii  libctf0:arm64              2.38-4ubuntu2.1                         arm64        Compact C Type Format library (runtime, BFD dependency)
ii  libcurl3-gnutls:arm64      7.81.0-1ubuntu1.10                      arm64        easy-to-use client-side URL transfer library (GnuTLS flavour)
ii  libdb5.3:arm64             5.3.28+dfsg1-0.8ubuntu3                 arm64        Berkeley v5.3 Database Libraries [runtime]
ii  libdebconfclient0:arm64    0.261ubuntu1                            arm64        Debian Configuration Management System (C-implementation library)
ii  libdeflate0:arm64          1.10-2                                  arm64        fast, whole-buffer DEFLATE-based compression and decompression
ii  libdpkg-perl               1.21.1ubuntu2.1                         all          Dpkg perl modules
ii  libedit2:arm64             3.1-20210910-1build1                    arm64        BSD editline and history libraries
ii  liberror-perl              0.17029-1                               all          Perl module for error/exception handling in an OO-ish way
ii  libexpat1:arm64            2.4.7-1ubuntu0.2                        arm64        XML parsing C library - runtime library
ii  libext2fs2:arm64           1.46.5-2ubuntu1.1                       arm64        ext2/ext3/ext4 file system libraries
ii  libfakeroot:arm64          1.28-1ubuntu1                           arm64        tool for simulating superuser privileges - shared libraries
ii  libffi8:arm64              3.4.2-4                                 arm64        Foreign Function Interface library runtime
ii  libfido2-1:arm64           1.10.0-1                                arm64        library for generating and verifying FIDO 2.0 objects
ii  libfile-fcntllock-perl     0.22-3build7                            arm64        Perl module for file locking with fcntl(2)
ii  libfontconfig1:arm64       2.13.1-4.2ubuntu5                       arm64        generic font configuration library - runtime
ii  libfreetype6:arm64         2.11.1+dfsg-1ubuntu0.1                  arm64        FreeType 2 font engine, shared library files
ii  libgcc-11-dev:arm64        11.3.0-1ubuntu1~22.04                   arm64        GCC support library (development files)
ii  libgcc-s1:arm64            12.1.0-2ubuntu1~22.04                   arm64        GCC support library
ii  libgcrypt20:arm64          1.9.4-3ubuntu3                          arm64        LGPL Crypto library - runtime library
ii  libgd3:arm64               2.3.0-2ubuntu2                          arm64        GD Graphics Library
ii  libgdbm-compat4:arm64      1.23-1                                  arm64        GNU dbm database routines (legacy support runtime version)
ii  libgdbm6:arm64             1.23-1                                  arm64        GNU dbm database routines (runtime version)
ii  libglib2.0-0:arm64         2.72.4-0ubuntu1                         arm64        GLib library of C routines
ii  libglib2.0-data            2.72.4-0ubuntu1                         all          Common files for GLib library
ii  libgmp10:arm64             2:6.2.1+dfsg-3ubuntu1                   arm64        Multiprecision arithmetic library
ii  libgnutls30:arm64          3.7.3-4ubuntu1.2                        arm64        GNU TLS library - main runtime library
ii  libgomp1:arm64             12.1.0-2ubuntu1~22.04                   arm64        GCC OpenMP (GOMP) support library
ii  libgpg-error0:arm64        1.43-3                                  arm64        GnuPG development runtime library
ii  libgssapi-krb5-2:arm64     1.19.2-2ubuntu0.1                       arm64        MIT Kerberos runtime libraries - krb5 GSS-API Mechanism
ii  libhogweed6:arm64          3.7.3-1build2                           arm64        low level cryptographic library (public-key cryptos)
ii  libhwasan0:arm64           12.1.0-2ubuntu1~22.04                   arm64        AddressSanitizer -- a fast memory error detector
ii  libicu70:arm64             70.1-2                                  arm64        International Components for Unicode
ii  libidn2-0:arm64            2.3.2-2build1                           arm64        Internationalized domain names (IDNA2008/TR46) library
ii  libip4tc-dev:arm64         1.8.7-1ubuntu5                          arm64        Development files for libip4tc
ii  libip4tc2:arm64            1.8.7-1ubuntu5                          arm64        netfilter libip4tc library
ii  libip6tc-dev:arm64         1.8.7-1ubuntu5                          arm64        Development files for libip6tc
ii  libip6tc2:arm64            1.8.7-1ubuntu5                          arm64        netfilter libip6tc library
ii  libipset-dev:arm64         7.15-1build1                            arm64        development files for IP sets
ii  libipset13:arm64           7.15-1build1                            arm64        library for IP sets
ii  libisl23:arm64             0.24-2build1                            arm64        manipulating sets and relations of integer points bounded by linear constraints
ii  libitm1:arm64              12.1.0-2ubuntu1~22.04                   arm64        GNU Transactional Memory Library
ii  libjbig0:arm64             2.1-3.1ubuntu0.22.04.1                  arm64        JBIGkit libraries
ii  libjpeg-turbo8:arm64       2.1.2-0ubuntu1                          arm64        IJG JPEG compliant runtime library.
ii  libjpeg8:arm64             8c-2ubuntu10                            arm64        Independent JPEG Group's JPEG runtime library (dependency package)
ii  libk5crypto3:arm64         1.19.2-2ubuntu0.1                       arm64        MIT Kerberos runtime libraries - Crypto Library
ii  libkeyutils1:arm64         1.6.1-2ubuntu3                          arm64        Linux Key Management Utilities (library)
ii  libkrb5-3:arm64            1.19.2-2ubuntu0.1                       arm64        MIT Kerberos runtime libraries
ii  libkrb5support0:arm64      1.19.2-2ubuntu0.1                       arm64        MIT Kerberos runtime libraries - Support library
ii  libksba8:arm64             1.6.0-2ubuntu0.2                        arm64        X.509 and CMS support library
ii  libldap-2.5-0:arm64        2.5.14+dfsg-0ubuntu0.22.04.1            arm64        OpenLDAP libraries
ii  libldap-common             2.5.14+dfsg-0ubuntu0.22.04.1            all          OpenLDAP common files for libraries
ii  liblocale-gettext-perl     1.07-4build3                            arm64        module using libc functions for internationalization in Perl
ii  liblsan0:arm64             12.1.0-2ubuntu1~22.04                   arm64        LeakSanitizer -- a memory leak detector (runtime)
ii  liblz4-1:arm64             1.9.3-2build2                           arm64        Fast LZ compression algorithm library - runtime
ii  liblzma5:arm64             5.2.5-2ubuntu1                          arm64        XZ-format compression library
ii  libmd0:arm64               1.0.4-1build1                           arm64        message digest functions from BSD systems - shared library
ii  libmnl-dev:arm64           1.0.4-3build2                           arm64        minimalistic Netlink communication library (devel)
ii  libmnl0:arm64              1.0.4-3build2                           arm64        minimalistic Netlink communication library
ii  libmount1:arm64            2.37.2-4ubuntu3                         arm64        device mounting library
ii  libmpc3:arm64              1.2.1-2build1                           arm64        multiple precision complex floating-point library
ii  libmpfr6:arm64             4.1.0-3build3                           arm64        multiple precision floating-point computation
ii  libncurses6:arm64          6.3-2                                   arm64        shared libraries for terminal handling
ii  libncursesw6:arm64         6.3-2                                   arm64        shared libraries for terminal handling (wide character support)
ii  libnettle8:arm64           3.7.3-1build2                           arm64        low level cryptographic library (symmetric and one-way cryptos)
ii  libnghttp2-14:arm64        1.43.0-1build3                          arm64        library implementing HTTP/2 protocol (shared library)
ii  libnl-3-200:arm64          3.5.0-0.1                               arm64        library for dealing with netlink sockets
ii  libnl-3-dev:arm64          3.5.0-0.1                               arm64        development library and headers for libnl-3
ii  libnl-genl-3-200:arm64     3.5.0-0.1                               arm64        library for dealing with netlink sockets - generic netlink
ii  libnl-genl-3-dev:arm64     3.5.0-0.1                               arm64        development library and headers for libnl-genl-3
ii  libnpth0:arm64             1.6-3build2                             arm64        replacement for GNU Pth using system threads
ii  libnsl-dev:arm64           1.3.0-2build2                           arm64        libnsl development files
ii  libnsl2:arm64              1.3.0-2build2                           arm64        Public client interface for NIS(YP) and NIS+
ii  libp11-kit0:arm64          0.24.0-6build1                          arm64        library for loading and coordinating access to PKCS#11 modules - runtime
ii  libpam-modules:arm64       1.4.0-11ubuntu2.3                       arm64        Pluggable Authentication Modules for PAM
ii  libpam-modules-bin         1.4.0-11ubuntu2.3                       arm64        Pluggable Authentication Modules for PAM - helper binaries
ii  libpam-runtime             1.4.0-11ubuntu2.3                       all          Runtime support for the PAM library
ii  libpam0g:arm64             1.4.0-11ubuntu2.3                       arm64        Pluggable Authentication Modules library
ii  libpcre2-8-0:arm64         10.39-3ubuntu0.1                        arm64        New Perl Compatible Regular Expression Library- 8 bit runtime files
ii  libpcre3:arm64             2:8.39-13ubuntu0.22.04.1                arm64        Old Perl 5 Compatible Regular Expression Library - runtime files
ii  libperl5.34:arm64          5.34.0-3ubuntu1.1                       arm64        shared Perl library
ii  libpng16-16:arm64          1.6.37-3build5                          arm64        PNG library - runtime (version 1.6)
ii  libprocps8:arm64           2:3.3.17-6ubuntu2                       arm64        library for accessing process information from /proc
ii  libpsl5:arm64              0.21.0-1.2build2                        arm64        Library for Public Suffix List (shared libraries)
ii  libreadline8:arm64         8.1.2-1                                 arm64        GNU readline and history libraries, run-time libraries
ii  librtmp1:arm64             2.4+20151223.gitfa8646d.1-2build4       arm64        toolkit for RTMP streams (shared library)
ii  libsasl2-2:arm64           2.1.27+dfsg2-3ubuntu1.2                 arm64        Cyrus SASL - authentication abstraction library
ii  libsasl2-modules:arm64     2.1.27+dfsg2-3ubuntu1.2                 arm64        Cyrus SASL - pluggable authentication modules
ii  libsasl2-modules-db:arm64  2.1.27+dfsg2-3ubuntu1.2                 arm64        Cyrus SASL - pluggable authentication modules (DB)
ii  libseccomp2:arm64          2.5.3-2ubuntu2                          arm64        high level interface to Linux seccomp filter
ii  libselinux1:arm64          3.3-1build2                             arm64        SELinux runtime shared libraries
ii  libsemanage-common         3.3-1build2                             all          Common files for SELinux policy management libraries
ii  libsemanage2:arm64         3.3-1build2                             arm64        SELinux policy management library
ii  libsepol2:arm64            3.3-1build1                             arm64        SELinux library for manipulating binary security policies
ii  libsigsegv2:arm64          2.13-1ubuntu3                           arm64        Library for handling page faults in a portable way
ii  libsmartcols1:arm64        2.37.2-4ubuntu3                         arm64        smart column output alignment library
ii  libsqlite3-0:arm64         3.37.2-2ubuntu0.1                       arm64        SQLite 3 shared library
ii  libss2:arm64               1.46.5-2ubuntu1.1                       arm64        command-line interface parsing library
ii  libssh-4:arm64             0.9.6-2build1                           arm64        tiny C SSH library (OpenSSL flavor)
ii  libssl-dev:arm64           3.0.2-0ubuntu1.8                        arm64        Secure Sockets Layer toolkit - development files
ii  libssl3:arm64              3.0.2-0ubuntu1.8                        arm64        Secure Sockets Layer toolkit - shared libraries
ii  libstdc++-11-dev:arm64     11.3.0-1ubuntu1~22.04                   arm64        GNU Standard C++ Library v3 (development files)
ii  libstdc++6:arm64           12.1.0-2ubuntu1~22.04                   arm64        GNU Standard C++ Library v3
ii  libsystemd0:arm64          249.11-0ubuntu3.7                       arm64        systemd utility library
ii  libtasn1-6:arm64           4.18.0-4build1                          arm64        Manage ASN.1 structures (runtime)
ii  libtiff5:arm64             4.3.0-6ubuntu0.4                        arm64        Tag Image File Format (TIFF) library
ii  libtinfo6:arm64            6.3-2                                   arm64        shared low-level terminfo library for terminal handling
ii  libtirpc-common            1.3.2-2ubuntu0.1                        all          transport-independent RPC library - common files
ii  libtirpc-dev:arm64         1.3.2-2ubuntu0.1                        arm64        transport-independent RPC library - development files
ii  libtirpc3:arm64            1.3.2-2ubuntu0.1                        arm64        transport-independent RPC library
ii  libtsan0:arm64             11.3.0-1ubuntu1~22.04                   arm64        ThreadSanitizer -- a Valgrind-based detector of data races (runtime)
ii  libubsan1:arm64            12.1.0-2ubuntu1~22.04                   arm64        UBSan -- undefined behaviour sanitizer (runtime)
ii  libudev1:arm64             249.11-0ubuntu3.7                       arm64        libudev shared library
ii  libunistring2:arm64        1.0-1                                   arm64        Unicode string library for C
ii  libuuid1:arm64             2.37.2-4ubuntu3                         arm64        Universally Unique ID library
ii  libwebp7:arm64             1.2.2-2                                 arm64        Lossy compression of digital photographic images
ii  libx11-6:arm64             2:1.7.5-1                               arm64        X11 client-side library
ii  libx11-data                2:1.7.5-1                               all          X11 client-side library
ii  libxau6:arm64              1:1.0.9-1build5                         arm64        X11 authorisation library
ii  libxcb1:arm64              1.14-3ubuntu3                           arm64        X C Binding
ii  libxdmcp6:arm64            1:1.1.3-0ubuntu5                        arm64        X11 Display Manager Control Protocol library
ii  libxext6:arm64             2:1.3.4-1build1                         arm64        X11 miscellaneous extension library
ii  libxml2:arm64              2.9.13+dfsg-1ubuntu0.2                  arm64        GNOME XML library
ii  libxmuu1:arm64             2:1.1.3-3                               arm64        X11 miscellaneous micro-utility library
ii  libxpm4:arm64              1:3.5.12-1ubuntu0.22.04.1               arm64        X11 pixmap library
ii  libxtables-dev:arm64       1.8.7-1ubuntu5                          arm64        netfilter xtables library -- development files
ii  libxtables12:arm64         1.8.7-1ubuntu5                          arm64        netfilter xtables library
ii  libxxhash0:arm64           0.8.1-1                                 arm64        shared library for xxhash
ii  libzstd1:arm64             1.4.8+dfsg-3build1                      arm64        fast lossless compression algorithm
ii  linux-libc-dev:arm64       5.15.0-69.76                            arm64        Linux Kernel Headers for development
ii  login                      1:4.8.1-2ubuntu2.1                      arm64        system login tools
ii  logsave                    1.46.5-2ubuntu1.1                       arm64        save the output of a command in a log file
ii  lsb-base                   11.1.0ubuntu4                           all          Linux Standard Base init script functionality
ii  lto-disabled-list          24                                      all          list of packages not to build with LTO
ii  m4                         1.4.18-5ubuntu2                         arm64        macro processing language
ii  make                       4.3-4.1build1                           arm64        utility for directing compilation
ii  manpages                   5.10-1ubuntu1                           all          Manual pages about using a GNU/Linux system
ii  manpages-dev               5.10-1ubuntu1                           all          Manual pages about using GNU/Linux for development
ii  mawk                       1.3.4.20200120-3                        arm64        Pattern scanning and text processing language
ii  mount                      2.37.2-4ubuntu3                         arm64        tools for mounting and manipulating filesystems
ii  ncurses-base               6.3-2                                   all          basic terminal type definitions
ii  ncurses-bin                6.3-2                                   arm64        terminal-related programs and man pages
ii  netbase                    6.3                                     all          Basic TCP/IP networking system
ii  openssh-client             1:8.9p1-3ubuntu0.1                      arm64        secure shell (SSH) client, for secure access to remote machines
ii  openssl                    3.0.2-0ubuntu1.8                        arm64        Secure Sockets Layer toolkit - cryptographic utility
ii  passwd                     1:4.8.1-2ubuntu2.1                      arm64        change and administer password and group data
ii  patch                      2.7.6-7build2                           arm64        Apply a diff file to an original
ii  perl                       5.34.0-3ubuntu1.1                       arm64        Larry Wall's Practical Extraction and Report Language
ii  perl-base                  5.34.0-3ubuntu1.1                       arm64        minimal Perl system
ii  perl-modules-5.34          5.34.0-3ubuntu1.1                       all          Core Perl modules
ii  pinentry-curses            1.1.1-1build2                           arm64        curses-based PIN or pass-phrase entry dialog for GnuPG
ii  pkg-config                 0.29.2-1ubuntu3                         arm64        manage compile and link flags for libraries
ii  procps                     2:3.3.17-6ubuntu2                       arm64        /proc file system utilities
ii  publicsuffix               20211207.1025-1                         all          accurate, machine-readable list of domain name suffixes
ii  readline-common            8.1.2-1                                 all          GNU readline and history libraries, common files
ii  rpcsvc-proto               1.4.2-0ubuntu6                          arm64        RPC protocol compiler and definitions
ii  sed                        4.8-1ubuntu2                            arm64        GNU stream editor for filtering/transforming text
ii  sensible-utils             0.0.17                                  all          Utilities for sensible alternative selection
ii  shared-mime-info           2.1-2                                   arm64        FreeDesktop.org shared MIME database and spec
ii  sysvinit-utils             3.01-1ubuntu1                           arm64        System-V-like utilities
ii  tar                        1.34+dfsg-1ubuntu0.1.22.04.1            arm64        GNU version of the tar archiving utility
ii  ubuntu-keyring             2021.03.26                              all          GnuPG keys of the Ubuntu archive
ii  ucf                        3.0043                                  all          Update Configuration File(s): preserve user changes to config files
ii  usrmerge                   25ubuntu2                               all          Convert the system to the merged /usr directories scheme
ii  util-linux                 2.37.2-4ubuntu3                         arm64        miscellaneous system utilities
ii  xauth                      1:1.1-1build2                           arm64        X authentication utility
ii  xdg-user-dirs              0.17-2ubuntu4                           arm64        tool to manage well known user directories
ii  xz-utils                   5.2.5-2ubuntu1                          arm64        XZ-format compression utilities
ii  zlib1g:arm64               1:1.2.11.dfsg-2ubuntu9.2                arm64        compression library - runtime

Result of ./configure:

Keepalived configuration
------------------------
Keepalived version       : 2.2.7
Compiler                 : gcc gcc (Ubuntu 11.3.0-1ubuntu1~22.04) 11.3.0
Preprocessor flags       : -D_GNU_SOURCE -I/usr/include/libnl3
Compiler flags           : -g -g -O2 -Wall -Wextra -Wunused -Wstrict-prototypes -Wabsolute-value -Waddress-of-packed-member -Walloca -Walloc-zero -Warith-conversion -Warray-bounds=2 -Wattribute-alias=2 -Wbad-function-cast -Wc11-c2x-compat -Wcast-align -Wcast-qual -Wdate-time -Wdisabled-optimization -Wdouble-promotion -Wduplicated-branches -Wduplicated-cond -Wfloat-conversion -Wfloat-equal -Wformat-overflow -Wformat-security -Wformat-signedness -Wformat-truncation -Wframe-larger-than=5120 -Wimplicit-fallthrough=3 -Winit-self -Winline -Winvalid-pch -Wjump-misses-init -Wlogical-op -Wmissing-declarations -Wmissing-field-initializers -Wmissing-include-dirs -Wmissing-prototypes -Wnested-externs -Wnormalized -Wnull-dereference -Wold-style-definition -Woverlength-strings -Wpointer-arith -Wredundant-decls -Wshadow -Wshift-overflow=2 -Wstack-protector -Wstrict-overflow=4 -Wstringop-overflow=2 -Wstringop-truncation -Wsuggest-attribute=cold -Wsuggest-attribute=format -Wsuggest-attribute=malloc -Wsuggest-attribute=noreturn -Wsuggest-attribute=pure -Wsync-nand -Wtrampolines -Wundef -Wuninitialized -Wunknown-pragmas -Wunsafe-loop-optimizations -Wunsuffixed-float-constants -Wunused-const-variable=2 -Wvariadic-macros -Wwrite-strings -fno-strict-aliasing -fPIE -Wformat -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -O2
Linker flags             : -pie -Wl,-z,relro -Wl,-z,now
Extra Lib                : -lm -lssl -lcrypto -lnl-3 -lnl-genl-3 -lip4tc -lip6tc -ldl
Use IPVS Framework       : Yes
IPVS use libnl           : Yes
IPVS syncd attributes    : Yes
IPVS 64 bit stats        : Yes
HTTP_GET regex support   : No
fwmark socket support    : Yes
Use VRRP Framework       : Yes
Use VRRP VMAC            : Yes
Use VRRP authentication  : Yes
With track_process       : Yes
With linkbeat            : Yes
Use NetworkManager       : No
Use BFD Framework        : No
SNMP vrrp support        : No
SNMP checker support     : No
SNMP RFCv2 support       : No
SNMP RFCv3 support       : No
DBUS support             : No
Use JSON output          : No
libnl version            : 3
Use IPv4 devconf         : Yes
Use iptables             : Yes
Use libipset             : Yes
Use nftables             : No
init type                : systemd
systemd notify           : No
Strict config checks     : No
Build documentation      : No
Default runtime options  : -D

Keepalived version:

Keepalived v2.2.7 (03/06,2023), git commit v2.2.7-133-g0272f43a

Copyright(C) 2001-2023 Alexandre Cassen, <acassen@gmail.com>

Built with kernel headers for Linux 5.15.87
Running on Linux 5.15.0-1025-raspi #27-Ubuntu SMP PREEMPT Thu Feb 16 17:09:55 UTC 2023
Distro: Ubuntu 22.04.2 LTS

configure options:

Config options:  LIBIPSET_DYNAMIC LVS VRRP VRRP_AUTH VRRP_VMAC OLD_CHKSUM_COMPAT INIT=systemd

System options:  VSYSLOG MEMFD_CREATE IPV6_MULTICAST_ALL IPV4_DEVCONF LIBNL3 RTA_ENCAP RTA_EXPIRES RTA_NEWDST RTA_PREF FRA_SUPPRESS_PREFIXLEN FRA_SUPPRESS_IFGROUP FRA_TUN_ID RTAX_CC_ALGO RTAX_QUICKACK RTEXT_FILTER_SKIP_STATS FRA_L3MDEV FRA_UID_RANGE RTAX_FASTOPEN_NO_COOKIE RTA_VIA FRA_PROTOCOL FRA_IP_PROTO FRA_SPORT_RANGE FRA_DPORT_RANGE RTA_TTL_PROPAGATE IFA_FLAGS LWTUNNEL_ENCAP_MPLS LWTUNNEL_ENCAP_ILA IPTABLES NET_LINUX_IF_H_COLLISION LIBIPVS_NETLINK IPVS_DEST_ATTR_ADDR_FAMILY IPVS_SYNCD_ATTRIBUTES IPVS_64BIT_STATS IPVS_TUN_TYPE IPVS_TUN_CSUM IPVS_TUN_GRE VRRP_IPVLAN IFLA_LINK_NETNSID GLOB_BRACE GLOB_ALTDIRFUNC INET6_ADDR_GEN_MODE VRF SO_MARK
coffeemug01 commented 1 year ago

Thank you for your information. I am working on a conan project to build keepalived which uses the project docker container to build the executable. I understand this is an environment issue. I downloaded 3.0.4-1 openssl version and run the following command in my conan project. self.run("./configure CPPFLAGS=-I{ssl_dir}/include/ LDFLAGS=-L{ssl_dir}/lib/".format(ssl_dir=openssl_strbuf.getvalue().rstrip("\n")))

setting latest openssl paths explicitly. Then the error was different.

checking openssl/ssl.h presence... yes checking for openssl/ssl.h... yes checking openssl/err.h usability... yes checking openssl/err.h presence... yes checking for openssl/err.h... yes checking openssl/md5.h usability... yes checking openssl/md5.h presence... yes checking for openssl/md5.h... yes checking openssl/evp.h usability... yes checking openssl/evp.h presence... yes checking for openssl/evp.h... yes checking for EVP_DigestInit_ex in -lcrypto... no configure: error: OpenSSL EVP libraries are required

Can you please suggest what may be the reason for this error? thanks

coffeemug01 commented 1 year ago

Thank you for your information. I am working on a conan project to build keepalived which uses the project docker container to build the executable. I understand this is an environment issue. I downloaded 3.0.4-1 openssl version and run the following command in my conan project. self.run("./configure CPPFLAGS=-I{ssl_dir}/include/ LDFLAGS=-L{ssl_dir}/lib/".format(ssl_dir=openssl_strbuf.getvalue().rstrip("\n")))

setting latest openssl paths explicitly. Then the error was different.

checking openssl/ssl.h presence... yes checking for openssl/ssl.h... yes checking openssl/err.h usability... yes checking openssl/err.h presence... yes checking for openssl/err.h... yes checking openssl/md5.h usability... yes checking openssl/md5.h presence... yes checking for openssl/md5.h... yes checking openssl/evp.h usability... yes checking openssl/evp.h presence... yes checking for openssl/evp.h... yes checking for EVP_DigestInit_ex in -lcrypto... no configure: error: OpenSSL EVP libraries are required

Can you please suggest what may be the reason for this error? thanks

This issue is solved by using AutoToolsBuildEnvironment() in conan project file. autotools = AutoToolsBuildEnvironment(self) autotools.configure() Also default_options = {"openssl:shared":True}

thank you.