gnome-base/gvfs: Apply upstream fixes, also including a fix for crash reported in bug #560592 (by Michael Orlitzky); drop old.

Package-Manager: portage-2.2.23
This commit is contained in:
Pacho Ramos
2015-10-24 10:05:00 +02:00
parent e4e89d996c
commit fe2cd112b9
8 changed files with 260 additions and 124 deletions

View File

@@ -1,4 +1,2 @@
DIST gvfs-1.22.3.tar.xz 1588072 SHA256 c778342e09a84d8c69b1b7ce7f943f6f2444a995bb0c0754ef1746afa8935182 SHA512 17e79047ce8f979ae15c99423ddc6d50a1d276151d4c0e1cc7e0c4958e0a9ed8bc4c0db8a38272eab50922bad6a51d915a2cd4cf41dfb0873faa49e1a3028ba7 WHIRLPOOL 2de23d3537683fcdb0af2fac42c98e05daf9cf4f5fb0d9e05dfa7b25e03852f2774ba1a1cfbebbd0602bbbbcbdbe36279dd9de6328fb3f495e2209c246b8a70a
DIST gvfs-1.22.4.tar.xz 1598264 SHA256 57e33faad35aba72be3822099856aca847f391626cf3ec734b42e64ba31f6484 SHA512 5485a46284b62f19f6c289a5e341f4f0a48c3b8b42cdc5e8b4f9070b1b33e781ada8a4fbb718f5305cdeaa287d122718ea2826a52cc4ebae090cbbc519e758d8 WHIRLPOOL f0b6514241616e64ad45d8ce163d2ba2ca293d60a2ab65210cff4f9338f7f37e0d8beb3ae367c73ab2ed8d046dc4788535c00f973fa05df1e2dde8c294509e9c
DIST gvfs-1.24.1.tar.xz 1624212 SHA256 d38367ce189415c36fd19dca478bc9b80694b495c3458e74fb0f13d1ac9df1f9 SHA512 f4208e38a7a6a9c7c994bde62d6499e9eb327c7b85dd6bec46e22aa5c3423214eb5ff2092c7cc3945e28c7a7d2c1bcb5cc9e29df67c9b601fbf9e7b9092de95f WHIRLPOOL 96f178f91502165fc3f3b5ea800a2cbaa88baad6f692017745fbd6cb81f3c1ad405a0d342641a9a94c567400bfcdf061cd4aa6bac76c29106f5cd30f79b0021e
DIST gvfs-1.24.2.tar.xz 1627808 SHA256 0949eaedd1df7175f8d7ee2700df8210d1f854b8ee37d963bc32ee7091eeb228 SHA512 4e5a3150ec4a57ca1229653fd2ce91840e8f7c372de8eb3cd9196b83a687c4336b6fd6fec3f6f6dca740ff1033906cce8f42377c45014f4ce7fd9c33bdcedc59 WHIRLPOOL c65c2402a77cb5de3180f9988b6f0c29af3d979863e32943bca70a30dda89197a0747ed18ebfffe6d70a06d790be195a749c7b34afbfd780c80273aacad9844f

View File

