Thread: [emailrelay-help] problem compiling on OI-hilster (illumos)2020.04
SMTP email proxy and relay server
Brought to you by:
graeme_walker
From: Marc L. <ma...@lo...> - 2020-05-21 08:49:28
|
Hello, I,m using emailrelay 1.8.2 for many years. Thanks to Graeme for this very useful program. I am now updating my server and the softwares I'm using. I'm trying to recompile emailrelay2.0 on Openindiana (descendent of opensolaris), version OI-hilspster2020.04. it uses gcc 7.5.0. ./configure worked but make crashed, as you can see below. Do you see what's wrong and how to solve it . Thanks Marc ml@spitfire:/opt/emailrelay-2.0# ./configure checking for a BSD-compatible install... /usr/gnu/bin/install -c checking whether build environment is sane... yes checking for a thread-safe mkdir -p... /usr/gnu/bin/mkdir -p checking for gawk... gawk checking whether make sets $(MAKE)... yes checking whether make supports nested variables... yes checking whether to enable maintainer-specific portions of Makefiles... no checking for cc... no checking for gcc... gcc checking whether the C compiler works... yes checking for C compiler default output file name... a.out checking for suffix of executables... checking whether we are cross compiling... no checking for suffix of object files... o checking whether we are using the GNU C compiler... yes checking whether gcc accepts -g... yes checking for gcc option to accept ISO C89... none needed checking whether gcc understands -c and -o together... yes checking for style of include used by make... GNU checking dependency style of gcc... gcc3 checking for c++... c++ checking whether we are using the GNU C++ compiler... yes checking whether c++ accepts -g... yes checking dependency style of c++... gcc3 checking whether c++ supports C++11 features with -std=gnu++11... yes checking for ranlib... ranlib checking for gawk... (cached) gawk checking for a sed that does not truncate output... /usr/gnu/bin/sed checking for grep that handles long lines and -e... /usr/gnu/bin/grep checking for make... make checking for ar... ar checking for gzip... gzip checking for doxygen... no checking for man2html... no checking for resource compiler... windres checking message compiler... ./fakemc.exe checking for library containing gethostbyname... -lnsl checking for library containing connect... -lsocket checking for library containing shm_open... none required checking for library containing dlopen... none required checking for library containing pam_end... -lpam checking for socklen_t... yes checking for errno_t... no checking for ssize_t... yes checking for c++ nullptr... yes checking for c++ constexpr... yes checking for c++ noexcept... yes checking for c++ override... yes checking for c++ final keyword... yes checking for c++ type_traits... yes checking for c++ emplace_back and friends... yes checking for c++ std::align... yes checking for c++ std::shared_ptr and friends... yes checking for c++ std::thread... yes checking for c++ std::wstring... yes checking for ipv6... yes checking for sin6_len... no checking for statbuf nanoseconds... yes checking for inet_ntop()... yes checking for inet_pton()... yes checking for getpwnam... yes checking for getpwnam_r... yes checking for gmtime_r... yes checking for gmtime_s... no checking for localtime_r... yes checking for localtime_s... no checking for strncpy_s... no checking for bsd setpgrp... no checking for setgroups... yes checking for getenv_s... no checking for readlink... yes checking for iconv in libc... yes checking for iconv in libiconv... no checking for proc_pidpath... no checking for pkg-config... no checking for QT... no configure: no QT 5: trying QT 4 checking for QT... no checking for moc... no checking for openssl... yes checking for mbedtls... no checking for pkg-config... no configure: using tls library: openssl checking for security/pam_appl.h... yes checking for pam/pam_appl.h... no checking for include/pam_appl.h... no checking that generated files are newer than configure... done configure: creating ./config.status config.status: creating Makefile config.status: creating src/Makefile config.status: creating src/glib/Makefile config.status: creating src/gssl/Makefile config.status: creating src/gnet/Makefile config.status: creating src/gauth/Makefile config.status: creating src/gsmtp/Makefile config.status: creating src/gpop/Makefile config.status: creating src/main/Makefile config.status: creating src/main/icon/Makefile config.status: creating src/win32/Makefile config.status: creating src/gui/Makefile config.status: creating bin/Makefile config.status: creating doc/Makefile config.status: creating etc/Makefile config.status: creating test/Makefile config.status: creating test/certificates/Makefile config.status: creating m4/Makefile config.status: creating bsd/Makefile config.status: creating debian/Makefile config.status: creating gconfig_defs.h config.status: executing depfiles commands ml@spitfire:/opt/emailrelay-2.0# make make all-recursive make[1] : on entre dans le répertoire « /opt/emailrelay-2.0 » Making all in bin make[2] : on entre dans le répertoire « /opt/emailrelay-2.0/bin » make[2]: rien à faire pour « all ». make[2] : on quitte le répertoire « /opt/emailrelay-2.0/bin » Making all in src make[2] : on entre dans le répertoire « /opt/emailrelay-2.0/src » Making all in glib make[3] : on entre dans le répertoire « /opt/emailrelay-2.0/src/glib » c++ -std=gnu++11 -DHAVE_CONFIG_H -I. -I../.. -g -O2 -MT gpam_linux.o -MD -MP -MF .deps/gpam_linux.Tpo -c -o gpam_linux.o gpam_linux.cpp gpam_linux.cpp: In constructor 'G::PamImp::PamImp(G::Pam&, const string&, const string&, bool)': gpam_linux.cpp:115:16: error: invalid conversion from 'int (*)(int, const pam_message**, pam_response**, void*)' to 'int (*)(int, pam_message**, pam_response**, void*)' [-fpermissive] m_conv.conv = converseCallback ; ^~~~~~~~~~~~~~~~ gpam_linux.cpp: In member function 'std::__cxx11::string G::PamImp::name() const': gpam_linux.cpp:185:45: error: invalid conversion from 'const void**' to 'void**' [-fpermissive] m_rc = ::pam_get_item( hpam() , PAM_USER , &vp ) ; ^~~ In file included from gpam_linux.cpp:44:0: /usr/include/security/pam_appl.h:186:1: note: initializing argument 3 of 'int pam_get_item(const pam_handle_t*, int, void**)' pam_get_item( ^~~~~~~~~~~~ make[3]: *** [Makefile:765: gpam_linux.o] Error 1 make[3] : on quitte le répertoire « /opt/emailrelay-2.0/src/glib » make[2]: *** [Makefile:350: all-recursive] Error 1 make[2] : on quitte le répertoire « /opt/emailrelay-2.0/src » make[1]: *** [Makefile:478: all-recursive] Error 1 make[1] : on quitte le répertoire « /opt/emailrelay-2.0 » make: *** [Makefile:398: all] Error 2 |
From: Graeme W. <gra...@us...> - 2020-05-21 11:42:38
|
Hello Marc, If you don't need PAM then just do "./configure --without-pam". To fix the code you need to remove the word 'const' from lines 99, 184 and 222 of src/glib/gpam_linux.cpp. Thanks for the bug report. Let me know if you have any more build problems. Graeme On 21/05/2020 09:31, Marc Lobelle wrote: > Hello, > > I,m using emailrelay 1.8.2 for many years. Thanks to Graeme for this > very useful program. > > I am now updating my server and the softwares I'm using. > > I'm trying to recompile emailrelay2.0 on Openindiana (descendent of > opensolaris), version OI-hilspster2020.04. it uses gcc 7.5.0. > > ./configure worked but make crashed, as you can see below. > > Do you see what's wrong and how to solve it . > > Thanks > > Marc > > ml@spitfire:/opt/emailrelay-2.0# ./configure > checking for a BSD-compatible install... /usr/gnu/bin/install -c > checking whether build environment is sane... yes > checking for a thread-safe mkdir -p... /usr/gnu/bin/mkdir -p > checking for gawk... gawk > checking whether make sets $(MAKE)... yes > checking whether make supports nested variables... yes > checking whether to enable maintainer-specific portions of Makefiles... no > checking for cc... no > checking for gcc... gcc > checking whether the C compiler works... yes > checking for C compiler default output file name... a.out > checking for suffix of executables... > checking whether we are cross compiling... no > checking for suffix of object files... o > checking whether we are using the GNU C compiler... yes > checking whether gcc accepts -g... yes > checking for gcc option to accept ISO C89... none needed > checking whether gcc understands -c and -o together... yes > checking for style of include used by make... GNU > checking dependency style of gcc... gcc3 > checking for c++... c++ > checking whether we are using the GNU C++ compiler... yes > checking whether c++ accepts -g... yes > checking dependency style of c++... gcc3 > checking whether c++ supports C++11 features with -std=gnu++11... yes > checking for ranlib... ranlib > checking for gawk... (cached) gawk > checking for a sed that does not truncate output... /usr/gnu/bin/sed > checking for grep that handles long lines and -e... /usr/gnu/bin/grep > checking for make... make > checking for ar... ar > checking for gzip... gzip > checking for doxygen... no > checking for man2html... no > checking for resource compiler... windres > checking message compiler... ./fakemc.exe > checking for library containing gethostbyname... -lnsl > checking for library containing connect... -lsocket > checking for library containing shm_open... none required > checking for library containing dlopen... none required > checking for library containing pam_end... -lpam > checking for socklen_t... yes > checking for errno_t... no > checking for ssize_t... yes > checking for c++ nullptr... yes > checking for c++ constexpr... yes > checking for c++ noexcept... yes > checking for c++ override... yes > checking for c++ final keyword... yes > checking for c++ type_traits... yes > checking for c++ emplace_back and friends... yes > checking for c++ std::align... yes > checking for c++ std::shared_ptr and friends... yes > checking for c++ std::thread... yes > checking for c++ std::wstring... yes > checking for ipv6... yes > checking for sin6_len... no > checking for statbuf nanoseconds... yes > checking for inet_ntop()... yes > checking for inet_pton()... yes > checking for getpwnam... yes > checking for getpwnam_r... yes > checking for gmtime_r... yes > checking for gmtime_s... no > checking for localtime_r... yes > checking for localtime_s... no > checking for strncpy_s... no > checking for bsd setpgrp... no > checking for setgroups... yes > checking for getenv_s... no > checking for readlink... yes > checking for iconv in libc... yes > checking for iconv in libiconv... no > checking for proc_pidpath... no > checking for pkg-config... no > checking for QT... no > configure: no QT 5: trying QT 4 > checking for QT... no > checking for moc... no > checking for openssl... yes > checking for mbedtls... no > checking for pkg-config... no > configure: using tls library: openssl > checking for security/pam_appl.h... yes > checking for pam/pam_appl.h... no > checking for include/pam_appl.h... no > checking that generated files are newer than configure... done > configure: creating ./config.status > config.status: creating Makefile > config.status: creating src/Makefile > config.status: creating src/glib/Makefile > config.status: creating src/gssl/Makefile > config.status: creating src/gnet/Makefile > config.status: creating src/gauth/Makefile > config.status: creating src/gsmtp/Makefile > config.status: creating src/gpop/Makefile > config.status: creating src/main/Makefile > config.status: creating src/main/icon/Makefile > config.status: creating src/win32/Makefile > config.status: creating src/gui/Makefile > config.status: creating bin/Makefile > config.status: creating doc/Makefile > config.status: creating etc/Makefile > config.status: creating test/Makefile > config.status: creating test/certificates/Makefile > config.status: creating m4/Makefile > config.status: creating bsd/Makefile > config.status: creating debian/Makefile > config.status: creating gconfig_defs.h > config.status: executing depfiles commands > ml@spitfire:/opt/emailrelay-2.0# make > make all-recursive > make[1] : on entre dans le répertoire « /opt/emailrelay-2.0 » > Making all in bin > make[2] : on entre dans le répertoire « /opt/emailrelay-2.0/bin » > make[2]: rien à faire pour « all ». > make[2] : on quitte le répertoire « /opt/emailrelay-2.0/bin » > Making all in src > make[2] : on entre dans le répertoire « /opt/emailrelay-2.0/src » > Making all in glib > make[3] : on entre dans le répertoire « /opt/emailrelay-2.0/src/glib » > c++ -std=gnu++11 -DHAVE_CONFIG_H -I. -I../.. -g -O2 -MT gpam_linux.o > -MD -MP -MF .deps/gpam_linux.Tpo -c -o gpam_linux.o gpam_linux.cpp > gpam_linux.cpp: In constructor 'G::PamImp::PamImp(G::Pam&, const > string&, const string&, bool)': > gpam_linux.cpp:115:16: error: invalid conversion from 'int (*)(int, > const pam_message**, pam_response**, void*)' to 'int (*)(int, > pam_message**, pam_response**, void*)' [-fpermissive] > m_conv.conv = converseCallback ; > ^~~~~~~~~~~~~~~~ > gpam_linux.cpp: In member function 'std::__cxx11::string > G::PamImp::name() const': > gpam_linux.cpp:185:45: error: invalid conversion from 'const void**' to > 'void**' [-fpermissive] > m_rc = ::pam_get_item( hpam() , PAM_USER , &vp ) ; > ^~~ > In file included from gpam_linux.cpp:44:0: > /usr/include/security/pam_appl.h:186:1: note: initializing argument 3 > of 'int pam_get_item(const pam_handle_t*, int, void**)' > pam_get_item( > ^~~~~~~~~~~~ > make[3]: *** [Makefile:765: gpam_linux.o] Error 1 > make[3] : on quitte le répertoire « /opt/emailrelay-2.0/src/glib » > make[2]: *** [Makefile:350: all-recursive] Error 1 > make[2] : on quitte le répertoire « /opt/emailrelay-2.0/src » > make[1]: *** [Makefile:478: all-recursive] Error 1 > make[1] : on quitte le répertoire « /opt/emailrelay-2.0 » > make: *** [Makefile:398: all] Error 2 > > > > _______________________________________________ > emailrelay-help mailing list > ema...@li... > https://lists.sourceforge.net/lists/listinfo/emailrelay-help |