From 26abaa02571b408a6bfe706f553bd67c24182563 Mon Sep 17 00:00:00 2001 From: Will Dietz Date: Tue, 8 May 2018 15:18:46 -0500 Subject: [PATCH 1/4] thin-provisioning-tools: 0.7.5 -> 0.7.6 --- pkgs/tools/misc/thin-provisioning-tools/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/tools/misc/thin-provisioning-tools/default.nix b/pkgs/tools/misc/thin-provisioning-tools/default.nix index 8b9fa4f2f3f..26fca485fec 100644 --- a/pkgs/tools/misc/thin-provisioning-tools/default.nix +++ b/pkgs/tools/misc/thin-provisioning-tools/default.nix @@ -2,13 +2,13 @@ stdenv.mkDerivation rec { name = "thin-provisioning-tools-${version}"; - version = "0.7.5"; + version = "0.7.6"; src = fetchFromGitHub { owner = "jthornber"; repo = "thin-provisioning-tools"; rev = "v${version}"; - sha256 = "1ibg5wxrbqg4pr3f6aacqm42fxpwn5q00j8ldy9mw4an3ck41cwa"; + sha256 = "175mk3krfdmn43cjw378s32hs62gq8fmq549rjmyc651sz6jnj0g"; }; nativeBuildInputs = [ autoreconfHook ]; From 42e4f90afb6476faf5245e175a0d68bd383e4ac6 Mon Sep 17 00:00:00 2001 From: Will Dietz Date: Tue, 8 May 2018 14:51:52 -0500 Subject: [PATCH 2/4] thin-provisioning-tools: fix build w/musl re:PAGE_SIZE --- pkgs/tools/misc/thin-provisioning-tools/default.nix | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/pkgs/tools/misc/thin-provisioning-tools/default.nix b/pkgs/tools/misc/thin-provisioning-tools/default.nix index 26fca485fec..64b059bbfea 100644 --- a/pkgs/tools/misc/thin-provisioning-tools/default.nix +++ b/pkgs/tools/misc/thin-provisioning-tools/default.nix @@ -15,6 +15,11 @@ stdenv.mkDerivation rec { buildInputs = [ expat libaio boost ]; + postPatch = stdenv.lib.optional stdenv.hostPlatform.isMusl '' + sed -i -e '/PAGE_SIZE/d' -e '1i#include ' \ + block-cache/io_engine.h unit-tests/io_engine_t.cc + ''; + meta = with stdenv.lib; { homepage = https://github.com/jthornber/thin-provisioning-tools/; description = "A suite of tools for manipulating the metadata of the dm-thin device-mapper target"; From de810b8180fb0926b82c76694a7e5a97f3ca3469 Mon Sep 17 00:00:00 2001 From: Will Dietz Date: Tue, 8 May 2018 15:23:32 -0500 Subject: [PATCH 3/4] thin-provisioning-tools: enable parallel building --- pkgs/tools/misc/thin-provisioning-tools/default.nix | 2 ++ 1 file changed, 2 insertions(+) diff --git a/pkgs/tools/misc/thin-provisioning-tools/default.nix b/pkgs/tools/misc/thin-provisioning-tools/default.nix index 64b059bbfea..163e783e9e1 100644 --- a/pkgs/tools/misc/thin-provisioning-tools/default.nix +++ b/pkgs/tools/misc/thin-provisioning-tools/default.nix @@ -20,6 +20,8 @@ stdenv.mkDerivation rec { block-cache/io_engine.h unit-tests/io_engine_t.cc ''; + enableParallelBuilding = true; + meta = with stdenv.lib; { homepage = https://github.com/jthornber/thin-provisioning-tools/; description = "A suite of tools for manipulating the metadata of the dm-thin device-mapper target"; From 4056b41f95fe172036f8c003afe70b83ecee0f1c Mon Sep 17 00:00:00 2001 From: Will Dietz Date: Tue, 15 May 2018 14:01:41 -0500 Subject: [PATCH 4/4] thin-provisioning-tools: use patch, comment --- .../misc/thin-provisioning-tools/default.nix | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/pkgs/tools/misc/thin-provisioning-tools/default.nix b/pkgs/tools/misc/thin-provisioning-tools/default.nix index 163e783e9e1..b4683167f33 100644 --- a/pkgs/tools/misc/thin-provisioning-tools/default.nix +++ b/pkgs/tools/misc/thin-provisioning-tools/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchFromGitHub, autoreconfHook, expat, libaio, boost }: +{ stdenv, fetchFromGitHub, fetchpatch, autoreconfHook, expat, libaio, boost }: stdenv.mkDerivation rec { name = "thin-provisioning-tools-${version}"; @@ -15,10 +15,19 @@ stdenv.mkDerivation rec { buildInputs = [ expat libaio boost ]; - postPatch = stdenv.lib.optional stdenv.hostPlatform.isMusl '' - sed -i -e '/PAGE_SIZE/d' -e '1i#include ' \ - block-cache/io_engine.h unit-tests/io_engine_t.cc - ''; + patches = [ + (fetchpatch { + # a) Fix build if limits.h provides definition for PAGE_SIZE, as musl does w/musl per XSI[1] although it's apparently optional [2]. + # This value is only provided when it's known to be a constant, to avoid the need to discover the value dynamically. + # b) If not using system-provided (kernel headers, or libc headers, or something) use the POSIX approach of querying the value + # dynamically using sysconf(_SC_PAGE_SIZE) instead of hardcoded value that hopefully is correct. + # [1] http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/limits.h.html + # [2] http://www.openwall.com/lists/musl/2015/09/11/8 + url = "https://raw.githubusercontent.com/voidlinux/void-packages/a0ece13ad7ab2aae760e09e41e0459bd999a3695/srcpkgs/thin-provisioning-tools/patches/musl.patch"; + sha256 = "1m8r3vhrnsy8drgs0svs3fgpi3mmxzdcqsv6bmvc0j52cvfqvhvy"; + extraPrefix = ""; # empty means add 'a/' and 'b/' + }) + ]; enableParallelBuilding = true;