public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
From: "Michael Palimaka" <kensington@gentoo.org>
To: gentoo-commits@lists.gentoo.org
Subject: [gentoo-commits] proj/kde:master commit in: net-libs/libaccounts-glib/files/, net-libs/libaccounts-glib/
Date: Tue, 12 May 2015 13:30:43 +0000 (UTC)	[thread overview]
Message-ID: <1431437404.8114274d1537747df97e5a3c5ff1f79ae9dbbcc4.kensington@gentoo> (raw)

commit:     8114274d1537747df97e5a3c5ff1f79ae9dbbcc4
Author:     Michael Palimaka <kensington <AT> gentoo <DOT> org>
AuthorDate: Tue May 12 13:30:04 2015 +0000
Commit:     Michael Palimaka <kensington <AT> gentoo <DOT> org>
CommitDate: Tue May 12 13:30:04 2015 +0000
URL:        https://gitweb.gentoo.org/proj/kde.git/commit/?id=8114274d

[net-libs/libaccounts-glib] Use new upstream tarball instead of patching.

Package-Manager: portage-2.2.18

 .../files/libaccounts-glib-1.16-to-1.18.patch      | 517 ---------------------
 .../libaccounts-glib/libaccounts-glib-1.18.ebuild  |  11 +-
 2 files changed, 1 insertion(+), 527 deletions(-)

