# (git tag -s gnupg-2.n.m) and run "./autogen.sh --force". Please
# bump the version number immediately *after* the release and do
# another commit and push so that the git magic is able to work.
-m4_define([mym4_version], [2.1.0])
+m4_define([mym4_package],[gnupg])
+m4_define([mym4_major], [2])
+m4_define([mym4_minor], [1])
+m4_define([mym4_micro], [0])
+
+# To start a new development series, i.e a new major or minor number
+# you need to mark an arbitrary commit before the first beta release
+# with an annotated tag. For example the 2.1 branch starts off with
+# the tag "gnupg-2.1-base". This is used as the base for counting
+# beta numbers before the first release of a series.
# Below is m4 magic to extract and compute the git revision number,
# the decimalized short revision number, a beta version string and a
-# flag indicating a development version (mym4_isgit). Note that the
+# flag indicating a development version (mym4_isbeta). Note that the
# m4 processing is done by autoconf and not during the configure run.
-m4_define([mym4_revision],
- m4_esyscmd([git rev-parse --short HEAD | tr -d '\n\r']))
-m4_define([mym4_revision_dec],
- m4_esyscmd_s([echo $((0x$(echo ]mym4_revision[|head -c 4)))]))
-m4_define([mym4_betastring],
- m4_esyscmd_s([git describe --match 'gnupg-2.[0-9].*[0-9]' --long|\
- awk -F- '$3!=0{print"-beta"$3}']))
-m4_define([mym4_isgit],m4_if(mym4_betastring,[],[no],[yes]))
-m4_define([mym4_full_version],[mym4_version[]mym4_betastring])
-
-AC_INIT([gnupg],[mym4_full_version], [http://bugs.gnupg.org])
+m4_define([mym4_verslist], m4_split(m4_esyscmd([./autogen.sh --find-version] \
+ mym4_package mym4_major mym4_minor mym4_micro),[:]))
+m4_define([mym4_isbeta], m4_argn(2, mym4_verslist))
+m4_define([mym4_version], m4_argn(4, mym4_verslist))
+m4_define([mym4_revision], m4_argn(7, mym4_verslist))
+m4_define([mym4_revision_dec], m4_argn(8, mym4_verslist))
+m4_esyscmd([echo ]mym4_version[>VERSION])
+AC_INIT([mym4_package],[mym4_version], [http://bugs.gnupg.org])
-NEED_GPG_ERROR_VERSION=1.11
+NEED_GPG_ERROR_VERSION=1.14
NEED_LIBGCRYPT_API=1
NEED_LIBGCRYPT_VERSION=1.6.0
NEED_NPTH_API=1
NEED_NPTH_VERSION=0.91
+NEED_GNUTLS_VERSION=3.0
+
-development_version=mym4_isgit
+development_version=mym4_isbeta
PACKAGE=$PACKAGE_NAME
PACKAGE_GT=${PACKAGE_NAME}2
VERSION=$PACKAGE_VERSION
have_npth=no
have_libusb=no
have_adns=no
+gnupg_have_ldap="n/a"
use_zip=yes
use_bzip2=yes
use_exec=yes
use_trust_models=yes
-disable_keyserver_path=no
card_support=yes
use_ccid_driver=yes
use_standard_socket=yes
-dirmngr_auto_start=no
-
-try_ks_ldap=no
+dirmngr_auto_start=yes
GNUPG_BUILD_PROGRAM(gpg, yes)
GNUPG_BUILD_PROGRAM(gpgsm, yes)
[The name of the installed GPG tool])
-# Some folks want to use only the agent from this packet. Make it
-# easier for them by providing the configure option
-# --enable-only-agent.
-AC_ARG_ENABLE(agent-only,
- AC_HELP_STRING([--enable-agent-only],[build only the gpg-agent]),
- build_agent_only=$enableval)
-
# SELinux support includes tracking of sensitive files to avoid
# leaking their contents through processing these files by gpg itself
AC_MSG_CHECKING([whether SELinux support is requested])
fi],withval=no)
AC_MSG_RESULT($withval)
fi
-
- AC_MSG_CHECKING([whether to enable external keyserver helpers])
- AC_ARG_ENABLE(keyserver-helpers,
- [ --disable-keyserver-helpers disable all external keyserver support],
- [if test "$enableval" = no ; then
- AC_DEFINE(DISABLE_KEYSERVER_HELPERS,1,
- [define to disable keyserver helpers])
- fi],enableval=yes)
- gnupg_cv_enable_keyserver_helpers=$enableval
- AC_MSG_RESULT($enableval)
-
- if test "$gnupg_cv_enable_keyserver_helpers" = yes ; then
- # LDAP is defined only after we confirm the library is available later
- AC_MSG_CHECKING([whether LDAP keyserver support is requested])
- AC_ARG_ENABLE(ldap,
- AC_HELP_STRING([--disable-ldap],[disable LDAP keyserver interface only]),
- try_ks_ldap=$enableval, try_ks_ldap=yes)
- AC_MSG_RESULT($try_ks_ldap)
-
- AC_MSG_CHECKING([whether HKP keyserver support is requested])
- AC_ARG_ENABLE(hkp,
- AC_HELP_STRING([--disable-hkp],[disable HKP keyserver interface only]),
- try_hkp=$enableval, try_hkp=yes)
- AC_MSG_RESULT($try_hkp)
-
- AC_MSG_CHECKING([whether finger key fetching support is requested])
- AC_ARG_ENABLE(finger,
- AC_HELP_STRING([--disable-finger],
- [disable finger key fetching interface only]),
- try_finger=$enableval, try_finger=yes)
- AC_MSG_RESULT($try_finger)
-
- AC_MSG_CHECKING([whether generic object key fetching support is requested])
- AC_ARG_ENABLE(generic,
- AC_HELP_STRING([--disable-generic],
- [disable generic object key fetching interface only]),
- try_generic=$enableval, try_generic=yes)
- AC_MSG_RESULT($try_generic)
-
- AC_MSG_CHECKING([whether email keyserver support is requested])
- AC_ARG_ENABLE(mailto,
- AC_HELP_STRING([--enable-mailto],
- [enable email keyserver interface only]),
- try_mailto=$enableval, try_mailto=no)
- AC_MSG_RESULT($try_mailto)
- fi
-
- AC_MSG_CHECKING([whether keyserver exec-path is enabled])
- AC_ARG_ENABLE(keyserver-path,
- AC_HELP_STRING([--disable-keyserver-path],
- [disable the exec-path option for keyserver helpers]),
- [if test "$enableval" = no ; then
- disable_keyserver_path=yes
- fi],enableval=yes)
- AC_MSG_RESULT($enableval)
fi
use_ccid_driver=$enableval)
AC_MSG_RESULT($use_ccid_driver)
-#
-# Dirmngr is nowadays a system service and thus it usually does no
-# make sense to start it as needed. However on some systems this is
-# possible; this option enable the feature.
-#
AC_MSG_CHECKING([whether to auto start dirmngr])
AC_ARG_ENABLE(dirmngr-auto-start,
- AC_HELP_STRING([--enable-dirmngr-auto-start],
- [enable auto starting of the dirmngr]),
+ AC_HELP_STRING([--disable-dirmngr-auto-start],
+ [disable auto starting of the dirmngr]),
dirmngr_auto_start=$enableval)
AC_MSG_RESULT($dirmngr_auto_start)
if test "$dirmngr_auto_start" = yes ; then
#else
#define GNUPG_DEFAULT_HOMEDIR "~/.gnupg"
#endif
-#define GNUPG_PRIVATE_KEYS_DIR "private-keys-v1.d"
+#define GNUPG_PRIVATE_KEYS_DIR "private-keys-v1.d"
+#define GNUPG_OPENPGP_REVOC_DIR "openpgp-revocs.d"
/* For some systems (DOS currently), we hardcode the path here. For
POSIX systems the values are constructed by the Makefiles, so that
# endif
#endif
+/* Provide the es_ macro for estream. */
+#define GPGRT_ENABLE_ES_MACROS 1
/* Tell libgcrypt not to use its own libgpg-error implementation. */
#define USE_LIBGPG_ERROR 1
handler. */
#define HTTP_NO_WSASTARTUP
-/* We want to use the libgcrypt provided memory allocation for
- asprintf. */
-#define _ESTREAM_PRINTF_REALLOC gcry_realloc
-#define _ESTREAM_PRINTF_EXTRA_INCLUDE "../common/util.h"
-
/* Under Windows we use the gettext code from libgpg-error. */
#define GPG_ERR_ENABLE_GETTEXT_MACROS
try_gettext=yes
+require_iconv=yes
have_dosish_system=no
have_w32_system=no
have_w32ce_system=no
[Because the Unix gettext has too much overhead on
MingW32 systems and these systems lack Posix functions,
we use a simplified version of gettext])
- disable_keyserver_path=yes
have_dosish_system=yes
have_w32_system=yes
run_tests=no
;;
*-linux-androideabi)
have_android_system=yes
+ # Android is fully utf-8 and we do not want to use iconv to
+ # keeps things simple
+ require_iconv=no
run_tests=no
;;
*)
fi
AM_CONDITIONAL(USE_LDAPWRAPPER, test "$use_ldapwrapper" = yes)
-if test "$disable_keyserver_path" = yes; then
- AC_DEFINE(DISABLE_KEYSERVER_PATH,1,
- [Defined to disable exec-path for keyserver helpers])
-fi
#
# Allows enabling the use of a standard socket by default This is
# (These need to go after AC_PROG_CC so that $EXEEXT is defined)
AC_DEFINE_UNQUOTED(EXEEXT,"$EXEEXT",[The executable file extension, if any])
-if test x"$try_hkp" = xyes ; then
- AC_SUBST(GPGKEYS_HKP,"gpg2keys_hkp$EXEEXT")
-fi
-
-if test x"$try_finger" = xyes ; then
- AC_SUBST(GPGKEYS_FINGER,"gpg2keys_finger$EXEEXT")
-fi
-
-
#
# Checks for libraries.
#
AM_PATH_NPTH("$NEED_NPTH_API:$NEED_NPTH_VERSION",have_npth=yes,have_npth=no)
if test "$have_npth" = "yes"; then
- # We define this macro because some code parts require it.
- AC_DEFINE(USE_NPTH, 1,
+ AC_DEFINE(HAVE_NPTH, 1,
[Defined if the New Portable Thread Library is available])
+ AC_DEFINE(USE_NPTH, 1,
+ [Defined if support for nPth is requested and nPth is available])
else
AC_MSG_WARN([[
***
***]])
fi
+#
+# Check whether GNUTLS is available
+#
+PKG_CHECK_MODULES([LIBGNUTLS], [gnutls >= $NEED_GNUTLS_VERSION],
+ [have_gnutls=yes],
+ [have_gnutls=no])
+if test "$have_gnutls" = "yes"; then
+ AC_SUBST([LIBGNUTLS_CFLAGS])
+ AC_SUBST([LIBGNUTLS_LIBS])
+ AC_DEFINE(HTTP_USE_GNUTLS, 1, [Enable GNUTLS support in http.c])
+else
+ tmp=$(echo "$LIBGNUTLS_PKG_ERRORS" | tr '\n' '\v' | sed 's/\v/\n*** /g')
+ AC_MSG_WARN([[
+***
+*** Building without GNUTLS - no TLS access to keyservers.
+***
+*** $tmp]])
+fi
+
+
AC_MSG_NOTICE([checking for networking options])
#
# Now try for the resolver functions so we can use DNS for SRV, PA and CERT.
#
-if test x"$try_hkp" = xyes || test x"$try_http" = xyes ; then
- AC_ARG_ENABLE(dns-srv,
- AC_HELP_STRING([--disable-dns-srv],
- [disable the use of DNS SRV in HKP and HTTP]),
- use_dns_srv=$enableval,use_dns_srv=yes)
-fi
+AC_ARG_ENABLE(dns-srv,
+ AC_HELP_STRING([--disable-dns-srv],
+ [disable the use of DNS SRV in HKP and HTTP]),
+ use_dns_srv=$enableval,use_dns_srv=yes)
AC_ARG_ENABLE(dns-pka,
AC_HELP_STRING([--disable-dns-pka],
#
# Check for LDAP
#
-if test "$try_ks_ldap" = yes || test "$build_dirmngr" = "yes" ; then
+# Note that running the check changes the variable
+# gnupg_have_ldap from "n/a" to "no" or "yes".
+if test "$build_dirmngr" = "yes" ; then
GNUPG_CHECK_LDAP($NETLIBS)
AC_CHECK_LIB(lber, ber_free,
[ LBER_LIBS="$LBER_LIBS -llber"
AC_SUBST(LBER_LIBS)
#
-# Check for curl. We fake the curl API if libcurl isn't installed.
-# We require 7.10 or later as we use curl_version_info().
-#
-LIBCURL_CHECK_CONFIG([yes],[7.10],,[fake_curl=yes])
-AM_CONDITIONAL(FAKE_CURL,test x"$fake_curl" = xyes)
-
-# Generic, for us, means curl
-
-if test x"$try_generic" = xyes ; then
- AC_SUBST(GPGKEYS_CURL,"gpg2keys_curl$EXEEXT")
-fi
-
-#
# Check for sendmail
#
# This isn't necessarily sendmail itself, but anything that gives a
# sendmail-ish interface to the outside world. That includes Exim,
# Postfix, etc. Basically, anything that can handle "sendmail -t".
-if test "$try_mailto" = yes ; then
- AC_ARG_WITH(mailprog,
+AC_ARG_WITH(mailprog,
AC_HELP_STRING([--with-mailprog=NAME],
[use "NAME -t" for mail transport]),
,with_mailprog=yes)
-
- if test x"$with_mailprog" = xyes ; then
+if test x"$with_mailprog" = xyes ; then
AC_PATH_PROG(SENDMAIL,sendmail,,$PATH:/usr/sbin:/usr/libexec:/usr/lib)
- if test "$ac_cv_path_SENDMAIL" ; then
- GPGKEYS_MAILTO="gpg2keys_mailto"
- fi
- elif test x"$with_mailprog" != xno ; then
+elif test x"$with_mailprog" != xno ; then
AC_MSG_CHECKING([for a mail transport program])
AC_SUBST(SENDMAIL,$with_mailprog)
AC_MSG_RESULT($with_mailprog)
- GPGKEYS_MAILTO="gpg2keys_mailto"
- fi
fi
-AC_SUBST(GPGKEYS_MAILTO)
#
# Construct a printable name of the OS
#
# Checking for iconv
#
-AM_ICONV
+if test "$require_iconv" = yes; then
+ AM_ICONV
+else
+ LIBICONV=
+ LTLIBICONV=
+ AC_SUBST(LIBICONV)
+ AC_SUBST(LTLIBICONV)
+fi
#
AC_FUNC_FORK
AC_CHECK_FUNCS([strerror strlwr tcgetattr mmap canonicalize_file_name])
AC_CHECK_FUNCS([strcasecmp strncasecmp ctermid times gmtime_r strtoull])
-AC_CHECK_FUNCS([unsetenv fcntl ftruncate canonicalize_file_name])
+AC_CHECK_FUNCS([unsetenv fcntl ftruncate inet_ntop canonicalize_file_name])
AC_CHECK_FUNCS([gettimeofday getrusage getrlimit setrlimit clock_gettime])
AC_CHECK_FUNCS([atexit raise getpagesize strftime nl_langinfo setlocale])
AC_CHECK_FUNCS([waitpid wait4 sigaction sigprocmask pipe getaddrinfo])
if test x"$_gcc_psign" = xyes ; then
CFLAGS="$CFLAGS -Wpointer-arith"
fi
-
- # The undocumented option -Wno-psabi suppresses the annoying
- # "the ABI of passing union with long double has changed in GCC 4.4"
- # which is emitted in estream-printf.c but entirely irrelvant
- # because that union is local to the file.
- if test x"$_gcc_silent_wno" = xyes ; then
- CFLAGS="$CFLAGS -Wno-psabi"
- fi
fi
fi])
#
-# Prepare building of estream
-#
-estream_INIT
-
-
-#
# Decide what to build
#
-if test "$have_adns" = "yes"; then
- AC_SUBST(GPGKEYS_KDNS, "gpg2keys_kdns$EXEEXT")
-fi
-
build_scdaemon_extra=""
if test "$build_scdaemon" = "yes"; then
fi
-if test "$build_agent_only" = "yes" ; then
- build_gpg=no
- build_gpgsm=no
- build_scdaemon=no
- build_tools=no
- build_doc=no
-fi
-
#
# Set variables for use by automake makefiles.
#
# Define Name strings
#
AC_DEFINE_UNQUOTED(GNUPG_NAME, "GnuPG", [The name of the project])
+
AC_DEFINE_UNQUOTED(GPG_NAME, "gpg", [The name of the OpenPGP tool])
+AC_DEFINE_UNQUOTED(GPG_DISP_NAME, "GnuPG", [The displayed name of gpg])
+
AC_DEFINE_UNQUOTED(GPGSM_NAME, "gpgsm", [The name of the S/MIME tool])
+AC_DEFINE_UNQUOTED(GPGSM_DISP_NAME, "GPGSM", [The displayed name of gpgsm])
+
AC_DEFINE_UNQUOTED(GPG_AGENT_NAME, "gpg-agent", [The name of the agent])
+AC_DEFINE_UNQUOTED(GPG_AGENT_DISP_NAME, "GPG Agent",
+ [The displayed name of gpg-agent])
+
AC_DEFINE_UNQUOTED(SCDAEMON_NAME, "scdaemon", [The name of the scdaemon])
+AC_DEFINE_UNQUOTED(SCDAEMON_DISP_NAME, "SCDaemon",
+ [The displayed name of scdaemon])
+
AC_DEFINE_UNQUOTED(DIRMNGR_NAME, "dirmngr", [The name of the dirmngr])
+AC_DEFINE_UNQUOTED(DIRMNGR_DISP_NAME, "DirMngr",
+ [The displayed name of dirmngr])
+
AC_DEFINE_UNQUOTED(G13_NAME, "g13", [The name of the g13 tool])
+AC_DEFINE_UNQUOTED(G13_DISP_NAME, "G13", [The displayed name of g13])
+
AC_DEFINE_UNQUOTED(GPGCONF_NAME, "gpgconf", [The name of the gpgconf tool])
+AC_DEFINE_UNQUOTED(GPGCONF_DISP_NAME, "GPGConf",
+ [The displayed name of gpgconf])
+
AC_DEFINE_UNQUOTED(GPGTAR_NAME, "gpgtar", [The name of the gpgtar tool])
AC_DEFINE_UNQUOTED(GPG_AGENT_INFO_NAME, "GPG_AGENT_INFO",
[The name of the agent socket for ssh])
AC_DEFINE_UNQUOTED(DIRMNGR_INFO_NAME, "DIRMNGR_INFO",
[The name of the dirmngr info envvar])
+AC_DEFINE_UNQUOTED(SCDAEMON_SOCK_NAME, "S.scdaemon",
+ [The name of the SCdaemon socket])
AC_DEFINE_UNQUOTED(DIRMNGR_SOCK_NAME, "S.dirmngr",
[The name of the dirmngr socket])
die=yes
AC_MSG_NOTICE([[
***
-*** You need a LDAP library to build this program.
+*** The Dirmngr part requires an LDAP library
*** Check out
*** http://www.openldap.org
*** for a suitable implementation.
***]])
fi
+if test "$require_iconv" = yes; then
+ if test "$am_func_iconv" != yes; then
+ die=yes
+ AC_MSG_NOTICE([[
+***
+*** The system does not provide a working iconv function. Please
+*** install a suitable library; for example GNU Libiconv which is
+*** available at:
+*** http://ftp.gnu.org/gnu/libiconv/
+***]])
+ fi
+fi
+
if test "$die" = "yes"; then
AC_MSG_ERROR([[
***
tests/openpgp/Makefile
tests/pkits/Makefile
])
-#keyserver/Makefile
-#keyserver/gpg2keys_mailto
-#keyserver/gpg2keys_test
AC_OUTPUT
Use standard socket: $use_standard_socket
Dirmngr auto start: $dirmngr_auto_start
+ Readline support: $gnupg_cv_have_readline
+ DNS SRV support: $use_dns_srv
+ TLS support: $have_gnutls
"
if test x"$use_regex" != xyes ; then
echo "