Merge pull request #268619 from tweag/lib-descriptions
[NixPkgs.git] / pkgs / applications / version-management / josh / default.nix
blob5acd1a6343447e3f4a3561a3d5dc7f32955a06c9
1 { lib
2 , stdenv
3 , fetchFromGitHub
4 , fetchpatch
5 , rustPlatform
6 , libgit2
7 , openssl
8 , pkg-config
9 , makeWrapper
10 , git
11 , darwin
14 rustPlatform.buildRustPackage rec {
15   pname = "josh";
16   version = "23.02.14";
17   JOSH_VERSION = "r${version}";
19   src = fetchFromGitHub {
20     owner = "esrlabs";
21     repo = "josh";
22     rev = JOSH_VERSION;
23     sha256 = "1sqa8xi5d55zshky7gicac02f67vp944hclkdsmwy0bczk9hgssr";
24   };
26   patches = [
27     # Unreleased patch allowing compilation from the GitHub tarball download
28     (fetchpatch {
29       name = "josh-version-without-git.patch";
30       url = "https://github.com/josh-project/josh/commit/13e7565ab029206598881391db4ddc6dface692b.patch";
31       sha256 = "1l5syqj51sn7kcqvffwl6ggn5sq8wfkpviga860agghnw5dpf7ns";
32     })
34     # Merged upstream, fixes builds with newer rustc
35     (fetchpatch {
36       name = "josh-fix-builds-with-rust-173.patch";
37       url = "https://github.com/josh-project/josh/commit/7b8259b81a9acabb528ddebc4ab30fc712f756fb.patch";
38       sha256 = "sha256-YfrVlH6Ox05ZbmB/15HVaFlOyRTOFbYflq0edi6/X9k=";
39       includes = [ "josh-proxy/src/bin/josh-proxy.rs" ];
40     })
41   ];
43   cargoSha256 = "0f6cvz2s8qs53b2g6xja38m24hafqla61s4r5za0a1dyndgms7sl";
45   nativeBuildInputs = [
46     pkg-config
47     makeWrapper
48   ];
50   buildInputs = [
51     libgit2
52     openssl
53   ] ++ lib.optionals stdenv.hostPlatform.isDarwin [
54     darwin.Security
55   ];
57   cargoBuildFlags = [
58     "-p" "josh"
59     "-p" "josh-proxy"
60     # TODO: josh-ui
61   ];
63   postInstall = ''
64     wrapProgram "$out/bin/josh-proxy" --prefix PATH : "${git}/bin"
65   '';
67   meta = {
68     description = "Just One Single History";
69     homepage = "https://josh-project.github.io/josh/";
70     downloadPage = "https://github.com/josh-project/josh";
71     changelog = "https://github.com/josh-project/josh/releases/tag/${version}";
72     license = lib.licenses.mit;
73     maintainers = [
74       lib.maintainers.sternenseemann
75       lib.maintainers.tazjin
76     ];
77     platforms = lib.platforms.all;
78   };