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
|
{ 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;
};
}
|