Merge pull request #268619 from tweag/lib-descriptions
[NixPkgs.git] / pkgs / development / libraries / gvfs / default.nix
blobb88daae22db86d77300313f4a336f58d791138cb
1 { stdenv
2 , lib
3 , fetchurl
4 , fetchpatch2
5 , meson
6 , ninja
7 , pkg-config
8 , substituteAll
9 , gettext
10 , dbus
11 , glib
12 , udevSupport ? stdenv.isLinux
13 , libgudev
14 , udisks2
15 , libgcrypt
16 , libcap
17 , polkit
18 , libgphoto2
19 , avahi
20 , libarchive
21 , fuse3
22 , libcdio
23 , libxml2
24 , libsoup_3
25 , libxslt
26 , docbook_xsl
27 , docbook_xml_dtd_42
28 , samba
29 , libmtp
30 , gnomeSupport ? false
31 , gnome
32 , gcr
33 , glib-networking
34 , gnome-online-accounts
35 , wrapGAppsHook
36 , libimobiledevice
37 , libbluray
38 , libcdio-paranoia
39 , libnfs
40 , openssh
41 , libsecret
42 , libgdata
43 , python3
44 , gsettings-desktop-schemas
47 stdenv.mkDerivation rec {
48   pname = "gvfs";
49   version = "1.50.6";
51   src = fetchurl {
52     url = "mirror://gnome/sources/gvfs/${lib.versions.majorMinor version}/gvfs-${version}.tar.xz";
53     hash = "sha256-xPbhH8TqqZM/TbjHo0R14GaM6tK//tloZ9Bhvj053aU=";
54   };
56   patches = [
57     (substituteAll {
58       src = ./hardcode-ssh-path.patch;
59       ssh_program = "${lib.getBin openssh}/bin/ssh";
60     })
61   ];
63   postPatch = ''
64     # patchShebangs requires executable file
65     chmod +x meson_post_install.py
66     patchShebangs meson_post_install.py
67     patchShebangs test test-driver
68   '';
70   nativeBuildInputs = [
71     meson
72     ninja
73     python3
74     pkg-config
75     gettext
76     wrapGAppsHook
77     libxslt
78     docbook_xsl
79     docbook_xml_dtd_42
80   ];
82   buildInputs = [
83     glib
84     libgcrypt
85     dbus
86     libgphoto2
87     avahi
88     libarchive
89     libimobiledevice
90     libbluray
91     libnfs
92     libxml2
93     gsettings-desktop-schemas
94     libsoup_3
95   ] ++ lib.optionals udevSupport [
96     libgudev
97     udisks2
98     fuse3
99     libcdio
100     samba
101     libmtp
102     libcap
103     polkit
104     libcdio-paranoia
105   ] ++ lib.optionals gnomeSupport [
106     gcr
107     glib-networking # TLS support
108     gnome-online-accounts
109     libsecret
110     libgdata
111   ];
113   mesonFlags = [
114     "-Dsystemduserunitdir=${placeholder "out"}/lib/systemd/user"
115     "-Dtmpfilesdir=no"
116   ] ++ lib.optionals (!udevSupport) [
117     "-Dgudev=false"
118     "-Dudisks2=false"
119     "-Dfuse=false"
120     "-Dcdda=false"
121     "-Dsmb=false"
122     "-Dmtp=false"
123     "-Dadmin=false"
124     "-Dgphoto2=false"
125     "-Dlibusb=false"
126     "-Dlogind=false"
127   ] ++ lib.optionals (!gnomeSupport) [
128     "-Dgcr=false"
129     "-Dgoa=false"
130     "-Dkeyring=false"
131     "-Dgoogle=false"
132   ] ++ lib.optionals (avahi == null) [
133     "-Ddnssd=false"
134   ] ++ lib.optionals (samba == null) [
135     # Xfce don't want samba
136     "-Dsmb=false"
137   ];
139   doCheck = false; # fails with "ModuleNotFoundError: No module named 'gi'"
140   doInstallCheck = doCheck;
142   separateDebugInfo = true;
144   passthru = {
145     updateScript = gnome.updateScript {
146       packageName = pname;
147       versionPolicy = "odd-unstable";
148     };
149   };
151   meta = with lib; {
152     description = "Virtual Filesystem support library" + optionalString gnomeSupport " (full GNOME support)";
153     license = licenses.lgpl2Plus;
154     platforms = platforms.unix;
155     maintainers = teams.gnome.members;
156   };