* cardglue.c (pin_cb): Disable debug output.
authorWerner Koch <wk@gnupg.org>
Mon, 14 Mar 2005 19:19:21 +0000 (19:19 +0000)
committerWerner Koch <wk@gnupg.org>
Mon, 14 Mar 2005 19:19:21 +0000 (19:19 +0000)
* mk-w32-dist: Check for patch files.
* w32installer.nsi: Translated a few more strings.  Print a
warning if permssions are not suitable for the installation.
Add Uninstaller entries.

14 files changed:
TODO
doc/ChangeLog
doc/DETAILS
doc/Makefile.am
doc/README.W32
g10/ChangeLog
g10/card-util.c
g10/cardglue.c
g10/keygen.c
g10/status.c
g10/status.h
scripts/ChangeLog
scripts/mk-w32-dist
scripts/w32installer.nsi

diff --git a/TODO b/TODO
index ce2e831..a6aff8e 100644 (file)
--- a/TODO
+++ b/TODO
@@ -1,8 +1,3 @@
-* BACKUP Filename requires a status message. !!!!
-
-* Delete a card key as well as a wiping.
-
-
   * From: Nicolas Sierro 
     Date: Thu, 17 Jun 2004 12:31:24 +0200
     
@@ -11,12 +6,8 @@
     20% faster and the crc32 code about 50% faster. Some memory leaks were
     also fixed according to the ChangeLog.
     
-  * Reword the "Not enough entropy" messages.
-
   * Do we need a configure test for putenv?
 
-  * Replace "user id not found" in getkey.c by "no valid user ID found"?
   * Describe some pitfalls when using EGD.  Check that ~/.gnupg/entropy
     really is the default.  What about needed permission?  
 
     given with an indication of the surname and the usable characters
     are also restricted.
 
-  * We status lines at least for bad PINs.  BAD_PASSPHARSE requires a
-    keyID though.
+  * Delete a card key as well as a wiping.
 
 
 Things we won't do
index c9fc5b0..72362c0 100644 (file)
@@ -1,3 +1,7 @@
+2005-03-14  Werner Koch  <wk@g10code.com>
+
+       * gnupg-w32.reg: Removed.
+
 2005-03-07  Werner Koch  <wk@g10code.com>
 
        * gpg.sgml (comment): Add note to keep the comment short.
index 8148a4d..03af065 100644 (file)
@@ -473,7 +473,7 @@ more arguments in future versions.
 
     SESSION_KEY  <algo>:<hexdigits>
        The session key used to decrypt the message.  This message will
-       only be emmited when the special option --show-session-key
+       only be emitted when the special option --show-session-key
        is used.  The format is suitable to be passed to the option
        --override-session-key
 
@@ -583,6 +583,10 @@ more arguments in future versions.
         for certain operation and is mostly useful to check whether a
         PIN change really worked.
 
+    BACKUP_KEY_CREATED fingerprint fname
+        A backup key named FNAME has been created for the key wityh
+        KEYID.
+
 
 Format of the "--attribute-fd" output
 =====================================
index f9bc358..dc421aa 100644 (file)
@@ -21,7 +21,7 @@
 AUTOMAKE_OPTIONS = no-texinfo.tex
 
 EXTRA_DIST = DETAILS gpg.sgml gpg.1 gpgv.sgml gpgv.1 faq.raw FAQ faq.html \
-             HACKING OpenPGP README.W32 samplekeys.asc gnupg.7 gnupg-w32.reg \
+             HACKING OpenPGP README.W32 samplekeys.asc gnupg.7 \
              TRANSLATE gpg.ru.sgml gpg.ru.1 highlights-1.4.txt
 
 man_MANS = gpg.1 gpgv.1 gnupg.7 gpg.ru.1
index 18f745d..2c40d96 100644 (file)
@@ -33,7 +33,7 @@ Store the locale id (like "de") into the Registry under the key
 HKEY_CURRENT_USER\Software\GNU\GnuPG with the name "Lang".  This must
 match one of the installed languages files in the directory named
 "gnupg.nls" below the installation directory.  Note, that the ".mo"
-extension is not part of the lcoale id.
+extension is not part of the locale id.
 
 
 Home directory:
index c8fad27..1f02e47 100644 (file)
@@ -1,3 +1,14 @@
+2005-03-14  Werner Koch  <wk@g10code.com>
+
+       * cardglue.c (pin_cb): Disable debug output.
+
+2005-03-11  Werner Koch  <wk@g10code.com>
+
+       * keygen.c (gen_card_key_with_backup): Write status line with the
+       backup filename.
+
+       * status.h, status.h (STATUS_BACKUP_KEY_CREATED): New.
+
 2005-03-10  David Shaw  <dshaw@jabberwocky.com>
 
        * keyserver.c (parse_keyserver_options): Accept honor-http-proxy
