public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
From: "Mike Gilbert" <floppym@gentoo.org>
To: gentoo-commits@lists.gentoo.org
Subject: [gentoo-commits] repo/gentoo:master commit in: www-client/chromium/, www-client/chromium/files/
Date: Fri,  1 May 2020 15:31:53 +0000 (UTC)	[thread overview]
Message-ID: <1588347097.24e0750a927f29bdfd935e68b17c3be31c92a932.floppym@gentoo> (raw)

commit:     24e0750a927f29bdfd935e68b17c3be31c92a932
Author:     Stephan Hartmann <stha09 <AT> googlemail <DOT> com>
AuthorDate: Thu Apr 30 18:03:53 2020 +0000
Commit:     Mike Gilbert <floppym <AT> gentoo <DOT> org>
CommitDate: Fri May  1 15:31:37 2020 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=24e0750a

www-client/chromium: beta channel bump to 83.0.4103.34

Package-Manager: Portage-2.3.89, Repoman-2.3.20
Signed-off-by: Stephan Hartmann <stha09 <AT> googlemail.com>
Signed-off-by: Mike Gilbert <floppym <AT> gentoo.org>

 www-client/chromium/Manifest                       |   2 +-
 ...4103.23.ebuild => chromium-83.0.4103.34.ebuild} |   8 +-
 .../files/chromium-83-gcc-serviceworker.patch      | 130 ++++++++++++++++
 www-client/chromium/files/chromium-83-icu67.patch  | 170 +++++++++++++++++++++
 4 files changed, 306 insertions(+), 4 deletions(-)

diff --git a/www-client/chromium/Manifest b/www-client/chromium/Manifest
index c9f5ef3ccd4..3dd02cf00c3 100644
--- a/www-client/chromium/Manifest
+++ b/www-client/chromium/Manifest
@@ -1,3 +1,3 @@
 DIST chromium-81.0.4044.129.tar.xz 785978416 BLAKE2B 5af9ab9e17bbc237f5a254b98cb27b998021d5c95b5da4d6de25c3fb234fea609f8a9173f3ac75eee208b8c88c5d39d9cf1ec39ebc8d436cf8aafee31e8f32c1 SHA512 93dfc5c1050bc226b836721d422a8d98a183fff81e91f55477dce0c650d35a95aeb89c810bea6e07ffb948ee62e8e150c8b8c5bad4658fcc215de05a681b064a
-DIST chromium-83.0.4103.23.tar.xz 802566932 BLAKE2B 00c9105a9b5e9cebc8adeb8a61b4491f0ca7cc95da9595506c77d556c0ee07074da0da506831bec1b390a39c7535220ab5c6d06ce784e6b20d2694f94d3b0a76 SHA512 08a50372570aa9da5fb9ccc6dfc3d949e84cb401d62d650132aa4edea2b1658fb56a81854fde11690d040e3b36b9d20da1ad7f83e47ffca77893ab57620c2a3e
+DIST chromium-83.0.4103.34.tar.xz 802525184 BLAKE2B d5e47c96642fb9344fe43a582d035f507b714565c01b6bacbf1cd4fdb3537db28ae0e54a47bbd7f47ad4d00960ee9e40d9a10522262cba4063f95501225fce75 SHA512 467006d3b3093b078569c0ead9203e66cfd83ad14ed95a07b5f83e49451a0e9f4506b3ce35c97106b4540b55484d6cd33afbacf92385ace261e78d5c1cc0188e
 DIST setuptools-44.1.0.zip 858569 BLAKE2B f59f154e121502a731e51294ccd293d60ffccadacf51e23b53bf7ceba38858948b86783238061136c827ac3373ea7ea8e6253d4bb53f3f1dd69284568ec65a68 SHA512 4dfb0f42d334b835758e865a26ecd1e725711fa2b9c38ddc273b8b3849fba04527bc97436d11ba1e98f1a42922aa0f0b9032e32998273c705fac6e10735eacbf

