commit bbf64b6a219cf6ea16d12d5fd14389ca5e8fc43c
Author: Julian Sikorski <belegdol(a)fedoraproject.org>
Date: Tue Nov 15 17:01:45 2022 +0100
Add PR fixing nautilus 43+ support
105.patch | 278 ++++++++++++++++++++++++++++++++++++++++++++
fix_nautilus_includes.patch | 26 -----
nautilus-dropbox.spec | 9 +-
3 files changed, 285 insertions(+), 28 deletions(-)
---
diff --git a/105.patch b/105.patch
new file mode 100644
index 0000000..114f85c
--- /dev/null
+++ b/105.patch
@@ -0,0 +1,278 @@
+From 9b9d7edaa9012e4e52f169d0b590cb25f265e119 Mon Sep 17 00:00:00 2001
+From: Corey Berla <corey(a)berla.me>
+Date: Tue, 13 Sep 2022 15:03:59 -0700
+Subject: [PATCH 1/5] Bump to libnautilus-extension-4
+
+Nautilus 43 comes with libnautilus-extension-4 which has several
+breaking changes
+---
+ configure.ac | 8 ++++----
+ 1 file changed, 4 insertions(+), 4 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index 025289c..737dc26 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -12,7 +12,7 @@ AM_CONFIG_HEADER(config.h)
+ #AC_PROG_INTLTOOL([0.29])
+
+ # Dependency checks
+-NAUTILUS_REQUIRED=2.16.0
++NAUTILUS_REQUIRED=43.rc
+ GLIB_REQUIRED=2.14.0
+
+ # Used programs
+@@ -26,7 +26,7 @@ if test "x$HAVE_PKGCONFIG" = "xno"; then
+ AC_MSG_ERROR(you need to have pkgconfig installed !)
+ fi
+
+-PKG_CHECK_MODULES(NAUTILUS, libnautilus-extension >= $NAUTILUS_REQUIRED)
++PKG_CHECK_MODULES(NAUTILUS, libnautilus-extension-4 >= $NAUTILUS_REQUIRED)
+ PKG_CHECK_MODULES(GLIB, glib-2.0 >= $GLIB_REQUIRED)
+
+ AC_PATH_PROG([PYTHON3], [python3])
+@@ -84,10 +84,10 @@ AC_MSG_CHECKING([for nautilus extension directory])
+ if test -n "$with_nautilus_extension_dir"; then
+ NAUTILUS_EXTENSION_DIR=$with_nautilus_extension_dir
+ else
+- NAUTILUS_EXTENSION_DIR=`$PKG_CONFIG --variable=extensiondir libnautilus-extension`
++ NAUTILUS_EXTENSION_DIR=`$PKG_CONFIG --variable=extensiondir
libnautilus-extension-4`
+ fi
+ if test -z "$NAUTILUS_EXTENSION_DIR"; then
+- NAUTILUS_EXTENSION_DIR='${exec_prefix}/lib/nautilus/extension-1.0'
++ NAUTILUS_EXTENSION_DIR='${exec_prefix}/lib/nautilus/extension-4'
+ fi
+
+ AC_MSG_RESULT([${NAUTILUS_EXTENSION_DIR}])
+
+From c5d80f702758ad68cedc7bd0a113286464c44ba5 Mon Sep 17 00:00:00 2001
+From: Corey Berla <corey(a)berla.me>
+Date: Tue, 13 Sep 2022 15:06:07 -0700
+Subject: [PATCH 2/5] Update / remove deprecated (now removed) symbols and
+ headers
+
+---
+ src/nautilus-dropbox.c | 9 +++------
+ src/nautilus-dropbox.h | 2 +-
+ 2 files changed, 4 insertions(+), 7 deletions(-)
+
+diff --git a/src/nautilus-dropbox.c b/src/nautilus-dropbox.c
+index c75ccbf..837f9ab 100644
+--- a/src/nautilus-dropbox.c
++++ b/src/nautilus-dropbox.c
+@@ -37,9 +37,7 @@
+ #include <glib-object.h>
+ #include <gtk/gtk.h>
+
+-#include <libnautilus-extension/nautilus-extension-types.h>
+-#include <libnautilus-extension/nautilus-menu-provider.h>
+-#include <libnautilus-extension/nautilus-info-provider.h>
++#include <nautilus-extension.h>
+
+ #include "g-util.h"
+ #include "dropbox-command-client.h"
+@@ -661,7 +659,6 @@ get_file_items_callback(GHashTable *response, gpointer ud)
+
+ static GList *
+ nautilus_dropbox_get_file_items(NautilusMenuProvider *provider,
+- GtkWidget *window,
+ GList *files)
+ {
+ /*
+@@ -888,13 +885,13 @@ on_disconnect(NautilusDropbox *cvs) {
+
+
+ static void
+-nautilus_dropbox_menu_provider_iface_init (NautilusMenuProviderIface *iface) {
++nautilus_dropbox_menu_provider_iface_init (NautilusMenuProviderInterface *iface) {
+ iface->get_file_items = nautilus_dropbox_get_file_items;
+ return;
+ }
+
+ static void
+-nautilus_dropbox_info_provider_iface_init (NautilusInfoProviderIface *iface) {
++nautilus_dropbox_info_provider_iface_init (NautilusInfoProviderInterface *iface) {
+ iface->update_file_info = nautilus_dropbox_update_file_info;
+ iface->cancel_update = nautilus_dropbox_cancel_update;
+ return;
+diff --git a/src/nautilus-dropbox.h b/src/nautilus-dropbox.h
+index 65734be..44faa27 100644
+--- a/src/nautilus-dropbox.h
++++ b/src/nautilus-dropbox.h
+@@ -27,7 +27,7 @@
+ #include <glib.h>
+ #include <glib-object.h>
+
+-#include <libnautilus-extension/nautilus-info-provider.h>
++#include <nautilus-extension.h>
+
+ #include "dropbox-command-client.h"
+ #include "nautilus-dropbox-hooks.h"
+
+From 0fe0f7d193b26037d55371af12cf14ab65a40151 Mon Sep 17 00:00:00 2001
+From: Corey Berla <corey(a)berla.me>
+Date: Tue, 13 Sep 2022 15:06:46 -0700
+Subject: [PATCH 3/5] Include gtk4 directly
+
+This used to be included from libnautilus-extension, but now that
+Nautilus has been ported to gtk4, there is a desire to separate gtk
+from the extensions
+---
+ configure.ac | 3 +++
+ src/Makefile.am | 1 +
+ src/dropbox.c | 3 ---
+ 3 files changed, 4 insertions(+), 3 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index 737dc26..42b49fa 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -28,6 +28,9 @@ fi
+
+ PKG_CHECK_MODULES(NAUTILUS, libnautilus-extension-4 >= $NAUTILUS_REQUIRED)
+ PKG_CHECK_MODULES(GLIB, glib-2.0 >= $GLIB_REQUIRED)
++PKG_CHECK_MODULES(GTK, gtk4 >= 4.6.0)
++
++AC_SUBST(GTK_CFLAGS)
+
+ AC_PATH_PROG([PYTHON3], [python3])
+
+diff --git a/src/Makefile.am b/src/Makefile.am
+index 15d6687..c521ec5 100644
+--- a/src/Makefile.am
++++ b/src/Makefile.am
+@@ -13,6 +13,7 @@ libnautilus_dropbox_la_CFLAGS = \
+ $(WARN_CFLAGS) \
+ $(DISABLE_DEPRECATED_CFLAGS) \
+ $(NAUTILUS_CFLAGS) \
++ $(GTK_CFLAGS) \
+ $(GLIB_CFLAGS)
+
+ if DEBUG
+diff --git a/src/dropbox.c b/src/dropbox.c
+index 0d59559..f52e0fb 100644
+--- a/src/dropbox.c
++++ b/src/dropbox.c
+@@ -27,9 +27,6 @@
+
+ #include <glib-object.h>
+
+-#include <gdk/gdk.h>
+-#include <gtk/gtk.h>
+-
+ #include "nautilus-dropbox.h"
+
+ static GType type_list[1];
+
+From 1ca648c017483d9713c469ba55a194a3790b6770 Mon Sep 17 00:00:00 2001
+From: Corey Berla <corey(a)berla.me>
+Date: Tue, 13 Sep 2022 15:07:54 -0700
+Subject: [PATCH 4/5] Remove old / unnecessary fix
+
+This was causes problems with the build and doesn't appear
+to be necessary anymore
+---
+ src/dropbox.c | 3 ---
+ src/nautilus-dropbox.c | 9 +--------
+ 2 files changed, 1 insertion(+), 11 deletions(-)
+
+diff --git a/src/dropbox.c b/src/dropbox.c
+index f52e0fb..8162aa9 100644
+--- a/src/dropbox.c
++++ b/src/dropbox.c
+@@ -38,9 +38,6 @@ nautilus_module_initialize (GTypeModule *module) {
+ nautilus_dropbox_register_type (module);
+ type_list[0] = NAUTILUS_TYPE_DROPBOX;
+
+- dropbox_use_nautilus_submenu_workaround
+- = (NAUTILUS_VERSION_MAJOR < 2 ||
+- (NAUTILUS_VERSION_MAJOR == 2 && NAUTILUS_VERSION_MINOR <= 22));
+ dropbox_use_operation_in_progress_workaround = TRUE;
+ }
+
+diff --git a/src/nautilus-dropbox.c b/src/nautilus-dropbox.c
+index 837f9ab..bc1b5bd 100644
+--- a/src/nautilus-dropbox.c
++++ b/src/nautilus-dropbox.c
+@@ -47,7 +47,7 @@
+ static char *emblems[] = {"dropbox-uptodate", "dropbox-syncing",
"dropbox-unsyncable"};
+ gchar *DEFAULT_EMBLEM_PATHS[2] = { EMBLEMDIR , NULL };
+
+-gboolean dropbox_use_nautilus_submenu_workaround;
++
+ gboolean dropbox_use_operation_in_progress_workaround;
+
+ static GType dropbox_type = 0;
+@@ -628,13 +628,6 @@ nautilus_dropbox_parse_menu(gchar **options,
+ g_object_set_property (G_OBJECT(item), "sensitive", &sensitive);
+ }
+
+- /* taken from nautilus-file-repairer (
http://repairer.kldp.net/):
+- * this code is a workaround for a bug of nautilus
+- * See:
http://bugzilla.gnome.org/show_bug.cgi?id=508878 */
+- if (dropbox_use_nautilus_submenu_workaround) {
+- toret = g_list_append(toret, item);
+- }
+-
+ g_object_unref(item);
+ g_string_free(new_action_string, TRUE);
+ ret++;
+
+From 585195ce25ffdaa6906d22a2361072c97ac47660 Mon Sep 17 00:00:00 2001
+From: Corey Berla <corey(a)berla.me>
+Date: Tue, 13 Sep 2022 15:08:16 -0700
+Subject: [PATCH 5/5] Update code for gtk4
+
+---
+ src/nautilus-dropbox.c | 14 ++++++--------
+ 1 file changed, 6 insertions(+), 8 deletions(-)
+
+diff --git a/src/nautilus-dropbox.c b/src/nautilus-dropbox.c
+index bc1b5bd..b9c10b4 100644
+--- a/src/nautilus-dropbox.c
++++ b/src/nautilus-dropbox.c
+@@ -768,14 +768,13 @@ add_emblem_paths(GHashTable* emblem_paths_response)
+
+ gchar **emblem_paths_list;
+ int i;
+-
+- GtkIconTheme *theme = gtk_icon_theme_get_default();
++ GtkIconTheme *theme = gtk_icon_theme_get_for_display (gdk_display_get_default ());
+
+ if (emblem_paths_response &&
+ (emblem_paths_list = g_hash_table_lookup(emblem_paths_response,
"path"))) {
+ for (i = 0; emblem_paths_list[i] != NULL; i++) {
+ if (emblem_paths_list[i][0])
+- gtk_icon_theme_append_search_path(theme, emblem_paths_list[i]);
++ gtk_icon_theme_add_search_path(theme, emblem_paths_list[i]);
+ }
+ }
+ g_hash_table_unref(emblem_paths_response);
+@@ -794,15 +793,14 @@ remove_emblem_paths(GHashTable* emblem_paths_response)
+ goto exit;
+
+ // We need to remove the old paths.
+- GtkIconTheme * icon_theme = gtk_icon_theme_get_default();
+ gchar ** paths;
+- gint path_count;
++ GtkIconTheme *theme = gtk_icon_theme_get_for_display (gdk_display_get_default ());
+
+- gtk_icon_theme_get_search_path(icon_theme, &paths, &path_count);
++ paths = gtk_icon_theme_get_search_path(theme);
+
+ gint i, j, out = 0;
+ gboolean found = FALSE;
+- for (i = 0; i < path_count; i++) {
++ for (i = 0; paths[i] != NULL; i++) {
+ gboolean keep = TRUE;
+ for (j = 0; emblem_paths_list[j] != NULL; j++) {
+ if (emblem_paths_list[j][0]) {
+@@ -824,7 +822,7 @@ remove_emblem_paths(GHashTable* emblem_paths_response)
+ accomodate the changes */
+ if (found) {
+ paths[out] = NULL; /* Clear the last one */
+- gtk_icon_theme_set_search_path(icon_theme, (const gchar **)paths, out);
++ gtk_icon_theme_set_search_path(theme, (const gchar **)paths);
+ }
+
+ g_strfreev(paths);
diff --git a/fix_nautilus_includes.patch b/fix_nautilus_includes.patch
index 7623eb7..124bc51 100644
--- a/fix_nautilus_includes.patch
+++ b/fix_nautilus_includes.patch
@@ -11,29 +11,3 @@ diff -uNrp a/src/dropbox-command-client.h
b/src/dropbox-command-client.h
G_BEGIN_DECLS
-diff -uNrp a/src/nautilus-dropbox.c b/src/nautilus-dropbox.c
---- a/src/nautilus-dropbox.c 2019-01-10 01:12:50.000000000 +0000
-+++ b/src/nautilus-dropbox.c 2019-02-12 08:51:10.385813888 +0000
-@@ -37,9 +37,7 @@
- #include <glib-object.h>
- #include <gtk/gtk.h>
-
--#include <libnautilus-extension/nautilus-extension-types.h>
--#include <libnautilus-extension/nautilus-menu-provider.h>
--#include <libnautilus-extension/nautilus-info-provider.h>
-+#include <nautilus-extension.h>
-
- #include "g-util.h"
- #include "dropbox-command-client.h"
-diff -uNrp a/src/nautilus-dropbox.h b/src/nautilus-dropbox.h
---- a/src/nautilus-dropbox.h 2019-01-10 01:12:50.000000000 +0000
-+++ b/src/nautilus-dropbox.h 2019-02-12 08:51:57.680430947 +0000
-@@ -27,7 +27,7 @@
- #include <glib.h>
- #include <glib-object.h>
-
--#include <libnautilus-extension/nautilus-info-provider.h>
-+#include <nautilus-extension.h>
-
- #include "dropbox-command-client.h"
- #include "nautilus-dropbox-hooks.h"
diff --git a/nautilus-dropbox.spec b/nautilus-dropbox.spec
index 8b3f06b..02a514f 100644
--- a/nautilus-dropbox.spec
+++ b/nautilus-dropbox.spec
@@ -1,7 +1,7 @@
Name: nautilus-dropbox
Epoch: 1
Version: 2020.03.04
-Release: 5%{?dist}
+Release: 6%{?dist}
Summary: Dropbox extension for Nautilus
License: GPLv3+
URL:
https://www.dropbox.com
@@ -10,6 +10,7 @@ Source:
https://linux.dropbox.com/packages/%{name}-%{version}.tar.bz2
# add 10 second delay to autostart to ensure it loads on session startup
Patch0: add_startup_delay.patch
Patch1: fix_nautilus_includes.patch
+Patch2: 105.patch
ExclusiveArch: i686 x86_64
@@ -17,6 +18,7 @@ BuildRequires: automake
BuildRequires: desktop-file-utils
BuildRequires: libtool
BuildRequires: gcc
+BuildRequires: gtk4-devel
BuildRequires: nautilus-devel
BuildRequires: python3-docutils
BuildRequires: python3-gobject
@@ -63,10 +65,13 @@ desktop-file-validate
%{buildroot}%{_datadir}/applications/dropbox.desktop
%{_datadir}/applications/dropbox.desktop
%files
-%{_libdir}/nautilus/extensions-3.0/libnautilus-dropbox.so
+%{_libdir}/nautilus/extensions-4/libnautilus-dropbox.so
%changelog
+* Tue Nov 15 2022 Julian Sikorski <belegdol(a)fedoraproject.org> - 1:2020.03.04-6
+- Add PR fixing nautilus 43+ support
+
* Mon Aug 08 2022 RPM Fusion Release Engineering <sergiomb(a)rpmfusion.org> -
1:2020.03.04-5
- Rebuilt for
https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild and ffmpeg
5.1