index 5c0f76b..c63335b 100644 (file)
@@ -578,7 +578,7 @@ change_url (void)
 }
 
 
-/* Fetch the key from the URL given on teh card or try to get it from
+/* Fetch the key from the URL given on the card or try to get it from
    the default keyserver.  */
 static int
 fetch_url(void)
index a700a34..9e5a14f 100644 (file)
@@ -659,7 +659,7 @@ pin_cb (void *opaque, const char *info, char **retstr)
   const char *ends, *s;
 
   *retstr = NULL;
-  log_debug ("asking for PIN '%s'\n", info);
+  /*   log_debug ("asking for PIN '%s'\n", info); */
 
   /* We use a special prefix to check whether the Admin PIN has been
      requested. */
index be8a8e5..1f325ce 100644 (file)
@@ -3420,9 +3420,25 @@ gen_card_key_with_backup (int algo, int keyno, int is_primary,
       }
     else
       {
+        byte array[MAX_FINGERPRINT_LEN];
+        char *fprbuf, *p;
+       
         iobuf_close (fp);
         iobuf_ioctl (NULL, 2, 0, (char*)fname);
         log_info (_("NOTE: backup of card key saved to `%s'\n"), fname);
+
+        fingerprint_from_sk (sk, array, &n);
+        p = fprbuf = xmalloc (MAX_FINGERPRINT_LEN*2 + 1 + 1);
+        for (i=0; i < n ; i++, p += 2)
+          sprintf (p, "%02X", array[i]);
+        *p++ = ' ';
+        *p = 0;
+
+        write_status_text_and_buffer (STATUS_BACKUP_KEY_CREATED,
+                                      fprbuf,
+                                      fname, strlen (fname),
+                                      0);
+        xfree (fprbuf);
       }
     free_packet (pkt);
     m_free (pkt);
index 3426226..a0c9511 100644 (file)
@@ -1,6 +1,6 @@
 /* status.c
  * Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003,
- *               2004 Free Software Foundation, Inc.
+ *               2004, 2005 Free Software Foundation, Inc.
  *
  * This file is part of GnuPG.
  *
@@ -162,6 +162,7 @@ get_status_string ( int no )
     case STATUS_SIG_SUBPACKET  : s = "SIG_SUBPACKET"; break;
     case STATUS_SC_OP_SUCCESS  : s = "SC_OP_SUCCESS"; break;
     case STATUS_SC_OP_FAILURE  : s = "SC_OP_FAILURE"; break;
+    case STATUS_BACKUP_KEY_CREATED:s="BACKUP_KEY_CREATED"; break;
     default: s = "?"; break;
     }
   return s;
index 629c28a..8be77e4 100644 (file)
 #define STATUS_SC_OP_FAILURE    79
 #define STATUS_SC_OP_SUCCESS    80
 
+#define STATUS_BACKUP_KEY_CREATED 81
+
 
 /*-- status.c --*/
 void set_status_fd ( int fd );
index b8c7433..abd8d41 100644 (file)
@@ -1,3 +1,10 @@
+2005-03-14  Werner Koch  <wk@g10code.com>
+
+       * mk-w32-dist: Check for patch files.
+       * w32installer.nsi: Translated a few more strings.  Print a
+       warning if permssions are not suitable for the installation.
+       Add Uninstaller entries.
+
 2005-02-16  David Shaw  <dshaw@jabberwocky.com>
 
        * gnupg.spec.in: Fix problem with storing the gpgkeys helpers in
index 28b0b70..c407873 100755 (executable)
@@ -122,15 +122,17 @@ for i in README COPYING NEWS; do
   cp ${srcdir}/$i $i.txt
   todos $i.txt
 done
-for i in README.W32 ; do
-  cp ${srcdir}/doc/$i $i.txt
-  todos $i.txt
-done
-for i in gnupg-w32.reg; do
-  cp ${srcdir}/doc/$i .
-  todos $i
+
+cp ${srcdir}/doc/README.W32 README-W32.txt
+todos README-W32.txt
+
+patches_defs=
+for i in `find "$topdir/patches" -type f -name '*.diff'`; do
+  cp $i .
+  patches_defs="-DWITH_PATCHES"
 done
 
+
 # We must distribute the MO files in UTF-8, the conversion is done by
 # gpg at runtime.  To include English at the right position in the list we 
 # need a special case.
@@ -217,11 +219,11 @@ if [ -n "$topdir" ]; then
   echo makensis -v2 -nocd -DVERSION="${version}" \
            -DPROD_VERSION="${prod_version}" \
            -DGNUPG_SRCDIR="${srcdir}" ${winpt_defs} ${src_defs} \
