commit:     f89245d5a166a676f3284a5d5a177cd68253d390
Author:     Tony Olagbaiye <bqv <AT> fron <DOT> io>
AuthorDate: Mon Jan 16 14:52:20 2023 +0000
Commit:     Tony Olagbaiye <gentoo <AT> fron <DOT> io>
CommitDate: Mon Jan 16 14:53:53 2023 +0000
URL:        https://gitweb.gentoo.org/repo/proj/guru.git/commit/?id=f89245d5

www-apps/forgejo: new package, add 1.18.0.1

Signed-off-by: Tony Olagbaiye <bqv <AT> fron.io>

 www-apps/forgejo/Manifest                 |   1 +
 www-apps/forgejo/files/forgejo.confd-r1   |  14 ++++
 www-apps/forgejo/files/forgejo.initd-r3   |  22 ++++++
 www-apps/forgejo/files/forgejo.service-r3 |  34 ++++++++
 www-apps/forgejo/forgejo-1.18.0.1.ebuild  | 127 ++++++++++++++++++++++++++++++
 www-apps/forgejo/metadata.xml             |   8 ++
 6 files changed, 206 insertions(+)

diff --git a/www-apps/forgejo/Manifest b/www-apps/forgejo/Manifest
new file mode 100644
index 000000000..e02f0825b
--- /dev/null
+++ b/www-apps/forgejo/Manifest
@@ -0,0 +1 @@
+DIST forgejo-1.18.0.1.tar.gz 58980172 BLAKE2B 
c5e9b276c9446f8f4ceb9dc00d502fe13b92d1c812526252315cc478148c3438fa3ecc8ef883f0dc092a09f812480e4c3166ca474e7f013a12596a02381488ca
 SHA512 
f1d6989cdf4df981e0c0d9f3abe49686c4ee5ddebfd2e54b384a8f52357b556c7bf48ea79cf7a8f9e32cda35e319a9c486c66d2d7a5e5d75fb0d1ad1a6e23598

diff --git a/www-apps/forgejo/files/forgejo.confd-r1 
b/www-apps/forgejo/files/forgejo.confd-r1
new file mode 100644
index 000000000..30ce8ce85
--- /dev/null
+++ b/www-apps/forgejo/files/forgejo.confd-r1
@@ -0,0 +1,14 @@
+# Forgejo configuration
+GITEA_CONF="/etc/forgejo/app.ini"
+
+# Forgejo user
+GITEA_USER="git"
+
+# Forgejo group
+GITEA_GROUP="git"
+
+# Forgejo working directory
+GITEA_WORK_DIR="/var/lib/gitea"
+
+# Forgejo custom directory
+GITEA_CUSTOM="${GITEA_WORK_DIR}/custom"

diff --git a/www-apps/forgejo/files/forgejo.initd-r3 
b/www-apps/forgejo/files/forgejo.initd-r3
new file mode 100644
index 000000000..d9b317d5c
--- /dev/null
+++ b/www-apps/forgejo/files/forgejo.initd-r3
@@ -0,0 +1,22 @@
+#!/sbin/openrc-run
+# Copyright 2016-2019 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+description="Forgejo, a self-hosted Git service"
+
+: ${GITEA_CONF:=/etc/forgejo/app.ini}
+: ${GITEA_USER:=git}
+: ${GITEA_GROUP:=git}
+: ${GITEA_WORK_DIR:=/var/lib/gitea}
+: ${GITEA_CUSTOM:=${GITEA_WORK_DIR}/custom}
+
+command="/usr/bin/forgejo web"
+command_args="--config ${GITEA_CONF}"
+command_background="true"
+command_user="${GITEA_USER}:${GITEA_GROUP}"
+error_log="/var/log/${RC_SVCNAME}/${RC_SVCNAME}.err"
+pidfile="/run/${RC_SVCNAME}.pid"
+required_files="${GITEA_CONF}"
+start_stop_daemon_args="-d ${GITEA_WORK_DIR}"
+start_stop_daemon_args="${start_stop_daemon_args} -e 
GITEA_WORK_DIR=${GITEA_WORK_DIR}"
+start_stop_daemon_args="${start_stop_daemon_args} -e 
GITEA_CUSTOM=${GITEA_CUSTOM}"

