rsync: adopt, greatly simplify package
This commit is contained in:
parent
b569a7ba09
commit
9e1c94057c
3 changed files with 31 additions and 42 deletions
|
@ -1,22 +0,0 @@
|
|||
{ lib, fetchurl, fetchpatch }:
|
||||
|
||||
rec {
|
||||
version = "3.2.4";
|
||||
src = fetchurl {
|
||||
# signed with key 0048 C8B0 26D4 C96F 0E58 9C2F 6C85 9FB1 4B96 A8C5
|
||||
url = "mirror://samba/rsync/src/rsync-${version}.tar.gz";
|
||||
sha256 = "sha256-b3YYONCAUrC2V5z39nN9k+R/AfTaBMXSTTRHt/Kl+tE=";
|
||||
};
|
||||
upstreamPatchTarball = fetchurl {
|
||||
# signed with key 0048 C8B0 26D4 C96F 0E58 9C2F 6C85 9FB1 4B96 A8C5
|
||||
url = "mirror://samba/rsync/rsync-patches-${version}.tar.gz";
|
||||
sha256 = "sha256-cKWXWQr2xhzz0F1mNCn/n2D/4k5E+cc6TNxp69wTIqQ=";
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
description = "Fast incremental file transfer utility";
|
||||
homepage = "https://rsync.samba.org/";
|
||||
license = licenses.gpl3Plus;
|
||||
platforms = platforms.unix;
|
||||
};
|
||||
}
|
|
@ -20,27 +20,32 @@
|
|||
, nixosTests
|
||||
}:
|
||||
|
||||
let
|
||||
base = import ./base.nix { inherit lib fetchurl fetchpatch; };
|
||||
in
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "rsync";
|
||||
version = base.version;
|
||||
version = "3.2.4";
|
||||
|
||||
mainSrc = base.src;
|
||||
srcs = [
|
||||
(fetchurl {
|
||||
# signed with key 0048 C8B0 26D4 C96F 0E58 9C2F 6C85 9FB1 4B96 A8C5
|
||||
url = "mirror://samba/rsync/src/rsync-${version}.tar.gz";
|
||||
sha256 = "sha256-b3YYONCAUrC2V5z39nN9k+R/AfTaBMXSTTRHt/Kl+tE=";
|
||||
})
|
||||
] ++ lib.optional enableCopyDevicesPatch (fetchurl {
|
||||
# signed with key 0048 C8B0 26D4 C96F 0E58 9C2F 6C85 9FB1 4B96 A8C5
|
||||
url = "mirror://samba/rsync/rsync-patches-${version}.tar.gz";
|
||||
sha256 = "1wj21v57v135n6fnm2m2dxmb9lhrrg62jgkggldp1gb7d6s4arny";
|
||||
});
|
||||
|
||||
patchesSrc = base.upstreamPatchTarball;
|
||||
|
||||
srcs = [ mainSrc ] ++ lib.optional enableCopyDevicesPatch patchesSrc;
|
||||
patches = lib.optional enableCopyDevicesPatch "./patches/copy-devices.diff";
|
||||
|
||||
nativeBuildInputs = [ perl ];
|
||||
|
||||
buildInputs = [ libiconv zlib popt ]
|
||||
++ lib.optional enableACLs acl
|
||||
++ lib.optional enableZstd zstd
|
||||
++ lib.optional enableLZ4 lz4
|
||||
++ lib.optional enableOpenSSL openssl
|
||||
++ lib.optional enableXXHash xxHash;
|
||||
nativeBuildInputs = [ perl ];
|
||||
|
||||
configureFlags = [
|
||||
"--with-nobody-group=nogroup"
|
||||
|
@ -48,12 +53,22 @@ stdenv.mkDerivation rec {
|
|||
# disable the included zlib explicitly as it otherwise still compiles and
|
||||
# links them even.
|
||||
"--with-included-zlib=no"
|
||||
];
|
||||
]
|
||||
# Work around issue with cross-compilation:
|
||||
# configure.sh: error: cannot run test program while cross compiling
|
||||
# Remove once 3.2.4 or more recent is released.
|
||||
# The following PR should fix the cross-compilation issue.
|
||||
# Test using `nix-build -A pkgsCross.aarch64-multiplatform.rsync`.
|
||||
# https://github.com/WayneD/rsync/commit/b7fab6f285ff0ff3816b109a8c3131b6ded0b484
|
||||
++ lib.optional (stdenv.hostPlatform != stdenv.buildPlatform) "--enable-simd=no";
|
||||
|
||||
passthru.tests = { inherit (nixosTests) rsyncd; };
|
||||
|
||||
meta = base.meta // {
|
||||
description = "A fast incremental file transfer utility";
|
||||
meta = with lib; {
|
||||
description = "Fast incremental file transfer utility";
|
||||
homepage = "https://rsync.samba.org/";
|
||||
license = licenses.gpl3Plus;
|
||||
platforms = platforms.unix;
|
||||
maintainers = with lib.maintainers; [ ehmry kampfschlaefer ];
|
||||
};
|
||||
}
|
||||
|
|
|
@ -1,13 +1,8 @@
|
|||
{ lib, stdenv, fetchurl, perl, rsync, fetchpatch }:
|
||||
|
||||
let
|
||||
base = import ./base.nix { inherit lib fetchurl fetchpatch; };
|
||||
in
|
||||
stdenv.mkDerivation {
|
||||
pname = "rrsync";
|
||||
version = base.version;
|
||||
|
||||
src = base.src;
|
||||
inherit (rsync) version srcs;
|
||||
|
||||
buildInputs = [ rsync perl ];
|
||||
|
||||
|
@ -16,6 +11,8 @@ stdenv.mkDerivation {
|
|||
dontConfigure = true;
|
||||
dontBuild = true;
|
||||
|
||||
inherit (rsync) patches;
|
||||
|
||||
postPatch = ''
|
||||
substituteInPlace support/rrsync --replace /usr/bin/rsync ${rsync}/bin/rsync
|
||||
'';
|
||||
|
@ -26,8 +23,7 @@ stdenv.mkDerivation {
|
|||
chmod a+x $out/bin/rrsync
|
||||
'';
|
||||
|
||||
meta = base.meta // {
|
||||
meta = rsync.meta // {
|
||||
description = "A helper to run rsync-only environments from ssh-logins";
|
||||
maintainers = [ lib.maintainers.kampfschlaefer ];
|
||||
};
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue