about summary refs log tree commit diff
path: root/nixpkgs/pkgs/tools/filesystems/boxfs/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/pkgs/tools/filesystems/boxfs/default.nix')
-rw-r--r--nixpkgs/pkgs/tools/filesystems/boxfs/default.nix60
1 files changed, 60 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/tools/filesystems/boxfs/default.nix b/nixpkgs/pkgs/tools/filesystems/boxfs/default.nix
new file mode 100644
index 000000000000..3ddc95273972
--- /dev/null
+++ b/nixpkgs/pkgs/tools/filesystems/boxfs/default.nix
@@ -0,0 +1,60 @@
+{ stdenv, fetchFromGitHub, curl, fuse, libxml2, pkgconfig }:
+
+let
+  srcs = {
+    boxfs2 = fetchFromGitHub {
+      sha256 = "10af1l3sjnh25shmq5gdnpyqk4vrq7i1zklv4csf1n2nrahln8j8";
+      rev = "d7018b0546d2dae956ae3da3fb95d2f63fa6d3ff";
+      repo = "boxfs2";
+      owner = "drotiro";
+    };
+    libapp = fetchFromGitHub {
+      sha256 = "1p2sbxiranan2n2xsfjkp3c6r2vcs57ds6qvjv4crs1yhxr7cp00";
+      rev = "febebe2bc0fb88d57bdf4eb4a2a54c9eeda3f3d8";
+      repo = "libapp";
+      owner = "drotiro";
+    };
+    libjson = fetchFromGitHub {
+      sha256 = "1vhss3gq44nl61fbnh1l3qzwvz623gwhfgykf1lf1p31rjr7273w";
+      rev = "75a7f50fca2c667bc5f32cdd6dd98f2b673f6657";
+      repo = "libjson";
+      owner = "vincenthz";
+    };
+  };
+in stdenv.mkDerivation {
+  pname = "boxfs";
+  version = "2-20150109";
+
+  src = srcs.boxfs2;
+
+  prePatch = with srcs; ''
+    substituteInPlace Makefile --replace "git pull" "true"
+    cp -a --no-preserve=mode ${libapp} libapp
+    cp -a --no-preserve=mode ${libjson} libjson
+  '';
+  patches = [ ./work-around-API-borkage.patch ];
+
+  buildInputs = [ curl fuse libxml2 ];
+  nativeBuildInputs = [ pkgconfig ];
+
+  buildFlags = [ "static" ];
+
+  installPhase = ''
+    mkdir -p $out/bin
+    install boxfs boxfs-init $out/bin
+  '';
+
+  meta = with stdenv.lib; {
+    description = "FUSE file system for box.com accounts";
+    longDescription = ''
+      Store files on box.com (an account is required). The first time you run
+      boxfs, you will need to complete the authentication (oauth2) process and
+      grant access to your box.com account. Just follow the instructions on
+      the terminal and in your browser. When you've done using your files,
+      unmount the file system with `fusermount -u mountpoint`.
+    '';
+    homepage = https://github.com/drotiro/boxfs2;
+    license = licenses.gpl3;
+    platforms = platforms.linux;
+  };
+}