added community/gitea

This commit is contained in:
Kevin Mihelich 2019-08-03 00:34:22 +00:00
parent d6056c21a0
commit c9ae769f97
7 changed files with 227 additions and 0 deletions

78
community/gitea/PKGBUILD Normal file
View file

@ -0,0 +1,78 @@
# Maintainer: Bruno Pagani <archange@archlinux.org>
# Maintainer: Maxime Gauduin <alucryd@archlinux.org>
# Contributor: Frederik Schwan <frederik dot schwan at linux dot com>
# ALARM: Kevin Mihelich <kevin@archlinuxarm.org>
# - reduce go garbage collection memory usage with GOGC=50
# - don't check repo signature until author puts his keys on keyservers
pkgname=gitea
pkgver=1.8.3
pkgrel=1
pkgdesc="Painless self-hosted Git service. Community managed fork of Gogs."
arch=(x86_64)
url="https://gitea.io"
license=(MIT)
depends=(git)
makedepends=(go-pie go-bindata dep)
optdepends=(
'mariadb: MariaDB support'
'memcached: MemCached support'
'openssh: GIT over SSH support'
'pam: Authentication via PAM support'
'postgresql: PostgreSQL support'
'redis: Redis support'
'sqlite: SQLite support'
)
backup=('etc/gitea/app.ini')
_tag=2b76566c63f0d3d820016259a21aca4cb94bc78b # git rev-parse v${pkgver}
source=("git+https://github.com/go-gitea/gitea.git#tag=${_tag}"
gitea.tmpfiles
gitea.service
gitea.sysusers
gitea-arch-defaults.patch
gitea-ldflags.patch)
sha256sums=('SKIP'
'1521fd7edc3830c695698ffe9835709f1408040b5ec989f07410972c894fa8ba'
'7789b3f6699b9e111fa080226047cdc765e55ff49a3f72aac989c11c06c3e7e0'
'2abc51ccd0086bb996194bb7fb241a3f26d84f518417c872b66a3db8970da7e4'
'ab0183aeee92d127819b033cbe0b9eab2e1072fb67a0a20e838d911138799b70'
'2dd05c2ec8d5b17332525fe176e40df9893aa632f48525f9d5df98e05027aebf')
validpgpkeys=(8C4033A23895237CB27D52D9D9B5613BEB813F99 # Matti Ranta <matti@mdranta.net> old RSA2048, retrieved from https://github.com/techknowlogick.gpg
B56E3C7437A49E136862F5DE9D8A57ADAA232E95 # Matti Ranta <matti@mdranta.net> new RSA4096, retrieved from https://github.com/techknowlogick.gpg
ED810FD31FBE67F406ED71BDD4F1E9B6493ED946 # Jonas Franz <info@jonasfranz.software>
9C5BCD799B3CDB124147A748E0DDFEC24C48784C) # Lauris Bukšis-Haberkorns <lauris@nix.lv>
install=gitea.install
prepare() {
mkdir -p gopath/src/code.gitea.io
ln -rTsf ${pkgname} gopath/src/code.gitea.io/gitea
export GOPATH="${srcdir}"/gopath
cd ${pkgname}
# Change some defaults for ArchLinux
patch -Np1 -i ../gitea-arch-defaults.patch
# Fix LDFLAGS not being respected by Go
patch -Np1 -i ../gitea-ldflags.patch
cd $GOPATH/src/code.gitea.io/gitea
dep ensure
}
build() {
export GOPATH="${srcdir}"/gopath
export GOGC=50
cd gopath/src/code.gitea.io/gitea
make generate
EXTRA_GOFLAGS="-gcflags all=-trimpath=${GOPATH} -asmflags all=-trimpath=${GOPATH}" \
make GOFLAGS="-v" TAGS="bindata sqlite pam" build
}
package() {
install -Dm755 ${pkgname}/${pkgname} -t "${pkgdir}"/usr/bin/
install -Dm644 ${pkgname}/LICENSE -t "${pkgdir}"/usr/share/licenses/${pkgname}/
install -Dm644 ${pkgname}.service -t "${pkgdir}"/usr/lib/systemd/system/
install -Dm644 ${pkgname}.tmpfiles "${pkgdir}"/usr/lib/tmpfiles.d/${pkgname}.conf
install -Dm644 ${pkgname}.sysusers "${pkgdir}"/usr/lib/sysusers.d/${pkgname}.conf
install -D ${pkgname}/custom/conf/app.ini.sample "${pkgdir}"/etc/gitea/app.ini
}

View file

