diff options
Diffstat (limited to 'security/gnome-keyring')
-rw-r--r-- | security/gnome-keyring/Makefile | 39 | ||||
-rw-r--r-- | security/gnome-keyring/distinfo | 4 | ||||
-rw-r--r-- | security/gnome-keyring/files/patch-configure | 22 | ||||
-rw-r--r-- | security/gnome-keyring/files/patch-daemon_control_gkd-control-client.c | 11 | ||||
-rw-r--r-- | security/gnome-keyring/files/patch-egg_egg-asn1x.c | 13 | ||||
-rw-r--r-- | security/gnome-keyring/files/patch-egg_egg-secure-memory.c | 959 | ||||
-rw-r--r-- | security/gnome-keyring/files/patch-egg_egg-secure-memory.h | 75 | ||||
-rw-r--r-- | security/gnome-keyring/files/patch-egg_egg-unix-credentials.c | 44 | ||||
-rw-r--r-- | security/gnome-keyring/files/patch-egg_tests_test-secmem.c | 66 | ||||
-rw-r--r-- | security/gnome-keyring/files/patch-gcr_gcr-certificate.c | 11 | ||||
-rw-r--r-- | security/gnome-keyring/files/patch-pkcs11_rpc-layer_gkm-rpc-dispatch.c | 11 | ||||
-rw-r--r-- | security/gnome-keyring/pkg-plist | 123 |
12 files changed, 1152 insertions, 226 deletions
diff --git a/security/gnome-keyring/Makefile b/security/gnome-keyring/Makefile index daec9b2f2..93424878e 100644 --- a/security/gnome-keyring/Makefile +++ b/security/gnome-keyring/Makefile @@ -3,31 +3,46 @@ # $MCom$ PORTNAME= gnome-keyring -PORTVERSION= 2.32.1 -PORTREVISION= 3 +PORTVERSION= 3.6.2 CATEGORIES= security gnome MASTER_SITES= GNOME -DIST_SUBDIR= gnome2 +DIST_SUBDIR= gnome3 MAINTAINER= gnome@FreeBSD.org COMMENT= Program that keeps passwords and other secrets -LIB_DEPENDS= libtasn1.so:${PORTSDIR}/security/libtasn1 \ - libgnome-keyring.so:${PORTSDIR}/security/libgnome-keyring +BUILD_DEPENDS= ${LOCALBASE}/share/certs/ca-root-nss.crt:${PORTSDIR}/security/ca_root_nss \ + gcr>=3.5.3:${PORTSDIR}/security/gcr +LIB_DEPENDS= libgnome-keyring.so:${PORTSDIR}/security/libgnome-keyring \ + libdbus-1.so:${PORTSDIR}/devel/dbus \ + libgcr-3.so:${PORTSDIR}/security/gcr \ + libtasn1.so:${PORTSDIR}/security/libtasn1 \ + libp11-kit.so:${PORTSDIR}/security/p11-kit \ + libgcrypt.so:${PORTSDIR}/security/libgcrypt RUN_DEPENDS= ${LOCALBASE}/share/certs/ca-root-nss.crt:${PORTSDIR}/security/ca_root_nss -CONFLICTS= gnome-keyring-3.[0-9]* gcr-3.[0-9]* - -USE_BZIP2= yes -USE_GNOME= gnomeprefix gtk20 ltverhack intlhack +USE_XZ= yes +USE_GNOME= gnomeprefix gtk30 ltverhack intlhack USES= gettext gmake pathfix pkgconfig +INSTALLS_ICONS= yes GNU_CONFIGURE= yes USE_LDCONFIG= yes CONFIGURE_ARGS= --with-pam-dir="${PREFIX}/lib" \ - --with-root-certs="${LOCALBASE}/share/certs/ca-root-nss.crt" + --with-root-certs=${LOCALBASE}/share/certs CPPFLAGS+= -I${LOCALBASE}/include LDFLAGS+= -L${LOCALBASE}/lib -GLIB_SCHEMAS= org.gnome.crypto.cache.gschema.xml \ - org.gnome.crypto.pgp.gschema.xml +GLIB_SCHEMAS= org.gnome.crypto.cache.gschema.xml + +post-patch: + @${REINPLACE_CMD} -e 's|make --version|${GMAKE} --version|g' \ + ${WRKSRC}/configure + @${REINPLACE_CMD} -e 's|gnome-keyring-module|gnome-keyring.module|g' \ + ${WRKSRC}/pkcs11/rpc-layer/Makefile.in \ + ${WRKSRC}/configure + +post-install: + @${STRIP_CMD} ${STAGEDIR}${PREFIX}/lib/gnome-keyring/devel/*.so + @${STRIP_CMD} ${STAGEDIR}${PREFIX}/lib/pkcs11/gnome-keyring-pkcs11.so + @${STRIP_CMD} ${STAGEDIR}${PREFIX}/lib/pam_gnome_keyring.so .include <bsd.port.mk> diff --git a/security/gnome-keyring/distinfo b/security/gnome-keyring/distinfo index 2774e0cb2..c3a25a259 100644 --- a/security/gnome-keyring/distinfo +++ b/security/gnome-keyring/distinfo @@ -1,2 +1,2 @@ -SHA256 (gnome2/gnome-keyring-2.32.1.tar.bz2) = 31fecec1430a97f59a6159a5a2ea8d6a1b44287f1e9e595b3594df46bf7f18f9 -SIZE (gnome2/gnome-keyring-2.32.1.tar.bz2) = 1619245 +SHA256 (gnome3/gnome-keyring-3.6.2.tar.xz) = ae60558d60171325ddd90603328393d35d7b560a70b7ab45c4d2718d01130cd6 +SIZE (gnome3/gnome-keyring-3.6.2.tar.xz) = 1139836 diff --git a/security/gnome-keyring/files/patch-configure b/security/gnome-keyring/files/patch-configure deleted file mode 100644 index 7e8ec000a..000000000 --- a/security/gnome-keyring/files/patch-configure +++ /dev/null @@ -1,22 +0,0 @@ ---- configure.orig 2010-09-19 12:45:34.000000000 +0000 -+++ configure 2010-09-19 12:50:50.000000000 +0000 -@@ -14454,8 +14454,8 @@ - .SECONDARY: $(gsettings_SCHEMAS) - - gsettings__base_list = \ -- sed "$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g" | \ -- sed "$$!N;$$!N;$$!N;$$!N;s/\n/ /g" -+ sed '\''$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g'\'' | \ -+ sed '\''$$!N;$$!N;$$!N;$$!N;s/\n/ /g'\'' - - install-gsettings-schemas: $(gsettings_SCHEMAS:.xml=.valid) $(gsettings__enum_file) - @$(NORMAL_INSTALL) -@@ -15058,7 +15058,7 @@ - - pam_status="no" - if test "$enable_pam" != "no"; then -- for ac_header in security/pam_modules.h pam/pam_modules.h -+ for ac_header in security/pam_modules.h - do : - as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` - ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" diff --git a/security/gnome-keyring/files/patch-daemon_control_gkd-control-client.c b/security/gnome-keyring/files/patch-daemon_control_gkd-control-client.c deleted file mode 100644 index 6cdb0ca6a..000000000 --- a/security/gnome-keyring/files/patch-daemon_control_gkd-control-client.c +++ /dev/null @@ -1,11 +0,0 @@ ---- daemon/control/gkd-control-client.c.orig 2009-12-21 18:43:16.000000000 -0500 -+++ daemon/control/gkd-control-client.c 2009-12-21 18:44:17.000000000 -0500 -@@ -31,6 +31,8 @@ - #include <errno.h> - #include <fcntl.h> - -+#include <string.h> -+#include <sys/stat.h> - #include <sys/socket.h> - #include <sys/types.h> - #include <sys/un.h> diff --git a/security/gnome-keyring/files/patch-egg_egg-asn1x.c b/security/gnome-keyring/files/patch-egg_egg-asn1x.c deleted file mode 100644 index 30828f3f6..000000000 --- a/security/gnome-keyring/files/patch-egg_egg-asn1x.c +++ /dev/null @@ -1,13 +0,0 @@ ---- egg/egg-asn1x.c.orig 2010-09-04 12:08:41.000000000 +0200 -+++ egg/egg-asn1x.c 2010-09-04 12:10:05.000000000 +0200 -@@ -1988,8 +1988,8 @@ anode_write_integer_ulong (gulong value, - guchar buf[sizeof (gulong)]; - gint bytes, i, off; - -- for (i = 0; i < sizeof (ulong); ++i) { -- off = sizeof (ulong) - (i + 1); -+ for (i = 0; i < sizeof (gulong); ++i) { -+ off = sizeof (gulong) - (i + 1); - buf[i] = (value >> (off * 8)) & 0xFF; - } - diff --git a/security/gnome-keyring/files/patch-egg_egg-secure-memory.c b/security/gnome-keyring/files/patch-egg_egg-secure-memory.c new file mode 100644 index 000000000..a3874cbfe --- /dev/null +++ b/security/gnome-keyring/files/patch-egg_egg-secure-memory.c @@ -0,0 +1,959 @@ +--- egg/egg-secure-memory.c.orig Wed Sep 26 10:28:35 2012 ++++ egg/egg-secure-memory.c Sat Oct 27 14:46:28 2012 +@@ -22,8 +22,8 @@ + */ + + /* +- * IMPORTANT: This is pure vanila standard C, no glib. We need this +- * because certain consumers of this protocol need to be built ++ * IMPORTANT: This is pure vanila standard C, no glib. We need this ++ * because certain consumers of this protocol need to be built + * without linking in any special libraries. ie: the PKCS#11 module. + */ + +@@ -48,8 +48,8 @@ + + #define DEBUG_SECURE_MEMORY 0 + +-#if DEBUG_SECURE_MEMORY +-#define DEBUG_ALLOC(msg, n) fprintf(stderr, "%s %lu bytes\n", msg, n); ++#if DEBUG_SECURE_MEMORY ++#define DEBUG_ALLOC(msg, n) fprintf(stderr, "%s %lu bytes\n", msg, n); + #else + #define DEBUG_ALLOC(msg, n) + #endif +@@ -59,8 +59,8 @@ + /* Use our own assert to guarantee no glib allocations */ + #ifndef ASSERT + #ifdef G_DISABLE_ASSERT +-#define ASSERT(x) +-#else ++#define ASSERT(x) ++#else + #define ASSERT(x) assert(x) + #endif + #endif +@@ -74,18 +74,18 @@ + static int show_warning = 1; + int egg_secure_warnings = 1; + +-/* +- * We allocate all memory in units of sizeof(void*). This ++/* ++ * We allocate all memory in units of sizeof(void*). This + * is our definition of 'word'. + */ + typedef void* word_t; + +-/* The amount of extra words we can allocate */ ++/* The amount of extra words we can allocate */ + #define WASTE 4 + +-/* +- * Track allocated memory or a free block. This structure is not stored +- * in the secure memory area. It is allocated from a pool of other ++/* ++ * Track allocated memory or a free block. This structure is not stored ++ * in the secure memory area. It is allocated from a pool of other + * memory. See meta_pool_xxx (). + */ + typedef struct _Cell { +@@ -97,7 +97,7 @@ typedef struct _Cell { + struct _Cell *prev; /* Previous in memory ring */ + } Cell; + +-/* ++/* + * A block of secure memory. This structure is the header in that block. + */ + typedef struct _Block { +@@ -130,20 +130,20 @@ unused_pop (void **stack) + ptr = *stack; + *stack = *(void**)ptr; + return ptr; +- ++ + } + + static inline void* + unused_peek (void **stack) + { + ASSERT (stack); +- return *stack; ++ return *stack; + } + + /* ----------------------------------------------------------------------------- + * POOL META DATA ALLOCATION +- * +- * A pool for memory meta data. We allocate fixed size blocks. There are actually ++ * ++ * A pool for memory meta data. We allocate fixed size blocks. There are actually + * two different structures stored in this pool: Cell and Block. Cell is allocated + * way more often, and is bigger so we just allocate that size for both. + */ +@@ -185,7 +185,7 @@ pool_alloc (void) + if (unused_peek (&pool->unused)) + break; + } +- ++ + /* Create a new pool */ + if (pool == NULL) { + len = getpagesize () * 2; +@@ -205,7 +205,7 @@ pool_alloc (void) + pool->n_items = (len - sizeof (Pool)) / sizeof (Item); + for (i = 0; i < pool->n_items; ++i) + unused_push (&pool->unused, pool->items + i); +- ++ + #ifdef WITH_VALGRIND + VALGRIND_CREATE_MEMPOOL(pool, 0, 0); + #endif +@@ -227,9 +227,9 @@ pool_free (void* item) + { + Pool *pool, **at; + char *ptr, *beg, *end; +- ++ + ptr = item; +- ++ + /* Find which block this one belongs to */ + for (at = (Pool **)&EGG_SECURE_GLOBALS.pool_data, pool = *at; + pool != NULL; at = &pool->next, pool = *at) { +@@ -275,17 +275,17 @@ pool_valid (void* item) + { + Pool *pool; + char *ptr, *beg, *end; +- ++ + ptr = item; +- ++ + /* Find which block this one belongs to */ + for (pool = EGG_SECURE_GLOBALS.pool_data; pool; pool = pool->next) { + beg = (char*)pool->items; + end = (char*)pool + pool->length - sizeof (Item); +- if (ptr >= beg && ptr <= end) ++ if (ptr >= beg && ptr <= end) + return (pool->used && (ptr - beg) % sizeof (Item) == 0); + } +- ++ + return 0; + } + +@@ -293,9 +293,9 @@ pool_valid (void* item) + + /* ----------------------------------------------------------------------------- + * SEC ALLOCATION +- * ++ * + * Each memory cell begins and ends with a pointer to its metadata. These are also +- * used as guards or red zones. Since they're treated as redzones by valgrind we ++ * used as guards or red zones. Since they're treated as redzones by valgrind we + * have to jump through a few hoops before reading and/or writing them. + */ + +@@ -315,11 +315,11 @@ sec_write_guards (Cell *cell) + + ((void**)cell->words)[0] = (void*)cell; + ((void**)cell->words)[cell->n_words - 1] = (void*)cell; +- ++ + #ifdef WITH_VALGRIND + VALGRIND_MAKE_MEM_NOACCESS (cell->words, sizeof (word_t)); + VALGRIND_MAKE_MEM_NOACCESS (cell->words + cell->n_words - 1, sizeof (word_t)); +-#endif ++#endif + } + + static inline void +@@ -327,16 +327,16 @@ sec_check_guards (Cell *cell) + { + #ifdef WITH_VALGRIND + VALGRIND_MAKE_MEM_DEFINED (cell->words, sizeof (word_t)); +- VALGRIND_MAKE_MEM_DEFINED (cell->words + cell->n_words - 1, sizeof (word_t)); +-#endif +- ++ VALGRIND_MAKE_MEM_DEFINED (cell->words + cell->n_words - 1, sizeof (word_t)); ++#endif ++ + ASSERT(((void**)cell->words)[0] == (void*)cell); + ASSERT(((void**)cell->words)[cell->n_words - 1] == (void*)cell); +- ++ + #ifdef WITH_VALGRIND + VALGRIND_MAKE_MEM_NOACCESS (cell->words, sizeof (word_t)); + VALGRIND_MAKE_MEM_NOACCESS (cell->words + cell->n_words - 1, sizeof (word_t)); +-#endif ++#endif + } + + static void +@@ -347,9 +347,9 @@ sec_insert_cell_ring (Cell **ring, Cell *cell) + ASSERT (cell != *ring); + ASSERT (cell->next == NULL); + ASSERT (cell->prev == NULL); +- +- /* Insert back into the mix of available memory */ +- if (*ring) { ++ ++ /* Insert back into the mix of available memory */ ++ if (*ring) { + cell->next = (*ring)->next; + cell->prev = *ring; + cell->next->prev = cell; +@@ -358,7 +358,7 @@ sec_insert_cell_ring (Cell **ring, Cell *cell) + cell->next = cell; + cell->prev = cell; + } +- ++ + *ring = cell; + ASSERT (cell->next->prev == cell); + ASSERT (cell->prev->next == cell); +@@ -391,7 +391,7 @@ sec_remove_cell_ring (Cell **ring, Cell *cell) + cell->next->prev = cell->prev; + cell->prev->next = cell->next; + cell->next = cell->prev = NULL; +- ++ + ASSERT (*ring != cell); + } + +@@ -440,10 +440,10 @@ static Cell* + sec_neighbor_before (Block *block, Cell *cell) + { + word_t *word; +- ++ + ASSERT (cell); + ASSERT (block); +- ++ + word = cell->words - 1; + if (!sec_is_valid_word (block, word)) + return NULL; +@@ -451,7 +451,7 @@ sec_neighbor_before (Block *block, Cell *cell) + #ifdef WITH_VALGRIND + VALGRIND_MAKE_MEM_DEFINED (word, sizeof (word_t)); + #endif +- ++ + cell = *word; + sec_check_guards (cell); + +@@ -462,14 +462,14 @@ sec_neighbor_before (Block *block, Cell *cell) + return cell; + } + +-static Cell* ++static Cell* + sec_neighbor_after (Block *block, Cell *cell) + { + word_t *word; +- ++ + ASSERT (cell); + ASSERT (block); +- ++ + word = cell->words + cell->n_words; + if (!sec_is_valid_word (block, word)) + return NULL; +@@ -480,7 +480,7 @@ sec_neighbor_after (Block *block, Cell *cell) + + cell = *word; + sec_check_guards (cell); +- ++ + #ifdef WITH_VALGRIND + VALGRIND_MAKE_MEM_NOACCESS (word, sizeof (word_t)); + #endif +@@ -496,7 +496,7 @@ sec_alloc (Block *block, + Cell *cell, *other; + size_t n_words; + void *memory; +- ++ + ASSERT (block); + ASSERT (length); + ASSERT (tag); +@@ -504,16 +504,16 @@ sec_alloc (Block *block, + if (!block->unused_cells) + return NULL; + +- /* +- * Each memory allocation is aligned to a pointer size, and ++ /* ++ * Each memory allocation is aligned to a pointer size, and + * then, sandwidched between two pointers to its meta data. + * These pointers also act as guards. + * +- * We allocate memory in units of sizeof (void*) ++ * We allocate memory in units of sizeof (void*) + */ +- ++ + n_words = sec_size_to_words (length) + 2; +- ++ + /* Look for a cell of at least our required size */ + cell = block->unused_cells; + while (cell->n_words < n_words) { +@@ -523,7 +523,7 @@ sec_alloc (Block *block, + break; + } + } +- ++ + if (!cell) + return NULL; + +@@ -532,7 +532,7 @@ sec_alloc (Block *block, + ASSERT (cell->prev); + ASSERT (cell->words); + sec_check_guards (cell); +- ++ + /* Steal from the cell if it's too long */ + if (cell->n_words > n_words + WASTE) { + other = pool_alloc (); +@@ -542,13 +542,13 @@ sec_alloc (Block *block, + other->words = cell->words; + cell->n_words -= n_words; + cell->words += n_words; +- ++ + sec_write_guards (other); + sec_write_guards (cell); +- ++ + cell = other; + } +- ++ + if (cell->next) + sec_remove_cell_ring (&block->unused_cells, cell); + +@@ -557,11 +557,11 @@ sec_alloc (Block *block, + cell->requested = length; + sec_insert_cell_ring (&block->used_cells, cell); + memory = sec_cell_to_memory (cell); +- ++ + #ifdef WITH_VALGRIND + VALGRIND_MAKE_MEM_UNDEFINED (memory, length); + #endif +- ++ + return memset (memory, 0, length); + } + +@@ -570,13 +570,13 @@ sec_free (Block *block, void *memory) + { + Cell *cell, *other; + word_t *word; +- ++ + ASSERT (block); + ASSERT (memory); +- ++ + word = memory; + --word; +- ++ + #ifdef WITH_VALGRIND + VALGRIND_MAKE_MEM_DEFINED (word, sizeof (word_t)); + #endif +@@ -600,39 +600,39 @@ sec_free (Block *block, void *memory) + /* Remove from the used cell ring */ + sec_remove_cell_ring (&block->used_cells, cell); + +- /* Find previous unallocated neighbor, and merge if possible */ +- other = sec_neighbor_before (block, cell); +- if (other && other->requested == 0) { +- ASSERT (other->tag == NULL); +- ASSERT (other->next && other->prev); +- other->n_words += cell->n_words; +- sec_write_guards (other); +- pool_free (cell); +- cell = other; +- } +- +- /* Find next unallocated neighbor, and merge if possible */ +- other = sec_neighbor_after (block, cell); +- if (other && other->requested == 0) { +- ASSERT (other->tag == NULL); +- ASSERT (other->next && other->prev); +- other->n_words += cell->n_words; +- other->words = cell->words; +- if (cell->next) +- sec_remove_cell_ring (&block->unused_cells, cell); +- sec_write_guards (other); +- pool_free (cell); +- cell = other; +- } ++ /* Find previous unallocated neighbor, and merge if possible */ ++ other = sec_neighbor_before (block, cell); ++ if (other && other->requested == 0) { ++ ASSERT (other->tag == NULL); ++ ASSERT (other->next && other->prev); ++ other->n_words += cell->n_words; ++ sec_write_guards (other); ++ pool_free (cell); ++ cell = other; ++ } + +- /* Add to the unused list if not already there */ +- if (!cell->next) +- sec_insert_cell_ring (&block->unused_cells, cell); ++ /* Find next unallocated neighbor, and merge if possible */ ++ other = sec_neighbor_after (block, cell); ++ if (other && other->requested == 0) { ++ ASSERT (other->tag == NULL); ++ ASSERT (other->next && other->prev); ++ other->n_words += cell->n_words; ++ other->words = cell->words; ++ if (cell->next) ++ sec_remove_cell_ring (&block->unused_cells, cell); ++ sec_write_guards (other); ++ pool_free (cell); ++ cell = other; ++ } + +- cell->tag = NULL; +- cell->requested = 0; +- --block->n_used; +- return NULL; ++ /* Add to the unused list if not already there */ ++ if (!cell->next) ++ sec_insert_cell_ring (&block->unused_cells, cell); ++ ++ cell->tag = NULL; ++ cell->requested = 0; ++ --block->n_used; ++ return NULL; + } + + static void +@@ -683,7 +683,7 @@ sec_realloc (Block *block, + /* Dig out where the meta should be */ + word = memory; + --word; +- ++ + #ifdef WITH_VALGRIND + VALGRIND_MAKE_MEM_DEFINED (word, sizeof (word_t)); + #endif +@@ -691,7 +691,7 @@ sec_realloc (Block *block, + ASSERT (sec_is_valid_word (block, word)); + ASSERT (pool_valid (*word)); + cell = *word; +- ++ + /* Validate that it's actually for real */ + sec_check_guards (cell); + ASSERT (cell->requested > 0); +@@ -710,17 +710,17 @@ sec_realloc (Block *block, + cell->requested = length; + alloc = sec_cell_to_memory (cell); + +- /* ++ /* + * Even though we may be reusing the same cell, that doesn't + * mean that the allocation is shrinking. It could have shrunk +- * and is now expanding back some. +- */ ++ * and is now expanding back some. ++ */ + if (length < valid) + sec_clear_undefined (alloc, length, valid); + + return alloc; + } +- ++ + /* Need braaaaaiiiiiinsss... */ + while (cell->n_words < n_words) { + +@@ -728,7 +728,7 @@ sec_realloc (Block *block, + other = sec_neighbor_after (block, cell); + if (!other || other->requested != 0) + break; +- ++ + /* Eat the whole neighbor if not too big */ + if (n_words - cell->n_words + WASTE >= other->n_words) { + cell->n_words += other->n_words; +@@ -745,7 +745,7 @@ sec_realloc (Block *block, + sec_write_guards (cell); + } + } +- ++ + if (cell->n_words >= n_words) { + cell->requested = length; + cell->tag = tag; +@@ -760,7 +760,7 @@ sec_realloc (Block *block, + memcpy_with_vbits (alloc, memory, valid); + sec_free (block, memory); + } +- ++ + return alloc; + } + +@@ -770,7 +770,7 @@ sec_allocated (Block *block, void *memory) + { + Cell *cell; + word_t *word; +- ++ + ASSERT (block); + ASSERT (memory); + +@@ -780,12 +780,12 @@ sec_allocated (Block *block, void *memory) + #ifdef WITH_VALGRIND + VALGRIND_MAKE_MEM_DEFINED (word, sizeof (word_t)); + #endif +- ++ + /* Lookup the meta for this memory block (using guard pointer) */ + ASSERT (sec_is_valid_word (block, word)); + ASSERT (pool_valid (*word)); + cell = *word; +- ++ + sec_check_guards (cell); + ASSERT (cell->requested > 0); + ASSERT (cell->tag != NULL); +@@ -817,10 +817,10 @@ sec_validate (Block *block) + ASSERT (sec_is_valid_word (block, word)); + ASSERT (pool_valid (*word)); + cell = *word; +- ++ + /* Validate that it's actually for real */ + sec_check_guards (cell); +- ++ + /* Is it an allocated block? */ + if (cell->requested > 0) { + ASSERT (cell->tag != NULL); +@@ -829,7 +829,7 @@ sec_validate (Block *block) + ASSERT (cell->next->prev == cell); + ASSERT (cell->prev->next == cell); + ASSERT (cell->requested <= (cell->n_words - 2) * sizeof (word_t)); +- ++ + /* An unused block */ + } else { + ASSERT (cell->tag == NULL); +@@ -838,7 +838,7 @@ sec_validate (Block *block) + ASSERT (cell->next->prev == cell); + ASSERT (cell->prev->next == cell); + } +- ++ + word += cell->n_words; + if (word == last) + break; +@@ -855,7 +855,7 @@ sec_acquire_pages (size_t *sz, + { + void *pages; + unsigned long pgsize; +- ++ + ASSERT (sz); + ASSERT (*sz); + ASSERT (during_tag); +@@ -863,7 +863,7 @@ sec_acquire_pages (size_t *sz, + /* Make sure sz is a multiple of the page size */ + pgsize = getpagesize (); + *sz = (*sz + pgsize -1) & ~(pgsize - 1); +- ++ + #if defined(HAVE_MLOCK) + pages = mmap (0, *sz, PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_ANON, -1, 0); + if (pages == MAP_FAILED) { +@@ -873,7 +873,7 @@ sec_acquire_pages (size_t *sz, + show_warning = 0; + return NULL; + } +- ++ + if (mlock (pages, *sz) < 0) { + if (show_warning && egg_secure_warnings && errno != EPERM) { + fprintf (stderr, "couldn't lock %lu bytes of memory (%s): %s\n", +@@ -883,12 +883,12 @@ sec_acquire_pages (size_t *sz, + munmap (pages, *sz); + return NULL; + } +- ++ + DEBUG_ALLOC ("gkr-secure-memory: new block ", *sz); +- ++ + show_warning = 1; + return pages; +- ++ + #else + if (show_warning && egg_secure_warnings) + fprintf (stderr, "your system does not support private memory"); +@@ -898,21 +898,21 @@ sec_acquire_pages (size_t *sz, + + } + +-static void ++static void + sec_release_pages (void *pages, size_t sz) + { + ASSERT (pages); + ASSERT (sz % getpagesize () == 0); +- ++ + #if defined(HAVE_MLOCK) + if (munlock (pages, sz) < 0 && egg_secure_warnings) + fprintf (stderr, "couldn't unlock private memory: %s\n", strerror (errno)); +- ++ + if (munmap (pages, sz) < 0 && egg_secure_warnings) + fprintf (stderr, "couldn't unmap private anonymous memory: %s\n", strerror (errno)); +- ++ + DEBUG_ALLOC ("gkr-secure-memory: freed block ", sz); +- ++ + #else + ASSERT (FALSE); + #endif +@@ -924,7 +924,7 @@ sec_release_pages (void *pages, size_t sz) + + static Block *all_blocks = NULL; + +-static Block* ++static Block* + sec_block_create (size_t size, + const char *during_tag) + { +@@ -950,7 +950,7 @@ sec_block_create (size_t size, + /* The size above is a minimum, we're free to go bigger */ + if (size < DEFAULT_BLOCK_SIZE) + size = DEFAULT_BLOCK_SIZE; +- ++ + block->words = sec_acquire_pages (&size, during_tag); + block->n_words = size / sizeof (word_t); + if (!block->words) { +@@ -958,11 +958,11 @@ sec_block_create (size_t size, + pool_free (cell); + return NULL; + } +- ++ + #ifdef WITH_VALGRIND + VALGRIND_MAKE_MEM_DEFINED (block->words, size); + #endif +- ++ + /* The first cell to allocate from */ + cell->words = block->words; + cell->n_words = block->n_words; +@@ -972,7 +972,7 @@ sec_block_create (size_t size, + + block->next = all_blocks; + all_blocks = block; +- ++ + return block; + } + +@@ -985,7 +985,7 @@ sec_block_destroy (Block *block) + ASSERT (block); + ASSERT (block->words); + ASSERT (block->n_used == 0); +- ++ + /* Remove from the list */ + for (at = &all_blocks, bl = *at; bl; at = &bl->next, bl = *at) { + if (bl == block) { +@@ -993,7 +993,7 @@ sec_block_destroy (Block *block) + break; + } + } +- ++ + /* Must have been found */ + ASSERT (bl == block); + ASSERT (block->used_cells == NULL); +@@ -1004,7 +1004,7 @@ sec_block_destroy (Block *block) + sec_remove_cell_ring (&block->unused_cells, cell); + pool_free (cell); + } +- ++ + /* Release all pages of secure memory */ + sec_release_pages (block->words, block->n_words * sizeof (word_t)); + +@@ -1028,35 +1028,35 @@ egg_secure_alloc_full (const char *tag, + + if (length > 0xFFFFFFFF / 2) { + if (egg_secure_warnings) +- fprintf (stderr, "tried to allocate an insane amount of memory: %lu\n", +- (unsigned long)length); ++ fprintf (stderr, "tried to allocate an insane amount of memory: %lu\n", ++ (unsigned long)length); + return NULL; + } + + /* Can't allocate zero bytes */ + if (length == 0) + return NULL; +- ++ + DO_LOCK (); +- ++ + for (block = all_blocks; block; block = block->next) { + memory = sec_alloc (block, tag, length); + if (memory) +- break; ++ break; + } +- ++ + /* None of the current blocks have space, allocate new */ + if (!memory) { + block = sec_block_create (length, tag); + if (block) + memory = sec_alloc (block, tag, length); + } +- ++ + #ifdef WITH_VALGRIND + if (memory != NULL) + VALGRIND_MALLOCLIKE_BLOCK (memory, length, sizeof (void*), 1); + #endif +- ++ + DO_UNLOCK (); + + if (!memory && (flags & EGG_SECURE_USE_FALLBACK) && EGG_SECURE_GLOBALS.fallback != NULL) { +@@ -1064,10 +1064,10 @@ egg_secure_alloc_full (const char *tag, + if (memory) /* Our returned memory is always zeroed */ + memset (memory, 0, length); + } +- ++ + if (!memory) + errno = ENOMEM; +- ++ + return memory; + } + +@@ -1087,20 +1087,20 @@ egg_secure_realloc_full (const char *tag, + + if (length > 0xFFFFFFFF / 2) { + if (egg_secure_warnings) +- fprintf (stderr, "tried to allocate an insane amount of memory: %lu\n", ++ fprintf (stderr, "tried to allocate an insane amount of memory: %lu\n", + (unsigned long)length); + return NULL; + } +- ++ + if (memory == NULL) + return egg_secure_alloc_full (tag, length, flags); + if (!length) { + egg_secure_free_full (memory, flags); + return NULL; + } +- ++ + DO_LOCK (); +- ++ + /* Find out where it belongs to */ + for (block = all_blocks; block; block = block->next) { + if (sec_is_valid_word (block, memory)) { +@@ -1115,10 +1115,10 @@ egg_secure_realloc_full (const char *tag, + + #ifdef WITH_VALGRIND + /* Now tell valgrind about either the new block or old one */ +- VALGRIND_MALLOCLIKE_BLOCK (alloc ? alloc : memory, +- alloc ? length : previous, ++ VALGRIND_MALLOCLIKE_BLOCK (alloc ? alloc : memory, ++ alloc ? length : previous, + sizeof (word_t), 1); +-#endif ++#endif + break; + } + } +@@ -1129,13 +1129,13 @@ egg_secure_realloc_full (const char *tag, + + if (block && block->n_used == 0) + sec_block_destroy (block); +- +- DO_UNLOCK (); +- ++ ++ DO_UNLOCK (); ++ + if (!block) { + if ((flags & EGG_SECURE_USE_FALLBACK) && EGG_SECURE_GLOBALS.fallback) { +- /* +- * In this case we can't zero the returned memory, ++ /* ++ * In this case we can't zero the returned memory, + * because we don't know what the block size was. + */ + return EGG_SECURE_GLOBALS.fallback (memory, length); +@@ -1155,7 +1155,7 @@ egg_secure_realloc_full (const char *tag, + egg_secure_free_full (memory, flags); + } + } +- ++ + if (!alloc) + errno = ENOMEM; + +@@ -1172,12 +1172,12 @@ void + egg_secure_free_full (void *memory, int flags) + { + Block *block = NULL; +- ++ + if (memory == NULL) + return; +- ++ + DO_LOCK (); +- ++ + /* Find out where it belongs to */ + for (block = all_blocks; block; block = block->next) { + if (sec_is_valid_word (block, memory)) +@@ -1195,9 +1195,9 @@ egg_secure_free_full (void *memory, int flags) + if (block->n_used == 0) + sec_block_destroy (block); + } +- ++ + DO_UNLOCK (); +- ++ + if (!block) { + if ((flags & EGG_SECURE_USE_FALLBACK) && EGG_SECURE_GLOBALS.fallback) { + EGG_SECURE_GLOBALS.fallback (memory, 0); +@@ -1208,36 +1208,36 @@ egg_secure_free_full (void *memory, int flags) + ASSERT (0 && "memory does does not belong to secure memory pool"); + } + } +-} ++} + +-int ++int + egg_secure_check (const void *memory) + { + Block *block = NULL; + + DO_LOCK (); +- ++ + /* Find out where it belongs to */ + for (block = all_blocks; block; block = block->next) { + if (sec_is_valid_word (block, (word_t*)memory)) + break; + } +- ++ + DO_UNLOCK (); +- ++ + return block == NULL ? 0 : 1; +-} ++} + + void + egg_secure_validate (void) + { + Block *block = NULL; +- ++ + DO_LOCK (); +- ++ + for (block = all_blocks; block; block = block->next) + sec_validate (block); +- ++ + DO_UNLOCK (); + } + +@@ -1320,20 +1320,42 @@ egg_secure_strdup_full (const char *tag, + if (!str) + return NULL; + +- len = strlen (str) + 1; ++ len = strlen (str) + 1; + res = (char *)egg_secure_alloc_full (tag, len, options); + strcpy (res, str); + return res; + } + ++char * ++egg_secure_strndup_full (const char *tag, ++ const char *str, ++ size_t length, ++ int options) ++{ ++ size_t len; ++ char *res; ++ const char *end; ++ ++ if (!str) ++ return NULL; ++ ++ end = memchr (str, '\0', length); ++ if (end != NULL) ++ length = (end - str); ++ len = length + 1; ++ res = (char *)egg_secure_alloc_full (tag, len, options); ++ memcpy (res, str, len); ++ return res; ++} ++ + void + egg_secure_clear (void *p, size_t length) + { + volatile char *vp; +- ++ + if (p == NULL) + return; +- ++ + vp = (volatile char*)p; + while (length) { + *vp = 0xAA; +@@ -1355,10 +1377,10 @@ egg_secure_strfree (char *str) + { + /* + * If we're using unpageable 'secure' memory, then the free call +- * should zero out the memory, but because on certain platforms ++ * should zero out the memory, but because on certain platforms + * we may be using normal memory, zero it out here just in case. + */ +- ++ + egg_secure_strclear (str); + egg_secure_free_full (str, EGG_SECURE_USE_FALLBACK); + } diff --git a/security/gnome-keyring/files/patch-egg_egg-secure-memory.h b/security/gnome-keyring/files/patch-egg_egg-secure-memory.h new file mode 100644 index 000000000..6e9b5ca3e --- /dev/null +++ b/security/gnome-keyring/files/patch-egg_egg-secure-memory.h @@ -0,0 +1,75 @@ +--- egg/egg-secure-memory.h.orig Wed Sep 26 10:28:35 2012 ++++ egg/egg-secure-memory.h Sat Oct 27 14:46:28 2012 +@@ -27,16 +27,16 @@ + #include <stdlib.h> + + /* ------------------------------------------------------------------- +- * Low Level Secure Memory +- * +- * IMPORTANT: This is pure vanila standard C, no glib. We need this +- * because certain consumers of this protocol need to be built ++ * Low Level Secure Memory ++ * ++ * IMPORTANT: This is pure vanila standard C, no glib. We need this ++ * because certain consumers of this protocol need to be built + * without linking in any special libraries. ie: the PKCS#11 module. +- * ++ * + * Thread locking +- * ++ * + * In order to use these functions in a module the following functions +- * must be defined somewhere, and provide appropriate locking for ++ * must be defined somewhere, and provide appropriate locking for + * secure memory between threads: + */ + +@@ -66,12 +66,12 @@ typedef struct { + + extern egg_secure_glob EGG_SECURE_GLOBALS; + +-/* ++/* + * Main functionality +- * ++ * + * Allocations return NULL on failure. +- */ +- ++ */ ++ + #define EGG_SECURE_USE_FALLBACK 0x0001 + + #define EGG_SECURE_DECLARE(tag) \ +@@ -83,23 +83,28 @@ extern egg_secure_glob EGG_SECURE_GLOBALS; + } \ + static inline void* egg_secure_strdup (const char *str) { \ + return egg_secure_strdup_full (G_STRINGIFY (tag), str, EGG_SECURE_USE_FALLBACK); \ ++ } \ ++ static inline void* egg_secure_strndup (const char *str, size_t length) { \ ++ return egg_secure_strndup_full (G_STRINGIFY (tag), str, length, EGG_SECURE_USE_FALLBACK); \ + } + + void* egg_secure_alloc_full (const char *tag, size_t length, int options); + + void* egg_secure_realloc_full (const char *tag, void *p, size_t length, int options); + +-void egg_secure_free (void* p); ++void egg_secure_free (void* p); + +-void egg_secure_free_full (void* p, int fallback); ++void egg_secure_free_full (void* p, int fallback); + + void egg_secure_clear (void *p, size_t length); + +-int egg_secure_check (const void* p); ++int egg_secure_check (const void* p); + + void egg_secure_validate (void); + + char* egg_secure_strdup_full (const char *tag, const char *str, int options); ++ ++char* egg_secure_strndup_full (const char *tag, const char *str, size_t length, int options); + + void egg_secure_strclear (char *str); + diff --git a/security/gnome-keyring/files/patch-egg_egg-unix-credentials.c b/security/gnome-keyring/files/patch-egg_egg-unix-credentials.c deleted file mode 100644 index 5ae53f8b0..000000000 --- a/security/gnome-keyring/files/patch-egg_egg-unix-credentials.c +++ /dev/null @@ -1,44 +0,0 @@ ---- egg/egg-unix-credentials.c.orig 2010-01-13 00:21:23.000000000 -0500 -+++ egg/egg-unix-credentials.c 2010-01-13 00:25:46.000000000 -0500 -@@ -27,6 +27,7 @@ - - #include <sys/types.h> - #include <sys/socket.h> -+#include <sys/param.h> - #include <sys/uio.h> - #include <sys/un.h> - #include <errno.h> -@@ -37,6 +38,33 @@ - #include <ucred.h> - #endif - -+#if __FreeBSD_version < 701101 -+static char * -+strndup (const char *s, size_t n) -+{ -+ size_t nAvail; -+ char *p; -+ -+ if (s == NULL) -+ return NULL; -+ -+ if (memchr (s, '\0', n) != NULL) { -+ nAvail = strlen(s); -+ if (nAvail > n) -+ nAvail = n; -+ } else{ -+ nAvail = n; -+ } -+ p = malloc (nAvail + 1); -+ if (p == NULL) -+ return NULL; -+ memcpy (p, s, nAvail); -+ p[nAvail] = '\0'; -+ -+ return p; -+} -+#endif -+ - int - egg_unix_credentials_read (int sock, pid_t *pid, uid_t *uid) - { diff --git a/security/gnome-keyring/files/patch-egg_tests_test-secmem.c b/security/gnome-keyring/files/patch-egg_tests_test-secmem.c new file mode 100644 index 000000000..6aa1d599c --- /dev/null +++ b/security/gnome-keyring/files/patch-egg_tests_test-secmem.c @@ -0,0 +1,66 @@ +--- egg/tests/test-secmem.c.orig Wed Sep 26 10:28:35 2012 ++++ egg/tests/test-secmem.c Sat Oct 27 14:46:28 2012 +@@ -39,7 +39,7 @@ extern int egg_secure_warnings; + + EGG_SECURE_DECLARE (tests); + +-/* ++/* + * Each test looks like (on one line): + * void unit_test_xxxxx (CuTest* cu) + * +@@ -93,10 +93,12 @@ test_realloc_across (void) + g_assert (p != NULL); + g_assert_cmpint (G_MAXSIZE, ==, find_non_zero (p, 1088)); + +- /* Reallocate to a large one, will have to have changed blocks */ ++ /* Reallocate to a large one, will have to have changed blocks */ + p2 = egg_secure_realloc_full ("tests", p, 16200, 0); + g_assert (p2 != NULL); + g_assert_cmpint (G_MAXSIZE, ==, find_non_zero (p2, 16200)); ++ ++ egg_secure_free (p2); + } + + static void +@@ -180,26 +182,25 @@ test_multialloc (void) + case 0: /* Allocate some memory */ + size = g_random_int_range (1, 16384); + data = egg_secure_alloc (size); +- g_assert (data); ++ g_assert (data != NULL); + memset (data, 0xCAFEBABE, size); + g_ptr_array_add (memory, data); + break; + case 1: /* Reallocate some memory */ + index = g_random_int_range (0, memory->len); + data = g_ptr_array_index (memory, index); +- g_assert (data); ++ g_assert (data != NULL); + size = g_random_int_range (1, 16384); + data = egg_secure_realloc (data, size); +- g_assert (data); ++ g_assert (data != NULL); + memset (data, 0xCAFEBABE, size); + g_ptr_array_index (memory, index) = data; + break; + case 2: /* Free some memory */ + index = g_random_int_range (0, memory->len); +- data = g_ptr_array_index (memory, index); +- g_assert (data); ++ data = g_ptr_array_remove_index_fast (memory, index); ++ g_assert (data != NULL); + egg_secure_free (data); +- g_ptr_array_remove_index_fast (memory, index); + break; + default: + g_assert_not_reached (); +@@ -212,6 +213,8 @@ test_multialloc (void) + } + + g_assert (memory->len == 0); ++ for (i = 0; i < memory->len; i++) ++ egg_secure_free (memory->pdata[i]); + g_ptr_array_free (memory, TRUE); + + egg_secure_warnings = 1; diff --git a/security/gnome-keyring/files/patch-gcr_gcr-certificate.c b/security/gnome-keyring/files/patch-gcr_gcr-certificate.c deleted file mode 100644 index bdf10bf14..000000000 --- a/security/gnome-keyring/files/patch-gcr_gcr-certificate.c +++ /dev/null @@ -1,11 +0,0 @@ ---- gcr/gcr-certificate.c.orig 2010-09-04 12:04:30.000000000 +0200 -+++ gcr/gcr-certificate.c 2010-09-04 12:04:42.000000000 +0200 -@@ -158,7 +158,7 @@ calculate_key_size (GcrCertificateInfo * - const guchar *data, *params; - gsize n_data, n_params; - guint key_size = 0, n_bits; -- guchar *key; -+ guchar *key = NULL; - GQuark oid; - - data = egg_asn1x_get_raw_element (egg_asn1x_node (info->asn1, "tbsCertificate", "subjectPublicKeyInfo", NULL), &n_data); diff --git a/security/gnome-keyring/files/patch-pkcs11_rpc-layer_gkm-rpc-dispatch.c b/security/gnome-keyring/files/patch-pkcs11_rpc-layer_gkm-rpc-dispatch.c deleted file mode 100644 index 146d8b69d..000000000 --- a/security/gnome-keyring/files/patch-pkcs11_rpc-layer_gkm-rpc-dispatch.c +++ /dev/null @@ -1,11 +0,0 @@ ---- pkcs11/rpc-layer/gkm-rpc-dispatch.c.orig 2010-09-04 12:06:44.000000000 +0200 -+++ pkcs11/rpc-layer/gkm-rpc-dispatch.c 2010-09-04 12:07:12.000000000 +0200 -@@ -784,7 +784,7 @@ rpc_C_Finalize (CallState *cs) - { - CK_SLOT_ID_PTR slots; - CK_ULONG n_slots, i; -- CK_RV ret; -+ CK_RV ret = CKR_OK; - - debug (("C_Finalize: enter")); - diff --git a/security/gnome-keyring/pkg-plist b/security/gnome-keyring/pkg-plist index 8ce23ce40..6b480bd21 100644 --- a/security/gnome-keyring/pkg-plist +++ b/security/gnome-keyring/pkg-plist @@ -1,103 +1,28 @@ bin/gnome-keyring +bin/gnome-keyring-3 bin/gnome-keyring-daemon etc/xdg/autostart/gnome-keyring-gpg.desktop etc/xdg/autostart/gnome-keyring-pkcs11.desktop etc/xdg/autostart/gnome-keyring-secrets.desktop etc/xdg/autostart/gnome-keyring-ssh.desktop -include/gcr/gcr/gcr-certificate-basics-widget.h -include/gcr/gcr/gcr-certificate-details-widget.h -include/gcr/gcr/gcr-certificate.h -include/gcr/gcr/gcr-importer.h -include/gcr/gcr/gcr-parser.h -include/gcr/gcr/gcr-simple-certificate.h -include/gcr/gcr/gcr-types.h -include/gcr/gcr/gcr-unlock-options-widget.h -include/gcr/gcr/gcr-unlock-options.h -include/gcr/gcr/gcr.h -include/gp11/gp11.h -include/gp11/pkcs11.h -include/gp11/pkcs11g.h -include/gp11/pkcs11n.h -lib/gnome-keyring/devel/gkm-ssh-store-standalone.a +lib/gnome-keyring/devel/gkm-gnome2-store-standalone.la +lib/gnome-keyring/devel/gkm-gnome2-store-standalone.so +lib/gnome-keyring/devel/gkm-roots-store-standalone.la +lib/gnome-keyring/devel/gkm-roots-store-standalone.so +lib/gnome-keyring/devel/gkm-secret-store-standalone.la +lib/gnome-keyring/devel/gkm-secret-store-standalone.so lib/gnome-keyring/devel/gkm-ssh-store-standalone.la lib/gnome-keyring/devel/gkm-ssh-store-standalone.so -lib/gnome-keyring/devel/gkm-user-store-standalone.a -lib/gnome-keyring/devel/gkm-user-store-standalone.la -lib/gnome-keyring/devel/gkm-user-store-standalone.so -lib/gnome-keyring/gnome-keyring-pkcs11.a -lib/gnome-keyring/gnome-keyring-pkcs11.la -lib/gnome-keyring/gnome-keyring-pkcs11.so -lib/gnome-keyring/standalone/gkm-roots-store-standalone.a -lib/gnome-keyring/standalone/gkm-roots-store-standalone.la -lib/gnome-keyring/standalone/gkm-roots-store-standalone.so -lib/gnome-keyring/standalone/gkm-secret-store-standalone.a -lib/gnome-keyring/standalone/gkm-secret-store-standalone.la -lib/gnome-keyring/standalone/gkm-secret-store-standalone.so -lib/libgcr.a -lib/libgcr.la -lib/libgcr.so -lib/libgcr.so.0 -lib/libgp11.a -lib/libgp11.la -lib/libgp11.so -lib/libgp11.so.0 -lib/pam_gnome_keyring.a +lib/gnome-keyring/devel/gkm-xdg-store-standalone.la +lib/gnome-keyring/devel/gkm-xdg-store-standalone.so lib/pam_gnome_keyring.la lib/pam_gnome_keyring.so -libdata/pkgconfig/gcr-0.pc -libdata/pkgconfig/gp11-0.pc -libexec/gnome-keyring-prompt +lib/pkcs11/gnome-keyring-pkcs11.la +lib/pkcs11/gnome-keyring-pkcs11.so share/GConf/gsettings/org.gnome.crypto.cache.convert -share/GConf/gsettings/org.gnome.crypto.pgp.convert share/dbus-1/services/org.freedesktop.secrets.service share/dbus-1/services/org.gnome.keyring.service -share/doc/gcr-0/ch01.html -share/doc/gcr-0/gcr-GcrCertificate.html -share/doc/gcr-0/gcr-gcr-certificate-basics-widget.html -share/doc/gcr-0/gcr-gcr-certificate-details-widget.html -share/doc/gcr-0/gcr-gcr-import-dialog.html -share/doc/gcr-0/gcr-gcr-importer.html -share/doc/gcr-0/gcr-gcr-initializer.html -share/doc/gcr-0/gcr-gcr-parser.html -share/doc/gcr-0/gcr-gcr-simple-certificate.html -share/doc/gcr-0/gcr-gcr-types.html -share/doc/gcr-0/gcr-gcr-xxx.html -share/doc/gcr-0/gcr-0.devhelp -share/doc/gcr-0/gcr-0.devhelp2 -share/doc/gcr-0/home.png -share/doc/gcr-0/index.html -share/doc/gcr-0/index.sgml -share/doc/gcr-0/left.png -share/doc/gcr-0/right.png -share/doc/gcr-0/style.css -share/doc/gcr-0/up.png -share/doc/gp11/GP11Module.html -share/doc/gp11/GP11Object.html -share/doc/gp11/GP11Session.html -share/doc/gp11/GP11Slot.html -share/doc/gp11/ch01.html -share/doc/gp11/gp11-Errors.html -share/doc/gp11/gp11-GP11Attribute.html -share/doc/gp11/gp11-GP11Attributes.html -share/doc/gp11/gp11-Miscellaneous-Functions.html -share/doc/gp11/gp11.devhelp -share/doc/gp11/gp11.devhelp2 -share/doc/gp11/home.png -share/doc/gp11/index.html -share/doc/gp11/index.sgml -share/doc/gp11/left.png -share/doc/gp11/right.png -share/doc/gp11/style.css -share/doc/gp11/up.png -share/gcr/ui/gcr-certificate-basics-widget.ui -share/gcr/ui/gcr-import-dialog.ui -share/gcr/ui/gcr-unlock-options-widget.ui -%%DATADIR%%/introspect/introspect-collection.xml -%%DATADIR%%/introspect/introspect-item.xml -%%DATADIR%%/introspect/introspect-prompt.xml -%%DATADIR%%/introspect/introspect-service.xml -%%DATADIR%%/introspect/introspect-session.xml -%%DATADIR%%/ui/gku-prompt.ui +share/locale/af/LC_MESSAGES/gnome-keyring.mo share/locale/ar/LC_MESSAGES/gnome-keyring.mo share/locale/as/LC_MESSAGES/gnome-keyring.mo share/locale/ast/LC_MESSAGES/gnome-keyring.mo @@ -119,6 +44,7 @@ share/locale/el/LC_MESSAGES/gnome-keyring.mo share/locale/en@shaw/LC_MESSAGES/gnome-keyring.mo share/locale/en_CA/LC_MESSAGES/gnome-keyring.mo share/locale/en_GB/LC_MESSAGES/gnome-keyring.mo +share/locale/eo/LC_MESSAGES/gnome-keyring.mo share/locale/es/LC_MESSAGES/gnome-keyring.mo share/locale/et/LC_MESSAGES/gnome-keyring.mo share/locale/eu/LC_MESSAGES/gnome-keyring.mo @@ -137,6 +63,7 @@ share/locale/is/LC_MESSAGES/gnome-keyring.mo share/locale/it/LC_MESSAGES/gnome-keyring.mo share/locale/ja/LC_MESSAGES/gnome-keyring.mo share/locale/ka/LC_MESSAGES/gnome-keyring.mo +share/locale/km/LC_MESSAGES/gnome-keyring.mo share/locale/kn/LC_MESSAGES/gnome-keyring.mo share/locale/ko/LC_MESSAGES/gnome-keyring.mo share/locale/lt/LC_MESSAGES/gnome-keyring.mo @@ -172,29 +99,20 @@ share/locale/ta/LC_MESSAGES/gnome-keyring.mo share/locale/te/LC_MESSAGES/gnome-keyring.mo share/locale/th/LC_MESSAGES/gnome-keyring.mo share/locale/tr/LC_MESSAGES/gnome-keyring.mo +share/locale/ug/LC_MESSAGES/gnome-keyring.mo share/locale/uk/LC_MESSAGES/gnome-keyring.mo share/locale/vi/LC_MESSAGES/gnome-keyring.mo share/locale/xh/LC_MESSAGES/gnome-keyring.mo share/locale/zh_CN/LC_MESSAGES/gnome-keyring.mo share/locale/zh_HK/LC_MESSAGES/gnome-keyring.mo share/locale/zh_TW/LC_MESSAGES/gnome-keyring.mo -@dirrm %%DATADIR%%/ui -@dirrm %%DATADIR%%/introspect -@dirrm %%DATADIR%% -@dirrm share/gcr/ui -@dirrm share/gcr -@dirrm share/doc/gp11 -@dirrm share/doc/gcr-0 -@dirrm lib/gnome-keyring/standalone -@dirrm lib/gnome-keyring/devel -@dirrm lib/gnome-keyring -@dirrm include/gp11 -@dirrm include/gcr/gcr -@dirrm include/gcr +share/p11-kit/modules/gnome-keyring.module @dirrmtry share/locale/zh_HK/LC_MESSAGES @dirrmtry share/locale/zh_HK @dirrmtry share/locale/xh/LC_MESSAGES @dirrmtry share/locale/xh +@dirrmtry share/locale/ug/LC_MESSAGES +@dirrmtry share/locale/ug @dirrmtry share/locale/te/LC_MESSAGES @dirrmtry share/locale/te @dirrmtry share/locale/sr@latin/LC_MESSAGES @@ -211,6 +129,8 @@ share/locale/zh_TW/LC_MESSAGES/gnome-keyring.mo @dirrmtry share/locale/mg @dirrmtry share/locale/mai/LC_MESSAGES @dirrmtry share/locale/mai +@dirrmtry share/locale/km/LC_MESSAGES +@dirrmtry share/locale/km @dirrmtry share/locale/en@shaw/LC_MESSAGES @dirrmtry share/locale/en@shaw @dirrmtry share/locale/dz/LC_MESSAGES @@ -225,3 +145,6 @@ share/locale/zh_TW/LC_MESSAGES/gnome-keyring.mo @dirrmtry share/locale/ast @dirrmtry share/locale/as/LC_MESSAGES @dirrmtry share/locale/as +@dirrmtry lib/pkcs11 +@dirrm lib/gnome-keyring/devel +@dirrm lib/gnome-keyring |