nixpkgs mirror (for testing)
github.com/NixOS/nixpkgs
nix
1{
2 buildGoModule,
3 lib,
4 fetchFromGitHub,
5 fetchPnpmDeps,
6 pnpmConfigHook,
7 pnpm,
8 nodejs,
9 fetchpatch,
10 stdenv,
11}:
12
13buildGoModule rec {
14 pname = "apache-answer";
15 version = "1.7.1";
16
17 src = fetchFromGitHub {
18 owner = "apache";
19 repo = "answer";
20 tag = "v${version}";
21 hash = "sha256-QTm/6srSn4oF78795ADpW10bZmyEmqTNezB6JSkS2I4=";
22 };
23
24 webui = stdenv.mkDerivation {
25 pname = pname + "-webui";
26 inherit version src;
27
28 sourceRoot = "${src.name}/ui";
29
30 pnpmDeps = fetchPnpmDeps {
31 inherit src version pname;
32 sourceRoot = "${src.name}/ui";
33 fetcherVersion = 1;
34 hash = "sha256-6IeLOwsEqchCwe0GGj/4v9Q4/Hm16K+ve2X+8QHztQM=";
35 };
36
37 nativeBuildInputs = [
38 pnpmConfigHook
39 pnpm
40 nodejs
41 ];
42
43 buildPhase = ''
44 runHook preBuild
45
46 pnpm build
47
48 runHook postBuild
49 '';
50
51 installPhase = ''
52 runHook preInstall
53
54 mkdir -p $out
55 cp -r build/* $out
56
57 runHook postInstall
58 '';
59 };
60
61 vendorHash = "sha256-ZZ+6OS967qtstMxdBzDxTU2wvyieZJM+/g9V96rXPVI=";
62
63 doCheck = false; # TODO checks are currently broken upstream
64
65 ldflags = [
66 "-X main.Version=${version}"
67 "-X main.Commit=${version}"
68 ];
69
70 preBuild = ''
71 cp -r ${webui}/* ui/build/
72 '';
73
74 meta = {
75 homepage = "https://answer.apache.org/";
76 license = lib.licenses.asl20;
77 maintainers = with lib.maintainers; [
78 bot-wxt1221
79 ];
80 platforms = lib.platforms.unix;
81 mainProgram = "answer";
82 changelog = "https://github.com/apache/answer/releases/tag/v${version}";
83 description = "Q&A platform software for teams at any scales";
84 };
85}