[git] GnuPG - branch, STABLE-BRANCH-2-0, updated. gnupg-2.0.25-13-gee30bb9

by Werner Koch cvs at cvs.gnupg.org
Tue Aug 12 20:41:50 CEST 2014


This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "The GNU Privacy Guard".

The branch, STABLE-BRANCH-2-0 has been updated
       via  ee30bb945f316f2e3bba64fc1f006d7ce19cd1b7 (commit)
       via  5b2dcdd513ff503bb0bffbe7b9aa6d81d48dfaeb (commit)
       via  9f3619cb5d633baa1a8dbd7f1ca4789d091d31bb (commit)
       via  b972ec396689013b884ea80f90d7505682d2fbb8 (commit)
       via  90397c9343411bc52ed55d9710de875db70fac64 (commit)
      from  5860cc79389ac36501f92d1c781bd8aaf560a158 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commit ee30bb945f316f2e3bba64fc1f006d7ce19cd1b7
Author: Werner Koch <wk at gnupg.org>
Date:   Tue Aug 12 10:36:30 2014 +0200

    Post release updates.
    
    --

diff --git a/NEWS b/NEWS
index 70c2773..88c667b 100644
--- a/NEWS
+++ b/NEWS
@@ -1,3 +1,7 @@
+Noteworthy changes in version 2.0.27 (unreleased)
+-------------------------------------------------
+
+
 Noteworthy changes in version 2.0.26 (2014-08-12)
 -------------------------------------------------
 
diff --git a/configure.ac b/configure.ac
index 417cf25..c5f9bb6 100644
--- a/configure.ac
+++ b/configure.ac
@@ -26,7 +26,7 @@ min_automake_version="1.10"
 # (git tag -s gnupg-2.n.m) and run "./autogen.sh --force".  Please
 # bump the version number immediately *after* the release and do
 # another commit and push so that the git magic is able to work.
-m4_define([mym4_version], [2.0.26])
+m4_define([mym4_version], [2.0.27])
 
 # Below is m4 magic to extract and compute the git revision number,
 # the decimalized short revision number, a beta version string and a

commit 5b2dcdd513ff503bb0bffbe7b9aa6d81d48dfaeb
Author: Werner Koch <wk at gnupg.org>
Date:   Tue Aug 12 10:36:30 2014 +0200

    Release 2.0.26

diff --git a/NEWS b/NEWS
index f523056..70c2773 100644
--- a/NEWS
+++ b/NEWS
@@ -1,6 +1,17 @@
-Noteworthy changes in version 2.0.26 (unreleased)
+Noteworthy changes in version 2.0.26 (2014-08-12)
 -------------------------------------------------
 
+ * gpg: Fix a regression in 2.0.24 if a subkey id is given
+   to --recv-keys et al.
+
+ * gpg: Cap attribute packets at 16MB.
+
+ * gpgsm: Auto-create the ".gnupg" home directory in the same
+   way gpg does.
+
+ * scdaemon: Allow for certificates > 1024 when using PC/SC.
+
+
 Noteworthy changes in version 2.0.25 (2014-06-30)
 -------------------------------------------------
 
diff --git a/sm/keydb.c b/sm/keydb.c
index 23eca35..4fc5e8c 100644
--- a/sm/keydb.c
+++ b/sm/keydb.c
@@ -34,6 +34,11 @@
 #include "keydb.h"
 #include "i18n.h"
 