diff --git a/www-client/chromium/chromium-83.0.4103.23.ebuild b/www-client/chromium/chromium-83.0.4103.34.ebuild
similarity index 99%
rename from www-client/chromium/chromium-83.0.4103.23.ebuild
rename to www-client/chromium/chromium-83.0.4103.34.ebuild
index 2056dda0889..2cb862a2cb9 100644
--- a/www-client/chromium/chromium-83.0.4103.23.ebuild
+++ b/www-client/chromium/chromium-83.0.4103.34.ebuild
@@ -103,8 +103,8 @@ BDEPEND="
 	)
 "
 
-: ${CHROMIUM_FORCE_CLANG=yes}
-: ${CHROMIUM_FORCE_LIBCXX=yes}
+: ${CHROMIUM_FORCE_CLANG=no}
+: ${CHROMIUM_FORCE_LIBCXX=no}
 
 if [[ ${CHROMIUM_FORCE_CLANG} == yes ]]; then
 	BDEPEND+=" >=sys-devel/clang-9"
@@ -123,7 +123,7 @@ else
 		dev-libs/libxslt:=
 		>=dev-libs/re2-0.2019.08.01:=
 		>=media-libs/openh264-1.6.0:=
-		system-icu? ( >=dev-libs/icu-65:= )
+		system-icu? ( >=dev-libs/icu-67.1:= )
 	"
 	RDEPEND+="${COMMON_DEPEND}"
 	DEPEND+="${COMMON_DEPEND}"
