Merge pull request #329823 from ExpidusOS/fix/pkgsllvm/elfutils
[NixPkgs.git] / pkgs / by-name / ag / agate / package.nix
blob90e2cf394a5098f8d5a8f261a21a4c4cddd992fa
2   lib,
3   stdenv,
4   nixosTests,
5   fetchFromGitHub,
6   rustPlatform,
7   libiconv,
8   darwin,
9   openssl,
10   pkg-config,
11   nix-update-script,
14 rustPlatform.buildRustPackage rec {
15   pname = "agate";
16   version = "3.3.8";
18   src = fetchFromGitHub {
19     owner = "mbrubeck";
20     repo = "agate";
21     rev = "v${version}";
22     hash = "sha256-HK4ZTpRe6dEvBnjZLisSGXJmD5gTPEnf6f/gN0AHUsI=";
23   };
25   cargoHash = "sha256-yRCH4TRZ3m7ZG/NAEi1YDisSoad6FxCyojtXVvwbU9w=";
27   nativeBuildInputs = [ pkg-config ];
29   buildInputs =
30     [ openssl ]
31     ++ lib.optionals stdenv.isDarwin [
32       libiconv
33       darwin.apple_sdk.frameworks.Security
34     ];
36   doInstallCheck = true;
37   installCheckPhase = ''
38     runHook preInstallCheck
39     $out/bin/agate --help
40     $out/bin/agate --version 2>&1 | grep "agate ${version}"
41     runHook postInstallCheck
42   '';
44   __darwinAllowLocalNetworking = true;
46   passthru = {
47     tests = {
48       inherit (nixosTests) agate;
49     };
50     updateScript = nix-update-script { };
51   };
53   meta = {
54     homepage = "https://github.com/mbrubeck/agate";
55     changelog = "https://github.com/mbrubeck/agate/releases/tag/v${version}";
56     description = "Very simple server for the Gemini hypertext protocol";
57     mainProgram = "agate";
58     longDescription = ''
59       Agate is a server for the Gemini network protocol, built with the Rust
60       programming language. Agate has very few features, and can only serve
61       static files. It uses async I/O, and should be quite efficient even when
62       running on low-end hardware and serving many concurrent requests.
63     '';
64     license = with lib.licenses; [
65       asl20
66       mit
67     ];
68     maintainers = with lib.maintainers; [ jk ];
69   };