diff --git a/net-libs/libaccounts-glib/files/libaccounts-glib-1.16-to-1.18.patch b/net-libs/libaccounts-glib/files/libaccounts-glib-1.16-to-1.18.patch
deleted file mode 100644
index 197e2d8..0000000
--- a/net-libs/libaccounts-glib/files/libaccounts-glib-1.16-to-1.18.patch
+++ /dev/null
@@ -1,517 +0,0 @@
-diff --git a/NEWS b/NEWS
-index 38a210c..e645c4a 100644
---- a/NEWS
-+++ b/NEWS
-@@ -1,5 +1,19 @@
- libaccounts-glib NEWS
- 
-+Version 1.18
-+------------
-+
-+* Python: fix Accounts.Manager() constructor, which got broken when version
-+  1.17 was released.
-+
-+Version 1.17
-+------------
-+
-+* Allow instantiation of AgManager with no D-Bus
-+* Tests: increase timeout in test_store_locked_cancel
-+* AgManager: expose DB timeout parameters as properties
-+* Fix build with -Werror
-+
- Version 1.16
- ------------
- 
-diff --git a/configure.ac b/configure.ac
-index 64329c1..4ddc07d 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -1,7 +1,7 @@
- dnl Process this file with autoconf to produce a configure script.
- AC_PREREQ([2.64])
- AC_INIT([libaccounts-glib],
--        [1.16],
-+        [1.18],
-         [http://code.google.com/p/accounts-sso/issues/entry],
-         [libaccounts-glib],
-         [http://code.google.com/p/accounts-sso/])
-diff --git a/libaccounts-glib/ag-manager.c b/libaccounts-glib/ag-manager.c
-index 8a4b2d0..781242b 100644
---- a/libaccounts-glib/ag-manager.c
-+++ b/libaccounts-glib/ag-manager.c
-@@ -78,8 +78,14 @@ enum
-     PROP_0,
- 
-     PROP_SERVICE_TYPE,
-+    PROP_DB_TIMEOUT,
-+    PROP_ABORT_ON_DB_TIMEOUT,
-+    PROP_USE_DBUS,
-+    N_PROPERTIES
- };
- 
-+static GParamSpec *properties[N_PROPERTIES];
-+
- enum
- {
-     ACCOUNT_CREATED,
-@@ -129,6 +135,7 @@ struct _AgManagerPrivate {
-     guint db_timeout;
- 
-     guint abort_on_db_timeout : 1;
-+    guint use_dbus : 1;
-     guint is_disposed : 1;
-     guint is_readonly : 1;
- 
-@@ -154,7 +161,12 @@ typedef struct {
-     struct timespec ts;
- } ProcessedSignalData;
- 
--G_DEFINE_TYPE (AgManager, ag_manager, G_TYPE_OBJECT);
-+static void ag_manager_initable_iface_init(gpointer g_iface,
-+                                           gpointer iface_data);
-+
-+G_DEFINE_TYPE_WITH_CODE (AgManager, ag_manager, G_TYPE_OBJECT,
-+                         G_IMPLEMENT_INTERFACE (G_TYPE_INITABLE,
-+                                            ag_manager_initable_iface_init));
- 
- #define AG_MANAGER_PRIV(obj) (AG_MANAGER(obj)->priv)
- 
-@@ -199,13 +211,24 @@ ag_manager_store_dbus_async (AgManager *manager, AgAccount *account,
-                              GSimpleAsyncResult *async_result,
-                              GCancellable *cancellable)
- {
-+    AgManagerPrivate *priv = manager->priv;
-     AgAccountChanges *changes;
-     GVariant *dbus_changes;
- 
-+    if (G_UNLIKELY (!priv->use_dbus)) {
-+        g_simple_async_result_set_error (async_result,
-+                                         AG_ACCOUNTS_ERROR,
-+                                         AG_ACCOUNTS_ERROR_READONLY,
-+                                         "DB read-only and D-Bus disabled");
-+        g_simple_async_result_complete_in_idle (async_result);
-+        g_object_unref (async_result);
-+        return;
-+    }
-+
-     changes = _ag_account_steal_changes (account);
-     dbus_changes = _ag_account_build_dbus_changes (account, changes, NULL);
- 
--    g_dbus_connection_call (manager->priv->dbus_conn,
-+    g_dbus_connection_call (priv->dbus_conn,
-                             AG_MANAGER_SERVICE_NAME,
-                             AG_MANAGER_OBJECT_PATH,
-                             AG_MANAGER_INTERFACE,
-@@ -225,14 +248,23 @@ static gboolean
- ag_manager_store_dbus_sync (AgManager *manager, AgAccount *account,
-                             GError **error)
- {
-+    AgManagerPrivate *priv = manager->priv;
-     AgAccountChanges *changes;
-     GVariant *dbus_changes;
-     GError *error_int = NULL;
- 
-+    if (G_UNLIKELY (!priv->use_dbus)) {
-+        g_set_error_literal (error,
-+                             AG_ACCOUNTS_ERROR,
-+                             AG_ACCOUNTS_ERROR_READONLY,
-+                             "DB read-only and D-Bus disabled");
-+        return FALSE;
-+    }
-+
-     changes = _ag_account_steal_changes (account);
-     dbus_changes = _ag_account_build_dbus_changes (account, changes, NULL);
- 
--    g_dbus_connection_call_sync (manager->priv->dbus_conn,
-+    g_dbus_connection_call_sync (priv->dbus_conn,
-                             AG_MANAGER_SERVICE_NAME,
-                             AG_MANAGER_OBJECT_PATH,
-                             AG_MANAGER_INTERFACE,
-@@ -972,8 +1004,11 @@ exec_transaction (AgManager *manager, AgAccount *account,
-                              account);
-     }
- 
--    /* emit DBus signals to notify other processes */
--    signal_account_changes (manager, account, changes);
-+    if (G_LIKELY (priv->use_dbus))
-+    {
-+        /* emit DBus signals to notify other processes */
-+        signal_account_changes (manager, account, changes);
-+    }
- 
-     updated = ag_manager_must_emit_updated(manager, changes);
- 
-@@ -1387,16 +1422,16 @@ add_typeless_match (AgManager *manager)
- }
- 
- static gboolean
--setup_dbus (AgManager *manager)
-+setup_dbus (AgManager *manager, GError **error)
- {
-     AgManagerPrivate *priv = manager->priv;
--    GError *error = NULL;
-+    GError *error_int = NULL;
- 
--    priv->dbus_conn = g_bus_get_sync (G_BUS_TYPE_SESSION, NULL, &error);
--    if (G_UNLIKELY (error != NULL))
-+    priv->dbus_conn = g_bus_get_sync (G_BUS_TYPE_SESSION, NULL, &error_int);
-+    if (G_UNLIKELY (error_int != NULL))
-     {
--        g_warning ("Failed to get D-Bus connection (%s)", error->message);
--        g_error_free (error);
-+        g_warning ("Failed to get D-Bus connection (%s)", error_int->message);
-+        g_propagate_error (error, error_int);
-         return FALSE;
-     }
- 
-@@ -1442,32 +1477,11 @@ ag_manager_init (AgManager *manager)
-                                NULL, (GDestroyNotify)account_weak_unref);
- 
-     priv->db_timeout = MAX_SQLITE_BUSY_LOOP_TIME_MS; /* 5 seconds */
-+    priv->use_dbus = TRUE;
- 
-     priv->object_paths = g_ptr_array_new_with_free_func (g_free);
- }
- 
--static GObject *
--ag_manager_constructor (GType type, guint n_params,
--                        GObjectConstructParam *params)
--{
--    GObjectClass *object_class = (GObjectClass *)ag_manager_parent_class;
--    AgManager *manager;
--    GObject *object;
--
--    object = object_class->constructor (type, n_params, params);
--
--    g_return_val_if_fail (object != NULL, NULL);
--
--    manager = AG_MANAGER (object);
--    if (G_UNLIKELY (!open_db (manager) || !setup_dbus (manager)))
--    {
--        g_object_unref (object);
--        return NULL;
--    }
--
--    return object;
--}
--
- static void
- ag_manager_get_property (GObject *object, guint property_id,
-                          GValue *value, GParamSpec *pspec)
-@@ -1480,6 +1494,15 @@ ag_manager_get_property (GObject *object, guint property_id,
-     case PROP_SERVICE_TYPE:
-         g_value_set_string (value, priv->service_type);
-         break;
-+    case PROP_DB_TIMEOUT:
-+        g_value_set_uint (value, priv->db_timeout);
-+        break;
-+    case PROP_ABORT_ON_DB_TIMEOUT:
-+        g_value_set_boolean (value, priv->abort_on_db_timeout);
-+        break;
-+    case PROP_USE_DBUS:
-+        g_value_set_boolean (value, priv->use_dbus);
-+        break;
-     default:
-         G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
-         break;
-@@ -1499,6 +1522,15 @@ ag_manager_set_property (GObject *object, guint property_id,
-         g_assert (priv->service_type == NULL);
-         priv->service_type = g_value_dup_string (value);
-         break;
-+    case PROP_DB_TIMEOUT:
-+        priv->db_timeout = g_value_get_uint (value);
-+        break;
-+    case PROP_ABORT_ON_DB_TIMEOUT:
-+        priv->abort_on_db_timeout = g_value_get_boolean (value);
-+        break;
-+    case PROP_USE_DBUS:
-+        priv->use_dbus = g_value_get_boolean (value);
-+        break;
-     default:
-         G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
-         break;
-@@ -1588,6 +1620,36 @@ ag_manager_finalize (GObject *object)
-     G_OBJECT_CLASS (ag_manager_parent_class)->finalize (object);
- }
- 
-+static gboolean
-+ag_manager_initable_init (GInitable *initable,
-+                          G_GNUC_UNUSED GCancellable *cancellable,
-+                          GError **error)
-+{
-+    AgManager *manager = AG_MANAGER (initable);
-+
-+    if (G_UNLIKELY (!open_db (manager)))
-+    {
-+        g_set_error_literal (error, AG_ACCOUNTS_ERROR, AG_ACCOUNTS_ERROR_DB,
-+                             "Could not open accounts DB file");
-+        return FALSE;
-+    }
-+
-+    if (G_UNLIKELY (manager->priv->use_dbus && !setup_dbus (manager, error)))
-+    {
-+        return FALSE;
-+    }
-+
-+    return TRUE;
-+}
-+
-+static void
-+ag_manager_initable_iface_init (gpointer g_iface,
-+                                G_GNUC_UNUSED gpointer iface_data)
-+{
-+    GInitableIface *iface = (GInitableIface *)g_iface;
-+    iface->init = ag_manager_initable_init;
-+}
-+
- static void
- ag_manager_account_deleted (AgManager *manager, AgAccountId id)
- {
-@@ -1606,7 +1668,6 @@ ag_manager_class_init (AgManagerClass *klass)
-     g_type_class_add_private (object_class, sizeof (AgManagerPrivate));
- 
-     klass->account_deleted = ag_manager_account_deleted;
--    object_class->constructor = ag_manager_constructor;
-     object_class->dispose = ag_manager_dispose;
-     object_class->get_property = ag_manager_get_property;
-     object_class->set_property = ag_manager_set_property;
-@@ -1619,11 +1680,53 @@ ag_manager_class_init (AgManagerClass *klass)
-      * as ag_manager_list() and ag_manager_list_services(), will be restricted
-      * to only affect accounts or services with that service type.
-      */
--    g_object_class_install_property
--        (object_class, PROP_SERVICE_TYPE,
--         g_param_spec_string ("service-type", "service type", "Set service type",
--                              NULL,
--                              G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY));
-+    properties[PROP_SERVICE_TYPE] =
-+        g_param_spec_string ("service-type", "service type", "Set service type",
-+                             NULL,
-+                             G_PARAM_STATIC_STRINGS |
-+                             G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY);
-+
-+    /**
-+     * AgManager:db-timeout:
-+     *
-+     * Timeout for database operations, in milliseconds.
-+     */
-+    properties[PROP_DB_TIMEOUT] =
-+        g_param_spec_uint ("db-timeout", "DB timeout",
-+                           "Timeout for DB operations (ms)",
-+                           0, G_MAXUINT, MAX_SQLITE_BUSY_LOOP_TIME_MS,
-+                           G_PARAM_STATIC_STRINGS | G_PARAM_READWRITE);
-+
-+    /**
-+     * AgManager:abort-on-db-timeout:
-+     *
-+     * Whether to abort the application when a database timeout occurs.
-+     */
-+    properties[PROP_ABORT_ON_DB_TIMEOUT] =
-+        g_param_spec_boolean ("abort-on-db-timeout", "Abort on DB timeout",
-+                              "Whether to abort the application on DB timeout",
-+                              FALSE,
-+                              G_PARAM_STATIC_STRINGS | G_PARAM_READWRITE);
-+
-+    /**
-+     * AgManager:use-dbus:
-+     *
-+     * Whether to use D-Bus for inter-process change notification. Setting this
-+     * property to %FALSE causes libaccounts not to emit the change
-+     * notification signals, and also not react to changes made by other
-+     * processes. Disabling D-Bus is only meant to be used for specific cases,
-+     * such as maintenance programs.
-+     */
-+    properties[PROP_USE_DBUS] =
-+        g_param_spec_boolean ("use-dbus", "Use D-Bus",
-+                              "Whether to use D-Bus for IPC",
-+                              TRUE,
-+                              G_PARAM_STATIC_STRINGS | G_PARAM_READWRITE |
-+                              G_PARAM_CONSTRUCT_ONLY);
-+
-+    g_object_class_install_properties (object_class,
-+                                       N_PROPERTIES,
-+                                       properties);
- 
-     /**
-      * AgManager::account-created:
-@@ -1716,7 +1819,8 @@ ag_manager_class_init (AgManagerClass *klass)
- AgManager *
- ag_manager_new ()
- {
--    return g_object_new (AG_TYPE_MANAGER, NULL);
-+    return g_initable_new (AG_TYPE_MANAGER, NULL, NULL,
-+                           NULL);
- }
- 
- GList *
-@@ -2549,14 +2653,11 @@ ag_manager_list_providers (AgManager *manager)
- AgManager *
- ag_manager_new_for_service_type (const gchar *service_type)
- {
--    AgManager *manager;
--
-     g_return_val_if_fail (service_type != NULL, NULL);
- 
--    manager = g_object_new (AG_TYPE_MANAGER, "service-type", service_type, NULL);
--    g_return_val_if_fail (AG_IS_MANAGER (manager), NULL);
--
--    return manager;
-+    return g_initable_new (AG_TYPE_MANAGER, NULL, NULL,
-+                           "service-type", service_type,
-+                           NULL);
- }
- 
- /**
-diff --git a/libaccounts-glib/ag-provider.c b/libaccounts-glib/ag-provider.c
-index 426cb2c..187614b 100644
---- a/libaccounts-glib/ag-provider.c
-+++ b/libaccounts-glib/ag-provider.c
-@@ -441,7 +441,7 @@ ag_provider_get_plugin_name (AgProvider *provider)
- gboolean
- ag_provider_get_single_account (AgProvider *provider)
- {
--    g_return_val_if_fail (provider != NULL, NULL);
-+    g_return_val_if_fail (provider != NULL, FALSE);
-     return provider->single_account;
- }
- 
-diff --git a/pygobject/Accounts.py b/pygobject/Accounts.py
-index 2cae5e8..88cebca 100644
---- a/pygobject/Accounts.py
-+++ b/pygobject/Accounts.py
-@@ -30,6 +30,16 @@ def _get_bool(self, key, default_value=None):
-     else:
-         return default_value
- 
-+class Manager(Accounts.Manager):
-+    def __new__(cls):
-+        # Since AgManager implements GInitable, g_object_new() doesn't
-+        # initialize it properly
-+        # See also: https://bugzilla.gnome.org/show_bug.cgi?id=724275
-+        return Accounts.Manager.new()
-+
-+Manager = override(Manager)
-+__all__.append('Manager')
-+
- class Account(Accounts.Account):
-     get_string = _get_string
-     get_int = _get_int
-diff --git a/tests/check_ag.c b/tests/check_ag.c
-index f9b4a4e..6b9aba0 100644
---- a/tests/check_ag.c
-+++ b/tests/check_ag.c
-@@ -225,6 +225,34 @@ START_TEST(test_init)
- }
- END_TEST
- 
-+START_TEST(test_timeout_properties)
-+{
-+    gboolean abort_on_db_timeout;
-+    guint db_timeout;
-+
-+    manager = ag_manager_new ();
-+    ck_assert (AG_IS_MANAGER (manager));
-+
-+    g_object_get (manager,
-+                  "db-timeout", &db_timeout,
-+                  "abort-on-db-timeout", &abort_on_db_timeout,
-+                  NULL);
-+
-+    ck_assert (!abort_on_db_timeout);
-+    ck_assert (!ag_manager_get_abort_on_db_timeout (manager));
-+    ck_assert_uint_eq (db_timeout, ag_manager_get_db_timeout (manager));
-+
-+    g_object_set (manager,
-+                  "db-timeout", 120,
-+                  "abort_on_db_timeout", TRUE,
-+                  NULL);
-+    ck_assert (ag_manager_get_abort_on_db_timeout (manager));
-+    ck_assert_uint_eq (ag_manager_get_db_timeout (manager), 120);
-+
-+    end_test ();
-+}
-+END_TEST
-+
- START_TEST(test_object)
- {
-     manager = ag_manager_new ();
-@@ -521,8 +549,8 @@ START_TEST(test_store_locked_cancel)
-     main_loop = g_main_loop_new (NULL, FALSE);
-     cancellable = g_cancellable_new ();
-     ag_account_store_async (account, cancellable, account_store_locked_cancel_cb, &cb_called);
--    g_timeout_add (10, (GSourceFunc)cancel_store, cancellable);
--    g_timeout_add (20, (GSourceFunc)release_lock_cancel, db);
-+    g_timeout_add (100, (GSourceFunc)cancel_store, cancellable);
-+    g_timeout_add (200, (GSourceFunc)release_lock_cancel, db);
-     fail_unless (main_loop != NULL, "Callback invoked too early");
-     g_debug ("Running loop");
-     g_main_loop_run (main_loop);
-@@ -2655,6 +2683,43 @@ START_TEST(test_watches)
- }
- END_TEST
- 
-+START_TEST(test_no_dbus)
-+{
-+    gchar *bus_address;
-+    gboolean use_dbus = TRUE;
-+
-+    /* Unset the DBUS_SESSION_BUS_ADDRESS variable, so that the connection
-+     * to D-Bus will fail.
-+     */
-+    bus_address = g_strdup (g_getenv ("DBUS_SESSION_BUS_ADDRESS"));
-+    g_unsetenv("DBUS_SESSION_BUS_ADDRESS");
-+
-+    manager = g_initable_new (AG_TYPE_MANAGER, NULL, NULL,
-+                              "use-dbus", FALSE,
-+                              NULL);
-+    ck_assert_msg (manager != NULL, "AgManager creation failed even "
-+                   "with use-dbus set to FALSE");
-+
-+    g_object_get (manager, "use-dbus", &use_dbus, NULL);
-+    ck_assert (!use_dbus);
-+
-+    /* Test creating an account */
-+    account = ag_manager_create_account (manager, PROVIDER);
-+    ag_account_set_enabled (account, TRUE);
-+    ag_account_store (account, account_store_now_cb, TEST_STRING);
-+    run_main_loop_for_n_seconds(0);
-+    ck_assert_msg (data_stored, "Callback not invoked immediately");
-+    ck_assert_msg (account->id != 0, "Account ID is still 0!");
-+
-+    /* Restore the initial value */
-+    g_setenv ("DBUS_SESSION_BUS_ADDRESS", bus_address, TRUE);
-+
-+    g_free (bus_address);
-+
-+    end_test ();
-+}
-+END_TEST
-+
- static void
- on_account_created (AgManager *manager, AgAccountId account_id,
-                     AgAccountId *id)
-@@ -3079,7 +3144,7 @@ START_TEST(test_blocking)
-      *
-      * Instead, let's just check that we haven't been locking for too long.
-      */
--    fail_unless (block_ms < timeout_ms + 2000);
-+    fail_unless (block_ms < timeout_ms + 10000);
- 
-     end_test ();
- }
-@@ -3825,6 +3890,7 @@ ag_suite(const char *test_case)
- 
-     tc = tcase_create("Core");
-     tcase_add_test (tc, test_init);
-+    tcase_add_test (tc, test_timeout_properties);
-     IF_TEST_CASE_ENABLED("Core")
-         suite_add_tcase (s, tc);
- 
-@@ -3895,6 +3961,7 @@ ag_suite(const char *test_case)
-         suite_add_tcase (s, tc);
- 
-     tc = tcase_create("Concurrency");
-+    tcase_add_test (tc, test_no_dbus);
-     tcase_add_test (tc, test_concurrency);
-     tcase_add_test (tc, test_blocking);
-     tcase_add_test (tc, test_manager_new_for_service_type);

diff --git a/net-libs/libaccounts-glib/libaccounts-glib-1.18.ebuild b/net-libs/libaccounts-glib/libaccounts-glib-1.18.ebuild
index e5f5401..6c58b70 100644
--- a/net-libs/libaccounts-glib/libaccounts-glib-1.18.ebuild
+++ b/net-libs/libaccounts-glib/libaccounts-glib-1.18.ebuild
@@ -4,11 +4,9 @@
 
 EAPI=5
 
-inherit autotools eutils
-
 DESCRIPTION="Accounts and SSO (Single Sign-On) framework for Linux and POSIX based platforms."
 HOMEPAGE="https://01.org/gsso/"
-SRC_URI="https://accounts-sso.googlecode.com/files/${PN}-1.16.tar.gz"
+SRC_URI="http://dev.gentoo.org/~kensington/distfiles/${P}.tar.gz"
 
 LICENSE="LGPL-2.1"
 SLOT="0"
@@ -24,13 +22,6 @@ DEPEND="
 
 RDEPEND="$DEPEND"
 
-S="${WORKDIR}/${PN}-1.16"
-
-src_prepare() {
-	epatch "${FILESDIR}"/${PN}-1.16-to-1.18.patch
-	eautoreconf
-}
-
 src_configure() {
 	export HAVE_GCOV_FALSE='#'
 	econf $(use_enable debug)


             reply	other threads:[~2015-05-12 13:30 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-05-12 13:30 Michael Palimaka [this message]
  -- strict thread matches above, loose matches on Subject: below --
2014-12-01 12:38 [gentoo-commits] proj/kde:master commit in: net-libs/libaccounts-glib/files/, net-libs/libaccounts-glib/ Michael Palimaka

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=1431437404.8114274d1537747df97e5a3c5ff1f79ae9dbbcc4.kensington@gentoo \
    --to=kensington@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