diff --git a/www-apps/forgejo/files/forgejo.service-r3 
b/www-apps/forgejo/files/forgejo.service-r3
new file mode 100644
index 000000000..b3b6eace7
--- /dev/null
+++ b/www-apps/forgejo/files/forgejo.service-r3
@@ -0,0 +1,34 @@
+[Unit]
+Description=Forgejo service
+Documentation=https://forgejo.org/
+
+AssertPathIsDirectory=/var/lib/gitea
+AssertPathIsReadWrite=/var/lib/gitea
+
+After=network.target
+Requires=network.target
+After=mysqld.service
+After=postgresql-9.5.service
+After=postgresql-9.6.service
+After=postgresql-10.service
+After=postgresql-11.service
+After=postgresql-12.service
+After=postgresql-13.service
+After=postgresql-14.service
+After=memcached.service
+After=redis.service
+
+[Service]
+User=git
+Group=git
+
+Environment="GITEA_WORK_DIR=/var/lib/gitea" 
"GITEA_CUSTOM=/var/lib/gitea/custom"
+WorkingDirectory=/var/lib/gitea
+ExecStart=/usr/bin/forgejo web --config /etc/forgejo/app.ini
+
+Restart=always
+PrivateTmp=true
+Nice=5
+
+[Install]
+WantedBy=multi-user.target

diff --git a/www-apps/forgejo/forgejo-1.18.0.1.ebuild 
b/www-apps/forgejo/forgejo-1.18.0.1.ebuild
new file mode 100644
index 000000000..e9010e5d9
--- /dev/null
+++ b/www-apps/forgejo/forgejo-1.18.0.1.ebuild
@@ -0,0 +1,127 @@
+# Copyright 2016-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit fcaps go-module tmpfiles systemd flag-o-matic
+
+MY_PV="$(ver_cut 1-3)-$(ver_cut 4)"
+DESCRIPTION="A self-hosted lightweight software forge"
+HOMEPAGE="https://forgejo.org/ https://codeberg.org/forgejo/forgejo";
+
+if [[ ${PV} == *9999 ]]; then
+       inherit git-r3
+       EGIT_REPO_URI="https://codeberg.org/forgejo/forgejo";
+else
+       
SRC_URI="https://codeberg.org/forgejo/forgejo/releases/download/v${MY_PV}/forgejo-src-${MY_PV}.tar.gz
 -> ${P}.tar.gz"
