Loading pkgs/applications/networking/dropbox/cli.nix +7 −9 Original line number Diff line number Diff line Loading @@ -5,14 +5,14 @@ , fetchurl , python3 , dropbox , gtk3 , gtk4 , gnome , gdk-pixbuf , gobject-introspection }: let version = "2020.03.04"; version = "2023.09.06"; dropboxd = "${dropbox}/bin/dropbox"; in stdenv.mkDerivation { Loading @@ -23,16 +23,12 @@ stdenv.mkDerivation { src = fetchurl { url = "https://linux.dropbox.com/packages/nautilus-dropbox-${version}.tar.bz2"; sha256 = "1jjc835n2j61d23kvygdb4n4jsrw33r9mbwxrm4fqin6x01l2w7k"; hash = "sha256-kZMwj8Fn8Hf58C57wE025TlmiSs5TaKMGEzvb2QjgSw="; }; strictDeps = true; patches = [ # Fix extension for Nautilus 43 # https://github.com/dropbox/nautilus-dropbox/pull/105 ./nautilus-43.patch (substituteAll { src = ./fix-cli-paths.patch; inherit dropboxd; Loading @@ -54,12 +50,12 @@ stdenv.mkDerivation { buildInputs = [ python3 gtk3 gtk4 gnome.nautilus ]; configureFlags = [ "--with-nautilus-extension-dir=${placeholder "nautilusExtension"}/lib/nautilus/extensions-3.0" "--with-nautilus-extension-dir=${placeholder "nautilusExtension"}/lib/nautilus/extension-4" ]; makeFlags = [ Loading @@ -70,6 +66,8 @@ stdenv.mkDerivation { homepage = "https://www.dropbox.com"; description = "Command line client for the dropbox daemon"; license = lib.licenses.gpl3Plus; mainProgram = "dropbox"; maintainers = with lib.maintainers; [ eclairevoyant ]; # NOTE: Dropbox itself only works on linux, so this is ok. platforms = lib.platforms.linux; }; Loading pkgs/applications/networking/dropbox/default.nix +2 −2 Original line number Diff line number Diff line Loading @@ -7,7 +7,7 @@ assert lib.elem stdenv.hostPlatform.system platforms; # Dropbox client to bootstrap installation. # The client is self-updating, so the actual version may be newer. let version = "111.3.447"; version = "185.4.6054"; arch = { x86_64-linux = "x86_64"; Loading Loading @@ -84,7 +84,7 @@ buildFHSEnv { description = "Online stored folders (daemon version)"; homepage = "http://www.dropbox.com/"; license = licenses.unfree; maintainers = with maintainers; [ ttuegel ]; maintainers = with maintainers; [ eclairevoyant ttuegel ]; platforms = [ "i686-linux" "x86_64-linux" ]; mainProgram = "dropbox"; }; Loading pkgs/applications/networking/dropbox/nautilus-43.patchdeleted 100644 → 0 +0 −195 Original line number Diff line number Diff line diff --git a/configure.ac b/configure.ac index 025289c..42b49fa 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,8 +26,11 @@ 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) +PKG_CHECK_MODULES(GTK, gtk4 >= 4.6.0) + +AC_SUBST(GTK_CFLAGS) AC_PATH_PROG([PYTHON3], [python3]) @@ -84,10 +87,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}]) 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..8162aa9 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]; @@ -41,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 c75ccbf..b9c10b4 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" @@ -49,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; @@ -630,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++; @@ -661,7 +652,6 @@ get_file_items_callback(GHashTable *response, gpointer ud) static GList * nautilus_dropbox_get_file_items(NautilusMenuProvider *provider, - GtkWidget *window, GList *files) { /* @@ -778,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); @@ -804,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]) { @@ -834,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); @@ -888,13 +876,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" Loading
pkgs/applications/networking/dropbox/cli.nix +7 −9 Original line number Diff line number Diff line Loading @@ -5,14 +5,14 @@ , fetchurl , python3 , dropbox , gtk3 , gtk4 , gnome , gdk-pixbuf , gobject-introspection }: let version = "2020.03.04"; version = "2023.09.06"; dropboxd = "${dropbox}/bin/dropbox"; in stdenv.mkDerivation { Loading @@ -23,16 +23,12 @@ stdenv.mkDerivation { src = fetchurl { url = "https://linux.dropbox.com/packages/nautilus-dropbox-${version}.tar.bz2"; sha256 = "1jjc835n2j61d23kvygdb4n4jsrw33r9mbwxrm4fqin6x01l2w7k"; hash = "sha256-kZMwj8Fn8Hf58C57wE025TlmiSs5TaKMGEzvb2QjgSw="; }; strictDeps = true; patches = [ # Fix extension for Nautilus 43 # https://github.com/dropbox/nautilus-dropbox/pull/105 ./nautilus-43.patch (substituteAll { src = ./fix-cli-paths.patch; inherit dropboxd; Loading @@ -54,12 +50,12 @@ stdenv.mkDerivation { buildInputs = [ python3 gtk3 gtk4 gnome.nautilus ]; configureFlags = [ "--with-nautilus-extension-dir=${placeholder "nautilusExtension"}/lib/nautilus/extensions-3.0" "--with-nautilus-extension-dir=${placeholder "nautilusExtension"}/lib/nautilus/extension-4" ]; makeFlags = [ Loading @@ -70,6 +66,8 @@ stdenv.mkDerivation { homepage = "https://www.dropbox.com"; description = "Command line client for the dropbox daemon"; license = lib.licenses.gpl3Plus; mainProgram = "dropbox"; maintainers = with lib.maintainers; [ eclairevoyant ]; # NOTE: Dropbox itself only works on linux, so this is ok. platforms = lib.platforms.linux; }; Loading
pkgs/applications/networking/dropbox/default.nix +2 −2 Original line number Diff line number Diff line Loading @@ -7,7 +7,7 @@ assert lib.elem stdenv.hostPlatform.system platforms; # Dropbox client to bootstrap installation. # The client is self-updating, so the actual version may be newer. let version = "111.3.447"; version = "185.4.6054"; arch = { x86_64-linux = "x86_64"; Loading Loading @@ -84,7 +84,7 @@ buildFHSEnv { description = "Online stored folders (daemon version)"; homepage = "http://www.dropbox.com/"; license = licenses.unfree; maintainers = with maintainers; [ ttuegel ]; maintainers = with maintainers; [ eclairevoyant ttuegel ]; platforms = [ "i686-linux" "x86_64-linux" ]; mainProgram = "dropbox"; }; Loading
pkgs/applications/networking/dropbox/nautilus-43.patchdeleted 100644 → 0 +0 −195 Original line number Diff line number Diff line diff --git a/configure.ac b/configure.ac index 025289c..42b49fa 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,8 +26,11 @@ 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) +PKG_CHECK_MODULES(GTK, gtk4 >= 4.6.0) + +AC_SUBST(GTK_CFLAGS) AC_PATH_PROG([PYTHON3], [python3]) @@ -84,10 +87,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}]) 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..8162aa9 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]; @@ -41,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 c75ccbf..b9c10b4 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" @@ -49,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; @@ -630,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++; @@ -661,7 +652,6 @@ get_file_items_callback(GHashTable *response, gpointer ud) static GList * nautilus_dropbox_get_file_items(NautilusMenuProvider *provider, - GtkWidget *window, GList *files) { /* @@ -778,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); @@ -804,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]) { @@ -834,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); @@ -888,13 +876,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"