Fix TOCTOU (time-to-check, time-to-use) race
[claws.git] / configure.ac
index 1cc5e25058043728ef98ecfefc86937594e16d79..98f9273f9297da4a56ebee95015ea27272caa11f 100644 (file)
@@ -178,10 +178,10 @@ case "$target" in
        CFLAGS="$CFLAGS -no-cpp-precomp -fno-common"
        ;;
 *-*-mingw*)
-        # Note that we need to link to pthreadGC2 in all cases. This
+        # Note that we need to link to pthread in all cases. This
         # is because some locking is used even when pthread support is
         # disabled.
-        pthread_name=pthreadGC2
+        pthread_name=pthread
        CFLAGS="$CFLAGS -mms-bitfields"
        LIBS="$LIBS -l${pthread_name} -lws2_32 -lregex"
        ;;
@@ -205,9 +205,8 @@ LIBS="$LIBS $GTK_LIBS"
 AC_CHECK_FUNCS(bind_textdomain_codeset)
 LIBS=$syl_save_LIBS
 
-dnl for i18n
-IT_PROG_INTLTOOL
-ALL_LINGUAS="bg ca cs de en_GB eo es fi fr he hu id_ID it ja lt nl pl pt_BR pt_PT ru sk sv uk zh_CN zh_TW"
+dnl for gettext
+ALL_LINGUAS="bg ca cs de en_GB eo es fi fr he hu id_ID lt nb nl pl pt_BR sk sv"
 GETTEXT_PACKAGE=claws-mail
 AC_SUBST(GETTEXT_PACKAGE)
 AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE,"$GETTEXT_PACKAGE", [Define text domain.])
@@ -449,13 +448,23 @@ AC_MSG_CHECKING([whether to use IPv6])
 if test x"$enable_ipv6" = xyes; then
        AC_MSG_RESULT(yes)
        AC_MSG_CHECKING([for IPv6 support])
