diff options
author | Sergey Poznyakoff <gray@gnu.org> | 2019-12-14 14:21:10 +0200 |
---|---|---|
committer | Sergey Poznyakoff <gray@gnu.org> | 2019-12-14 14:36:27 +0200 |
commit | 06f5631f0d17f73e9b6f5bcf2663a8cb0db8e681 (patch) | |
tree | b125289f2fc4720994fb277d11035d052d635897 | |
parent | 23ab03e67910ea069c25a144378cf8de40d44a28 (diff) | |
download | mailutils-06f5631f0d17f73e9b6f5bcf2663a8cb0db8e681.tar.gz mailutils-06f5631f0d17f73e9b6f5bcf2663a8cb0db8e681.tar.bz2 |
Fix several linking issues
* configure.ac: Require libtool version 2.4.6
(MU_LINK_POSTFLAGS): Remove. Not needed with the patched version
of ltmain.sh.
Detect the presencecof GSSAPI.
Fix displaying the status of GSSAPI support.
Remove the hack introduced on 2010-02-19 (commit 35ac66f056).
(MU_AUTHLIBS,SQLLIB)
(SQL_LOADABLE_MODULES,SQL_LIBOBJS): Insert spaces only when needed.
* mu-aux/ltmain.sh: ltmain.sh from libtool 2.4.6 with fixes from
http://gray.gnu.org.ua/public/ltbug installed.
* bootstrap.conf (bootstrap_epilogue): Install the fixed ltmain.sh
version.
* am/gssapi.m4: Allow for "yes" and "probe" argument values.
Improve makefile style consistency
. Uniformly use parentheses instead of curly braces in variable
referencing;
. Prefer to use Make variables over substitution variables, for
variables prefixed with MU_;
* comsat/Makefile.am
* dotlock/Makefile.am
* examples/Makefile.am
* examples/cpp/Makefile.am
* frm/Makefile.am
* imap4d/Makefile.am
* imap4d/tests/Makefile.am
* lib/Makefile.am
* libmailutils/Makefile.am
* libmailutils/address/Makefile.am
* libmailutils/auth/Makefile.am
* libmailutils/base/Makefile.am
* libmailutils/cfg/Makefile.am
* libmailutils/cidr/Makefile.am
* libmailutils/cli/Makefile.am
* libmailutils/datetime/Makefile.am
* libmailutils/diag/Makefile.am
* libmailutils/filter/Makefile.am
* libmailutils/imapio/Makefile.am
* libmailutils/list/Makefile.am
* libmailutils/locus/Makefile.am
* libmailutils/mailbox/Makefile.am
* libmailutils/mailcap/Makefile.am
* libmailutils/mailer/Makefile.am
* libmailutils/mime/Makefile.am
* libmailutils/msgset/Makefile.am
* libmailutils/opt/Makefile.am
* libmailutils/property/Makefile.am
* libmailutils/server/Makefile.am
* libmailutils/sockaddr/Makefile.am
* libmailutils/stdstream/Makefile.am
* libmailutils/stream/Makefile.am
* libmailutils/string/Makefile.am
* libmailutils/tests/Makefile.am
* libmailutils/url/Makefile.am
* libmailutils/wicket/Makefile.am
* libmu_auth/Makefile.am
* libmu_cpp/Makefile.am
* libmu_dbm/Makefile.am
* libmu_scm/Makefile.am
* libmu_scm/mailutils/Makefile.am
* libmu_sieve/Makefile.am
* libmu_sieve/extensions/Makefile.am
* libproto/dotmail/Makefile.am
* libproto/dotmail/tests/Makefile.am
* libproto/imap/Makefile.am
* libproto/imap/tests/Makefile.am
* libproto/maildir/Makefile.am
* libproto/mailer/Makefile.am
* libproto/mbox/Makefile.am
* libproto/mh/Makefile.am
* libproto/nntp/Makefile.am
* libproto/pop/Makefile.am
* mail/Makefile.am
* mapi/Makefile.am
* mda/lib/Makefile.am
* mda/lmtpd/Makefile.am
* mda/mda/Makefile.am
* mda/mda/tests/Makefile.am
* mda/putmail/Makefile.am
* messages/Makefile.am
* mh/Makefile.am
* mh/tests/Makefile.am
* mimeview/Makefile.am
* movemail/Makefile.am
* mu/Makefile.am
* mu/libexec/Makefile.am
* pop3d/Makefile.am
* python/2/libmu_py/Makefile.am
* python/2/mailutils/Makefile.am
* python/3/libmu_py/Makefile.am
* python/3/mailutils/Makefile.am
* readmsg/Makefile.am
* sieve/Makefile.am
* sql/Makefile.am
* testsuite/Makefile.am
80 files changed, 11574 insertions, 402 deletions
diff --git a/am/gssapi.m4 b/am/gssapi.m4 index 8e4f5d709..ed25ddabf 100644 --- a/am/gssapi.m4 +++ b/am/gssapi.m4 @@ -14,11 +14,10 @@ AC_DEFUN([MU_CHECK_GSSAPI], GSSAPI_PREFIX=[$1] GSSAPI_IMPL="none" # First try krb5-config - if test "$GSSAPI_PREFIX" != "yes"; then - krb5_path="$GSSAPI_PREFIX/bin" - else - krb5_path="$PATH" - fi + case $GSSAPI_PREFIX in + yes|probe) krb5_path="$PATH";; + *) krb5_path="$GSSAPI_PREFIX/bin" + esac AC_PATH_PROG(KRB5CFGPATH, krb5-config, none, $krb5_path) AC_CHECK_HEADER(gss.h, [wantgss=yes], [wantgss=no]) if test $wantgss != no; then @@ -47,12 +46,14 @@ int main() { return gss_check_version ("0.0.9") == (char*) 0; }], saved_CPPFLAGS="$CPPFLAGS" saved_LDFLAGS="$LDFLAGS" saved_LIBS="$LIBS" - if test "$GSSAPI_PREFIX" != "yes"; then + case $GSSAPI_PREFIX in + yes|probe) ;; + *) GSSAPI_CFLAGS="-I$GSSAPI_PREFIX/include" GSSAPI_LDFLAGS="-L$GSSAPI_PREFIX/lib" CPPFLAGS="$CPPFLAGS $GSSAPI_CFLAGS" LDFLAGS="$LDFLAGS $GSSAPI_LDFLAGS" - fi + esac ## Check for new MIT kerberos V support AC_CHECK_LIB(gssapi_krb5, gss_init_sec_context, diff --git a/bootstrap.conf b/bootstrap.conf index 361217c31..b6692e01f 100644 --- a/bootstrap.conf +++ b/bootstrap.conf @@ -113,3 +113,10 @@ if [ -z "$help" ]; then #make -C doc/texinfo -f maint.mk fi +bootstrap_epilogue() { + # Install a ltmain.sh version that fixes the two libtool issues we've + # encountered. + # See http://gray.gnu.org.ua/public/ltbug for details. + set -e + (cd build-aux && rm ltmain.sh && ln -s ../mu-aux/ltmain.sh) +} diff --git a/comsat/Makefile.am b/comsat/Makefile.am index 5d124c521..b17c5318c 100644 --- a/comsat/Makefile.am +++ b/comsat/Makefile.am @@ -19,7 +19,7 @@ sbin_PROGRAMS = comsatd comsatd_SOURCES = action.c comsat.c comsat.h biff.rc.h AM_CPPFLAGS = \ - @MU_APP_COMMON_INCLUDES@\ + $(MU_APP_COMMON_INCLUDES)\ -DSYSCONFDIR=\"$(sysconfdir)\" BUILT_SOURCES=biff.rc.h @@ -30,8 +30,8 @@ biff.rc.h: $(top_srcdir)/comsat/biff.rc $(top_srcdir)/comsat/biff.rc > biff.rc.h comsatd_LDADD = \ - ${MU_APP_LIBRARIES}\ - ${MU_LIB_MAILBOX}\ - ${MU_LIB_MAILUTILS}\ - @MU_COMMON_LIBRARIES@ + $(MU_LIB_MAILBOX)\ + $(MU_LIB_MAILUTILS)\ + $(MU_APP_LIBRARIES)\ + $(MU_COMMON_LIBRARIES) diff --git a/configure.ac b/configure.ac index 59b9fe777..575ff22f4 100644 --- a/configure.ac +++ b/configure.ac @@ -76,11 +76,11 @@ gl_EARLY AC_PROG_CXX AC_PROG_INSTALL AC_PROG_LN_S -AC_LIBTOOL_DLOPEN -AC_PROG_LIBTOOL MU_PROG_BISON MU_PROG_FLEX -AM_PROG_LIBTOOL + +LT_PREREQ([2.4.6]) +LT_INIT ## Predefine several variables used to display configuration status status_pam=no @@ -121,9 +121,6 @@ AH_BOTTOM([ #define DEFAULT_TEXT_DOMAIN PACKAGE ]) -AC_SUBST(MU_LINK_POSTFLAGS,[`for opt in $LTLIBICONV; do case $opt in -[[lL]]*) echo $opt;; esac; done|tr '\n' ' '`]) - - # Check for large file support AC_SYS_LARGEFILE @@ -243,43 +240,30 @@ AC_ARG_WITH([gssapi], AC_HELP_STRING([--with-gssapi@<:@=PATH@:>@], [use GSSAPI authentication]), [status_gssapi=$withval], - [status_gssapi=no]) + [status_gssapi=probe]) -if test "x$status_gssapi" != "xno"; then +if test "$status_gssapi" != "no"; then MU_CHECK_GSSAPI($status_gssapi) if test "$GSSAPI_IMPL" = "none"; then AC_CACHE_SAVE AC_MSG_RESULT([GSSAPI libraries not found]) + if test "$status_gssapi" = probe; then + status_gssapi=no + else + AC_MSG_FAILURE([The requested GSSAPI library not found or is unusable]) + fi else - # Output produced by `krb5-config --libs' may contain `-Wl,-rpath -Wl,DIR' - # options. Once they are added to SERV_AUTHLIBS, libtool, when creating - # relink command line in wrapper files for executables, places them at the - # beginnig of the option list and adds its own -rpath directives at - # the end. Executables created by such command will look for the runtime - # libraries first in DIR and then in the local tree subdirectories. Thus, - # if DIR contains libraries from a previous installation of Mailutils, the - # programs will use old libraries. - # - # Obviously, libtool should be fixed to place user-added -rpath directives - # after the ones added by it. For the time being I work around this bug by - # removing any -Wl directives from GSSAPI_LIBS. - # - for arg in $GSSAPI_LIBS - do - case $arg in - -Wl,*) ;; - *) SERV_AUTHLIBS="$SERV_AUTHLIBS $arg" - esac - done - SERV_AUTHINCS="$SERV_AUTHINCS $GSSAPI_CFLAGS" + SERV_AUTHLIBS="${SERV_AUTHLIBS}${SERV_AUTHLIBS:+ }$GSSAPI_LIBS" + SERV_AUTHINCS="${SERV_AUTHINCS}${SERV_AUTHINCS:+ }$GSSAPI_CFLAGS" AC_DEFINE(WITH_GSSAPI,1,[Define if mailutils is using GSSAPI]) + status_gssapi=yes fi fi AM_CONDITIONAL([MU_COND_GSSAPI],[test "$status_gssapi" = "yes"]) MU_CHECK_GSASL(0.2.3, [ AC_DEFINE(WITH_GSASL,1,[Define if mailutils is using GNU SASL]) - MU_AUTHLIBS="$MU_AUTHLIBS $GSASL_LIBS" + MU_AUTHLIBS="${MU_AUTHLIBS}${MU_AUTHLIBS:+ }$GSASL_LIBS" status_gsasl=yes]) AM_CONDITIONAL([MU_COND_GSASL],[test "$status_gsasl" = "yes"]) @@ -295,7 +279,7 @@ AC_ARG_WITH(cram-passwd, esac]) MU_CHECK_GNUTLS([1.2.1],[ - MU_AUTHLIBS="$MU_AUTHLIBS $TLS_LIBS" + MU_AUTHLIBS="${MU_AUTHLIBS}${MU_AUTHLIBS:+ }$TLS_LIBS" AC_DEFINE(WITH_GNUTLS,1,[Define if mailutils is using GNU TLS]) AC_DEFINE(WITH_TLS,1,[Define if mailutils is using TLS]) status_gnutls=yes @@ -797,7 +781,7 @@ AC_DEFUN([MU_SQL_LDADD],[ if test "$USE_LOADABLE_MODULES" = yes; then $1=$2 else - SQLLIB="$SQLLIB $2" + SQLLIB="${SQLLIB}${SQLLIB:+ }$2" fi ]) @@ -939,9 +923,9 @@ if test -n "$SQL_MODULES"; then do ${module:-dummy}_init if test $USE_LOADABLE_MODULES = yes; then - SQL_LOADABLE_MODULES="$SQL_LOADABLE_MODULES ${module}.la" + SQL_LOADABLE_MODULES="${SQL_LOADABLE_MODULES}${SQL_LOADABLE_MODULES:+ }${module}.la" else - SQL_LIBOBJS="$SQL_LIBOBJS ${module}.o" + SQL_LIBOBJS="${SQL_LIBOBJS}${SQL_LIBOBJS:+ }${module}.o" fi done S=`echo "$SQL_LIBOBJS" | @@ -974,7 +958,7 @@ if test $status_ldap = maybe; then AC_CHECK_LIB(ldap, ldap_bind,[ status_ldap=yes AC_DEFINE(WITH_LDAP, 1, [Define to 1 if you want to use -lldap]) - MU_AUTHLIBS="$MU_AUTHLIBS -lldap"], + MU_AUTHLIBS="${MU_AUTHLIBS}${MU_AUTHLIBS:+ }-lldap"], [status_ldap=no]) fi @@ -1020,7 +1004,7 @@ MU_ENABLE_SUPPORT(prog) # FIXME: Should be --with-radius MU_ENABLE_SUPPORT(radius, [AM_GNU_RADIUS(1.6, - [MU_AUTHLIBS="$MU_AUTHLIBS -lgnuradius" + [MU_AUTHLIBS="${MU_AUTHLIBS}${MU_AUTHLIBS:+ }-lgnuradius" mu_cv_enable_radius=yes], [mu_cv_enable_radius=no])]) @@ -1029,7 +1013,7 @@ if test x"$testpam" = x"yes"; then if test x"$ac_cv_header_security_pam_appl_h" = x"yes"; then AC_CHECK_LIB(dl, dlopen, [LDL=-ldl], [LDL=]) AC_CHECK_LIB(pam, pam_start, - [MU_AUTHLIBS="$MU_AUTHLIBS -lpam $LDL" + [MU_AUTHLIBS="${MU_AUTHLIBS}${MU_AUTHLIBS:+ }-lpam $LDL" ac_cv_have_libpam="yes"],, $LDL) AC_DEFINE(USE_LIBPAM,1,[Enable use of PAM]) status_pam=yes @@ -1326,9 +1310,12 @@ MU_ENABLE_BUILD(pop3d,,,["$mu_build_servers" = yes],,[server_list]) MU_ENABLE_BUILD(imap4d,,,["$mu_build_servers" = yes],,[server_list]) MU_ENABLE_BUILD(comsat,,,["$mu_build_servers" = yes],,[server_list]) -MU_ENABLE_BUILD(mda,[mu_build_mda_tools=yes],,["$mu_build_servers" = yes],,[server_list]) -MU_ENABLE_BUILD(lmtpd,[mu_build_mda_tools=yes],,["$mu_build_servers" = yes],,[server_list]) -MU_ENABLE_BUILD(putmail,[mu_build_mda_tools=yes],,["$mu_build_clients" = yes],,[client_list]) +MU_ENABLE_BUILD(mda,[mu_build_mda_tools=yes],, + ["$mu_build_servers" = yes],,[server_list]) +MU_ENABLE_BUILD(lmtpd,[mu_build_mda_tools=yes],, + ["$mu_build_servers" = yes],,[server_list]) +MU_ENABLE_BUILD(putmail,[mu_build_mda_tools=yes],, + ["$mu_build_clients" = yes],,[client_list]) AM_CONDITIONAL([MU_COND_MDA_TOOLS],[test "$mu_build_mda_tools" = yes]) MU_ENABLE_BUILD(frm,,,["$mu_build_clients" = yes],,[client_list]) diff --git a/dotlock/Makefile.am b/dotlock/Makefile.am index 3e121fa6d..005ecda68 100644 --- a/dotlock/Makefile.am +++ b/dotlock/Makefile.am @@ -14,14 +14,14 @@ ## You should have received a copy of the GNU General Public License ## along with GNU Mailutils. If not, see <http://www.gnu.org/licenses/>. -AM_CPPFLAGS = @MU_APP_COMMON_INCLUDES@ +AM_CPPFLAGS = $(MU_APP_COMMON_INCLUDES) bin_PROGRAMS = dotlock dotlock_LDADD = \ - ${MU_APP_LIBRARIES}\ - ${MU_LIB_MAILUTILS}\ - @MU_COMMON_LIBRARIES@ + $(MU_APP_LIBRARIES)\ + $(MU_LIB_MAILUTILS)\ + $(MU_COMMON_LIBRARIES) install-exec-hook: for i in $(bin_PROGRAMS); do\ diff --git a/examples/Makefile.am b/examples/Makefile.am index 54e92f7f3..f7aff4f6e 100644 --- a/examples/Makefile.am +++ b/examples/Makefile.am @@ -56,77 +56,77 @@ EXTRA_PROGRAMS = nntpclient ## will not create a shared library and `make check' will fail in ## sieve. Pity. ## -Sergey -moddir=@MU_SIEVE_MODDIR@ +moddir=$(MU_SIEVE_MODDIR) mod_LTLIBRARIES = numaddr.la -AM_CPPFLAGS = @MU_LIB_COMMON_INCLUDES@ +AM_CPPFLAGS = $(MU_LIB_COMMON_INCLUDES) LDADD = \ ../lib/libmuaux.la\ - ${MU_LIB_MAILUTILS}\ - @MU_COMMON_LIBRARIES@ + $(MU_LIB_MAILUTILS)\ + $(MU_COMMON_LIBRARIES) numaddr_la_SOURCES = numaddr.c -numaddr_la_LIBADD = ${MU_LIB_SIEVE} +numaddr_la_LIBADD = $(MU_LIB_SIEVE) numaddr_la_LDFLAGS = -module -avoid-version -no-undefined -rpath '$(moddir)' msg_send_LDADD =\ ../lib/libmuaux.la\ - ${MU_LIB_MAILER}\ - @MU_AUTHLIBS@\ - ${MU_LIB_MAILUTILS} + $(MU_LIB_MAILER)\ + $(MU_AUTHLIBS)\ + $(MU_LIB_MAILUTILS) -mta_CPPFLAGS=@MU_LIB_COMMON_INCLUDES@ -I${top_srcdir}/lib -I${top_builddir}/lib +mta_CPPFLAGS=$(MU_LIB_COMMON_INCLUDES) -I$(top_srcdir)/lib -I$(top_builddir)/lib mta_LDADD =\ ../lib/libmuaux.la\ - ${MU_LIB_MBOX}\ - ${MU_LIB_MAILER}\ - ${MU_LIB_MAILUTILS} + $(MU_LIB_MBOX)\ + $(MU_LIB_MAILER)\ + $(MU_LIB_MAILUTILS) sfrom_LDADD =\ ../lib/libmuaux.la\ - ${MU_LIB_MAILBOX}\ - ${MU_LIB_AUTH}\ - @MU_AUTHLIBS@\ - ${MU_LIB_MAILUTILS} + $(MU_LIB_MAILBOX)\ + $(MU_LIB_AUTH)\ + $(MU_AUTHLIBS)\ + $(MU_LIB_MAILUTILS) mboxsize_LDADD =\ ../lib/libmuaux.la\ - ${MU_LIB_MAILBOX}\ - ${MU_LIB_AUTH}\ - @MU_AUTHLIBS@\ - ${MU_LIB_MAILUTILS} + $(MU_LIB_MAILBOX)\ + $(MU_LIB_AUTH)\ + $(MU_AUTHLIBS)\ + $(MU_LIB_MAILUTILS) nntpclient_LDADD = \ ../lib/libmuaux.la\ - ${MU_LIB_NNTP}\ - ${MU_LIB_AUTH}\ - @MU_AUTHLIBS@\ - ${MU_LIB_MAILUTILS}\ + $(MU_LIB_NNTP)\ + $(MU_LIB_AUTH)\ + $(MU_AUTHLIBS)\ + $(MU_LIB_MAILUTILS)\ @READLINE_LIBS@ lsf_LDADD = \ - ${MU_LIB_MAILBOX}\ - ${MU_LIB_AUTH}\ - @MU_AUTHLIBS@ \ - ${MU_LIB_MAILUTILS} + $(MU_LIB_MAILBOX)\ + $(MU_LIB_AUTH)\ + $(MU_AUTHLIBS) \ + $(MU_LIB_MAILUTILS) -muauth_CPPFLAGS = @MU_APP_COMMON_INCLUDES@ +muauth_CPPFLAGS = $(MU_APP_COMMON_INCLUDES) muauth_LDADD = \ - ${MU_APP_LIBRARIES}\ - ${MU_LIB_AUTH}\ - @MU_AUTHLIBS@ \ - ${MU_LIB_MAILUTILS} + $(MU_APP_LIBRARIES)\ + $(MU_LIB_AUTH)\ + $(MU_AUTHLIBS) \ + $(MU_LIB_MAILUTILS) -muemail_CPPFLAGS = @MU_APP_COMMON_INCLUDES@ +muemail_CPPFLAGS = $(MU_APP_COMMON_INCLUDES) muemail_LDADD = \ - ${MU_APP_LIBRARIES} \ - ${MU_LIB_MAILUTILS} + $(MU_APP_LIBRARIES) \ + $(MU_LIB_MAILUTILS) -mboxidx_CPPFLAGS = @MU_APP_COMMON_INCLUDES@ +mboxidx_CPPFLAGS = $(MU_APP_COMMON_INCLUDES) mboxidx_LDADD=\ ../lib/libmuaux.la\ - ${MU_LIB_MAILBOX}\ - ${MU_LIB_AUTH}\ - @MU_AUTHLIBS@ \ - ${MU_LIB_MAILUTILS} + $(MU_LIB_MAILBOX)\ + $(MU_LIB_AUTH)\ + $(MU_AUTHLIBS) \ + $(MU_LIB_MAILUTILS) diff --git a/examples/cpp/Makefile.am b/examples/cpp/Makefile.am index ee98fb035..2f2ad60d7 100644 --- a/examples/cpp/Makefile.am +++ b/examples/cpp/Makefile.am @@ -28,15 +28,15 @@ MU_CXX_EXAMPLES_LIST = \ url-parse EXTRA_PROGRAMS=$(MU_CXX_EXAMPLES_LIST) -noinst_PROGRAMS = @MU_CXX_EXAMPLES_BUILD@ +noinst_PROGRAMS = $(MU_CXX_EXAMPLES_BUILD) -AM_CPPFLAGS = @MU_LIB_COMMON_INCLUDES@ +AM_CPPFLAGS = $(MU_LIB_COMMON_INCLUDES) AM_LDFLAGS = \ ../../lib/libmuaux.la\ ../../libmu_cpp/libmu_cpp.la\ - ${MU_LIB_MAILUTILS}\ - @MU_COMMON_LIBRARIES@ + $(MU_LIB_MAILUTILS)\ + $(MU_COMMON_LIBRARIES) addr_SOURCES = addr.cc http_SOURCES = http.cc @@ -53,9 +53,9 @@ url_parse_SOURCES = url-parse.cc LDADD =\ ../../lib/libmuaux.la\ ../../libmu_cpp/libmu_cpp.la\ - ${MU_LIB_MAILBOX}\ - ${MU_LIB_AUTH}\ - ${MU_LIB_MAILER}\ - ${MU_LIB_SIEVE}\ - @MU_AUTHLIBS@\ - ${MU_LIB_MAILUTILS} + $(MU_LIB_MAILBOX)\ + $(MU_LIB_AUTH)\ + $(MU_LIB_MAILER)\ + $(MU_LIB_SIEVE)\ + $(MU_AUTHLIBS)\ + $(MU_LIB_MAILUTILS) diff --git a/frm/Makefile |