about summary refs log tree commit diff
path: root/nixpkgs/pkgs/applications/backup
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/pkgs/applications/backup')
-rw-r--r--nixpkgs/pkgs/applications/backup/areca/default.nix54
-rw-r--r--nixpkgs/pkgs/applications/backup/areca/fix-javah-bug.diff24
-rw-r--r--nixpkgs/pkgs/applications/backup/deja-dup/default.nix77
-rw-r--r--nixpkgs/pkgs/applications/backup/deja-dup/fix-paths.patch11
-rw-r--r--nixpkgs/pkgs/applications/backup/vdmfec/default.nix19
-rw-r--r--nixpkgs/pkgs/applications/backup/vorta/default.nix42
6 files changed, 227 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/applications/backup/areca/default.nix b/nixpkgs/pkgs/applications/backup/areca/default.nix
new file mode 100644
index 000000000000..b4d644430dd1
--- /dev/null
+++ b/nixpkgs/pkgs/applications/backup/areca/default.nix
@@ -0,0 +1,54 @@
+{ stdenv, fetchurl, ant, jre, jdk, swt, acl, attr }:
+
+stdenv.mkDerivation {
+  name = "areca-7.5";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/project/areca/areca-stable/areca-7.5/areca-7.5-src.tar.gz";
+    sha256 = "1q4ha9s96c1syplxm04bh1v1gvjq16l4pa8w25w95d2ywwvyq1xb";
+  };
+
+  sourceRoot = ".";
+
+  buildInputs = [ jdk ant acl attr ];
+
+  patches = [ ./fix-javah-bug.diff ];
+
+  postPatch = ''
+    substituteInPlace build.xml --replace "/usr/lib/java/swt.jar" "${swt}/jars/swt.jar"
+    substituteInPlace build.xml --replace "gcc" "${stdenv.cc}/bin/gcc"
+    substituteInPlace areca.sh --replace "bin/" ""
+    substituteInPlace bin/areca_run.sh --replace "/usr/java" "${jre}/lib/openjdk"
+    substituteInPlace bin/areca_run.sh --replace "/usr/lib/java/swt.jar" "${swt}/jars/swt.jar"
+
+    # Fix for NixOS/nixpkgs/issues/53716
+    sed -i -e 's;^;#include <attr/attributes.h>;' jni/com_myJava_file_metadata_posix_jni_wrapper_FileAccessWrapper.c
+    substituteInPlace jni/com_myJava_file_metadata_posix_jni_wrapper_FileAccessWrapper.c --replace attr/xattr.h sys/xattr.h
+
+    sed -i "s#^PROGRAM_DIR.*#PROGRAM_DIR=$out#g" bin/areca_run.sh
+    sed -i "s#^LIBRARY_PATH.*#LIBRARY_PATH=$out/lib:${stdenv.lib.makeLibraryPath [ swt acl ]}#g" bin/areca_run.sh
+
+    # https://sourceforge.net/p/areca/bugs/563/
+    substituteInPlace bin/areca_run.sh --replace '[ "$JAVA_IMPL" = "java" ]' \
+      '[[ "$JAVA_IMPL" = "java" || "$JAVA_IMPL" = "openjdk" ]]'
+  '';
+
+  buildPhase = "ant";
+
+  installPhase = ''
+    mkdir -p $out/bin $out/lib $out/translations
+    cp areca.sh $out/bin/areca
+    cp -r bin $out
+    cp -r lib $out
+    cp -r translations $out
+    cp COPYING $out
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = "http://www.areca-backup.org/";
+    description = "An Open Source personal backup solution";
+    license = licenses.gpl2;
+    maintainers = with maintainers; [ pSub ];
+    platforms = with platforms; linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/backup/areca/fix-javah-bug.diff b/nixpkgs/pkgs/applications/backup/areca/fix-javah-bug.diff
new file mode 100644
index 000000000000..5d5feaf9b943
--- /dev/null
+++ b/nixpkgs/pkgs/applications/backup/areca/fix-javah-bug.diff
@@ -0,0 +1,24 @@
+diff --git a/build.xml b/build.xml
+index 1ba08e0..9248b76 100644
+--- a/build.xml
++++ b/build.xml
+@@ -56,10 +56,16 @@
+
+     <target name="compilejni" unless="isWindows">
+         <description>JNI compilation task (builds libarecafs.so ... for unix-like operating systems only)</description>
++
+         <!--Generate the JNI header-->
+-        <javah destdir="${root}/jni" force="yes" classpath="${root}/lib/areca.jar">
+-            <class name="com.myJava.file.metadata.posix.jni.wrapper.FileAccessWrapper"/>
+-        </javah>
++	<exec executable="javah">
++		<arg value="-d"/>
++		<arg value="${root}/jni"/>
++		<arg value="-force"/>
++		<arg value="-classpath"/>
++		<arg value="${root}/lib/areca.jar"/>
++		<arg value="com.myJava.file.metadata.posix.jni.wrapper.FileAccessWrapper"/>
++	</exec>
+
+         <!-- Compile the JNI code -->
+         <exec dir="${root}/jni" executable="gcc">
diff --git a/nixpkgs/pkgs/applications/backup/deja-dup/default.nix b/nixpkgs/pkgs/applications/backup/deja-dup/default.nix
new file mode 100644
index 000000000000..d6ce864d6523
--- /dev/null
+++ b/nixpkgs/pkgs/applications/backup/deja-dup/default.nix
@@ -0,0 +1,77 @@
+{ stdenv
+, fetchFromGitLab
+, substituteAll
+, meson
+, ninja
+, pkg-config
+, vala
+, gettext
+, itstool
+, glib
+, gtk3
+, coreutils
+, libsoup
+, libsecret
+, libhandy_0
+, wrapGAppsHook
+, libgpgerror
+, json-glib
+, duplicity
+}:
+
+stdenv.mkDerivation rec {
+  pname = "deja-dup";
+  version = "42.6";
+
+  src = fetchFromGitLab {
+    domain = "gitlab.gnome.org";
+    owner = "World";
+    repo = pname;
+    rev = version;
+    sha256 = "0grwlfakrnr9ij7h8lsfazlws6qix8pl50dr94cpxnnbjga9xn9z";
+  };
+
+  patches = [
+    (substituteAll {
+      src = ./fix-paths.patch;
+      inherit coreutils;
+    })
+  ];
+
+  nativeBuildInputs = [
+    meson
+    ninja
+    pkg-config
+    vala
+    gettext
+    itstool
+    wrapGAppsHook
+  ];
+
+  buildInputs = [
+    libsoup
+    glib
+    gtk3
+    libsecret
+    libhandy_0
+    libgpgerror
+    json-glib
+  ];
+
+  mesonFlags = [
+    "-Dduplicity_command=${duplicity}/bin/duplicity"
+  ];
+
+  meta = with stdenv.lib; {
+    description = "A simple backup tool";
+    longDescription = ''
+      Déjà Dup is a simple backup tool. It hides the complexity \
+      of backing up the Right Way (encrypted, off-site, and regular) \
+      and uses duplicity as the backend.
+    '';
+    homepage = "https://wiki.gnome.org/Apps/DejaDup";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ jtojnar ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/backup/deja-dup/fix-paths.patch b/nixpkgs/pkgs/applications/backup/deja-dup/fix-paths.patch
new file mode 100644
index 000000000000..26126fdc9d56
--- /dev/null
+++ b/nixpkgs/pkgs/applications/backup/deja-dup/fix-paths.patch
@@ -0,0 +1,11 @@
+--- a/libdeja/tools/duplicity/DuplicityInstance.vala
++++ b/libdeja/tools/duplicity/DuplicityInstance.vala
+@@ -159,7 +159,7 @@
+     // We already are pretty sure we don't have other duplicities in our
+     // archive directories, because we use our own and we ensure we only have
+     // one deja-dup running at a time via DBus.
+-    Posix.system("/bin/rm -f " + Shell.quote(cache_dir) + "/*/lockfile.lock");
++    Posix.system("@coreutils@/bin/rm -f " + Shell.quote(cache_dir) + "/*/lockfile.lock");
+ 
+     Process.spawn_async_with_pipes(null, real_argv, real_envp,
+                         SpawnFlags.SEARCH_PATH |
diff --git a/nixpkgs/pkgs/applications/backup/vdmfec/default.nix b/nixpkgs/pkgs/applications/backup/vdmfec/default.nix
new file mode 100644
index 000000000000..1366bb484a91
--- /dev/null
+++ b/nixpkgs/pkgs/applications/backup/vdmfec/default.nix
@@ -0,0 +1,19 @@
+{ stdenv, fetchurl }:
+
+stdenv.mkDerivation rec {
+  pname = "vdmfec";
+  version = "1.0";
+
+  src = fetchurl {
+    url = "http://members.tripod.com/professor_tom/archives/${pname}-${version}.tgz";
+    sha256 = "0i7q4ylx2xmzzq778anpkj4nqir5gf573n1lbpxnbc10ymsjq2rm";
+  };
+
+  meta = with stdenv.lib; {
+    description = "A program that adds error correction blocks";
+    homepage = "http://members.tripod.com/professor_tom/archives/index.html";
+    maintainers = [ maintainers.ar1a ];
+    license = with licenses; [ gpl2 /* for vdmfec */ bsd2 /* for fec */ ];
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/backup/vorta/default.nix b/nixpkgs/pkgs/applications/backup/vorta/default.nix
new file mode 100644
index 000000000000..fc7e6c0fc359
--- /dev/null
+++ b/nixpkgs/pkgs/applications/backup/vorta/default.nix
@@ -0,0 +1,42 @@
+{ buildPythonApplication, fetchFromGitHub, lib, paramiko, peewee, pyqt5
+, python-dateutil, APScheduler, psutil, qdarkstyle, secretstorage
+, appdirs, setuptools, qt5
+}:
+
+buildPythonApplication rec {
+  pname = "vorta";
+  version = "0.7.1";
+
+  src = fetchFromGitHub {
+    owner = "borgbase";
+    repo = "vorta";
+    rev = "v${version}";
+    sha256 = "069fq5gv324l2ap3g6m6i12lhq1iqm27dsmaagyc3sva945j0gxw";
+  };
+
+  postPatch = ''
+    sed -i -e '/setuptools_git/d' -e '/pytest-runner/d' setup.cfg
+  '';
+
+  nativeBuildInputs = [ qt5.wrapQtAppsHook ];
+
+  propagatedBuildInputs = [
+    paramiko peewee pyqt5 python-dateutil APScheduler psutil qdarkstyle
+    secretstorage appdirs setuptools
+  ];
+
+  # QT setup in tests broken.
+  doCheck = false;
+
+  preFixup = ''
+    makeWrapperArgs+=("''${qtWrapperArgs[@]}")
+  '';
+
+  meta = with lib; {
+    license = licenses.gpl3;
+    homepage = "https://vorta.borgbase.com/";
+    maintainers = with maintainers; [ ma27 ];
+    description = "Desktop Backup Client for Borg";
+    platforms = platforms.linux;
+  };
+}