@ -0,0 +1,49 @@
--- a/custom/conf/app.ini.sample
+++ b/custom/conf/app.ini.sample
@@ -7,12 +7,12 @@
; App name that shows in every page title
APP_NAME = Gitea: Git with a cup of tea
; Change it if you run locally
-RUN_USER = git
+RUN_USER = gitea
; Either "dev", "prod" or "test", default is "dev"
-RUN_MODE = dev
+RUN_MODE = prod
[repository]
-ROOT =
+ROOT = /var/lib/gitea/repos
SCRIPT_TYPE = bash
; Default ANSI charset
ANSI_CHARSET =
@@ -247,7 +247,7 @@ SQLITE_TIMEOUT = 500
; For iterate buffer, default is 50
ITERATE_BUFFER_SIZE = 50
; Show the database generated SQL
-LOG_SQL = true
+LOG_SQL = false
; Maximum number of DB Connect retries
DB_RETRIES = 10
; Backoff time per DB retry (time.Duration)
@@ -510,10 +510,10 @@ MAX_FILES = 5
FORMAT =
[log]
-ROOT_PATH =
+ROOT_PATH = /var/log/gitea/
; Either "console", "file", "conn", "smtp" or "database", default is "console"
; Use comma to separate multiple modes, e.g. "console, file"
-MODE = console
+MODE = console, file
; Buffer length of the channel, keep it as it is if you don't know what it is.
BUFFER_LEN = 10000
; Either "Trace", "Debug", "Info", "Warn", "Error", "Critical", default is "Trace"
@@ -522,7 +522,7 @@ LEVEL = Trace
; For "console" mode only
[log.console]
-LEVEL =
+LEVEL = Info
; For "file" mode only
[log.file]

View file

@ -0,0 +1,19 @@
--- a/Makefile
+++ b/Makefile
@@ -36,6 +36,7 @@ else
GITEA_VERSION := $(shell git describe --tags --always | sed 's/-/+/' | sed 's/^v//')
endif
+EXTLDFLAGS := ${LDFLAGS}
LDFLAGS := -X "main.Version=$(GITEA_VERSION)" -X "main.Tags=$(TAGS)"
PACKAGES ?= $(filter-out code.gitea.io/gitea/integrations/migration-test,$(filter-out code.gitea.io/gitea/integrations,$(shell $(GO) list ./... | grep -v /vendor/)))
@@ -312,7 +313,7 @@ install: $(wildcard *.go)
build: $(EXECUTABLE)
$(EXECUTABLE): $(SOURCES)
- $(GO) build $(GOFLAGS) $(EXTRA_GOFLAGS) -tags '$(TAGS)' -ldflags '-s -w $(LDFLAGS)' -o $@
+ $(GO) build $(GOFLAGS) $(EXTRA_GOFLAGS) -tags '$(TAGS)' -ldflags '-linkmode external -extldflags "$(EXTLDFLAGS)" -s -w $(LDFLAGS)' -o $@
.PHONY: release
release: release-dirs release-windows release-linux release-darwin release-copy release-compress release-check

View file

@ -0,0 +1,30 @@
post_upgrade() {
if [ $(vercmp $2 1.6.1-1) -lt 0 ] ; then
cat << EOF
gitea now uses its own user/group instead of the git ones.
Ownership of /var/lib/gitea tree has been changed accordingly.
You need to update your /etc/gitea/app.ini file to change the
RUN_USER variable at the top.
Next step is fixing the SSH configuration. If you have:
AllowUsers git
in /etc/ssh/sshd_config, you need to change that to gitea.
Then restart sshd.service.
You will need to tell all your users that they have to change
git@ to gitea@ in their repos clones using git remote set-url.
If you use a PostgreSQL DB upon Unix socket, you need to fix
your [database] configuration and switch USER to gitea.
Then, you need to change it also in /var/lib/data/pg_hba.conf.
Finally, as postgres user, run psql and inside it type:
ALTER USER git RENAME TO gitea;
\q
Then restart postgresql.service.
In all cases, you then need to reload systemd units and
restart gitea.service.
EOF
fi
}

View file

@ -0,0 +1,40 @@
[Unit]
Description=Gitea (Git with a cup of tea)
After=syslog.target
After=network.target
After=mysqld.service
After=postgresql.service
After=memcached.service
After=redis.service
[Service]
User=gitea
Group=gitea
Type=simple
WorkingDirectory=~
RuntimeDirectory=gitea
LogsDirectory=gitea
StateDirectory=gitea
Environment=USER=gitea HOME=/var/lib/gitea GITEA_WORK_DIR=/var/lib/gitea
ExecStart=/usr/bin/gitea web -c /etc/gitea/app.ini
Restart=always
RestartSec=2s
CapabilityBoundingSet=
NoNewPrivileges=True
PrivateUsers=true
PrivateDevices=true
PrivateTmp=true
ProtectHome=true
ProtectSystem=strict
ProtectControlGroups=yes
ProtectKernelTunables=true
ProtectKernelModules=yes
ReadWritePaths=/etc/gitea/app.ini
LockPersonality=true
MemoryDenyWriteExecute=true
RestrictRealtime=true
SystemCallArchitectures=native
SystemCallFilter=@system-service
[Install]
WantedBy=multi-user.target

View file

@ -0,0 +1 @@
u gitea - "Gitea daemon user" /var/lib/gitea /usr/bin/bash

View file

@ -0,0 +1,10 @@
d /var/lib/gitea 0750
d /var/lib/gitea/attachments 0750
d /var/lib/gitea/data 0750
d /var/lib/gitea/indexers 0750
d /var/lib/gitea/repos 0750
d /var/lib/gitea/tmp 0750
Z /var/lib/gitea - gitea gitea
d /var/log/gitea 0750 gitea gitea
z /etc/gitea 0755 root gitea
z /etc/gitea/app.ini 0660 root gitea