mirror of
https://github.com/NixOS/nixpkgs.git
synced 2024-11-26 08:53:21 +00:00
571c71e6f7
We are migrating packages that meet below requirements: 1. using `callPackage` 2. called path is a directory 3. overriding set is empty (`{ }`) 4. not containing path expressions other than relative path (to makenixpkgs-vet happy) 5. not referenced by nix files outside of the directory, other than`pkgs/top-level/all-packages.nix` 6. not referencing nix files outside of the directory 7. not referencing `default.nix` (since it's changed to `package.nix`) 8. `outPath` doesn't change after migration The tool is here: https://github.com/Aleksanaa/by-name-migrate.
122 lines
3.0 KiB
Nix
122 lines
3.0 KiB
Nix
{
|
|
lib,
|
|
fetchFromGitHub,
|
|
stdenv,
|
|
bison,
|
|
boost,
|
|
cmake,
|
|
double-conversion,
|
|
fmt,
|
|
fuse3,
|
|
flac,
|
|
glog,
|
|
gtest,
|
|
howard-hinnant-date,
|
|
jemalloc,
|
|
libarchive,
|
|
libevent,
|
|
libunwind,
|
|
lz4,
|
|
openssl,
|
|
pkg-config,
|
|
python3,
|
|
range-v3,
|
|
ronn,
|
|
xxHash,
|
|
utf8cpp,
|
|
zstd,
|
|
}:
|
|
stdenv.mkDerivation (finalAttrs: {
|
|
pname = "dwarfs";
|
|
version = "0.9.10";
|
|
src = fetchFromGitHub {
|
|
owner = "mhx";
|
|
repo = "dwarfs";
|
|
rev = "refs/tags/v${finalAttrs.version}";
|
|
fetchSubmodules = true;
|
|
hash = "sha256-uyYNs+fDV5BfQwfX9Wi3BwiKjSDQHAKRJ1+UvS/fHoE=";
|
|
};
|
|
|
|
cmakeFlags = [
|
|
"-DNIXPKGS_DWARFS_VERSION_OVERRIDE=v${finalAttrs.version}" # see https://github.com/mhx/dwarfs/issues/155
|
|
|
|
# Needs to be set so `dwarfs` does not try to download `gtest`; it is not
|
|
# a submodule, see: https://github.com/mhx/dwarfs/issues/188#issuecomment-1907657083
|
|
"-DPREFER_SYSTEM_GTEST=ON"
|
|
|
|
# These should no longer be necessary with a version > 0.9.10:
|
|
# * https://github.com/mhx/dwarfs/commit/593b22a8a90eb66c0898ae06f097f32f4bf3dfd4
|
|
# * https://github.com/mhx/dwarfs/commit/6e9608b2b01be13e41e6b728aae537c14c00ad82
|
|
# * https://github.com/mhx/dwarfs/commit/ce4bee1ad63c666da57d2cdae9fd65214d8dab7f
|
|
"-DPREFER_SYSTEM_LIBFMT=ON"
|
|
"-DPREFER_SYSTEM_ZSTD=ON"
|
|
"-DPREFER_SYSTEM_XXHASH=ON"
|
|
|
|
# may be added under an option in the future
|
|
# "-DWITH_LEGACY_FUSE=ON"
|
|
|
|
"-DWITH_TESTS=ON"
|
|
];
|
|
|
|
nativeBuildInputs = [
|
|
bison
|
|
cmake
|
|
howard-hinnant-date # uses only the header-only parts
|
|
pkg-config
|
|
range-v3 # header-only library
|
|
ronn
|
|
(python3.withPackages (ps: [ ps.mistletoe ])) # for man pages
|
|
];
|
|
|
|
buildInputs = [
|
|
# dwarfs
|
|
boost
|
|
flac # optional; allows automatic audio compression
|
|
fmt
|
|
fuse3
|
|
jemalloc
|
|
libarchive
|
|
lz4
|
|
xxHash
|
|
utf8cpp
|
|
zstd
|
|
|
|
# folly
|
|
double-conversion
|
|
glog
|
|
libevent
|
|
libunwind
|
|
openssl
|
|
];
|
|
|
|
doCheck = true;
|
|
nativeCheckInputs = [
|
|
# https://github.com/mhx/dwarfs/issues/188#issuecomment-1907574427
|
|
# `dwarfs` sets C++20 as the minimum, see
|
|
# https://github.com/mhx/dwarfs/blob/2cb5542a5d4274225c5933370adcf00035f6c974/CMakeLists.txt#L129
|
|
# Thus the `gtest` headers, when included,
|
|
# refer to symbols that only exist in `.so` files compiled with that version.
|
|
(gtest.override { cxx_standard = "20"; })
|
|
];
|
|
# these fail inside of the sandbox due to missing access
|
|
# to the FUSE device
|
|
GTEST_FILTER =
|
|
let
|
|
disabledTests = [
|
|
"dwarfs/tools_test.end_to_end/*"
|
|
"dwarfs/tools_test.mutating_and_error_ops/*"
|
|
"dwarfs/tools_test.categorize/*"
|
|
];
|
|
in
|
|
"-${lib.concatStringsSep ":" disabledTests}";
|
|
|
|
meta = {
|
|
description = "Fast high compression read-only file system";
|
|
homepage = "https://github.com/mhx/dwarfs";
|
|
changelog = "https://github.com/mhx/dwarfs/blob/v${finalAttrs.version}/CHANGES.md";
|
|
license = lib.licenses.gpl3Plus;
|
|
maintainers = [ lib.maintainers.luftmensch-luftmensch ];
|
|
platforms = lib.platforms.linux;
|
|
};
|
|
})
|