1072e203b3
- There is no need to pass pname and version arguments - The version lister does not use positional arguments anymore, but option arguments. Removed the echo command to fix an issue regarding this.
71 lines
1.7 KiB
Nix
71 lines
1.7 KiB
Nix
{ lib
|
|
, stdenv
|
|
, fetchurl
|
|
, bash
|
|
, btrfs-progs
|
|
, openssh
|
|
, perl
|
|
, perlPackages
|
|
, util-linux
|
|
, asciidoctor
|
|
, mbuffer
|
|
, makeWrapper
|
|
, genericUpdater
|
|
, curl
|
|
, writeShellScript
|
|
, nixosTests
|
|
}:
|
|
|
|
stdenv.mkDerivation rec {
|
|
pname = "btrbk";
|
|
version = "0.32.4";
|
|
|
|
src = fetchurl {
|
|
url = "https://digint.ch/download/btrbk/releases/${pname}-${version}.tar.xz";
|
|
sha256 = "zGWdHrQZwBtMZ58gcnpj5eZksIwbCRIiz1qwif9ihto=";
|
|
};
|
|
|
|
nativeBuildInputs = [ asciidoctor makeWrapper ];
|
|
|
|
buildInputs = with perlPackages; [ perl DateCalc ];
|
|
|
|
preInstall = ''
|
|
for f in $(find . -name Makefile); do
|
|
substituteInPlace "$f" \
|
|
--replace "/usr" "$out" \
|
|
--replace "/etc" "$out/etc"
|
|
done
|
|
|
|
# Tainted Mode disables PERL5LIB
|
|
substituteInPlace btrbk \
|
|
--replace "perl -T" "perl" \
|
|
--replace "\$0" "\$ENV{'program_name'}"
|
|
|
|
# Fix SSH filter script
|
|
sed -i '/^export PATH/d' ssh_filter_btrbk.sh
|
|
substituteInPlace ssh_filter_btrbk.sh --replace logger ${util-linux}/bin/logger
|
|
'';
|
|
|
|
preFixup = ''
|
|
wrapProgram $out/bin/btrbk \
|
|
--set PERL5LIB $PERL5LIB \
|
|
--run 'export program_name=$0' \
|
|
--prefix PATH ':' "${lib.makeBinPath [ btrfs-progs bash mbuffer openssh ]}"
|
|
'';
|
|
|
|
passthru.tests.btrbk = nixosTests.btrbk;
|
|
|
|
passthru.updateScript = genericUpdater {
|
|
versionLister = writeShellScript "btrbk-versionLister" ''
|
|
${curl}/bin/curl -s https://digint.ch/download/btrbk/releases/ | ${perl}/bin/perl -lne 'print $1 if /btrbk-([0-9.]*)\.tar/'
|
|
'';
|
|
};
|
|
|
|
meta = with lib; {
|
|
description = "A backup tool for btrfs subvolumes";
|
|
homepage = "https://digint.ch/btrbk";
|
|
license = licenses.gpl3Only;
|
|
platforms = platforms.unix;
|
|
maintainers = with maintainers; [ asymmetric ];
|
|
};
|
|
}
|