+       KEYWORDS="~amd64 ~arm ~arm64 ~riscv ~x86"
+fi
+
+S="${WORKDIR}/${PN}-src-${MY_PV}"
+
+LICENSE="Apache-2.0 BSD BSD-2 ISC MIT MPL-2.0"
+SLOT="0"
+IUSE="+acct pam sqlite pie"
+
+DEPEND="
+       acct? (
+               acct-group/git
+               acct-user/git[gitea] )
+       pam? ( sys-libs/pam )"
+RDEPEND="${DEPEND}
+       dev-vcs/git
+       !www-apps/gitea" # until acct-user/git[forgejo]
+
+DOCS=(
+       custom/conf/app.example.ini CONTRIBUTING.md README.md
+)
+FILECAPS=(
+       -m 711 cap_net_bind_service+ep usr/bin/forgejo
+)
+
+RESTRICT="test"
+
+src_prepare() {
+       default
+
+       local sedcmds=(
+               -e "s#^ROOT =#ROOT = 
${EPREFIX}/var/lib/gitea/gitea-repositories#"
+               -e "s#^ROOT_PATH =#ROOT_PATH = ${EPREFIX}/var/log/forgejo#"
+               -e "s#^APP_DATA_PATH = data#APP_DATA_PATH = 
${EPREFIX}/var/lib/gitea/data#"
+               -e "s#^HTTP_ADDR = 0.0.0.0#HTTP_ADDR = 127.0.0.1#"
+               -e "s#^MODE = console#MODE = file#"
+               -e "s#^LEVEL = Trace#LEVEL = Info#"
+               -e "s#^LOG_SQL = true#LOG_SQL = false#"
+               -e "s#^DISABLE_ROUTER_LOG = false#DISABLE_ROUTER_LOG = true#"
+       )
+
+       sed -i "${sedcmds[@]}" custom/conf/app.example.ini || die
+       if use sqlite ; then
+               sed -i -e "s#^DB_TYPE = .*#DB_TYPE = sqlite3#" 
custom/conf/app.example.ini || die
+       fi
+}
+
+src_configure() {
+       # bug 832756 - PIE build issues
+       filter-flags -fPIE
+       filter-ldflags -fPIE -pie
+}
+
+src_compile() {
+       local forgejo_tags=(
+               bindata
+               $(usev pam)
+               $(usex sqlite 'sqlite sqlite_unlock_notify' '')
+       )
+       local forgejo_settings=(
+               "-X 
code.gitea.io/gitea/modules/setting.CustomConf=${EPREFIX}/etc/forgejo/app.ini"
+               "-X 
code.gitea.io/gitea/modules/setting.CustomPath=${EPREFIX}/var/lib/gitea/custom"
+               "-X 
code.gitea.io/gitea/modules/setting.AppWorkPath=${EPREFIX}/var/lib/gitea"
+       )
+       local makeenv=(
+               DRONE_TAG="${PV}"
+               LDFLAGS="-extldflags \"${LDFLAGS}\" ${forgejo_settings[*]}"
+               TAGS="${forgejo_tags[*]}"
+       )
+
+       GOFLAGS=""
+       if use pie ; then
+               GOFLAGS+="-buildmode=pie"
+       fi
+
+       env "${makeenv[@]}" emake EXTRA_GOFLAGS="${GOFLAGS}" backend
+}
+
+src_install() {
+       cp gitea forgejo
+       dobin forgejo
+
+       einstalldocs
+
+       newconfd "${FILESDIR}/forgejo.confd-r1" forgejo
+       newinitd "${FILESDIR}/forgejo.initd-r3" forgejo
+       newtmpfiles - forgejo.conf <<-EOF
+               d /run/forgejo 0755 git git
+       EOF
+       systemd_newunit "${FILESDIR}"/forgejo.service-r3 forgejo.service
+
+       insinto /etc/forgejo
+       newins custom/conf/app.example.ini app.ini
+       if use acct; then
+               fowners root:git /etc/forgejo/{,app.ini}
+               fperms g+w,o-rwx /etc/forgejo/{,app.ini}
+
+               diropts -m0750 -o git -g git
+               keepdir /var/lib/gitea /var/lib/gitea/custom /var/lib/gitea/data
+               keepdir /var/log/forgejo
+       fi
+}
+
+pkg_postinst() {
+       fcaps_pkg_postinst
+       tmpfiles_process forgejo.conf
+
+       ewarn "${PN} ${MY_PV} will continue to use /var/lib/gitea as the 
default home,"
+       ewarn "as acct-user/git[gitea] depends on it, and acct-user[forgejo] 
does not"
+       ewarn "exist yet."
+}

diff --git a/www-apps/forgejo/metadata.xml b/www-apps/forgejo/metadata.xml
new file mode 100644
index 000000000..3e4c59ae5
--- /dev/null
+++ b/www-apps/forgejo/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd";>
+<pkgmetadata>
+       <!-- maintainer-needed -->
+       <use>
+               <flag name="acct">User and group management via acct-*/git 
packages</flag>
+       </use>
+</pkgmetadata>

Reply via email to