paperwork: fix installing translations (#370379)
[NixPkgs.git] / pkgs / by-name / oi / oils-for-unix / package.nix
blobb90ddd8eeb3379cc71269058325a11ec34921345
2   stdenv,
3   lib,
4   fetchurl,
5   symlinkJoin,
6   withReadline ? true,
7   readline,
8 }:
10 let
11   readline-all = symlinkJoin {
12     name = "readline-all";
13     paths = [
14       readline
15       readline.dev
16     ];
17   };
19 stdenv.mkDerivation rec {
20   pname = "oils-for-unix";
21   version = "0.24.0";
23   src = fetchurl {
24     url = "https://www.oilshell.org/download/oils-for-unix-${version}.tar.gz";
25     hash = "sha256-30r+2U1TswOngs4DgMOT1g9tIZIe8qJZIrQAgordmPM=";
26   };
28   postPatch = ''
29     patchShebangs _build
30   '';
32   preInstall = ''
33     mkdir -p $out/bin
34   '';
36   buildPhase = ''
37     runHook preBuild
39     _build/oils.sh
41     runHook postBuild
42   '';
44   installPhase = ''
45     runHook preInstall
47     ./install
49     runHook postInstall
50   '';
52   strictDeps = true;
53   buildInputs = lib.optional withReadline readline;
54   # As of 0.19.0 the build generates an error on MacOS (using clang version 16.0.6 in the builder),
55   # whereas running it outside of Nix with clang version 15.0.0 generates just a warning. The shell seems to
56   # work just fine though, so we disable the error here.
57   env.NIX_CFLAGS_COMPILE = lib.optionalString stdenv.cc.isClang "-Wno-error=incompatible-function-pointer-types";
58   configureFlags =
59     [
60       "--datarootdir=${placeholder "out"}"
61     ]
62     ++ lib.optionals withReadline [
63       "--with-readline"
64       "--readline=${readline-all}"
65     ];
67   meta = {
68     description = "Unix shell with JSON-compatible structured data. It's our upgrade path from bash to a better language and runtime";
69     homepage = "https://www.oilshell.org/";
71     license = lib.licenses.asl20;
73     platforms = lib.platforms.all;
74     maintainers = with lib.maintainers; [
75       mkg20001
76       melkor333
77     ];
78     changelog = "https://www.oilshell.org/release/${version}/changelog.html";
79   };
81   passthru = {
82     shellPath = "/bin/osh";
83   };