rsync: adopt, greatly simplify package

main
Sandro Jäckel 2 years ago committed by ehmry
parent b569a7ba09
commit 9e1c94057c
  1. 22
      pkgs/applications/networking/sync/rsync/base.nix
  2. 39
      pkgs/applications/networking/sync/rsync/default.nix
  3. 12
      pkgs/applications/networking/sync/rsync/rrsync.nix

@ -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…
Cancel
Save