@@ -0,0 +1,33 @@
From c259305847b1ebde1ae89a3c921a13b6c0b67116 Mon Sep 17 00:00:00 2001
From: Tristan Van Berkom <tristan.vanberkom@codethink.co.uk>
Date: Tue, 6 Oct 2015 15:09:04 +0900
Subject: Avoid crash when no monitor implementations exist.
The GVariantBuilder is unable to create any GVariant for
an untyped array - while an empty vector is a valid variant,
it is not valid for an untyped array.
Passing the resulting null to gvfs_dbus_daemon_complete_cancel()
causes gvfs to abort with a g_error().
https://bugzilla.gnome.org/show_bug.cgi?id=756105
---
daemon/gvfsdaemon.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/daemon/gvfsdaemon.c b/daemon/gvfsdaemon.c
index 7bc334b..b7a3b88 100644
--- a/daemon/gvfsdaemon.c
+++ b/daemon/gvfsdaemon.c
@@ -957,7 +957,7 @@ handle_list_monitor_implementations (GVfsDBusDaemon *object,
impls = g_vfs_list_monitor_implementations ();
- g_variant_builder_init (&builder, G_VARIANT_TYPE_ARRAY);
+ g_variant_builder_init (&builder, G_VARIANT_TYPE ("a(ssbia{sv})"));
for (l = impls; l != NULL; l = l->next)
{
--
cgit v0.11.2

View File

@@ -0,0 +1,54 @@
From d663c85f0356d7800638c5eaa1a49e6c26bdfa33 Mon Sep 17 00:00:00 2001
From: Ondrej Holy <oholy@redhat.com>
Date: Fri, 27 Feb 2015 10:22:22 +0100
Subject: afp: Change g_error to g_warning for read errors
Use g_warning rather than g_error when a read error occurs to prevent
spurious crash reports since there are many different ways for a read
from the network to fail.
[Cherry-picked from gnome-3-14/14369db2a8fc
Commit message written by Ross Lagerwall.]
https://bugzilla.gnome.org/show_bug.cgi?id=710490
---
daemon/gvfsafpconnection.c | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/daemon/gvfsafpconnection.c b/daemon/gvfsafpconnection.c
index c8ccad7..abe1422 100644
--- a/daemon/gvfsafpconnection.c
+++ b/daemon/gvfsafpconnection.c
@@ -1078,12 +1078,12 @@ read_data_cb (GObject *object, GAsyncResult *res, gpointer user_data)
g_error_matches (err, G_IO_ERROR, G_IO_ERROR_CONNECTION_CLOSED))
{
g_message (_("Host closed connection"));
- exit(0);
}
else
{
- g_error ("FAIL!!! \"%s\"\n", err->message);
+ g_warning ("FAIL!!! \"%s\"\n", err->message);
}
+ exit (0);
}
dispatch_reply (afp_connection);
@@ -1120,12 +1120,12 @@ read_dsi_header_cb (GObject *object, GAsyncResult *res, gpointer user_data)
g_error_matches (err, G_IO_ERROR, G_IO_ERROR_CONNECTION_CLOSED))
{
g_message (_("Host closed connection"));
- exit(0);
}
else
{
- g_error ("FAIL!!! \"%s\"\n", err->message);
+ g_warning ("FAIL!!! \"%s\"\n", err->message);
}
+ exit (0);
}
dsi_header = &priv->read_dsi_header;
--
cgit v0.11.2

View File

@@ -0,0 +1,56 @@
From 1220260f96a9ce2beb659da30888ea9648719e9a Mon Sep 17 00:00:00 2001
From: Debarshi Ray <debarshir@gnome.org>
Date: Wed, 30 Sep 2015 12:38:55 +0200
Subject: proxy volume monitor: Guard access to the internal caches
Accesses to the drives, volumes and mounts hash tables should be
guarded by the proxy_vm mutex.
https://bugzilla.gnome.org/show_bug.cgi?id=755805
---
monitor/proxy/gproxyvolumemonitor.c | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/monitor/proxy/gproxyvolumemonitor.c b/monitor/proxy/gproxyvolumemonitor.c
index 623cb14..17474a8 100644
--- a/monitor/proxy/gproxyvolumemonitor.c
+++ b/monitor/proxy/gproxyvolumemonitor.c
@@ -867,6 +867,8 @@ name_owner_appeared (GProxyVolumeMonitor *monitor)
GProxyVolume *volume;
GProxyMount *mount;
+ G_LOCK (proxy_vm);
+
seed_monitor (monitor);
/* emit signals for all the drives/volumes/mounts "added" */
@@ -881,6 +883,8 @@ name_owner_appeared (GProxyVolumeMonitor *monitor)
g_hash_table_iter_init (&hash_iter, monitor->mounts);
while (g_hash_table_iter_next (&hash_iter, NULL, (gpointer) &mount))
signal_emit_in_idle (monitor, "mount-added", mount);
+
+ G_UNLOCK (proxy_vm);
}
static void
@@ -891,6 +895,8 @@ name_owner_vanished (GProxyVolumeMonitor *monitor)
GProxyVolume *volume;
GProxyMount *mount;
+ G_LOCK (proxy_vm);
+
g_hash_table_iter_init (&hash_iter, monitor->mounts);
while (g_hash_table_iter_next (&hash_iter, NULL, (gpointer) &mount))
{
@@ -914,6 +920,8 @@ name_owner_vanished (GProxyVolumeMonitor *monitor)
signal_emit_in_idle (monitor, "drive-disconnected", drive);
}
g_hash_table_remove_all (monitor->drives);
+
+ G_UNLOCK (proxy_vm);
}
static void
--
cgit v0.11.2

