diff options
author | kuriyama <kuriyama@FreeBSD.org> | 2006-12-21 21:31:56 +0800 |
---|---|---|
committer | kuriyama <kuriyama@FreeBSD.org> | 2006-12-21 21:31:56 +0800 |
commit | da5699dfdacafc5da373ec3ffb2177f0c0bba667 (patch) | |
tree | b1e903b1b0f0001294efd9332a7fb293bc8834cb /security/gnupg | |
parent | d1d5159a4a4820d5918bb147815cb2857653e8d4 (diff) | |
download | freebsd-ports-gnome-da5699dfdacafc5da373ec3ffb2177f0c0bba667.tar.gz freebsd-ports-gnome-da5699dfdacafc5da373ec3ffb2177f0c0bba667.tar.zst freebsd-ports-gnome-da5699dfdacafc5da373ec3ffb2177f0c0bba667.zip |
- Upgrade gnupg to 2.0.1. Old stable version (1.4.6) was repocopied
to security/gnupg1.
Thanks to: dougb, lofi
Diffstat (limited to 'security/gnupg')
-rw-r--r-- | security/gnupg/Makefile | 114 | ||||
-rw-r--r-- | security/gnupg/distinfo | 12 | ||||
-rw-r--r-- | security/gnupg/files/patch-CVE-2006-6235 | 260 | ||||
-rw-r--r-- | security/gnupg/files/patch-config.links | 15 | ||||
-rw-r--r-- | security/gnupg/files/patch-configure | 10 | ||||
-rw-r--r-- | security/gnupg/pkg-descr | 2 | ||||
-rw-r--r-- | security/gnupg/pkg-install | 14 | ||||
-rw-r--r-- | security/gnupg/pkg-message | 24 | ||||
-rw-r--r-- | security/gnupg/pkg-plist | 120 |
9 files changed, 402 insertions, 169 deletions
diff --git a/security/gnupg/Makefile b/security/gnupg/Makefile index 5c2a0d44cc4f..77aa4f322f89 100644 --- a/security/gnupg/Makefile +++ b/security/gnupg/Makefile @@ -6,8 +6,7 @@ # PORTNAME= gnupg -PORTVERSION= 1.4.6 -PORTREVISION= 2 +PORTVERSION= 2.0.1 CATEGORIES= security MASTER_SITES= ${MASTER_SITE_GNUPG} MASTER_SITE_SUBDIR= gnupg @@ -17,95 +16,76 @@ EXTRACT_ONLY= ${DISTNAME}${EXTRACT_SUFX} MAINTAINER= kuriyama@FreeBSD.org COMMENT= The GNU Privacy Guard +BUILD_DEPENDS= ${LOCALBASE}/lib/libassuan.a:${PORTSDIR}/security/libassuan +LIB_DEPENDS= gcrypt.13:${PORTSDIR}/security/libgcrypt \ + gpg-error:${PORTSDIR}/security/libgpg-error \ + ksba.17:${PORTSDIR}/security/libksba \ + pth.20:${PORTSDIR}/devel/pth +RUN_DEPENDS= dirmngr:${PORTSDIR}/security/dirmngr + USE_BZIP2= YES USE_GMAKE= YES GNU_CONFIGURE= YES -CONFIGURE_TARGET= --build ${MACHINE_ARCH}-portbld-freebsd${OSREL} -CONFIGURE_ARGS= --infodir=${PREFIX}/info --mandir=${PREFIX}/man -.if ${MACHINE_CPU:Mi586} -MACHINE_ARCH= i586 -.endif -CFLAGS:= ${CFLAGS:S/-pipe//g} -MAN1= gpg.1 gpgv.1 gpg.ru.1 -MAN7= gnupg.7 -INFO= gnupg1 - -PORTDOCS= * +USE_ICONV= YES +USE_LDCONFIG= YES +CONFIGURE_TARGET=# empty +CONFIGURE_ARGS+= --infodir=${PREFIX}/info --mandir=${PREFIX}/man \ + --with-libpth-prefix=${LOCALBASE}/lib/pth +MAN1= gpg2.1 gpgsm.1 gpgv2.1 gpg-agent.1 scdaemon.1 watchgnupg.1 \ + gpgconf.1 gpg-preset-passphrase.1 gpg-connect-agent.1 \ + gpgparsemail.1 symcryptrun.1 gpgsm-gencert.sh.1 +MAN8= addgnupghome.8 +INFO= gnupg OPTIONS= LDAP "LDAP keyserver interface" off \ - LIBICONV "use libiconv" off \ - LIBUSB "use libusb" off \ - SUID_GPG "install GPG with suid" off \ NLS "Native Language Support" on \ - CURL "use libcurl for the keyserver interface" on + SCDAEMON "Enable Smartcard daemon (with libusb)" off \ + CURL "Use the real curl library (worked around if no)" on .include <bsd.port.pre.mk> -.if defined(WITH_LIBICONV) -USE_ICONV= yes -.else -CONFIGURE_ARGS+= --without-libiconv-prefix -.endif - -.if defined(WITH_LIBUSB) -CONFIGURE_ARGS+= --with-libusb=${LOCALBASE} -LIB_DEPENDS+= usb-0.1.8:${PORTSDIR}/devel/libusb +.if defined(WITHOUT_NLS) +CONFIGURE_ARGS+=--disable-nls +PLIST_SUB+= NLS="@comment " .else -CONFIGURE_ARGS+= --without-libusb +USE_GETTEXT= YES +PLIST_SUB+= NLS="" .endif .if defined(WITH_LDAP) -USE_OPENLDAP= yes -PLIST_SUB+= WITH_LDAP="" -CONFIGURE_ARGS+= --with-ldap=${LOCALBASE} -#CONFIGURE_ENV+= LDFLAGS="-L/usr/lib" +USE_OPENLDAP= YES +CONFIGURE_ARGS+=--with-ldap=${LOCALBASE} +PLIST_SUB+= LDAP="" .else -PLIST_SUB+= WITH_LDAP="@comment " -CONFIGURE_ARGS+= --disable-ldap +CONFIGURE_ARGS+=--disable-ldap +PLIST_SUB+= LDAP="@comment " .endif -.if !defined(WITHOUT_NLS) -USE_GETTEXT= YES -PLIST_SUB+= NLS="" +.if defined(WITH_SCDAEMON) +CONFIGURE_ARGS+=--enable-scdaemon +LIB_DEPENDS+= usb-0.1:${PORTSDIR}/devel/libusb +PLIST_SUB+= SCDAEMON="" .else -CONFIGURE_ARGS+=--disable-nls -PLIST_SUB+= NLS="@comment " +CONFIGURE_ARGS+=--disable-scdaemon +PLIST_SUB+= SCDAEMON="@comment " .endif -.if !defined(WITHOUT_CURL) +.if defined(WITHOUT_CURL) +CONFIGURE_ARGS+=--without-libcurl +.else LIB_DEPENDS+= curl:${PORTSDIR}/ftp/curl CONFIGURE_ARGS+=--with-libcurl=${LOCALBASE} -# Work around a GnuPG configure buglet -CONFIGURE_ENV+= _libcurl_config=${LOCALBASE}/bin/curl-config -.else -CONFIGURE_ARGS+=--without-libcurl .endif -post-install: -.if !defined(NOPORTDOCS) - ${MKDIR} ${DOCSDIR} -.for i in DETAILS FAQ HACKING OpenPGP - ${INSTALL_DATA} ${WRKSRC}/doc/${i} ${DOCSDIR} -.endfor -.for i in ABOUT-NLS AUTHORS BUGS COPYING INSTALL NEWS PROJECTS \ - README THANKS TODO VERSION - ${INSTALL_DATA} ${WRKSRC}/${i} ${DOCSDIR} -.endfor -.endif -.if defined(WITH_SUID_GPG) - ${CHMOD} u+s ${PREFIX}/bin/gpg -.endif -.if ${OSVERSION} < 500019 - @${CAT} ${PKGMESSAGE} -.else -PKGMESSAGE= /nonexistent -.endif +verify: checksum + gpg2 --verify ${DISTDIR}/${DISTNAME}${EXTRACT_SUFX}.sig -.if ${OSVERSION} < 500000 -CONFIGURE_ARGS+= --without-readline -.endif +pre-configure: + ${REINPLACE_CMD} -e "s@-lpthread@${PTHREAD_LIBS}@g" \ + ${WRKSRC}/acinclude.m4 ${WRKSRC}/aclocal.m4 ${WRKSRC}/configure -check: - (cd ${WRKSRC}; ${MAKE} check) +post-install: + PKG_PREFIX=${PREFIX} ${SH} ${PKGINSTALL} ${PKGNAME} POST-INSTALL + @${CAT} ${PKGMESSAGE} .include <bsd.port.post.mk> diff --git a/security/gnupg/distinfo b/security/gnupg/distinfo index 3bb0d5afe9de..c46fb4722345 100644 --- a/security/gnupg/distinfo +++ b/security/gnupg/distinfo @@ -1,6 +1,6 @@ -MD5 (gnupg-1.4.6.tar.bz2) = ec8dc6df1bd83c1d7e1a1ea10653f9f4 -SHA256 (gnupg-1.4.6.tar.bz2) = fd5a72418e55669b88076c2a6f11c3a59bf92a2071008567e65ae12b7372008e -SIZE (gnupg-1.4.6.tar.bz2) = 3149454 -MD5 (gnupg-1.4.6.tar.bz2.sig) = 8b905292140d60fe493fab7d5b22c96d -SHA256 (gnupg-1.4.6.tar.bz2.sig) = fb9294762932b34f2fd5a4b168f4c3a248aa7403c2aed8bffa5f67274b1b052d -SIZE (gnupg-1.4.6.tar.bz2.sig) = 158 +MD5 (gnupg-2.0.1.tar.bz2) = eb24e258db73f4cb53a3ce18375efa21 +SHA256 (gnupg-2.0.1.tar.bz2) = 49949762a4e080379dcca23948442d50488f0d74e04bcba87fc49e19a899b01d +SIZE (gnupg-2.0.1.tar.bz2) = 3923924 +MD5 (gnupg-2.0.1.tar.bz2.sig) = 58b1bbc2f34c0882ab1a49542a8ffd45 +SHA256 (gnupg-2.0.1.tar.bz2.sig) = 2e49d6cfcb9ad12bc10e7185435761622c2da12b850c6c31925da3b4c8100628 +SIZE (gnupg-2.0.1.tar.bz2.sig) = 158 diff --git a/security/gnupg/files/patch-CVE-2006-6235 b/security/gnupg/files/patch-CVE-2006-6235 new file mode 100644 index 000000000000..c1692572cafc --- /dev/null +++ b/security/gnupg/files/patch-CVE-2006-6235 @@ -0,0 +1,260 @@ +This is a patch against GnuPG 2.0.1. Change the directory to g10/ and +apply this patch. + +2006-12-02 Werner Koch <wk@g10code.com> + + * encr-data.c: Allocate DFX context on the heap and not on the + stack. Changes at several places. Fixes CVE-2006-6235. + + +Index: g10/encr-data.c +=================================================================== +--- g10/encr-data.c (revision 4352) ++++ g10/encr-data.c (working copy) +@@ -39,16 +39,37 @@ + static int decode_filter ( void *opaque, int control, IOBUF a, + byte *buf, size_t *ret_len); + +-typedef struct ++typedef struct decode_filter_context_s + { + gcry_cipher_hd_t cipher_hd; + gcry_md_hd_t mdc_hash; + char defer[22]; + int defer_filled; + int eof_seen; +-} decode_filter_ctx_t; ++ int refcount; ++} *decode_filter_ctx_t; + + ++/* Helper to release the decode context. */ ++static void ++release_dfx_context (decode_filter_ctx_t dfx) ++{ ++ if (!dfx) ++ return; ++ ++ assert (dfx->refcount); ++ if ( !--dfx->refcount ) ++ { ++ gcry_cipher_close (dfx->cipher_hd); ++ dfx->cipher_hd = NULL; ++ gcry_md_close (dfx->mdc_hash); ++ dfx->mdc_hash = NULL; ++ xfree (dfx); ++ } ++} ++ ++ ++ + /**************** + * Decrypt the data, specified by ED with the key DEK. + */ +@@ -62,7 +83,11 @@ + unsigned blocksize; + unsigned nprefix; + +- memset( &dfx, 0, sizeof dfx ); ++ dfx = xtrycalloc (1, sizeof *dfx); ++ if (!dfx) ++ return gpg_error_from_syserror (); ++ dfx->refcount = 1; ++ + if ( opt.verbose && !dek->algo_info_printed ) + { + const char *s = gcry_cipher_algo_name (dek->algo); +@@ -77,20 +102,20 @@ + goto leave; + blocksize = gcry_cipher_get_algo_blklen (dek->algo); + if ( !blocksize || blocksize > 16 ) +- log_fatal("unsupported blocksize %u\n", blocksize ); ++ log_fatal ("unsupported blocksize %u\n", blocksize ); + nprefix = blocksize; + if ( ed->len && ed->len < (nprefix+2) ) + BUG(); + + if ( ed->mdc_method ) + { +- if (gcry_md_open (&dfx.mdc_hash, ed->mdc_method, 0 )) ++ if (gcry_md_open (&dfx->mdc_hash, ed->mdc_method, 0 )) + BUG (); + if ( DBG_HASHING ) +- gcry_md_start_debug (dfx.mdc_hash, "checkmdc"); ++ gcry_md_start_debug (dfx->mdc_hash, "checkmdc"); + } + +- rc = gcry_cipher_open (&dfx.cipher_hd, dek->algo, ++ rc = gcry_cipher_open (&dfx->cipher_hd, dek->algo, + GCRY_CIPHER_MODE_CFB, + (GCRY_CIPHER_SECURE + | ((ed->mdc_method || dek->algo >= 100)? +@@ -104,7 +129,7 @@ + + + /* log_hexdump( "thekey", dek->key, dek->keylen );*/ +- rc = gcry_cipher_setkey (dfx.cipher_hd, dek->key, dek->keylen); ++ rc = gcry_cipher_setkey (dfx->cipher_hd, dek->key, dek->keylen); + if ( gpg_err_code (rc) == GPG_ERR_WEAK_KEY ) + { + log_info(_("WARNING: message was encrypted with" +@@ -123,7 +148,7 @@ + goto leave; + } + +- gcry_cipher_setiv (dfx.cipher_hd, NULL, 0); ++ gcry_cipher_setiv (dfx->cipher_hd, NULL, 0); + + if ( ed->len ) + { +@@ -144,8 +169,8 @@ + temp[i] = c; + } + +- gcry_cipher_decrypt (dfx.cipher_hd, temp, nprefix+2, NULL, 0); +- gcry_cipher_sync (dfx.cipher_hd); ++ gcry_cipher_decrypt (dfx->cipher_hd, temp, nprefix+2, NULL, 0); ++ gcry_cipher_sync (dfx->cipher_hd); + p = temp; + /* log_hexdump( "prefix", temp, nprefix+2 ); */ + if (dek->symmetric +@@ -155,17 +180,18 @@ + goto leave; + } + +- if ( dfx.mdc_hash ) +- gcry_md_write (dfx.mdc_hash, temp, nprefix+2); +- ++ if ( dfx->mdc_hash ) ++ gcry_md_write (dfx->mdc_hash, temp, nprefix+2); ++ ++ dfx->refcount++; + if ( ed->mdc_method ) +- iobuf_push_filter( ed->buf, mdc_decode_filter, &dfx ); ++ iobuf_push_filter ( ed->buf, mdc_decode_filter, dfx ); + else +- iobuf_push_filter( ed->buf, decode_filter, &dfx ); ++ iobuf_push_filter ( ed->buf, decode_filter, dfx ); + + proc_packets ( procctx, ed->buf ); + ed->buf = NULL; +- if ( ed->mdc_method && dfx.eof_seen == 2 ) ++ if ( ed->mdc_method && dfx->eof_seen == 2 ) + rc = gpg_error (GPG_ERR_INV_PACKET); + else if ( ed->mdc_method ) + { +@@ -184,26 +210,28 @@ + bytes are appended. */ + int datalen = gcry_md_get_algo_dlen (ed->mdc_method); + +- gcry_cipher_decrypt (dfx.cipher_hd, dfx.defer, 22, NULL, 0); +- gcry_md_write (dfx.mdc_hash, dfx.defer, 2); +- gcry_md_final (dfx.mdc_hash); ++ assert (dfx->cipher_hd); ++ assert (dfx->mdc_hash); ++ gcry_cipher_decrypt (dfx->cipher_hd, dfx->defer, 22, NULL, 0); ++ gcry_md_write (dfx->mdc_hash, dfx->defer, 2); ++ gcry_md_final (dfx->mdc_hash); + +- if (dfx.defer[0] != '\xd3' || dfx.defer[1] != '\x14' ) ++ if (dfx->defer[0] != '\xd3' || dfx->defer[1] != '\x14' ) + { + log_error("mdc_packet with invalid encoding\n"); + rc = gpg_error (GPG_ERR_INV_PACKET); + } + else if (datalen != 20 +- || memcmp (gcry_md_read (dfx.mdc_hash, 0),dfx.defer+2,datalen)) ++ || memcmp (gcry_md_read (dfx->mdc_hash, 0), ++ dfx->defer+2,datalen )) + rc = gpg_error (GPG_ERR_BAD_SIGNATURE); +- /* log_printhex("MDC message:", dfx.defer, 22); */ +- /* log_printhex("MDC calc:", gcry_md_read (dfx.mdc_hash,0), datalen); */ ++ /* log_printhex("MDC message:", dfx->defer, 22); */ ++ /* log_printhex("MDC calc:", gcry_md_read (dfx->mdc_hash,0), datalen); */ + } + + + leave: +- gcry_cipher_close (dfx.cipher_hd); +- gcry_md_close (dfx.mdc_hash); ++ release_dfx_context (dfx); + return rc; + } + +@@ -214,7 +242,7 @@ + mdc_decode_filter (void *opaque, int control, IOBUF a, + byte *buf, size_t *ret_len) + { +- decode_filter_ctx_t *dfx = opaque; ++ decode_filter_ctx_t dfx = opaque; + size_t n, size = *ret_len; + int rc = 0; + int c; +@@ -226,11 +254,11 @@ + } + else if( control == IOBUFCTRL_UNDERFLOW ) + { +- assert(a); +- assert( size > 44 ); ++ assert (a); ++ assert ( size > 44 ); + + /* Get at least 22 bytes and put it somewhere ahead in the buffer. */ +- for(n=22; n < 44 ; n++ ) ++ for (n=22; n < 44 ; n++ ) + { + if( (c = iobuf_get(a)) == -1 ) + break; +@@ -279,8 +307,10 @@ + + if ( n ) + { +- gcry_cipher_decrypt (dfx->cipher_hd, buf, n, NULL, 0); +- gcry_md_write (dfx->mdc_hash, buf, n); ++ if ( dfx->cipher_hd ) ++ gcry_cipher_decrypt (dfx->cipher_hd, buf, n, NULL, 0); ++ if ( dfx->mdc_hash ) ++ gcry_md_write (dfx->mdc_hash, buf, n); + } + else + { +@@ -289,6 +319,10 @@ + } + *ret_len = n; + } ++ else if ( control == IOBUFCTRL_FREE ) ++ { ++ release_dfx_context (dfx); ++ } + else if ( control == IOBUFCTRL_DESC ) + { + *(char**)buf = "mdc_decode_filter"; +@@ -300,7 +334,7 @@ + static int + decode_filter( void *opaque, int control, IOBUF a, byte *buf, size_t *ret_len) + { +- decode_filter_ctx_t *fc = opaque; ++ decode_filter_ctx_t fc = opaque; + size_t n, size = *ret_len; + int rc = 0; + +@@ -311,11 +345,18 @@ + if ( n == -1 ) + n = 0; + if ( n ) +- gcry_cipher_decrypt (fc->cipher_hd, buf, n, NULL, 0); ++ { ++ if (fc->cipher_hd) ++ gcry_cipher_decrypt (fc->cipher_hd, buf, n, NULL, 0); ++ } + else + rc = -1; /* EOF */ + *ret_len = n; + } ++ else if ( control == IOBUFCTRL_FREE ) ++ { ++ release_dfx_context (fc); ++ } + else if ( control == IOBUFCTRL_DESC ) + { + *(char**)buf = "decode_filter"; diff --git a/security/gnupg/files/patch-config.links b/security/gnupg/files/patch-config.links deleted file mode 100644 index 35a0316c8ae9..000000000000 --- a/security/gnupg/files/patch-config.links +++ /dev/null @@ -1,15 +0,0 @@ ---- mpi/config.links.orig Thu Apr 24 20:15:58 2003 -+++ mpi/config.links Sat May 10 16:29:28 2003 -@@ -142,6 +142,12 @@ - echo '/* configured for sparc64-*netbsd */' >>./mpi/asm-syntax.h - path="" - ;; -+ sparc64-*-freebsd*) -+ # There are no sparc64 assembler modules that work, so -+ # just use generic C functions -+ echo '/* configured for sparc64-*freebsd* */' >>./mpi/asm-syntax.h -+ path="" -+ ;; - sparc9*-*-* | \ - sparc64*-*-* | \ - ultrasparc*-*-* ) diff --git a/security/gnupg/files/patch-configure b/security/gnupg/files/patch-configure deleted file mode 100644 index 52fae6b7c7dc..000000000000 --- a/security/gnupg/files/patch-configure +++ /dev/null @@ -1,10 +0,0 @@ ---- configure.orig Fri Dec 8 17:02:30 2006 -+++ configure Fri Dec 8 17:02:52 2006 -@@ -27251,6 +27251,7 @@ - exec_prefix=$exec_prefix - libdir=$libdir - libexecdir=$libexecdir -+datarootdir=$datarootdir - datadir=$datadir - DATADIRNAME=$DATADIRNAME - diff --git a/security/gnupg/pkg-descr b/security/gnupg/pkg-descr index 4ad9fb265d00..6ec531356045 100644 --- a/security/gnupg/pkg-descr +++ b/security/gnupg/pkg-descr @@ -5,5 +5,3 @@ without any restrictions. GnuPG is an RFC2440 (OpenPGP) compliant application. WWW: http://www.gnupg.org/ - -kuriyama@FreeBSD.org diff --git a/security/gnupg/pkg-install b/security/gnupg/pkg-install new file mode 100644 index 000000000000..b2e9e655aa3a --- /dev/null +++ b/security/gnupg/pkg-install @@ -0,0 +1,14 @@ +#!/bin/sh +# +# $FreeBSD$ +# + +if [ "$2" != "POST-INSTALL" ]; then + exit 0 +fi + +if [ -r ${PKG_PREFIX}/bin/gpg ] || [ -L ${PKG_PREFIX}/bin/gpg ]; then + # Skip. +else + ln -s gpg2 ${PKG_PREFIX}/bin/gpg +fi diff --git a/security/gnupg/pkg-message b/security/gnupg/pkg-message index 6123fa32f234..6dcdc858f1d8 100644 --- a/security/gnupg/pkg-message +++ b/security/gnupg/pkg-message @@ -1,5 +1,19 @@ -************************************************************ -TIPS: - o Use rndcontrol(8) if you want more entropy. - See http://people.freebsd.org/~dougb/randomness.html for more details. -************************************************************ + + + +############################################################################### + A T T E N T I O N + +In order to use gpg-agent, you need to install a pinentry dialog. + +The following ports of pinentry dialogs are available: + +security/pinentry-curses (ncurses based dialog) +security/pinentry-gtk (GTK 1.2 based dialog) +security/pinentry-gtk2 (GTK 2.x based dialog) +security/pinentry-qt (QT based dialog) + +############################################################################### + + + diff --git a/security/gnupg/pkg-plist b/security/gnupg/pkg-plist index 5c2eb14f590a..a2258ae63a42 100644 --- a/security/gnupg/pkg-plist +++ b/security/gnupg/pkg-plist @@ -1,64 +1,56 @@ -bin/gpg -bin/gpg-zip -bin/gpgsplit -bin/gpgv -%%WITH_LDAP%%libexec/gnupg/gpgkeys_ldap -libexec/gnupg/gpgkeys_curl -libexec/gnupg/gpgkeys_finger -libexec/gnupg/gpgkeys_hkp -@dirrm libexec/gnupg -%%DATADIR%%/FAQ -%%DATADIR%%/faq.html -%%DATADIR%%/options.skel -%%NLS%%share/locale/be/LC_MESSAGES/gnupg.mo -%%NLS%%share/locale/ca/LC_MESSAGES/gnupg.mo -%%NLS%%share/locale/cs/LC_MESSAGES/gnupg.mo -%%NLS%%share/locale/da/LC_MESSAGES/gnupg.mo -%%NLS%%share/locale/de/LC_MESSAGES/gnupg.mo -%%NLS%%share/locale/el/LC_MESSAGES/gnupg.mo -%%NLS%%share/locale/eo/LC_MESSAGES/gnupg.mo -%%NLS%%share/locale/en@boldquot/LC_MESSAGES/gnupg.mo -%%NLS%%share/locale/en@quot/LC_MESSAGES/gnupg.mo -%%NLS%%share/locale/es/LC_MESSAGES/gnupg.mo -%%NLS%%share/locale/et/LC_MESSAGES/gnupg.mo -%%NLS%%share/locale/fi/LC_MESSAGES/gnupg.mo -%%NLS%%share/locale/fr/LC_MESSAGES/gnupg.mo -%%NLS%%share/locale/gl/LC_MESSAGES/gnupg.mo -%%NLS%%share/locale/hu/LC_MESSAGES/gnupg.mo -%%NLS%%share/locale/id/LC_MESSAGES/gnupg.mo -%%NLS%%share/locale/it/LC_MESSAGES/gnupg.mo -%%NLS%%share/locale/ja/LC_MESSAGES/gnupg.mo -%%NLS%%share/locale/nb/LC_MESSAGES/gnupg.mo -%%NLS%%share/locale/pl/LC_MESSAGES/gnupg.mo -%%NLS%%share/locale/pt/LC_MESSAGES/gnupg.mo -%%NLS%%share/locale/pt_BR/LC_MESSAGES/gnupg.mo -%%NLS%%share/locale/ro/LC_MESSAGES/gnupg.mo -%%NLS%%share/locale/ru/LC_MESSAGES/gnupg.mo -%%NLS%%share/locale/sk/LC_MESSAGES/gnupg.mo -%%NLS%%share/locale/sv/LC_MESSAGES/gnupg.mo -%%NLS%%share/locale/tr/LC_MESSAGES/gnupg.mo -%%NLS%%share/locale/zh_CN/LC_MESSAGES/gnupg.mo -%%NLS%%share/locale/zh_TW/LC_MESSAGES/gnupg.mo -@dirrm %%DATADIR%% -@dirrmtry share/locale/be/LC_MESSAGES -@dirrmtry share/locale/be -@dirrmtry share/locale/ca/LC_MESSAGES -@dirrmtry share/locale/ca -@dirrmtry share/locale/cs/LC_MESSAGES -@dirrmtry share/locale/cs -@dirrmtry share/locale/el/LC_MESSAGES -@dirrmtry share/locale/el -@dirrmtry share/locale/fi/LC_MESSAGES -@dirrmtry share/locale/fi -@dirrmtry share/locale/gl/LC_MESSAGES -@dirrmtry share/locale/gl -@dirrmtry share/locale/pl/LC_MESSAGES -@dirrmtry share/locale/pl -@dirrmtry share/locale/pt/LC_MESSAGES -@dirrmtry share/locale/pt -@dirrmtry share/locale/ro/LC_MESSAGES -@dirrmtry share/locale/ro -@dirrmtry share/locale/sk/LC_MESSAGES -@dirrmtry share/locale/sk -@dirrmtry share/locale/zh_TW/LC_MESSAGES -@dirrmtry share/locale/zh_TW +bin/gpg-agent +bin/gpg-connect-agent +bin/gpg2 +bin/gpgconf +bin/gpgkey2ssh +bin/gpgparsemail +bin/gpgsm +bin/gpgsm-gencert.sh +bin/gpgv2 +bin/kbxutil +%%SCDAEMON%%bin/scdaemon +bin/watchgnupg +%%SCDAEMON%%libexec/gnupg-pcsc-wrapper +libexec/gpg-preset-passphrase +libexec/gpg-protect-tool +libexec/gpg2keys_curl +libexec/gpg2keys_finger +libexec/gpg2keys_hkp +%%LDAP%%libexec/gpg2keys_ldap +sbin/addgnupghome +share/gnupg/FAQ +share/gnupg/com-certs.pem +share/gnupg/faq.html +share/gnupg/gpg-conf.skel +share/gnupg/qualified.txt +%%NLS%%share/locale/da/LC_MESSAGES/gnupg2.mo +%%NLS%%share/locale/de/LC_MESSAGES/gnupg2.mo +%%NLS%%share/locale/eo/LC_MESSAGES/gnupg2.mo +%%NLS%%share/locale/es/LC_MESSAGES/gnupg2.mo +%%NLS%%share/locale/et/LC_MESSAGES/gnupg2.mo +%%NLS%%share/locale/fr/LC_MESSAGES/gnupg2.mo +%%NLS%%share/locale/hu/LC_MESSAGES/gnupg2.mo +%%NLS%%share/locale/id/LC_MESSAGES/gnupg2.mo +%%NLS%%share/locale/it/LC_MESSAGES/gnupg2.mo +%%NLS%%share/locale/ja/LC_MESSAGES/gnupg2.mo +%%NLS%%share/locale/nb/LC_MESSAGES/gnupg2.mo +%%NLS%%share/locale/pt_BR/LC_MESSAGES/gnupg2.mo +%%NLS%%share/locale/ru/LC_MESSAGES/gnupg2.mo +%%NLS%%share/locale/sv/LC_MESSAGES/gnupg2.mo +%%NLS%%share/locale/tr/LC_MESSAGES/gnupg2.mo +%%NLS%%share/locale/be/LC_MESSAGES/gnupg2.mo +%%NLS%%share/locale/ca/LC_MESSAGES/gnupg2.mo +%%NLS%%share/locale/cs/LC_MESSAGES/gnupg2.mo +%%NLS%%share/locale/el/LC_MESSAGES/gnupg2.mo +%%NLS%%share/locale/fi/LC_MESSAGES/gnupg2.mo +%%NLS%%share/locale/gl/LC_MESSAGES/gnupg2.mo +%%NLS%%share/locale/pl/LC_MESSAGES/gnupg2.mo +%%NLS%%share/locale/pt/LC_MESSAGES/gnupg2.mo +%%NLS%%share/locale/ro/LC_MESSAGES/gnupg2.mo +%%NLS%%share/locale/sk/LC_MESSAGES/gnupg2.mo +%%NLS%%share/locale/zh_CN/LC_MESSAGES/gnupg2.mo +%%NLS%%share/locale/zh_TW/LC_MESSAGES/gnupg2.mo +%%NLS%%share/locale/en@quot/LC_MESSAGES/gnupg2.mo +%%NLS%%share/locale/en@boldquot/LC_MESSAGES/gnupg2.mo +@dirrmtry share/gnupg +@unexec [ -L %D/bin/gpg ] && rm -f %D/bin/gpg || true |