[Pkg-gnupg-commit] [gnupg2] 07/159: tools/gpgtar: Use the new exectool helper.

Daniel Kahn Gillmor dkg at fifthhorseman.net
Wed Jan 27 13:23:48 UTC 2016


This is an automated email from the git hooks/post-receive script.

dkg pushed a commit to branch master
in repository gnupg2.

commit 0c0dafd8e89bb702e856c661c1561e10cdcaf37f
Author: Justus Winter <justus at g10code.com>
Date:   Mon Nov 30 16:21:22 2015 +0100

    tools/gpgtar: Use the new exectool helper.
    
    * tools/Makefile.am: gpgtar now requires neither npth nor libassuan.
    * tools/gpgtar-create.c (gpgtar_create): Use the new 'sh-exectool'
    helper.
    * tools/gpgtar-extract.c (gpgtar_extract): Likewise.
    * tools/gpgtar-list.c (gpgtar_list): Likewise.
    * tools/gpgtar.c (main): Set default gpg program.  Drop the
    initialization of npth and libassuan.
    
    Signed-off-by: Justus Winter <justus at g10code.com>
---
 tools/Makefile.am      |  5 ++---
 tools/gpgtar-create.c  | 38 +++++++++++++++++++++++++++++++-------
 tools/gpgtar-extract.c | 26 +++++++++++++++++++++++---
 tools/gpgtar-list.c    | 26 +++++++++++++++++++++++---
 tools/gpgtar.c         | 16 +++-------------
 5 files changed, 82 insertions(+), 29 deletions(-)

diff --git a/tools/Makefile.am b/tools/Makefile.am
index a793cca..a268811 100644
--- a/tools/Makefile.am
+++ b/tools/Makefile.am
@@ -142,9 +142,8 @@ gpgtar_SOURCES = \
 	gpgtar-extract.c \
 	gpgtar-list.c \
 	no-libgcrypt.c
-gpgtar_CFLAGS = $(GPG_ERROR_CFLAGS) $(NPTH_CFLAGS) $(LIBASSUAN_CFLAGS)
-gpgtar_LDADD = $(libcommonpth) $(GPG_ERROR_LIBS) \
-               $(NPTH_LIBS) $(LIBASSUAN_LIBS) \
+gpgtar_CFLAGS = $(GPG_ERROR_CFLAGS)
+gpgtar_LDADD = $(libcommon) $(GPG_ERROR_LIBS) \
                $(LIBINTL) $(NETLIBS) $(LIBICONV) $(W32SOCKLIBS)
 
 
diff --git a/tools/gpgtar-create.c b/tools/gpgtar-create.c
index cc82889..8975fc6 100644
--- a/tools/gpgtar-create.c
+++ b/tools/gpgtar-create.c
@@ -36,7 +36,7 @@
 #include <assert.h>
 
 #include "i18n.h"
-#include "../common/call-gpg.h"
+#include "../common/sh-exectool.h"
 #include "../common/sysutils.h"
 #include "gpgtar.h"
 
@@ -888,16 +888,40 @@ gpgtar_create (char **inpattern, int encrypt)
 
   if (encrypt)
     {
+      int i;
+      strlist_t arg;
+      const char **argv;
+
       err = es_fseek (outstream, 0, SEEK_SET);
       if (err)
         goto leave;
 
-      err = gpg_encrypt_stream (NULL,
-                                opt.gpg_program,
-                                opt.gpg_arguments,
-                                outstream,
-                                opt.recipients,
-                                cipher_stream);
+      argv = xtrycalloc (strlist_length (opt.gpg_arguments)
+                         + 2 * strlist_length (opt.recipients)
+                         + 2,
+                         sizeof *argv);
+      if (argv == NULL)
+        {
+          err = gpg_error_from_syserror ();
+          goto leave;
+        }
+      i = 0;
+      argv[i++] = "--encrypt";
+      for (arg = opt.recipients; arg; arg = arg->next)
+        {
+          argv[i++] = "--recipient";
+          argv[i++] = arg->d;
+        }
+      for (arg = opt.gpg_arguments; arg; arg = arg->next)
+        argv[i++] = arg->d;
+      argv[i++] = NULL;
+      assert (i == strlist_length (opt.gpg_arguments)
+              + 2 * strlist_length (opt.recipients)
+              + 2);
+
+      err = sh_exec_tool_stream (opt.gpg_program, argv,
+                                 outstream, cipher_stream);
+      xfree (argv);
       if (err)
         goto leave;
     }
diff --git a/tools/gpgtar-extract.c b/tools/gpgtar-extract.c
index 728737d..cb8074c 100644
--- a/tools/gpgtar-extract.c
+++ b/tools/gpgtar-extract.c
@@ -28,7 +28,7 @@
 #include <assert.h>
 
 #include "i18n.h"
-#include "../common/call-gpg.h"
+#include "../common/sh-exectool.h"
 #include "../common/sysutils.h"
 #include "gpgtar.h"
 
