Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package gpgme for openSUSE:Factory checked in at 2023-11-01 22:09:29 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/gpgme (Old) and /work/SRC/openSUSE:Factory/.gpgme.new.17445 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "gpgme" Wed Nov 1 22:09:29 2023 rev:102 rq:1121375 version:1.23.1 Changes: -------- --- /work/SRC/openSUSE:Factory/gpgme/gpgme.changes 2023-10-26 17:11:36.202064361 +0200 +++ /work/SRC/openSUSE:Factory/.gpgme.new.17445/gpgme.changes 2023-11-01 22:09:35.838815746 +0100 @@ -1,0 +2,6 @@ +Mon Oct 30 21:58:54 UTC 2023 - Andreas Stieger <andreas.stie...@gmx.de> + +- update to 1.23.1: + * fixes for other platforms + +------------------------------------------------------------------- Old: ---- gpgme-1.23.0.tar.bz2 gpgme-1.23.0.tar.bz2.sig New: ---- gpgme-1.23.1.tar.bz2 gpgme-1.23.1.tar.bz2.sig ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ gpgme.spec ++++++ --- /var/tmp/diff_new_pack.o6UAey/_old 2023-11-01 22:09:36.394836344 +0100 +++ /var/tmp/diff_new_pack.o6UAey/_new 2023-11-01 22:09:36.398836491 +0100 @@ -33,7 +33,7 @@ %bcond_without qt6 %endif Name: gpgme%{psuffix} -Version: 1.23.0 +Version: 1.23.1 Release: 0 Summary: Programmatic library interface to GnuPG License: GPL-3.0-or-later AND LGPL-2.1-or-later ++++++ gpgme-1.23.0.tar.bz2 -> gpgme-1.23.1.tar.bz2 ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gpgme-1.23.0/NEWS new/gpgme-1.23.1/NEWS --- old/gpgme-1.23.0/NEWS 2023-10-25 11:05:22.000000000 +0200 +++ new/gpgme-1.23.1/NEWS 2023-10-27 14:34:18.000000000 +0200 @@ -1,3 +1,13 @@ +Noteworthy changes in version 1.23.1 (2023-10-27) +------------------------------------------------- + + * w32: Change gpgme-w32-spawn to use Unicode arguments. [T6728] + + [c=C43/A32/R0 cpp=C26/A20/R0 qt=C20/A5/R0] + + Release-info: https://dev.gnupg.org/T6774 + + Noteworthy changes in version 1.23.0 (2023-10-25) ------------------------------------------------- diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gpgme-1.23.0/VERSION new/gpgme-1.23.1/VERSION --- old/gpgme-1.23.0/VERSION 2023-10-25 11:07:11.000000000 +0200 +++ new/gpgme-1.23.1/VERSION 2023-10-27 14:38:51.000000000 +0200 @@ -1 +1 @@ -1.23.0 +1.23.1 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gpgme-1.23.0/configure new/gpgme-1.23.1/configure --- old/gpgme-1.23.0/configure 2023-10-25 11:07:11.000000000 +0200 +++ new/gpgme-1.23.1/configure 2023-10-27 14:38:51.000000000 +0200 @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.71 for gpgme 1.23.0. +# Generated by GNU Autoconf 2.71 for gpgme 1.23.1. # # Report bugs to <https://bugs.gnupg.org>. # @@ -621,8 +621,8 @@ # Identity of this package. PACKAGE_NAME='gpgme' PACKAGE_TARNAME='gpgme' -PACKAGE_VERSION='1.23.0' -PACKAGE_STRING='gpgme 1.23.0' +PACKAGE_VERSION='1.23.1' +PACKAGE_STRING='gpgme 1.23.1' PACKAGE_BUGREPORT='https://bugs.gnupg.org' PACKAGE_URL='' @@ -1517,7 +1517,7 @@ # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures gpgme 1.23.0 to adapt to many kinds of systems. +\`configure' configures gpgme 1.23.1 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1588,7 +1588,7 @@ if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of gpgme 1.23.0:";; + short | recursive ) echo "Configuration of gpgme 1.23.1:";; esac cat <<\_ACEOF @@ -1758,7 +1758,7 @@ test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -gpgme configure 1.23.0 +gpgme configure 1.23.1 generated by GNU Autoconf 2.71 Copyright (C) 2021 Free Software Foundation, Inc. @@ -2539,7 +2539,7 @@ This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by gpgme $as_me 1.23.0, which was +It was created by gpgme $as_me 1.23.1, which was generated by GNU Autoconf 2.71. Invocation command line was $ $0$ac_configure_args_raw @@ -3564,7 +3564,7 @@ VERSION_MAJOR=1 VERSION_MINOR=23 -VERSION_MICRO=0 +VERSION_MICRO=1 @@ -4085,7 +4085,7 @@ # Define the identity of the package. PACKAGE='gpgme' - VERSION='1.23.0' + VERSION='1.23.1' printf "%s\n" "#define PACKAGE \"$PACKAGE\"" >>confdefs.h @@ -7399,7 +7399,7 @@ -VERSION_NUMBER=0x011700 +VERSION_NUMBER=0x011701 # We need to compile and run a program on the build machine. A @@ -31405,14 +31405,14 @@ # # Provide information about the build. # -BUILD_REVISION="aae967ec" +BUILD_REVISION="cadcb384" printf "%s\n" "#define BUILD_REVISION \"$BUILD_REVISION\"" >>confdefs.h BUILD_VERSION=`echo "$PACKAGE_VERSION" | sed 's/\([0-9.]*\).*/\1./'` -BUILD_VERSION="${BUILD_VERSION}43753" +BUILD_VERSION="${BUILD_VERSION}51932" BUILD_FILEVERSION=`echo "${BUILD_VERSION}" | tr . ,` @@ -33961,7 +33961,7 @@ # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by gpgme $as_me 1.23.0, which was +This file was extended by gpgme $as_me 1.23.1, which was generated by GNU Autoconf 2.71. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -34029,7 +34029,7 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config='$ac_cs_config_escaped' ac_cs_version="\\ -gpgme config.status 1.23.0 +gpgme config.status 1.23.1 configured by $0, generated by GNU Autoconf 2.71, with options \\"\$ac_cs_config\\" @@ -36381,7 +36381,7 @@ echo " GPGME v${VERSION} has been configured as follows: - Revision: aae967ec (43753) + Revision: cadcb384 (51932) Platform: $host UI Server: $uiserver diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gpgme-1.23.0/configure.ac new/gpgme-1.23.1/configure.ac --- old/gpgme-1.23.0/configure.ac 2023-10-25 11:04:15.000000000 +0200 +++ new/gpgme-1.23.1/configure.ac 2023-10-25 11:15:55.000000000 +0200 @@ -32,7 +32,7 @@ m4_define([mym4_package],[gpgme]) m4_define([mym4_major], [1]) m4_define([mym4_minor], [23]) -m4_define([mym4_micro], [0]) +m4_define([mym4_micro], [1]) # Below is m4 magic to extract and compute the git revision number, # the decimalized short revision number, a beta version string and a diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gpgme-1.23.0/gpgme.spec new/gpgme-1.23.1/gpgme.spec --- old/gpgme-1.23.0/gpgme.spec 2023-10-25 11:07:26.000000000 +0200 +++ new/gpgme-1.23.1/gpgme.spec 2023-10-27 14:39:05.000000000 +0200 @@ -1,7 +1,7 @@ # This is a template. The dist target uses it to create the real file. Summary: GPGME - GnuPG Made Easy Name: gpgme -Version: 1.23.0 +Version: 1.23.1 Release: 1 URL: https://gnupg.org/gpgme.html Source: https://www.gnupg.org/ftp/gcrypt/gpgme/%{name}-%{version}.tar.gz diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gpgme-1.23.0/lang/cl/gpgme.asd new/gpgme-1.23.1/lang/cl/gpgme.asd --- old/gpgme-1.23.0/lang/cl/gpgme.asd 2023-10-25 11:07:19.000000000 +0200 +++ new/gpgme-1.23.1/lang/cl/gpgme.asd 2023-10-27 14:38:59.000000000 +0200 @@ -27,7 +27,7 @@ (defsystem gpgme :description "GnuPG Made Easy." :author "g10 Code GmbH" - :version "1.23.0" + :version "1.23.1" :licence "GPL" :defsystem-depends-on ("cffi-grovel") :depends-on ("cffi" "gpg-error" "trivial-garbage") diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gpgme-1.23.0/src/Makefile.am new/gpgme-1.23.1/src/Makefile.am --- old/gpgme-1.23.0/src/Makefile.am 2023-02-01 17:50:48.000000000 +0100 +++ new/gpgme-1.23.1/src/Makefile.am 2023-10-27 14:27:30.000000000 +0200 @@ -120,6 +120,8 @@ # wrapper process. libexec_PROGRAMS = gpgme-w32spawn +gpgme_w32spawn_CFLAGS = -municode + RCCOMPILE = $(RC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) LTRCCOMPILE = $(LIBTOOL) --mode=compile --tag=RC $(RCCOMPILE) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gpgme-1.23.0/src/Makefile.in new/gpgme-1.23.1/src/Makefile.in --- old/gpgme-1.23.0/src/Makefile.in 2023-10-25 11:07:11.000000000 +0200 +++ new/gpgme-1.23.1/src/Makefile.in 2023-10-27 14:38:51.000000000 +0200 @@ -249,8 +249,12 @@ gpgme_tool_OBJECTS = $(am_gpgme_tool_OBJECTS) gpgme_tool_DEPENDENCIES = libgpgme.la gpgme_w32spawn_SOURCES = gpgme-w32spawn.c -gpgme_w32spawn_OBJECTS = gpgme-w32spawn.$(OBJEXT) +gpgme_w32spawn_OBJECTS = gpgme_w32spawn-gpgme-w32spawn.$(OBJEXT) gpgme_w32spawn_LDADD = $(LDADD) +gpgme_w32spawn_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ + $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ + $(gpgme_w32spawn_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o \ + $@ SCRIPTS = $(bin_SCRIPTS) $(noinst_SCRIPTS) AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) @@ -287,25 +291,26 @@ ./$(DEPDIR)/export.Plo ./$(DEPDIR)/genkey.Plo \ ./$(DEPDIR)/get-env.Plo ./$(DEPDIR)/getauditlog.Plo \ ./$(DEPDIR)/gpgconf.Plo ./$(DEPDIR)/gpgme-json.Po \ - ./$(DEPDIR)/gpgme-tool.Po ./$(DEPDIR)/gpgme-w32spawn.Po \ - ./$(DEPDIR)/gpgme.Plo ./$(DEPDIR)/import.Plo \ - ./$(DEPDIR)/key.Plo ./$(DEPDIR)/keylist.Plo \ - ./$(DEPDIR)/keysign.Plo ./$(DEPDIR)/mbox-util.Plo \ - ./$(DEPDIR)/op-support.Plo ./$(DEPDIR)/opassuan.Plo \ - ./$(DEPDIR)/parsetlv.Plo ./$(DEPDIR)/passphrase.Plo \ - ./$(DEPDIR)/passwd.Plo ./$(DEPDIR)/posix-io.Plo \ - ./$(DEPDIR)/posix-util.Plo ./$(DEPDIR)/progress.Plo \ - ./$(DEPDIR)/queryswdb.Plo ./$(DEPDIR)/revsig.Plo \ - ./$(DEPDIR)/setexpire.Plo ./$(DEPDIR)/sig-notation.Plo \ - ./$(DEPDIR)/sign.Plo ./$(DEPDIR)/signers.Plo \ - ./$(DEPDIR)/spawn.Plo ./$(DEPDIR)/status-table.Plo \ - ./$(DEPDIR)/tofupolicy.Plo ./$(DEPDIR)/trust-item.Plo \ - ./$(DEPDIR)/trustlist.Plo ./$(DEPDIR)/verify.Plo \ - ./$(DEPDIR)/version.Plo ./$(DEPDIR)/vfs-create.Plo \ - ./$(DEPDIR)/vfs-mount.Plo ./$(DEPDIR)/w32-glib-io.Plo \ - ./$(DEPDIR)/w32-io.Plo ./$(DEPDIR)/w32-util.Plo \ - ./$(DEPDIR)/wait-global.Plo ./$(DEPDIR)/wait-private.Plo \ - ./$(DEPDIR)/wait-user.Plo ./$(DEPDIR)/wait.Plo + ./$(DEPDIR)/gpgme-tool.Po ./$(DEPDIR)/gpgme.Plo \ + ./$(DEPDIR)/gpgme_w32spawn-gpgme-w32spawn.Po \ + ./$(DEPDIR)/import.Plo ./$(DEPDIR)/key.Plo \ + ./$(DEPDIR)/keylist.Plo ./$(DEPDIR)/keysign.Plo \ + ./$(DEPDIR)/mbox-util.Plo ./$(DEPDIR)/op-support.Plo \ + ./$(DEPDIR)/opassuan.Plo ./$(DEPDIR)/parsetlv.Plo \ + ./$(DEPDIR)/passphrase.Plo ./$(DEPDIR)/passwd.Plo \ + ./$(DEPDIR)/posix-io.Plo ./$(DEPDIR)/posix-util.Plo \ + ./$(DEPDIR)/progress.Plo ./$(DEPDIR)/queryswdb.Plo \ + ./$(DEPDIR)/revsig.Plo ./$(DEPDIR)/setexpire.Plo \ + ./$(DEPDIR)/sig-notation.Plo ./$(DEPDIR)/sign.Plo \ + ./$(DEPDIR)/signers.Plo ./$(DEPDIR)/spawn.Plo \ + ./$(DEPDIR)/status-table.Plo ./$(DEPDIR)/tofupolicy.Plo \ + ./$(DEPDIR)/trust-item.Plo ./$(DEPDIR)/trustlist.Plo \ + ./$(DEPDIR)/verify.Plo ./$(DEPDIR)/version.Plo \ + ./$(DEPDIR)/vfs-create.Plo ./$(DEPDIR)/vfs-mount.Plo \ + ./$(DEPDIR)/w32-glib-io.Plo ./$(DEPDIR)/w32-io.Plo \ + ./$(DEPDIR)/w32-util.Plo ./$(DEPDIR)/wait-global.Plo \ + ./$(DEPDIR)/wait-private.Plo ./$(DEPDIR)/wait-user.Plo \ + ./$(DEPDIR)/wait.Plo am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) @@ -633,6 +638,7 @@ gpgme_tool_LDADD = libgpgme.la @LIBASSUAN_LIBS@ @GPG_ERROR_LIBS@ gpgme_json_SOURCES = gpgme-json.c cJSON.c cJSON.h gpgme_json_LDADD = -lm libgpgme.la $(GPG_ERROR_LIBS) +@HAVE_W32_SYSTEM_TRUE@gpgme_w32spawn_CFLAGS = -municode @HAVE_W32_SYSTEM_TRUE@RCCOMPILE = $(RC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) @HAVE_W32_SYSTEM_TRUE@LTRCCOMPILE = $(LIBTOOL) --mode=compile --tag=RC $(RCCOMPILE) @HAVE_W32_SYSTEM_TRUE@SUFFIXES = .rc .lo @@ -859,7 +865,7 @@ gpgme-w32spawn$(EXEEXT): $(gpgme_w32spawn_OBJECTS) $(gpgme_w32spawn_DEPENDENCIES) $(EXTRA_gpgme_w32spawn_DEPENDENCIES) @rm -f gpgme-w32spawn$(EXEEXT) - $(AM_V_CCLD)$(LINK) $(gpgme_w32spawn_OBJECTS) $(gpgme_w32spawn_LDADD) $(LIBS) + $(AM_V_CCLD)$(gpgme_w32spawn_LINK) $(gpgme_w32spawn_OBJECTS) $(gpgme_w32spawn_LDADD) $(LIBS) install-binSCRIPTS: $(bin_SCRIPTS) @$(NORMAL_INSTALL) @list='$(bin_SCRIPTS)'; test -n "$(bindir)" || list=; \ @@ -943,8 +949,8 @@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gpgconf.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gpgme-json.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gpgme-tool.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gpgme-w32spawn.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gpgme.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gpgme_w32spawn-gpgme-w32spawn.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/import.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/key.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/keylist.Plo@am__quote@ # am--include-marker @@ -1008,6 +1014,20 @@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< +gpgme_w32spawn-gpgme-w32spawn.o: gpgme-w32spawn.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gpgme_w32spawn_CFLAGS) $(CFLAGS) -MT gpgme_w32spawn-gpgme-w32spawn.o -MD -MP -MF $(DEPDIR)/gpgme_w32spawn-gpgme-w32spawn.Tpo -c -o gpgme_w32spawn-gpgme-w32spawn.o `test -f 'gpgme-w32spawn.c' || echo '$(srcdir)/'`gpgme-w32spawn.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/gpgme_w32spawn-gpgme-w32spawn.Tpo $(DEPDIR)/gpgme_w32spawn-gpgme-w32spawn.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gpgme-w32spawn.c' object='gpgme_w32spawn-gpgme-w32spawn.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gpgme_w32spawn_CFLAGS) $(CFLAGS) -c -o gpgme_w32spawn-gpgme-w32spawn.o `test -f 'gpgme-w32spawn.c' || echo '$(srcdir)/'`gpgme-w32spawn.c + +gpgme_w32spawn-gpgme-w32spawn.obj: gpgme-w32spawn.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gpgme_w32spawn_CFLAGS) $(CFLAGS) -MT gpgme_w32spawn-gpgme-w32spawn.obj -MD -MP -MF $(DEPDIR)/gpgme_w32spawn-gpgme-w32spawn.Tpo -c -o gpgme_w32spawn-gpgme-w32spawn.obj `if test -f 'gpgme-w32spawn.c'; then $(CYGPATH_W) 'gpgme-w32spawn.c'; else $(CYGPATH_W) '$(srcdir)/gpgme-w32spawn.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/gpgme_w32spawn-gpgme-w32spawn.Tpo $(DEPDIR)/gpgme_w32spawn-gpgme-w32spawn.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gpgme-w32spawn.c' object='gpgme_w32spawn-gpgme-w32spawn.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gpgme_w32spawn_CFLAGS) $(CFLAGS) -c -o gpgme_w32spawn-gpgme-w32spawn.obj `if test -f 'gpgme-w32spawn.c'; then $(CYGPATH_W) 'gpgme-w32spawn.c'; else $(CYGPATH_W) '$(srcdir)/gpgme-w32spawn.c'; fi` + mostlyclean-libtool: -rm -f *.lo @@ -1250,8 +1270,8 @@ -rm -f ./$(DEPDIR)/gpgconf.Plo -rm -f ./$(DEPDIR)/gpgme-json.Po -rm -f ./$(DEPDIR)/gpgme-tool.Po - -rm -f ./$(DEPDIR)/gpgme-w32spawn.Po -rm -f ./$(DEPDIR)/gpgme.Plo + -rm -f ./$(DEPDIR)/gpgme_w32spawn-gpgme-w32spawn.Po -rm -f ./$(DEPDIR)/import.Plo -rm -f ./$(DEPDIR)/key.Plo -rm -f ./$(DEPDIR)/keylist.Plo @@ -1375,8 +1395,8 @@ -rm -f ./$(DEPDIR)/gpgconf.Plo -rm -f ./$(DEPDIR)/gpgme-json.Po -rm -f ./$(DEPDIR)/gpgme-tool.Po - -rm -f ./$(DEPDIR)/gpgme-w32spawn.Po -rm -f ./$(DEPDIR)/gpgme.Plo + -rm -f ./$(DEPDIR)/gpgme_w32spawn-gpgme-w32spawn.Po -rm -f ./$(DEPDIR)/import.Plo -rm -f ./$(DEPDIR)/key.Plo -rm -f ./$(DEPDIR)/keylist.Plo diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gpgme-1.23.0/src/gpgme-w32spawn.c new/gpgme-1.23.1/src/gpgme-w32spawn.c --- old/gpgme-1.23.0/src/gpgme-w32spawn.c 2023-04-17 15:09:48.000000000 +0200 +++ new/gpgme-1.23.1/src/gpgme-w32spawn.c 2023-10-27 14:27:30.000000000 +0200 @@ -54,13 +54,13 @@ -static char * -build_commandline (char **argv) +static wchar_t * +build_commandline (wchar_t **argv) { int i; int n = 0; - char *buf; - char *p; + wchar_t *buf; + wchar_t *p; /* We have to quote some things because under Windows the program parses the commandline and does some unquoting. We enclose the @@ -75,7 +75,7 @@ while (*p) { /* An extra one for each literal that must be escaped. */ - if (*p == '\\' || *p == '"') + if (*p == L'\\' || *p == L'"') n++; n++; p++; @@ -86,22 +86,22 @@ /* And a trailing zero. */ n++; - buf = p = malloc (n); + buf = p = malloc (n * sizeof (wchar_t)); if (!buf) return NULL; for (i = 0; argv[i]; i++) { - char *argvp = argv[i]; + wchar_t *argvp = argv[i]; - *(p++) = '"'; + *(p++) = L'"'; while (*argvp) { - if (*argvp == '\\' || *argvp == '"') - *(p++) = '\\'; + if (*argvp == L'\\' || *argvp == L'"') + *(p++) = L'\\'; *(p++) = *(argvp++); } - *(p++) = '"'; - *(p++) = ' '; + *(p++) = L'"'; + *(p++) = L' '; } *(p++) = 0; @@ -110,7 +110,7 @@ int -my_spawn (char **argv, struct spawn_fd_item_s *fd_list, unsigned int flags) +my_spawn (wchar_t **argv, struct spawn_fd_item_s *fd_list, unsigned int flags) { SECURITY_ATTRIBUTES sec_attr; PROCESS_INFORMATION pi = @@ -120,12 +120,11 @@ 0, /* returns pid */ 0 /* returns tid */ }; - STARTUPINFO si; - char *envblock = NULL; + STARTUPINFOW si; int cr_flags = CREATE_DEFAULT_ERROR_MODE | GetPriorityClass (GetCurrentProcess ()); int i; - char *arg_string; + wchar_t *arg_string; int duped_stdin = 0; int duped_stdout = 0; int duped_stderr = 0; @@ -134,7 +133,7 @@ i = 0; while (argv[i]) { - fprintf (mystderr, PGM": argv[%2i] = %s\n", i, argv[i]); + fprintf (mystderr, PGM": argv[%2i] = %S\n", i, argv[i]); i++; } @@ -184,13 +183,13 @@ memset (&sa, 0, sizeof sa); sa.nLength = sizeof sa; sa.bInheritHandle = TRUE; - hnul = CreateFile ("nul", - GENERIC_READ|GENERIC_WRITE, - FILE_SHARE_READ|FILE_SHARE_WRITE, - &sa, - OPEN_EXISTING, - FILE_ATTRIBUTE_NORMAL, - NULL); + hnul = CreateFileW (L"nul", + GENERIC_READ|GENERIC_WRITE, + FILE_SHARE_READ|FILE_SHARE_WRITE, + &sa, + OPEN_EXISTING, + FILE_ATTRIBUTE_NORMAL, + NULL); if (hnul == INVALID_HANDLE_VALUE) { free (arg_string); @@ -210,13 +209,13 @@ } cr_flags |= CREATE_SUSPENDED; - if (!CreateProcessA (argv[0], + if (!CreateProcessW (argv[0], arg_string, &sec_attr, /* process security attributes */ &sec_attr, /* thread security attributes */ TRUE, /* inherit handles */ cr_flags, /* creation flags */ - envblock, /* environment */ + NULL, /* environment */ NULL, /* use current drive/directory */ &si, /* startup information */ &pi)) /* returns process information */ @@ -247,7 +246,7 @@ { /* Available since W2000; thus we dynload it. */ initialized = 1; - handle = LoadLibrary ("user32.dll"); + handle = LoadLibraryA ("user32.dll"); if (handle) { func = GetProcAddress (handle, "AllowSetForegroundWindow"); @@ -275,7 +274,7 @@ #define MAX_TRANS 10 int -translate_get_from_file (const char *trans_file, +translate_get_from_file (const wchar_t *trans_file, struct spawn_fd_item_s *fd_list, unsigned int *r_flags) { @@ -292,7 +291,7 @@ *r_flags = 0; - fd = open (trans_file, O_RDONLY); + fd = _wopen (trans_file, O_RDONLY); if (fd < 0) return -1; @@ -389,14 +388,14 @@ /* Read the translated handles from TRANS_FILE and do a substitution in ARGV. Returns the new argv and the list of substitutions in FD_LIST (which must be MAX_TRANS+1 large). */ -char ** -translate_handles (const char *trans_file, const char * const *argv, +wchar_t ** +translate_handles (const wchar_t *trans_file, const wchar_t * const *argv, struct spawn_fd_item_s *fd_list, unsigned int *r_flags) { int res; int idx; int n_args; - char **args; + wchar_t **args; res = translate_get_from_file (trans_file, fd_list, r_flags); if (res < 0) @@ -407,7 +406,7 @@ args = malloc (sizeof (*args) * (idx + 1)); for (idx = 0; argv[idx]; idx++) { - args[idx] = strdup (argv[idx]); + args[idx] = wcsdup (argv[idx]); if (!args[idx]) return NULL; } @@ -416,7 +415,7 @@ for (idx = 0; fd_list[idx].fd != -1; idx++) { - char buf[25]; + wchar_t buf[25]; int aidx; aidx = fd_list[idx].arg_loc; @@ -439,20 +438,27 @@ /* NOTE: Here is the part where application specific knowledge comes in. GPGME/GnuPG uses two forms of descriptor specification, a plain number and a "-&" form. */ - if (argv[aidx][0] == '-' && argv[aidx][1] == '&') - snprintf (args[aidx], sizeof (buf), "-&%d", fd_list[idx].peer_name); + if (argv[aidx][0] == L'-' && argv[aidx][1] == L'&') + snwprintf (args[aidx], sizeof (buf), L"-&%d", fd_list[idx].peer_name); else - snprintf (args[aidx], sizeof (buf), "%d", fd_list[idx].peer_name); + snwprintf (args[aidx], sizeof (buf), L"%d", fd_list[idx].peer_name); } return args; } +/* Since GPGME might be installed in a unicode directory it + must be callable with CreateProcessW which provides the + arguments in Unicode form. + + So GPGME converts from its internal UTF-8 representation + to wchar, spawns gpgme-w32-spawn with CreateProcessW and then + we also forward this as wchar. */ int -main (int argc, const char * const *argv) +wmain (int argc, const wchar_t * const *argv) { int rc = 0; - char **argv_spawn; + wchar_t **argv_spawn; struct spawn_fd_item_s fd_list[MAX_TRANS + 1]; unsigned int flags; @@ -479,7 +485,7 @@ rc = my_spawn (argv_spawn, fd_list, flags); if (rc < 0) { - fprintf (mystderr, PGM": executing `%s' failed: %s\n", + fprintf (mystderr, PGM": executing `%S' failed: %s\n", argv[0], strerror (errno)); rc = 2; goto leave; @@ -491,8 +497,8 @@ /* Always try to delete the temporary file. */ if (argc >= 2) { - if (DeleteFile (argv[1]) == 0) - fprintf (mystderr, PGM": failed to delete %s: ec=%ld\n", + if (DeleteFileW (argv[1]) == 0) + fprintf (mystderr, PGM": failed to delete %S: ec=%ld\n", argv[1], GetLastError ()); } return rc;