Compare commits
10 Commits
37849b9e0c
...
1ad89966bf
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
1ad89966bf | ||
|
|
daac7cb3f6 | ||
|
|
2730e0bf21 | ||
|
|
e3653325b7 | ||
|
|
5f1461adec | ||
|
|
5753fb2c6e | ||
|
|
0ebca4a38a | ||
|
|
a9977c1006 | ||
|
|
e92e4a7447 | ||
|
|
a3b2a498fc |
@ -1,80 +0,0 @@
|
|||||||
From 10b064844855a3d0ce4cefb5c8d02eab7e0d2d6a Mon Sep 17 00:00:00 2001
|
|
||||||
From: Debarshi Ray <debarshir@gnome.org>
|
|
||||||
Date: Thu, 4 Oct 2018 11:28:15 +0200
|
|
||||||
Subject: [PATCH] online-accounts: Track the lifecycle of CcGoaPanel across
|
|
||||||
async calls
|
|
||||||
|
|
||||||
Due to an API bug in GNOME Online Accounts, the asynchronous
|
|
||||||
goa_provider_get_all method doesn't accept a GCancellable argument.
|
|
||||||
This makes it difficult to cancel an ongoing call when the CcGoaPanel
|
|
||||||
gets destroyed.
|
|
||||||
|
|
||||||
Prior to commit c26f8ae018900a55, this was hacked around by taking a
|
|
||||||
reference on the panel for the duration of the call. Instead of
|
|
||||||
cancelling a pending call on destruction, it would keep the panel alive
|
|
||||||
until the call was over. However, that was lost during commit
|
|
||||||
c26f8ae018900a55.
|
|
||||||
|
|
||||||
One thing to bear in mind is that GtkWidgets, CcGoaPanel is one, can
|
|
||||||
be destroyed by a gtk_widget_destroy call, which is subtly different
|
|
||||||
than a simple sequence of g_object_unref calls. When gtk_widget_destroy
|
|
||||||
is used, it invokes the GObject::dispose virtual method of the widget.
|
|
||||||
It is expected this will cause anything holding a reference to this
|
|
||||||
widget to drop their references, leading to GObject::finalize being
|
|
||||||
called. However, there is no guarantee that this will happen in the
|
|
||||||
same iteration of the GMainLoop. Therefore, it is possible that when
|
|
||||||
the goa_provider_get_all call finishes, the CcGoaPanel might be in a
|
|
||||||
disposed, but not yet finalized state.
|
|
||||||
|
|
||||||
When a GObject is in a disposed-but-not-finalized state, only a very
|
|
||||||
limited number of operations can be performed on it. Its reference
|
|
||||||
count can be altered, the memory used by the instance struct can be
|
|
||||||
accessed, but none of the member GObjects can be assumed to be valid.
|
|
||||||
eg., it's definitely illegal to add new rows to the member GtkListBox.
|
|
||||||
Hence a boolean flag is used to mark the destroyed state of the panel.
|
|
||||||
|
|
||||||
This second part is a small improvement over the earlier hack.
|
|
||||||
|
|
||||||
https://gitlab.gnome.org/GNOME/gnome-control-center/issues/208
|
|
||||||
---
|
|
||||||
|
|
||||||
diff --git a/panels/online-accounts/cc-online-accounts-panel.c b/panels/online-accounts/cc-online-accounts-panel.c
|
|
||||||
index e6d6a3d..2afddeb 100644
|
|
||||||
--- a/panels/online-accounts/cc-online-accounts-panel.c
|
|
||||||
+++ b/panels/online-accounts/cc-online-accounts-panel.c
|
|
||||||
@@ -57,6 +57,7 @@ struct _CcGoaPanel
|
|
||||||
GoaObject *active_object;
|
|
||||||
GoaObject *removed_object;
|
|
||||||
|
|
||||||
+ gboolean destroyed;
|
|
||||||
guint remove_account_timeout_id;
|
|
||||||
};
|
|
||||||
|
|
||||||
@@ -399,6 +400,8 @@ cc_goa_panel_dispose (GObject *object)
|
|
||||||
/* Must be destroyed in dispose, not finalize. */
|
|
||||||
g_clear_pointer ((GtkWidget **) &panel->edit_account_dialog, gtk_widget_destroy);
|
|
||||||
|
|
||||||
+ panel->destroyed = TRUE;
|
|
||||||
+
|
|
||||||
G_OBJECT_CLASS (cc_goa_panel_parent_class)->dispose (object);
|
|
||||||
}
|
|
||||||
|
|
||||||
@@ -493,6 +496,8 @@ cc_goa_panel_init (CcGoaPanel *panel)
|
|
||||||
|
|
||||||
fill_accounts_listbox (panel);
|
|
||||||
|
|
||||||
+ goa_provider_get_all (get_all_providers_cb, g_object_ref_sink (panel));
|
|
||||||
+
|
|
||||||
gtk_widget_show (GTK_WIDGET (panel));
|
|
||||||
}
|
|
||||||
|
|
||||||
@@ -875,6 +880,9 @@ get_all_providers_cb (GObject *source,
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
+ if (self->destroyed)
|
|
||||||
+ return;
|
|
||||||
+
|
|
||||||
for (l = providers; l != NULL; l = l->next)
|
|
||||||
{
|
|
||||||
GoaProvider *provider;
|
|
||||||
@ -1,246 +0,0 @@
|
|||||||
From d8a9c8c3526980e576e8d61d033cd983562b07d3 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Benjamin Berg <bberg@redhat.com>
|
|
||||||
Date: Mon, 1 Oct 2018 20:36:05 +0200
|
|
||||||
Subject: [PATCH] background: Add queue to load 4 pictures at a time
|
|
||||||
|
|
||||||
We need to process the pictures sequentially rather than trying to
|
|
||||||
thumbnail all of them in parallel. This commit adds a simple task queue
|
|
||||||
from which 4 tasks at will be processed at the same time.
|
|
||||||
|
|
||||||
Fixes #191
|
|
||||||
---
|
|
||||||
diff --git a/panels/background/bg-pictures-source.c b/panels/background/bg-pictures-source.c
|
|
||||||
index 3a3027b..3b955bb 100644
|
|
||||||
--- a/panels/background/bg-pictures-source.c
|
|
||||||
+++ b/panels/background/bg-pictures-source.c
|
|
||||||
@@ -45,12 +45,26 @@ struct _BgPicturesSource
|
|
||||||
|
|
||||||
CcBackgroundGriloMiner *grl_miner;
|
|
||||||
|
|
||||||
+ GQueue add_queue;
|
|
||||||
+ gint adds_running;
|
|
||||||
+
|
|
||||||
GFileMonitor *picture_dir_monitor;
|
|
||||||
GFileMonitor *cache_dir_monitor;
|
|
||||||
|
|
||||||
GHashTable *known_items;
|
|
||||||
};
|
|
||||||
|
|
||||||
+#define MAX_PARALLEL_ADD 4
|
|
||||||
+
|
|
||||||
+typedef struct {
|
|
||||||
+ BgPicturesSource *bg_source;
|
|
||||||
+ GFile *file;
|
|
||||||
+ gchar *content_type;
|
|
||||||
+ guint64 mtime;
|
|
||||||
+ GtkTreeRowReference **ret_row_ref;
|
|
||||||
+ GCancellable *cancellable;
|
|
||||||
+} AddQueueData;
|
|
||||||
+
|
|
||||||
G_DEFINE_TYPE (BgPicturesSource, bg_pictures_source, BG_TYPE_SOURCE)
|
|
||||||
|
|
||||||
const char * const content_types[] = {
|
|
||||||
@@ -72,6 +86,86 @@ static char *bg_pictures_source_get_unique_filename (const char *uri);
|
|
||||||
|
|
||||||
static void picture_opened_for_read (GObject *source_object, GAsyncResult *res, gpointer user_data);
|
|
||||||
|
|
||||||
+static gboolean add_single_file_real (BgPicturesSource *bg_source,
|
|
||||||
+ GFile *file,
|
|
||||||
+ const gchar *content_type,
|
|
||||||
+ guint64 mtime,
|
|
||||||
+ GtkTreeRowReference **ret_row_ref);
|
|
||||||
+
|
|
||||||
+static void
|
|
||||||
+add_queue_data_free (AddQueueData *data)
|
|
||||||
+{
|
|
||||||
+ g_clear_object (&data->file);
|
|
||||||
+ g_clear_object (&data->cancellable);
|
|
||||||
+ g_free (data->content_type);
|
|
||||||
+ g_free (data);
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+static gboolean
|
|
||||||
+add_single_file_idle (gpointer user_data)
|
|
||||||
+{
|
|
||||||
+ AddQueueData *data = (AddQueueData*) user_data;
|
|
||||||
+
|
|
||||||
+ if (!g_cancellable_is_cancelled (data->cancellable))
|
|
||||||
+ add_single_file_real (data->bg_source, data->file, data->content_type,
|
|
||||||
+ data->mtime, data->ret_row_ref);
|
|
||||||
+ add_queue_data_free (data);
|
|
||||||
+
|
|
||||||
+ return FALSE;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+static void
|
|
||||||
+ensure_add_processing (BgPicturesSource *bg_source)
|
|
||||||
+{
|
|
||||||
+ while (bg_source->adds_running < MAX_PARALLEL_ADD)
|
|
||||||
+ {
|
|
||||||
+ AddQueueData *data = g_queue_pop_head (&bg_source->add_queue);
|
|
||||||
+
|
|
||||||
+ /* Nothing left to process */
|
|
||||||
+ if (!data)
|
|
||||||
+ return;
|
|
||||||
+
|
|
||||||
+ g_idle_add (add_single_file_idle, data);
|
|
||||||
+
|
|
||||||
+ bg_source->adds_running += 1;
|
|
||||||
+ }
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+static void
|
|
||||||
+add_processing_finished (BgPicturesSource *bg_source)
|
|
||||||
+{
|
|
||||||
+ g_assert (bg_source->adds_running > 0);
|
|
||||||
+
|
|
||||||
+ bg_source->adds_running -= 1;
|
|
||||||
+
|
|
||||||
+ ensure_add_processing (bg_source);
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+static gboolean
|
|
||||||
+add_single_file (BgPicturesSource *bg_source,
|
|
||||||
+ GFile *file,
|
|
||||||
+ const gchar *content_type,
|
|
||||||
+ guint64 mtime,
|
|
||||||
+ GtkTreeRowReference **ret_row_ref)
|
|
||||||
+{
|
|
||||||
+ AddQueueData *data = g_new0 (AddQueueData, 1);
|
|
||||||
+
|
|
||||||
+ data->bg_source = bg_source;
|
|
||||||
+ data->file = g_object_ref (file);
|
|
||||||
+ data->content_type = g_strdup (content_type);
|
|
||||||
+ data->mtime = mtime;
|
|
||||||
+ data->ret_row_ref = ret_row_ref;
|
|
||||||
+ data->cancellable = g_object_ref (bg_source->cancellable);
|
|
||||||
+
|
|
||||||
+ g_queue_push_tail (&bg_source->add_queue, data);
|
|
||||||
+
|
|
||||||
+ ensure_add_processing (bg_source);
|
|
||||||
+
|
|
||||||
+ /* Just return TRUE. */
|
|
||||||
+ return TRUE;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+
|
|
||||||
static void
|
|
||||||
bg_pictures_source_dispose (GObject *object)
|
|
||||||
{
|
|
||||||
@@ -83,6 +177,9 @@ bg_pictures_source_dispose (GObject *object)
|
|
||||||
g_clear_object (&source->cancellable);
|
|
||||||
}
|
|
||||||
|
|
||||||
+ g_queue_foreach (&source->add_queue, (GFunc) add_queue_data_free, NULL);
|
|
||||||
+ g_queue_clear (&source->add_queue);
|
|
||||||
+
|
|
||||||
g_clear_object (&source->grl_miner);
|
|
||||||
|
|
||||||
G_OBJECT_CLASS (bg_pictures_source_parent_class)->dispose (object);
|
|
||||||
@@ -206,6 +303,10 @@ picture_scaled (GObject *source_object,
|
|
||||||
{
|
|
||||||
g_warning ("Failed to load image: %s", error->message);
|
|
||||||
remove_placeholder (BG_PICTURES_SOURCE (user_data), item);
|
|
||||||
+
|
|
||||||
+ bg_source = BG_PICTURES_SOURCE (user_data);
|
|
||||||
+ add_processing_finished (bg_source);
|
|
||||||
+
|
|
||||||
}
|
|
||||||
|
|
||||||
return;
|
|
||||||
@@ -227,7 +328,9 @@ picture_scaled (GObject *source_object,
|
|
||||||
{
|
|
||||||
g_debug ("Ignored URL '%s' as it's a screenshot from gnome-screenshot", uri);
|
|
||||||
remove_placeholder (BG_PICTURES_SOURCE (user_data), item);
|
|
||||||
- return;
|
|
||||||
+
|
|
||||||
+ add_processing_finished (bg_source);
|
|
||||||
+ return;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Process embedded orientation */
|
|
||||||
@@ -262,6 +365,8 @@ picture_scaled (GObject *source_object,
|
|
||||||
GINT_TO_POINTER (TRUE));
|
|
||||||
|
|
||||||
g_clear_pointer (&surface, cairo_surface_destroy);
|
|
||||||
+
|
|
||||||
+ add_processing_finished (bg_source);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
@@ -286,6 +391,9 @@ picture_opened_for_read (GObject *source_object,
|
|
||||||
g_autofree gchar *filename = g_file_get_path (G_FILE (source_object));
|
|
||||||
g_warning ("Failed to load picture '%s': %s", filename, error->message);
|
|
||||||
remove_placeholder (BG_PICTURES_SOURCE (user_data), item);
|
|
||||||
+
|
|
||||||
+ bg_source = BG_PICTURES_SOURCE (user_data);
|
|
||||||
+ add_processing_finished (bg_source);
|
|
||||||
}
|
|
||||||
|
|
||||||
return;
|
|
||||||
@@ -339,6 +447,10 @@ picture_copied_for_read (GObject *source_object,
|
|
||||||
|
|
||||||
uri = g_file_get_uri (thumbnail_file);
|
|
||||||
g_warning ("Failed to download '%s': %s", uri, error->message);
|
|
||||||
+
|
|
||||||
+ bg_source = BG_PICTURES_SOURCE (user_data);
|
|
||||||
+ add_processing_finished (bg_source);
|
|
||||||
+
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -378,10 +490,11 @@ bg_pictures_source_get_cache_file (void)
|
|
||||||
}
|
|
||||||
|
|
||||||
static gboolean
|
|
||||||
-add_single_file (BgPicturesSource *bg_source,
|
|
||||||
- GFile *file,
|
|
||||||
- const gchar *content_type,
|
|
||||||
- guint64 mtime)
|
|
||||||
+add_single_file_real (BgPicturesSource *bg_source,
|
|
||||||
+ GFile *file,
|
|
||||||
+ const gchar *content_type,
|
|
||||||
+ guint64 mtime,
|
|
||||||
+ GtkTreeRowReference **ret_row_ref)
|
|
||||||
{
|
|
||||||
g_autoptr(CcBackgroundItem) item = NULL;
|
|
||||||
CcBackgroundItemFlags flags = 0;
|
|
||||||
@@ -480,6 +593,11 @@ add_single_file (BgPicturesSource *bg_source,
|
|
||||||
retval = TRUE;
|
|
||||||
|
|
||||||
out:
|
|
||||||
+
|
|
||||||
+ /* Async processing is happening. */
|
|
||||||
+ if (!retval)
|
|
||||||
+ add_processing_finished (bg_source);
|
|
||||||
+
|
|
||||||
return retval;
|
|
||||||
}
|
|
||||||
|
|
||||||
@@ -493,7 +611,7 @@ add_single_file_from_info (BgPicturesSource *bg_source,
|
|
||||||
|
|
||||||
content_type = g_file_info_get_content_type (info);
|
|
||||||
mtime = g_file_info_get_attribute_uint64 (info, G_FILE_ATTRIBUTE_TIME_MODIFIED);
|
|
||||||
- return add_single_file (bg_source, file, content_type, mtime);
|
|
||||||
+ return add_single_file (bg_source, file, content_type, mtime, NULL);
|
|
||||||
}
|
|
||||||
|
|
||||||
static gboolean
|
|
||||||
@@ -518,7 +636,7 @@ add_single_file_from_media (BgPicturesSource *bg_source,
|
|
||||||
else
|
|
||||||
mtime_unix = g_get_real_time () / G_USEC_PER_SEC;
|
|
||||||
|
|
||||||
- return add_single_file (bg_source, file, content_type, (guint64) mtime_unix);
|
|
||||||
+ return add_single_file (bg_source, file, content_type, (guint64) mtime_unix, NULL);
|
|
||||||
}
|
|
||||||
|
|
||||||
gboolean
|
|
||||||
@@ -828,6 +946,8 @@ bg_pictures_source_init (BgPicturesSource *self)
|
|
||||||
(GDestroyNotify) g_free,
|
|
||||||
NULL);
|
|
||||||
|
|
||||||
+ g_queue_init (&self->add_queue);
|
|
||||||
+
|
|
||||||
pictures_path = g_get_user_special_dir (G_USER_DIRECTORY_PICTURES);
|
|
||||||
if (pictures_path == NULL)
|
|
||||||
pictures_path = g_get_home_dir ();
|
|
||||||
@ -1,17 +1,16 @@
|
|||||||
diff --git a/panels/user-accounts/run-passwd.c b/panels/user-accounts/run-passwd.c
|
diff -up gnome-control-center-43.2/panels/user-accounts/run-passwd.c.BAK gnome-control-center-43.2/panels/user-accounts/run-passwd.c
|
||||||
index 56eea9f..1abefcd 100644
|
--- gnome-control-center-43.2/panels/user-accounts/run-passwd.c.BAK 2023-01-10 16:43:06.694171795 +0800
|
||||||
--- a/panels/user-accounts/run-passwd.c
|
+++ gnome-control-center-43.2/panels/user-accounts/run-passwd.c 2023-01-10 16:45:52.034162096 +0800
|
||||||
+++ b/panels/user-accounts/run-passwd.c
|
@@ -446,7 +446,7 @@ io_watch_stdout (GIOChannel *source, GIO
|
||||||
@@ -471,7 +471,7 @@ io_watch_stdout (GIOChannel *source, GIOCondition condition, PasswdHandler *pass
|
|
||||||
"different",
|
"different",
|
||||||
"wrapped",
|
"wrapped",
|
||||||
"recovered",
|
"recovered",
|
||||||
- "recent",
|
- "recent",
|
||||||
+ "already used",
|
+ "already used",
|
||||||
"unchanged",
|
"unchanged",
|
||||||
"match",
|
"match",
|
||||||
"1 numeric or special",
|
"1 numeric or special",
|
||||||
@@ -514,9 +514,9 @@ io_watch_stdout (GIOChannel *source, GIOCondition condition, PasswdHandler *pass
|
@@ -490,9 +490,9 @@ io_watch_stdout (GIOChannel *source, GIO
|
||||||
strstr (str->str, "wrapped") != NULL) {
|
strstr (str->str, "wrapped") != NULL) {
|
||||||
error = g_error_new (PASSWD_ERROR, PASSWD_ERROR_REJECTED,
|
error = g_error_new (PASSWD_ERROR, PASSWD_ERROR_REJECTED,
|
||||||
_("The old and new passwords are too similar"));
|
_("The old and new passwords are too similar"));
|
||||||
@ -23,18 +22,17 @@ index 56eea9f..1abefcd 100644
|
|||||||
} else if (strstr (str->str, "1 numeric or special") != NULL) {
|
} else if (strstr (str->str, "1 numeric or special") != NULL) {
|
||||||
error = g_error_new (PASSWD_ERROR, PASSWD_ERROR_REJECTED,
|
error = g_error_new (PASSWD_ERROR, PASSWD_ERROR_REJECTED,
|
||||||
_("The new password must contain numeric or special characters"));
|
_("The new password must contain numeric or special characters"));
|
||||||
diff --git a/po/zh_CN.po b/po/zh_CN.po
|
diff -up gnome-control-center-43.2/po/zh_CN.po.BAK gnome-control-center-43.2/po/zh_CN.po
|
||||||
index ba8a7a8..03540dd 100644
|
--- gnome-control-center-43.2/po/zh_CN.po.BAK 2023-01-10 16:46:29.198159916 +0800
|
||||||
--- a/po/zh_CN.po
|
+++ gnome-control-center-43.2/po/zh_CN.po 2023-01-10 16:47:38.446155853 +0800
|
||||||
+++ b/po/zh_CN.po
|
@@ -8505,8 +8505,8 @@ msgstr "新密码和旧密码太相似"
|
||||||
@@ -7642,8 +7642,8 @@ msgstr "新密码和旧密码太相似"
|
|
||||||
|
|
||||||
#: panels/user-accounts/run-passwd.c:519
|
#: panels/user-accounts/run-passwd.c:495
|
||||||
#, c-format
|
#, c-format
|
||||||
-msgid "The new password has already been used recently."
|
-msgid "The new password has already been used recently."
|
||||||
-msgstr "新的密码最近已使用过。"
|
-msgstr "新的密码最近已使用过。"
|
||||||
+msgid "Password has been already used. Choose another."
|
+msgid "Password has been already used. Choose another."
|
||||||
+msgstr "新密码在最近已经使用过。请选用其他密码"
|
+msgstr "新密码在最近已经使用过。请选用其他密码"
|
||||||
|
|
||||||
#: panels/user-accounts/run-passwd.c:522
|
#: panels/user-accounts/run-passwd.c:498
|
||||||
#, c-format
|
#, c-format
|
||||||
|
|||||||
Binary file not shown.
BIN
gnome-control-center-44.4.tar.xz
Normal file
BIN
gnome-control-center-44.4.tar.xz
Normal file
Binary file not shown.
@ -1,5 +1,5 @@
|
|||||||
diff --git a/panels/user-accounts/pw-utils.c b/panels/user-accounts/pw-utils.c
|
diff --git a/panels/user-accounts/pw-utils.c b/panels/user-accounts/pw-utils.c
|
||||||
index 0f4dfd8..617e0d7 100644
|
index 0f4dfd8..700a5a4 100644
|
||||||
--- a/panels/user-accounts/pw-utils.c
|
--- a/panels/user-accounts/pw-utils.c
|
||||||
+++ b/panels/user-accounts/pw-utils.c
|
+++ b/panels/user-accounts/pw-utils.c
|
||||||
@@ -127,7 +127,7 @@ pw_error_hint (gint error)
|
@@ -127,7 +127,7 @@ pw_error_hint (gint error)
|
||||||
@ -7,15 +7,15 @@ index 0f4dfd8..617e0d7 100644
|
|||||||
return C_("Password hint", "Password needs to be longer. Try to add more letters, numbers and punctuation.");
|
return C_("Password hint", "Password needs to be longer. Try to add more letters, numbers and punctuation.");
|
||||||
case PWQ_ERROR_EMPTY_PASSWORD:
|
case PWQ_ERROR_EMPTY_PASSWORD:
|
||||||
- return C_("Password hint", "Mix uppercase and lowercase and try to use a number or two.");
|
- return C_("Password hint", "Mix uppercase and lowercase and try to use a number or two.");
|
||||||
+ return C_("Password hint", "Mix at least three types of these: lower and upper case letters, digits and any of characters.");
|
+ return C_("Password hint", "Mix at least three types of these: lower and upper case letters, digits and any of characters.");
|
||||||
default:
|
default:
|
||||||
return C_("Password hint", "Adding more letters, numbers and punctuation will make the password stronger.");
|
return C_("Password hint", "Adding more letters, numbers and punctuation will make the password stronger.");
|
||||||
}
|
}
|
||||||
diff --git a/po/zh_CN.po b/po/zh_CN.po
|
diff --git a/po/zh_CN.po b/po/zh_CN.po
|
||||||
index 03540dd..34e1624 100644
|
index 1e1984e..bab9794 100644
|
||||||
--- a/po/zh_CN.po
|
--- a/po/zh_CN.po
|
||||||
+++ b/po/zh_CN.po
|
+++ b/po/zh_CN.po
|
||||||
@@ -7612,8 +7612,8 @@ msgstr "需要更长的密码。请试着加入更多的字母、数字和标点
|
@@ -7708,8 +7708,8 @@ msgstr "需要更长的密码。请试着加入更多的字母、数字和标点
|
||||||
|
|
||||||
#: panels/user-accounts/pw-utils.c:130
|
#: panels/user-accounts/pw-utils.c:130
|
||||||
msgctxt "Password hint"
|
msgctxt "Password hint"
|
||||||
|
|||||||
@ -1,10 +1,3 @@
|
|||||||
From 758b69f9834d24120a7e5f1c20cf5b63c67a4aca Mon Sep 17 00:00:00 2001
|
|
||||||
Date: Fri, 14 Feb 2020 18:14:33 +0800
|
|
||||||
Subject: [PATCH] control-center: remove country in the name of timezone
|
|
||||||
|
|
||||||
Change-Id: I794c649d35e498bdd4273062b982c04ebe953e6c
|
|
||||||
---
|
|
||||||
|
|
||||||
diff --git a/panels/datetime/backward b/panels/datetime/backward
|
diff --git a/panels/datetime/backward b/panels/datetime/backward
|
||||||
index 8594be6..3fe71fc 100644
|
index 8594be6..3fe71fc 100644
|
||||||
--- a/panels/datetime/backward
|
--- a/panels/datetime/backward
|
||||||
@ -25,10 +18,10 @@ index 8594be6..3fe71fc 100644
|
|||||||
\ No newline at end of file
|
\ No newline at end of file
|
||||||
+Link Etc/UTC Zulu
|
+Link Etc/UTC Zulu
|
||||||
diff --git a/panels/datetime/cc-datetime-panel.c b/panels/datetime/cc-datetime-panel.c
|
diff --git a/panels/datetime/cc-datetime-panel.c b/panels/datetime/cc-datetime-panel.c
|
||||||
index eb7e78b..3a58d93 100644
|
index c1e6aaa..f562556 100644
|
||||||
--- a/panels/datetime/cc-datetime-panel.c
|
--- a/panels/datetime/cc-datetime-panel.c
|
||||||
+++ b/panels/datetime/cc-datetime-panel.c
|
+++ b/panels/datetime/cc-datetime-panel.c
|
||||||
@@ -414,7 +414,6 @@ translated_city_name (TzLocation *loc)
|
@@ -405,7 +405,6 @@ translated_city_name (TzLocation *loc)
|
||||||
{
|
{
|
||||||
g_autofree gchar *zone_translated = NULL;
|
g_autofree gchar *zone_translated = NULL;
|
||||||
g_auto(GStrv) split_translated = NULL;
|
g_auto(GStrv) split_translated = NULL;
|
||||||
@ -36,7 +29,7 @@ index eb7e78b..3a58d93 100644
|
|||||||
gchar *name;
|
gchar *name;
|
||||||
gint length;
|
gint length;
|
||||||
|
|
||||||
@@ -427,11 +426,10 @@ translated_city_name (TzLocation *loc)
|
@@ -418,11 +417,9 @@ translated_city_name (TzLocation *loc)
|
||||||
|
|
||||||
length = g_strv_length (split_translated);
|
length = g_strv_length (split_translated);
|
||||||
|
|
||||||
@ -48,7 +41,6 @@ index eb7e78b..3a58d93 100644
|
|||||||
+ /* Translators: "city" */
|
+ /* Translators: "city" */
|
||||||
+ name = g_strdup_printf (C_("timezone loc", "%s"),
|
+ name = g_strdup_printf (C_("timezone loc", "%s"),
|
||||||
+ split_translated[length-1]);
|
+ split_translated[length-1]);
|
||||||
+
|
|
||||||
|
|
||||||
return name;
|
return name;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,42 +1,72 @@
|
|||||||
|
%define gnome_online_accounts_version 3.25.3
|
||||||
|
%define glib2_version 2.70.0
|
||||||
|
%define gnome_desktop_version 42.0
|
||||||
|
%define gsd_version 41.0
|
||||||
|
%define gsettings_desktop_schemas_version 42.0
|
||||||
|
%define upower_version 0.99.8
|
||||||
|
%define gtk4_version 4.9.3
|
||||||
|
%define gnome_bluetooth_version 42.0
|
||||||
|
%define libadwaita_version 1.2.0
|
||||||
|
%define nm_version 1.24
|
||||||
|
|
||||||
Name: gnome-control-center
|
Name: gnome-control-center
|
||||||
Version: 3.38.6
|
Version: 44.4
|
||||||
Release: 1
|
Release: 1
|
||||||
Summary: GNOME Settings is GNOME's main interface for configuration of various aspects of your desktop.
|
Summary: GNOME Settings is GNOME's main interface for configuration of various aspects of your desktop.
|
||||||
License: GPLv2+ and CC-BY-SA
|
License: GPLv2+
|
||||||
URL: http://www.gnome.org
|
URL: http://www.gnome.org
|
||||||
Source0: https://download.gnome.org/sources/gnome-control-center/3.38/%{name}-%{version}.tar.xz
|
Source0: https://download.gnome.org/sources/gnome-control-center/44/%{name}-%{version}.tar.xz
|
||||||
|
|
||||||
BuildRequires: chrpath cups-devel desktop-file-utils docbook-style-xsl gettext gcc git libudisks2-devel
|
|
||||||
BuildRequires: libxslt meson accountsservice-devel cheese-libs-devel clutter-gtk-devel colord-devel
|
|
||||||
BuildRequires: colord-gtk-devel gdk-pixbuf2-devel gtk3-devel glib2-devel pulseaudio-libs-devel
|
|
||||||
BuildRequires: gnome-desktop3-devel gnome-settings-daemon-devel gnome-online-accounts-devel
|
|
||||||
BuildRequires: grilo-devel gsettings-desktop-schemas-devel gtk3-devel libgudev-devel ibus-devel
|
|
||||||
BuildRequires: libcanberra-devel libgtop2-devel NetworkManager-libnm-devel libnma-devel
|
|
||||||
BuildRequires: libsecret-devel libsoup-devel libxml2-devel ModemManager-glib-devel polkit-devel
|
|
||||||
BuildRequires: libpwquality-devel libsmbclient-devel upower-devel libX11-devel libXi-devel
|
|
||||||
BuildRequires: gnome-bluetooth-libs-devel libwacom-devel gdb gsound-devel
|
|
||||||
BuildRequires: pkgconfig(libhandy-1)
|
|
||||||
|
|
||||||
Requires: accountsservice alsa-lib bolt colord cups-pk-helper dbus-x11 glx-utils iso-codes
|
|
||||||
Requires: nm-connection-editor switcheroo-control /usr/bin/gkbd-keyboard-display
|
|
||||||
Requires: gnome-bluetooth >= 1:3.18.2 %{name}-filesystem = %{version}-%{release}
|
|
||||||
Requires: upower >= 0.99.6 cheese-libs >= 3.28.0 glib2 >= 2.53.0 gtk3 >= 3.22.20
|
|
||||||
Requires: gnome-online-accounts >= 3.25.3 gnome-settings-daemon >= 3.25.90
|
|
||||||
Requires: gsettings-desktop-schemas >= 3.27.2 gnome-desktop3 >= 3.27.90
|
|
||||||
|
|
||||||
Recommends: NetworkManager-wifi vino
|
|
||||||
Provides: control-center = 1:%{version}-%{release}
|
|
||||||
Provides: control-center%{?_isa} = 1:%{version}-%{release}
|
|
||||||
Obsoletes: control-center < 1:%{version}-%{release}
|
|
||||||
|
|
||||||
Patch1: 0001-online-accounts-Track-the-lifecycle-of-CcGoaPanel-ac.patch
|
|
||||||
Patch2: 0002-background-Add-queue-to-load-4-pictures-at-a-time.patch
|
|
||||||
|
|
||||||
Patch9001: bugfix-fix_used_passwd_error_capture.patch
|
Patch9001: bugfix-fix_used_passwd_error_capture.patch
|
||||||
Patch9002: bugfix-gnome-control-center-fix-repetitivewallpapers.patch
|
Patch9002: bugfix-gnome-control-center-fix-repetitivewallpapers.patch
|
||||||
Patch9003: gnome-control-center-change-translation-when-changing-password.patch
|
Patch9003: gnome-control-center-change-translation-when-changing-password.patch
|
||||||
Patch9004: gnome-control-center-remove-country-in-the-name-of-timezone.patch
|
Patch9004: gnome-control-center-remove-country-in-the-name-of-timezone.patch
|
||||||
|
|
||||||
|
BuildRequires: chrpath gcc meson gettext cups-devel desktop-file-utils docbook-style-xsl libxslt
|
||||||
|
BuildRequires: accountsservice-devel clutter-gtk-devel colord-devel
|
||||||
|
BuildRequires: gcr-devel gdk-pixbuf2-devel gtk3-devel gnome-online-accounts-devel
|
||||||
|
BuildRequires: gsound-devel libgudev-devel ibus-devel libgtop2-devel
|
||||||
|
BuildRequires: pulseaudio-libs-devel libsecret-devel libxml2-devel ModemManager-glib-devel
|
||||||
|
BuildRequires: pkgconfig(polkit-gobject-1) pkgconfig(pwquality) pkgconfig(smbclient)
|
||||||
|
BuildRequires: pkgconfig(libwacom) pkgconfig(colord-gtk4) pkgconfig(libnma-gtk4)
|
||||||
|
BuildRequires: pkgconfig(x11) pkgconfig(xi) pkgconfig(udisks2)
|
||||||
|
BuildRequires: pkgconfig(gio-2.0) >= %{glib2_version}
|
||||||
|
BuildRequires: pkgconfig(gnome-desktop-4) >= %{gnome_desktop_version}
|
||||||
|
BuildRequires: pkgconfig(gnome-settings-daemon) >= %{gsd_version}
|
||||||
|
BuildRequires: pkgconfig(goa-1.0) >= %{gnome_online_accounts_version}
|
||||||
|
BuildRequires: pkgconfig(libadwaita-1) >= %{libadwaita_version}
|
||||||
|
BuildRequires: pkgconfig(gsettings-desktop-schemas) >= %{gsettings_desktop_schemas_version}
|
||||||
|
BuildRequires: pkgconfig(libnm) >= %{nm_version}
|
||||||
|
BuildRequires: pkgconfig(gtk4) >= %{gtk4_version}
|
||||||
|
BuildRequires: pkgconfig(upower-glib) >= %{upower_version}
|
||||||
|
BuildRequires: pkgconfig(gnome-bluetooth-3.0) >= %{gnome_bluetooth_version}
|
||||||
|
|
||||||
|
Requires: libadwaita%{?_isa} >= %{libadwaita_version}
|
||||||
|
Requires: glib2%{?_isa} >= %{glib2_version}
|
||||||
|
Requires: gnome-desktop3%{?_isa} >= %{gnome_desktop_version}
|
||||||
|
Requires: gnome-online-accounts%{?_isa} >= %{gnome_online_accounts_version}
|
||||||
|
Requires: gnome-settings-daemon%{?_isa} >= %{gsd_version}
|
||||||
|
Requires: gsettings-desktop-schemas%{?_isa} >= %{gsettings_desktop_schemas_version}
|
||||||
|
Requires: gtk4%{?_isa} >= %{gtk4_version}
|
||||||
|
Requires: upower%{?_isa} >= %{upower_version}
|
||||||
|
Requires: gnome-bluetooth%{?_isa} >= 1:%{gnome_bluetooth_version}
|
||||||
|
Requires: %{name}-filesystem = %{version}-%{release}
|
||||||
|
Requires: accountsservice alsa-lib colord cups-pk-helper dbus glx-utils iso-codes
|
||||||
|
Requires: libgnomekbd
|
||||||
|
|
||||||
|
Recommends: bolt
|
||||||
|
Recommends: NetworkManager-wifi
|
||||||
|
Recommends: nm-connection-editor
|
||||||
|
Recommends: gnome-color-manager
|
||||||
|
Recommends: gnome-remote-desktop
|
||||||
|
Recommends: rygel
|
||||||
|
Recommends: switcheroo-control
|
||||||
|
Recommends: power-profiles-daemon
|
||||||
|
|
||||||
|
Provides: control-center = 1:%{version}-%{release}
|
||||||
|
Provides: control-center%{?_isa} = 1:%{version}-%{release}
|
||||||
|
Obsoletes: control-center < 1:%{version}-%{release}
|
||||||
|
|
||||||
%description
|
%description
|
||||||
Gnome-control-center is a graphical user interface to configure
|
Gnome-control-center is a graphical user interface to configure
|
||||||
various aspects of GNOME.
|
various aspects of GNOME.
|
||||||
@ -44,10 +74,10 @@ The configuration files that are picked up by the control-center
|
|||||||
utilities are installed in directories contained by this package
|
utilities are installed in directories contained by this package
|
||||||
|
|
||||||
%package filesystem
|
%package filesystem
|
||||||
Summary: Directories for %{name}
|
Summary: Directories for %{name}
|
||||||
BuildArch: noarch
|
BuildArch: noarch
|
||||||
Provides: control-center-filesystem = 1:%{version}-%{release}
|
Provides: control-center-filesystem = 1:%{version}-%{release}
|
||||||
Obsoletes: control-center-filesystem < 1:%{version}-%{release}
|
Obsoletes: control-center-filesystem < 1:%{version}-%{release}
|
||||||
|
|
||||||
%description filesystem
|
%description filesystem
|
||||||
The %{name}-filesystem contains directories where applications can
|
The %{name}-filesystem contains directories where applications can
|
||||||
@ -60,47 +90,67 @@ utilities in this package.
|
|||||||
%autosetup -n %{name}-%{version} -p1
|
%autosetup -n %{name}-%{version} -p1
|
||||||
|
|
||||||
%build
|
%build
|
||||||
%meson -Ddocumentation=true
|
%meson \
|
||||||
|
-Ddocumentation=true
|
||||||
%meson_build
|
%meson_build
|
||||||
|
|
||||||
%install
|
%install
|
||||||
%meson_install
|
%meson_install
|
||||||
mkdir -p %{buildroot}%{_datadir}/gnome/wm-properties
|
mkdir -p $RPM_BUILD_ROOT%{_datadir}/gnome/wm-properties
|
||||||
|
|
||||||
%find_lang %{name} --all-name --with-gnome
|
%find_lang %{name} --all-name --with-gnome
|
||||||
chrpath --delete %{buildroot}%{_bindir}/gnome-control-center
|
chrpath --delete $RPM_BUILD_ROOT%{_bindir}/gnome-control-center
|
||||||
|
|
||||||
%files -f %{name}.lang
|
%files -f %{name}.lang
|
||||||
%license COPYING
|
%license COPYING
|
||||||
%{_bindir}/gnome-control-center
|
%{_bindir}/gnome-control-center
|
||||||
%{_libexecdir}/gnome-control-center-search-provider
|
|
||||||
%{_libexecdir}/cc-remote-login-helper
|
|
||||||
%{_libexecdir}/gnome-control-center-print-renderer
|
|
||||||
%{_datadir}/sounds/gnome/default/alerts/*.ogg
|
|
||||||
%{_datadir}/polkit-1/actions/*.policy
|
|
||||||
%{_datadir}/polkit-1/rules.d/gnome-control-center.rules
|
|
||||||
%{_datadir}/pixmaps/faces/
|
|
||||||
%{_datadir}/pkgconfig/*.pc
|
|
||||||
%{_datadir}/icons/hicolor/*
|
|
||||||
%{_datadir}/metainfo/*.xml
|
|
||||||
%{_datadir}/gnome-control-center/*
|
|
||||||
%{_datadir}/gnome-shell/search-providers/*.ini
|
|
||||||
%{_datadir}/glib-2.0/schemas/*.xml
|
|
||||||
%{_datadir}/gettext/its/*
|
|
||||||
%{_datadir}/dbus-1/services/*.service
|
|
||||||
%{_datadir}/bash-completion/completions/gnome-control-center
|
|
||||||
%{_datadir}/applications/*.desktop
|
%{_datadir}/applications/*.desktop
|
||||||
|
%{_datadir}/bash-completion/completions/gnome-control-center
|
||||||
|
%{_datadir}/dbus-1/services/org.gnome.Settings.SearchProvider.service
|
||||||
|
%{_datadir}/dbus-1/services/org.gnome.Settings.service
|
||||||
|
%{_datadir}/gettext/
|
||||||
|
%{_datadir}/glib-2.0/schemas/org.gnome.Settings.gschema.xml
|
||||||
|
%{_datadir}/gnome-control-center/keybindings/*.xml
|
||||||
|
%{_datadir}/gnome-control-center/pixmaps
|
||||||
|
%{_datadir}/gnome-shell/search-providers/org.gnome.Settings.search-provider.ini
|
||||||
|
%{_datadir}/icons/gnome-logo-text*.svg
|
||||||
|
%{_datadir}/icons/hicolor/*/*/*
|
||||||
|
%{_metainfodir}/org.gnome.Settings.appdata.xml
|
||||||
|
%{_datadir}/pixmaps/faces
|
||||||
|
%{_datadir}/pkgconfig/gnome-keybindings.pc
|
||||||
|
%{_datadir}/polkit-1/actions/org.gnome.controlcenter.*.policy
|
||||||
|
%{_datadir}/polkit-1/rules.d/gnome-control-center.rules
|
||||||
|
%{_datadir}/sounds/gnome/default/*/*.ogg
|
||||||
|
%{_libexecdir}/cc-remote-login-helper
|
||||||
|
%{_libexecdir}/gnome-control-center-goa-helper
|
||||||
|
%{_libexecdir}/gnome-control-center-search-provider
|
||||||
|
%{_libexecdir}/gnome-control-center-print-renderer
|
||||||
|
|
||||||
%files filesystem
|
%files filesystem
|
||||||
%dir %{_datadir}/gnome/wm-properties
|
%dir %{_datadir}/gnome-control-center
|
||||||
%dir %{_datadir}/gnome-control-center/
|
|
||||||
%dir %{_datadir}/gnome-control-center/keybindings
|
%dir %{_datadir}/gnome-control-center/keybindings
|
||||||
|
%dir %{_datadir}/gnome/wm-properties
|
||||||
|
|
||||||
%files help
|
%files help
|
||||||
%doc NEWS README.md
|
%doc NEWS README.md
|
||||||
%{_mandir}/man1/*.gz
|
%{_datadir}/man/man1/gnome-control-center.1*
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Thu Nov 23 2023 lwg <liweiganga@uniontech.com> - 44.4-1
|
||||||
|
- update to version 44.4
|
||||||
|
|
||||||
|
* Tue Jan 10 2023 wenlong ding <wenlong.ding@turbolinux.com.cn> - 43.2-1
|
||||||
|
- Update to 43.2
|
||||||
|
|
||||||
|
* Tue Jun 21 2022 weijin deng <weijin.deng@turbolinux.com.cn> - 42.2-1
|
||||||
|
- Udpate to 42.2
|
||||||
|
|
||||||
|
* Mon Mar 28 2022 lin zhang <lin.zhang@turbolinux.com.cn> - 42.0-1
|
||||||
|
- Udpate to 42.0
|
||||||
|
|
||||||
|
* Wed Aug 04 2021 chenyanpanHW <chenyanpan@huawei.com> - 3.38.6-2
|
||||||
|
- DESC: delete BuildRequires gdb
|
||||||
|
|
||||||
* Mon May 31 2021 weijin deng <weijin.deng@turbolinux.com.cn> - 3.38.6-1
|
* Mon May 31 2021 weijin deng <weijin.deng@turbolinux.com.cn> - 3.38.6-1
|
||||||
- Upgrade to 3.38.6
|
- Upgrade to 3.38.6
|
||||||
- Update Version, Release, BuildRequires, stage 'files'
|
- Update Version, Release, BuildRequires, stage 'files'
|
||||||
|
|||||||
@ -1,4 +1,4 @@
|
|||||||
version_control: github
|
version_control: github
|
||||||
src_repo: GNOME/gnome-control-center
|
src_repo: GNOME/gnome-control-center
|
||||||
tag_prefix: "^"
|
tag_prefix: "^"
|
||||||
seperator: "."
|
separator: "."
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user