gmock, gtest: upgraded packages to upstream
[This is a reland of a previous change that got reverted due
to a python ebuild bug which has since been fixed.]
Upgraded dev-cpp/gmock to version 1.6.0 on amd64, arm, x86
Upgraded dev-cpp/gtest to version 1.6.0-r1 on amd64, arm, x86
gmock includes a patch for a mutex deadlock during destruction:
https://code.google.com/p/googlemock/issues/detail?id=79
BUG=chromium:211445
TEST=cbuildbot --remote -g {x86,amd64,arm}-generic-full
CQ-DEPEND=CL:47572
CQ-DEPEND=CL:47573
Change-Id: I33c576dab5285322a677802309115aa4822bdc86
Reviewed-on: https://gerrit.chromium.org/gerrit/47574
Reviewed-by: Mike Frysinger <vapier@chromium.org>
Commit-Queue: Gaurav Shah <gauravsh@chromium.org>
Tested-by: Gaurav Shah <gauravsh@chromium.org>
diff --git a/dev-cpp/gmock/Manifest b/dev-cpp/gmock/Manifest
index b7128de..27fdce4 100644
--- a/dev-cpp/gmock/Manifest
+++ b/dev-cpp/gmock/Manifest
@@ -1 +1 @@
-DIST gmock-1.4.0.tar.bz2 946373 RMD160 9d43853f4abc650b8d8fe9984a6b4baddeea08ce SHA1 ecc8beec7004f36d8d4c0af5237381db4d640126 SHA256 21d37c154a7b8d7a8562b9dde82db7db0a6c188b985c4a18ff3413daae8caa8c
+DIST gmock-1.6.0.zip 2053682 RMD160 e08ea01a82e119591eef9bab69629d0af247784f SHA1 4702e98af194d320a915f1e6d2532a32b280819e SHA256 341ad07c31c619ba32c88c2265bc23693da1df062f47f146a7ed340f646d82b7
diff --git a/dev-cpp/gmock/files/1.6.0-fix_mutex.patch b/dev-cpp/gmock/files/1.6.0-fix_mutex.patch
new file mode 100644
index 0000000..af5eb48
--- /dev/null
+++ b/dev-cpp/gmock/files/1.6.0-fix_mutex.patch
@@ -0,0 +1,147 @@
+Index: test/gmock-spec-builders_test.cc
+===================================================================
+--- test/gmock-spec-builders_test.cc (revision 402)
++++ test/gmock-spec-builders_test.cc (revision 403)
+@@ -88,13 +88,14 @@
+ using testing::Ne;
+ using testing::Return;
+ using testing::Sequence;
++using testing::SetArgPointee;
+ using testing::internal::ExpectationTester;
+ using testing::internal::FormatFileLocation;
+-using testing::internal::g_gmock_mutex;
+ using testing::internal::kErrorVerbosity;
+ using testing::internal::kInfoVerbosity;
+ using testing::internal::kWarningVerbosity;
+ using testing::internal::String;
++using testing::internal::linked_ptr;
+ using testing::internal::string;
+
+ #if GTEST_HAS_STREAM_REDIRECTION
+@@ -157,6 +158,16 @@
+ GTEST_DISALLOW_COPY_AND_ASSIGN_(MockB);
+ };
+
++class ReferenceHoldingMock {
++ public:
++ ReferenceHoldingMock() {}
++
++ MOCK_METHOD1(AcceptReference, void(linked_ptr<MockA>*));
++
++ private:
++ GTEST_DISALLOW_COPY_AND_ASSIGN_(ReferenceHoldingMock);
++};
++
+ // Tests that EXPECT_CALL and ON_CALL compile in a presence of macro
+ // redefining a mock method name. This could happen, for example, when
+ // the tested code #includes Win32 API headers which define many APIs
+@@ -2439,6 +2450,46 @@
+ EXPECT_EQ(2, b1.DoB(0));
+ }
+
++TEST(VerifyAndClearTest,
++ DestroyingChainedMocksDoesNotDeadlockThroughExpectations) {
++ linked_ptr<MockA> a(new MockA);
++ ReferenceHoldingMock test_mock;
++
++ // EXPECT_CALL stores a reference to a inside test_mock.
++ EXPECT_CALL(test_mock, AcceptReference(_))
++ .WillRepeatedly(SetArgPointee<0>(a));
++
++ // Throw away the reference to the mock that we have in a. After this, the
++ // only reference to it is stored by test_mock.
++ a.reset();
++
++ // When test_mock goes out of scope, it destroys the last remaining reference
++ // to the mock object originally pointed to by a. This will cause the MockA
++ // destructor to be called from inside the ReferenceHoldingMock destructor.
++ // The state of all mocks is protected by a single global lock, but there
++ // should be no deadlock.
++}
++
++TEST(VerifyAndClearTest,
++ DestroyingChainedMocksDoesNotDeadlockThroughDefaultAction) {
++ linked_ptr<MockA> a(new MockA);
++ ReferenceHoldingMock test_mock;
++
++ // ON_CALL stores a reference to a inside test_mock.
++ ON_CALL(test_mock, AcceptReference(_))
++ .WillByDefault(SetArgPointee<0>(a));
++
++ // Throw away the reference to the mock that we have in a. After this, the
++ // only reference to it is stored by test_mock.
++ a.reset();
++
++ // When test_mock goes out of scope, it destroys the last remaining reference
++ // to the mock object originally pointed to by a. This will cause the MockA
++ // destructor to be called from inside the ReferenceHoldingMock destructor.
++ // The state of all mocks is protected by a single global lock, but there
++ // should be no deadlock.
++}
++
+ // Tests that a mock function's action can call a mock function
+ // (either the same function or a different one) either as an explicit
+ // action or as a default action without causing a dead lock. It
+Index: include/gmock/gmock-spec-builders.h
+===================================================================
+--- include/gmock/gmock-spec-builders.h (revision 402)
++++ include/gmock/gmock-spec-builders.h (revision 403)
+@@ -1475,12 +1475,27 @@
+ virtual void ClearDefaultActionsLocked()
+ GTEST_EXCLUSIVE_LOCK_REQUIRED_(g_gmock_mutex) {
+ g_gmock_mutex.AssertHeld();
++
++ // Deleting our default actions may trigger other mock objects to be
++ // deleted, for example if an action contains a reference counted smart
++ // pointer to that mock object, and that is the last reference. So if we
++ // delete our actions within the context of the global mutex we may deadlock
++ // when this method is called again. Instead, make a copy of the set of
++ // actions to delete, clear our set within the mutex, and then delete the
++ // actions outside of the mutex.
++ UntypedOnCallSpecs specs_to_delete;
++ untyped_on_call_specs_.swap(specs_to_delete);
++
++ g_gmock_mutex.Unlock();
+ for (UntypedOnCallSpecs::const_iterator it =
+- untyped_on_call_specs_.begin();
+- it != untyped_on_call_specs_.end(); ++it) {
++ specs_to_delete.begin();
++ it != specs_to_delete.end(); ++it) {
+ delete static_cast<const OnCallSpec<F>*>(*it);
+ }
+- untyped_on_call_specs_.clear();
++
++ // Lock the mutex again, since the caller expects it to be locked when we
++ // return.
++ g_gmock_mutex.Lock();
+ }
+
+ protected:
+Index: src/gmock-spec-builders.cc
+===================================================================
+--- src/gmock-spec-builders.cc (revision 402)
++++ src/gmock-spec-builders.cc (revision 403)
+@@ -480,7 +480,21 @@
+ untyped_expectation->line(), ss.str());
+ }
+ }
+- untyped_expectations_.clear();
++
++ // Deleting our expectations may trigger other mock objects to be deleted, for
++ // example if an action contains a reference counted smart pointer to that
++ // mock object, and that is the last reference. So if we delete our
++ // expectations within the context of the global mutex we may deadlock when
++ // this method is called again. Instead, make a copy of the set of
++ // expectations to delete, clear our set within the mutex, and then clear the
++ // copied set outside of it.
++ UntypedExpectations expectations_to_delete;
++ untyped_expectations_.swap(expectations_to_delete);
++
++ g_gmock_mutex.Unlock();
++ expectations_to_delete.clear();
++ g_gmock_mutex.Lock();
++
+ return expectations_met;
+ }
+
+
diff --git a/dev-cpp/gmock/gmock-1.4.0.ebuild b/dev-cpp/gmock/gmock-1.4.0.ebuild
deleted file mode 100644
index 9d2b61d..0000000
--- a/dev-cpp/gmock/gmock-1.4.0.ebuild
+++ /dev/null
@@ -1,40 +0,0 @@
-# Copyright 1999-2012 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/dev-cpp/gmock/gmock-1.4.0.ebuild,v 1.6 2012/08/28 21:52:08 vapier Exp $
-
-EAPI="4"
-
-inherit libtool eutils
-
-DESCRIPTION="Google's C++ mocking framework"
-HOMEPAGE="http://code.google.com/p/googlemock/"
-SRC_URI="http://googlemock.googlecode.com/files/${P}.tar.bz2"
-
-LICENSE="BSD"
-SLOT="0"
-KEYWORDS="amd64 arm x86"
-IUSE="static-libs"
-
-RDEPEND=">=dev-cpp/gtest-${PV}"
-DEPEND="${RDEPEND}"
-
-src_unpack() {
- default
- # make sure we always use the system one
- rm -r "${S}"/gtest/Makefile* || die
-}
-
-src_prepare() {
- epatch "${FILESDIR}"/${P}-gcc-4.7.patch
- epatch "${FILESDIR}"/${P}-more-gcc-4.7.patch
- elibtoolize
-}
-
-src_configure() {
- econf $(use_enable static-libs static)
-}
-
-src_install() {
- default
- use static-libs || find "${ED}"/usr -name '*.la' -delete
-}
diff --git a/dev-cpp/gmock/gmock-1.6.0.ebuild b/dev-cpp/gmock/gmock-1.6.0.ebuild
new file mode 100644
index 0000000..ce7fa19
--- /dev/null
+++ b/dev-cpp/gmock/gmock-1.6.0.ebuild
@@ -0,0 +1,44 @@
+# Copyright 1999-2012 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/dev-cpp/gmock/gmock-1.6.0.ebuild,v 1.6 2012/08/24 09:23:27 xmw Exp $
+
+EAPI="4"
+
+inherit eutils libtool
+
+DESCRIPTION="Google's C++ mocking framework"
+HOMEPAGE="http://code.google.com/p/googlemock/"
+SRC_URI="http://googlemock.googlecode.com/files/${P}.zip"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="amd64 arm ~mips ppc ~ppc64 x86"
+IUSE="static-libs"
+
+RDEPEND="=dev-cpp/gtest-${PV}*"
+DEPEND="app-arch/unzip
+ ${RDEPEND}"
+
+src_unpack() {
+ default
+ # make sure we always use the system one
+ rm -r "${S}"/gtest/{Makefile,configure}* || die
+}
+
+src_prepare() {
+ sed -i -r \
+ -e '/^install-(data|exec)-local:/s|^.*$|&\ndisabled-&|' \
+ Makefile.in
+ epatch "${FILESDIR}/1.6.0-fix_mutex.patch" || die
+ elibtoolize
+}
+
+src_configure() {
+ econf $(use_enable static-libs static)
+}
+
+src_install() {
+ default
+ dobin scripts/gmock-config
+ use static-libs || find "${D}" -name '*.la' -delete
+}
diff --git a/dev-cpp/gtest/Manifest b/dev-cpp/gtest/Manifest
index 2f964b9..f9a90f3 100644
--- a/dev-cpp/gtest/Manifest
+++ b/dev-cpp/gtest/Manifest
@@ -1 +1 @@
-DIST gtest-1.4.0.tar.bz2 525425 RMD160 2688f9e4c68af10a5974af91c0fe2dd551cf72c7 SHA1 d26e1a67ec08a9d6167ecf77c61961c469f448b2 SHA256 c848158f1fca599d6339b9f00e3fdee6153dc518a23c793ccf757f8aa4ad17e9
+DIST gtest-1.6.0.zip 1121697 RMD160 ae4be5325f0cd83fea9902aa8674915ef2dcf8b4 SHA1 00d6be170eb9fc3b2198ffdcb1f1d6ba7fc6e621 SHA256 5ec97df8e75b4ee796604e74716d1b50582beba22c5502edd055a7e67a3965d8
diff --git a/dev-cpp/gtest/files/configure-fix-pthread-linking.patch b/dev-cpp/gtest/files/configure-fix-pthread-linking.patch
new file mode 100644
index 0000000..75e5219
--- /dev/null
+++ b/dev-cpp/gtest/files/configure-fix-pthread-linking.patch
@@ -0,0 +1,93 @@
+From fb71154012e634a5e780e93af5434bcdafaf2b24 Mon Sep 17 00:00:00 2001
+From: Justin Bronder <jsbronder@gmail.com>
+Date: Mon, 15 Oct 2012 17:25:07 -0400
+Subject: [PATCH] configure: fix pthread linking
+
+- Update the pthread check to make sure that we don't need -lpthread when
+compiling with -nostdlib.
+
+- Make sure that the necessary pthread library is passed to libtool.
+
+Fixes:
+
+$ ldd -r /usr/lib/libgtest.so
+ linux-vdso.so.1 (0x00007fffe7dff000)
+ libstdc++.so.6 => /usr/lib/gcc/x86_64-pc-linux-gnu/4.6.3/libstdc++.so.6 (0x00007fbe09a9f000)
+ libc.so.6 => /lib64/libc.so.6 (0x00007fbe096f7000)
+ libgcc_s.so.1 => /usr/lib/gcc/x86_64-pc-linux-gnu/4.6.3/libgcc_s.so.1 (0x00007fbe094e1000)
+ libm.so.6 => /lib64/libm.so.6 (0x00007fbe091ee000)
+ /lib64/ld-linux-x86-64.so.2 (0x00007fbe0a005000)
+undefined symbol: pthread_key_create (/usr/lib/libgtest.so)
+undefined symbol: pthread_getspecific (/usr/lib/libgtest.so)
+undefined symbol: pthread_key_delete (/usr/lib/libgtest.so)
+undefined symbol: pthread_setspecific (/usr/lib/libgtest.so)
+---
+ Makefile.am | 1 +
+ m4/acx_pthread.m4 | 39 ++++++++++++++++++++++++++++++++++++++-
+ 2 files changed, 39 insertions(+), 1 deletions(-)
+
+diff --git a/Makefile.am b/Makefile.am
+index cb350b7..db2606e 100644
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -181,6 +181,7 @@ endif
+ lib_LTLIBRARIES = lib/libgtest.la lib/libgtest_main.la
+
+ lib_libgtest_la_SOURCES = src/gtest-all.cc
++lib_libgtest_la_LIBADD = $(AM_LIBS)
+
+ pkginclude_HEADERS = \
+ include/gtest/gtest-death-test.h \
+diff --git a/m4/acx_pthread.m4 b/m4/acx_pthread.m4
+index 2cf20de..7fba4d9 100644
+--- a/m4/acx_pthread.m4
++++ b/m4/acx_pthread.m4
+@@ -339,7 +339,44 @@ if test "x$acx_pthread_ok" = xyes; then
+ # so it's not safe to assume that we may use pthreads
+ acx_pthread_ok=no
+ fi
+-
++
++ AC_MSG_CHECKING([whether what we have so far is sufficient with -nostdlib])
++ CFLAGS="-nostdlib $CFLAGS"
++ # we need c with nostdlib
++ LIBS="$LIBS -lc"
++ AC_TRY_LINK([#include <pthread.h>],
++ [pthread_t th; pthread_join(th, 0);
++ pthread_attr_init(0); pthread_cleanup_push(0, 0);
++ pthread_create(0,0,0,0); pthread_cleanup_pop(0); ],
++ [done=yes],[done=no])
++
++ if test "x$done" = xyes; then
++ AC_MSG_RESULT([yes])
++ else
++ AC_MSG_RESULT([no])
++ fi
++
++ if test x"$done" = xno; then
++ AC_MSG_CHECKING([whether -lpthread saves the day])
++ LIBS="-lpthread $LIBS"
++ AC_TRY_LINK([#include <pthread.h>],
++ [pthread_t th; pthread_join(th, 0);
++ pthread_attr_init(0); pthread_cleanup_push(0, 0);
++ pthread_create(0,0,0,0); pthread_cleanup_pop(0); ],
++ [done=yes],[done=no])
++
++ if test "x$done" = xyes; then
++ AC_MSG_RESULT([yes])
++ PTHREAD_LIBS="$PTHREAD_LIBS -lpthread"
++ else
++ AC_MSG_RESULT([no])
++ AC_MSG_WARN([Impossible to determine how to use pthreads with shared libraries and -nostdlib])
++ fi
++ fi
++
++ CFLAGS="$save_CFLAGS"
++ LIBS="$save_LIBS"
++ CC="$save_CC"
+ CFLAGS="$save_CFLAGS"
+ LIBS="$save_LIBS"
+ CC="$save_CC"
+--
+1.7.8.6
+
diff --git a/dev-cpp/gtest/files/gtest-1.4.0-asneeded.patch b/dev-cpp/gtest/files/gtest-1.4.0-asneeded.patch
deleted file mode 100644
index f8e7d00..0000000
--- a/dev-cpp/gtest/files/gtest-1.4.0-asneeded.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -Naur gtest-1.4.0.orig/Makefile.am gtest-1.4.0/Makefile.am
---- gtest-1.4.0.orig/Makefile.am 2009-10-02 16:04:30.000000000 +0900
-+++ gtest-1.4.0/Makefile.am 2010-01-20 16:52:34.000000000 +0900
-@@ -305,7 +305,7 @@
- TESTS += test/gtest-unittest-api_test
- check_PROGRAMS += test/gtest-unittest-api_test
- test_gtest_unittest_api_test_SOURCES = test/gtest-unittest-api_test.cc
--test_gtest_unittest_api_test_LDADD = lib/libgtest_main.la
-+test_gtest_unittest_api_test_LDADD = lib/libgtest.la
-
- TESTS += test/gtest-listener_test
- check_PROGRAMS += test/gtest-listener_test
diff --git a/dev-cpp/gtest/files/gtest-1.4.0-gcc-4.7.patch b/dev-cpp/gtest/files/gtest-1.4.0-gcc-4.7.patch
deleted file mode 100644
index 05c2700..0000000
--- a/dev-cpp/gtest/files/gtest-1.4.0-gcc-4.7.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-fix for upstream for building with newer gcc versions
-
-r339 | zhanyong.wan | 2009-11-12 21:54:23 -0500 (Thu, 12 Nov 2009) | 2 lines
-
-...; makes gtest-param-util-generated.h conform to the C++ standard (by Zhanyong Wan).
-
-Index: include/gtest/internal/gtest-param-util-generated.h
-===================================================================
---- include/gtest/internal/gtest-param-util-generated.h (revision 338)
-+++ include/gtest/internal/gtest-param-util-generated.h (revision 339)
-@@ -53,6 +53,21 @@
- #if GTEST_HAS_PARAM_TEST
-
- namespace testing {
-+
-+// Forward declarations of ValuesIn(), which is implemented in
-+// include/gtest/gtest-param-test.h.
-+template <typename ForwardIterator>
-+internal::ParamGenerator<
-+ typename ::std::iterator_traits<ForwardIterator>::value_type> ValuesIn(
-+ ForwardIterator begin, ForwardIterator end);
-+
-+template <typename T, size_t N>
-+internal::ParamGenerator<T> ValuesIn(const T (&array)[N]);
-+
-+template <class Container>
-+internal::ParamGenerator<typename Container::value_type> ValuesIn(
-+ const Container& container);
-+
- namespace internal {
-
- // Used in the Values() function to provide polymorphic capabilities.
diff --git a/dev-cpp/gtest/gtest-1.4.0-r1.ebuild b/dev-cpp/gtest/gtest-1.4.0-r1.ebuild
deleted file mode 120000
index 45647ed..0000000
--- a/dev-cpp/gtest/gtest-1.4.0-r1.ebuild
+++ /dev/null
@@ -1 +0,0 @@
-gtest-1.4.0.ebuild
\ No newline at end of file
diff --git a/dev-cpp/gtest/gtest-1.4.0.ebuild b/dev-cpp/gtest/gtest-1.4.0.ebuild
deleted file mode 100644
index 057f590..0000000
--- a/dev-cpp/gtest/gtest-1.4.0.ebuild
+++ /dev/null
@@ -1,44 +0,0 @@
-# Copyright 1999-2012 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/dev-cpp/gtest/gtest-1.4.0.ebuild,v 1.2 2012/04/20 18:18:06 vapier Exp $
-
-EAPI="2"
-inherit autotools eutils
-
-DESCRIPTION="Google C++ Testing Framework"
-HOMEPAGE="http://code.google.com/p/googletest/"
-SRC_URI="http://googletest.googlecode.com/files/${P}.tar.bz2"
-
-LICENSE="BSD"
-SLOT="0"
-KEYWORDS="amd64 arm x86"
-IUSE="examples static-libs"
-
-DEPEND="dev-lang/python"
-RDEPEND=""
-
-src_prepare() {
- sed -i -e "s|/tmp|${T}|g" test/gtest-filepath_test.cc || die "sed failed"
-
- epatch "${FILESDIR}"/${P}-asneeded.patch
- epatch "${FILESDIR}"/${P}-gcc-4.7.patch
- eautoreconf
-}
-
-src_configure() {
- econf \
- $(use_enable static-libs static)
-}
-
-src_install() {
- emake DESTDIR="${D}" install || die "emake install failed"
-
- dodoc CHANGES CONTRIBUTORS README
-
- use static-libs || rm "${D}"/usr/lib*/*.la
-
- if use examples ; then
- insinto /usr/share/doc/${PF}/examples
- doins samples/*.{cc,h}
- fi
-}
diff --git a/dev-cpp/gtest/gtest-1.6.0-r1.ebuild b/dev-cpp/gtest/gtest-1.6.0-r1.ebuild
new file mode 100644
index 0000000..30ea603
--- /dev/null
+++ b/dev-cpp/gtest/gtest-1.6.0-r1.ebuild
@@ -0,0 +1,60 @@
+# Copyright 1999-2013 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/dev-cpp/gtest/gtest-1.6.0-r1.ebuild,v 1.13 2013/02/28 15:47:14 jer Exp $
+
+EAPI="4"
+PYTHON_DEPEND="2"
+
+inherit eutils python autotools
+
+DESCRIPTION="Google C++ Testing Framework"
+HOMEPAGE="http://code.google.com/p/googletest/"
+SRC_URI="http://googletest.googlecode.com/files/${P}.zip"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="alpha amd64 arm hppa ia64 ~mips ppc ppc64 s390 sh sparc x86 ~amd64-fbsd ~x86-fbsd ~ppc-macos"
+IUSE="examples static-libs"
+
+DEPEND="app-arch/unzip"
+RDEPEND=""
+
+pkg_setup() {
+ python_pkg_setup
+ python_set_active_version 2
+}
+
+src_prepare() {
+ sed -i -e "s|/tmp|${T}|g" test/gtest-filepath_test.cc || die
+ sed -i -r \
+ -e '/^install-(data|exec)-local:/s|^.*$|&\ndisabled-&|' \
+ Makefile.am || die
+ epatch "${FILESDIR}"/configure-fix-pthread-linking.patch || die
+ eautoreconf
+
+ python_convert_shebangs -r 2 .
+}
+
+src_configure() {
+ econf \
+ $(use_enable static-libs static)
+}
+
+src_test() {
+ # explicitly use parallel make
+ emake check || die
+}
+
+src_install() {
+ default
+ dobin scripts/gtest-config
+
+ if ! use static-libs ; then
+ rm "${ED}"/usr/lib*/*.la || die
+ fi
+
+ if use examples ; then
+ insinto /usr/share/doc/${PF}/examples
+ doins samples/*.{cc,h}
+ fi
+}
diff --git a/metadata/md5-cache/dev-cpp/gmock-1.4.0 b/metadata/md5-cache/dev-cpp/gmock-1.4.0
deleted file mode 100644
index 9a6d5e8..0000000
--- a/metadata/md5-cache/dev-cpp/gmock-1.4.0
+++ /dev/null
@@ -1,13 +0,0 @@
-DEFINED_PHASES=configure install prepare unpack
-DEPEND=>=dev-cpp/gtest-1.4.0
-DESCRIPTION=Google's C++ mocking framework
-EAPI=4
-HOMEPAGE=http://code.google.com/p/googlemock/
-IUSE=static-libs
-KEYWORDS=amd64 arm x86
-LICENSE=BSD
-RDEPEND=>=dev-cpp/gtest-1.4.0
-SLOT=0
-SRC_URI=http://googlemock.googlecode.com/files/gmock-1.4.0.tar.bz2
-_eclasses_=eutils d40dc948067bd3db1c8ebf7d51897313 libtool 0fd90d183673bf1107465ec45849d1ea multilib ded93e450747134a079e647d888aa80b toolchain-funcs 69a2016af67775a812f4c03ba4b0e03e user 9e552f935106ff0bc92af16da64b4b29
-_md5_=7f7df4f805df05dfada867a6c573d3cf
diff --git a/metadata/md5-cache/dev-cpp/gmock-1.6.0 b/metadata/md5-cache/dev-cpp/gmock-1.6.0
new file mode 100644
index 0000000..01cab74
--- /dev/null
+++ b/metadata/md5-cache/dev-cpp/gmock-1.6.0
@@ -0,0 +1,13 @@
+DEFINED_PHASES=configure install prepare unpack
+DEPEND=app-arch/unzip =dev-cpp/gtest-1.6.0*
+DESCRIPTION=Google's C++ mocking framework
+EAPI=4
+HOMEPAGE=http://code.google.com/p/googlemock/
+IUSE=static-libs
+KEYWORDS=amd64 arm ~mips ppc ~ppc64 x86
+LICENSE=BSD
+RDEPEND==dev-cpp/gtest-1.6.0*
+SLOT=0
+SRC_URI=http://googlemock.googlecode.com/files/gmock-1.6.0.zip
+_eclasses_=libtool 0fd90d183673bf1107465ec45849d1ea multilib ded93e450747134a079e647d888aa80b toolchain-funcs 69a2016af67775a812f4c03ba4b0e03e
+_md5_=9a74797b653857828664f01085e05b88
diff --git a/metadata/md5-cache/dev-cpp/gtest-1.4.0 b/metadata/md5-cache/dev-cpp/gtest-1.4.0
deleted file mode 100644
index 05ac499..0000000
--- a/metadata/md5-cache/dev-cpp/gtest-1.4.0
+++ /dev/null
@@ -1,12 +0,0 @@
-DEFINED_PHASES=configure install prepare
-DEPEND=dev-lang/python || ( >=sys-devel/automake-1.11.1:1.11 >=sys-devel/automake-1.12:1.12 ) >=sys-devel/autoconf-2.68 sys-devel/libtool
-DESCRIPTION=Google C++ Testing Framework
-EAPI=2
-HOMEPAGE=http://code.google.com/p/googletest/
-IUSE=examples static-libs
-KEYWORDS=amd64 arm x86
-LICENSE=BSD
-SLOT=0
-SRC_URI=http://googletest.googlecode.com/files/gtest-1.4.0.tar.bz2
-_eclasses_=autotools 1b0fa473be98091220edff9f51d06153 eutils d40dc948067bd3db1c8ebf7d51897313 libtool 0fd90d183673bf1107465ec45849d1ea multilib ded93e450747134a079e647d888aa80b multiprocessing 1512bdfe7004902b8cd2c466fc3df772 toolchain-funcs 69a2016af67775a812f4c03ba4b0e03e user 9e552f935106ff0bc92af16da64b4b29
-_md5_=65d49cd828b37eb47caba90544b8973e
diff --git a/metadata/md5-cache/dev-cpp/gtest-1.4.0-r1 b/metadata/md5-cache/dev-cpp/gtest-1.4.0-r1
deleted file mode 100644
index 05ac499..0000000
--- a/metadata/md5-cache/dev-cpp/gtest-1.4.0-r1
+++ /dev/null
@@ -1,12 +0,0 @@
-DEFINED_PHASES=configure install prepare
-DEPEND=dev-lang/python || ( >=sys-devel/automake-1.11.1:1.11 >=sys-devel/automake-1.12:1.12 ) >=sys-devel/autoconf-2.68 sys-devel/libtool
-DESCRIPTION=Google C++ Testing Framework
-EAPI=2
-HOMEPAGE=http://code.google.com/p/googletest/
-IUSE=examples static-libs
-KEYWORDS=amd64 arm x86
-LICENSE=BSD
-SLOT=0
-SRC_URI=http://googletest.googlecode.com/files/gtest-1.4.0.tar.bz2
-_eclasses_=autotools 1b0fa473be98091220edff9f51d06153 eutils d40dc948067bd3db1c8ebf7d51897313 libtool 0fd90d183673bf1107465ec45849d1ea multilib ded93e450747134a079e647d888aa80b multiprocessing 1512bdfe7004902b8cd2c466fc3df772 toolchain-funcs 69a2016af67775a812f4c03ba4b0e03e user 9e552f935106ff0bc92af16da64b4b29
-_md5_=65d49cd828b37eb47caba90544b8973e
diff --git a/metadata/md5-cache/dev-cpp/gtest-1.6.0-r1 b/metadata/md5-cache/dev-cpp/gtest-1.6.0-r1
new file mode 100644
index 0000000..5eff00c
--- /dev/null
+++ b/metadata/md5-cache/dev-cpp/gtest-1.6.0-r1
@@ -0,0 +1,13 @@
+DEFINED_PHASES=configure install prepare setup test
+DEPEND=app-arch/unzip >=app-admin/eselect-python-20091230 =dev-lang/python-2* || ( >=sys-devel/automake-1.11.1:1.11 >=sys-devel/automake-1.12:1.12 ) >=sys-devel/autoconf-2.68 sys-devel/libtool
+DESCRIPTION=Google C++ Testing Framework
+EAPI=4
+HOMEPAGE=http://code.google.com/p/googletest/
+IUSE=examples static-libs
+KEYWORDS=alpha amd64 arm hppa ia64 ~mips ppc ppc64 s390 sh sparc x86 ~amd64-fbsd ~x86-fbsd ~ppc-macos
+LICENSE=BSD
+RDEPEND=>=app-admin/eselect-python-20091230 =dev-lang/python-2*
+SLOT=0
+SRC_URI=http://googletest.googlecode.com/files/gtest-1.6.0.zip
+_eclasses_=autotools 1b0fa473be98091220edff9f51d06153 eutils d40dc948067bd3db1c8ebf7d51897313 libtool 0fd90d183673bf1107465ec45849d1ea multilib ded93e450747134a079e647d888aa80b multiprocessing 1512bdfe7004902b8cd2c466fc3df772 python 6bbd984910e27780e5d0ea543d83ef84 toolchain-funcs 69a2016af67775a812f4c03ba4b0e03e user 9e552f935106ff0bc92af16da64b4b29
+_md5_=9dd1da433e4fd0d5a29ceafa248b6592