uboot: (firmwareOdroidC2/C4) don't invoke patch tool, use patches = [] instead
https://github.com/NixOS/nixpkgs/blob/master/pkgs/stdenv/generic/setup.sh#L948 this can do it nicely. Signed-off-by: Anton Arapov <anton@deadbeef.mx>
This commit is contained in:
commit
56de2bcd43
30691 changed files with 3076956 additions and 0 deletions
112
pkgs/tools/compression/zstd/default.nix
Normal file
112
pkgs/tools/compression/zstd/default.nix
Normal file
|
|
@ -0,0 +1,112 @@
|
|||
{ lib, stdenv, fetchFromGitHub, cmake, bash, gnugrep
|
||||
, fixDarwinDylibNames
|
||||
, file
|
||||
, fetchpatch
|
||||
, legacySupport ? false
|
||||
, static ? stdenv.hostPlatform.isStatic
|
||||
# these need to be ran on the host, thus disable when cross-compiling
|
||||
, buildContrib ? stdenv.hostPlatform == stdenv.buildPlatform
|
||||
, doCheck ? stdenv.hostPlatform == stdenv.buildPlatform
|
||||
, nix-update-script
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "zstd";
|
||||
version = "1.5.2";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "facebook";
|
||||
repo = "zstd";
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-yJvhcysxcbUGuDOqe/TQ3Y5xyM2AUw6r1THSHOqmUy0=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ cmake ]
|
||||
++ lib.optional stdenv.isDarwin fixDarwinDylibNames;
|
||||
buildInputs = lib.optional stdenv.hostPlatform.isUnix bash;
|
||||
|
||||
patches = [
|
||||
# This patches makes sure we do not attempt to use the MD5 implementation
|
||||
# of the host platform when running the tests
|
||||
./playtests-darwin.patch
|
||||
];
|
||||
|
||||
postPatch = lib.optionalString (!static) ''
|
||||
substituteInPlace build/cmake/CMakeLists.txt \
|
||||
--replace 'message(SEND_ERROR "You need to build static library to build tests")' ""
|
||||
substituteInPlace build/cmake/tests/CMakeLists.txt \
|
||||
--replace 'libzstd_static' 'libzstd_shared'
|
||||
sed -i \
|
||||
"1aexport ${lib.optionalString stdenv.isDarwin "DY"}LD_LIBRARY_PATH=$PWD/build_/lib" \
|
||||
tests/playTests.sh
|
||||
'';
|
||||
|
||||
cmakeFlags = lib.attrsets.mapAttrsToList
|
||||
(name: value: "-DZSTD_${name}:BOOL=${if value then "ON" else "OFF"}") {
|
||||
BUILD_SHARED = !static;
|
||||
BUILD_STATIC = static;
|
||||
BUILD_CONTRIB = buildContrib;
|
||||
PROGRAMS_LINK_SHARED = !static;
|
||||
LEGACY_SUPPORT = legacySupport;
|
||||
BUILD_TESTS = doCheck;
|
||||
};
|
||||
|
||||
cmakeDir = "../build/cmake";
|
||||
dontUseCmakeBuildDir = true;
|
||||
preConfigure = ''
|
||||
mkdir -p build_ && cd $_
|
||||
'';
|
||||
|
||||
checkInputs = [ file ];
|
||||
inherit doCheck;
|
||||
checkPhase = ''
|
||||
runHook preCheck
|
||||
# Patch shebangs for playTests
|
||||
patchShebangs ../programs/zstdgrep
|
||||
ctest -R playTests # The only relatively fast test.
|
||||
runHook postCheck
|
||||
'';
|
||||
|
||||
preInstall = ''
|
||||
mkdir -p $bin/bin
|
||||
substituteInPlace ../programs/zstdgrep \
|
||||
--replace ":-grep" ":-${gnugrep}/bin/grep" \
|
||||
--replace ":-zstdcat" ":-$bin/bin/zstdcat"
|
||||
|
||||
substituteInPlace ../programs/zstdless \
|
||||
--replace "zstdcat" "$bin/bin/zstdcat"
|
||||
'' + lib.optionalString buildContrib ''
|
||||
cp contrib/pzstd/pzstd $bin/bin/pzstd
|
||||
'' + lib.optionalString stdenv.isDarwin ''
|
||||
install_name_tool -change @rpath/libzstd.1.dylib $out/lib/libzstd.1.dylib $bin/bin/pzstd
|
||||
'';
|
||||
|
||||
outputs = [ "bin" "dev" ]
|
||||
++ lib.optional stdenv.hostPlatform.isUnix "man"
|
||||
++ [ "out" ];
|
||||
|
||||
passthru = {
|
||||
updateScript = nix-update-script {
|
||||
attrPath = pname;
|
||||
};
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
description = "Zstandard real-time compression algorithm";
|
||||
longDescription = ''
|
||||
Zstd, short for Zstandard, is a fast lossless compression algorithm,
|
||||
targeting real-time compression scenarios at zlib-level compression
|
||||
ratio. Zstd can also offer stronger compression ratio at the cost of
|
||||
compression speed. Speed/ratio trade-off is configurable by small
|
||||
increment, to fit different situations. Note however that decompression
|
||||
speed is preserved and remain roughly the same at all settings, a
|
||||
property shared by most LZ compression algorithms, such as zlib.
|
||||
'';
|
||||
homepage = "https://facebook.github.io/zstd/";
|
||||
changelog = "https://github.com/facebook/zstd/blob/v${version}/CHANGELOG";
|
||||
license = with licenses; [ bsd3 ]; # Or, at your opinion, GPL-2.0-only.
|
||||
|
||||
platforms = platforms.all;
|
||||
maintainers = with maintainers; [ orivej ];
|
||||
};
|
||||
}
|
||||
40
pkgs/tools/compression/zstd/playtests-darwin.patch
Normal file
40
pkgs/tools/compression/zstd/playtests-darwin.patch
Normal file
|
|
@ -0,0 +1,40 @@
|
|||
--- a/tests/playTests.sh
|
||||
+++ b/tests/playTests.sh
|
||||
@@ -112,29 +112,19 @@ case "$OS" in
|
||||
esac
|
||||
|
||||
case "$UNAME" in
|
||||
- Darwin) MD5SUM="md5 -r" ;;
|
||||
- FreeBSD) MD5SUM="gmd5sum" ;;
|
||||
- NetBSD) MD5SUM="md5 -n" ;;
|
||||
- OpenBSD) MD5SUM="md5" ;;
|
||||
*) MD5SUM="md5sum" ;;
|
||||
esac
|
||||
|
||||
MTIME="stat -c %Y"
|
||||
-case "$UNAME" in
|
||||
- Darwin | FreeBSD | OpenBSD | NetBSD) MTIME="stat -f %m" ;;
|
||||
-esac
|
||||
|
||||
assertSameMTime() {
|
||||
MT1=$($MTIME "$1")
|
||||
MT2=$($MTIME "$2")
|
||||
echo MTIME $MT1 $MT2
|
||||
[ "$MT1" = "$MT2" ] || die "mtime on $1 doesn't match mtime on $2 ($MT1 != $MT2)"
|
||||
}
|
||||
|
||||
GET_PERMS="stat -c %a"
|
||||
-case "$UNAME" in
|
||||
- Darwin | FreeBSD | OpenBSD | NetBSD) GET_PERMS="stat -f %Lp" ;;
|
||||
-esac
|
||||
|
||||
assertFilePermissions() {
|
||||
STAT1=$($GET_PERMS "$1")
|
||||
@@ -967,7 +957,6 @@ $MD5SUM dirTestDict/* > tmph1
|
||||
zstd -f --rm dirTestDict/* -D tmpDictC
|
||||
zstd -d --rm dirTestDict/*.zst -D tmpDictC # note : use internal checksum by default
|
||||
case "$UNAME" in
|
||||
- Darwin) println "md5sum -c not supported on OS-X : test skipped" ;; # not compatible with OS-X's md5
|
||||
*) $MD5SUM -c tmph1 ;;
|
||||
esac
|
||||
rm -rf dirTestDict
|
||||
Loading…
Add table
Add a link
Reference in a new issue