about summary refs log tree commit diff
path: root/nixpkgs/pkgs/applications/networking/dropbox/cli.nix
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/pkgs/applications/networking/dropbox/cli.nix')
-rw-r--r--nixpkgs/pkgs/applications/networking/dropbox/cli.nix72
1 files changed, 50 insertions, 22 deletions
diff --git a/nixpkgs/pkgs/applications/networking/dropbox/cli.nix b/nixpkgs/pkgs/applications/networking/dropbox/cli.nix
index 73977b82047c..2b6645b2c8a6 100644
--- a/nixpkgs/pkgs/applications/networking/dropbox/cli.nix
+++ b/nixpkgs/pkgs/applications/networking/dropbox/cli.nix
@@ -1,4 +1,15 @@
-{ stdenv, pkgconfig, fetchurl, python3, dropbox }:
+{ stdenv
+, substituteAll
+, pkgconfig
+, fetchurl
+, python3
+, dropbox
+, gtk3
+, gnome3
+, gdk_pixbuf
+, gobject-introspection
+}:
+
 let
   version = "2019.02.14";
   dropboxd = "${dropbox}/bin/dropbox";
@@ -6,35 +17,52 @@ in
 stdenv.mkDerivation {
   name = "dropbox-cli-${version}";
 
+  outputs = [ "out" "nautilusExtension" ];
+
   src = fetchurl {
     url = "https://linux.dropboxstatic.com/packages/nautilus-dropbox-${version}.tar.bz2";
     sha256 = "09yg7q45sycl88l3wq0byz4a9k6sxx3m0r3szinvisfay9wlj35f";
   };
 
-  nativeBuildInputs = [ pkgconfig ];
-  buildInputs = [ python3 ];
-
-  phases = "unpackPhase installPhase";
-
-  installPhase = ''
-    mkdir -p "$out/bin/" "$out/share/applications"
-    cp data/dropbox.desktop "$out/share/applications"
-    cp -a data/icons "$out/share/icons"
-    find "$out/share/icons" -type f \! -name '*.png' -delete
-    substitute "dropbox.in" "$out/bin/dropbox" \
-      --replace '@PACKAGE_VERSION@' ${version} \
-      --replace '@DESKTOP_FILE_DIR@' "$out/share/applications" \
-      --replace '@IMAGEDATA16@' '"too-lazy-to-fix"' \
-      --replace '@IMAGEDATA64@' '"too-lazy-to-fix"'
-    sed -i 's:db_path = .*:db_path = "${dropboxd}":' $out/bin/dropbox
-    chmod +x "$out/bin/"*
-    patchShebangs "$out/bin"
-  '';
+  strictDeps = true;
+
+  patches = [
+    (substituteAll {
+      src = ./fix-cli-paths.patch;
+      inherit dropboxd;
+    })
+  ];
+
+  nativeBuildInputs = [
+    pkgconfig
+    gobject-introspection
+    gdk_pixbuf
+    # only for build, the install command also wants to use GTK through introspection
+    # but we are using Nix for installation so we will not need that.
+    (python3.withPackages (ps: with ps; [
+      docutils
+      pygobject3
+    ]))
+  ];
+
+  buildInputs = [
+    python3
+    gtk3
+    gnome3.nautilus
+  ];
+
+  configureFlags = [
+    "--with-nautilus-extension-dir=${placeholder ''nautilusExtension''}/lib/nautilus/extensions-3.0"
+  ];
+
+  makeFlags = [
+    "EMBLEM_DIR=${placeholder ''nautilusExtension''}/share/nautilus-dropbox/emblems"
+  ];
 
   meta = {
-    homepage = http://dropbox.com;
+    homepage = https://www.dropbox.com;
     description = "Command line client for the dropbox daemon";
-    license = stdenv.lib.licenses.gpl3;
+    license = stdenv.lib.licenses.gpl3Plus;
     maintainers = with stdenv.lib.maintainers; [ the-kenny ];
     # NOTE: Dropbox itself only works on linux, so this is ok.
     platforms = stdenv.lib.platforms.linux;