{ stdenv, buildGoPackage, fetchurl, makeWrapper , git, bash, gzip, openssh, pam , sqliteSupport ? true , pamSupport ? true }: with stdenv.lib; buildGoPackage rec { pname = "gitea"; version = "1.12.1"; src = fetchurl { url = "https://github.com/go-gitea/gitea/releases/download/v${version}/gitea-src-${version}.tar.gz"; sha256 = "0n92msf5pbgb5q6pa2p0nj9lnzs4y0qis62c5mp4hp8rc1j22wlb"; }; unpackPhase = '' mkdir source/ tar xvf $src -C source/ ''; sourceRoot = "source"; patches = [ ./static-root-path.patch ]; postPatch = '' patchShebangs . substituteInPlace modules/setting/setting.go --subst-var data ''; nativeBuildInputs = [ makeWrapper ]; buildInputs = optional pamSupport pam; preBuild = let tags = optional pamSupport "pam" ++ optional sqliteSupport "sqlite"; tagsString = concatStringsSep " " tags; in '' export buildFlagsArray=( -tags="${tagsString}" -ldflags='-X "main.Version=${version}" -X "main.Tags=${tagsString}"' ) ''; outputs = [ "out" "data" ]; 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 : ${makeBinPath [ bash git gzip openssh ]} ''; goPackagePath = "code.gitea.io/gitea"; meta = { description = "Git with a cup of tea"; homepage = "https://gitea.io"; license = licenses.mit; maintainers = with maintainers; [ disassembler kolaente ma27 ]; }; }