diff --git a/gnome-control-center-info-disc-size-for-btrfs.patch b/gnome-control-center-info-disc-size-for-btrfs.patch new file mode 100644 index 0000000..8af0bb3 --- /dev/null +++ b/gnome-control-center-info-disc-size-for-btrfs.patch @@ -0,0 +1,46 @@ +diff --git a/panels/info/cc-info-panel.c b/panels/info/cc-info-panel.c +index d904f6c..d9d3504 100644 +--- a/panels/info/cc-info-panel.c ++++ b/panels/info/cc-info-panel.c +@@ -547,7 +547,9 @@ get_primary_disc_info (CcInfoPanel *self) + { + GList *points; + GList *p; ++ GHashTable *hash; + ++ hash = g_hash_table_new (g_str_hash, g_str_equal); + points = g_unix_mount_points_get (NULL); + + /* If we do not have /etc/fstab around, try /etc/mtab */ +@@ -558,21 +560,30 @@ get_primary_disc_info (CcInfoPanel *self) + { + GUnixMountEntry *mount = p->data; + const char *mount_path; ++ const char *device_path; + + mount_path = g_unix_mount_get_mount_path (mount); ++ device_path = g_unix_mount_get_device_path (mount); ++ ++ /* Do not count multiple mounts with same device_path, because it is ++ * probably something like btrfs subvolume. Use only the first one in ++ * order to count the real size. */ + + if (gsd_should_ignore_unix_mount (mount) || + gsd_is_removable_mount (mount) || + g_str_has_prefix (mount_path, "/media/") || +- g_str_has_prefix (mount_path, g_get_home_dir ())) ++ g_str_has_prefix (mount_path, g_get_home_dir ()) || ++ g_hash_table_lookup (hash, device_path) != NULL) + { + g_unix_mount_free (mount); + continue; + } + + self->priv->primary_mounts = g_list_prepend (self->priv->primary_mounts, mount); ++ g_hash_table_insert (hash, (gpointer) device_path, (gpointer) device_path); + } + g_list_free (points); ++ g_hash_table_destroy (hash); + + get_primary_disc_info_start (self); + } diff --git a/gnome-control-center.changes b/gnome-control-center.changes index 09c0892..2485b54 100644 --- a/gnome-control-center.changes +++ b/gnome-control-center.changes @@ -1,3 +1,11 @@ +------------------------------------------------------------------- +Wed May 3 06:01:24 UTC 2017 - fezhang@suse.com + +- Add gnome-control-center-info-disc-size-for-btrfs.patch: + Fix total disc size for btrfs subvolumes displayed in info panel, + backported upstream commit b619f7c (bsc#890385, bsc#1037234, + bgo#708786). + ------------------------------------------------------------------- Mon Apr 24 16:56:35 UTC 2017 - dimstar@opensuse.org diff --git a/gnome-control-center.spec b/gnome-control-center.spec index c3b901d..c9daf6b 100644 --- a/gnome-control-center.spec +++ b/gnome-control-center.spec @@ -52,6 +52,8 @@ Patch20: gnome-control-center-disable-error-message-for-NM.patch Patch21: gnome-control-center-info-never-use-gnome-software.patch # PATCH-FIX-OPENSUSE gnome-control-center-more-power-button-actions.patch bsc#993381 fezhang@suse.com -- power: Bring back the "shutdown" and "interactive" power button actions. Patch22: gnome-control-center-more-power-button-actions.patch +# PATCH-FIX-UPSTREAM gnome-control-center-info-disc-size-for-btrfs.patch bsc#890385 bsc#1037234 bgo#708786 fezhang@suse.com -- info: Fix total disc size for btrfs subvolumes +Patch23: gnome-control-center-info-disc-size-for-btrfs.patch BuildRequires: cups-devel BuildRequires: desktop-file-utils BuildRequires: fdupes @@ -218,6 +220,7 @@ translation-update-upstream %patch21 -p1 %endif %patch22 -p1 +%patch23 -p1 %build ACLOCAL_FLAGS="-I libgd" NOCONFIGURE=1 gnome-autogen.sh