1{ lib, stdenv, fetchFromGitHub, fetchurl, perl, perlPackages, wget, autoconf, automake, autoreconfHook }:
2
3let
4 # when upgrade znapzend, check versions of Perl libs here: https://github.com/oetiker/znapzend/blob/master/cpanfile
5 # pinned versions are listed at https://github.com/oetiker/znapzend/blob/master/thirdparty/cpanfile-5.30.snapshot
6 Mojolicious' = perlPackages.buildPerlPackage rec {
7 pname = "Mojolicious";
8 version = "8.73";
9 src = fetchurl {
10 url = "mirror://cpan/authors/id/S/SR/SRI/${pname}-${version}.tar.gz";
11 sha256 = "118y2264f89bbp5ly2dh36xjq25jk85s2ssxa3y4gsgsk6sjzzk1";
12 };
13 };
14 MojoIOLoopForkCall' = perlPackages.buildPerlModule rec {
15 pname = "Mojo-IOLoop-ForkCall";
16 version = "0.20";
17 src = fetchurl {
18 url = "mirror://cpan/authors/id/J/JB/JBERGER/${pname}-${version}.tar.gz";
19 sha256 = "19pih5x0ayxs2m8j29qwdpi6ky3w4ghv6vrmax3ix9r59hj6569b";
20 };
21 propagatedBuildInputs = [ perlPackages.IOPipely Mojolicious' ];
22 };
23
24 perl' = perl.withPackages (p:
25 [ MojoIOLoopForkCall'
26 p.TAPParserSourceHandlerpgTAP
27 ]);
28
29 version = "0.21.0";
30 sha256 = "1lg46rf2ahlclan29zx8ag5k4fjp28sc9l02z76f0pvdlj4qnihl";
31in
32stdenv.mkDerivation {
33 pname = "znapzend";
34 inherit version;
35
36 src = fetchFromGitHub {
37 owner = "oetiker";
38 repo = "znapzend";
39 rev = "v${version}";
40 inherit sha256;
41 };
42
43 buildInputs = [ wget perl' ];
44
45 nativeBuildInputs = [ autoconf automake autoreconfHook ];
46
47 preConfigure = ''
48 sed -i 's/^SUBDIRS =.*$/SUBDIRS = lib/' Makefile.am
49
50 grep -v thirdparty/Makefile configure.ac > configure.ac.tmp
51 mv configure.ac.tmp configure.ac
52
53 autoconf
54 '';
55
56 preBuild = ''
57 aclocal
58 automake
59 '';
60
61 meta = with lib; {
62 description = "High performance open source ZFS backup with mbuffer and ssh support";
63 homepage = "https://www.znapzend.org";
64 license = licenses.gpl3;
65 maintainers = with maintainers; [ otwieracz ];
66 platforms = platforms.all;
67 };
68}