~alpine/aports

This thread contains a patchset. You're looking at the original emails, but you may wish to use the patch review UI. Review patch
1

[PATCH] testing/forgejo: add aport

Details
Message ID
<20230106231447.8818-1-eragon+alpine@eragon.re>
DKIM signature
missing
Download raw message
Patch: +159 -0
https://forgejo.org
Self-hosted, lightweight software forge - A soft fork of Gitea
---
 testing/forgejo/APKBUILD            | 100 ++++++++++++++++++++++++++++
 testing/forgejo/forgejo.confd       |   4 ++
 testing/forgejo/forgejo.ini         |  32 +++++++++
 testing/forgejo/forgejo.initd       |  15 +++++
 testing/forgejo/forgejo.pre-install |   7 ++
 testing/forgejo/forgejo.sysusers    |   1 +
 6 files changed, 159 insertions(+)
 create mode 100644 testing/forgejo/APKBUILD
 create mode 100644 testing/forgejo/forgejo.confd
 create mode 100644 testing/forgejo/forgejo.ini
 create mode 100644 testing/forgejo/forgejo.initd
 create mode 100644 testing/forgejo/forgejo.pre-install
 create mode 100644 testing/forgejo/forgejo.sysusers

diff --git a/testing/forgejo/APKBUILD b/testing/forgejo/APKBUILD
new file mode 100644
index 0000000000..04737b60ce
--- /dev/null
+++ b/testing/forgejo/APKBUILD
@@ -0,0 +1,100 @@
# Contributor: Carlo Landmeter <clandmeter@alpinelinux.org>
# Contributor: 6543 <6543@obermui.de>
# Contributor: techknowlogick <techknowlogick@gitea.io>
# Contributor: Twann <tw4nn [at] disroot [dot] org>
# Contributor: Maximilian Friedersdorff <max@friedersdorff.com>
# Contributor: kageru <kageru@encode.moe>
# Contributor: Sam Whited <sam@samwhited.com>
# Contributor: Francois Menning <f.menning@pm.me>
# Contributor: Anton Kudryavtsev <anton@anibit.ru>
# Contributor: Frederik Schwan <frederik dot schwan at linux dot com>
# Contributor: Thomas Fanninger <thomas@fanninger.at>
# Contributor: Alexander F Rødseth <xyproto@archlinux.org>
# Contributor: Thomas Laroche <tho.laroche@gmail.com>
# Maintainer: Eragon <eragon+alpine@eragon.re>

pkgname=forgejo
pkgver=1.18.0
_pkgrel=1
pkgrel=0
pkgdesc="Self-hosted, lightweight software forge - A soft fork of Gitea"
url="https://forgejo.org"
arch="all"
license="MIT"
depends="git git-lfs gnupg"
makedepends="go libcap"
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-$_pkgrel.tar.gz
	$pkgname.initd
	$pkgname.confd
	$pkgname.ini
	"
builddir="$srcdir/forgejo-src-$pkgver"

# TODO : Get the check back in working condition
# Need help on that because I can't get them to work - Eragon
options="!check"

build() {
	cd $srcdir/$pkgname

	export GOPATH="$srcdir/go"
	export GOFLAGS="-buildmode=pie -trimpath -mod=readonly -modcacherw $GOFLAGS"

	export CGO_CPPFLAGS="$CPPFLAGS"
	export CGO_CFLAGS="$CFLAGS"
	export CGO_CXXFLAGS="$CXXFLAGS"
	export CGO_LDFLAGS="$LDFLAGS"

	unset LDFLAGS
	## make FHS compliant
	LDFLAGS="$LDFLAGS -X code.gitea.io/gitea/modules/setting.CustomConf=/etc/forgejo/app.ini"
	LDFLAGS="$LDFLAGS -X code.gitea.io/gitea/modules/setting.AppWorkPath=/var/lib/forgejo/"
	LDFLAGS="$LDFLAGS -X code.gitea.io/gitea/modules/setting.StaticRootPath=/usr/share/webapps/forgejo/"
	export LDFLAGS

	export TAGS="tidb sqlite sqlite_unlock_notify"

	## make should run without any parallelism
	## parallelsm breaks the bindata target which relies on execution order
	make backend -j1

	# FIXME I don't understand why but go doesn't respect the -modcacherw option
	chmod -R +w $GOPATH
}