-       AC_CACHE_VAL(ac_cv_ipv6,[
-               AC_TRY_COMPILE([#define INET6
-                               #include <sys/types.h>
-                               #include <netinet/in.h>],
-                       [int x = IPPROTO_IPV6; struct in6_addr a;],
-                       ac_cv_ipv6=yes, ac_cv_ipv6=no)
-       ])
+       if test x"$platform_win32" = xyes; then
+               AC_CACHE_VAL(ac_cv_ipv6,[
+                       AC_TRY_COMPILE([
+                                       #include <ws2tcpip.h>
+                               ], [struct in6_addr a;],
+                               ac_cv_ipv6=yes, ac_cv_ipv6=no)
+               ])
+       else
+               AC_CACHE_VAL(ac_cv_ipv6,[
+                       AC_TRY_COMPILE([
+                                       #define INET6
+                                       #include <sys/types.h>
+                                       #include <netinet/in.h>
+                               ], [int x = IPPROTO_IPV6; struct in6_addr a;],
+                               ac_cv_ipv6=yes, ac_cv_ipv6=no)
+               ])
+       fi
        AC_MSG_RESULT($ac_cv_ipv6)
        if test $ac_cv_ipv6 = yes; then
                AC_DEFINE(INET6, 1, Define if you want IPv6 support.)
@@ -904,19 +913,6 @@ else
 fi
 AM_CONDITIONAL(CLAWS_VALGRIND, test x"$enable_valgrind" = x"yes")
 
-dnl disabled by default
-AC_ARG_ENABLE(appdata,
-               [  --enable-appdata             Build appdata],
-               [enable_appdata=$enableval], [enable_appdata=no])
-
-AC_MSG_CHECKING([whether to build appdata])
-if test x"$enable_appdata" != xno; then
-       AC_MSG_RESULT(yes)
-else
-       AC_MSG_RESULT(no)
-fi
-AM_CONDITIONAL(BUILD_APPDATA, test x"$enable_appdata" = x"yes")
-
 dnl *************************
 dnl ** section for plugins **
 dnl *************************
@@ -975,10 +971,6 @@ AC_ARG_ENABLE(gdata-plugin,
                [  --disable-gdata-plugin          Do not build gdata plugin],
                [enable_gdata_plugin=$enableval], [enable_gdata_plugin=auto])
 
-AC_ARG_ENABLE(geolocation-plugin,
-               [  --disable-geolocation-plugin    Do not build geolocation plugin],
-               [enable_geolocation_plugin=$enableval], [enable_geolocation_plugin=auto])
-
 AC_ARG_ENABLE(libravatar-plugin,
                [  --disable-libravatar-plugin     Do not build libravatar  plugin],
                [enable_libravatar_plugin=$enableval], [enable_libravatar_plugin=auto])
@@ -987,6 +979,10 @@ AC_ARG_ENABLE(mailmbox-plugin,
                [  --disable-mailmbox-plugin       Do not build mailmbox plugin],
                [enable_mailmbox_plugin=$enableval], [enable_mailmbox_plugin=auto])
 
+AC_ARG_ENABLE(managesieve-plugin,
+               [  --disable-managesieve-plugin       Do not build managesieve plugin],
+               [enable_managesieve_plugin=$enableval], [enable_managesieve_plugin=auto])
+
 AC_ARG_ENABLE(newmail-plugin,
                [  --disable-newmail-plugin        Do not build newmail plugin],
                [enable_newmail_plugin=$enableval], [enable_newmail_plugin=auto])
@@ -1079,15 +1075,21 @@ AC_SUBST(CURL_LIBS)
 AC_SUBST(CURL_CFLAGS)
 
 dnl expat **********************************************************************
-HAVE_EXPAT=no
-AC_CHECK_HEADER(expat.h, [expat_header=yes], [])
-AC_CHECK_LIB(expat, XML_ParserCreate, [expat_lib=yes], [])
-if test x"$expat_header" = xyes -a x"$expat_lib"=xyes; then
-       HAVE_EXPAT=yes
-       AC_DEFINE(HAVE_EXPAT, 1, [Define if expat is available])
-       EXPAT_LIBS="-lexpat"
+PKG_CHECK_MODULES(EXPAT, expat, HAVE_EXPAT=yes, HAVE_EXPAT=no)
+
+if test x"$HAVE_EXPAT" = xno; then
+       AC_CHECK_HEADER(expat.h, [expat_header=yes], [expat_header=no])
+       AC_CHECK_LIB(expat, XML_ParserCreate, [expat_lib=yes], [expat_lib=no])
+       if test x"$expat_header" = xyes -a x"$expat_lib"=xyes; then
+               HAVE_EXPAT=yes
+               EXPAT_CFLAGS=""
+               EXPAT_LIBS="-lexpat"
+       fi
 fi
 
+AC_SUBST(EXPAT_CFLAGS)
+AC_SUBST(EXPAT_LIBS)
+
 dnl webkit *********************************************************************
 PKG_CHECK_MODULES(WEBKIT, webkit-1.0 >= 1.1.14, HAVE_WEBKIT=yes, HAVE_WEBKIT=no)
 AC_SUBST(WEBKIT_LIBS)
@@ -1110,7 +1112,7 @@ AC_SUBST(LIBSOUP_GNOME_CFLAGS)
 AC_SUBST(LIBSOUP_GNOME_LIBS)
 
 dnl libarchive *****************************************************************
-AC_SEARCH_LIBS([archive_read_new], [archive],
+AC_CHECK_LIB([archive], [archive_read_new],
                       ARCHIVE_LIBS=-larchive
                       HAVE_ARCHIVE=yes
                       AC_SUBST(ARCHIVE_LIBS),
@@ -1118,22 +1120,7 @@ AC_SEARCH_LIBS([archive_read_new], [archive],
                       )
 
 dnl libgdata *******************************************************************
-dnl Plugin handles compatibility back to 0.6.4 so there are multiple checks.
-PKG_CHECK_MODULES(GDATA, libgdata >= 0.9.1, HAVE_GDATA=yes, HAVE_GDATA=no)
-if test x"$HAVE_GDATA" = xyes; then
-       AC_DEFINE(HAVE_GDATA_VERSION_0_9_1, 1, [at least version 0.9.1 of libgdata is available])
-       AC_DEFINE(HAVE_GDATA_VERSION_0_9, 1, [at least version 0.9 of libgdata is available])
-else
-       PKG_CHECK_MODULES(GDATA, libgdata >= 0.9, HAVE_GDATA=yes, HAVE_GDATA=no)
-fi
-if test x"$HAVE_GDATA" = xyes; then
-       AC_DEFINE(HAVE_GDATA_VERSION_0_9, 1, [at least version 0.9 of libgdata is available])
-else
-       PKG_CHECK_MODULES(GDATA, libgdata >= 0.6.4, HAVE_GDATA=yes, HAVE_GDATA=no)
-fi
-if test x"$HAVE_GDATA" = xyes; then
-       AC_DEFINE(CM_GDATA_CLIENT_ID, ["Claws Mail GData plugin"], [client id])
-fi
+PKG_CHECK_MODULES(GDATA, libgdata >= 0.17.1, HAVE_GDATA=yes, HAVE_GDATA=no)
 AC_SUBST(GDATA_CFLAGS)
 AC_SUBST(GDATA_LIBS)
 
@@ -1276,11 +1263,13 @@ AC_SUBST(libcanberra_gtk_CFLAGS)
 AC_SUBST(libcanberra_gtk_LIBS)
 
 dnl libindicate ****************************************************************
-dnl We support either 0.3+ or 0.5+
+dnl We support either 0.3+ or 0.5+ or 0.6+ or 0.7+
 LIBINDICATE_MODULE=indicate
 LIBINDICATE_REQUIRED=0.3.0
 
 PKG_CHECK_EXISTS(indicate-0.5 >= 0.5.0, LIBINDICATE_MODULE=indicate-0.5)
+PKG_CHECK_EXISTS(indicate-0.6 >= 0.6.0, LIBINDICATE_MODULE=indicate-0.6)
+PKG_CHECK_EXISTS(indicate-0.7 >= 0.7.0, LIBINDICATE_MODULE=indicate-0.7)
 PKG_CHECK_MODULES(libindicate, $LIBINDICATE_MODULE >= $LIBINDICATE_REQUIRED, HAVE_LIBINDICATE=yes, HAVE_LIBINDICATE=no)
 if test x"$HAVE_LIBINDICATE" = xyes; then
        AC_DEFINE(NOTIFICATION_INDICATOR, 1, [Activate support for indicators])
@@ -1470,31 +1459,6 @@ else
        AC_MSG_RESULT(no)
 fi
 
-AC_MSG_CHECKING([whether to build geolocation plugin])
-if test x"$enable_geolocation_plugin" != xno; then
-       dependencies_missing=""
-
-       if test x"$HAVE_CHAMPLAIN" = xno; then
-               dependencies_missing="libchamplain $dependencies_missing"
-       fi
-
-       if test x"$dependencies_missing" = x; then
-               PLUGINS="$PLUGINS geolocation"
-               AC_MSG_RESULT(yes)
-       elif test x"$enable_geolocation_plugin" = xauto; then
-               AC_MSG_RESULT(no)
-               AC_MSG_WARN("Plugin geolocation will not be built; missing $dependencies_missing")
-               enable_geolocation_plugin=no
-               MISSING_DEPS_PLUGINS="$MISSING_DEPS_PLUGINS geolocation"
-       else
-               AC_MSG_RESULT(no)
-               AC_MSG_ERROR("Plugin geolocation cannot be built; missing $dependencies_missing")
-       fi
-else
-       DISABLED_PLUGINS="$DISABLED_PLUGINS geolocation"
-       AC_MSG_RESULT(no)
-fi
-
 AC_MSG_CHECKING([whether to build libravatar plugin])
 if test x"$enable_libravatar_plugin" != xno; then
        dependencies_missing=""
@@ -1529,6 +1493,15 @@ else
        AC_MSG_RESULT(no)
 fi
 
+AC_MSG_CHECKING([whether to build managesieve plugin])
+if test x"$enable_managesieve_plugin" != xno; then
+       PLUGINS="$PLUGINS managesieve"
+       AC_MSG_RESULT(yes)
+else
+       DISABLED_PLUGINS="$DISABLED_PLUGINS managesieve"
+       AC_MSG_RESULT(no)
+fi
+
 AC_MSG_CHECKING([whether to build newmail plugin])
 if test x"$enable_newmail_plugin" != xno; then
        PLUGINS="$PLUGINS newmail"
@@ -1879,9 +1852,9 @@ AM_CONDITIONAL(BUILD_DEMO_PLUGIN,         test x"$enable_demo_plugin" != xno)
 AM_CONDITIONAL(BUILD_FANCY_PLUGIN,             test x"$enable_fancy_plugin" != xno)
 AM_CONDITIONAL(BUILD_FETCHINFO_PLUGIN,         test x"$enable_fetchinfo_plugin" != xno)
 AM_CONDITIONAL(BUILD_GDATA_PLUGIN,             test x"$enable_gdata_plugin" != xno)
-AM_CONDITIONAL(BUILD_GEOLOCATION_PLUGIN,       test x"$enable_geolocation_plugin" != xno)
 AM_CONDITIONAL(BUILD_LIBRAVATAR_PLUGIN,                test x"$enable_libravatar_plugin" != xno)
 AM_CONDITIONAL(BUILD_MAILMBOX_PLUGIN,          test x"$enable_mailmbox_plugin" != xno)
+AM_CONDITIONAL(BUILD_MANAGESIEVE_PLUGIN,               test x"$enable_managesieve_plugin" != xno)
 AM_CONDITIONAL(BUILD_NEWMAIL_PLUGIN,           test x"$enable_newmail_plugin" != xno)
 AM_CONDITIONAL(BUILD_NOTIFICATION_PLUGIN,      test x"$enable_notification_plugin" != xno)
 AM_CONDITIONAL(BUILD_HOTKEYS,                  test x"$enable_notification_plugin" != xno -a x"$HAVE_HOTKEYS" = xyes)
@@ -1905,7 +1878,6 @@ dnl ****************************
 
 AC_OUTPUT([
 Makefile
-appdata/Makefile
 m4/Makefile
 po/Makefile.in
 src/common/version.h
@@ -1928,9 +1900,9 @@ src/plugins/demo/Makefile
 src/plugins/fancy/Makefile
 src/plugins/fetchinfo/Makefile
 src/plugins/gdata/Makefile
-src/plugins/geolocation/Makefile
 src/plugins/libravatar/Makefile
 src/plugins/mailmbox/Makefile
+src/plugins/managesieve/Makefile
 src/plugins/newmail/Makefile
 src/plugins/notification/Makefile
 src/plugins/notification/gtkhotkey/Makefile
@@ -2016,7 +1988,6 @@ echo "DBUS               : $enable_dbus"
 echo "NetworkManager     : $enable_networkmanager"
 echo "Manual             : $enable_manual"
 echo "Generic UMPC code  : $enable_generic_umpc"
-echo "AppData            : $enable_appdata"
 echo "Config dir         : $ac_cv_with_config_dir"
 
 echo "Plugins"