109 lines
3.5 KiB
Text
109 lines
3.5 KiB
Text
# Contributor: Carlo Landmeter <clandmeter@alpinelinux.org>
|
|
# Contributor: 6543 <6543@obermui.de>
|
|
# Contributor: techknowlogick <techknowlogick@gitea.io>
|
|
# Maintainer: Patrycja Rosa <alpine@ptrcnull.me>
|
|
pkgname=forgejo
|
|
pkgver=9.0.1
|
|
pkgrel=0
|
|
pkgdesc="Self-hosted Git service written in Go"
|
|
url="https://forgejo.org"
|
|
arch="all"
|
|
license="GPL-3.0-or-later"
|
|
depends="git git-lfs gnupg"
|
|
makedepends="go nodejs npm"
|
|
checkdepends="bash openssh openssh-keygen sqlite tzdata"
|
|
install="$pkgname.pre-install"
|
|
pkgusers="forgejo"
|
|
pkggroups="www-data"
|
|
subpackages="$pkgname-openrc"
|
|
source="$pkgname-$pkgver.tar.gz::https://codeberg.org/forgejo/forgejo/archive/v$pkgver.tar.gz
|
|
$pkgname.initd
|
|
$pkgname.ini
|
|
"
|
|
builddir="$srcdir/forgejo"
|
|
options="!check net chmod-clean" # broken with GIT_CEILING
|
|
|
|
# secfixes:
|
|
# 7.0.4-r0:
|
|
# - CVE-2024-24789
|
|
# 7.0.3-r0:
|
|
# - CVE-2024-24788
|
|
# 1.21.10.0-r0:
|
|
# - CVE-2023-45288
|
|
# 1.21.3.0-r0:
|
|
# - CVE-2023-48795
|
|
|
|
export GOCACHE="${GOCACHE:-"$srcdir/go-cache"}"
|
|
export GOTMPDIR="${GOTMPDIR:-"$srcdir"}"
|
|
export GOMODCACHE="${GOMODCACHE:-"$srcdir/go"}"
|
|
|
|
# Skip tests for archs that fail unrelated in CI
|
|
case "$CARCH" in
|
|
s390x|x86|armhf|armv7) options="$options !check" ;;
|
|
esac
|
|
|
|
prepare() {
|
|
default_prepare
|
|
|
|
npm ci
|
|
}
|
|
|
|
build() {
|
|
# XXX: LARGEFILE64
|
|
export CGO_CFLAGS="$CFLAGS -O2 -D_LARGEFILE64_SOURCE"
|
|
export TAGS="bindata sqlite sqlite_unlock_notify pam"
|
|
export GITEA_VERSION="$pkgver"
|
|
export EXTRA_GOFLAGS="$GOFLAGS"
|
|
export CGO_LDFLAGS="$LDFLAGS"
|
|
unset LDFLAGS
|
|
## make FHS compliant
|
|
local setting="code.gitea.io/gitea/modules/setting"
|
|
export LDFLAGS="$LDFLAGS -X $setting.CustomConf=/etc/forgejo/app.ini"
|
|
export LDFLAGS="$LDFLAGS -X $setting.AppWorkPath=/var/lib/forgejo/"
|
|
|
|
make -j1 build
|
|
}
|
|
|
|
check() {
|
|
local home="$srcdir"/home
|
|
mkdir -p "$home"
|
|
install -d -m700 "$home"/.ssh
|
|
touch "$home"/.gitconfig
|
|
|
|
env GITEA_ROOT="$home" HOME="$home" GITEA_WORK_DIR="$(pwd)" timeout -s ABRT 20m make -j1 test-sqlite
|
|
## "make test" - modified (exclude broken tests)
|
|
## 'code.gitea.io/gitea/modules/migrations': github hase rate limits! 403 API
|
|
local tests=$(go list ./... | grep -v /vendor/ |
|
|
grep -v 'code.gitea.io/gitea/modules/migrations' |
|
|
grep -v 'code.gitea.io/gitea/modules/charset' |
|
|
grep -v 'code.gitea.io/gitea/models/migrations' |
|
|
grep -v 'code.gitea.io/gitea/services/migrations' |
|
|
grep -v 'code.gitea.io/gitea/integrations')
|
|
env GITEA_CONF="$PWD/tests/sqlite.ini" GITEA_ROOT="$home" HOME="$home" GO111MODULE=on go test -mod=vendor -tags='sqlite sqlite_unlock_notify' $tests
|
|
|
|
}
|
|
|
|
package() {
|
|
for dir in $pkgname $pkgname/git $pkgname/data $pkgname/db $pkgname/custom; do
|
|
install -dm750 -o forgejo -g www-data \
|
|
"$pkgdir"/var/lib/$dir
|
|
done
|
|
|
|
install -dm755 -o forgejo -g www-data "$pkgdir"/var/log/forgejo
|
|
|
|
# TODO: rename when upstream does
|
|
install -Dm755 -g www-data gitea "$pkgdir"/usr/bin/forgejo
|
|
|
|
install -Dm644 -o forgejo -g www-data "$srcdir"/forgejo.ini \
|
|
"$pkgdir"/etc/forgejo/app.ini
|
|
chown forgejo:www-data "$pkgdir"/etc/forgejo
|
|
|
|
install -Dm755 "$srcdir"/forgejo.initd \
|
|
"$pkgdir"/etc/init.d/forgejo
|
|
}
|
|
|
|
sha512sums="
|
|
3f6c7ce0656c9d6f0a817eba55f37342dd5618a50ee61445e01d62fae99447240ef1bdf411763c90f6e4f7807fcf83307c9ef1a9d6bbd2b5a014fe81c398072c forgejo-9.0.1.tar.gz
|
|
eb93a9f6c8f204de5c813f58727015f53f9feaab546589e016c60743131559f04fc1518f487b6d2a0e7fa8fab6d4a67cd0cd9713a7ccd9dec767a8c1ddebe129 forgejo.initd
|
|
b537b41b6b3a945274a6028800f39787b48c318425a37cf5d40ace0d1b305444fd07f17b4acafcd31a629bedd7d008b0bb3e30f82ffeb3d7e7e947bdbe0ff4f3 forgejo.ini
|
|
"
|