package() {
	for dir in $pkgname $pkgname/git $pkgname/data $pkgname/db $pkgname/custom; do
		install -d -m 750 -o $pkgusers -g www-data \
			"$pkgdir"/var/lib/$dir
	done

	install -d -m 755 -o $pkgusers -g www-data "$pkgdir"/var/log/$pkgname

	install -D -m 755 "$srcdir"/$pkgname/gitea "$pkgdir"/usr/bin/$pkgname

	# Allow non root to bind to port 80.
	setcap cap_net_bind_service=+ep \
		"$pkgdir"/usr/bin/$pkgname

	install -D -m 644 -o $pkgusers -g www-data "$srcdir"/forgejo.ini \
		"$pkgdir"/etc/$pkgname/app.ini
	chown $pkgusers:www-data "$pkgdir"/etc/$pkgname

	install -d -m 755 "$pkgdir"/usr/share/webapps/$pkgname
	mv "$srcdir"/$pkgname/options "$srcdir"/$pkgname/public \
		"$srcdir"/$pkgname/templates "$pkgdir"/usr/share/webapps/$pkgname/

	install -D -m 644 "$srcdir"/$pkgname.confd "$pkgdir"/etc/conf.d/$pkgname
	install -D -m 755 "$srcdir"/$pkgname.initd "$pkgdir"/etc/init.d/$pkgname
}
sha512sums="
1547e799de7066dbabad698acdf0cdedca4e2b18ac059e6a255c5b05d9231b2930810efe6d7be1fb3de6f28d47a95be499014ddd0d05f6e4754661e9765e6040  forgejo-1.18.0.tar.gz
1fe168baac09bea86ab24e1f6283da9fdd8cd5d2bfc9822e521043a141612ae2dba1742f40d14f04a4ef58fbf875048edd5776f689ed09137997eb210fe0ec58  forgejo.initd
a9367570a53b878f0fb9df39b5463ed6e24124e2b30a27a0d53ad76a8b03d0dbc4531ff07629bdd28cf4fcceb33c26b8efc2a30732b88f91ddc657b5df0c901c  forgejo.confd
1c08ff558ec35b1f0bb1900f328f35a5fed5e29a14703ce451ecd902f3094b9c64de8a0adb3e5c69ad853b3c62a3558015095bc44affb8af41f20cd358f1b3d5  forgejo.ini
"
diff --git a/testing/forgejo/forgejo.confd b/testing/forgejo/forgejo.confd
new file mode 100644
index 0000000000..72e31f3de1
--- /dev/null
+++ b/testing/forgejo/forgejo.confd
@@ -0,0 +1,4 @@
FORGEJO_USER=forgejo
FORGEJO_CONF=/etc/forgejo/app.ini
FORGEJO_WORK_DIR=/var/lib/forgejo
FORGEJO_LOG_FILE=/var/log/forgejo/http.log
diff --git a/testing/forgejo/forgejo.ini b/testing/forgejo/forgejo.ini
new file mode 100644
index 0000000000..9d739836e7
--- /dev/null
+++ b/testing/forgejo/forgejo.ini
@@ -0,0 +1,32 @@
; forgejo doesn't contain a default config file
; and instead expects the user to only define
; the settings they want to change.
; This file contains some base settings

RUN_USER = forgejo
RUN_MODE = prod

[repository]
ROOT = /var/lib/forgejo/repos
SCRIPT_TYPE = sh
; set this here so the default isn’t sneakily changed upstream
DEFAULT_BRANCH = main

[server]
STATIC_ROOT_PATH = /usr/share/webapps/forgejo
APP_DATA_PATH    = /var/lib/forgejo/data
LFS_START_SERVER = true

[database]
DB_TYPE = sqlite3
PATH = /var/lib/forgejo/db/gitea.db
SSL_MODE = disable
LOG_SQL = false

[session]
PROVIDER = file

[log]
ROOT_PATH = /var/log/forgejo/
MODE = file
LEVEL = Info
diff --git a/testing/forgejo/forgejo.initd b/testing/forgejo/forgejo.initd
new file mode 100644
index 0000000000..2c45ff281d
--- /dev/null
+++ b/testing/forgejo/forgejo.initd
@@ -0,0 +1,15 @@
#!/sbin/openrc-run

supervisor=supervise-daemon
name=forgejo
command="/usr/bin/forgejo"
command_user="${FORGEJO_USER:-forgejo}"
command_args="web --config '${FORGEJO_CONF:-/etc/forgejo/app.ini}'"
supervise_daemon_args="--env GITEA_WORK_DIR='${FORGEJO_WORK_DIR:-/var/lib/forgejo}' --chdir '${FORGEJO_WORK_DIR:-/var/lib/forgejo}' --stdout '${FORGEJO_LOG_FILE:-/var/log/forgejo/http.log}' --stderr '${FORGEJO_LOG_FILE:-/var/log/forgejo/http.log}'"
pidfile="/run/forgejo.pid"

depend() {
        use logger dns
        need net
        after firewall
}
diff --git a/testing/forgejo/forgejo.pre-install b/testing/forgejo/forgejo.pre-install
new file mode 100644
index 0000000000..c4ac5f46d5
--- /dev/null
+++ b/testing/forgejo/forgejo.pre-install
@@ -0,0 +1,7 @@
#!/bin/sh

addgroup -S -g 82 www-data 2>/dev/null
adduser -S -D -h /var/lib/forgejo -s /bin/ash -G www-data -g forgejo forgejo 2>/dev/null \
        && passwd -u forgejo 2>/dev/null

exit 0
diff --git a/testing/forgejo/forgejo.sysusers b/testing/forgejo/forgejo.sysusers
new file mode 100644
index 0000000000..149bc0e2b6
--- /dev/null
+++ b/testing/forgejo/forgejo.sysusers
@@ -0,0 +1 @@
u forgejo - "Forgejo daemon user" /var/lib/forgejo /usr/bin/bash
--
2.39.0
Details
Message ID
<20230107224042.43509bdc@saphira>
In-Reply-To
<20230106231447.8818-1-eragon+alpine@eragon.re> (view parent)
DKIM signature
missing
Download raw message
> +	make backend -j1
This should be :
+	make build -j1

Currently the package will be missing the javascript and most of the
front-end of forgejo
Reply to thread Export thread (mbox)