summary refs log tree commit diff
path: root/pkgs/desktops/gnome/core/nautilus
diff options
context:
space:
mode:
authorJan Tojnar <jtojnar@gmail.com>2021-05-07 23:18:14 +0200
committerJan Tojnar <jtojnar@gmail.com>2021-05-08 09:47:42 +0200
commit468cb5980b56d348979488a74a9b5de638400160 (patch)
tree1426485105b897074e82af80efdd545462edb211 /pkgs/desktops/gnome/core/nautilus
parentd03a5eb09720fd6ad670df12d8eafbbfcd7ff494 (diff)
downloadnixpkgs-468cb5980b56d348979488a74a9b5de638400160.tar
nixpkgs-468cb5980b56d348979488a74a9b5de638400160.tar.gz
nixpkgs-468cb5980b56d348979488a74a9b5de638400160.tar.bz2
nixpkgs-468cb5980b56d348979488a74a9b5de638400160.tar.lz
nixpkgs-468cb5980b56d348979488a74a9b5de638400160.tar.xz
nixpkgs-468cb5980b56d348979488a74a9b5de638400160.tar.zst
nixpkgs-468cb5980b56d348979488a74a9b5de638400160.zip
gnome: rename from gnome3
Since GNOME version is now 40, it no longer makes sense to use the old attribute name.
Diffstat (limited to 'pkgs/desktops/gnome/core/nautilus')
-rw-r--r--pkgs/desktops/gnome/core/nautilus/default.nix118
-rw-r--r--pkgs/desktops/gnome/core/nautilus/extension_dir.patch24
-rw-r--r--pkgs/desktops/gnome/core/nautilus/fix-paths.patch13
3 files changed, 155 insertions, 0 deletions
diff --git a/pkgs/desktops/gnome/core/nautilus/default.nix b/pkgs/desktops/gnome/core/nautilus/default.nix
new file mode 100644
index 00000000000..f3ccdbce98c
--- /dev/null
+++ b/pkgs/desktops/gnome/core/nautilus/default.nix
@@ -0,0 +1,118 @@
+{ lib, stdenv
+, fetchurl
+, meson
+, ninja
+, pkg-config
+, gettext
+, libxml2
+, desktop-file-utils
+, python3
+, wrapGAppsHook
+, gtk3
+, libhandy
+, libportal
+, 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 = "40.1";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/${pname}/${lib.versions.major version}/${pname}-${version}.tar.xz";
+    sha256 = "0cwxr7bfa19dvzra81s9wfshzv0zv7ycpfffn4amigd0fh0vkkwf";
+  };
+
+  patches = [
+    # Allow changing extension directory using environment variable.
+    ./extension_dir.patch
+
+    # Hardcode required paths.
+    (substituteAll {
+      src = ./fix-paths.patch;
+      inherit tracker;
+    })
+  ];
+
+  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
+    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/pkgs/desktops/gnome/core/nautilus/extension_dir.patch b/pkgs/desktops/gnome/core/nautilus/extension_dir.patch
new file mode 100644
index 00000000000..e1313999675
--- /dev/null
+++ b/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/pkgs/desktops/gnome/core/nautilus/fix-paths.patch b/pkgs/desktops/gnome/core/nautilus/fix-paths.patch
new file mode 100644
index 00000000000..dc9874359b2
--- /dev/null
+++ b/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;