chromium,chromedriver: 129.0.6668.91 -> 129.0.6668.100
[NixPkgs.git] / pkgs / by-name / gi / gitea / package.nix
blobe68a58be66e6534b9f3f74269c0c4966c50b37c9
1 { lib
2 , buildGoModule
3 , fetchFromGitHub
4 , makeWrapper
5 , git
6 , bash
7 , coreutils
8 , compressDrvWeb
9 , gitea
10 , gzip
11 , openssh
12 , sqliteSupport ? true
13 , nixosTests
14 , buildNpmPackage
17 let
18   frontend = buildNpmPackage {
19     pname = "gitea-frontend";
20     inherit (gitea) src version;
22     npmDepsHash = "sha256-Sp3xBe5IXys2Qro4x4HKs9dQOnlbstAmtIG6xOOktEk=";
24     # use webpack directly instead of 'make frontend' as the packages are already installed
25     buildPhase = ''
26       BROWSERSLIST_IGNORE_OLD_DATA=true npx webpack
27     '';
29     installPhase = ''
30       mkdir -p $out
31       cp -R public $out/
32     '';
33   };
34 in buildGoModule rec {
35   pname = "gitea";
36   version = "1.22.3";
38   src = fetchFromGitHub {
39     owner = "go-gitea";
40     repo = "gitea";
41     rev = "v${gitea.version}";
42     hash = "sha256-F1vvyf/FE/OIfDjM0CCOef/cXy+GPA+8n1AypE0r6p8=";
43   };
45   proxyVendor = true;
47   vendorHash = "sha256-iKf4ozCBcTJQ6bm6dX4dd4buVMGNDVF+rLuYkb7Zxw8=";
49   outputs = [ "out" "data" ];
51   patches = [ ./static-root-path.patch ];
53   # go-modules derivation doesn't provide $data
54   # so we need to wait until it is built, and then
55   # at that time we can then apply the substituteInPlace
56   overrideModAttrs = _: { postPatch = null; };
58   postPatch = ''
59     substituteInPlace modules/setting/server.go --subst-var data
60   '';
62   subPackages = [ "." ];
64   nativeBuildInputs = [ makeWrapper ];
66   tags = lib.optionals sqliteSupport [ "sqlite" "sqlite_unlock_notify" ];
68   ldflags = [
69     "-s"
70     "-w"
71     "-X main.Version=${version}"
72     "-X 'main.Tags=${lib.concatStringsSep " " tags}'"
73   ];
75   postInstall = ''
76     mkdir $data
77     ln -s ${frontend}/public $data/public
78     cp -R ./{templates,options} $data
79     mkdir -p $out
80     cp -R ./options/locale $out/locale
82     wrapProgram $out/bin/gitea \
83       --prefix PATH : ${lib.makeBinPath [ bash coreutils git gzip openssh ]}
84   '';
86   passthru = {
87     data-compressed = lib.warn "gitea.passthru.data-compressed is deprecated. Use \"compressDrvWeb gitea.data\"." (compressDrvWeb gitea.data {});
89     tests = nixosTests.gitea;
90   };
92   meta = with lib; {
93     description = "Git with a cup of tea";
94     homepage = "https://about.gitea.com";
95     license = licenses.mit;
96     maintainers = with maintainers; [ ma27 techknowlogick SuperSandro2000 ];
97     mainProgram = "gitea";
98   };