+#ifdef MKDIR_TAKES_ONE_ARG
+#undef mkdir
+#define mkdir(a,b) mkdir(a)
+#endif
+
 static int active_handles;
 
 typedef enum {
@@ -245,7 +250,6 @@ keydb_add_resource (const char *url, int force, int secret, int *auto_created)
   const char *resname = url;
   char *filename = NULL;
   int rc = 0;
-  FILE *fp;
   KeydbResourceType rt = KEYDB_RESOURCE_TYPE_NONE;
 
   if (auto_created)

commit 9f3619cb5d633baa1a8dbd7f1ca4789d091d31bb
Author: Werner Koch <wk at gnupg.org>
Date:   Tue Aug 12 10:36:30 2014 +0200

    po: Auto-update due to removed string.
    
    --

diff --git a/po/be.po b/po/be.po
index 2a110d4..35a0326 100644
--- a/po/be.po
+++ b/po/be.po
@@ -6119,9 +6119,6 @@ msgstr "паказаць ключы й адбіткі пальцаў"
 msgid "error creating keybox `%s': %s\n"
 msgstr "памылка стварэньня \"%s\": %s\n"
 
-msgid "you may want to start the gpg-agent first\n"
-msgstr ""
-
 #, fuzzy, c-format
 msgid "keybox `%s' created\n"
 msgstr "%s: тэчка створана\n"
diff --git a/po/ca.po b/po/ca.po
index 73306c7..0c56144 100644
--- a/po/ca.po
+++ b/po/ca.po
@@ -6660,9 +6660,6 @@ msgstr "error en la lectura de «%s»: %s\n"
 msgid "error creating keybox `%s': %s\n"
 msgstr "error en crear l'anell «%s»: %s\n"
 
-msgid "you may want to start the gpg-agent first\n"
-msgstr ""
-
 #, fuzzy, c-format
 msgid "keybox `%s' created\n"
 msgstr "s'ha creat l'anell «%s»\n"
diff --git a/po/cs.po b/po/cs.po
index 5e06ac7..7607d51 100644
--- a/po/cs.po
+++ b/po/cs.po
@@ -6205,9 +6205,6 @@ msgstr "chyba při čtení vstupu: %s\n"
 msgid "error creating keybox `%s': %s\n"
 msgstr "chyba při vytváření schránky na klíče (keybox) „%s“: %s\n"
 
-msgid "you may want to start the gpg-agent first\n"
-msgstr "možná byste chtěl(a) nejprve spustit gpg-agenta\n"
-
 #, c-format
 msgid "keybox `%s' created\n"
 msgstr "schránka na klíče (keybox) „%s“ vytvořena\n"
@@ -6689,6 +6686,9 @@ msgstr ""
 "Syntaxe: gpg-check-pattern [VOLBY] SOUBOR_SE_VZOREM\n"
 "Prověří heslo zadané na vstupu proti souboru se vzory\n"
 
+#~ msgid "you may want to start the gpg-agent first\n"
+#~ msgstr "možná byste chtěl(a) nejprve spustit gpg-agenta\n"
+
 #~ msgid "enable ssh-agent emulation"
 #~ msgstr "zapnout emulaci ssh-agenta"
 
diff --git a/po/da.po b/po/da.po
index cb70c36..75e840a 100644
--- a/po/da.po
+++ b/po/da.po
@@ -6206,9 +6206,6 @@ msgstr "fejl ved læsning af inddata: %s\n"
 msgid "error creating keybox `%s': %s\n"
 msgstr "fejl ved oprettelse af nøgleboks »%s«: %s\n"
 
-msgid "you may want to start the gpg-agent first\n"
-msgstr "du kan eventuelt starte gpg-agenten først\n"
-
 #, c-format
 msgid "keybox `%s' created\n"
 msgstr "nøgleboks »%s« oprettet\n"
@@ -6691,6 +6688,9 @@ msgstr ""
 "Syntaks: gpg-check-pattern [tilvalg] mønsterfil\n"
 "Kontroller en adgangsfrase angivet på stdin mod mønsterfilen\n"
 
+#~ msgid "you may want to start the gpg-agent first\n"
+#~ msgstr "du kan eventuelt starte gpg-agenten først\n"
+
 #~ msgid "error loading `%s': %s\n"
 #~ msgstr "fejl ved læsning af »%s«: %s\n"
 
diff --git a/po/de.po b/po/de.po
index 12abe70..4516768 100644
--- a/po/de.po
+++ b/po/de.po
@@ -6332,9 +6332,6 @@ msgstr "Fehler beim Lesen der Eingabe: %s\n"
 msgid "error creating keybox `%s': %s\n"
 msgstr "Die \"Keybox\" `%s' konnte nicht erstellt werden: %s\n"
 
-msgid "you may want to start the gpg-agent first\n"
-msgstr "Sie sollten zuerst den gpg-agent starten\n"
-
 #, c-format
 msgid "keybox `%s' created\n"
 msgstr "Die \"Keybox\" `%s' wurde erstellt\n"
@@ -6823,6 +6820,9 @@ msgstr ""
 "Syntax: gpg-check-pattern [optionen] Musterdatei\n"
 "Die von stdin gelesene Passphrase gegen die Musterdatei prüfen\n"
 
+#~ msgid "you may want to start the gpg-agent first\n"
+#~ msgstr "Sie sollten zuerst den gpg-agent starten\n"
+
 #~ msgid "error loading `%s': %s\n"
 #~ msgstr "Fehler beim Laden von `%s': %s\n"
 
diff --git a/po/el.po b/po/el.po
index 54ccde4..2fcce66 100644
--- a/po/el.po
+++ b/po/el.po
@@ -6495,9 +6495,6 @@ msgstr "
 msgid "error creating keybox `%s': %s\n"
 msgstr "áäõíáìßá äçìéïõñãßáò ôçò êëåéäïèÞêçò `%s': %s\n"
 
-msgid "you may want to start the gpg-agent first\n"
-msgstr ""
-
 #, fuzzy, c-format
 msgid "keybox `%s' created\n"
 msgstr "êëåéäïèÞêç `%s' äçìéïõñãÞèçêå\n"
diff --git a/po/eo.po b/po/eo.po
index 639c60a..4c510c6 100644
--- a/po/eo.po
+++ b/po/eo.po
@@ -6460,9 +6460,6 @@ msgstr "eraro dum legado de '%s': %s\n"
 msgid "error creating keybox `%s': %s\n"
 msgstr "eraro dum kreado de þlosilaro '%s': %s\n"
 
-msgid "you may want to start the gpg-agent first\n"
-msgstr ""
-
 #, fuzzy, c-format
 msgid "keybox `%s' created\n"
 msgstr "þlosilaro '%s' kreita\n"
diff --git a/po/es.po b/po/es.po
index e45399a..210beca 100644
--- a/po/es.po
+++ b/po/es.po
@@ -6259,9 +6259,6 @@ msgstr "error leyendo entrada: %s\n"
 msgid "error creating keybox `%s': %s\n"
 msgstr "error creando caja de claves `%s': %s\n"
 
-msgid "you may want to start the gpg-agent first\n"
-msgstr "puede que quiera ejecutar gpg-agent antes\n"
-
 #, c-format
 msgid "keybox `%s' created\n"
 msgstr "caja de claves `%s' creada\n"
@@ -6746,6 +6743,9 @@ msgstr ""
 "Compara frase contraseña dada en entrada estándar con un fichero de "
 "patrones\n"
 
+#~ msgid "you may want to start the gpg-agent first\n"
+#~ msgstr "puede que quiera ejecutar gpg-agent antes\n"
+
 #~ msgid "error loading `%s': %s\n"
 #~ msgstr "error cargando `%s': %s\n"
 
diff --git a/po/et.po b/po/et.po
index 2cb42a1..055ce4d 100644
--- a/po/et.po
+++ b/po/et.po
@@ -6413,9 +6413,6 @@ msgstr "viga `%s' lugemisel: %s\n"
 msgid "error creating keybox `%s': %s\n"
 msgstr "viga võtmehoidla `%s' loomisel: %s\n"
 
-msgid "you may want to start the gpg-agent first\n"
-msgstr ""
-
 #, fuzzy, c-format
 msgid "keybox `%s' created\n"
 msgstr "võtmehoidla `%s' on loodud\n"
diff --git a/po/fi.po b/po/fi.po
index 39d22a7..9da8b7d 100644
--- a/po/fi.po
+++ b/po/fi.po
@@ -6478,9 +6478,6 @@ msgstr "virhe luettaessa tiedostoa \"%s\": %s\n"
 msgid "error creating keybox `%s': %s\n"
 msgstr "virhe luotaessa avainrengasta \"%s\": %s\n"
 
-msgid "you may want to start the gpg-agent first\n"
-msgstr ""
-
 #, fuzzy, c-format
 msgid "keybox `%s' created\n"
 msgstr "avainrengas \"%s\" luotu\n"
diff --git a/po/fr.po b/po/fr.po
index 303d677..171e300 100644
--- a/po/fr.po
+++ b/po/fr.po
@@ -6385,9 +6385,6 @@ msgstr "erreur de lecture de l'entrée : %s\n"
 msgid "error creating keybox `%s': %s\n"
 msgstr "erreur de création du trousseau local « %s » : %s\n"
 
-msgid "you may want to start the gpg-agent first\n"
-msgstr "vous pourriez d'abord démarrer l'agent GPG\n"
-
 #, c-format
 msgid "keybox `%s' created\n"
 msgstr "le trousseau local « %s » a été créé\n"
@@ -6875,6 +6872,9 @@ msgstr ""
 "Vérifier une phrase de passe donnée sur l'entrée standard par rapport à "
 "ficmotif\n"
 
+#~ msgid "you may want to start the gpg-agent first\n"
+#~ msgstr "vous pourriez d'abord démarrer l'agent GPG\n"
+
 #~ msgid "error loading `%s': %s\n"
 #~ msgstr "erreur de chargement de « %s » : %s\n"
 
diff --git a/po/gl.po b/po/gl.po
index d6c493b..626abba 100644
--- a/po/gl.po
+++ b/po/gl.po
@@ -6495,9 +6495,6 @@ msgstr "erro lendo `%s': %s\n"
 msgid "error creating keybox `%s': %s\n"
 msgstr "erro ao crea-lo chaveiro `%s': %s\n"
 
-msgid "you may want to start the gpg-agent first\n"
-msgstr ""
-
 #, fuzzy, c-format
 msgid "keybox `%s' created\n"
 msgstr "chaveiro `%s' creado\n"
diff --git a/po/hu.po b/po/hu.po
index af03be2..f4d82ba 100644
--- a/po/hu.po
+++ b/po/hu.po
@@ -6446,9 +6446,6 @@ msgstr "Hiba \"%s\" olvas
 msgid "error creating keybox `%s': %s\n"
 msgstr "Hiba a(z) \"%s\" kulcskarika létrehozásakor: %s\n"
 
-msgid "you may want to start the gpg-agent first\n"
-msgstr ""
-
 #, fuzzy, c-format
 msgid "keybox `%s' created\n"
 msgstr "\"%s\" kulcskarikát létrehoztam.\n"
diff --git a/po/id.po b/po/id.po
index b499b8c..7f00362 100644
--- a/po/id.po
+++ b/po/id.po
@@ -6443,9 +6443,6 @@ msgstr "kesalahan membaca `%s': %s\n"
 msgid "error creating keybox `%s': %s\n"
 msgstr "kesalahan menulis keyring `%s': %s\n"
 
-msgid "you may want to start the gpg-agent first\n"
-msgstr ""
-
 #, fuzzy, c-format
 msgid "keybox `%s' created\n"
 msgstr "%s: keyring tercipta\n"
diff --git a/po/it.po b/po/it.po
index a89e1c3..ed6afb5 100644
--- a/po/it.po
+++ b/po/it.po
@@ -6485,9 +6485,6 @@ msgstr "errore leggendo `%s': %s\n"
 msgid "error creating keybox `%s': %s\n"
 msgstr "errore creando il portachiavi `%s': %s\n"
 
-msgid "you may want to start the gpg-agent first\n"
-msgstr ""
-
 #, fuzzy, c-format
 msgid "keybox `%s' created\n"
 msgstr "portachiavi `%s' creato\n"
diff --git a/po/ja.po b/po/ja.po
index 14af09c..16bb5da 100644
--- a/po/ja.po
+++ b/po/ja.po
@@ -6088,9 +6088,6 @@ msgstr "入力読み込みエラー: %s\n"
 msgid "error creating keybox `%s': %s\n"
 msgstr "keybox「%s」の作成エラー: %s\n"
 
-msgid "you may want to start the gpg-agent first\n"
-msgstr "まず gpg-agent を開始したいでしょう\n"
-
 #, c-format
 msgid "keybox `%s' created\n"
 msgstr "keybox「%s」が作成されました\n"
@@ -6574,5 +6571,8 @@ msgstr ""
 "形式: gpg-check-pattern [オプション] パターンファイル\n"
 "パターンファイルに対して標準入力のパスフレーズを確認する\n"
 
+#~ msgid "you may want to start the gpg-agent first\n"
+#~ msgstr "まず gpg-agent を開始したいでしょう\n"
+
 #~ msgid "error loading `%s': %s\n"
 #~ msgstr "「%s」の読込みエラー: %s\n"
diff --git a/po/nb.po b/po/nb.po
index 56814fa..2504a4f 100644
--- a/po/nb.po
+++ b/po/nb.po
@@ -6197,9 +6197,6 @@ msgstr "feil ved lesing av 
 msgid "error creating keybox `%s': %s\n"
 msgstr "feil ved opprettelse av nøkkelknippet «%s»: %s\n"
 
-msgid "you may want to start the gpg-agent first\n"
-msgstr ""
-
 #, fuzzy, c-format
 msgid "keybox `%s' created\n"
 msgstr "nøkkelknippet «%s» ble opprettet\n"
diff --git a/po/pl.po b/po/pl.po
index 0cd137d..43629bc 100644
--- a/po/pl.po
+++ b/po/pl.po
@@ -6239,9 +6239,6 @@ msgstr "b
 msgid "error creating keybox `%s': %s\n"
 msgstr "b³±d tworzenia keyboksa ,,%s'': %s\n"
 
-msgid "you may want to start the gpg-agent first\n"
-msgstr "mo¿na najpierw uruchomiæ najpierw gpg-agenta\n"
-
 #, c-format
 msgid "keybox `%s' created\n"
 msgstr "keybox ,,%s'' utworzony\n"
@@ -6726,6 +6723,9 @@ msgstr ""
 "Sk³adnia: gpg-check-pattern [opcje] plik-wzorców\n"
 "Sprawdzanie has³a ze standardowego wej¶cia wzglêdem pliku wzorców\n"
 
+#~ msgid "you may want to start the gpg-agent first\n"
+#~ msgstr "mo¿na najpierw uruchomiæ najpierw gpg-agenta\n"
+
 #~ msgid "enable ssh-agent emulation"
 #~ msgstr "w³±czenie emulacji ssh-agenta"
 
diff --git a/po/pt.po b/po/pt.po
index 875f9f0..73a911c 100644
--- a/po/pt.po
+++ b/po/pt.po
@@ -6453,9 +6453,6 @@ msgstr "erro na leitura de `%s': %s\n"
 msgid "error creating keybox `%s': %s\n"
 msgstr "erro ao criar porta-chaves `%s': %s\n"
 
-msgid "you may want to start the gpg-agent first\n"
-msgstr ""
-
 #, fuzzy, c-format
 msgid "keybox `%s' created\n"
 msgstr "porta-chaves `%s' criado\n"
diff --git a/po/pt_BR.po b/po/pt_BR.po
index 27812d9..1276d5d 100644
--- a/po/pt_BR.po
+++ b/po/pt_BR.po
@@ -6468,9 +6468,6 @@ msgstr "erro na leitura de `%s': %s\n"
 msgid "error creating keybox `%s': %s\n"
 msgstr "erro na escrita do chaveiro `%s': %s\n"
 
-msgid "you may want to start the gpg-agent first\n"
-msgstr ""
-
 #, fuzzy, c-format
 msgid "keybox `%s' created\n"
 msgstr "%s: chaveiro criado\n"
diff --git a/po/ro.po b/po/ro.po
index 92353e4..9414bf9 100644
--- a/po/ro.po
+++ b/po/ro.po
@@ -6355,9 +6355,6 @@ msgstr "eroare la citire `%s': %s\n"
 msgid "error creating keybox `%s': %s\n"
 msgstr "eroare la crearea inelului de chei `%s': %s\n"
 
-msgid "you may want to start the gpg-agent first\n"
-msgstr ""
-
 #, fuzzy, c-format
 msgid "keybox `%s' created\n"
 msgstr "inelul de chei `%s' creat\n"
diff --git a/po/ru.po b/po/ru.po
index 6ccd36e..8aa7e06 100644
--- a/po/ru.po
+++ b/po/ru.po
@@ -6203,9 +6203,6 @@ msgstr "ошибка чтения ввода: %s\n"
 msgid "error creating keybox `%s': %s\n"
 msgstr "ошибка создания keybox `%s': %s\n"
 
-msgid "you may want to start the gpg-agent first\n"
-msgstr "возможно следует запустить gpg-agent сперва\n"
-
 #, c-format
 msgid "keybox `%s' created\n"
 msgstr "создан keybox `%s'\n"
@@ -6678,6 +6675,9 @@ msgid ""
 "Check a passphrase given on stdin against the patternfile\n"
 msgstr ""
 
+#~ msgid "you may want to start the gpg-agent first\n"
+#~ msgstr "возможно следует запустить gpg-agent сперва\n"
+
 #~ msgid "error loading `%s': %s\n"
 #~ msgstr "ошибка загрузки `%s': %s\n"
 
diff --git a/po/sk.po b/po/sk.po
index e813126..d32c1dc 100644
--- a/po/sk.po
+++ b/po/sk.po
@@ -6465,9 +6465,6 @@ msgstr "chyba pri 
 msgid "error creating keybox `%s': %s\n"
 msgstr "chyba pri vytváraní súboru kµúèov (keyring)`%s': %s\n"
 
-msgid "you may want to start the gpg-agent first\n"
-msgstr ""
-
 #, fuzzy, c-format
 msgid "keybox `%s' created\n"
 msgstr "súbor kµúèov (keyring) `%s' vytvorený\n"
diff --git a/po/sv.po b/po/sv.po
index b896570..58782f0 100644
--- a/po/sv.po
+++ b/po/sv.po
@@ -6363,9 +6363,6 @@ msgstr "fel vid läsning av indata: %s\n"
 msgid "error creating keybox `%s': %s\n"
 msgstr "fel när nyckelskåpet \"%s\" skapades: %s\n"
 
-msgid "you may want to start the gpg-agent first\n"
-msgstr "du kanske vill starta gpg-agent först\n"
-
 #, c-format
 msgid "keybox `%s' created\n"
 msgstr "nyckelskåpet \"%s\" skapat\n"
@@ -6850,6 +6847,9 @@ msgstr ""
 "Syntax: gpg-check-pattern [flaggor] mönsterfil\n"
 "Kontrollera en lösenfras angiven på standard in mot mönsterfilen\n"
 
+#~ msgid "you may want to start the gpg-agent first\n"
+#~ msgstr "du kanske vill starta gpg-agent först\n"
+
 #~ msgid "error loading `%s': %s\n"
 #~ msgstr "fel vid inläsning av \"%s\": %s\n"
 
diff --git a/po/tr.po b/po/tr.po
index f6bfb37..e5df7d3 100644
--- a/po/tr.po
+++ b/po/tr.po
@@ -6291,9 +6291,6 @@ msgstr "girdi okunurken hata: %s\n"
 msgid "error creating keybox `%s': %s\n"
 msgstr "anahtar bloku `%s' oluÅŸturulurken hata: %s\n"
 
-msgid "you may want to start the gpg-agent first\n"
-msgstr "gpg-agent'ı önce başlatmak isteyebilirsiniz\n"
-
 #, c-format
 msgid "keybox `%s' created\n"
 msgstr "`%s' anahtar bloÄŸu oluÅŸturuldu\n"
@@ -6778,6 +6775,9 @@ msgstr ""
 "Standart girdiden verilen anahtar parolasını örüntü dosyasıyla "
 "karşılaştırır\n"
 
+#~ msgid "you may want to start the gpg-agent first\n"
+#~ msgstr "gpg-agent'ı önce başlatmak isteyebilirsiniz\n"
+
 #~ msgid "error loading `%s': %s\n"
 #~ msgstr "`%s' yüklenirken hata: %s\n"
 
diff --git a/po/uk.po b/po/uk.po
index bd50c6d..e741119 100644
--- a/po/uk.po
+++ b/po/uk.po
@@ -6300,9 +6300,6 @@ msgstr "помилка під час спроби читання вхідних
 msgid "error creating keybox `%s': %s\n"
 msgstr "помилка під час спроби створення сховища ключів «%s»: %s\n"
 
-msgid "you may want to start the gpg-agent first\n"
-msgstr "вам варто спочатку запустити gpg-agent\n"
-
 #, c-format
 msgid "keybox `%s' created\n"
 msgstr "створено сховище ключів «%s»\n"
@@ -6790,6 +6787,9 @@ msgstr ""
 "Синтаксис: gpg-check-pattern [параметри] файл_шаблонів\n"
 "Перевірити пароль, вказаний у stdin, за допомогою файла_шаблонів\n"
 
+#~ msgid "you may want to start the gpg-agent first\n"
+#~ msgstr "вам варто спочатку запустити gpg-agent\n"
+
 #~ msgid "error loading `%s': %s\n"
 #~ msgstr "помилка під час спроби завантаження «%s»: %s\n"
 
diff --git a/po/zh_CN.po b/po/zh_CN.po
index 4615cf4..3e01465 100644
--- a/po/zh_CN.po
+++ b/po/zh_CN.po
@@ -6183,9 +6183,6 @@ msgstr "读取‘%s’时出错:%s\n"
 msgid "error creating keybox `%s': %s\n"
 msgstr "建立钥匙环‘%s’时发生错误:%s\n"
 
-msgid "you may want to start the gpg-agent first\n"
-msgstr ""
-
 #, fuzzy, c-format
 msgid "keybox `%s' created\n"
 msgstr "钥匙环‘%s’已建立\n"
diff --git a/po/zh_TW.po b/po/zh_TW.po
index e1f58b3..abcf54e 100644
--- a/po/zh_TW.po
+++ b/po/zh_TW.po
@@ -6044,9 +6044,6 @@ msgstr "讀取輸入時出錯: %s\n"
 msgid "error creating keybox `%s': %s\n"
 msgstr "建立金鑰鑰匙盒 `%s' 時出錯: %s\n"
 
-msgid "you may want to start the gpg-agent first\n"
-msgstr "你可能會先想啟動 gpg-agent\n"
-
 #, c-format
 msgid "keybox `%s' created\n"
 msgstr "`%s' 鑰匙盒已建立\n"
@@ -6523,6 +6520,9 @@ msgstr ""
 "語法: gpg-check-pattern [選項] 樣式檔案\n"
 "用樣式檔案來檢查由標準輸入給定的密語\n"
 
+#~ msgid "you may want to start the gpg-agent first\n"
+#~ msgstr "你可能會先想啟動 gpg-agent\n"
+
 #~ msgid "error loading `%s': %s\n"
 #~ msgstr "載入 `%s' 時出錯: %s\n"
 

commit b972ec396689013b884ea80f90d7505682d2fbb8
Author: Werner Koch <wk at gnupg.org>
Date:   Tue Aug 12 10:36:30 2014 +0200

    sm: Create homedir and lock empty keybox creation.
    
    * sm/gpgsm.h (opt): Add field "no_homedir_creation".
    * sm/gpgsm.c (main): Set it if --no-options is used.
    * sm/keydb.c: Include fcntl.h.
    (try_make_homedir): New.  Similar to the one from g10/openfile.c
    (maybe_create_keybox): New.  Similar to the one from g10/keydb.c.
    (keydb_add_resource): Replace some code by maybe_create_keybox.

diff --git a/sm/gpgsm.c b/sm/gpgsm.c
index 2470df0..97ec4bb 100644
--- a/sm/gpgsm.c
+++ b/sm/gpgsm.c
@@ -951,7 +951,10 @@ main ( int argc, char **argv)
           default_config = 0;
 	}
       else if (pargs.r_opt == oNoOptions)
