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
, meson
, ninja
, pkg-config
, gettext
, dbus
, glib
, libgudev
, udisks2
, libgcrypt
, libcap
, polkit
, libgphoto2
, avahi
, libarchive
, fuse3
, libcdio
, libxml2
, libxslt
, docbook_xsl
, docbook_xml_dtd_42
, samba
, libmtp
, gnomeSupport ? false
, gnome3
, gcr
, glib-networking
, gnome-online-accounts
, wrapGAppsHook
, libimobiledevice
, libbluray
, libcdio-paranoia
, libnfs
, openssh
, libsecret
, libgdata
, python3
, gsettings-desktop-schemas
}:
stdenv.mkDerivation rec {
pname = "gvfs";
version = "1.46.2";
src = fetchurl {
url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
sha256 = "2D+hYChmcMA+uJAkBgbYr6fqajqBjorRfu7Y2XZIe9c=";
};
postPatch = ''
# patchShebangs requires executable file
chmod +x meson_post_install.py
patchShebangs meson_post_install.py
patchShebangs test test-driver
'';
nativeBuildInputs = [
meson
ninja
python3
pkg-config
gettext
wrapGAppsHook
libxml2
libxslt
docbook_xsl
docbook_xml_dtd_42
];
buildInputs = [
glib
libgudev
udisks2
libgcrypt
dbus
libgphoto2
avahi
libarchive
fuse3
libcdio
samba
libmtp
libcap
polkit
libimobiledevice
libbluray
libcdio-paranoia
libnfs
openssh
gsettings-desktop-schemas
# TODO: a ligther version of libsoup to have FTP/HTTP support?
] ++ lib.optionals gnomeSupport [
gnome3.libsoup
gcr
glib-networking # TLS support
gnome-online-accounts
libsecret
libgdata
];
mesonFlags = [
"-Dsystemduserunitdir=${placeholder "out"}/lib/systemd/user"
"-Dtmpfilesdir=no"
] ++ lib.optionals (!gnomeSupport) [
"-Dgcr=false"
"-Dgoa=false"
"-Dkeyring=false"
"-Dhttp=false"
"-Dgoogle=false"
] ++ lib.optionals (samba == null) [
# Xfce don't want samba
"-Dsmb=false"
];
doCheck = false; # fails with "ModuleNotFoundError: No module named 'gi'"
doInstallCheck = doCheck;
passthru = {
updateScript = gnome3.updateScript {
packageName = pname;
versionPolicy = "odd-unstable";
};
};
meta = with lib; {
description = "Virtual Filesystem support library" + optionalString gnomeSupport " (full GNOME support)";
license = licenses.lgpl2Plus;
platforms = platforms.linux;
maintainers = [ maintainers.lethalman ] ++ teams.gnome.members;
};
}
|