@@ -299,6 +299,10 @@ gpgtar_extract (const char *filename, int decrypt)
 
   if (decrypt)
     {
+      int i;
+      strlist_t arg;
+      const char **argv;
+
       cipher_stream = stream;
       stream = es_fopenmem (0, "rwb");
       if (! stream)
@@ -306,8 +310,24 @@ gpgtar_extract (const char *filename, int decrypt)
           err = gpg_error_from_syserror ();
           goto leave;
         }
-      err = gpg_decrypt_stream (NULL, opt.gpg_program, opt.gpg_arguments,
-                                cipher_stream, stream);
+
+      argv = xtrycalloc (strlist_length (opt.gpg_arguments) + 2,
+                         sizeof *argv);
+      if (argv == NULL)
+        {
+          err = gpg_error_from_syserror ();
+          goto leave;
+        }
+      i = 0;
+      argv[i++] = "--decrypt";
+      for (arg = opt.gpg_arguments; arg; arg = arg->next)
+        argv[i++] = arg->d;
+      argv[i++] = NULL;
+      assert (i == strlist_length (opt.gpg_arguments) + 2);
+
+      err = sh_exec_tool_stream (opt.gpg_program, argv,
+                                 cipher_stream, stream);
+      xfree (argv);
       if (err)
         goto leave;
 
diff --git a/tools/gpgtar-list.c b/tools/gpgtar-list.c
index cb2ca5d..7bf4d49 100644
--- a/tools/gpgtar-list.c
+++ b/tools/gpgtar-list.c
@@ -26,7 +26,7 @@
 
 #include "i18n.h"
 #include "gpgtar.h"
-#include "../common/call-gpg.h"
+#include "../common/sh-exectool.h"
 
 
 

@@ -299,6 +299,10 @@ gpgtar_list (const char *filename, int decrypt)
 
   if (decrypt)
     {
+      int i;
+      strlist_t arg;
+      const char **argv;
+
       cipher_stream = stream;
       stream = es_fopenmem (0, "rwb");
       if (! stream)
@@ -306,8 +310,24 @@ gpgtar_list (const char *filename, int decrypt)
           err = gpg_error_from_syserror ();
           goto leave;
         }
-      err = gpg_decrypt_stream (NULL, opt.gpg_program, opt.gpg_arguments,
-                                cipher_stream, stream);
+
+      argv = xtrycalloc (strlist_length (opt.gpg_arguments) + 2,
+                         sizeof *argv);
+      if (argv == NULL)
+        {
+          err = gpg_error_from_syserror ();
+          goto leave;
+        }
+      i = 0;
+      argv[i++] = "--decrypt";
+      for (arg = opt.gpg_arguments; arg; arg = arg->next)
+        argv[i++] = arg->d;
+      argv[i++] = NULL;
+      assert (i == strlist_length (opt.gpg_arguments) + 2);
+
+      err = sh_exec_tool_stream (opt.gpg_program, argv,
+                                 cipher_stream, stream);
+      xfree (argv);
       if (err)
         goto leave;
 
diff --git a/tools/gpgtar.c b/tools/gpgtar.c
index a09d2f0..100fb16 100644
--- a/tools/gpgtar.c
+++ b/tools/gpgtar.c
@@ -27,7 +27,6 @@
    gpg.  So here we go.  */
 
 #include <config.h>
-#include <assuan.h>
 #include <ctype.h>
 #include <errno.h>
 #include <npth.h>
@@ -39,7 +38,6 @@
 #include "util.h"
 #include "i18n.h"
 #include "sysutils.h"
-#include "../common/asshelp.h"
 #include "../common/openpgpdefs.h"
 #include "../common/init.h"
 #include "../common/strlist.h"
@@ -282,11 +280,6 @@ shell_parse_argv (const char *s, int *r_argc, char ***r_argv)
   return 0;
 }
 

-/* Define Assuan hooks for NPTH.  */
-
-ASSUAN_SYSTEM_NPTH_IMPL;
-
-

 /* Global flags.  */
 enum cmd_and_opt_values cmd = 0;
 int skip_crypto = 0;
@@ -412,11 +405,6 @@ main (int argc, char **argv)
   /* Make sure that our subsystems are ready.  */
   i18n_init();
   init_common_subsystems (&argc, &argv);
-  npth_init ();
-  assuan_set_assuan_log_prefix (log_get_prefix (NULL));
-  assuan_set_gpg_err_source (GPG_ERR_SOURCE_DEFAULT);
-  assuan_set_system_hooks (ASSUAN_SYSTEM_NPTH);
-  assuan_sock_init ();
 
   /* Parse the command line. */
   pargs.argc  = &argc;
@@ -442,9 +430,11 @@ main (int argc, char **argv)
           log_info (_("NOTE: '%s' is not considered an option\n"), argv[i]);
     }
 
+  if (! opt.gpg_program)
+    opt.gpg_program = gnupg_module_name (GNUPG_MODULE_NAME_GPG);
+
   if (opt.verbose > 1)
     opt.debug_level = 1024;
-  setup_libassuan_logging (&opt.debug_level);
 
   switch (cmd)
     {

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-gnupg/gnupg2.git



More information about the Pkg-gnupg-commit mailing list