@@ -178,7 +178,9 @@ PATCHES=(
 	"${FILESDIR}/chromium-83-gcc-include.patch"
 	"${FILESDIR}/chromium-83-gcc-permissive.patch"
 	"${FILESDIR}/chromium-83-gcc-iterator.patch"
+	"${FILESDIR}/chromium-83-gcc-serviceworker.patch"
 	"${FILESDIR}/chromium-83-gcc-10.patch"
+	"${FILESDIR}/chromium-83-icu67.patch"
 )
 
 pre_build_checks() {

diff --git a/www-client/chromium/files/chromium-83-gcc-serviceworker.patch b/www-client/chromium/files/chromium-83-gcc-serviceworker.patch
new file mode 100644
index 00000000000..a836e7fc533
--- /dev/null
+++ b/www-client/chromium/files/chromium-83-gcc-serviceworker.patch
@@ -0,0 +1,130 @@
+From 0914a38252f205fc04fa50e858b24fa5f535ab11 Mon Sep 17 00:00:00 2001
+From: Hiroki Nakagawa <nhiroki@chromium.org>
+Date: Wed, 29 Apr 2020 11:46:54 +0900
+Subject: [PATCH] ServiceWorker: Avoid double destruction of ServiceWorkerObjectHost on connection error
+
+This CL avoids the case where ServiceWorkerObjectHost is destroyed twice
+on ServiceWorkerObjectHost::OnConnectionError() when Chromium is built
+with the GCC build toolchain.
+
+> How does the issue happen?
+
+ServiceWorkerObjectHost has a cyclic reference like this:
+
+ServiceWorkerObjectHost
+  --([1] scoped_refptr)--> ServiceWorkerVersion
+    --([2] std::unique_ptr)--> ServiceWorkerProviderHost
+      --([3] std::unique_ptr)--> ServiceWorkerContainerHost
+        --([4] std::unique_ptr)--> ServiceWorkerObjectHost
+
+Note that ServiceWorkerContainerHost manages ServiceWorkerObjectHost in
+map<int64_t version_id, std::unique_ptr<ServiceWorkerObjectHost>>.
+
+When ServiceWorkerObjectHost::OnConnectionError() is called, the
+function removes the reference [4] from the map, and destroys
+ServiceWorkerObjectHost. If the object host has the last reference [1]
+to ServiceWorkerVersion, the destruction also cuts off the references
+[2] and [3], and destroys ServiceWorkerProviderHost and
+ServiceWorkerContainerHost.
+
+This seems to work well on the Chromium's default toolchain, but not
+work on the GCC toolchain. According to the report, destruction of
+ServiceWorkerContainerHost happens while the map owned by the container
+host is erasing the ServiceWorkerObjectHost, and this results in crash
+due to double destruction of the object host.
+
+I don't know the reason why this happens only on the GCC toolchain, but
+I suspect the order of object destruction on std::map::erase() could be
+different depending on the toolchains.
+
+> How does this CL fix this?
+
+The ideal fix is to redesign the ownership model of
+ServiceWorkerVersion, but it's not feasible in the short term.
+
+Instead, this CL avoids destruction of ServiceWorkerObjectHost on
+std::map::erase(). The new code takes the ownership of the object host
+from the map first, and then erases the entry from the map. This
+separates timings to erase the map entry and to destroy the object host,
+so the crash should no longer happen.
+
+Bug: 1056598
+Change-Id: Id30654cb575bc557c42044d6f0c6f1f9bfaed613
+---
+
+diff --git a/content/browser/service_worker/service_worker_container_host.cc b/content/browser/service_worker/service_worker_container_host.cc
+index c631bcd..ff917f8 100644
+--- a/content/browser/service_worker/service_worker_container_host.cc
++++ b/content/browser/service_worker/service_worker_container_host.cc
+@@ -717,6 +717,16 @@
+     int64_t version_id) {
+   DCHECK_CURRENTLY_ON(ServiceWorkerContext::GetCoreThreadId());
+   DCHECK(base::Contains(service_worker_object_hosts_, version_id));
++
++  // ServiceWorkerObjectHost to be deleted may have the last reference to
++  // ServiceWorkerVersion that indirectly owns this ServiceWorkerContainerHost.
++  // If we erase the object host directly from the map, |this| could be deleted
++  // during the map operation and may crash. To avoid the case, we take the
++  // ownership of the object host from the map first, and then erase the entry
++  // from the map. See https://crbug.com/1056598 for details.
++  std::unique_ptr<ServiceWorkerObjectHost> to_be_deleted =
++      std::move(service_worker_object_hosts_[version_id]);
++  DCHECK(to_be_deleted);
+   service_worker_object_hosts_.erase(version_id);
+ }
+ 
+diff --git a/content/browser/service_worker/service_worker_object_host_unittest.cc b/content/browser/service_worker/service_worker_object_host_unittest.cc
+index 238cb8b..f60c7a2 100644
+--- a/content/browser/service_worker/service_worker_object_host_unittest.cc
++++ b/content/browser/service_worker/service_worker_object_host_unittest.cc
+@@ -200,6 +200,19 @@
+     return registration_info;
+   }
+ 
++  void CallOnConnectionError(ServiceWorkerContainerHost* container_host,
++                             int64_t version_id) {
++    // ServiceWorkerObjectHost has the last reference to the version.
++    ServiceWorkerObjectHost* object_host =
++        GetServiceWorkerObjectHost(container_host, version_id);
++    EXPECT_TRUE(object_host->version_->HasOneRef());
++
++    // Make sure that OnConnectionError induces destruction of the version and
++    // the object host.
++    object_host->receivers_.Clear();
++    object_host->OnConnectionError();
++  }
++
+   BrowserTaskEnvironment task_environment_;
+   std::unique_ptr<EmbeddedWorkerTestHelper> helper_;
+   scoped_refptr<ServiceWorkerRegistration> registration_;
+@@ -409,5 +422,30 @@
+             events[0]->source_info_for_client->client_type);
+ }
+ 
++// This is a regression test for https://crbug.com/1056598.
++TEST_F(ServiceWorkerObjectHostTest, OnConnectionError) {
++  const GURL scope("https://www.example.com/");
++  const GURL script_url("https://www.example.com/service_worker.js");
++  Initialize(std::make_unique<EmbeddedWorkerTestHelper>(base::FilePath()));
++  SetUpRegistration(scope, script_url);
++
++  // Create the provider host.
++  ASSERT_EQ(blink::ServiceWorkerStatusCode::kOk,
++            StartServiceWorker(version_.get()));
++
++  // Set up the case where the last reference to the version is owned by the
++  // service worker object host.
++  ServiceWorkerContainerHost* container_host =
++      version_->provider_host()->container_host();
++  ServiceWorkerVersion* version_rawptr = version_.get();
++  version_ = nullptr;
++  ASSERT_TRUE(version_rawptr->HasOneRef());
++
++  // Simulate the connection error that induces the object host destruction.
++  // This shouldn't crash.
++  CallOnConnectionError(container_host, version_rawptr->version_id());
++  base::RunLoop().RunUntilIdle();
++}
++
+ }  // namespace service_worker_object_host_unittest
+ }  // namespace content