-        default_config = 0; /* --no-options */
+        {
+          default_config = 0; /* --no-options */
+          opt.no_homedir_creation = 1;
+        }
       else if (pargs.r_opt == oHomedir)
         opt.homedir = pargs.r.ret_str;
       else if (pargs.r_opt == aCallProtectTool)
@@ -1246,7 +1249,7 @@ main ( int argc, char **argv)
               goto next_pass;
 	    }
           break;
-        case oNoOptions: break; /* no-options */
+        case oNoOptions: opt.no_homedir_creation = 1; break; /* no-options */
         case oHomedir: opt.homedir = pargs.r.ret_str; break;
         case oAgentProgram: opt.agent_program = pargs.r.ret_str;  break;
 
diff --git a/sm/gpgsm.h b/sm/gpgsm.h
index 1904bd4..25a2e5b 100644
--- a/sm/gpgsm.h
+++ b/sm/gpgsm.h
@@ -50,7 +50,7 @@ struct keyserver_spec
 
 
 /* A large struct named "opt" to keep global flags. */
-struct 
+struct
 {
   unsigned int debug; /* debug flags (DBG_foo_VALUE) */
   int verbose;      /* verbosity level */
@@ -59,10 +59,11 @@ struct
   int answer_yes;   /* assume yes on most questions */
   int answer_no;    /* assume no on most questions */
   int dry_run;      /* don't change any persistent data */
+  int no_homedir_creation;
 
   const char *homedir;         /* Configuration directory name */
   const char *config_filename; /* Name of the used config file. */
-  const char *agent_program; 
+  const char *agent_program;
 
   session_env_t session_env;
   char *lc_ctype;
diff --git a/sm/keydb.c b/sm/keydb.c
index 5547405..23eca35 100644
--- a/sm/keydb.c
+++ b/sm/keydb.c
@@ -1,5 +1,6 @@
 /* keydb.c - key database dispatcher
  * Copyright (C) 2001, 2003, 2004 Free Software Foundation, Inc.
+ * Copyright (C) 2014 g10 Code GmbH
  *
  * This file is part of GnuPG.
  *
@@ -25,6 +26,7 @@
 #include <assert.h>
 #include <sys/types.h>
 #include <sys/stat.h>
+#include <fcntl.h>
 #include <unistd.h>
 
 #include "gpgsm.h"
@@ -68,11 +70,173 @@ static int lock_all (KEYDB_HANDLE hd);
 static void unlock_all (KEYDB_HANDLE hd);
 
 
+static void
+try_make_homedir (const char *fname)
+{
+  const char *defhome = standard_homedir ();
+
+  /* Create the directory only if the supplied directory name is the
+     same as the default one.  This way we avoid to create arbitrary
+     directories when a non-default home directory is used.  To cope
+     with HOME, we do compare only the suffix if we see that the
+     default homedir does start with a tilde.  */
+  if ( opt.dry_run || opt.no_homedir_creation )
+    return;
+
+  if (
+#ifdef HAVE_W32_SYSTEM
+      ( !compare_filenames (fname, defhome) )
+#else
+      ( *defhome == '~'
+        && (strlen(fname) >= strlen (defhome+1)
+            && !strcmp(fname+strlen(fname)-strlen(defhome+1), defhome+1 ) ))
+      || (*defhome != '~'  && !compare_filenames( fname, defhome ) )
+#endif
+      )
+    {
+      if ( mkdir (fname, S_IRUSR|S_IWUSR|S_IXUSR) )
+        log_info (_("can't create directory `%s': %s\n"),
+                  fname, strerror(errno) );
+      else if (!opt.quiet )
+        log_info (_("directory `%s' created\n"), fname);
+    }
+}
+
+
+/* Handle the creation of a keybox if it does not yet exist.  Take
+   into acount that other processes might have the keybox already
+   locked.  This lock check does not work if the directory itself is
+   not yet available.  If R_CREATED is not NULL it will be set to true
+   if the function created a new keybox.  */
+static int
+maybe_create_keybox (char *filename, int force, int *r_created)
+{
+  DOTLOCK lockhd = NULL;
+  FILE *fp;
+  int rc;
+  mode_t oldmask;
+  char *last_slash_in_filename;
+  int save_slash;
+
+  if (r_created)
+    *r_created = 0;
+
+  /* A quick test whether the filename already exists. */
+  if (!access (filename, F_OK))
+    return 0;
+
+  /* If we don't want to create a new file at all, there is no need to
+     go any further - bail out right here.  */
+  if (!force)
+    return gpg_error (GPG_ERR_ENOENT);
+
+  /* First of all we try to create the home directory.  Note, that we
+     don't do any locking here because any sane application of gpg
+     would create the home directory by itself and not rely on gpg's
+     tricky auto-creation which is anyway only done for some home
+     directory name patterns. */
+  last_slash_in_filename = strrchr (filename, DIRSEP_C);
+#if HAVE_W32_SYSTEM
+  {
+    /* Windows may either have a slash or a backslash.  Take care of it.  */
+    char *p = strrchr (filename, '/');
+    if (!last_slash_in_filename || p > last_slash_in_filename)
+      last_slash_in_filename = p;
+  }
+#endif /*HAVE_W32_SYSTEM*/
+  if (!last_slash_in_filename)
+    return gpg_error (GPG_ERR_ENOENT);  /* No slash at all - should
+                                           not happen though.  */
+  save_slash = *last_slash_in_filename;
+  *last_slash_in_filename = 0;
+  if (access(filename, F_OK))
+    {
+      static int tried;
+
+      if (!tried)
+        {
+          tried = 1;
+          try_make_homedir (filename);
+        }
+      if (access (filename, F_OK))
+        {
+          rc = gpg_error_from_syserror ();
+          *last_slash_in_filename = save_slash;
+          goto leave;
+        }
+    }
+  *last_slash_in_filename = save_slash;
+
+  /* To avoid races with other instances of gpg trying to create or
+     update the keybox (it is removed during an update for a short
+     time), we do the next stuff in a locked state. */
+  lockhd = create_dotlock (filename);
+  if (!lockhd)
+    {
+      /* A reason for this to fail is that the directory is not
+         writable. However, this whole locking stuff does not make
+         sense if this is the case. An empty non-writable directory
+         with no keyring is not really useful at all. */
+      if (opt.verbose)
+        log_info ("can't allocate lock for `%s'\n", filename );
+
+      if (!force)
+        return gpg_error (GPG_ERR_ENOENT);
+      else
+        return gpg_error (GPG_ERR_GENERAL);
+    }
+
+  if ( make_dotlock (lockhd, -1) )
+    {
+      /* This is something bad.  Probably a stale lockfile.  */
+      log_info ("can't lock `%s'\n", filename);
+      rc = gpg_error (GPG_ERR_GENERAL);
+      goto leave;
+    }
+
+  /* Now the real test while we are locked. */
+  if (!access(filename, F_OK))
+    {
+      rc = 0;  /* Okay, we may access the file now.  */
+      goto leave;
+    }
+
+  /* The file does not yet exist, create it now. */
+  oldmask = umask (077);
+  fp = fopen (filename, "w");
+  if (!fp)
+    {
+      rc = gpg_error_from_syserror ();
+      umask (oldmask);
+      log_error (_("error creating keybox `%s': %s\n"),
+                 filename, gpg_strerror (rc));
+      goto leave;
+    }
+  umask (oldmask);
+
+  if (!opt.quiet)
+    log_info (_("keybox `%s' created\n"), filename);
+  if (r_created)
+    *r_created = 1;
+
+  fclose (fp);
+  rc = 0;
+
+ leave:
+  if (lockhd)
+    {
+      release_dotlock (lockhd);
+      destroy_dotlock (lockhd);
+    }
+  return rc;
+}
+
+
 /*
  * Register a resource (which currently may only be a keybox file).
  * The first keybox which is added by this function is created if it
  * does not exist.  If AUTO_CREATED is not NULL it will be set to true
- * if the function has created a a new keybox.
+ * if the function has created a new keybox.
  */
 int
 keydb_add_resource (const char *url, int force, int secret, int *auto_created)
