1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
|
# rsync versions whose behaviour around .rsync-filter files differs: 3.4.1
# reads them like the files it transfers, and 3.5.0 opens them more
# strictly. The tests run the scenarios depending on that with each,
# whatever version nixpkgs has. rsync's own test suite doesn't run: these
# builds only need to behave like the releases.
{ lib, stdenv, fetchurl, fetchpatch, perl, updateAutotoolsGnuConfigScriptsHook
, acl, libiconv, popt, zlib
}:
let
rsync = { version, hash, patches ? [] }: stdenv.mkDerivation {
pname = "rsync";
inherit version patches;
src = fetchurl {
# signed with key 9FEF 112D CE19 A0DC 7E88 2CB8 1BB2 4997 A853 5F6F
url = "mirror://samba/rsync/src/rsync-${version}.tar.gz";
inherit hash;
};
nativeBuildInputs = [ perl updateAutotoolsGnuConfigScriptsHook ];
# With ACLs and extended attributes, which backups use (rsync -aAX).
buildInputs = [ acl libiconv popt zlib ];
configureFlags = [
"--disable-lz4"
"--disable-openssl"
"--disable-xxhash"
"--disable-zstd"
"--enable-ipv6"
"--with-included-zlib=no"
"--with-nobody-group=nogroup"
];
enableParallelBuilding = true;
meta.mainProgram = "rsync";
};
in {
"3.4.1" = rsync {
version = "3.4.1";
hash = "sha256-KSS8s6Hti1UfwQH3QLnw/gogKxFQJ2R89phQ1l/YjFI=";
patches = [
# Compilation with GCC 15.
(fetchpatch {
url = "https://github.com/RsyncProject/rsync/commit/a4b926dcdce96b0f2cc0dc7744e95747b233500a.patch";
hash = "sha256-UiEQJ+p2gtIDYNJqnxx4qKgItKIZzCpkHnvsgoxBmSE=";
})
];
};
"3.5.0" = rsync {
version = "3.5.0";
hash = "sha256-x//R72U+mVQPZh5HywC3+crR7muXI5mxb5PWcmVuDTM=";
};
}
|