summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--lib/licenses.nix5
-rw-r--r--maintainers/maintainer-list.nix5
-rw-r--r--pkgs/tools/backup/dirvish/default.nix62
-rw-r--r--pkgs/top-level/all-packages.nix2
-rw-r--r--pkgs/top-level/perl-packages.nix13
5 files changed, 87 insertions, 0 deletions
diff --git a/lib/licenses.nix b/lib/licenses.nix
index b022d8bc11b..d285ba2ea0a 100644
--- a/lib/licenses.nix
+++ b/lib/licenses.nix
@@ -561,6 +561,11 @@ lib.mapAttrs (n: v: v // { shortName = n; }) rec {
     fullName = "OpenSSL License";
   };
 
+  osl2 = spdx {
+    spdxId = "OSL-2.0";
+    fullName = "Open Software License 2.0";
+  };
+
   osl21 = spdx {
     spdxId = "OSL-2.1";
     fullName = "Open Software License 2.1";
diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix
index ae0323b891b..7edfee814b7 100644
--- a/maintainers/maintainer-list.nix
+++ b/maintainers/maintainer-list.nix
@@ -5020,6 +5020,11 @@
     email = "windenntw@gmail.com";
     name = "Antonio Vargas Gonzalez";
   };
+  winpat = {
+    email = "patrickwinter@posteo.ch";
+    github = "winpat";
+    name = "Patrick Winter";
+  };
   wizeman = {
     email = "rcorreia@wizy.org";
     github = "wizeman";
diff --git a/pkgs/tools/backup/dirvish/default.nix b/pkgs/tools/backup/dirvish/default.nix
new file mode 100644
index 00000000000..829dca52dfe
--- /dev/null
+++ b/pkgs/tools/backup/dirvish/default.nix
@@ -0,0 +1,62 @@
+{ fetchurl, stdenv, makeWrapper, perl, rsync, perlPackages }:
+
+stdenv.mkDerivation rec {
+  name = "dirvish-1.2.1";
+  src = fetchurl {
+    url = "http://dirvish.org/${name}.tgz";
+    sha256 = "6b7f29c3541448db3d317607bda3eb9bac9fb3c51f970611ffe27e9d63507dcd";
+  };
+
+  nativeBuildInputs = [ makeWrapper ];
+  buildInputs = [ perl ] ++ (with perlPackages; [ GetoptLong TimeParseDate TimePeriod ]);
+
+  executables = [ "dirvish" "dirvish-runall" "dirvish-expire" "dirvish-locate" ];
+  manpages = [ "dirvish.8" "dirvish-runall.8" "dirvish-expire.8" "dirvish-locate.8" "dirvish.conf.5" ];
+
+  buildPhase = ''
+    HEADER="#!${perl}/bin/perl
+
+    \$CONFDIR = \"/etc/dirvish\";
+
+    "
+
+    for executable in $executables; do
+      (
+        echo "$HEADER"
+        cat $executable.pl loadconfig.pl
+      ) > $executable
+      chmod +x $executable
+    done
+  '';
+
+  installPhase = ''
+    mkdir -p $out/bin
+    cp --target-directory=$out/bin $executables
+
+    for manpage in $manpages; do
+      if [[ $manpage =~ \.([[:digit:]]+)$ ]]; then
+        section=''${BASH_REMATCH[1]}
+        mkdir -p $out/man/man$section
+        cp --target-directory=$out/man/man$section $manpage
+      else
+        echo "Couldn't determine man page section by filename"
+        exit 1
+      fi
+    done
+  '';
+
+  postFixup = ''
+    for executable in $executables; do
+      wrapProgram $out/bin/$executable \
+        --set PERL5LIB "$PERL5LIB"
+    done
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Dirvish is a fast, disk based, rotating network backup system";
+    homepage = http://dirvish.org/;
+    license = stdenv.lib.licenses.osl2;
+    platforms = platforms.linux;
+    maintainers = [ maintainers.winpat ];
+  };
+}
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index bab749fca2d..a07eb2832e2 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -2306,6 +2306,8 @@ in
 
   dirmngr = callPackage ../tools/security/dirmngr { };
 
+  dirvish  = callPackage ../tools/backup/dirvish { };
+
   disper = callPackage ../tools/misc/disper { };
 
   dleyna-connector-dbus = callPackage ../development/libraries/dleyna-connector-dbus { };
diff --git a/pkgs/top-level/perl-packages.nix b/pkgs/top-level/perl-packages.nix
index 2866f6b6ca5..32498592392 100644
--- a/pkgs/top-level/perl-packages.nix
+++ b/pkgs/top-level/perl-packages.nix
@@ -16695,6 +16695,19 @@ let
     };
   };
 
+  TimePeriod = buildPerlPackage {
+    name = "Time-Period-1.25";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/P/PB/PBOYD/Time-Period-1.25.tar.gz";
+      sha256 = "d07fa580529beac6a9c8274c6bf220b4c3aade685df65c1669d53339bf6ef1e8";
+    };
+    meta = {
+      description = "A Perl module to deal with time periods";
+      license = stdenv.lib.licenses.gpl1;
+      maintainers = [ maintainers.winpat ];
+    };
+  };
+
   Tk = buildPerlPackage rec {
     name = "Tk-804.034";
     src = fetchurl {