diff options
Diffstat (limited to 'nixpkgs/pkgs/desktops/gnome/core/nautilus')
3 files changed, 169 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/desktops/gnome/core/nautilus/default.nix b/nixpkgs/pkgs/desktops/gnome/core/nautilus/default.nix new file mode 100644 index 000000000000..3f61f55db1dc --- /dev/null +++ b/nixpkgs/pkgs/desktops/gnome/core/nautilus/default.nix @@ -0,0 +1,132 @@ +{ lib, stdenv +, fetchurl +, fetchpatch +, meson +, ninja +, pkg-config +, gettext +, libxml2 +, desktop-file-utils +, python3 +, wrapGAppsHook +, gtk3 +, libhandy +, libportal-gtk3 +, gnome +, gnome-autoar +, glib-networking +, shared-mime-info +, libnotify +, libexif +, libseccomp +, exempi +, librsvg +, tracker +, tracker-miners +, gexiv2 +, libselinux +, gdk-pixbuf +, substituteAll +, gnome-desktop +, gst_all_1 +, gsettings-desktop-schemas +, gobject-introspection +}: + +stdenv.mkDerivation rec { + pname = "nautilus"; + version = "41.2"; + + outputs = [ "out" "dev" ]; + + src = fetchurl { + url = "mirror://gnome/sources/${pname}/${lib.versions.major version}/${pname}-${version}.tar.xz"; + sha256 = "hyKFscQKbuQYzile0RX1Qn2nCQfYItlbz1FnXVSYgis="; + }; + + patches = [ + # Allow changing extension directory using environment variable. + ./extension_dir.patch + + # Hardcode required paths. + (substituteAll { + src = ./fix-paths.patch; + inherit tracker; + }) + + # Fix build with latest libportal + # https://gitlab.gnome.org/GNOME/nautilus/-/merge_requests/749 + (fetchpatch { + url = "https://gitlab.gnome.org/GNOME/nautilus/-/commit/55cfd66ccca391fc144f5863ff6bfc1f3b137e2d.patch"; + sha256 = "xSb9l7xxEYpAwmdmeWT/t7Z9Ck3DPtsODzbReQW/Q70="; + excludes = [ + "build-aux/flatpak/org.gnome.Nautilus.json" + "build-aux/flatpak/org.gnome.Nautilus.yml" + ]; + }) + ]; + + nativeBuildInputs = [ + desktop-file-utils + gettext + gobject-introspection + libxml2 + meson + ninja + pkg-config + python3 + wrapGAppsHook + ]; + + buildInputs = [ + exempi + gexiv2 + glib-networking + gnome-desktop + gnome.adwaita-icon-theme + gsettings-desktop-schemas + gst_all_1.gst-plugins-base + gtk3 + libhandy + libportal-gtk3 + libexif + libnotify + libseccomp + libselinux + shared-mime-info + tracker + tracker-miners + ]; + + propagatedBuildInputs = [ + gnome-autoar + ]; + + preFixup = '' + gappsWrapperArgs+=( + # Thumbnailers + --prefix XDG_DATA_DIRS : "${gdk-pixbuf}/share" + --prefix XDG_DATA_DIRS : "${librsvg}/share" + --prefix XDG_DATA_DIRS : "${shared-mime-info}/share" + ) + ''; + + postPatch = '' + patchShebangs build-aux/meson/postinstall.py + ''; + + passthru = { + updateScript = gnome.updateScript { + packageName = pname; + attrPath = "gnome.${pname}"; + }; + }; + + meta = with lib; { + description = "The file manager for GNOME"; + homepage = "https://wiki.gnome.org/Apps/Files"; + license = licenses.gpl3Plus; + platforms = platforms.linux; + maintainers = teams.gnome.members; + }; +} diff --git a/nixpkgs/pkgs/desktops/gnome/core/nautilus/extension_dir.patch b/nixpkgs/pkgs/desktops/gnome/core/nautilus/extension_dir.patch new file mode 100644 index 000000000000..e1313999675d --- /dev/null +++ b/nixpkgs/pkgs/desktops/gnome/core/nautilus/extension_dir.patch @@ -0,0 +1,24 @@ +diff --git a/src/nautilus-module.c b/src/nautilus-module.c +index 6273a76..4adcc8a 100644 +--- a/src/nautilus-module.c ++++ b/src/nautilus-module.c +@@ -242,11 +242,17 @@ void + nautilus_module_setup (void) + { + static gboolean initialized = FALSE; ++ const gchar* extensiondir = NULL; + + if (!initialized) + { + initialized = TRUE; + +- load_module_dir (NAUTILUS_EXTENSIONDIR); ++ extensiondir = g_getenv ("NAUTILUS_EXTENSION_DIR"); ++ if (extensiondir == NULL) { ++ extensiondir = NAUTILUS_EXTENSIONDIR; ++ } ++ ++ load_module_dir (extensiondir); + + eel_debug_call_at_shutdown (free_module_objects); + } diff --git a/nixpkgs/pkgs/desktops/gnome/core/nautilus/fix-paths.patch b/nixpkgs/pkgs/desktops/gnome/core/nautilus/fix-paths.patch new file mode 100644 index 000000000000..dc9874359b23 --- /dev/null +++ b/nixpkgs/pkgs/desktops/gnome/core/nautilus/fix-paths.patch @@ -0,0 +1,13 @@ +diff --git a/src/nautilus-tag-manager.c b/src/nautilus-tag-manager.c +index 28b96c996..0b1fad9ab 100644 +--- a/src/nautilus-tag-manager.c ++++ b/src/nautilus-tag-manager.c +@@ -962,7 +962,7 @@ child_watch_cb (GPid pid, + static void + export_tracker2_data (NautilusTagManager *self) + { +- gchar *argv[] = {"tracker3", "export", "--2to3", "files-starred", "--keyfile", NULL}; ++ gchar *argv[] = {"@tracker@/bin/tracker3", "export", "--2to3", "files-starred", "--keyfile", NULL}; + gint stdout_fd; + GPid child_pid; + g_autoptr (GError) error = NULL; |