summaryrefslogtreecommitdiffstats
path: root/pkgs/applications/system
diff options
context:
space:
mode:
authorColin Arnott <colin@urandom.co.uk>2022-12-30 10:34:59 +0000
committerColin Arnott <colin@urandom.co.uk>2023-01-11 04:03:04 +0000
commit72d43ddf528026416c84a7acf08c2922e9ce1e51 (patch)
tree0b1ead8e15796e867f7a1f65b818eda7219dd5ae /pkgs/applications/system
parent71a885bf3ba24482a1c582033071a0fc9d71d6d7 (diff)
zxfer: init at 1.1.7
Fixes #174660
Diffstat (limited to 'pkgs/applications/system')
-rw-r--r--pkgs/applications/system/zxfer/default.nix86
1 files changed, 86 insertions, 0 deletions
diff --git a/pkgs/applications/system/zxfer/default.nix b/pkgs/applications/system/zxfer/default.nix
new file mode 100644
index 000000000000..b62c1262430c
--- /dev/null
+++ b/pkgs/applications/system/zxfer/default.nix
@@ -0,0 +1,86 @@
+{ lib
+, bash
+, fetchFromGitHub
+, installShellFiles
+, coreutils
+, gawk
+, gnugrep
+, gnused
+, openssh
+, resholve
+, rsync
+, which
+, zfs
+}:
+
+resholve.mkDerivation rec {
+ pname = "zxfer";
+ version = "1.1.7";
+
+ src = fetchFromGitHub {
+ owner = "allanjude";
+ repo = pname;
+ rev = "v${version}";
+ hash = "sha256-11SQJcD3GqPYBIgaycyKkc62/diVKPuuj2Or97j+NZY=";
+ };
+
+ nativeBuildInputs = [ installShellFiles ];
+
+ # these may point to paths on remote systems, calculated at runtime, thus we cannot fix them
+ # we can only set their initial values, and let them remain dynamic
+ postPatch = ''
+ substituteInPlace zxfer \
+ --replace 'LCAT=""' 'LCAT=${coreutils}/bin/cat' \
+ --replace 'LZFS=$( which zfs )' 'LZFS=${zfs}/bin/zfs'
+ '';
+
+ installPhase = ''
+ runHook preInstall
+
+ installManPage zxfer.1m zxfer.8
+ install -Dm755 zxfer -t $out/bin/
+
+ runHook postInstall
+ '';
+
+ solutions.default = {
+ scripts = [ "bin/zxfer" ];
+ interpreter = "${bash}/bin/sh";
+ inputs = [
+ coreutils
+ gawk
+ gnugrep
+ gnused
+ openssh
+ rsync
+ which
+ ];
+ fake.external = [
+ "kldload" # bsd builtin
+ "kldstat" # bsd builtin
+ "svcadm" # solaris builtin
+ ];
+ keep = {
+ "$LCAT" = true;
+ "$LZFS" = true;
+ "$PROGRESS_DIALOG" = true;
+ "$RZFS" = true;
+ "$input_optionts" = true;
+ "$option_O" = true;
+ "$option_T" = true;
+ };
+ fix = {
+ "$AWK" = [ "awk" ];
+ "$RSYNC" = [ "rsync" ];
+ };
+ execer = [ "cannot:${rsync}/bin/rsync" ];
+ };
+
+ meta = with lib; {
+ description = "A popular script for managing ZFS snapshot replication";
+ homepage = "https://github.com/allanjude/zxfer";
+ changelog = "https://github.com/allanjude/zxfer/releases/tag/v${version}";
+ license = licenses.bsd2;
+ maintainers = with lib.maintainers; [ urandom ];
+ };
+}