Merge pull request #268619 from tweag/lib-descriptions
[NixPkgs.git] / pkgs / development / tools / rubyfmt / default.nix
blob15457e80aad9e0fcc99cc685d67a0a97ee1b19bb
1 { lib
2 , stdenv
3 , rustPlatform
4 , fetchFromGitHub
5 , autoconf
6 , automake
7 , bison
8 , ruby
9 , zlib
10 , readline
11 , libiconv
12 , libobjc
13 , libunwind
14 , libxcrypt
15 , libyaml
16 , Foundation
17 , Security
20 rustPlatform.buildRustPackage rec {
21   pname = "rubyfmt";
22   version = "0.10.0";
24   src = fetchFromGitHub {
25     owner = "fables-tales";
26     repo = "rubyfmt";
27     rev = "v${version}";
28     hash = "sha256-IIHPU6iwFwQ5cOAtOULpMSjexFtTelSd/LGLuazdmUo=";
29     fetchSubmodules = true;
30   };
32   nativeBuildInputs = [
33     autoconf
34     automake
35     bison
36     ruby
37   ];
39   buildInputs = [
40     zlib
41     libxcrypt
42     libyaml
43   ] ++ lib.optionals stdenv.isDarwin [
44     readline
45     libiconv
46     libobjc
47     libunwind
48     Foundation
49     Security
50   ];
52   preConfigure = ''
53     pushd librubyfmt/ruby_checkout
54     autoreconf --install --force --verbose
55     ./configure
56     popd
57   '';
59   cargoPatches = [
60     # Avoid checking whether ruby gitsubmodule is up-to-date.
61     ./0002-remove-dependency-on-git.patch
62   ];
64   cargoHash = "sha256-QZ26GmsKyENkzdCGg2peie/aJhEt7KQAF/lwsibonDk=";
66   env.NIX_CFLAGS_COMPILE = lib.optionalString stdenv.isDarwin "-fdeclspec";
68   preFixup = ''
69     mv $out/bin/rubyfmt{-main,}
70   '';
72   meta = with lib; {
73     description = "A Ruby autoformatter";
74     homepage = "https://github.com/fables-tales/rubyfmt";
75     license = licenses.mit;
76     maintainers = with maintainers; [ bobvanderlinden ];
77     # = note: Undefined symbols for architecture x86_64:
78     #       "_utimensat", referenced from:
79     #           _utime_internal in librubyfmt-3c969812b3b27083.rlib(file.o)
80     broken = stdenv.isDarwin && stdenv.isx86_64;
81     mainProgram = "rubyfmt";
82   };