summary refs log tree commit diff
path: root/pkgs/tools/backup/kopia/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/tools/backup/kopia/default.nix')
-rw-r--r--pkgs/tools/backup/kopia/default.nix38
1 files changed, 38 insertions, 0 deletions
diff --git a/pkgs/tools/backup/kopia/default.nix b/pkgs/tools/backup/kopia/default.nix
new file mode 100644
index 00000000000..1973c119486
--- /dev/null
+++ b/pkgs/tools/backup/kopia/default.nix
@@ -0,0 +1,38 @@
+{ lib, buildGoModule, fetchFromGitHub, coreutils }:
+
+buildGoModule rec {
+  pname = "kopia";
+  version = "0.6.0";
+
+  src = fetchFromGitHub {
+    owner = pname;
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "0jxl2zq3s3czz52ndq7zbj8liij0519745pbcqaj42x851c1p6mj";
+  };
+
+  vendorSha256 = "1npxr7gp59xv38zdx1diilfxij6lb0cmvsnzvjx6n8g0326gf2ii";
+
+  doCheck = false;
+
+  subPackages = [ "." ];
+
+  postConfigure = ''
+    # make 'vendor' writable
+    cp -L -r vendor tmp-vendor
+    rm -rf vendor
+    mv tmp-vendor vendor
+
+    # speakeasy hardcodes /bin/stty https://github.com/bgentry/speakeasy/issues/22
+    substituteInPlace vendor/github.com/bgentry/speakeasy/speakeasy_unix.go \
+      --replace "/bin/stty" "${coreutils}/bin/stty"
+  '';
+
+  meta = with lib; {
+    homepage = "https://kopia.io";
+    description = "Cross-platform backup tool with fast, incremental backups, client-side end-to-end encryption, compression and data deduplication";
+    platforms = platforms.all;
+    license = licenses.asl20;
+    maintainers = [ maintainers.bbigras ];
+  };
+}