2001-11-18 Marcus Brinkmann <marcus@g10code.de>
* configure.in: Renamed to ... * configure.ac: ... this. Update to autoconf 2.52. Lots of small changes in the transition. Support --with-gpg=PATH and --with-gpgsm=PATH options. Check if test suites can be run. * acconfig.h: Add GPGSM_PATH. * Makefile.am: New variable `tests', set to `tests' if RUN_GPG_TESTS. (SUBDIRS): Replace string `tests' with variable `tests'. gpgme/ 2001-11-18 Marcus Brinkmann <marcus@g10code.de> * configure.in: Renamed to ... * configure.ac: ... this. Update to autoconf 2.52. Lots of small changes in the transition. Support --with-gpg=PATH and --with-gpgsm=PATH options. Check if test suites can be run. * acconfig.h: Add GPGSM_PATH. * Makefile.am: New variable `tests', set to `tests' if RUN_GPG_TESTS. (SUBDIRS): Replace string `tests' with variable `tests'.
This commit is contained in:
parent
590bd5a7d8
commit
1a9da605ad
11
ChangeLog
11
ChangeLog
@ -1,3 +1,14 @@
|
||||
2001-11-18 Marcus Brinkmann <marcus@g10code.de>
|
||||
|
||||
* configure.in: Renamed to ...
|
||||
* configure.ac: ... this. Update to autoconf 2.52. Lots of small
|
||||
changes in the transition. Support --with-gpg=PATH and
|
||||
--with-gpgsm=PATH options. Check if test suites can be run.
|
||||
* acconfig.h: Add GPGSM_PATH.
|
||||
* Makefile.am: New variable `tests', set to `tests' if
|
||||
RUN_GPG_TESTS.
|
||||
(SUBDIRS): Replace string `tests' with variable `tests'.
|
||||
|
||||
2001-10-22 Marcus Brinkmann <marcus@g10code.de>
|
||||
|
||||
* autogen.sh: Invoke automake with `-a' (add missing files).
|
||||
|
10
Makefile.am
10
Makefile.am
@ -26,13 +26,17 @@ bonobo = bonobo
|
||||
else
|
||||
bonobo =
|
||||
endif
|
||||
|
||||
if BUILD_COMPLUS
|
||||
complus = complus
|
||||
else
|
||||
complus =
|
||||
endif
|
||||
|
||||
if RUN_GPG_TESTS
|
||||
tests = tests
|
||||
else
|
||||
tests =
|
||||
endif
|
||||
|
||||
SUBDIRS = jnlib gpgme tests doc ${bonobo} ${complus}
|
||||
|
||||
|
||||
SUBDIRS = jnlib gpgme ${tests} doc ${bonobo} ${complus}
|
||||
|
3
NEWS
3
NEWS
@ -1,4 +1,7 @@
|
||||
|
||||
* GPGME can be compiled without GnuPG being installed (--with-gpg=PATH),
|
||||
and even cross-compiled.
|
||||
|
||||
* New operation gpgme_op_decrypt_verify to decrypt and verify
|
||||
signatures simultaneously.
|
||||
|
||||
|
@ -39,12 +39,15 @@
|
||||
/* Some systems have a mkdir that takes a single argument. */
|
||||
#undef MKDIR_TAKES_ONE_ARG
|
||||
|
||||
/* path to the gpg binary */
|
||||
/* Path to the GnuPG binary. */
|
||||
#undef GPG_PATH
|
||||
/* min. needed GPG version */
|
||||
/* Min. needed GnuPG version. */
|
||||
#undef NEED_GPG_VERSION
|
||||
|
||||
/* stuff needed by lnlib/ */
|
||||
/* Path to the GpgSM binary. */
|
||||
#undef GPGSM_PATH
|
||||
|
||||
/* Stuff needed by jnlib. */
|
||||
#undef HAVE_BYTE_TYPEDEF
|
||||
#undef HAVE_USHORT_TYPEDEF
|
||||
#undef HAVE_ULONG_TYPEDEF
|
||||
|
@ -19,16 +19,22 @@
|
||||
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
|
||||
|
||||
# (Process this file with autoconf to produce a configure script.)
|
||||
AC_REVISION($Revision$)dnl
|
||||
|
||||
AC_INIT(gpgme/gpgme.h)
|
||||
AC_INIT(gpgme, 0.2.3a, [gnupg-devel@gnupg.org])
|
||||
AC_PREREQ(2.52)
|
||||
AC_REVISION($Revision$)
|
||||
|
||||
AC_CONFIG_SRCDIR(gpgme/gpgme.h)
|
||||
AM_CONFIG_HEADER(config.h)
|
||||
AM_INIT_AUTOMAKE(gpgme, 0.2.3a)
|
||||
AM_MAINTAINER_MODE
|
||||
# Version numbers (Remember to change them just before a release)
|
||||
|
||||
AC_PROG_CC
|
||||
|
||||
# Version numbers (Remember to change them just before a release.)
|
||||
# (Interfaces removed: CURRENT++, AGE=0, REVISION=0)
|
||||
# (Interfaces added: CURRENT++, AGE++, REVISION=0)
|
||||
# (No interfaces changed: REVISION++)
|
||||
AM_INIT_AUTOMAKE(gpgme,0.2.3a)
|
||||
# XXXX new functions
|
||||
LIBGPGME_LT_CURRENT=4
|
||||
LIBGPGME_LT_AGE=4
|
||||
@ -41,21 +47,12 @@ AC_SUBST(LIBGPGME_LT_AGE)
|
||||
AC_SUBST(LIBGPGME_LT_REVISION)
|
||||
AC_DEFINE_UNQUOTED(NEED_GPG_VERSION, "$NEED_GPG_VERSION")
|
||||
|
||||
dnl Don't default to build static libs.
|
||||
dnl AC_DISABLE_STATIC
|
||||
AC_PROG_LIBTOOL
|
||||
|
||||
dnl
|
||||
dnl Checks for programs
|
||||
dnl
|
||||
AC_ARG_PROGRAM
|
||||
|
||||
dnl Don't default to build static libs
|
||||
dnl AM_DISABLE_STATIC
|
||||
AM_PROG_LIBTOOL
|
||||
|
||||
if test "$GCC" = yes; then
|
||||
CFLAGS="$CFLAGS -Wall -Wcast-align -Wshadow -Wstrict-prototypes"
|
||||
fi
|
||||
|
||||
GPG=
|
||||
GPG_DEFAULT=no
|
||||
GPGSM_DEFAULT=no
|
||||
component_system=None
|
||||
case "${target}" in
|
||||
*-*-mingw32* | i?86-emx-os2 | i?86-*-os2*emx | i?86-*-msdosdjgpp* )
|
||||
@ -64,85 +61,119 @@ case "${target}" in
|
||||
# DOS with the DJGPP environment
|
||||
AC_DEFINE(HAVE_DRIVE_LETTERS)
|
||||
AC_DEFINE(HAVE_DOSISH_SYSTEM)
|
||||
GPG='c:\\gnupg\\gpg.exe'
|
||||
GPG_DEFAULT='c:\\gnupg\\gpg.exe'
|
||||
GPGSM_DEFAULT='c:\\gnupg\\gpgsm.exe'
|
||||
#component_system='COM+'
|
||||
;;
|
||||
*)
|
||||
dnl # XXX: Probably use exec-prefix here?
|
||||
dnl GPG_DEFAULT='/usr/bin/gpg'
|
||||
dnl GPGSM_DEFAULT='/usr/bin/gpgsm'
|
||||
;;
|
||||
esac
|
||||
|
||||
dnl
|
||||
dnl Checks for libraries.
|
||||
dnl
|
||||
|
||||
|
||||
dnl FIXME: check whether Bonobo is installed
|
||||
|
||||
dnl
|
||||
dnl Checks for libraries
|
||||
dnl Checks for header files.
|
||||
dnl
|
||||
|
||||
dnl
|
||||
dnl Checks for header files
|
||||
dnl
|
||||
|
||||
|
||||
|
||||
dnl
|
||||
dnl Checks for typedefs and structures
|
||||
dnl Checks for typedefs and structures.
|
||||
dnl
|
||||
GNUPG_CHECK_TYPEDEF(byte, HAVE_BYTE_TYPEDEF)
|
||||
GNUPG_CHECK_TYPEDEF(ushort, HAVE_USHORT_TYPEDEF)
|
||||
GNUPG_CHECK_TYPEDEF(ulong, HAVE_ULONG_TYPEDEF)
|
||||
GNUPG_CHECK_TYPEDEF(u16, HAVE_U16_TYPEDEF)
|
||||
GNUPG_CHECK_TYPEDEF(u32, HAVE_U32_TYPEDEF)
|
||||
|
||||
# We should not use them in this software;
|
||||
# However jnlib/types.h needs them - so we take the easy way.
|
||||
AC_CHECK_SIZEOF(unsigned short, 2)
|
||||
AC_CHECK_SIZEOF(unsigned int, 4)
|
||||
AC_CHECK_SIZEOF(unsigned long, 4)
|
||||
if test "$ac_cv_sizeof_unsigned_short" = "0" \
|
||||
|| test "$ac_cv_sizeof_unsigned_int" = "0" \
|
||||
|| test "$ac_cv_sizeof_unsigned_long" = "0"; then
|
||||
AC_MSG_WARN([Hmmm, something is wrong with the sizes - using defaults]);
|
||||
AC_CHECK_SIZEOF(unsigned short)
|
||||
AC_CHECK_SIZEOF(unsigned int)
|
||||
AC_CHECK_SIZEOF(unsigned long)
|
||||
|
||||
dnl
|
||||
dnl Checks for compiler features.
|
||||
dnl
|
||||
|
||||
if test "$GCC" = yes; then
|
||||
CFLAGS="$CFLAGS -Wall -Wcast-align -Wshadow -Wstrict-prototypes"
|
||||
fi
|
||||
|
||||
|
||||
|
||||
dnl
|
||||
dnl Checks for compiler features
|
||||
dnl
|
||||
|
||||
dnl
|
||||
dnl Checks for library functions
|
||||
dnl Checks for library functions.
|
||||
dnl
|
||||
dnl These are needed by libjnlib
|
||||
AC_CHECK_FUNCS(memicmp stpcpy strlwr strtoul memmove stricmp)
|
||||
|
||||
|
||||
dnl
|
||||
dnl Checks for system services
|
||||
dnl
|
||||
|
||||
if test -z "$GPG"; then
|
||||
NO_OVERRIDE=no
|
||||
AC_ARG_WITH(gpg,
|
||||
AC_HELP_STRING([--with-gpg=PATH], [use GnuPG binary at PATH]),
|
||||
GPG=$withval, NO_OVERRIDE=yes)
|
||||
if test "$NO_OVERRIDE" = "yes" || test "$GPG" = "yes"; then
|
||||
GPG=
|
||||
NO_OVERRIDE=yes
|
||||
if test "$cross_compiling" != "yes"; then
|
||||
AC_PATH_PROG(GPG, gpg)
|
||||
fi
|
||||
if test -z "$GPG"; then
|
||||
AC_MSG_ERROR([[
|
||||
***
|
||||
*** GnuPG not found. Please install GnuPG first.
|
||||
*** See http://www.gnupg.org/download.html
|
||||
***
|
||||
]])
|
||||
GPG="$GPG_DEFAULT"
|
||||
fi
|
||||
fi
|
||||
AC_DEFINE_UNQUOTED(GPG_PATH, "$GPG")
|
||||
|
||||
|
||||
dnl
|
||||
dnl FIXME: check whether Bonobo is installed
|
||||
dnl
|
||||
if test "$GPG" = no; then
|
||||
if test "$NO_OVERRIDE" = "yes"; then
|
||||
if test "$cross_compiling" != "yes"; then
|
||||
AC_MSG_WARN([Could not find GnuPG, install GnuPG or use --with-gpg=PATH to enable it])
|
||||
else
|
||||
AC_MSG_ERROR([Can not determine path to GnuPG when cross-compiling, use --with-gpg=PATH])
|
||||
fi
|
||||
fi
|
||||
else
|
||||
AC_DEFINE_UNQUOTED(GPG_PATH, "$GPG")
|
||||
fi
|
||||
AM_CONDITIONAL(RUN_GPG_TESTS,
|
||||
[test "$cross_compiling" != "yes" && test -n "$GPG" && test -r "$GPG"])
|
||||
|
||||
NO_OVERRIDE=no
|
||||
AC_ARG_WITH(gpgsm,
|
||||
AC_HELP_STRING([--with-gpgsm=PATH], [use GpgSM binary at PATH]),
|
||||
GPGSM=$withval, NO_OVERRIDE=yes)
|
||||
if test "$NO_OVERRIDE" = "yes" || test "$GPGSM" = "yes"; then
|
||||
GPGSM=
|
||||
NO_OVERRIDE=yes
|
||||
if test "$cross_compiling" != "yes"; then
|
||||
AC_PATH_PROG(GPGSM, gpgsm)
|
||||
fi
|
||||
if test -z "$GPGSM"; then
|
||||
GPGSM="$GPGSM_DEFAULT"
|
||||
fi
|
||||
fi
|
||||
if test "$GPGSM" = no; then
|
||||
if test "$NO_OVERRIDE" = "yes"; then
|
||||
if test "$cross_compiling" != "yes"; then
|
||||
AC_MSG_WARN([Could not find GpgSM, install GpgSM or use --with-gpgsm=PATH to enable it])
|
||||
else
|
||||
AC_MSG_ERROR([Can not determine path to GpgSM when cross-compiling, use --with-gpgsm=PATH])
|
||||
fi
|
||||
fi
|
||||
else
|
||||
AC_DEFINE_UNQUOTED(GPGSM_PATH, "$GPGSM")
|
||||
fi
|
||||
AM_CONDITIONAL(RUN_GPGSM_TESTS,
|
||||
[test "$cross_compiling" != "yes" && test -n "$GPGSM" && test -r "$GPGSM"])
|
||||
|
||||
dnl
|
||||
dnl Create config files
|
||||
dnl
|
||||
dnl
|
||||
|
||||
AM_CONDITIONAL(BUILD_COMPLUS, test "$component_system" = "COM+")
|
||||
AM_CONDITIONAL(BUILD_BONOBO, test "$component_system" = "Bonobo")
|
||||
@ -157,24 +188,16 @@ GPGME_CFLAGS=""
|
||||
AC_SUBST(GPGME_LIBS)
|
||||
AC_SUBST(GPGME_CFLAGS)
|
||||
|
||||
AC_OUTPUT_COMMANDS([
|
||||
chmod +x gpgme/gpgme-config
|
||||
])
|
||||
|
||||
AC_OUTPUT([
|
||||
Makefile
|
||||
jnlib/Makefile
|
||||
gpgme/Makefile
|
||||
gpgme/gpgme-config
|
||||
tests/Makefile
|
||||
doc/Makefile
|
||||
bonobo/Makefile
|
||||
complus/Makefile
|
||||
])
|
||||
AC_CONFIG_FILES(Makefile jnlib/Makefile gpgme/Makefile tests/Makefile
|
||||
doc/Makefile bonobo/Makefile complus/Makefile)
|
||||
AC_CONFIG_FILES(gpgme/gpgme-config, chmod +x gpgme/gpgme-config)
|
||||
AC_OUTPUT
|
||||
|
||||
echo "
|
||||
GPGME v${VERSION} has been configured as follows:
|
||||
|
||||
GPG version: min. $NEED_GPG_VERSION
|
||||
GPG path: $GPG
|
||||
GnuPG version: min. $NEED_GPG_VERSION
|
||||
GnuPG path: $GPG
|
||||
|
||||
GpgSM path: $GPGSM
|
||||
"
|
@ -1,3 +1,18 @@
|
||||
2001-11-18 Marcus Brinkmann <marcus@g10code.de>
|
||||
|
||||
* version.c (get_engine_info): If GnuPG is not available, return
|
||||
an error message.
|
||||
* posix-util.c (_gpgme_get_gpg_path): Allow GPG_PATH to be
|
||||
undefined.
|
||||
(_gpgme_get_gpgsm_path): New function.
|
||||
* w32-util.c (find_program_in_registry): New static function.
|
||||
(_gpgme_get_gpg_path): Allow GPG_PATH to be undefined. Rework
|
||||
to use find_program_in_registry.
|
||||
(_gpgme_get_gpgsm_path): New function.
|
||||
(util.h): Prototype _gpgme_get_gpgsm_path).
|
||||
* rungpg.c (_gpgme_gpg_spawn): Verify that _gpgme_get_gpg_path()
|
||||
returns non-null.
|
||||
|
||||
2001-11-16 Marcus Brinkmann <marcus@g10code.de>
|
||||
|
||||
* decrypt-verify.c: New file.
|
||||
|
@ -30,21 +30,24 @@
|
||||
|
||||
#include "util.h"
|
||||
|
||||
|
||||
const char *
|
||||
_gpgme_get_gpg_path (void)
|
||||
{
|
||||
/* #warning Forced to take GPG development version
|
||||
* return "/home/wk/work/gnupg-stable/g10/gpg";
|
||||
*/
|
||||
|
||||
#ifdef GPG_PATH
|
||||
return GPG_PATH;
|
||||
#else
|
||||
return NULL;
|
||||
#endif
|
||||
}
|
||||
|
||||
const char *
|
||||
_gpgme_get_gpgsm_path (void)
|
||||
{
|
||||
#ifdef GPGSM_PATH
|
||||
return GPGSM_PATH;
|
||||
#else
|
||||
return NULL;
|
||||
#endif
|
||||
}
|
||||
|
||||
#endif /*!HAVE_DOSISH_SYSTEM*/
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
@ -786,9 +786,12 @@ _gpgme_gpg_spawn( GpgObject gpg, void *opaque )
|
||||
int pid;
|
||||
struct spawn_fd_item_s *fd_child_list, *fd_parent_list;
|
||||
|
||||
if ( !gpg )
|
||||
if (!gpg)
|
||||
return mk_error (Invalid_Value);
|
||||
|
||||
if (! _gpgme_get_gpg_path ())
|
||||
return mk_error (Invalid_Engine);
|
||||
|
||||
/* Kludge, so that we don't need to check the return code of
|
||||
* all the gpgme_gpg_add_arg(). we bail out here instead */
|
||||
if ( gpg->arg_error )
|
||||
|
@ -123,8 +123,7 @@ char *stpcpy (char *a, const char *b);
|
||||
|
||||
/*-- {posix,w32}-util.c --*/
|
||||
const char *_gpgme_get_gpg_path (void);
|
||||
|
||||
|
||||
const char *_gpgme_get_gpgsm_path (void);
|
||||
|
||||
#endif /* UTIL_H */
|
||||
|
||||
|
@ -228,6 +228,13 @@ get_engine_info (void)
|
||||
return engine_info;
|
||||
|
||||
path = _gpgme_get_gpg_path ();
|
||||
if (!path)
|
||||
{
|
||||
engine_info = "<GnupgInfo>\n"
|
||||
" <error>Not supported</error>\n"
|
||||
"</GnupgInfo>\n";
|
||||
goto leave;
|
||||
}
|
||||
err = gpgme_new (&c);
|
||||
if (err)
|
||||
goto leave;
|
||||
@ -299,9 +306,3 @@ get_engine_info (void)
|
||||
gpgme_release ( c );
|
||||
return engine_info;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
@ -41,7 +41,7 @@
|
||||
/****************
|
||||
* Return a string from the Win32 Registry or NULL in case of
|
||||
* error. Caller must release the return value. A NULL for root
|
||||
* is an alias fro HKEY_CURRENT_USER
|
||||
* is an alias for HKEY_CURRENT_USER.
|
||||
*/
|
||||
static char *
|
||||
read_w32_registry_string ( const char *root,
|
||||
@ -88,38 +88,53 @@ read_w32_registry_string ( const char *root,
|
||||
return result;
|
||||
}
|
||||
|
||||
static const char *
|
||||
find_program_in_registry (const char *name)
|
||||
{
|
||||
char *program = NULL;
|
||||
|
||||
program = read_w32_registry_string (NULL, "Software\\GNU\\GnuPG", name);
|
||||
if (program)
|
||||
{
|
||||
int i;
|
||||
|
||||
DEBUG1 ("found %s in registry: `%s'", name, program );
|
||||
for (i = 0; program[i]; i++)
|
||||
{
|
||||
if (program[i] == '/')
|
||||
program[i] = '\\';
|
||||
}
|
||||
}
|
||||
return program;
|
||||
}
|
||||
|
||||
const char *
|
||||
_gpgme_get_gpg_path (void)
|
||||
{
|
||||
static char *gpg_program = NULL;
|
||||
|
||||
if (!gpg_program) {
|
||||
gpg_program = read_w32_registry_string ( NULL,
|
||||
"Software\\GNU\\GnuPG", "gpgProgram" );
|
||||
if (gpg_program) {
|
||||
int i;
|
||||
|
||||
DEBUG1 ("found gpgProgram in registry: `%s'", gpg_program );
|
||||
for (i=0; gpg_program[i]; i++) {
|
||||
if (gpg_program[i] == '/')
|
||||
gpg_program[i] = '\\';
|
||||
}
|
||||
}
|
||||
else {
|
||||
if (!gpg_program)
|
||||
gpg_program = find_program_in_registry ("gpgProgram");
|
||||
#ifdef GPG_PATH
|
||||
if (!gpg_program)
|
||||
gpg_program = GPG_PATH;
|
||||
}
|
||||
}
|
||||
|
||||
#endif
|
||||
return gpg_program;
|
||||
}
|
||||
|
||||
const char *
|
||||
_gpgme_get_gpgsm_path (void)
|
||||
{
|
||||
static char *gpgsm_program = NULL;
|
||||
|
||||
if (!gpgsm_program)
|
||||
gpgsm_program = find_program_in_registry ("gpgsmProgram");
|
||||
#ifdef GPGSM_PATH
|
||||
if (!gpgsm_program)
|
||||
gpgsm_program = GPGSM_PATH;
|
||||
#endif
|
||||
return gpgsm_program;
|
||||
}
|
||||
|
||||
|
||||
#endif /*HAVE_DOSISH_SYSTEM*/
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user