-           ${srcdir}/scripts/w32installer.nsi
+           ${patches_defs} ${srcdir}/scripts/w32installer.nsi
   BUILDINFO=$buildinfo makensis -v2 -nocd -DVERSION="${version}" \
            -DPROD_VERSION="${prod_version}" \
            -DGNUPG_SRCDIR="${srcdir}" ${winpt_defs} ${src_defs} \
-           ${srcdir}/scripts/w32installer.nsi
+           ${patches_defs} ${srcdir}/scripts/w32installer.nsi
   echo "Installer created" >&2
 else
   zip -9 "gnupg-w32cli-${version}.zip" *
index d9482fc..6d7f97d 100644 (file)
@@ -83,20 +83,15 @@ Var STARTMENU_FOLDER
 !insertmacro MUI_PAGE_WELCOME
 
 
-!define MUI_PAGE_HEADER_SUBTEXT \
-  "This software is licensed under the terms of the GNU General Public \
-   License (GPL) which guarantees your freedom to share and change Free \
-   Software."
+!define MUI_PAGE_HEADER_SUBTEXT "$(T_GPLHeader)"
 
-!define MUI_LICENSEPAGE_TEXT_BOTTOM \
-  "In short: You are allowed to run this software for any purpose. \
-   You may distribute it as long as you give the recipients the same \
-   rights you have received."
+!define MUI_LICENSEPAGE_TEXT_BOTTOM "$(T_GPLShort)"
 
 !define MUI_LICENSEPAGE_BUTTON "$(^NextBtn)"
 
 !insertmacro MUI_PAGE_LICENSE "COPYING.txt"
 
+!define MUI_PAGE_CUSTOMFUNCTION_SHOW PrintNonAdminWarning
 !insertmacro MUI_PAGE_COMPONENTS
 
 Page custom CustomPageOptions
@@ -111,10 +106,9 @@ Page custom CustomPageOptions
 
 !insertmacro MUI_PAGE_INSTFILES
 
-!define MUI_FINISHPAGE_SHOWREADME "README.W32.txt"
+!define MUI_FINISHPAGE_SHOWREADME "README-W32.txt"
 !define MUI_FINISHPAGE_SHOWREADME_TEXT "$(T_ShowReadme)"
-!define MUI_FINISHPAGE_LINK \
-  "Visit the GnuPG website for latest news and support"
+!define MUI_FINISHPAGE_LINK "$(T_FiniLink)"
 !define MUI_FINISHPAGE_LINK_LOCATION "http://www.gnupg.org/"
 !insertmacro MUI_PAGE_FINISH
 
@@ -138,6 +132,8 @@ Page custom CustomPageOptions
 !insertmacro MUI_RESERVEFILE_INSTALLOPTIONS
 ReserveFile "opt.ini" 
 ReserveFile "COPYING.txt"
+ReserveFile "${NSISDIR}/Plugins/UserInfo.dll"
+
 
 ${StrStr} # Supportable for Install Sections and Functions
 ${StrTok} # Supportable for Install Sections and Functions
@@ -164,7 +160,7 @@ Section "Base" SecBase
   SetOutPath "$INSTDIR\Doc"
 
   File "README.txt"
-  File "README.W32.txt"
+  File "README-W32.txt"
   File "COPYING.txt"
 
   Call InstallIconv
@@ -230,6 +226,11 @@ Section "Documentation" SecDoc
   File "NEWS.winpt.txt"
 !endif ; WITH_WINPT
 
+!ifdef WITH_PATCHES
+  SetOutPath "$INSTDIR\Src"
+  File '*.diff'
+!endif
+
 SectionEnd ; Section Documentation
 
 
@@ -260,6 +261,18 @@ Section "-Finish"
   ;;--------------------------
   WriteUninstaller "$INSTDIR\uninst-gnupg.exe"
 
+  StrCpy $MYTMP "Software\Microsoft\Windows\CurrentVersion\Uninstall\GnuPG"
+  WriteRegExpandStr HKLM $MYTMP "UninstallString" '"$INSTDIR\uninst-gnupg.exe"'
+  WriteRegExpandStr HKLM $MYTMP "InstallLocation" "$INSTDIR"
+  WriteRegStr       HKLM $MYTMP "DisplayName"     "GNU Privacy Guard"
+  WriteRegStr       HKLM $MYTMP "DisplayIcon"     "$INSTDIR\gpg.exe,0"
+  WriteRegStr       HKLM $MYTMP "DisplayVersion"  "${VERSION}"
+  WriteRegStr       HKLM $MYTMP "Publisher"       "Free Software Foundation"
+  WriteRegStr       HKLM $MYTMP "URLInfoAbout"    "http://www.gnupg.org/"
+  WriteRegDWORD     HKLM $MYTMP "NoModify"        "1"
+  WriteRegDWORD     HKLM $MYTMP "NoRepair"        "1"
+
+
   ;;---------------------
   ;; Create Menu entries
   ;;---------------------
