about summary refs log tree commit diff
path: root/nixpkgs/pkgs/development/libraries/gvfs/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/pkgs/development/libraries/gvfs/default.nix')
-rw-r--r--nixpkgs/pkgs/development/libraries/gvfs/default.nix131
1 files changed, 131 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/development/libraries/gvfs/default.nix b/nixpkgs/pkgs/development/libraries/gvfs/default.nix
new file mode 100644
index 000000000000..2c9bac002fd3
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/gvfs/default.nix
@@ -0,0 +1,131 @@
+{ 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;
+    };
+  };
+
+  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;
+  };
+}