diff options
Diffstat (limited to 'pkgs/tools/filesystems')
-rw-r--r-- | pkgs/tools/filesystems/cryfs/default.nix | 79 | ||||
-rw-r--r-- | pkgs/tools/filesystems/cryfs/skip-failing-test-large-malloc.patch | 34 | ||||
-rw-r--r-- | pkgs/tools/filesystems/cryfs/test-no-network.patch | 24 | ||||
-rw-r--r-- | pkgs/tools/filesystems/f2fs-tools/default.nix | 4 | ||||
-rw-r--r-- | pkgs/tools/filesystems/irods/common.nix | 2 | ||||
-rw-r--r-- | pkgs/tools/filesystems/irods/default.nix | 2 |
6 files changed, 139 insertions, 6 deletions
diff --git a/pkgs/tools/filesystems/cryfs/default.nix b/pkgs/tools/filesystems/cryfs/default.nix new file mode 100644 index 000000000000..0469ad54eb13 --- /dev/null +++ b/pkgs/tools/filesystems/cryfs/default.nix @@ -0,0 +1,79 @@ +{ stdenv, fetchFromGitHub +, cmake, pkgconfig, coreutils +, boost, cryptopp, curl, fuse, openssl, python, spdlog +}: + +stdenv.mkDerivation rec { + name = "cryfs-${version}"; + version = "0.9.7"; + + src = fetchFromGitHub { + owner = "cryfs"; + repo = "cryfs"; + rev = "${version}"; + sha256 = "1wsv4cyjkyg3cyr6vipw1mj41bln2m69123l3miav8r4mvmkfq8w"; + }; + + prePatch = '' + patchShebangs src + + substituteInPlace vendor/scrypt/CMakeLists.txt \ + --replace /usr/bin/ "" + + # scrypt in nixpkgs only produces a binary so we lift the patching from that so allow + # building the vendored version. This is very much NOT DRY. + # The proper solution is to have scrypt generate a dev output with the required files and just symlink + # into vendor/scrypt + for f in Makefile.in autocrap/Makefile.am libcperciva/cpusupport/Build/cpusupport.sh ; do + substituteInPlace vendor/scrypt/scrypt-*/scrypt/$f --replace "command -p " "" + done + + # cryfs is vendoring an old version of spdlog + rm -rf vendor/spdlog/spdlog + ln -s ${spdlog} vendor/spdlog/spdlog + ''; + + buildInputs = [ boost cryptopp curl fuse openssl python spdlog ]; + + patches = [ + ./test-no-network.patch # Disable tests using external networking + ./skip-failing-test-large-malloc.patch + ]; + + # coreutils is needed for the vendored scrypt + nativeBuildInputs = [ cmake coreutils pkgconfig ]; + + enableParallelBuilding = true; + + cmakeFlags = [ + "-DCRYFS_UPDATE_CHECKS=OFF" + "-DBoost_USE_STATIC_LIBS=OFF" # this option is case sensitive + "-DBUILD_TESTING=ON" + ]; + + doCheck = true; + + # Cryfs tests are broken on darwin + checkPhase = stdenv.lib.optionalString (!stdenv.isDarwin) '' + # Skip CMakeFiles directory and tests depending on fuse (does not work well with sandboxing) + SKIP_IMPURE_TESTS="CMakeFiles|fspp|cryfs-cli" + + for test in `ls -d test/*/ | egrep -v "$SKIP_IMPURE_TESTS"`; do + "./$test`basename $test`-test" + done + ''; + + installPhase = '' + # Building with BUILD_TESTING=ON is missing the install target + mkdir -p $out/bin + install -m 755 ./src/cryfs-cli/cryfs $out/bin/cryfs + ''; + + meta = with stdenv.lib; { + description = "Cryptographic filesystem for the cloud"; + homepage = https://www.cryfs.org; + license = licenses.lgpl3; + maintainers = with maintainers; [ peterhoeg ]; + platforms = with platforms; linux; + }; +} diff --git a/pkgs/tools/filesystems/cryfs/skip-failing-test-large-malloc.patch b/pkgs/tools/filesystems/cryfs/skip-failing-test-large-malloc.patch new file mode 100644 index 000000000000..feb0ed9cfbb9 --- /dev/null +++ b/pkgs/tools/filesystems/cryfs/skip-failing-test-large-malloc.patch @@ -0,0 +1,34 @@ +From ad3f7e9fa2dececfaab43963887a2f03de52d659 Mon Sep 17 00:00:00 2001 +From: adisbladis <adis@blad.is> +Date: Thu, 12 Oct 2017 21:45:26 +0800 +Subject: [PATCH] Skip failing test: large malloc + +--- + test/cpp-utils/data/DataTest.cpp | 11 ----------- + 1 file changed, 11 deletions(-) + +diff --git a/test/cpp-utils/data/DataTest.cpp b/test/cpp-utils/data/DataTest.cpp +index 6f9df070..bd426e62 100644 +--- a/test/cpp-utils/data/DataTest.cpp ++++ b/test/cpp-utils/data/DataTest.cpp +@@ -191,17 +191,6 @@ TEST_F(DataTest, Inequality_DifferentLastByte) { + EXPECT_TRUE(data1 != data2); + } + +-#ifdef __x86_64__ +-TEST_F(DataTest, LargesizeSize) { +- //Needs 64bit for representation. This value isn't in the size param list, because the list is also used for read/write checks. +- uint64_t size = 4.5L*1024*1024*1024; +- Data data(size); +- EXPECT_EQ(size, data.size()); +-} +-#else +-#warning This is not a 64bit architecture. Large size data tests are disabled. +-#endif +- + TEST_F(DataTest, LoadingNonexistingFile) { + TempFile file(false); // Pass false to constructor, so the tempfile is not created + EXPECT_FALSE(Data::LoadFromFile(file.path())); +-- +2.14.2 + diff --git a/pkgs/tools/filesystems/cryfs/test-no-network.patch b/pkgs/tools/filesystems/cryfs/test-no-network.patch new file mode 100644 index 000000000000..3392d3f855ec --- /dev/null +++ b/pkgs/tools/filesystems/cryfs/test-no-network.patch @@ -0,0 +1,24 @@ +From 8b1808e1278d2cb0dc56a4e98781eceeadfb9718 Mon Sep 17 00:00:00 2001 +From: adisbladis <adis@blad.is> +Date: Thu, 12 Oct 2017 18:13:28 +0800 +Subject: [PATCH] Disable tests using external networking + +--- + test/cpp-utils/CMakeLists.txt | 1 - + 1 file changed, 1 deletion(-) + +diff --git a/test/cpp-utils/CMakeLists.txt b/test/cpp-utils/CMakeLists.txt +index 5a2bc9f8..d838edba 100644 +--- a/test/cpp-utils/CMakeLists.txt ++++ b/test/cpp-utils/CMakeLists.txt +@@ -20,7 +20,6 @@ set(SOURCES + tempfile/TempFileIncludeTest.cpp + tempfile/TempDirIncludeTest.cpp + tempfile/TempDirTest.cpp +- network/CurlHttpClientTest.cpp + network/FakeHttpClientTest.cpp + io/ConsoleIncludeTest.cpp + io/ConsoleTest_AskYesNo.cpp +-- +2.14.2 + diff --git a/pkgs/tools/filesystems/f2fs-tools/default.nix b/pkgs/tools/filesystems/f2fs-tools/default.nix index fdad877d34cf..53b17f45f9f4 100644 --- a/pkgs/tools/filesystems/f2fs-tools/default.nix +++ b/pkgs/tools/filesystems/f2fs-tools/default.nix @@ -2,12 +2,12 @@ stdenv.mkDerivation rec { name = "f2fs-tools-${version}"; - version = "1.8.0"; + version = "1.9.0"; src = fetchgit { url = "git://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs-tools.git"; rev = "refs/tags/v${version}"; - sha256 = "0mbpg6mng6jcm5vxq0ivhklgpkwvjbhjwgkhzxr50ln46h5kbd2f"; + sha256 = "0aj9dbhv7vv19pyb2rhcg99v5v0s66sb9yzrdmi46bmvzz124pal"; }; nativeBuildInputs = [ autoreconfHook pkgconfig ]; diff --git a/pkgs/tools/filesystems/irods/common.nix b/pkgs/tools/filesystems/irods/common.nix index 9c5412ddef7c..c7267aca1071 100644 --- a/pkgs/tools/filesystems/irods/common.nix +++ b/pkgs/tools/filesystems/irods/common.nix @@ -9,8 +9,6 @@ with stdenv; buildInputs = [ bzip2 zlib autoconf automake cmake gnumake help2man texinfo libtool cppzmq libarchive avro-cpp jansson zeromq openssl pam libiodbc kerberos gcc boost libcxx which ]; - propagateBuildInputs = [ boost ]; - cmakeFlags = [ "-DIRODS_EXTERNALS_FULLPATH_CLANG=${stdenv.cc}" "-DIRODS_EXTERNALS_FULLPATH_CLANG_RUNTIME=${stdenv.cc}" diff --git a/pkgs/tools/filesystems/irods/default.nix b/pkgs/tools/filesystems/irods/default.nix index 0714f2901046..523028f5fb2e 100644 --- a/pkgs/tools/filesystems/irods/default.nix +++ b/pkgs/tools/filesystems/irods/default.nix @@ -62,8 +62,6 @@ in rec { buildInputs = common.buildInputs ++ [ irods ]; - propagateBuildInputs = [ boost ]; - preConfigure = common.preConfigure + '' patchShebangs ./bin ''; |