# HG changeset patch # User Simon Josefsson # Date 1355242474 -3600 # Node ID 69d4aaeb90674d57e558d1dfee958119ea4f72f2 # Parent 60ac4a074708e486223b6e75ad4313a22f11079d gnupload: Work with GnuPG using gpg-agent (for smartcards). * build-aux/gnupload: If GnuPG is configured to use gpg-agent, let it handle password prompting. diff -r 60ac4a074708 -r 69d4aaeb9067 ChangeLog --- a/ChangeLog Mon Dec 10 14:52:22 2012 -0800 +++ b/ChangeLog Tue Dec 11 17:14:34 2012 +0100 @@ -1,3 +1,9 @@ +2012-12-11 Simon Josefsson + + gnupload: Work with GnuPG using gpg-agent (for smartcards). + * build-aux/gnupload: If GnuPG is configured to use gpg-agent, + let it handle password prompting. + 2012-12-10 Eli Zaretskii canonicalize, canonicalize-lgpl: Microsoft Windows prefix fixes diff -r 60ac4a074708 -r 69d4aaeb9067 build-aux/gnupload --- a/build-aux/gnupload Mon Dec 10 14:52:22 2012 -0800 +++ b/build-aux/gnupload Tue Dec 11 17:14:34 2012 +0100 @@ -1,7 +1,7 @@ #!/bin/sh # Sign files and upload them. -scriptversion=2012-06-11.00; # UTC +scriptversion=2012-12-11.16; # UTC # Copyright (C) 2004-2012 Free Software Foundation, Inc. # @@ -242,6 +242,8 @@ # Make sure passphrase is not exported in the environment. unset passphrase +unset passphrase_fd_0 +GNUPGHOME=${GNUPGHOME:-$HOME/.gnupg} # Reset PATH to be sure that echo is a built-in. We will later use # 'echo $passphrase' to output the passphrase, so it is important that @@ -249,12 +251,13 @@ # listings with their arguments...). # Remember this script runs with 'set -e', so if echo is not built-in # it will exit now. -if $dry_run; then :; else +if $dry_run || grep -q "^use-agent" $GNUPGHOME/gpg.conf; then :; else PATH=/empty echo -n "Enter GPG passphrase: " stty -echo read -r passphrase stty echo echo + passphrase_fd_0="--passphrase-fd 0" fi if test $# -ne 0; then @@ -262,7 +265,7 @@ do echo "Signing $file ..." rm -f $file.sig - echo "$passphrase" | $dbg $GPG --passphrase-fd 0 -ba -o $file.sig $file + echo "$passphrase" | $dbg $GPG $passphrase_fd_0 -ba -o $file.sig $file done fi @@ -320,12 +323,12 @@ case $dest in alpha.gnu.org:*) mkdirective "$destdir" "$base" "$file" "$stmt" - echo "$passphrase" | $dbg $GPG --passphrase-fd 0 --clearsign $base.directive + echo "$passphrase" | $dbg $GPG $passphrase_fd_0 --clearsign $base.directive $dbg ncftpput ftp-upload.gnu.org /incoming/alpha $files $base.directive.asc ;; ftp.gnu.org:*) mkdirective "$destdir" "$base" "$file" "$stmt" - echo "$passphrase" | $dbg $GPG --passphrase-fd 0 --clearsign $base.directive + echo "$passphrase" | $dbg $GPG $passphrase_fd_0 --clearsign $base.directive $dbg ncftpput ftp-upload.gnu.org /incoming/ftp $files $base.directive.asc ;; savannah.gnu.org:*) @@ -344,7 +347,7 @@ destdir_p1=`echo "$destdir" | sed 's,^[^/]*/,,'` destdir_topdir=`echo "$destdir" | sed 's,/.*,,'` mkdirective "$destdir_p1" "$base" "$file" "$stmt" - echo "$passphrase" | $dbg $GPG --passphrase-fd 0 --clearsign $base.directive + echo "$passphrase" | $dbg $GPG $passphrase_fd_0 --clearsign $base.directive for f in $files $base.directive.asc do echo put $f @@ -353,7 +356,7 @@ /*) dest_host=`echo "$dest" | sed 's,:.*,,'` mkdirective "$destdir" "$base" "$file" "$stmt" - echo "$passphrase" | $dbg $GPG --passphrase-fd 0 --clearsign $base.directive + echo "$passphrase" | $dbg $GPG $passphrase_fd_0 --clearsign $base.directive $dbg cp $files $base.directive.asc $dest_host ;; *)