diff options
author | Paweł Hajdan <phajdan.jr@gentoo.org> | 2012-01-30 07:58:08 +0000 |
---|---|---|
committer | Paweł Hajdan <phajdan.jr@gentoo.org> | 2012-01-30 07:58:08 +0000 |
commit | b1ed99f2d380174dfd1977ec923f824c2d1253a5 (patch) | |
tree | b7548fa112bf647fc3775d85e0ed8211ab21f5bb | |
parent | Version bump wrt bug #400717. Thanks to kensingtion <gentoo@scribeofthenile.c... (diff) | |
download | historical-b1ed99f2d380174dfd1977ec923f824c2d1253a5.tar.gz historical-b1ed99f2d380174dfd1977ec923f824c2d1253a5.tar.bz2 historical-b1ed99f2d380174dfd1977ec923f824c2d1253a5.zip |
Backport upstream fix for Gentoo bug #389479, and suppress net_unittests failure that doesn't occur in 18.x. Remove old.
Package-Manager: portage-2.1.10.44/cvs/Linux i686
-rw-r--r-- | www-client/chromium/ChangeLog | 10 | ||||
-rw-r--r-- | www-client/chromium/Manifest | 14 | ||||
-rw-r--r-- | www-client/chromium/chromium-17.0.963.44-r1.ebuild (renamed from www-client/chromium/chromium-17.0.963.38.ebuild) | 8 | ||||
-rw-r--r-- | www-client/chromium/files/chromium-dev-shm-r0.patch | 193 |
4 files changed, 215 insertions, 10 deletions
diff --git a/www-client/chromium/ChangeLog b/www-client/chromium/ChangeLog index 832dc1692161..c0581a208f1e 100644 --- a/www-client/chromium/ChangeLog +++ b/www-client/chromium/ChangeLog @@ -1,6 +1,14 @@ # ChangeLog for www-client/chromium # Copyright 1999-2012 Gentoo Foundation; Distributed under the GPL v2 -# $Header: /var/cvsroot/gentoo-x86/www-client/chromium/ChangeLog,v 1.547 2012/01/26 04:17:23 floppym Exp $ +# $Header: /var/cvsroot/gentoo-x86/www-client/chromium/ChangeLog,v 1.548 2012/01/30 07:58:08 phajdan.jr Exp $ + +*chromium-17.0.963.44-r1 (30 Jan 2012) + + 30 Jan 2012; Pawel Hajdan jr <phajdan.jr@gentoo.org> + +files/chromium-dev-shm-r0.patch, -chromium-17.0.963.38.ebuild, + +chromium-17.0.963.44-r1.ebuild: + Backport upstream fix for Gentoo bug #389479, and suppress net_unittests + failure that doesn't occur in 18.x. Remove old. *chromium-17.0.963.44 (26 Jan 2012) diff --git a/www-client/chromium/Manifest b/www-client/chromium/Manifest index e07df37043a3..24c352c04c03 100644 --- a/www-client/chromium/Manifest +++ b/www-client/chromium/Manifest @@ -1,8 +1,9 @@ -----BEGIN PGP SIGNED MESSAGE----- -Hash: SHA256 +Hash: SHA512 AUX chromium-browser.xml 407 RMD160 457374ff72561648d9777ffb3270ad10d864a6be SHA1 65543bfff7d0350d40ba258e61061b0c5579e1f2 SHA256 bc039012f8677468e9ce5df825f9d8096be6deb5813031c86a087c88105096ff AUX chromium-cups-r0.patch 726 RMD160 f3193ce9f987b6e5ad05a67d090ab4f9e1cb7b41 SHA1 8efd3479977e89429237d49fefbfcc63d250089e SHA256 800a669839ca7e033bb360b0cd9db92dde93505609c0b9184bf3901d2ec1535b +AUX chromium-dev-shm-r0.patch 6866 RMD160 026c910196485b73d8722b938d983bf918bdf1bf SHA1 2fe58ad7ece7390aa865faae9f86e99d28854355 SHA256 a7bb18e5f55451761499bbf9ed97958c2c8a0c46bc75138f9fbb21e603ef941f AUX chromium-icu-compatibility-r0.patch 1659 RMD160 5d1fcc18d27b96f0c1b4f14b24dd8ab40ce917ca SHA1 517155769d0f421a4a81bffbcac39d17fa099956 SHA256 f70d99472d56e0aa7398b5638412d440d22943eb2c5962957f973e90992fdc99 AUX chromium-kerberos-r0.patch 944 RMD160 25fccaa4406b1f964d72c94fd414a9955fc69ddd SHA1 b8b8f2cf6df1bade7af45d8f24b65acc602e781f SHA256 75b75f241675178dff914e0ddacc910a2583b2e2077e805f3ea1b2eed8513e21 AUX chromium-launcher-r2.sh 940 RMD160 7a64e597998a8f95a7e3d1c26377842ff8106f89 SHA1 9630a36af707a810cbd646f3bac5deba984439f6 SHA256 842e121bbfa33513ca964744f0ba8401401946e672cd6a0a95bc80a28212e87e @@ -14,23 +15,22 @@ AUX dot-gclient 253 RMD160 a768770d8e6f5b73395451277beea1cc9240fc3a SHA1 3eaf207 AUX extract_v8_version.py 731 RMD160 71b134c9b88902259cb20ec232b8da6c3d8a15de SHA1 3dc5d6f9437f4b0ffb584395e19663450384b53a SHA256 4011f1e2f44bd18ad1266dffc1d3fbc13a6430afade2b19240b31ee9437dcbda AUX nacl.gypi 98 RMD160 fa4806fbc8c2e19763c1905a3bc431022b247825 SHA1 df4cee39e1d49e10f9c075f5e6e9db28e8260926 SHA256 25bddd2eee7821e18ddda06f6e69552c359e1c04a10971ac3985556c3d8ef059 DIST chromium-16.0.912.77.tar.bz2 154287236 RMD160 1eb85bf3435675fdd28b486d3a41a5db2a36df1e SHA1 b743e60fcd3f5034ba38cfb9534023bab0bc5ace SHA256 fc84e9a96d00a95c44beb6539b9ffe7224dc3ca51afef6486e0e7ad705445a32 -DIST chromium-17.0.963.38.tar.bz2 165295836 RMD160 6cc287ca937ab6f93bdd6b189ed9140adbe7cba8 SHA1 75c2f6e51da873baeb25b7bcddc578e4bcbe03ec SHA256 977da1b8dc09c879c0452ff34ce07bb31ce7e10194330f9ce412c45c54cfedc7 DIST chromium-17.0.963.44.tar.bz2 165319178 RMD160 c0429f1af13812c0e89d4e5920e2c8dd621c92aa SHA1 bb8cdbf9b3b815e0096f023a58518a16f3715e4c SHA256 085084b309fd5b288f6186cfc8b57a3ab3c9493d6a0bda26c57cf1099c3f4352 DIST chromium-18.0.1010.0.tar.bz2 172091081 RMD160 776a68eeaf26be01dc87857df2402848c649c6de SHA1 6a30523007ee06feee7174b79d1cfa2d8dfaad2b SHA256 9df8652d8d6e8e6d7fe5b6f8872f4fed11bb1708c5d1787029e9c62da6d7fd44 DIST chromium-18.0.1017.2.tar.bz2 172847602 RMD160 61dc69a8ce1764d4552b353c149a8e28d75e9619 SHA1 67a54e644e518b5546ba3b42b276baef6d2e2f4e SHA256 6b02073d64235eda236b8c454526362b628dc91a866322ca44b1dbfc8a9c6134 EBUILD chromium-16.0.912.77.ebuild 16678 RMD160 5015272edbd39c93aa89644f0d53b2ecae5052f4 SHA1 312419708f06ef362ade4ddf971ca6d7231bdb2c SHA256 f76f7f971618ce3da75bfecd1c618f9bd65348007dcfd435d79014e4ddc9d228 -EBUILD chromium-17.0.963.38.ebuild 17469 RMD160 fb91c634535ee9913ca2204af3aa8020186d3809 SHA1 9c65e0774d02db778240c2676c12c0595b2ff8e5 SHA256 051ef0a3bf6292e2ada988b63e1f7b1b2da2c6f296fc9a04197f0c74e727bc96 +EBUILD chromium-17.0.963.44-r1.ebuild 17694 RMD160 e648716c3c34e14a594a3b707d7f5f4327af1607 SHA1 844849af58c69a6bff222be3176efd965586e6fb SHA256 e36b44a62285142f2e5375593830575f1176ff3f0b17c9db74350bf44375c7f3 EBUILD chromium-17.0.963.44.ebuild 17469 RMD160 ab8640a6406f8b9ca2cf5c568cdead0791a678df SHA1 8b78b1f5c344a5d4adfbc73d757b35a94d32bb98 SHA256 a820c2cb73993d8e5de9e986c44a56cb06fba08bb41d34119481411c23cd0f04 EBUILD chromium-18.0.1010.0.ebuild 17443 RMD160 56240ddbfb78bc89231112005c849fc5fcfde7ce SHA1 5a90f017ce12248a5e4945ee1612dab6128577db SHA256 865ed554bc8dc872af048d26026533fcc7da018214a6535141325fbf51eb47e7 EBUILD chromium-18.0.1017.2.ebuild 17445 RMD160 57909c0a6b261b9c9024828f3b54f558f1921e12 SHA1 1a4f8227a56bd2c8b27dd5853aac86a2a659354b SHA256 38025ed32c27fe9b646c4a61ccaa302095fe47f2c5ceffad0aa85d498f01e171 EBUILD chromium-9999-r1.ebuild 19393 RMD160 6ce70df1f804fbafd645fe3adfb3c9c204d643fb SHA1 53b5bb56828c638f22a5ffac915ddf7cdac6ccc6 SHA256 5aca9911a2de774cbe77800d722c8fc94f40214a712e4b8b375e091752f2c29e -MISC ChangeLog 3851 RMD160 3f9aacbb46af7852cc7dc6cec38c78e2565c7200 SHA1 cab949171b93af228b20b2e4cb65818118cc7b58 SHA256 6f1819cd29183dbd80bc6847450ef5235c98ff3d315f91c2643e47a50fe99ada +MISC ChangeLog 4176 RMD160 21190a8c938129aac6b02d11254c00b6fbb54c48 SHA1 5ef9a6b3c5f1c17e97c8de0a6b15c012fba8df1a SHA256 724a64f310c6fedb86ead9b701415dceb9b98a73437ab150d84253d21cdeee54 MISC ChangeLog-2011 114031 RMD160 819d2187b876e03ba1a5f23369eca56e554bcfe6 SHA1 c449259648a4f2633b8812e7761e8cdeaea7f948 SHA256 e2c2c75785c5eaf78b6efe01e357279cbb7be0c89d00b4053f475e963916fa54 MISC metadata.xml 267 RMD160 3a166415fec415d539c1b7c32ed40b188488b9fb SHA1 5c3d71a9cea27175cbe8c98369b42b79c8643c6c SHA256 4e6afae33f60d6752cacf2785f7f9a396b8711cce605b73d0d752a4af7d01fc8 -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.17 (GNU/Linux) -iF4EAREIAAYFAk8g09kACgkQC77qH+pIQ6TtzwEAn3hjLJg7uwDD3m1D/qr3IrXm -81lLFH+oAIwIPJv1togA/39vpYWc+TiYbtiWrvim2CqWAFg+MstE+CSgSnBFEokB -=Gi5F +iEYEAREKAAYFAk8mTZwACgkQuUQtlDBCeQKC+ACfb+QmaDV12ZxvIGxz2GsnT2YB +88gAnjjYP9IBZ4EFDPR8OPmObFj8yMpR +=jICB -----END PGP SIGNATURE----- diff --git a/www-client/chromium/chromium-17.0.963.38.ebuild b/www-client/chromium/chromium-17.0.963.44-r1.ebuild index d74d66f8bb30..fda658190bed 100644 --- a/www-client/chromium/chromium-17.0.963.38.ebuild +++ b/www-client/chromium/chromium-17.0.963.44-r1.ebuild @@ -1,6 +1,6 @@ # Copyright 1999-2012 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 -# $Header: /var/cvsroot/gentoo-x86/www-client/chromium/chromium-17.0.963.38.ebuild,v 1.1 2012/01/19 02:09:39 floppym Exp $ +# $Header: /var/cvsroot/gentoo-x86/www-client/chromium/chromium-17.0.963.44-r1.ebuild,v 1.1 2012/01/30 07:58:08 phajdan.jr Exp $ EAPI="4" PYTHON_DEPEND="2:2.6" @@ -188,6 +188,9 @@ src_prepare() { # Revert WebKit changeset responsible for Gentoo bug #393471. epatch "${FILESDIR}/${PN}-revert-jpeg-swizzle-r0.patch" + # Backport upstream fix for Gentoo bug #389479. + epatch "${FILESDIR}/${PN}-dev-shm-r0.patch" + epatch_user # Remove most bundled libraries. Some are still needed. @@ -380,8 +383,9 @@ src_test() { # NetUtilTest: bug #361885. # NetUtilTest.GenerateFileName: some locale-related mismatch. # UDP: unstable, active development. We should revisit this later. + # CertDatabaseNSSTest.ImportCACertHierarchyTree: works in 18.x, broken here. LC_ALL="${mylocale}" VIRTUALX_COMMAND=out/Release/net_unittests virtualmake \ - '--gtest_filter=-NetUtilTest.IDNToUnicode*:NetUtilTest.FormatUrl*:NetUtilTest.GenerateFileName:*UDP*' + '--gtest_filter=-NetUtilTest.IDNToUnicode*:NetUtilTest.FormatUrl*:NetUtilTest.GenerateFileName:*UDP*:CertDatabaseNSSTest.ImportCACertHierarchyTree' LC_ALL="${mylocale}" VIRTUALX_COMMAND=out/Release/printing_unittests virtualmake } diff --git a/www-client/chromium/files/chromium-dev-shm-r0.patch b/www-client/chromium/files/chromium-dev-shm-r0.patch new file mode 100644 index 000000000000..2c4c2b7eaace --- /dev/null +++ b/www-client/chromium/files/chromium-dev-shm-r0.patch @@ -0,0 +1,193 @@ +Backport http://codereview.chromium.org/8800025 to fix issues with noexec /dev/shm +diff --git a/base/file_util.h b/base/file_util.h +index 90ec1ae..78827e9 100644 +--- a/base/file_util.h ++++ b/base/file_util.h +@@ -259,7 +259,7 @@ BASE_EXPORT bool IsDirectoryEmpty(const FilePath& dir_path); + BASE_EXPORT bool GetTempDir(FilePath* path); + // Get a temporary directory for shared memory files. + // Only useful on POSIX; redirects to GetTempDir() on Windows. +-BASE_EXPORT bool GetShmemTempDir(FilePath* path); ++BASE_EXPORT bool GetShmemTempDir(FilePath* path, bool executable); + + // Get the home directory. This is more complicated than just getenv("HOME") + // as it knows to fall back on getpwent() etc. +@@ -279,7 +279,10 @@ BASE_EXPORT bool CreateTemporaryFileInDir(const FilePath& dir, + // Returns a handle to the opened file or NULL if an error occured. + BASE_EXPORT FILE* CreateAndOpenTemporaryFile(FilePath* path); + // Like above but for shmem files. Only useful for POSIX. +-BASE_EXPORT FILE* CreateAndOpenTemporaryShmemFile(FilePath* path); ++// The executable flag says the file needs to support using ++// mprotect with PROT_EXEC after mapping. ++BASE_EXPORT FILE* CreateAndOpenTemporaryShmemFile(FilePath* path, ++ bool executable); + // Similar to CreateAndOpenTemporaryFile, but the file is created in |dir|. + BASE_EXPORT FILE* CreateAndOpenTemporaryFileInDir(const FilePath& dir, + FilePath* path); +diff --git a/base/file_util_android.cc b/base/file_util_android.cc +index eff3a46..6807d8d 100644 +--- a/base/file_util_android.cc ++++ b/base/file_util_android.cc +@@ -8,7 +8,7 @@ + + namespace file_util { + +-bool GetShmemTempDir(FilePath* path) { ++bool GetShmemTempDir(FilePath* path, bool executable) { + *path = FilePath("/data/local/tmp"); + return true; + } +diff --git a/base/file_util_mac.mm b/base/file_util_mac.mm +index 95d4f25..bb4975d 100644 +--- a/base/file_util_mac.mm ++++ b/base/file_util_mac.mm +@@ -1,4 +1,4 @@ +-// Copyright (c) 2010 The Chromium Authors. All rights reserved. ++// Copyright (c) 2011 The Chromium Authors. All rights reserved. + // Use of this source code is governed by a BSD-style license that can be + // found in the LICENSE file. + +@@ -22,7 +22,7 @@ bool GetTempDir(FilePath* path) { + return true; + } + +-bool GetShmemTempDir(FilePath* path) { ++bool GetShmemTempDir(FilePath* path, bool executable) { + return GetTempDir(path); + } + +diff --git a/base/file_util_posix.cc b/base/file_util_posix.cc +index 582f70e..5c14abd 100644 +--- a/base/file_util_posix.cc ++++ b/base/file_util_posix.cc +@@ -481,9 +481,9 @@ bool CreateTemporaryFile(FilePath* path) { + return true; + } + +-FILE* CreateAndOpenTemporaryShmemFile(FilePath* path) { ++FILE* CreateAndOpenTemporaryShmemFile(FilePath* path, bool executable) { + FilePath directory; +- if (!GetShmemTempDir(&directory)) ++ if (!GetShmemTempDir(&directory, executable)) + return NULL; + + return CreateAndOpenTemporaryFileInDir(directory, path); +@@ -910,15 +910,52 @@ bool GetTempDir(FilePath* path) { + } + + #if !defined(OS_ANDROID) +-bool GetShmemTempDir(FilePath* path) { ++ + #if defined(OS_LINUX) +- *path = FilePath("/dev/shm"); +- return true; +-#else +- return GetTempDir(path); +-#endif ++// Determine if /dev/shm files can be mapped and then mprotect'd PROT_EXEC. ++// This depends on the mount options used for /dev/shm, which vary among ++// different Linux distributions and possibly local configuration. It also ++// depends on details of kernel--ChromeOS uses the noexec option for /dev/shm ++// but its kernel allows mprotect with PROT_EXEC anyway. ++ ++namespace { ++ ++bool DetermineDevShmExecutable() { ++ bool result = false; ++ FilePath path; ++ int fd = CreateAndOpenFdForTemporaryFile(FilePath("/dev/shm"), &path); ++ if (fd >= 0) { ++ ScopedFD shm_fd_closer(&fd); ++ Delete(path, false); ++ size_t pagesize = sysconf(_SC_PAGESIZE); ++ void *mapping = mmap(NULL, pagesize, PROT_READ, MAP_SHARED, fd, 0); ++ if (mapping != MAP_FAILED) { ++ if (mprotect(mapping, pagesize, PROT_READ | PROT_EXEC) == 0) ++ result = true; ++ munmap(mapping, pagesize); ++ } ++ } ++ return result; + } ++ ++}; // namespace ++#endif // defined(OS_LINUX) ++ ++bool GetShmemTempDir(FilePath* path, bool executable) { ++#if defined(OS_LINUX) ++ bool use_dev_shm = true; ++ if (executable) { ++ static const bool s_dev_shm_executable = DetermineDevShmExecutable(); ++ use_dev_shm = s_dev_shm_executable; ++ } ++ if (use_dev_shm) { ++ *path = FilePath("/dev/shm"); ++ return true; ++ } + #endif ++ return GetTempDir(path); ++} ++#endif // !defined(OS_ANDROID) + + FilePath GetHomeDir() { + const char* home_dir = getenv("HOME"); +diff --git a/base/file_util_unittest.cc b/base/file_util_unittest.cc +index 00cacd6..a9f9377 100644 +--- a/base/file_util_unittest.cc ++++ b/base/file_util_unittest.cc +@@ -1545,7 +1545,7 @@ TEST_F(FileUtilTest, CreateNewTemporaryDirInDirTest) { + + TEST_F(FileUtilTest, GetShmemTempDirTest) { + FilePath dir; +- EXPECT_TRUE(file_util::GetShmemTempDir(&dir)); ++ EXPECT_TRUE(file_util::GetShmemTempDir(&dir, false)); + EXPECT_TRUE(file_util::DirectoryExists(dir)); + } + +diff --git a/base/file_util_win.cc b/base/file_util_win.cc +index 8d9fbde..a6720a5 100644 +--- a/base/file_util_win.cc ++++ b/base/file_util_win.cc +@@ -556,7 +556,7 @@ bool GetTempDir(FilePath* path) { + return true; + } + +-bool GetShmemTempDir(FilePath* path) { ++bool GetShmemTempDir(FilePath* path, bool executable) { + return GetTempDir(path); + } + +@@ -576,7 +576,7 @@ bool CreateTemporaryFile(FilePath* path) { + return false; + } + +-FILE* CreateAndOpenTemporaryShmemFile(FilePath* path) { ++FILE* CreateAndOpenTemporaryShmemFile(FilePath* path, bool executable) { + base::ThreadRestrictions::AssertIOAllowed(); + return CreateAndOpenTemporaryFile(path); + } +diff --git a/base/shared_memory_posix.cc b/base/shared_memory_posix.cc +index 030061a..a66c859 100644 +--- a/base/shared_memory_posix.cc ++++ b/base/shared_memory_posix.cc +@@ -123,7 +123,7 @@ bool SharedMemory::Create(const SharedMemoryCreateOptions& options) { + DCHECK(!options.open_existing); + // Q: Why not use the shm_open() etc. APIs? + // A: Because they're limited to 4mb on OS X. FFFFFFFUUUUUUUUUUU +- fp = file_util::CreateAndOpenTemporaryShmemFile(&path); ++ fp = file_util::CreateAndOpenTemporaryShmemFile(&path, options.executable); + + // Deleting the file prevents anyone else from mapping it in + // (making it private), and prevents the need for cleanup (once +@@ -317,7 +317,7 @@ bool SharedMemory::FilePathForMemoryName(const std::string& mem_name, + DCHECK_EQ(std::string::npos, mem_name.find('\0')); + + FilePath temp_dir; +- if (!file_util::GetShmemTempDir(&temp_dir)) ++ if (!file_util::GetShmemTempDir(&temp_dir, false)) + return false; + + #if !defined(OS_MACOSX) +-- +1.7.6.1 + |