From ea5910f66cdc898251303e2b34d2d14333026aa0 Mon Sep 17 00:00:00 2001
From: Izorkin <izorkin@elven.pw>
Date: Sun, 1 Jan 2023 16:14:13 +0300
Subject: [PATCH] forgejo: 1.18.0-rc1-1 -> 1.18.2-0

---
 .../version-management/forgejo/default.nix    | 57 ++++++++++++++++---
 1 file changed, 49 insertions(+), 8 deletions(-)

diff --git a/pkgs/applications/version-management/forgejo/default.nix b/pkgs/applications/version-management/forgejo/default.nix
index 2cc8bb3c816a..819f9bf8b716 100644
--- a/pkgs/applications/version-management/forgejo/default.nix
+++ b/pkgs/applications/version-management/forgejo/default.nix
@@ -1,25 +1,66 @@
-{ fetchurl, gitea, lib }:
+{ lib
+, stdenv
+, buildGoPackage
+, fetchurl
+, makeWrapper
+, git
+, bash
+, gzip
+, openssh
+, pam
+, pamSupport ? true
+, sqliteSupport ? true
+}:
 
-gitea.overrideAttrs (old: rec {
+buildGoPackage rec {
   pname = "forgejo";
-  version = "1.18.0-rc1-1";
+  version = "1.18.2-0";
 
   src = fetchurl {
     name = "${pname}-src-${version}.tar.gz";
     # see https://codeberg.org/forgejo/forgejo/releases
-    url = "https://codeberg.org/attachments/976c426a-3e04-49ff-9762-47fab50624a3";
-    hash = "sha256-kreBMHlMVB1UeG67zMbszGrgjaROateCRswH7GrKnEw=";
+    url = "https://codeberg.org/attachments/5d59ec04-9f29-4b32-a1ef-bec5c3132e26";
+    hash = "sha256-RLShwdx8geyFr1Jk5qDVbsEt2hCjdrwX0lNHea7P+pk=";
   };
 
-  postInstall = old.postInstall or "" + ''
-    mv $out/bin/{${old.pname},${pname}}
+  outputs = [ "out" "data" ];
+
+  nativeBuildInputs = [ makeWrapper ];
+
+  buildInputs = lib.optional pamSupport pam;
+
+  patches = [
+    ./../gitea/static-root-path.patch
+  ];
+
+  postPatch = ''
+    substituteInPlace modules/setting/setting.go --subst-var data
   '';
 
+  tags = lib.optional pamSupport "pam"
+    ++ lib.optionals sqliteSupport [ "sqlite" "sqlite_unlock_notify" ];
+  ldflags = [
+    "-X main.Version=${version}"
+    "-X 'main.Tags=${lib.concatStringsSep " " tags}'"
+  ];
+
+  postInstall = ''
+    mkdir $data
+    cp -R ./go/src/${goPackagePath}/{public,templates,options} $data
+    mkdir -p $out
+    cp -R ./go/src/${goPackagePath}/options/locale $out/locale
+    wrapProgram $out/bin/gitea \
+      --prefix PATH : ${lib.makeBinPath [ bash git gzip openssh ]}
+  '';
+
+  goPackagePath = "code.gitea.io/gitea";
+
   meta = with lib; {
     description = "A self-hosted lightweight software forge";
     homepage = "https://forgejo.org";
     changelog = "https://codeberg.org/forgejo/forgejo/releases/tag/v${version}";
     license = licenses.mit;
     maintainers = with maintainers; [ urandom ];
+    broken = stdenv.isDarwin;
   };
-})
+}