diff --git a/pkgs/applications/version-management/gitea/default.nix b/pkgs/applications/version-management/gitea/default.nix new file mode 100644 index 000000000000..734b9d3629c2 --- /dev/null +++ b/pkgs/applications/version-management/gitea/default.nix @@ -0,0 +1,50 @@ +{ stdenv, buildGoPackage, fetchFromGitHub, makeWrapper +, git, coreutils, bash, gzip, openssh +, sqliteSupport ? true +}: + +with stdenv.lib; + +buildGoPackage rec { + name = "gitea-${version}"; + version = "1.2.1"; + + src = fetchFromGitHub { + owner = "go-gitea"; + repo = "gitea"; + rev = "v${version}"; + sha256 = "15zw4b6hnx4hmzn2xlsi4p7jvh6jx4g4smbdidnrzrykzyq4rmpp"; + }; + + patches = [ ./static-root-path.patch ]; + + postPatch = '' + patchShebangs . + substituteInPlace modules/setting/setting.go --subst-var data + ''; + + nativeBuildInputs = [ makeWrapper ]; + + buildFlags = optionalString sqliteSupport "-tags sqlite"; + + outputs = [ "bin" "out" "data" ]; + + postInstall = '' + mkdir $data + cp -R $src/{public,templates} $data + mkdir -p $out + cp -R $src/options/locale $out/locale + + wrapProgram $bin/bin/gitea \ + --prefix PATH : ${makeBinPath [ bash git gzip openssh ]} + ''; + + goPackagePath = "code.gitea.io/gitea"; + + meta = { + description = "Git with a cup of tea"; + homepage = http://gitea.io; + license = licenses.mit; + maintainers = [ maintainers.disassembler ]; + }; +} diff --git a/pkgs/applications/version-management/gitea/static-root-path.patch b/pkgs/applications/version-management/gitea/static-root-path.patch new file mode 100644 index 000000000000..06ce521e9e8d --- /dev/null +++ b/pkgs/applications/version-management/gitea/static-root-path.patch @@ -0,0 +1,13 @@ +diff --git i/modules/setting/setting.go w/modules/setting/setting.go +index aafe2d1b..1e4a8064 100644 +--- i/modules/setting/setting.go ++++ w/modules/setting/setting.go +@@ -683,7 +683,7 @@ func NewContext() { + LocalURL = sec.Key("LOCAL_ROOT_URL").MustString(defaultLocalURL) + OfflineMode = sec.Key("OFFLINE_MODE").MustBool() + DisableRouterLog = sec.Key("DISABLE_ROUTER_LOG").MustBool() +- StaticRootPath = sec.Key("STATIC_ROOT_PATH").MustString(workDir) ++ StaticRootPath = sec.Key("STATIC_ROOT_PATH").MustString("@data@") + AppDataPath = sec.Key("APP_DATA_PATH").MustString("data") + EnableGzip = sec.Key("ENABLE_GZIP").MustBool() + EnablePprof = sec.Key("ENABLE_PPROF").MustBool(false)