23245305 Move gnome-keyring to Userland and update to 3.18.3
authorAlan Coopersmith <Alan.Coopersmith@Oracle.COM>
Fri, 28 Oct 2016 14:57:58 -0700
changeset 7196 b0e313a2264a
parent 7195 18231b3e4324
child 7197 5001d53d2e77
23245305 Move gnome-keyring to Userland and update to 3.18.3 PSARC/2016/311 GNOME Security Libraries
components/gnome/gnome-keyring/Makefile
components/gnome/gnome-keyring/gnome-keyring.p5m
components/gnome/gnome-keyring/patches/01-pam-configure-and-includes.patch
components/gnome/gnome-keyring/patches/02-pam-defines.patch
components/gnome/gnome-keyring/patches/03-memrchr.patch
components/meta-packages/incorporation-cache
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/gnome/gnome-keyring/Makefile	Fri Oct 28 14:57:58 2016 -0700
@@ -0,0 +1,70 @@
+#
+# CDDL HEADER START
+#
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License (the "License").
+# You may not use this file except in compliance with the License.
+#
+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+# or http://www.opensolaris.org/os/licensing.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+#
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+#
+# CDDL HEADER END
+#
+# Copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights reserved.
+#
+
+BUILD_BITS=             64_and_32
+COMPILER=		gcc
+include ../../../make-rules/shared-macros.mk
+
+COMPONENT_NAME=		gnome-keyring
+COMPONENT_VERSION=	3.18.3
+COMPONENT_PROJECT_URL=	https://wiki.gnome.org/Projects/GnomeKeyring
+COMPONENT_ARCHIVE_HASH= \
+	sha256:3f670dd61789bdda75b9c9e31e289bf7b1d23ba012433474790081ba7dc0ed98
+COMPONENT_BUGDB=	gnome/security
+
+TPNO=			25824
+
+TEST_TARGET = $(NO_TESTS)
+
+# Needs updated glib2, not available on S11.
+include $(WS_MAKE_RULES)/no-evaluation.mk
+
+include $(WS_MAKE_RULES)/gnome-component.mk
+
+PAM_MODULE_DIR.32 = $(USRLIBDIR)/security
+PAM_MODULE_DIR.64 = $(PAM_MODULE_DIR.32)/$(MACH64)
+PAM_MODULE_DIR = $(PAM_MODULE_DIR.$(BITS))
+
+CONFIGURE_OPTIONS += --disable-selinux
+CONFIGURE_OPTIONS += --disable-static
+CONFIGURE_OPTIONS += --enable-gpg-agent
+CONFIGURE_OPTIONS += --enable-pam
+CONFIGURE_OPTIONS += --enable-shared
+CONFIGURE_OPTIONS += --enable-ssh-agent
+CONFIGURE_OPTIONS += --with-pam-dir=$(PAM_MODULE_DIR)
+CONFIGURE_OPTIONS += --with-pic
+# Linux-specific capabilities support.
+CONFIGURE_OPTIONS += --without-libcap-ng
+
+# Required due to patches.
+COMPONENT_PREP_ACTION += (cd $(@D); autoreconf -fiv);
+
+CONFIGURE_ENV += PATH=$(GNUBIN):$(PATH)
+
+REQUIRED_PACKAGES += crypto/gnupg
+REQUIRED_PACKAGES += library/glib2
+REQUIRED_PACKAGES += library/gnome/gcr
+REQUIRED_PACKAGES += network/ssh
+REQUIRED_PACKAGES += system/library/libdbus
+REQUIRED_PACKAGES += system/library/security/libgcrypt
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/gnome/gnome-keyring/gnome-keyring.p5m	Fri Oct 28 14:57:58 2016 -0700
@@ -0,0 +1,156 @@
+#
+# CDDL HEADER START
+#
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License (the "License").
+# You may not use this file except in compliance with the License.
+#
+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+# or http://www.opensolaris.org/os/licensing.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+#
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+#
+# CDDL HEADER END
+#
+
+#
+# Copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights reserved.
+#
+
+<transform file path=usr.*/man/.+ -> \
+    default mangler.man.stability "pass-through volatile">
+set name=pkg.fmri \
+    value=pkg:/gnome/gnome-keyring@$(IPS_COMPONENT_VERSION),$(BUILD_VERSION)
+set name=pkg.summary \
+    value="A collection of components in GNOME for storing secrets, passwords, keys, and certificates"
+set name=pkg.description \
+    value="GNOME Keyring is a collection of components in GNOME that store secrets, passwords, keys, certificates and make them available to applications.  GNOME Keyring is integrated with the user's login, so that their secret storage can be unlocked when the user logins into their session.  GNOME Keyring is based around a standard called PKCS#11, which is a standard way for applications to manage certificates and keys on smart cards or secure storage. "
+set name=com.oracle.info.description value=$(COMPONENT_NAME)
+set name=com.oracle.info.tpno value=$(TPNO)
+set name=info.classification \
+    value="org.opensolaris.category.2008:Desktop (GNOME)/Sessions"
+set name=info.source-url value=$(COMPONENT_ARCHIVE_URL)
+set name=info.upstream-url value=$(COMPONENT_PROJECT_URL)
+set name=org.opensolaris.arc-caseid value=PSARC/2016/311
+set name=org.opensolaris.consolidation value=$(CONSOLIDATION)
+file path=etc/xdg/autostart/gnome-keyring-pkcs11.desktop
+file path=etc/xdg/autostart/gnome-keyring-secrets.desktop
+file path=etc/xdg/autostart/gnome-keyring-ssh.desktop
+link path=usr/bin/gnome-keyring target=gnome-keyring-3
+file path=usr/bin/gnome-keyring-3
+file path=usr/bin/gnome-keyring-daemon
+file path=usr/lib/$(MACH64)/gnome-keyring/devel/gkm-gnome2-store-standalone.so
+file path=usr/lib/$(MACH64)/gnome-keyring/devel/gkm-secret-store-standalone.so
+file path=usr/lib/$(MACH64)/gnome-keyring/devel/gkm-ssh-store-standalone.so
+file path=usr/lib/$(MACH64)/gnome-keyring/devel/gkm-xdg-store-standalone.so
+file path=usr/lib/gnome-keyring/devel/gkm-gnome2-store-standalone.so
+file path=usr/lib/gnome-keyring/devel/gkm-secret-store-standalone.so
+file path=usr/lib/gnome-keyring/devel/gkm-ssh-store-standalone.so
+file path=usr/lib/gnome-keyring/devel/gkm-xdg-store-standalone.so
+file path=usr/lib/security/$(MACH64)/gnome-keyring-pkcs11.so
+file path=usr/lib/security/$(MACH64)/pam_gnome_keyring.so
+file path=usr/lib/security/gnome-keyring-pkcs11.so
+file path=usr/lib/security/pam_gnome_keyring.so
+file path=usr/share/GConf/gsettings/org.gnome.crypto.cache.convert
+file path=usr/share/dbus-1/services/org.freedesktop.secrets.service
+file path=usr/share/dbus-1/services/org.gnome.keyring.service
+file path=usr/share/glib-2.0/schemas/org.gnome.crypto.cache.gschema.xml
+file path=usr/share/locale/af/LC_MESSAGES/gnome-keyring.mo
+file path=usr/share/locale/ar/LC_MESSAGES/gnome-keyring.mo
+file path=usr/share/locale/as/LC_MESSAGES/gnome-keyring.mo
+file path=usr/share/locale/ast/LC_MESSAGES/gnome-keyring.mo
+file path=usr/share/locale/az/LC_MESSAGES/gnome-keyring.mo
+file path=usr/share/locale/be/LC_MESSAGES/gnome-keyring.mo
+file path=usr/share/locale/be@latin/LC_MESSAGES/gnome-keyring.mo
+file path=usr/share/locale/bg/LC_MESSAGES/gnome-keyring.mo
+file path=usr/share/locale/bn/LC_MESSAGES/gnome-keyring.mo
+file path=usr/share/locale/bn_IN/LC_MESSAGES/gnome-keyring.mo
+file path=usr/share/locale/bs/LC_MESSAGES/gnome-keyring.mo
+file path=usr/share/locale/ca/LC_MESSAGES/gnome-keyring.mo
+file path=usr/share/locale/ca@valencia/LC_MESSAGES/gnome-keyring.mo
+file path=usr/share/locale/cs/LC_MESSAGES/gnome-keyring.mo
+file path=usr/share/locale/cy/LC_MESSAGES/gnome-keyring.mo
+file path=usr/share/locale/da/LC_MESSAGES/gnome-keyring.mo
+file path=usr/share/locale/de/LC_MESSAGES/gnome-keyring.mo
+file path=usr/share/locale/dz/LC_MESSAGES/gnome-keyring.mo
+file path=usr/share/locale/el/LC_MESSAGES/gnome-keyring.mo
+file path=usr/share/locale/en@shaw/LC_MESSAGES/gnome-keyring.mo
+file path=usr/share/locale/en_CA/LC_MESSAGES/gnome-keyring.mo
+file path=usr/share/locale/en_GB/LC_MESSAGES/gnome-keyring.mo
+file path=usr/share/locale/eo/LC_MESSAGES/gnome-keyring.mo
+file path=usr/share/locale/es/LC_MESSAGES/gnome-keyring.mo
+file path=usr/share/locale/et/LC_MESSAGES/gnome-keyring.mo
+file path=usr/share/locale/eu/LC_MESSAGES/gnome-keyring.mo
+file path=usr/share/locale/fa/LC_MESSAGES/gnome-keyring.mo
+file path=usr/share/locale/fi/LC_MESSAGES/gnome-keyring.mo
+file path=usr/share/locale/fr/LC_MESSAGES/gnome-keyring.mo
+file path=usr/share/locale/ga/LC_MESSAGES/gnome-keyring.mo
+file path=usr/share/locale/gd/LC_MESSAGES/gnome-keyring.mo
+file path=usr/share/locale/gl/LC_MESSAGES/gnome-keyring.mo
+file path=usr/share/locale/gu/LC_MESSAGES/gnome-keyring.mo
+file path=usr/share/locale/he/LC_MESSAGES/gnome-keyring.mo
+file path=usr/share/locale/hi/LC_MESSAGES/gnome-keyring.mo
+file path=usr/share/locale/hr/LC_MESSAGES/gnome-keyring.mo
+file path=usr/share/locale/hu/LC_MESSAGES/gnome-keyring.mo
+file path=usr/share/locale/id/LC_MESSAGES/gnome-keyring.mo
+file path=usr/share/locale/is/LC_MESSAGES/gnome-keyring.mo
+file path=usr/share/locale/it/LC_MESSAGES/gnome-keyring.mo
+file path=usr/share/locale/ja/LC_MESSAGES/gnome-keyring.mo
+file path=usr/share/locale/ka/LC_MESSAGES/gnome-keyring.mo
+file path=usr/share/locale/kk/LC_MESSAGES/gnome-keyring.mo
+file path=usr/share/locale/km/LC_MESSAGES/gnome-keyring.mo
+file path=usr/share/locale/kn/LC_MESSAGES/gnome-keyring.mo
+file path=usr/share/locale/ko/LC_MESSAGES/gnome-keyring.mo
+file path=usr/share/locale/lt/LC_MESSAGES/gnome-keyring.mo
+file path=usr/share/locale/lv/LC_MESSAGES/gnome-keyring.mo
+file path=usr/share/locale/mai/LC_MESSAGES/gnome-keyring.mo
+file path=usr/share/locale/mg/LC_MESSAGES/gnome-keyring.mo
+file path=usr/share/locale/mk/LC_MESSAGES/gnome-keyring.mo
+file path=usr/share/locale/ml/LC_MESSAGES/gnome-keyring.mo
+file path=usr/share/locale/mn/LC_MESSAGES/gnome-keyring.mo
+file path=usr/share/locale/mr/LC_MESSAGES/gnome-keyring.mo
+file path=usr/share/locale/ms/LC_MESSAGES/gnome-keyring.mo
+file path=usr/share/locale/nb/LC_MESSAGES/gnome-keyring.mo
+file path=usr/share/locale/ne/LC_MESSAGES/gnome-keyring.mo
+file path=usr/share/locale/nl/LC_MESSAGES/gnome-keyring.mo
+file path=usr/share/locale/nn/LC_MESSAGES/gnome-keyring.mo
+file path=usr/share/locale/oc/LC_MESSAGES/gnome-keyring.mo
+file path=usr/share/locale/or/LC_MESSAGES/gnome-keyring.mo
+file path=usr/share/locale/pa/LC_MESSAGES/gnome-keyring.mo
+file path=usr/share/locale/pl/LC_MESSAGES/gnome-keyring.mo
+file path=usr/share/locale/pt/LC_MESSAGES/gnome-keyring.mo
+file path=usr/share/locale/pt_BR/LC_MESSAGES/gnome-keyring.mo
+file path=usr/share/locale/ro/LC_MESSAGES/gnome-keyring.mo
+file path=usr/share/locale/ru/LC_MESSAGES/gnome-keyring.mo
+file path=usr/share/locale/rw/LC_MESSAGES/gnome-keyring.mo
+file path=usr/share/locale/si/LC_MESSAGES/gnome-keyring.mo
+file path=usr/share/locale/sk/LC_MESSAGES/gnome-keyring.mo
+file path=usr/share/locale/sl/LC_MESSAGES/gnome-keyring.mo
+file path=usr/share/locale/sq/LC_MESSAGES/gnome-keyring.mo
+file path=usr/share/locale/sr/LC_MESSAGES/gnome-keyring.mo
+file path=usr/share/locale/sr@latin/LC_MESSAGES/gnome-keyring.mo
+file path=usr/share/locale/sv/LC_MESSAGES/gnome-keyring.mo
+file path=usr/share/locale/ta/LC_MESSAGES/gnome-keyring.mo
+file path=usr/share/locale/te/LC_MESSAGES/gnome-keyring.mo
+file path=usr/share/locale/tg/LC_MESSAGES/gnome-keyring.mo
+file path=usr/share/locale/th/LC_MESSAGES/gnome-keyring.mo
+file path=usr/share/locale/tr/LC_MESSAGES/gnome-keyring.mo
+file path=usr/share/locale/ug/LC_MESSAGES/gnome-keyring.mo
+file path=usr/share/locale/uk/LC_MESSAGES/gnome-keyring.mo
+file path=usr/share/locale/vi/LC_MESSAGES/gnome-keyring.mo
+file path=usr/share/locale/xh/LC_MESSAGES/gnome-keyring.mo
+file path=usr/share/locale/zh_CN/LC_MESSAGES/gnome-keyring.mo
+file path=usr/share/locale/zh_HK/LC_MESSAGES/gnome-keyring.mo
+file path=usr/share/locale/zh_TW/LC_MESSAGES/gnome-keyring.mo
+file path=usr/share/man/man1/gnome-keyring-3.1
+file path=usr/share/man/man1/gnome-keyring-daemon.1
+file path=usr/share/man/man1/gnome-keyring.1
+file path=usr/share/p11-kit/modules/gnome-keyring.module
+license COPYING license=GPLv2
+license COPYING.LIB license=LGPLv2.1
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/gnome/gnome-keyring/patches/01-pam-configure-and-includes.patch	Fri Oct 28 14:57:58 2016 -0700
@@ -0,0 +1,71 @@
+On Solaris, pam_appl.h must be included to use pam_modules.h.
+Additionally, for platforms that have the pam header files in a different
+location, the include paths need to be based on the result of configure.
+
+Need to file upstream bug
+
+--- gnome-keyring-3.16.0/configure.ac	2015-04-08 05:09:11.000000000 -0700
++++ gnome-keyring-3.16.0/configure.ac	2015-07-06 13:41:06.760980131 -0700
+@@ -254,7 +254,15 @@
+ 
+ pam_status="no"
+ if test "$enable_pam" != "no"; then
+-	AC_CHECK_HEADERS(security/pam_modules.h pam/pam_modules.h, [have_pam=yes; break], have_pam=no)
++	AC_CHECK_HEADERS(security/pam_appl.h pam/pam_appl.h)
++	AC_CHECK_HEADERS(security/pam_modules.h pam/pam_modules.h, [have_pam=yes; break], have_pam=no,
++[#ifdef HAVE_SECURITY_PAM_APPL_H
++#include <security/pam_appl.h>
++#endif
++#ifdef HAVE_PAM_PAM_APPL_H
++#include <pam/pam_appl.h>
++#endif
++])
+ 	if test "$enable_pam" = "yes" -a "$have_pam" = "no"; then
+ 		AC_MSG_ERROR(The PAM headers are missing)
+ 	elif test "$have_pam" = "yes"; then
+--- gnome-keyring-3.16.0/pam/gkr-pam-module.c	2014-09-23 00:45:13.000000000 -0700
++++ gnome-keyring-3.16.0/pam/gkr-pam-module.c	2015-07-06 13:46:40.611562409 -0700
+@@ -32,8 +32,13 @@
+ 
+ #include "daemon/control/gkd-control-codes.h"
+ 
++#ifdef HAVE_PAM_PAM_APPL_H
++#include <pam/pam_appl.h>
++#include <pam/pam_modules.h>
++#else
+ #include <security/pam_appl.h>
+ #include <security/pam_modules.h>
++#endif
+ 
+ #include <sys/types.h>
+ #include <sys/stat.h>
+--- gnome-keyring-3.16.0/pam/mock-pam.c	2014-09-23 00:45:13.000000000 -0700
++++ gnome-keyring-3.16.0/pam/mock-pam.c	2015-07-06 13:46:19.879319092 -0700
+@@ -20,8 +20,13 @@
+ 
+ #include "config.h"
+ 
++#ifdef HAVE_PAM_PAM_APPL_H
++#include <pam/pam_appl.h>
++#include <pam/pam_modules.h>
++#else
+ #include <security/pam_appl.h>
+ #include <security/pam_modules.h>
++#endif
+ 
+ #include <stdlib.h>
+ #include <string.h>
+--- gnome-keyring-3.16.0/pam/test-pam.c	2014-10-14 08:55:45.000000000 -0700
++++ gnome-keyring-3.16.0/pam/test-pam.c	2015-07-06 13:46:16.817220995 -0700
+@@ -26,7 +26,11 @@
+ #include "egg/egg-testing.h"
+ #include "egg/egg-secure-memory.h"
+ 
++#ifdef HAVE_PAM_PAM_APPL_H
++#include <pam/pam_appl.h>
++#else
+ #include <security/pam_appl.h>
++#endif
+ 
+ #include <glib.h>
+ #include <glib/gstdio.h>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/gnome/gnome-keyring/patches/02-pam-defines.patch	Fri Oct 28 14:57:58 2016 -0700
@@ -0,0 +1,24 @@
+On Solaris, pam modules are always dynamic, but use the #define check that
+gnome-keyring does in gkr-pam-module.c for consistency.
+
+Solaris should define PAM_EXTERN by default in appropriate pam header files
+just as Linux/BSD do:
+24969227 Add PAM_EXTERN for Linux/BSD module source compatibility
+
+--- gnome-keyring-3.16.0/pam/mock-pam.c	2015-07-06 14:02:14.786683308 -0700
++++ gnome-keyring-3.16.0/pam/mock-pam.c	2015-07-06 14:03:45.431087928 -0700
+@@ -31,6 +31,14 @@
+ #include <stdlib.h>
+ #include <string.h>
+ 
++#ifndef PAM_EXTERN
++#ifdef PAM_STATIC
++#define PAM_EXTERN static
++#else
++#define PAM_EXTERN extern
++#endif
++#endif
++
+ static int
+ prompt_password (pam_handle_t *ph,
+                  const char *prompt,
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/gnome/gnome-keyring/patches/03-memrchr.patch	Fri Oct 28 14:57:58 2016 -0700
@@ -0,0 +1,117 @@
+memrchr compatibility stub taken from sudo.   Workaround for:
+21158555 - solaris should provide memrchr for bsd / linux compatibility
+
+--- gnome-keyring-3.16.0/configure.ac	2015-04-06 11:28:46.000000000 -0700
++++ gnome-keyring-3.16.0/configure.ac	2015-05-27 16:59:15.748737526 -0700
+@@ -147,6 +147,12 @@
+ AC_CHECK_FUNCS(flock, AC_DEFINE(HAVE_FLOCK,1,[Have flock]))
+ 
+ # --------------------------------------------------------------------
++# Check for memrchr
++#
++
++AC_CHECK_FUNCS(memrchr, AC_DEFINE(HAVE_MEMRCHR,1,[Have memrchr]))
++
++# --------------------------------------------------------------------
+ # Check for timegm
+ #
+ 
+--- gnome-keyring-3.16.0/egg/egg-armor.c	2015-04-06 11:28:46.000000000 -0700
++++ gnome-keyring-3.16.0/egg/egg-armor.c	2015-05-27 16:59:15.748737526 -0700
+@@ -31,7 +31,7 @@
+ #include <glib.h>
+ 
+ #include <ctype.h>
+-#include <string.h>
++#include "egg-memrchr.h"
+ 
+ /*
+  * Armor looks like:
+--- gnome-keyring-3.16.0/egg/egg-memrchr.c	1969-12-31 16:00:00.000000000 -0800
++++ gnome-keyring-3.16.0/egg/egg-memrchr.c	2015-05-27 16:56:33.358969153 -0700
+@@ -0,0 +1,42 @@
++/*
++ * Copyright (c) 2007, 2010-2011, 2013
++ *	Todd C. Miller <[email protected]>
++ *
++ * Permission to use, copy, modify, and distribute this software for any
++ * purpose with or without fee is hereby granted, provided that the above
++ * copyright notice and this permission notice appear in all copies.
++ *
++ * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
++ * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
++ * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
++ * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
++ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
++ * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
++ * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
++ */
++
++#include <config.h>
++
++#ifndef HAVE_MEMRCHR
++
++#include <sys/types.h>
++
++/*
++ * Reverse memchr()
++ * Find the last occurrence of 'c' in the buffer 's' of size 'n'.
++ */
++void *
++memrchr(const void *s, int c, size_t n)
++{
++    const unsigned char *cp;
++
++    if (n != 0) {
++	cp = (unsigned char *)s + n;
++	do {
++	    if (*(--cp) == (unsigned char)c)
++		return (void *)cp;
++	} while (--n != 0);
++    }
++    return (void *)0;
++}
++#endif /* HAVE_MEMRCHR */
+--- gnome-keyring-3.16.0/egg/egg-memrchr.h	1969-12-31 16:00:00.000000000 -0800
++++ gnome-keyring-3.16.0/egg/egg-memrchr.h	2015-05-27 16:57:08.717867655 -0700
+@@ -0,0 +1,30 @@
++/*
++ * Copyright (c) 2007, 2010-2011, 2013
++ *	Todd C. Miller <[email protected]>
++ * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
++ *
++ * Permission to use, copy, modify, and distribute this software for any
++ * purpose with or without fee is hereby granted, provided that the above
++ * copyright notice and this permission notice appear in all copies.
++ *
++ * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
++ * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
++ * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
++ * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
++ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
++ * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
++ * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
++ */
++
++#ifndef EGG_MEMRCHR_H_
++#define EGG_MEMRCHR_H_
++
++#include <string.h>
++
++#ifndef HAVE_MEMRCHR
++
++void *      memrchr   (const void *s, int c, size_t n);
++
++#endif
++
++#endif /* EGG_MEMRCHR_H_ */
+--- gnome-keyring-3.16.0/egg/Makefile.am	2015-04-06 11:28:46.000000000 -0700
++++ gnome-keyring-3.16.0/egg/Makefile.am	2015-05-27 16:58:43.053533180 -0700
+@@ -27,6 +27,7 @@
+ 	egg/egg-hex.c egg/egg-hex.h \
+ 	egg/egg-hkdf.c egg/egg-hkdf.h \
+ 	egg/egg-libgcrypt.c egg/egg-libgcrypt.h \
++	egg/egg-memrchr.c egg/egg-memrchr.h \
+ 	egg/egg-oid.c egg/egg-oid.h \
+ 	egg/egg-padding.c egg/egg-padding.h \
+ 	egg/egg-openssl.c egg/egg-openssl.h \
--- a/components/meta-packages/incorporation-cache	Tue Oct 11 21:00:10 2016 -0700
+++ b/components/meta-packages/incorporation-cache	Fri Oct 28 14:57:58 2016 -0700
@@ -83,7 +83,6 @@
 consolidation/userland/userland-incorporation:gnome/[email protected]
 consolidation/userland/userland-incorporation:gnome/[email protected]
 consolidation/userland/userland-incorporation:gnome/[email protected]
-consolidation/userland/userland-incorporation:gnome/[email protected]
 consolidation/userland/userland-incorporation:gnome/[email protected]
 consolidation/userland/userland-incorporation:gnome/[email protected]
 consolidation/userland/userland-incorporation:gnome/security/seahorse/[email protected]