diff options
Diffstat (limited to 'pkgs/by-name/gi/gitui/package.nix')
-rw-r--r-- | pkgs/by-name/gi/gitui/package.nix | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/pkgs/by-name/gi/gitui/package.nix b/pkgs/by-name/gi/gitui/package.nix new file mode 100644 index 0000000000000..edc03effa5fd9 --- /dev/null +++ b/pkgs/by-name/gi/gitui/package.nix @@ -0,0 +1,63 @@ +{ lib +, stdenv +, rustPlatform +, fetchFromGitHub +, libiconv +, openssl +, pkg-config +, xclip +, darwin +}: + +rustPlatform.buildRustPackage rec { + pname = "gitui"; + version = "0.26.1"; + + src = fetchFromGitHub { + owner = "extrawurst"; + repo = "gitui"; + rev = "v${version}"; + hash = "sha256-JqxZbxjZrrdsXWhpYu0E9F18gMldtOLrAYd+uiY8IcQ="; + }; + + cargoHash = "sha256-zEoNyIiHQT6HBNSe+H7pz229K4eD0WMhp3I/6zJQHuU="; + + nativeBuildInputs = [ pkg-config ]; + + buildInputs = [ openssl ] + ++ lib.optional stdenv.isLinux xclip + ++ lib.optionals stdenv.isDarwin [ + libiconv + darwin.apple_sdk.frameworks.Security + darwin.apple_sdk.frameworks.AppKit + ]; + + postPatch = '' + # The cargo config overrides linkers for some targets, breaking the build + # on e.g. `aarch64-linux`. These overrides are not required in the Nix + # environment: delete them. + rm .cargo/config + + # build script tries to get version information from git + rm build.rs + substituteInPlace Cargo.toml --replace-fail 'build = "build.rs"' "" + ''; + + GITUI_BUILD_NAME = version; + # Needed to get openssl-sys to use pkg-config. + OPENSSL_NO_VENDOR = 1; + + # Getting app_config_path fails with a permission denied + checkFlags = [ + "--skip=keys::key_config::tests::test_symbolic_links" + ]; + + meta = { + description = "Blazing fast terminal-ui for Git written in Rust"; + homepage = "https://github.com/extrawurst/gitui"; + changelog = "https://github.com/extrawurst/gitui/blob/v${version}/CHANGELOG.md"; + mainProgram = "gitui"; + license = lib.licenses.mit; + maintainers = with lib.maintainers; [ Br1ght0ne yanganto mfrw ]; + }; +} |