From 9e1c94057ca6152b32e7860b76b8f340a0e18f7c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sandro=20J=C3=A4ckel?= Date: Fri, 27 May 2022 15:39:03 +0200 Subject: [PATCH] rsync: adopt, greatly simplify package --- .../networking/sync/rsync/base.nix | 22 ----------- .../networking/sync/rsync/default.nix | 39 +++++++++++++------ .../networking/sync/rsync/rrsync.nix | 12 ++---- 3 files changed, 31 insertions(+), 42 deletions(-) delete mode 100644 pkgs/applications/networking/sync/rsync/base.nix diff --git a/pkgs/applications/networking/sync/rsync/base.nix b/pkgs/applications/networking/sync/rsync/base.nix deleted file mode 100644 index 27358c3ef590..000000000000 --- a/pkgs/applications/networking/sync/rsync/base.nix +++ /dev/null @@ -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; - }; -} diff --git a/pkgs/applications/networking/sync/rsync/default.nix b/pkgs/applications/networking/sync/rsync/default.nix index 29016bc14af2..f47c9c75367d 100644 --- a/pkgs/applications/networking/sync/rsync/default.nix +++ b/pkgs/applications/networking/sync/rsync/default.nix @@ -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 ]; }; } diff --git a/pkgs/applications/networking/sync/rsync/rrsync.nix b/pkgs/applications/networking/sync/rsync/rrsync.nix index bb83a9e3cd4e..d1e6b6ad96eb 100644 --- a/pkgs/applications/networking/sync/rsync/rrsync.nix +++ b/pkgs/applications/networking/sync/rsync/rrsync.nix @@ -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 ]; }; }