commit:     9dff681e3948e79f9b77b6fb4d6b14a5ef73a850
Author:     Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Wed May  4 23:19:12 2022 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Wed May  4 23:22:43 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=9dff681e

www-apps/gitea: fix PIE crash at runtime

Closes: https://bugs.gentoo.org/832756
Thanks-to: jon R-B <jon.roadleybattin <AT> gmail.com>
Signed-off-by: Sam James <sam <AT> gentoo.org>

 www-apps/gitea/gitea-1.16.6-r1.ebuild | 118 ++++++++++++++++++++++++++++++++++
 1 file changed, 118 insertions(+)

diff --git a/www-apps/gitea/gitea-1.16.6-r1.ebuild 
b/www-apps/gitea/gitea-1.16.6-r1.ebuild
new file mode 100644
index 000000000000..249baa6f0eb7
--- /dev/null
+++ b/www-apps/gitea/gitea-1.16.6-r1.ebuild
@@ -0,0 +1,118 @@
+# 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
+
+DESCRIPTION="A painless self-hosted Git service"
+HOMEPAGE="https://gitea.io https://github.com/go-gitea/gitea";
+SRC_URI="https://github.com/go-gitea/gitea/releases/download/v${PV}/gitea-src-${PV}.tar.gz
 -> ${P}.tar.gz"
+KEYWORDS="~amd64 ~arm ~arm64"
+S="${WORKDIR}"
+
+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"
+
+DOCS=(
+       custom/conf/app.example.ini CONTRIBUTING.md README.md
+)
+FILECAPS=(
+       -m 711 cap_net_bind_service+ep usr/bin/gitea
+)
+
+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/gitea#"
+               -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 gitea_tags=(
+               bindata
+               $(usev pam)
+               $(usex sqlite 'sqlite sqlite_unlock_notify' '')
+       )
+       local gitea_settings=(
+               "-X 
code.gitea.io/gitea/modules/setting.CustomConf=${EPREFIX}/etc/gitea/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}\" ${gitea_settings[*]}"
+               TAGS="${gitea_tags[*]}"
+       )
+
+       GOFLAGS=""
+       if use pie ; then
+               GOFLAGS+="-buildmode=pie"
+       fi
+
+       env "${makeenv[@]}" emake EXTRA_GOFLAGS="${GOFLAGS}" backend
+}
+
+src_install() {
+       dobin gitea
+
+       einstalldocs
+
+       newconfd "${FILESDIR}/gitea.confd-r1" gitea
+       newinitd "${FILESDIR}/gitea.initd-r3" gitea
+       newtmpfiles - gitea.conf <<-EOF
+               d /run/gitea 0755 git git
+       EOF
+       systemd_newunit "${FILESDIR}"/gitea.service-r3 gitea.service
+
+       insinto /etc/gitea
+       newins custom/conf/app.example.ini app.ini
+       if use acct; then
+               fowners root:git /etc/gitea/{,app.ini}
+               fperms g+w,o-rwx /etc/gitea/{,app.ini}
+
+               diropts -m0750 -o git -g git
+               keepdir /var/lib/gitea /var/lib/gitea/custom /var/lib/gitea/data
+               keepdir /var/log/gitea
+       fi
+}
+
+pkg_postinst() {
+       fcaps_pkg_postinst
+       tmpfiles_process gitea.conf
+
+       ewarn "The default JWT signing algorithm changed in 1.15.0 from HS256 
(symmetric) to"
+       ewarn "RS256 (asymmetric). Gitea OAuth2 tokens (and potentially client 
secrets) will"
+       ewarn "need to be regenerated unless you change your 
JWT_SIGNING_ALGORITHM back to HS256."
+       ewarn "For other breaking changes, see 
<https://github.com/go-gitea/gitea/releases/tag/v1.15.0>."
+}

Reply via email to