View File

@@ -0,0 +1,74 @@
From d19a4bc2475705f8252f8952c446b57b31661453 Mon Sep 17 00:00:00 2001
From: Debarshi Ray <debarshir@gnome.org>
Date: Fri, 16 Oct 2015 13:35:34 +0200
Subject: proxy volume monitor: Properly handle failure to create a remote
proxy
We should finish constructing the innards of the object and not leave
it in an inconsistent state when we hit an error. The other option
would be to litter the rest of the code with NULL checks, but that
would be ugly and prone to errors.
We should also ensure that the reference counting stays consistent with
the non-error paths.
https://bugzilla.gnome.org/show_bug.cgi?id=755805
---
monitor/proxy/gproxyvolumemonitor.c | 15 ++++++---------
1 file changed, 6 insertions(+), 9 deletions(-)
diff --git a/monitor/proxy/gproxyvolumemonitor.c b/monitor/proxy/gproxyvolumemonitor.c
index 17474a8..a7466f0 100644
--- a/monitor/proxy/gproxyvolumemonitor.c
+++ b/monitor/proxy/gproxyvolumemonitor.c
@@ -972,10 +972,7 @@ g_proxy_volume_monitor_constructor (GType type,
klass = G_PROXY_VOLUME_MONITOR_CLASS (g_type_class_peek (type));
object = g_hash_table_lookup (the_volume_monitors, (gpointer) type);
if (object != NULL)
- {
- g_object_ref (object);
- goto out;
- }
+ goto out;
dbus_name = klass->dbus_name;
@@ -988,6 +985,10 @@ g_proxy_volume_monitor_constructor (GType type,
monitor = G_PROXY_VOLUME_MONITOR (object);
+ monitor->drives = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, g_object_unref);
+ monitor->volumes = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, g_object_unref);
+ monitor->mounts = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, g_object_unref);
+
error = NULL;
monitor->proxy = gvfs_remote_volume_monitor_proxy_new_for_bus_sync (G_BUS_TYPE_SESSION,
G_DBUS_PROXY_FLAGS_DO_NOT_LOAD_PROPERTIES,
@@ -1022,10 +1023,6 @@ g_proxy_volume_monitor_constructor (GType type,
g_signal_connect (monitor->proxy, "volume-changed", G_CALLBACK (volume_changed), monitor);
g_signal_connect (monitor->proxy, "volume-removed", G_CALLBACK (volume_removed), monitor);
- monitor->drives = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, g_object_unref);
- monitor->volumes = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, g_object_unref);
- monitor->mounts = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, g_object_unref);
-
/* listen to when the owner of the service appears/disappears */
g_signal_connect (monitor->proxy, "notify::g-name-owner", G_CALLBACK (name_owner_changed), monitor);
/* initially seed drives/volumes/mounts if we have an owner */
@@ -1038,12 +1035,12 @@ g_proxy_volume_monitor_constructor (GType type,
g_hash_table_insert (the_volume_monitors, (gpointer) type, object);
+ out:
/* Take an extra reference to make the instance live forever - see also
* the dispose() and finalize() vfuncs
*/
g_object_ref (object);
- out:
G_UNLOCK (proxy_vm);
return object;
}
--
cgit v0.11.2

View File

