python3Packages.orjson: Disable failing tests on 32 bit
[NixPkgs.git] / pkgs / tools / filesystems / btrfs-progs / default.nix
blob799fa2345b308e81aafad20cb9dd5dfd523a47a5
1 { lib, stdenv, fetchurl
2 , pkg-config, python3, sphinx
3 , zstd
4 , acl, attr, e2fsprogs, libuuid, lzo, udev, zlib
5 , runCommand, btrfs-progs
6 , gitUpdater
7 , udevSupport ? true
8 , enablePython ? true
9 }:
11 stdenv.mkDerivation rec {
12   pname = "btrfs-progs";
13   version = "6.0.1";
15   src = fetchurl {
16     url = "mirror://kernel/linux/kernel/people/kdave/btrfs-progs/btrfs-progs-v${version}.tar.xz";
17     sha256 = "sha256-tTFv/x2BHirToGeXMQnrkSuw2SgFc1Yl/YuC5wAgHEg=";
18   };
20   nativeBuildInputs = [
21     pkg-config
22   ] ++ lib.optionals enablePython [
23     python3 python3.pkgs.setuptools
24   ] ++ [
25     sphinx
26   ];
28   buildInputs = [ acl attr e2fsprogs libuuid lzo python3 udev zlib zstd ];
30   # gcc bug with -O1 on ARM with gcc 4.8
31   # This should be fine on all platforms so apply universally
32   postPatch = "sed -i s/-O1/-O2/ configure";
34   postInstall = ''
35     install -v -m 444 -D btrfs-completion $out/share/bash-completion/completions/btrfs
36   '';
38   configureFlags = lib.optionals stdenv.hostPlatform.isMusl [
39     "--disable-backtrace"
40   ] ++ lib.optionals (!enablePython) [
41     "--disable-python"
42   ] ++ lib.optionals (!udevSupport) [
43     "--disable-libudev"
44   ];
46   makeFlags = [ "udevruledir=$(out)/lib/udev/rules.d" ];
48   installFlags = lib.optionals enablePython [ "install_python" ];
50   enableParallelBuilding = true;
52   passthru.tests = {
53     simple-filesystem = runCommand "btrfs-progs-create-fs" {} ''
54       mkdir -p $out
55       truncate -s110M $out/disc
56       ${btrfs-progs}/bin/mkfs.btrfs $out/disc | tee $out/success
57       ${btrfs-progs}/bin/btrfs check $out/disc | tee $out/success
58       [ -e $out/success ]
59     '';
60   };
62   passthru.updateScript = gitUpdater {
63     # No nicer place to find latest release.
64     url = "https://github.com/kdave/btrfs-progs.git";
65     rev-prefix = "v";
66   };
68   meta = with lib; {
69     description = "Utilities for the btrfs filesystem";
70     homepage = "https://btrfs.wiki.kernel.org/";
71     license = licenses.gpl2Only;
72     maintainers = with maintainers; [ raskin ];
73     platforms = platforms.linux;
74   };