From c64195df27f0585ab4306f4364fa4f08b70d0157 Mon Sep 17 00:00:00 2001 From: Martin Weinelt Date: Sun, 25 Dec 2022 02:37:57 +0100 Subject: [PATCH 1/3] borgbackup: 1.2.2 -> 1.2.3 https://github.com/borgbackup/borg/blob/1.2.3/docs/changes.rst#version-123-2022-12-24 --- pkgs/tools/backup/borgbackup/default.nix | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/pkgs/tools/backup/borgbackup/default.nix b/pkgs/tools/backup/borgbackup/default.nix index 9bc3dfefd4ae..50efe7c5b7ad 100644 --- a/pkgs/tools/backup/borgbackup/default.nix +++ b/pkgs/tools/backup/borgbackup/default.nix @@ -10,18 +10,28 @@ , zstd , installShellFiles , nixosTests +, fetchpatch }: python3.pkgs.buildPythonApplication rec { pname = "borgbackup"; - version = "1.2.2"; + version = "1.2.3"; format = "pyproject"; src = python3.pkgs.fetchPypi { inherit pname version; - sha256 = "sha256-1zBodEPxvrYCsdcrrjYxj2+WVIGPzcUEWFQOxXnlcmA="; + hash = "sha256-4yQY+GM8lvqWgTUqVutjuY4pQgNHLBFKUkJwnTaWZ4U="; }; + patches = [ + (fetchpatch { + # Fix HashIndexSizeTestCase.test_size_on_disk_accurate problems on ZFS, + # see https://github.com/borgbackup/borg/issues/7250 + url = "https://github.com/borgbackup/borg/pull/7252/commits/537a814e53e20013a041faa7192da005f137cf5b.patch"; + hash = "sha256-dnF/FW8pS4Ub9aAL4b7zf6ZNjMZaiMqdtl5R+DlAZTM="; + }) + ]; + postPatch = '' # sandbox does not support setuid/setgid/sticky bits substituteInPlace src/borg/testsuite/archiver.py \ From 71ab3109f28e1719119b55f2f8f5e264061a9605 Mon Sep 17 00:00:00 2001 From: Martin Weinelt Date: Sun, 25 Dec 2022 02:40:25 +0100 Subject: [PATCH 2/3] borgbackup: unbundle xxhash and use pkgconfig Borg can use the python pkgconfig package to discover library paths, we don't need to pass them explicitly. Removes libb2, because borg since version 1.2.0 uses hashlib.blake2b instead. --- pkgs/tools/backup/borgbackup/default.nix | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/pkgs/tools/backup/borgbackup/default.nix b/pkgs/tools/backup/borgbackup/default.nix index 50efe7c5b7ad..89642b33a726 100644 --- a/pkgs/tools/backup/borgbackup/default.nix +++ b/pkgs/tools/backup/borgbackup/default.nix @@ -7,6 +7,7 @@ , openssh , openssl , python3 +, xxHash , zstd , installShellFiles , nixosTests @@ -41,6 +42,7 @@ python3.pkgs.buildPythonApplication rec { nativeBuildInputs = with python3.pkgs; [ cython setuptools-scm + pkgconfig # docs sphinxHook @@ -55,6 +57,7 @@ python3.pkgs.buildPythonApplication rec { buildInputs = [ libb2 lz4 + xxHash zstd openssl ] ++ lib.optionals stdenv.isLinux [ @@ -67,13 +70,6 @@ python3.pkgs.buildPythonApplication rec { (if stdenv.isLinux then pyfuse3 else llfuse) ]; - preConfigure = '' - export BORG_OPENSSL_PREFIX="${openssl.dev}" - export BORG_LZ4_PREFIX="${lz4.dev}" - export BORG_LIBB2_PREFIX="${libb2}" - export BORG_LIBZSTD_PREFIX="${zstd.dev}" - ''; - makeWrapperArgs = [ ''--prefix PATH ':' "${openssh}/bin"'' ]; From e7fb320d60fd721a07824683b548b586e486c1ca Mon Sep 17 00:00:00 2001 From: Martin Weinelt Date: Mon, 9 Jan 2023 04:48:49 +0100 Subject: [PATCH 3/3] libb2: Use autoreconfHook and build in parallel --- pkgs/development/libraries/libb2/default.nix | 21 +++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/pkgs/development/libraries/libb2/default.nix b/pkgs/development/libraries/libb2/default.nix index b142a0a41565..a461f5039aa7 100644 --- a/pkgs/development/libraries/libb2/default.nix +++ b/pkgs/development/libraries/libb2/default.nix @@ -1,4 +1,10 @@ -{ lib, stdenv, fetchFromGitHub, autoconf, automake, libtool, pkg-config }: +{ lib +, stdenv +, fetchFromGitHub +, autoreconfHook +, libtool +, pkg-config +}: stdenv.mkDerivation rec { pname = "libb2"; @@ -7,18 +13,19 @@ stdenv.mkDerivation rec { src = fetchFromGitHub { owner = "BLAKE2"; repo = "libb2"; - rev = "v${version}"; + rev = "refs/tags/v${version}"; sha256 = "0qj8aaqvfcavj1vj5asm4pqm03ap7q8x4c2fy83cqggvky0frgya"; }; - preConfigure = '' - patchShebangs autogen.sh - ./autogen.sh - ''; + nativeBuildInputs = [ + autoreconfHook + libtool + pkg-config + ]; configureFlags = lib.optional stdenv.hostPlatform.isx86 "--enable-fat=yes"; - nativeBuildInputs = [ autoconf automake libtool pkg-config ]; + enableParallelBuilding = true; doCheck = true;