@@ -137,11 +301,11 @@ keydb_add_resource (const char *url, int force, int secret, int *auto_created)
             else
               rt = KEYDB_RESOURCE_TYPE_KEYBOX;
           }
-        else /* maybe empty: assume ring */
+        else /* maybe empty: assume keybox */
           rt = KEYDB_RESOURCE_TYPE_KEYBOX;
         fclose (fp2);
       }
-      else /* no file yet: create ring */
+      else /* no file yet: create keybox */
         rt = KEYDB_RESOURCE_TYPE_KEYBOX;
     }
 
@@ -153,91 +317,46 @@ keydb_add_resource (const char *url, int force, int secret, int *auto_created)
       goto leave;
 
     case KEYDB_RESOURCE_TYPE_KEYBOX:
-      fp = fopen (filename, "rb");
-      if (!fp && !force)
-        {
-          rc = gpg_error (gpg_err_code_from_errno (errno));
-          goto leave;
-        }
-
-      if (!fp)
-        { /* no file */
-#if 0 /* no autocreate of the homedirectory yet */
+      rc = maybe_create_keybox (filename, force, auto_created);
+      if (rc)
+        goto leave;
+      /* Now register the file */
+      {
+        void *token = keybox_register_file (filename, secret);
+        if (!token)
+          ; /* already registered - ignore it */
+        else if (used_resources >= MAX_KEYDB_RESOURCES)
+          rc = gpg_error (GPG_ERR_RESOURCE_LIMIT);
+        else
           {
-            char *last_slash_in_filename;
-
-            last_slash_in_filename = strrchr (filename, DIRSEP_C);
-            *last_slash_in_filename = 0;
-            if (access (filename, F_OK))
-              { /* on the first time we try to create the default
-                   homedir and in this case the process will be
-                   terminated, so that on the next invocation can
-                   read the options file in on startup */
-                try_make_homedir (filename);
-                rc = gpg_error (GPG_ERR_FILE_OPEN_ERROR);
-                *last_slash_in_filename = DIRSEP_C;
-                goto leave;
+            all_resources[used_resources].type = rt;
+            all_resources[used_resources].u.kr = NULL; /* Not used here */
+            all_resources[used_resources].token = token;
+            all_resources[used_resources].secret = secret;
+
+            all_resources[used_resources].lockhandle
+              = create_dotlock (filename);
+            if (!all_resources[used_resources].lockhandle)
+              log_fatal ( _("can't create lock for `%s'\n"), filename);
+
+            /* Do a compress run if needed and the file is not locked. */
+            if (!make_dotlock (all_resources[used_resources].lockhandle, 0))
+              {
+                KEYBOX_HANDLE kbxhd = keybox_new (token, secret);
+
+                if (kbxhd)
+                  {
+                    keybox_compress (kbxhd);
+                    keybox_release (kbxhd);
+                  }
+                release_dotlock (all_resources[used_resources].lockhandle);
               }
-            *last_slash_in_filename = DIRSEP_C;
-          }
-#endif
-          fp = fopen (filename, "w");
-          if (!fp)
-            {
-              rc = gpg_error (gpg_err_code_from_errno (errno));
-              log_error (_("error creating keybox `%s': %s\n"),
-                         filename, strerror(errno));
-              if (errno == ENOENT)
-                log_info (_("you may want to start the gpg-agent first\n"));
-              goto leave;
-	    }
-
-          if (!opt.quiet)
-            log_info (_("keybox `%s' created\n"), filename);
-          if (auto_created)
-            *auto_created = 1;
-	}
-	fclose (fp);
-	fp = NULL;
-        /* now register the file */
-        {
-
-          void *token = keybox_register_file (filename, secret);
-          if (!token)
-            ; /* already registered - ignore it */
-          else if (used_resources >= MAX_KEYDB_RESOURCES)
-            rc = gpg_error (GPG_ERR_RESOURCE_LIMIT);
-          else
-            {
-              all_resources[used_resources].type = rt;
-              all_resources[used_resources].u.kr = NULL; /* Not used here */
-              all_resources[used_resources].token = token;
-              all_resources[used_resources].secret = secret;
-
-              all_resources[used_resources].lockhandle
-                = create_dotlock (filename);
-              if (!all_resources[used_resources].lockhandle)
-                log_fatal ( _("can't create lock for `%s'\n"), filename);
-
-              /* Do a compress run if needed and the file is not locked. */
-              if (!make_dotlock (all_resources[used_resources].lockhandle, 0))
-                {
-                  KEYBOX_HANDLE kbxhd = keybox_new (token, secret);
-
-                  if (kbxhd)
-                    {
-                      keybox_compress (kbxhd);
-                      keybox_release (kbxhd);
-                    }
-                  release_dotlock (all_resources[used_resources].lockhandle);
-                }
-
-              used_resources++;
-            }
-        }
 
+            used_resources++;
+          }
+      }
+      break;
 