diff --git a/www-client/chromium/files/chromium-83-icu67.patch b/www-client/chromium/files/chromium-83-icu67.patch
new file mode 100644
index 00000000000..d45d9e810a4
--- /dev/null
+++ b/www-client/chromium/files/chromium-83-icu67.patch
@@ -0,0 +1,170 @@
+From 3f8dc4b2e5baf77b463334c769af85b79d8c1463 Mon Sep 17 00:00:00 2001
+From: Frank Tang <ftang@chromium.org>
+Date: Fri, 03 Apr 2020 23:13:54 -0700
+Subject: [PATCH] [intl] Remove soon-to-be removed getAllFieldPositions
+
+Needed to land ICU67.1 soon.
+
+Bug: v8:10393
+Change-Id: I3c7737ca600d6ccfdc46ffaddfb318ce60bc7618
+Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2136489
+Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
+Commit-Queue: Frank Tang <ftang@chromium.org>
+Cr-Commit-Position: refs/heads/master@{#67027}
+---
+
+diff --git a/v8/src/objects/js-number-format.cc b/v8/src/objects/js-number-format.cc
+index ad831c5..bcd4403 100644
+--- a/v8/src/objects/js-number-format.cc
++++ b/v8/src/objects/js-number-format.cc
+@@ -1241,44 +1241,33 @@
+ }
+ 
+ namespace {
+-Maybe<icu::UnicodeString> IcuFormatNumber(
++Maybe<bool> IcuFormatNumber(
+     Isolate* isolate,
+     const icu::number::LocalizedNumberFormatter& number_format,
+-    Handle<Object> numeric_obj, icu::FieldPositionIterator* fp_iter) {
++    Handle<Object> numeric_obj, icu::number::FormattedNumber* formatted) {
+   // If it is BigInt, handle it differently.
+   UErrorCode status = U_ZERO_ERROR;
+-  icu::number::FormattedNumber formatted;
+   if (numeric_obj->IsBigInt()) {
+     Handle<BigInt> big_int = Handle<BigInt>::cast(numeric_obj);
+     Handle<String> big_int_string;
+     ASSIGN_RETURN_ON_EXCEPTION_VALUE(isolate, big_int_string,
+                                      BigInt::ToString(isolate, big_int),
+-                                     Nothing<icu::UnicodeString>());
+-    formatted = number_format.formatDecimal(
++                                     Nothing<bool>());
++    *formatted = number_format.formatDecimal(
+         {big_int_string->ToCString().get(), big_int_string->length()}, status);
+   } else {
+     double number = numeric_obj->IsNaN()
+                         ? std::numeric_limits<double>::quiet_NaN()
+                         : numeric_obj->Number();
+-    formatted = number_format.formatDouble(number, status);
++    *formatted = number_format.formatDouble(number, status);
+   }
+   if (U_FAILURE(status)) {
+     // This happen because of icu data trimming trim out "unit".
+     // See https://bugs.chromium.org/p/v8/issues/detail?id=8641
+-    THROW_NEW_ERROR_RETURN_VALUE(isolate,
+-                                 NewTypeError(MessageTemplate::kIcuError),
+-                                 Nothing<icu::UnicodeString>());
++    THROW_NEW_ERROR_RETURN_VALUE(
++        isolate, NewTypeError(MessageTemplate::kIcuError), Nothing<bool>());
+   }
+-  if (fp_iter) {
+-    formatted.getAllFieldPositions(*fp_iter, status);
+-  }
+-  icu::UnicodeString result = formatted.toString(status);
+-  if (U_FAILURE(status)) {
+-    THROW_NEW_ERROR_RETURN_VALUE(isolate,
+-                                 NewTypeError(MessageTemplate::kIcuError),
+-                                 Nothing<icu::UnicodeString>());
+-  }
+-  return Just(result);
++  return Just(true);
+ }
+ 
+ }  // namespace
+@@ -1289,10 +1278,16 @@
+     Handle<Object> numeric_obj) {
+   DCHECK(numeric_obj->IsNumeric());
+ 
+-  Maybe<icu::UnicodeString> maybe_format =
+-      IcuFormatNumber(isolate, number_format, numeric_obj, nullptr);
++  icu::number::FormattedNumber formatted;
++  Maybe<bool> maybe_format =
++      IcuFormatNumber(isolate, number_format, numeric_obj, &formatted);
+   MAYBE_RETURN(maybe_format, Handle<String>());
+-  return Intl::ToString(isolate, maybe_format.FromJust());
++  UErrorCode status = U_ZERO_ERROR;
++  icu::UnicodeString result = formatted.toString(status);
++  if (U_FAILURE(status)) {
++    THROW_NEW_ERROR(isolate, NewTypeError(MessageTemplate::kIcuError), String);
++  }
++  return Intl::ToString(isolate, result);
+ }
+ 
+ namespace {
+@@ -1405,12 +1400,18 @@
+ }
+ 
+ namespace {
+-Maybe<int> ConstructParts(Isolate* isolate, const icu::UnicodeString& formatted,
+-                          icu::FieldPositionIterator* fp_iter,
++Maybe<int> ConstructParts(Isolate* isolate,
++                          icu::number::FormattedNumber* formatted,
+                           Handle<JSArray> result, int start_index,
+                           Handle<Object> numeric_obj, bool style_is_unit) {
++  UErrorCode status = U_ZERO_ERROR;
++  icu::UnicodeString formatted_text = formatted->toString(status);
++  if (U_FAILURE(status)) {
++    THROW_NEW_ERROR_RETURN_VALUE(
++        isolate, NewTypeError(MessageTemplate::kIcuError), Nothing<int>());
++  }
+   DCHECK(numeric_obj->IsNumeric());
+-  int32_t length = formatted.length();
++  int32_t length = formatted_text.length();
+   int index = start_index;
+   if (length == 0) return Just(index);
+ 
+@@ -1419,13 +1420,14 @@
+   // other region covers some part of the formatted string. It's possible
+   // there's another field with exactly the same begin and end as this backdrop,
+   // in which case the backdrop's field_id of -1 will give it lower priority.
+-  regions.push_back(NumberFormatSpan(-1, 0, formatted.length()));
++  regions.push_back(NumberFormatSpan(-1, 0, formatted_text.length()));
+ 
+   {
+-    icu::FieldPosition fp;
+-    while (fp_iter->next(fp)) {
+-      regions.push_back(NumberFormatSpan(fp.getField(), fp.getBeginIndex(),
+-                                         fp.getEndIndex()));
++    icu::ConstrainedFieldPosition cfp;
++    cfp.constrainCategory(UFIELD_CATEGORY_NUMBER);
++    while (formatted->nextPosition(cfp, status)) {
++      regions.push_back(
++          NumberFormatSpan(cfp.getField(), cfp.getStart(), cfp.getLimit()));
+     }
+   }
+ 
+@@ -1447,7 +1449,7 @@
+     Handle<String> substring;
+     ASSIGN_RETURN_ON_EXCEPTION_VALUE(
+         isolate, substring,
+-        Intl::ToString(isolate, formatted, part.begin_pos, part.end_pos),
++        Intl::ToString(isolate, formatted_text, part.begin_pos, part.end_pos),
+         Nothing<int>());
+     Intl::AddElement(isolate, result, index, field_type_string, substring);
+     ++index;
+@@ -1467,20 +1469,19 @@
+       number_format->icu_number_formatter().raw();
+   CHECK_NOT_NULL(fmt);
+ 
+-  icu::FieldPositionIterator fp_iter;
+-  Maybe<icu::UnicodeString> maybe_format =
+-      IcuFormatNumber(isolate, *fmt, numeric_obj, &fp_iter);
++  icu::number::FormattedNumber formatted;
++  Maybe<bool> maybe_format =
++      IcuFormatNumber(isolate, *fmt, numeric_obj, &formatted);
+   MAYBE_RETURN(maybe_format, Handle<JSArray>());
+-
+   UErrorCode status = U_ZERO_ERROR;
++
+   bool style_is_unit =
+       Style::UNIT == StyleFromSkeleton(fmt->toSkeleton(status));
+   CHECK(U_SUCCESS(status));
+ 
+   Handle<JSArray> result = factory->NewJSArray(0);
+-  Maybe<int> maybe_format_to_parts =
+-      ConstructParts(isolate, maybe_format.FromJust(), &fp_iter, result, 0,
+-                     numeric_obj, style_is_unit);
++  Maybe<int> maybe_format_to_parts = ConstructParts(
++      isolate, &formatted, result, 0, numeric_obj, style_is_unit);
+   MAYBE_RETURN(maybe_format_to_parts, Handle<JSArray>());
+ 
+   return result;


             reply	other threads:[~2020-05-01 15:32 UTC|newest]

Thread overview: 139+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-05-01 15:31 Mike Gilbert [this message]
  -- strict thread matches above, loose matches on Subject: below --
2025-02-14 12:02 [gentoo-commits] repo/gentoo:master commit in: www-client/chromium/, www-client/chromium/files/ Matt Jolly
2025-02-13 10:59 Matt Jolly
2025-02-06 23:43 Matt Jolly
2024-12-06  6:02 Matt Jolly
2024-08-08  2:14 Matt Jolly
2024-08-01  8:40 Matt Jolly
2024-07-29 22:43 Matt Jolly
2024-04-11  9:27 Matt Jolly
2023-06-10  5:31 Sam James
2023-05-05 23:27 Mike Gilbert
2023-04-20 17:43 Mike Gilbert
2023-04-13 21:23 Mike Gilbert
2023-01-25 11:17 Stephan Hartmann
2023-01-18 17:29 Stephan Hartmann
2022-12-17 22:05 Stephan Hartmann
2022-10-09 11:48 Stephan Hartmann
2022-10-06  9:12 Stephan Hartmann
2022-09-22 18:17 Stephan Hartmann
2022-08-21 13:04 Stephan Hartmann
2022-06-28  6:53 Stephan Hartmann
2022-06-14 17:01 Stephan Hartmann
2022-06-05 13:13 Stephan Hartmann
2022-06-01 21:06 Stephan Hartmann
2022-04-13 12:42 Stephan Hartmann
2022-04-08 12:28 Stephan Hartmann
2022-04-05  8:15 Stephan Hartmann
2022-03-06  8:29 Stephan Hartmann
2022-03-06  7:59 Stephan Hartmann
2022-02-15 18:45 Stephan Hartmann
2022-01-15  8:48 Stephan Hartmann
2022-01-12 19:56 Stephan Hartmann
2021-12-07 21:20 Stephan Hartmann
2021-11-24  8:06 Stephan Hartmann
2021-10-10 11:16 Stephan Hartmann
2021-09-25  7:47 Stephan Hartmann
2021-09-18 11:15 Stephan Hartmann
2021-08-03 21:08 Stephan Hartmann
2021-06-26 15:45 Stephan Hartmann
2021-04-17 12:38 Stephan Hartmann
2021-03-05 21:34 Stephan Hartmann
2021-02-20 11:43 Stephan Hartmann
2021-02-10 12:13 Stephan Hartmann
2021-01-22  8:59 Stephan Hartmann
2021-01-21 11:28 Stephan Hartmann
2021-01-10 21:36 Stephan Hartmann
2020-12-03 19:26 Stephan Hartmann
2020-11-08 12:34 Stephan Hartmann
2020-10-08  6:21 Stephan Hartmann
2020-09-24 16:38 Stephan Hartmann
2020-07-18 13:37 Mike Gilbert
2020-06-29 20:55 Mike Gilbert
2020-06-28  2:21 Mike Gilbert
2020-06-01 17:34 Mike Gilbert
2020-05-12 19:08 Mike Gilbert
2020-05-01 15:32 Mike Gilbert
2020-04-04  3:15 Mike Gilbert
2020-03-24 13:48 Mike Gilbert
2020-02-27 16:22 Mike Gilbert
2020-02-16 17:16 Mike Gilbert
2020-01-23 20:58 Mike Gilbert
2019-11-22 20:09 Mike Gilbert
2019-10-27 14:40 Mike Gilbert
2019-10-20 16:26 Mike Gilbert
2019-10-15 20:38 Mike Gilbert
2019-10-08 17:50 Mike Gilbert
2019-10-01 20:19 Mike Gilbert
2019-09-29 21:24 Mike Gilbert
2019-09-25 16:20 Mike Gilbert
2019-09-15 22:51 Mike Gilbert
2019-08-23 14:08 Mike Gilbert
2019-08-15 15:02 Mike Gilbert
2019-08-13 15:19 Mike Gilbert
2019-07-17 14:39 Mike Gilbert
2019-07-03 17:44 Mike Gilbert
2019-06-25 14:58 Mike Gilbert
2019-06-16 23:35 Mike Gilbert
2019-06-15 17:48 Mike Gilbert
2019-05-28 20:45 Mike Gilbert
2019-05-28  4:01 Mike Gilbert
2019-04-18 21:35 Pacho Ramos
2019-03-17 20:51 Mike Gilbert
2019-02-15 20:57 Mike Gilbert
2019-02-10  6:29 Mike Gilbert
2018-12-28  2:40 Jason A. Donenfeld
2018-11-05  3:30 Mike Gilbert
2018-10-15  4:59 Mike Gilbert
2018-09-30 21:28 Mike Gilbert
2018-07-22  4:46 Mike Gilbert
2018-06-15 17:39 Mike Gilbert
2018-06-10  2:48 Mike Gilbert
2018-06-09 18:21 Mike Gilbert
2018-05-09 17:12 Mike Gilbert
2018-05-06 17:29 Mike Gilbert
2018-04-25 21:02 Mike Gilbert
2018-04-23 16:14 Mike Gilbert
2018-03-09 21:03 Mike Gilbert
2018-02-09 17:06 Mike Gilbert
2017-12-24 22:11 Mike Gilbert
2017-12-23 17:45 Mike Gilbert
2017-12-16 23:24 Mike Gilbert
2017-12-16 14:07 Mike Gilbert
2017-11-13 18:19 Mike Gilbert
2017-11-12 17:49 Mike Gilbert
2017-09-30 16:26 Paweł Hajdan
2017-09-20  9:38 Paweł Hajdan
2017-09-18 15:33 Paweł Hajdan
2017-09-07 12:44 Paweł Hajdan
2017-08-22 22:08 Paweł Hajdan
2017-08-19 11:17 Paweł Hajdan
2017-08-09 16:19 Paweł Hajdan
2017-08-09 14:04 Mike Gilbert
2017-07-19 19:04 Paweł Hajdan
2017-05-24  7:07 Paweł Hajdan
2017-05-05 18:27 Paweł Hajdan
2017-04-28 15:45 Paweł Hajdan
2017-04-08 17:22 Paweł Hajdan
2017-03-29 16:27 Paweł Hajdan
2017-03-14 22:34 Mike Gilbert
2017-03-08 15:33 Paweł Hajdan
2017-02-18 14:35 Paweł Hajdan
2016-12-23 21:24 Mike Gilbert
2016-12-11 18:01 Mike Gilbert
2016-11-08  5:47 Mike Gilbert
2016-10-24 17:18 Mike Gilbert
2016-09-29  1:50 Mike Gilbert
2016-09-26  1:13 Mike Gilbert
2016-09-15  3:44 Mike Gilbert
2016-09-09 22:40 Paweł Hajdan
2016-08-24 10:23 Paweł Hajdan
2016-08-20 11:50 Paweł Hajdan
2016-08-10 20:33 Paweł Hajdan
2016-06-29 20:19 Paweł Hajdan
2016-06-02 20:14 Paweł Hajdan
2016-04-20 20:06 Paweł Hajdan
2016-03-24 23:36 Paweł Hajdan
2016-01-07 20:39 Paweł Hajdan
2015-09-30 20:29 Paweł Hajdan
2015-09-11 16:31 Mike Gilbert

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1588347097.24e0750a927f29bdfd935e68b17c3be31c92a932.floppym@gentoo \
    --to=floppym@gentoo.org \
    --cc=gentoo-commits@lists.gentoo.org \
    --cc=gentoo-dev@lists.gentoo.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox