{ lib , stdenv , fetchurl , meson , ninja , pkg-config , gi-docgen , docbook-xsl-nons , gettext , libxml2 , desktop-file-utils , wrapGAppsHook4 , gtk4 , libadwaita , libportal-gtk4 , gnome , gnome-autoar , glib-networking , shared-mime-info , libnotify , libexif , libseccomp , librsvg , webp-pixbuf-loader , tracker , tracker-miners , gexiv2 , libselinux , libcloudproviders , gdk-pixbuf , substituteAll , gnome-desktop , gst_all_1 , gsettings-desktop-schemas , gnome-user-share , gobject-introspection }: stdenv.mkDerivation rec { pname = "nautilus"; version = "43.2"; outputs = [ "out" "dev" "devdoc" ]; src = fetchurl { url = "mirror://gnome/sources/${pname}/${lib.versions.major version}/${pname}-${version}.tar.xz"; sha256 = "qGqap6RVURsCnOSaHYtGWcPDVbXYHXNgu00N5jev7eA="; }; 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 gi-docgen docbook-xsl-nons wrapGAppsHook4 ]; buildInputs = [ gexiv2 glib-networking gnome-desktop gnome.adwaita-icon-theme gsettings-desktop-schemas gnome-user-share gst_all_1.gst-plugins-base gtk4 libadwaita libportal-gtk4 libexif libnotify libseccomp libselinux gdk-pixbuf libcloudproviders shared-mime-info tracker tracker-miners gnome-autoar ]; propagatedBuildInputs = [ gtk4 ]; mesonFlags = [ "-Ddocs=true" ]; preFixup = '' gappsWrapperArgs+=( # Thumbnailers --prefix XDG_DATA_DIRS : "${gdk-pixbuf}/share" --prefix XDG_DATA_DIRS : "${librsvg}/share" --prefix XDG_DATA_DIRS : "${webp-pixbuf-loader}/share" --prefix XDG_DATA_DIRS : "${shared-mime-info}/share" ) ''; postFixup = '' # Cannot be in postInstall, otherwise _multioutDocs hook in preFixup will move right back. moveToOutput "share/doc" "$devdoc" ''; 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; }; }