-	break;
     default:
       log_error ("resource type of `%s' not supported\n", url);
       rc = gpg_error (GPG_ERR_NOT_SUPPORTED);

commit 90397c9343411bc52ed55d9710de875db70fac64
Author: Werner Koch <wk at gnupg.org>
Date:   Tue Aug 12 10:36:30 2014 +0200

    Remove trailing white space from two files.
    
    --

diff --git a/g10/openfile.c b/g10/openfile.c
index 55dd42c..db5cdc2 100644
--- a/g10/openfile.c
+++ b/g10/openfile.c
@@ -144,7 +144,7 @@ ask_outfile_name( const char *name, size_t namelen )
 
   if ( opt.batch )
     return NULL;
-  
+
   defname = name && namelen? make_printable_string (name, namelen, 0) : NULL;
 
   s = _("Enter new filename");
@@ -159,9 +159,9 @@ ask_outfile_name( const char *name, size_t namelen )
   cpr_kill_prompt ();
   tty_disable_completion ();
   xfree (prompt);
-  if ( !*fname ) 
+  if ( !*fname )
     {
-      xfree (fname); 
+      xfree (fname);
       fname = defname;
       defname = NULL;
     }
@@ -197,7 +197,7 @@ open_outfile( const char *iname, int mode, IOBUF *a )
   else {
     char *buf = NULL;
     const char *name;
-    
+
     if ( opt.dry_run )
       {
 #ifdef HAVE_W32_SYSTEM
@@ -222,7 +222,7 @@ open_outfile( const char *iname, int mode, IOBUF *a )
           char *dot;
           const char *newsfx = mode==1 ? ".asc" :
                                mode==2 ? ".sig" : ".gpg";
-          
+
           buf = xmalloc(strlen(iname)+4+1);
           strcpy(buf,iname);
           dot = strchr(buf, '.' );
@@ -259,7 +259,7 @@ open_outfile( const char *iname, int mode, IOBUF *a )
         xfree (buf);
         name = buf = tmp;
       }
-    
+
     if( !rc )
       {
         if (is_secured_filename (name) )
@@ -385,7 +385,7 @@ copy_options_file( const char *destdir )
                     ;
                 else if (c == '#')
                     esc = 2;
-                else 
+                else
                     any_option = 1;
             }
         }
