1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
|
{ 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
, libjxl
, 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 (finalAttrs: {
pname = "nautilus";
version = "45.2.1";
outputs = [ "out" "dev" "devdoc" ];
src = fetchurl {
url = "mirror://gnome/sources/nautilus/${lib.versions.major finalAttrs.version}/nautilus-${finalAttrs.version}.tar.xz";
sha256 = "ul1T3zmhVVYt+XHvXjHoJwdJBdDEjqseskIaEChLmQ0=";
};
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 : "${libjxl}/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 = "nautilus";
attrPath = "gnome.nautilus";
};
};
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;
mainProgram = "nautilus";
};
})
|