@@ -0,0 +1,28 @@
From 7bcfc873fd54e565836228ab030782885e133ebb Mon Sep 17 00:00:00 2001
From: Debarshi Ray <debarshir@gnome.org>
Date: Fri, 21 Aug 2015 16:54:46 +0200
Subject: dav: Mark files as untrashable
Otherwise nautilus will offer the wrong action in its UI.
https://bugzilla.gnome.org/show_bug.cgi?id=753934
---
daemon/gvfsbackenddav.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/daemon/gvfsbackenddav.c b/daemon/gvfsbackenddav.c
index 2d2704a..94e8b1c 100644
--- a/daemon/gvfsbackenddav.c
+++ b/daemon/gvfsbackenddav.c
@@ -974,6 +974,8 @@ ms_response_to_file_info (MsResponse *response,
if (basename && basename[0] == '.')
g_file_info_set_is_hidden (info, TRUE);
+ g_file_info_set_attribute_boolean (info, G_FILE_ATTRIBUTE_ACCESS_CAN_TRASH, FALSE);
+
file_type = G_FILE_TYPE_REGULAR;
mime_type = NULL;
--
cgit v0.11.2

View File

@@ -1,119 +0,0 @@
# Copyright 1999-2015 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Id$
EAPI="5"
GCONF_DEBUG="no"
GNOME2_LA_PUNT="yes"
inherit autotools bash-completion-r1 eutils gnome2
DESCRIPTION="Virtual filesystem implementation for gio"
HOMEPAGE="https://git.gnome.org/browse/gvfs"
LICENSE="LGPL-2+"
SLOT="0"
IUSE="afp archive bluray cdda fuse gnome-online-accounts gphoto2 gtk +http ios libsecret mtp samba systemd test +udev udisks zeroconf"
REQUIRED_USE="
cdda? ( udev )
mtp? ( udev )
udisks? ( udev )
systemd? ( udisks )
"
KEYWORDS="~alpha amd64 arm ~ia64 ~mips ppc ppc64 ~sh ~sparc x86 ~amd64-fbsd ~x86-fbsd ~x86-interix ~amd64-linux ~arm-linux ~x86-linux ~sparc-solaris ~x86-solaris"
# Can use libgphoto-2.5.0 as well. Automagic detection.
RDEPEND="
>=dev-libs/glib-2.37:2
sys-apps/dbus
dev-libs/libxml2:2
net-misc/openssh
afp? ( >=dev-libs/libgcrypt-1.2.2:0= )
archive? ( app-arch/libarchive:= )
bluray? ( media-libs/libbluray )
fuse? ( >=sys-fs/fuse-2.8.0 )
gnome-online-accounts? ( >=net-libs/gnome-online-accounts-3.7.1 )
gphoto2? ( >=media-libs/libgphoto2-2.4.7:= )
gtk? ( >=x11-libs/gtk+-3.0:3 )
http? ( >=net-libs/libsoup-2.42:2.4 )
ios? (
>=app-pda/libimobiledevice-1.1.5:=
>=app-pda/libplist-1:= )
libsecret? ( app-crypt/libsecret )
mtp? ( >=media-libs/libmtp-1.1.6 )
samba? ( || ( >=net-fs/samba-3.4.6[smbclient] >=net-fs/samba-4[client] ) )
systemd? ( sys-apps/systemd:0= )
udev? (
cdda? ( || ( dev-libs/libcdio-paranoia <dev-libs/libcdio-0.90[-minimal] ) )
virtual/libgudev:=
virtual/libudev:= )
udisks? ( >=sys-fs/udisks-1.97:2 )
zeroconf? ( >=net-dns/avahi-0.6 )
"
DEPEND="${RDEPEND}
app-text/docbook-xsl-stylesheets
dev-libs/libxslt
>=dev-util/intltool-0.40
virtual/pkgconfig
dev-util/gdbus-codegen
dev-util/gtk-doc-am
test? (
>=dev-python/twisted-core-12.3.0
|| (
net-analyzer/netcat
net-analyzer/netcat6 ) )
!udev? ( >=dev-libs/libgcrypt-1.2.2:0 )
"
# libgcrypt.m4, provided by libgcrypt, needed for eautoreconf, bug #399043
# test dependencies needed per https://bugzilla.gnome.org/700162
# Tests with multiple failures, this is being handled upstream at:
# https://bugzilla.gnome.org/700162
RESTRICT="test"
src_prepare() {
DOCS="AUTHORS ChangeLog NEWS MAINTAINERS README TODO" # ChangeLog.pre-1.2 README.commits
if ! use udev; then
sed -e 's/gvfsd-burn/ /' \
-e 's/burn.mount.in/ /' \
-e 's/burn.mount/ /' \
-i daemon/Makefile.am || die
eautoreconf
fi
gnome2_src_prepare
}
src_configure() {
# --enable-documentation installs man pages
# --disable-obexftp, upstream bug #729945
gnome2_src_configure \
--enable-bash-completion \
--with-bash-completion-dir="$(get_bashcompdir)" \
--disable-gdu \
--disable-hal \
--disable-obexftp \
--with-dbus-service-dir="${EPREFIX}"/usr/share/dbus-1/services \
--enable-documentation \
$(use_enable afp) \
$(use_enable archive) \
$(use_enable bluray) \
$(use_enable cdda) \
$(use_enable fuse) \
$(use_enable gnome-online-accounts goa) \
$(use_enable gphoto2) \
$(use_enable gtk) \
$(use_enable ios afc) \
$(use_enable mtp libmtp) \
$(use_enable udev) \
$(use_enable udev gudev) \
$(use_enable http) \
$(use_enable libsecret keyring) \
$(use_enable samba) \
$(use_enable systemd libsystemd-login) \
$(use_enable udisks udisks2) \
$(use_enable zeroconf avahi)
}

View File

@@ -14,7 +14,7 @@ HOMEPAGE="https://git.gnome.org/browse/gvfs"
LICENSE="LGPL-2+"
SLOT="0"
IUSE="afp archive bluray cdda fuse gnome-online-accounts gphoto2 gtk +http ios libsecret mtp nfs samba systemd test +udev udisks zeroconf"
IUSE="afp archive bluray cdda fuse gnome-keyring gnome-online-accounts gphoto2 gtk +http ios mtp nfs samba systemd test +udev udisks zeroconf"
REQUIRED_USE="
cdda? ( udev )
mtp? ( udev )
@@ -33,6 +33,7 @@ RDEPEND="
archive? ( app-arch/libarchive:= )
bluray? ( media-libs/libbluray )
fuse? ( >=sys-fs/fuse-2.8.0 )
gnome-keyring? ( app-crypt/libsecret )
gnome-online-accounts? ( >=net-libs/gnome-online-accounts-3.7.1 )
gphoto2? ( >=media-libs/libgphoto2-2.4.7:= )
gtk? ( >=x11-libs/gtk+-3.0:3 )
@@ -40,7 +41,6 @@ RDEPEND="
ios? (
>=app-pda/libimobiledevice-1.1.5:=
>=app-pda/libplist-1:= )
libsecret? ( app-crypt/libsecret )
mtp? ( >=media-libs/libmtp-1.1.6 )
nfs? ( >=net-fs/libnfs-1.9.7 )
samba? ( || ( >=net-fs/samba-3.4.6[smbclient] >=net-fs/samba-4[client] ) )
@@ -76,6 +76,18 @@ RESTRICT="test"
src_prepare() {
DOCS="AUTHORS ChangeLog NEWS MAINTAINERS README TODO" # ChangeLog.pre-1.2 README.commits
# dav: Mark files as untrashable (from '3.16' branch)
epatch "${FILESDIR}"/${P}-untrashable.patch
# proxy volume monitor: Guard access to the internal caches (from '3.16' branch)
epatch "${FILESDIR}"/${P}-guard-caches.patch
# proxy volume monitor: Properly handle failure to create a remote proxy (from '3.16' branch)
epatch "${FILESDIR}"/${P}-remote-proxy.patch
# Avoid crash when no monitor implementations exist (from '3.16' branch)
epatch "${FILESDIR}"/${P}-crash-monitor.patch
if ! use udev; then
sed -e 's/gvfsd-burn/ /' \
-e 's/burn.mount.in/ /' \
@@ -104,6 +116,7 @@ src_configure() {
$(use_enable bluray) \
$(use_enable cdda) \
$(use_enable fuse) \
$(use_enable gnome-keyring keyring) \
$(use_enable gnome-online-accounts goa) \
$(use_enable gphoto2) \
$(use_enable gtk) \
@@ -113,7 +126,6 @@ src_configure() {
$(use_enable udev) \
$(use_enable udev gudev) \
$(use_enable http) \
$(use_enable libsecret keyring) \
$(use_enable samba) \
$(use_enable systemd libsystemd-login) \
$(use_enable udisks udisks2) \