@@ -270,7 +283,7 @@ Section "-Finish"
   CreateShortCut "$SMPROGRAMS\$STARTMENU_FOLDER\GnuPG README.lnk" \
                  "$INSTDIR\Doc\README.txt"
   CreateShortCut "$SMPROGRAMS\$STARTMENU_FOLDER\GnuPG README.Windows.lnk" \
-                 "$INSTDIR\Doc\README.W32.txt"
+                 "$INSTDIR\Doc\README-W32.txt"
   CreateShortCut "$SMPROGRAMS\$STARTMENU_FOLDER\GnuPG NEWS.lnk" \
                  "$INSTDIR\Doc\NEWS.txt"
 
@@ -353,7 +366,7 @@ Section "Uninstall"
   Delete "$INSTDIR\gpgkeys_ldap.exe"
 
   Delete "$INSTDIR\Doc\README.txt"
-  Delete "$INSTDIR\Doc\README.W32.txt"
+  Delete "$INSTDIR\Doc\README-W32.txt"
   Delete "$INSTDIR\Doc\COPYING.txt"
   Delete "$INSTDIR\Doc\COPYING.LIB.txt"
   Delete "$INSTDIR\Doc\README.iconv.txt"
@@ -408,6 +421,7 @@ Section "Uninstall"
   DeleteRegValue HKCU "Software\GNU\GnuPG" "Start Menu Folder"
   DeleteRegValue HKLM "Software\GNU\GnuPG" "Install Directory"
   DeleteRegKey /ifempty HKLM "Software\GNU\GnuPG"
+  DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\GnuPG"
 
 SectionEnd ; Uninstall
 
@@ -438,6 +452,22 @@ Function un.onInit
 FunctionEnd
 
 
+;; Check whether the current user is in the Administrator group or
+;; an OS version without the need for an Administrator is in use.
+;; Print a warning if this is not the case.
+Function PrintNonAdminWarning
+  ClearErrors
+  UserInfo::GetName
+  IfErrors leave
+  Pop $0
+  UserInfo::GetAccountType
+  Pop $1
+  StrCmp $1 "Admin" leave +1
+  MessageBox MB_OK "$(T_AdminNeeded)"
+
+ leave:
+FunctionEnd
+
 
 Function CustomPageOptions  
   SectionGetFlags ${SecNLS} $R0 
@@ -531,6 +561,40 @@ LangString T_About ${LANG_GERMAN} \
    \r\n\r\n\r\n\r\n\r\nDies ist GnuPG version ${VERSION}\r\n\
    erstellt am $%BUILDINFO%"
 
+; Startup page
+LangString T_GPLHeader ${LANG_ENGLISH} \
+  "This software is licensed under the terms of the GNU General Public \
+   License (GPL) which guarantees your freedom to share and change Free \
+   Software."
+LangString T_GPLHeader ${LANG_GERMAN}} \
+  "Diese Software ist unter der GNU General Public License \
+   (GPL) lizensiert; dies gibt Ihnen die Freiheit, sie \
+   zu ändern und weiterzugeben."
+
+LangString T_GPLShort ${LANG_ENGLISH} \
+  "In short: You are allowed to run this software for any purpose. \
+   You may distribute it as long as you give the recipients the same \
+   rights you have received."
+LangString T_GPLShort ${LANG_GERMAN} \
+  "In aller Kürze: Sie haben das Recht, die Software zu jedem Zweck \
+   einzusetzen.  Sie können die Software weitergeben, sofern Sie dem \
+   Empfänger dieselben Rechte einräumen, die auch Sie erhalten haben."
+
+
+; Finish page
+LangString T_FiniLink ${LANG_ENGLISH} \
+  "Visit the GnuPG website for latest news and support"
+LangString T_FiniLink ${LANG_GERMAN}} \
+  "Zur GnuPG Website mit Neuigkeiten und Hilfsangeboten"
+
+; From Function PrintNonAdminWarning
+LangString T_AdminNeeded ${LANG_ENGLISH} \
+   "Warning: Administrator permissions required for a successful installation"
+LangString T_AdminNeeded ${LANG_GERMAN} \
+   "Warnung: Administrator Reche werden für eine erfolgreiche \
+    Installation benötigt."
+
+
 ; Installation options like language used for GnuPG
 LangString T_InstallOptions ${LANG_ENGLISH} "Install Options"
 LangString T_InstallOptions ${LANG_GERMAN}  "Installationsoptionen"