@@ -431,6 +431,6 @@ try_make_homedir (const char *fname)
       else if (!opt.quiet )
         log_info ( _("directory `%s' created\n"), fname );
       copy_options_file( fname );
-      
+
     }
 }
diff --git a/sm/gpgsm.h b/sm/gpgsm.h
index c4a261b..1904bd4 100644
--- a/sm/gpgsm.h
+++ b/sm/gpgsm.h
@@ -75,7 +75,7 @@ struct
   char *outfile;    /* name of output file */
 
   int with_key_data;/* include raw key in the column delimted output */
-  
+
   int fingerprint;  /* list fingerprints in all key listings */
 
   int with_md5_fingerprint; /* Also print an MD5 fingerprint for
@@ -170,11 +170,11 @@ struct server_control_s
   int no_server;      /* We are not running under server control */
   int  status_fd;     /* Only for non-server mode */
   struct server_local_s *server_local;
-  
+
   audit_ctx_t audit;  /* NULL or a context for the audit subsystem.  */
   int agent_seen;     /* Flag indicating that the gpg-agent has been
                          accessed.  */
-  
+
   int with_colons;    /* Use column delimited output format */
   int with_chain;     /* Include the certifying certs in a listing */
   int with_validation;/* Validate each key while listing. */
@@ -203,7 +203,7 @@ typedef struct base64_context_s *Base64Context;
 
 
 /* An object to keep a list of certificates. */
