Hello,

trying to compile opensmtp it fails with openssl errors, so I've tried to specify --without-libssl at configure time, as at least for testing and learning the basics it is not really that important, but it does not seem to get honored.

Any idea, what I may have to change?

Thanks

Ede



In case anybody has an idea for building with openssl, here are the final words of the compiler:


# gcc --version
gcc (Gentoo 8.3.0-r1 p1.1) 8.3.0

# openssl version
OpenSSL 1.1.1c  28 May 2019



...

gcc -DHAVE_CONFIG_H -I. -I.. -I../smtpd -I../openbsd-compat -I../openbsd-compat/err_h -I/usr/include -mtune=skylake -march=skylake -fomit-frame-pointer -O2 -pipe -fPIC -DPIC -Wall -Wpointer-arith -Wuninitialized -Wsign-compare -Wformat-security -Wsizeof-pointer-memaccess -Wno-pointer-sign -Wno-unused-result -fno-strict-aliasing -fno-builtin-memset -fPIE -D_BSD_SOURCE -D_DEFAULT_SOURCE -c -o fmt_scaled.o fmt_scaled.c
fmt_scaled.c: In function 'fmt_scaled':
fmt_scaled.c:243:52: warning: '%1lld' directive output may be truncated writing between 1 and 17 bytes into a region of size between 0 and 5 [-Wformat-truncation=]
   (void)snprintf(result, FMT_SCALED_STRSIZE, "%lld.%1lld%c",
                                                    ^~~~~
fmt_scaled.c:243:46: note: directive argument in the range [-9007199254740991, 9007199254740991]
   (void)snprintf(result, FMT_SCALED_STRSIZE, "%lld.%1lld%c",
                                              ^~~~~~~~~~~~~~
In file included from /usr/include/stdio.h:867,
                 from openbsd-compat.h:189,
                 from includes.h:67,
                 from fmt_scaled.c:41:
/usr/include/bits/stdio2.h:67:10: note: '__builtin___snprintf_chk' output between 5 and 40 bytes into a destination of size 7
   return __builtin___snprintf_chk (__s, __n, __USE_FORTIFY_LEVEL - 1,
          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        __bos (__s), __fmt, __va_arg_pack ());
        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
gcc -DHAVE_CONFIG_H -I. -I.. -I../smtpd -I../openbsd-compat -I../openbsd-compat/err_h -I/usr/include -mtune=skylake -march=skylake -fomit-frame-pointer -O2 -pipe -fPIC -DPIC -Wall -Wpointer-arith -Wuninitialized -Wsign-compare -Wformat-security -Wsizeof-pointer-memaccess -Wno-pointer-sign -Wno-unused-result -fno-strict-aliasing -fno-builtin-memset -fPIE -D_BSD_SOURCE -D_DEFAULT_SOURCE -c -o fparseln.o fparseln.c
rm -f libopenbsd-compat.a
/usr/bin/ar cru libopenbsd-compat.a base64.o bsd-getpeereid.o bsd-misc.o bsd-waitpid.o entropy.o event_asr_run.o fgetln.o freezero.o getopt.o imsg.o imsg-buffer.o pidfile.o pw_dup.o reallocarray.o recallocarray.o setproctitle.o setresguid.o strlcat.o strlcpy.o strmode.o strtonum.o strsep.o vis.o xmalloc.o crypt_checkpass.o bsd-closefrom.o bsd-err.o errc.o fmt_scaled.o fparseln.o
ranlib libopenbsd-compat.a
make[2]: Leaving directory '/root/build/opensmtpd-6.4.2p1/openbsd-compat'
Making all in mk
make[2]: Entering directory '/root/build/opensmtpd-6.4.2p1/mk'
Making all in smtpd
make[3]: Entering directory '/root/build/opensmtpd-6.4.2p1/mk/smtpd'
gcc -DHAVE_CONFIG_H -I. -I../.. -I../../smtpd -I../../openbsd-compat -I../../openbsd-compat/err_h -I../../openbsd-compat/paths_h -I. -I/usr/include -DSMTPD_CONFDIR=\"/opt/smptd/etc\" -DPATH_CHROOT=\"/opt/smptd/var/empty\" -DPATH_SMTPCTL=\"/opt/smptd/sbin/smtpctl\" -DPATH_MAILLOCAL=\"/opt/smptd/libexec/opensmtpd/mail.local\" -DPATH_LIBEXEC=\"/opt/smptd/libexec/opensmtpd\" -DHAVE_CONFIG_H -DIO_SSL -DCA_FILE=\"/etc/ssl/cert.pem\" -mtune=skylake -march=skylake -fomit-frame-pointer -O2 -pipe -fPIC -DPIC -Wall -Wpointer-arith -Wuninitialized -Wsign-compare -Wformat-security -Wsizeof-pointer-memaccess -Wno-pointer-sign -Wno-unused-result -fno-strict-aliasing -fno-builtin-memset -fPIE -D_BSD_SOURCE -D_DEFAULT_SOURCE -D_GNU_SOURCE -DNEED_EVENT_ASR_RUN -c -o ../../smtpd/smtpd-aliases.o `test -f '../../smtpd/aliases.c' || echo './'`../../smtpd/aliases.c
../../smtpd/aliases.c: In function 'aliases_get':
../../smtpd/aliases.c:56:23: warning: variable 'userbase' set but not used [-Wunused-but-set-variable]
  struct table        *userbase = NULL;
                       ^~~~~~~~
../../smtpd/aliases.c: In function 'aliases_virtual_get':
../../smtpd/aliases.c:114:23: warning: variable 'userbase' set but not used [-Wunused-but-set-variable]
  struct table        *userbase = NULL;
                       ^~~~~~~~
gcc -DHAVE_CONFIG_H -I. -I../.. -I../../smtpd -I../../openbsd-compat -I../../openbsd-compat/err_h -I../../openbsd-compat/paths_h -I. -I/usr/include -DSMTPD_CONFDIR=\"/opt/smptd/etc\" -DPATH_CHROOT=\"/opt/smptd/var/empty\" -DPATH_SMTPCTL=\"/opt/smptd/sbin/smtpctl\" -DPATH_MAILLOCAL=\"/opt/smptd/libexec/opensmtpd/mail.local\" -DPATH_LIBEXEC=\"/opt/smptd/libexec/opensmtpd\" -DHAVE_CONFIG_H -DIO_SSL -DCA_FILE=\"/etc/ssl/cert.pem\" -mtune=skylake -march=skylake -fomit-frame-pointer -O2 -pipe -fPIC -DPIC -Wall -Wpointer-arith -Wuninitialized -Wsign-compare -Wformat-security -Wsizeof-pointer-memaccess -Wno-pointer-sign -Wno-unused-result -fno-strict-aliasing -fno-builtin-memset -fPIE -D_BSD_SOURCE -D_DEFAULT_SOURCE -D_GNU_SOURCE -DNEED_EVENT_ASR_RUN -c -o ../../smtpd/smtpd-bounce.o `test -f '../../smtpd/bounce.c' || echo './'`../../smtpd/bounce.c gcc -DHAVE_CONFIG_H -I. -I../.. -I../../smtpd -I../../openbsd-compat -I../../openbsd-compat/err_h -I../../openbsd-compat/paths_h -I. -I/usr/include -DSMTPD_CONFDIR=\"/opt/smptd/etc\" -DPATH_CHROOT=\"/opt/smptd/var/empty\" -DPATH_SMTPCTL=\"/opt/smptd/sbin/smtpctl\" -DPATH_MAILLOCAL=\"/opt/smptd/libexec/opensmtpd/mail.local\" -DPATH_LIBEXEC=\"/opt/smptd/libexec/opensmtpd\" -DHAVE_CONFIG_H -DIO_SSL -DCA_FILE=\"/etc/ssl/cert.pem\" -mtune=skylake -march=skylake -fomit-frame-pointer -O2 -pipe -fPIC -DPIC -Wall -Wpointer-arith -Wuninitialized -Wsign-compare -Wformat-security -Wsizeof-pointer-memaccess -Wno-pointer-sign -Wno-unused-result -fno-strict-aliasing -fno-builtin-memset -fPIE -D_BSD_SOURCE -D_DEFAULT_SOURCE -D_GNU_SOURCE -DNEED_EVENT_ASR_RUN -c -o ../../smtpd/smtpd-ca.o `test -f '../../smtpd/ca.c' || echo './'`../../smtpd/ca.c
../../smtpd/ca.c: In function 'ca_X509_verify':
../../smtpd/ca.c:204:47: error: dereferencing pointer to incomplete type 'X509_STORE_CTX' {aka 'struct x509_store_ctx_st'}
    *errstr = X509_verify_cert_error_string(xsc->error);
                                               ^~
../../smtpd/ca.c: At top level:
../../smtpd/ca.c:307:1: error: variable 'rsae_method' has initializer but incomplete type
 static RSA_METHOD rsae_method = {
 ^~~~~~
../../smtpd/ca.c:308:2: warning: excess elements in struct initializer
  "RSA privsep engine",
  ^~~~~~~~~~~~~~~~~~~~
../../smtpd/ca.c:308:2: note: (near initialization for 'rsae_method')
../../smtpd/ca.c:309:2: warning: excess elements in struct initializer
  rsae_pub_enc,
  ^~~~~~~~~~~~
../../smtpd/ca.c:309:2: note: (near initialization for 'rsae_method')
../../smtpd/ca.c:310:2: warning: excess elements in struct initializer
  rsae_pub_dec,
  ^~~~~~~~~~~~
../../smtpd/ca.c:310:2: note: (near initialization for 'rsae_method')
../../smtpd/ca.c:311:2: warning: excess elements in struct initializer
  rsae_priv_enc,
  ^~~~~~~~~~~~~
../../smtpd/ca.c:311:2: note: (near initialization for 'rsae_method')
../../smtpd/ca.c:312:2: warning: excess elements in struct initializer
  rsae_priv_dec,
  ^~~~~~~~~~~~~
../../smtpd/ca.c:312:2: note: (near initialization for 'rsae_method')
../../smtpd/ca.c:313:2: warning: excess elements in struct initializer
  rsae_mod_exp,
  ^~~~~~~~~~~~
../../smtpd/ca.c:313:2: note: (near initialization for 'rsae_method')
../../smtpd/ca.c:314:2: warning: excess elements in struct initializer
  rsae_bn_mod_exp,
  ^~~~~~~~~~~~~~~
../../smtpd/ca.c:314:2: note: (near initialization for 'rsae_method')
../../smtpd/ca.c:315:2: warning: excess elements in struct initializer
  rsae_init,
  ^~~~~~~~~
../../smtpd/ca.c:315:2: note: (near initialization for 'rsae_method')
../../smtpd/ca.c:316:2: warning: excess elements in struct initializer
  rsae_finish,
  ^~~~~~~~~~~
../../smtpd/ca.c:316:2: note: (near initialization for 'rsae_method')
../../smtpd/ca.c:317:2: warning: excess elements in struct initializer
  0,
  ^
../../smtpd/ca.c:317:2: note: (near initialization for 'rsae_method')
../../smtpd/ca.c:318:2: warning: excess elements in struct initializer
  NULL,
  ^~~~
../../smtpd/ca.c:318:2: note: (near initialization for 'rsae_method')
../../smtpd/ca.c:319:2: warning: excess elements in struct initializer
  NULL,
  ^~~~
../../smtpd/ca.c:319:2: note: (near initialization for 'rsae_method')
../../smtpd/ca.c:320:2: warning: excess elements in struct initializer
  NULL,
  ^~~~
../../smtpd/ca.c:320:2: note: (near initialization for 'rsae_method')
../../smtpd/ca.c:321:2: warning: excess elements in struct initializer
  rsae_keygen
  ^~~~~~~~~~~
../../smtpd/ca.c:321:2: note: (near initialization for 'rsae_method')
../../smtpd/ca.c: In function 'rsae_pub_enc':
../../smtpd/ca.c:407:21: error: dereferencing pointer to incomplete type 'RSA_METHOD' {aka 'const struct rsa_meth_st'}
  return (rsa_default->rsa_pub_enc(flen, from, to, rsa, padding));
                     ^~
../../smtpd/ca.c: In function 'ca_engine_init':
../../smtpd/ca.c:493:38: error: invalid use of incomplete typedef 'RSA_METHOD' {aka 'struct rsa_meth_st'}
   if (!ENGINE_set_name(e, rsae_method.name)) {
                                      ^
../../smtpd/ca.c:511:27: error: 'RSA_FLAG_SIGN_VER' undeclared (first use in this function); did you mean 'RSA_FLAG_EXT_PKEY'?
  if (rsa_default->flags & RSA_FLAG_SIGN_VER)
                           ^~~~~~~~~~~~~~~~~
                           RSA_FLAG_EXT_PKEY
../../smtpd/ca.c:511:27: note: each undeclared identifier is reported only once for each function it appears in ../../smtpd/ca.c:515:14: error: invalid use of incomplete typedef 'RSA_METHOD' {aka 'struct rsa_meth_st'}
   rsae_method.rsa_mod_exp = NULL;
              ^
../../smtpd/ca.c:517:14: error: invalid use of incomplete typedef 'RSA_METHOD' {aka 'struct rsa_meth_st'}
   rsae_method.bn_mod_exp = NULL;
              ^
../../smtpd/ca.c:519:14: error: invalid use of incomplete typedef 'RSA_METHOD' {aka 'struct rsa_meth_st'}
   rsae_method.rsa_keygen = NULL;
              ^
../../smtpd/ca.c:520:13: error: invalid use of incomplete typedef 'RSA_METHOD' {aka 'struct rsa_meth_st'}
  rsae_method.flags = rsa_default->flags |
             ^
../../smtpd/ca.c:522:13: error: invalid use of incomplete typedef 'RSA_METHOD' {aka 'struct rsa_meth_st'}
  rsae_method.app_data = rsa_default->app_data;
             ^
../../smtpd/ca.c: At top level:
../../smtpd/ca.c:307:19: error: storage size of 'rsae_method' isn't known
 static RSA_METHOD rsae_method = {
                   ^~~~~~~~~~~
make[3]: *** [Makefile:742: ../../smtpd/smtpd-ca.o] Error 1
make[3]: Leaving directory '/root/build/opensmtpd-6.4.2p1/mk/smtpd'
make[2]: *** [Makefile:371: all-recursive] Error 1
make[2]: Leaving directory '/root/build/opensmtpd-6.4.2p1/mk'
make[1]: *** [Makefile:418: all-recursive] Error 1
make[1]: Leaving directory '/root/build/opensmtpd-6.4.2p1'
make: *** [Makefile:350: all] Error 2

Reply via email to