Skip to content
Snippets Groups Projects
Commit 4abb8e75 authored by Vladimir Druzenko's avatar Vladimir Druzenko
Browse files

www/forgejo7: New port forgejo branch 7.x, copy from www/forgejo before update to 8.x

Copy from www/forgejo after commit be43fb28
"update to 7.0.4 (fixes security vulnerabilities)".

PR:	280532
parent 1054fc2a
No related branches found
No related tags found
No related merge requests found
......@@ -186,6 +186,7 @@
SUBDIR += flickcurl
SUBDIR += foreign-cdm
SUBDIR += forgejo
SUBDIR += forgejo7
SUBDIR += formication
SUBDIR += foswiki
SUBDIR += free-sa-devel
......
PORTNAME= forgejo
DISTVERSIONPREFIX= v
DISTVERSION= 7.0.4
CATEGORIES= www
MASTER_SITES= https://codeberg.org/forgejo/forgejo/releases/download/${DISTVERSIONPREFIX}${DISTVERSION}/
DISTNAME= forgejo-src-${DISTVERSION}
MAINTAINER= stb@lassitu.de
COMMENT= Compact self-hosted Git service
WWW= https://forgejo.org/
LICENSE= MIT
LICENSE_FILE= ${WRKSRC}/LICENSE
RUN_DEPENDS= git:devel/git
USES= cpe gmake go:1.22,no_targets
USE_RC_SUBR= forgejo
EXTRACT_AFTER_ARGS= --strip-components 1
SUB_FILES= app.ini.sample pkg-message
SUB_LIST= GITUSER=${USERS}
NO_WRKSUBDIR= yes
USERS= git
GROUPS= git
PORTDATA= *
OPTIONS_DEFINE= BINDATA GIT_LFS PAM SQLITE
OPTIONS_DEFAULT= BINDATA GIT_LFS PAM SQLITE
OPTIONS_SUB= yes
BINDATA_DESC= Build a single monolithic binary, with all assets included
GIT_LFS_DESC= Support for Git Large File Storage (LFS)
PAM_DESC= Enable support for PAM
BINDATA_VARS= GO_TAGS+=bindata
GIT_LFS_RUN_DEPENDS= git-lfs:devel/git-lfs
PAM_VARS= GO_TAGS+=pam
SQLITE_VARS= GO_TAGS+="sqlite sqlite_unlock_notify"
.include <bsd.port.options.mk>
.if ${OPSYS} == FreeBSD
DAEMONARGS= -S -l \$${forgejo_facility} -s \$${forgejo_priority} -T \
\$${name}
.else
DAEMONARGS= -f
.endif
SUB_LIST+= DAEMONARGS="${DAEMONARGS}"
SSP_UNSAFE= true
LDFLAGS+= "'-X "code.gitea.io/gitea/modules/setting.CustomPath=${PREFIX}/etc/forgejo"'"
LDFLAGS+= "'-X "code.gitea.io/gitea/modules/setting.AppWorkPath=${PREFIX}/share/forgejo"'"
MAKE_ARGS= GOPATH=${WRKDIR} \
TAGS="${GO_TAGS}" \
GOFLAGS="-buildvcs=false"
ALL_TARGET= backend
MAKE_JOBS_UNSAFE= yes
post-patch:
${ECHO_CMD} ${DISTVERSION} >${WRKSRC}/VERSION
# Too lazy to figure out why go install won't work.
do-install:
# Go binary is statically linked and cannot be stripped, so use
# INSTALL_SCRIPT.
${INSTALL_SCRIPT} ${WRKSRC}/gitea \
${STAGEDIR}${PREFIX}/sbin/forgejo
@${MKDIR} ${STAGEDIR}${ETCDIR}/conf
${INSTALL_DATA} ${WRKDIR}/app.ini.sample \
${STAGEDIR}${ETCDIR}/conf/app.ini.sample
${INSTALL_DATA} ${WRKSRC}/custom/conf/app.example.ini \
${STAGEDIR}${ETCDIR}/conf/app.ini.defaults
${MKDIR} ${STAGEDIR}${DATADIR}
${MKDIR} ${STAGEDIR}/var/db/forgejo/data
${MKDIR} ${STAGEDIR}/var/db/forgejo/forgejo-repositories
${MKDIR} ${STAGEDIR}/var/log/forgejo
do-install-BINDATA-off:
cd ${WRKSRC} && \
${COPYTREE_SHARE} "options public templates" ${STAGEDIR}${DATADIR}
.include <bsd.port.mk>
TIMESTAMP = 1718527772
SHA256 (forgejo-src-7.0.4.tar.gz) = 881e55d92a4145238a8e7a39dd5c64d547c7629361005ded0393f33ec9e6bba4
SIZE (forgejo-src-7.0.4.tar.gz) = 54935871
#
# Sample Configuration for Forgejo using SQLite
#
# For information on the available settings, consult the online
# documentation, or see the accompanying file app.ini.defaults, which
# contains the settings incorporated into the forgejo binary.
#
# This sample configuration runs Forgejo with a local database. Before
# running this configuration, make sure to change the INTERNAL_TOKEN,
# JWT_SECRET, and SECRET_KEY variables. SECRET_KEY is a password of your
# choosing, INTERNAL_TOKEN is a 64-byte random number in BASE64 encoding,
# JWT_SECRET is a 32-byte random number in BASE64 encoding.
#
# You can generate the token using for example:
# openssl rand -base64 64
#
# You can let Forgejo add these to the config for you; you need to make
# app.ini writeable by the git user.
#
# There are no pre-configured users; the first user to register becomes an
# admin. In this sample configuration, the HTTP server only listens on
# localhost.
#
# If you'd rather use the web-based installer, remove this conf/app.ini file
# and make %%PREFIX%%/etc/forgejo/conf writeable to the git user.
APP_NAME = Forgejo: A self-hosted lightweight software forge
RUN_MODE = prod
RUN_USER = %%GITUSER%%
[database]
DB_TYPE = sqlite3
HOST = 127.0.0.1:3306
NAME = forgejo
PASSWD =
PATH = /var/db/forgejo/forgejo.db
SSL_MODE = disable
USER = root
[indexer]
ISSUE_INDEXER_PATH = /var/db/forgejo/indexers/issues.bleve
[log]
LEVEL = Info
MODE = file
ROOT_PATH = /var/log/forgejo
[mailer]
ENABLED = false
[oauth2]
JWT_SECRET = CHANGE_ME
[picture]
AVATAR_UPLOAD_PATH = /var/db/forgejo/data/avatars
DISABLE_GRAVATAR = true
ENABLE_FEDERATED_AVATAR = false
[repository]
ROOT = /var/db/forgejo/forgejo-repositories
# Forgejo's default is 'bash', so if you have bash installed, you can comment
# this out.
SCRIPT_TYPE = sh
[repository.upload]
TEMP_PATH = /var/db/forgejo/data/tmp/uploads
[security]
INSTALL_LOCK = true
INTERNAL_TOKEN = CHANGE_ME
SECRET_KEY = CHANGE_ME
[session]
PROVIDER = file
PROVIDER_CONFIG = /var/db/forgejo/data/sessions
[server]
APP_DATA_PATH = /var/db/forgejo/data
DISABLE_SSH = false
DOMAIN = localhost
HTTP_ADDR = 127.0.0.1
HTTP_PORT = 3000
OFFLINE_MODE = false
ROOT_URL = http://localhost:3000/
SSH_DOMAIN = %(DOMAIN)s
SSH_PORT = 22
[service]
DISABLE_REGISTRATION = false
ENABLE_CAPTCHA = true
ENABLE_NOTIFY_MAIL = false
REGISTER_EMAIL_CONFIRM = false
REQUIRE_SIGNIN_VIEW = false
#!/bin/sh
# PROVIDE: forgejo
# REQUIRE: NETWORKING SYSLOG
# KEYWORD: shutdown
#
# Add the following lines to /etc/rc.conf to enable forgejo:
#
#forgejo_enable="YES"
. /etc/rc.subr
name="forgejo"
rcvar="forgejo_enable"
load_rc_config $name
: ${forgejo_user:="%%GITUSER%%"}
: ${forgejo_enable:="NO"}
: ${forgejo_configcheck_enable:="YES"}
: ${forgejo_facility:="daemon"}
: ${forgejo_priority:="info"}
: ${forgejo_shared:="%%PREFIX%%/share/${name}"}
: ${forgejo_custom:="%%PREFIX%%/etc/${name}"}
command="%%PREFIX%%/sbin/${name} web"
procname="%%PREFIX%%/sbin/${name}"
githome="$(eval echo ~${forgejo_user})"
pidfile="/var/run/${name}.pid"
start_cmd="${name}_start"
start_precmd="${name}_prestart"
forgejo_start() {
for d in /var/db/forgejo /var/log/forgejo; do
if [ ! -e "$d" ]; then
mkdir "$d"
chown ${forgejo_user} "$d"
fi
done
/usr/sbin/daemon %%DAEMONARGS%% \
-u ${forgejo_user} -p ${pidfile} \
/usr/bin/env -i \
"GITEA_WORK_DIR=${forgejo_shared}" \
"GITEA_CUSTOM=${forgejo_custom}" \
"HOME=${githome}" \
"PATH=%%PREFIX%%/bin:${PATH}" \
"USER=${forgejo_user}" \
$command
}
forgejo_prestart() {
if checkyesno forgejo_configcheck_enable; then
if su -m ${forgejo_user} -c "%%PREFIX%%/sbin/${name} doctor check >/dev/null"; then
else
echo "cannot start ${name} because of configuration errors. Run" >&2
echo " su -m git -c '${name} doctor check'" >&2
echo "for further details"
return 1
fi
fi
}
run_rc_command "$1"
[
{ type: install
message: <<EOM
Before starting forgejo for the first time, you must set a number of
secrets in the configuration file. For your convenience, a sample file
has been copied to %%PREFIX%%/etc/forgejo/conf/app.ini.
You need to replace every occurence of CHANGE_ME in the file with
sensible values. Please refer to the official documentation at
https://forgejo.org for details.
You will also likely need to create directories for persistent storage.
Run
su -m git -c 'forgejo doctor check'
to check if all prerequisites have been met.
EOM
}
{ type: upgrade
maximum_version: "1.21"
message: <<EOM
Since forgejo version 7, the startup script will run forgejo doctor check
to verify that forgejo can be started successfully. If you are sure that
forgejo will start even if doctor has identified an issue, you can disable
the check by setting forgejo_configcheck_enabled=NO in rc.conf.
EOM
}
]
A self-hosted Git service.
Forgejo is a community managed soft-fork of Gitea, which is a fork of Gogs,
lightweight code hosting solution written in Go and published under the MIT
license.
@sample %%ETCDIR%%/conf/app.ini.sample
%%ETCDIR%%/conf/app.ini.defaults
sbin/forgejo
@dir share/forgejo
@dir(git,git,755) /var/db/forgejo
@dir(git,git,755) /var/db/forgejo/data
@dir(git,git,755) /var/db/forgejo/forgejo-repositories
@dir(git,git,755) /var/log/forgejo
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment