| 1 | # Contributor: Carlo Landmeter <[email protected]> |
| 2 | # Contributor: 6543 <[email protected]> |
| 3 | # Contributor: techknowlogick <[email protected]> |
| 4 | # Contributor: Patrycja Rosa <[email protected]> |
| 5 | maintainer="Achill Gilgenast <[email protected]>" |
| 6 | pkgname=forgejo-lts |
| 7 | pkgver=15.0.10 |
| 8 | pkgrel=0 |
| 9 | # Please apply changes to `forgejo` as well |
| 10 | pkgdesc="Self-hosted Git service written in Go (Long-term stable)" |
| 11 | url="https://forgejo.org" |
| 12 | arch="all !armv7 !armhf" # oom |
| 13 | license="GPL-3.0-or-later" |
| 14 | depends="git git-lfs gnupg" |
| 15 | makedepends="go nodejs npm" |
| 16 | checkdepends="bash openssh openssh-keygen sqlite tzdata" |
| 17 | install="$pkgname.pre-install" |
| 18 | pkgusers="forgejo" |
| 19 | pkggroups="www-data" |
| 20 | subpackages="$pkgname-openrc $pkgname-systemd" |
| 21 | source="$pkgname-$pkgver.tar.gz::https://codeberg.org/forgejo/forgejo/archive/v$pkgver.tar.gz |
| 22 | forgejo.initd |
| 23 | forgejo.ini |
| 24 | " |
| 25 | builddir="$srcdir/forgejo" |
| 26 | options="!check net chmod-clean" # broken with GIT_CEILING |
| 27 | |
| 28 | # Skip tests for archs that fail unrelated in CI |
| 29 | case "$CARCH" in |
| 30 | s390x|x86|armhf|armv7) options="$options !check" ;; |
| 31 | esac |
| 32 | |
| 33 | prepare() { |
| 34 | default_prepare |
| 35 | |
| 36 | npm ci |
| 37 | } |
| 38 | |
| 39 | build() { |
| 40 | # XXX: LARGEFILE64 |
| 41 | export CGO_CFLAGS="$CFLAGS -O2 -D_LARGEFILE64_SOURCE" |
| 42 | export TAGS="bindata sqlite sqlite_unlock_notify" |
| 43 | export GITEA_VERSION="$pkgver" |
| 44 | export EXTRA_GOFLAGS="$GOFLAGS" |
| 45 | export CGO_LDFLAGS="$LDFLAGS" |
| 46 | unset LDFLAGS |
| 47 | ## make FHS compliant |
| 48 | local setting="forgejo.org/modules/setting" |
| 49 | export LDFLAGS="$LDFLAGS -X $setting.CustomConf=/etc/forgejo/app.ini" |
| 50 | export LDFLAGS="$LDFLAGS -X $setting.AppWorkPath=/var/lib/forgejo/" |
| 51 | |
| 52 | make -j1 build |
| 53 | } |
| 54 | |
| 55 | check() { |
| 56 | local home="$srcdir"/home |
| 57 | mkdir -p "$home" |
| 58 | install -d -m700 "$home"/.ssh |
| 59 | touch "$home"/.gitconfig |
| 60 | |
| 61 | env GITEA_ROOT="$home" HOME="$home" GITEA_WORK_DIR="$(pwd)" timeout -s ABRT 20m make -j1 test-sqlite |
| 62 | ## "make test" - modified (exclude broken tests) |
| 63 | ## 'code.gitea.io/gitea/modules/migrations': github hase rate limits! 403 API |
| 64 | local tests=$(go list ./... | grep -v /vendor/ | |
| 65 | grep -v 'code.gitea.io/gitea/modules/migrations' | |
| 66 | grep -v 'code.gitea.io/gitea/modules/charset' | |
| 67 | grep -v 'code.gitea.io/gitea/models/migrations' | |
| 68 | grep -v 'code.gitea.io/gitea/services/migrations' | |
| 69 | grep -v 'code.gitea.io/gitea/integrations') |
| 70 | env GITEA_CONF="$PWD/tests/sqlite.ini" GITEA_ROOT="$home" HOME="$home" GO111MODULE=on go test -mod=vendor -tags='sqlite sqlite_unlock_notify' $tests |
| 71 | |
| 72 | } |
| 73 | |
| 74 | package() { |
| 75 | for dir in forgejo forgejo/git forgejo/data forgejo/db forgejo/custom; do |
| 76 | install -dm750 -o forgejo -g www-data \ |
| 77 | "$pkgdir"/var/lib/$dir |
| 78 | done |
| 79 | |
| 80 | install -dm755 -o forgejo -g www-data "$pkgdir"/var/log/forgejo |
| 81 | |
| 82 | # TODO: rename when upstream does |
| 83 | install -Dm755 -g www-data gitea "$pkgdir"/usr/bin/forgejo |
| 84 | |
| 85 | install -Dm644 -o forgejo -g www-data "$srcdir"/forgejo.ini \ |
| 86 | "$pkgdir"/etc/forgejo/app.ini |
| 87 | chown forgejo:www-data "$pkgdir"/etc/forgejo |
| 88 | |
| 89 | install -Dm755 "$srcdir"/forgejo.initd \ |
| 90 | "$pkgdir"/etc/init.d/forgejo |
| 91 | install -Dm644 contrib/systemd/forgejo.service \ |
| 92 | -t "$pkgdir"/usr/lib/systemd/system/ |
| 93 | } |
| 94 | |
| 95 | sha512sums=" |
| 96 | 67d2c4da895ff0d5b5612e3fb8b23d70ba18c9a4c2d46224d6db22c3ccb793d22c4de466481923bcafae0a9cceb8cbb96781efad6fd883926087301e4837a267 forgejo-lts-15.0.10.tar.gz |
| 97 | c88ee45c90c445aec440b80f72f17e249e4efb2c38be40dcb72a2ab27a9d6a06c804aeb0d417cd4209fb9096bdd46d5e1ecd8a8665fae93dc4d960720994afb4 forgejo.initd |
| 98 | b537b41b6b3a945274a6028800f39787b48c318425a37cf5d40ace0d1b305444fd07f17b4acafcd31a629bedd7d008b0bb3e30f82ffeb3d7e7e947bdbe0ff4f3 forgejo.ini |
| 99 | " |