-struct certlist_s 
+struct certlist_s
 {
   struct certlist_s *next;
   ksba_cert_t cert;
@@ -386,7 +386,7 @@ int gpgsm_scd_pksign (ctrl_t ctrl, const char *keyid, const char *desc,
                       unsigned char *digest, size_t digestlen, int digestalgo,
                       unsigned char **r_buf, size_t *r_buflen);
 int gpgsm_agent_pkdecrypt (ctrl_t ctrl, const char *keygrip, const char *desc,
-                           ksba_const_sexp_t ciphertext, 
+                           ksba_const_sexp_t ciphertext,
                            char **r_buf, size_t *r_buflen);
 int gpgsm_agent_genkey (ctrl_t ctrl,
                         ksba_const_sexp_t keyparms, ksba_sexp_t *r_pubkey);

-----------------------------------------------------------------------

Summary of changes:
 NEWS           |   17 +++-
 configure.ac   |    2 +-
 g10/openfile.c |   16 ++--
 po/be.po       |    3 -
 po/ca.po       |    3 -
 po/cs.po       |    6 +-
 po/da.po       |    6 +-
 po/de.po       |    6 +-
 po/el.po       |    3 -
 po/eo.po       |    3 -
 po/es.po       |    6 +-
 po/et.po       |    3 -
 po/fi.po       |    3 -
 po/fr.po       |    6 +-
 po/gl.po       |    3 -
 po/hu.po       |    3 -
 po/id.po       |    3 -
 po/it.po       |    3 -
 po/ja.po       |    6 +-
 po/nb.po       |    3 -
 po/pl.po       |    6 +-
 po/pt.po       |    3 -
 po/pt_BR.po    |    3 -
 po/ro.po       |    3 -
 po/ru.po       |    6 +-
 po/sk.po       |    3 -
 po/sv.po       |    6 +-
 po/tr.po       |    6 +-
 po/uk.po       |    6 +-
 po/zh_CN.po    |    3 -
 po/zh_TW.po    |    6 +-
 sm/gpgsm.c     |    7 +-
 sm/gpgsm.h     |   15 +--
 sm/keydb.c     |  293 ++++++++++++++++++++++++++++++++++++++++----------------
 34 files changed, 282 insertions(+), 188 deletions(-)


hooks/post-receive
-- 
The GNU Privacy Guard
http://git.gnupg.org




More information about the Gnupg-commits mailing list