nixos/crab-hole: init (#341598)
[NixPkgs.git] / pkgs / development / tools / rubyfmt / default.nix
blobf58e56a35f03fe6dbe684287d81986e67dc5e712
2   lib,
3   stdenv,
4   rustPlatform,
5   fetchFromGitHub,
6   autoconf,
7   automake,
8   bison,
9   ruby,
10   zlib,
11   readline,
12   libiconv,
13   libobjc,
14   libunwind,
15   libxcrypt,
16   libyaml,
17   rust-jemalloc-sys-unprefixed,
18   Foundation,
19   Security,
22 rustPlatform.buildRustPackage rec {
23   pname = "rubyfmt";
24   version = "0.10.0";
26   src = fetchFromGitHub {
27     owner = "fables-tales";
28     repo = "rubyfmt";
29     rev = "v${version}";
30     hash = "sha256-IIHPU6iwFwQ5cOAtOULpMSjexFtTelSd/LGLuazdmUo=";
31     fetchSubmodules = true;
32   };
34   nativeBuildInputs = [
35     autoconf
36     automake
37     bison
38     ruby
39   ];
41   buildInputs =
42     [
43       zlib
44       libxcrypt
45       libyaml
46       rust-jemalloc-sys-unprefixed
47     ]
48     ++ lib.optionals stdenv.hostPlatform.isDarwin [
49       readline
50       libiconv
51       libobjc
52       libunwind
53       Foundation
54       Security
55     ];
57   preConfigure = ''
58     pushd librubyfmt/ruby_checkout
59     autoreconf --install --force --verbose
60     ./configure
61     popd
62   '';
64   cargoPatches = [
65     # Avoid checking whether ruby gitsubmodule is up-to-date.
66     ./0002-remove-dependency-on-git.patch
67     # Avoid failing on unused variable warnings.
68     ./0003-ignore-warnings.patch
69   ];
71   cargoHash = "sha256-QZ26GmsKyENkzdCGg2peie/aJhEt7KQAF/lwsibonDk=";
73   env.NIX_CFLAGS_COMPILE = lib.optionalString stdenv.hostPlatform.isDarwin "-fdeclspec";
75   preFixup = ''
76     mv $out/bin/rubyfmt{-main,}
77   '';
79   meta = {
80     description = "Ruby autoformatter";
81     homepage = "https://github.com/fables-tales/rubyfmt";
82     license = lib.licenses.mit;
83     maintainers = with lib.maintainers; [ bobvanderlinden ];
84     broken = stdenv.hostPlatform.isDarwin;
85     mainProgram = "rubyfmt";
86   };